2007-09-18 02:27:07 Tim Janik


* sfi/glib-extra.h:
* sfi/sfiglueproxy.h: added G_GNUC_NULL_TERMINATED to function ellipsis,
patch by Stefan Westerfeld from bug #344388.

Mon Aug 13 23:38:53 2007 Stefan Westerfeld


* sfiwrapper.h: Remove cyclic include dependancy between sfiwrapper.h
and sfitypes.h by not longer including sfitypes.h. This will allow
using things defined here in sfitypes.h, which was not possible
before.

* sfitypes.h: Use int64 instead of gint64 for SfiTime/SfiNum, which
expands to long long on both, 32- and 64-bit systems. This will make
printf ("%lld", some_sfi_num) a valid printf format (as seen by gcc),
and thus some compiler warnings disappear with this change. Fixes:
#456879.

Sat Jul 14 15:54:33 2007 Stefan Westerfeld


* sfiwrapper.h: When compiled in C++ sources, use [u]int16/32/...
typedefs from Birnet instead of providing own typedefs. This allows
using these types in C++ sources which are using namespace Birnet.
Fixes #456408.

* sfiwrapper.cc: Since this is a C++ source, after the change above,
birnet/birnetutils.hh will already get included in sfi/sfiwrapper.h.
But then, undefining BIRNET__RUNTIME_PROBLEM afterwards will create
compile errors in the other birnet headers which are included after
sfi/sfiwrapper.h, because they rely on a definition provided by
birnet/birnetutils.hh. So I am removing the #undef, which doesn't seem
to have any useful purpose anyway.

Mon Apr 16 13:51:51 2007 Stefan Westerfeld


* sfidl-*[hc]: Refactored some code in order to remove unneccessary
include files and to avoid "using namespace std;".

* sfidl-typelist.hh:
* sfidl-corec.hh:
* sfidl-corecxx.hh:
* Makefile.am: Remove include files that are not really needed any
more.

Fri Apr 13 14:22:34 2007 Stefan Westerfeld


* Makefile.am:
* sfidl-utils.hh: Added include central file which provides String and
string_* helper functions by using them from birnet.

* sfidl-*[hc]: Use String instead of std::string.

Tue Apr 10 17:22:11 2007 Stefan Westerfeld


* sfidl-parser.cc: Don't use g_strdup_printf, but g_ascii_formatd for
formatting doubles (locale independency). Some simplification could be
achieved by switching from char* to std::string for some code.
Fix #424897 "Bad code generated for double constants by sfidl".

* sfidl-parser.hh:
* sfidl-parser.cc:
* sfidl-corecxx.cc: Use birnet functions to convert between strings
and integers, instead of reimplementing our own version.

* sfidl-generator.cc: Use birnet function string_tolower, instead of
reimplementing our own version.

* Makefile.am: Start linking sfidl against birnet, as we use birnet
string helper functions now.

* tests/testidl.idl:
* tests/misctests.c: Test that the code generator output for doubles
is correct (see #424897), by computing a record default with a
double division and checking its result.

* sfidl-corec.cc: Fix a compiler warning by using "%zd" as printf
format where appropriate.

Sun Feb 4 03:24:30 2007 Tim Janik


* updated all licenses to GNU Lesser General Public License version 2.1
with permission from Stefan Westerfeld where required.

Fri Feb 2 00:20:58 2007 Tim Janik


* sfiwrapper.h, sfiwrapper.cc: wrapped Birnet::DebugChannel with
SfiDebugChannel API.

Sun Dec 3 13:47:31 2006 Stefan Westerfeld


* sfidl-clientcxx.cc:
* sfidl-corec.cc:
* sfidl-hostc.cc:
* sfidl-corecxx.cc:
* sfidl-cbase.cc:
* sfimemory.c: Use "%zd" instead of "%d" when printing size_t
variables. This avoids printf compiler warnings on AMD64.

Mon Nov 27 20:46:02 2006 Stefan Westerfeld


* sfidl-parser.hh: Use Birnet::int64 instead of gint64 avoids printf
compiler warnings on AMD64.

Mon Nov 20 23:39:31 2006 Tim Janik


* sfiwrapper.h, sfiwrapper.cc: wrapped C++ Msg API.

* glib-extra.h: removed g_static_assert(), we now have BIRNET_STATIC_ASSERT().

* sfimsg.h, sfimsg.c: removed, obsoleted by C++ Msg API wrapper.

* tests/misctests.c: added some sfi_msg_*() tests, mostly to check
compilability of the provided macros.

* tests/testsfidl.cc: fixed compiler warnings.

Wed Nov 15 00:23:44 2006 Tim Janik


* sfidl-parser.cc (parseParamHints): serialize int parameters with LL
prefix, to allow values >= 2^31.

Tue Oct 24 23:51:55 2006 Tim Janik


* sfitests.h (sfi_init_test): setup CPU name similar to birnet_init_test().

Sat Oct 21 17:29:05 2006 Tim Janik


* sfitests.h, sfiwrapper.cc: adapt to init settings changes.

Sat Oct 7 23:01:54 2006 Tim Janik


* sfitests.h: header file to be included by test programs.

Sat Oct 7 20:33:04 2006 Tim Janik


* sfiwrapper.cc, sfiwrapper.h: provide integer types.
wrap cpu info and threading APIs. changed callers to use
the wrapped SFI variants.

* sfitypes.h: removed obsoleted cruft.

* tests/misctests.c: added compilation test for all threading
macros.

Fri Oct 6 23:13:05 2006 Tim Janik


* sfiwrapper.h, sfiwrapper.cc: C API wrapper around useful
Birnet utilities.

Fri Oct 6 18:53:35 2006 Tim Janik


* sfimsg.h, sfimsg.c: renamed and moved here from birnet/.
changed callers.

* sficxx.cc: don't shadow "sfi_init" symbol.

* sfitypes.h: removed portions covered by sfimsg.h.

Tue Oct 3 18:44:43 2006 Tim Janik


* moved remaining sfi/ tests to sfi/tests.

* tests/misctests.c: moved here from sfi/testsfi.c.

* tests/testsfidl.cc:
* tests/testidl.idl: moved here from sfi/.

Tue Oct 3 17:57:59 2006 Tim Janik


* tests/testcxx.cc: moved here from sfi/.

Tue Oct 3 17:42:51 2006 Tim Janik


* testsfi.c: removed ring tests which are in tests/ring.c now.

Tue Oct 3 17:21:08 2006 Tim Janik


* sfiring.h, sfiring.c: moved BirnetRing here, renamed to Sfi.

* sfiprimitives.h, sfiprimitives.c: removed obsolete Ring code.

* tests/ring.c: test SfiRing thoroughly.
moved here from birnet/tests/ring.cc, renamed to use SfiRing.

* tests/Makefile.am:
* Makefile.am: build and integrate sfi/tests/.

Fri Jul 7 02:10:42 2006 Tim Janik


* sfifilecrawler.[hc]: removed sfi_file_check() and sfi_file_equals()
which are now provided and tested by libbirnet.

Wed Jun 21 23:40:33 2006 Tim Janik


* sfitypes.h: include birnet.h before glib-extra.h for _GNU_SOURCE to
take effect.

Wed Jun 14 15:45:57 2006 Stefan Westerfeld


* sfidl-parser.hh: Added G_GNUC_PRINTF printf format attribute to the
functions Parser::printWarning and Parser::printError.

Thu Jun 8 16:57:39 2006 Stefan Westerfeld


* testsfidl.cc: Fixed a strange assertion which looked like this:
TASSERT (a == b == 1). Correct is TASSERT (a == 1); TASSERT (b == 1).

Tue May 23 00:11:30 2006 Tim Janik


* glib-extra.h: removed definition of G_IMPLEMENT_INTERFACE() which is
supplied by stock glib-2.6.

Fri May 5 19:58:06 2006 Tim Janik


* sficxx.hh: fixed reference counting and related assertions for
records, fblocks, bblocks and objects.

Thu Apr 13 23:59:08 2006 Tim Janik


* testsfi.c:
* testsfidl.cc:
* testcxx.cc: fixed test macros.

Sat Apr 8 02:10:07 2006 Tim Janik


* sfitime.[hc]: added sfi_time_to_nice_string() to allow more flexible formatting.

Sun Apr 2 03:48:29 2006 Tim Janik


* sfidl-corec.cc: fixed "const" return value types.

* testsfi.c: renamed special test assertion macro to TASSERT().

Thu Mar 30 20:46:48 2006 Tim Janik


* sfidl-clientcxx.cc: removed cruft.

Thu Mar 30 20:20:52 2006 Tim Janik


* Makefile.am: added atuomake/libtool double-compilation workaround.

* sfimemory.[hc]: fixed bogus "const" in return type.

* sfidl-clientcxx.cc: removed bogus code.

* sfidl-corec.cc: namespace prefixing fixup.

Thu Mar 30 19:17:12 2006 Stefan Westerfeld


* sfidl-parser.cc: Fixes for gcc-4.2 snapshot related to anonymous
namespaces.

Mon Mar 27 18:22:18 2006 Stefan Westerfeld


* glib-extra.[hc]: g_intern_(static)_string only needs to be provided
for old glib versions (< glib-2.9.0).

Thu Mar 9 00:55:39 2006 Tim Janik


* Makefile.am: get rid of sficonfig.h. generate partial library libsfi.o.
* dummy.cc: dummy file used to force C++ program linkage.

* glib-extra.[hc]: removed GScanner clone.
g_scanner_new64(): turned into a g_scanner_new() wrapper that ensures 64bit mode.

* sfi/sfilog.[hc]:
* sfi/sfithreads.[hc]: removed, functionality is provided by libbirnet now.

* *.[hc]: use functions from the birnet_ namespace for threading and messages.

* sficxx.cc: new file, used to hook up _sfi_init_*() functions with birnet_init().

* sficxx.h: removed, contents are provided by sficxx.hh now.

* sfidl-parser.cc: fixed 64bit scanner config.

* sfitypes.c: removed old init code.

* sfitypes.h: provide message function aliases in the sfi namespace to ease
transition.

* testsfi.c: fixed initialization.

Tue Mar 7 22:42:52 2006 Tim Janik


* sficxx.hh: CVS copied from sficxx.h, because this is a C++ header.

Wed Feb 15 23:18:42 2006 Tim Janik


* sfifilecrawler.c:
* sfilog.c:
* sfiprimitives.c:
* sfithreads.c:
* sfitime.c: ported documentation to doxer format.

Sun Feb 12 03:31:04 2006 Tim Janik


* sfidl-corecxx.cc: pass file/line information to pspec constructors.

* sfidl-parser.[hc]*: added string_from_int function.

Tue Jan 17 23:38:02 2006 Stefan Westerfeld


* sfitypes.h: Introduce int64 and uint64 types - within the scope of
BEAST, we guarantee that their printf format is always "%lld" (as
opposed to gint64/guint64, which requires different printf formats on
32-bit and 64-bit platforms).

Tue Nov 15 21:57:46 2005 Tim Janik


* sfiprimitives.h:
* sfimemory.c: changed ring links to mimick GSList links, so we will
be able to make use of chained g_slice_free() functions.

Wed May 25 22:46:07 2005 Tim Janik


* sfithreads.h: gcc-3.4 produces segfaulting code intentionally for
funciton casts it doesn't like (eventhough the *casting* programmer
should know better). so, cast all function pointers to (void*) before
casting them to the target type, which effectively makes gcc blind.

Fri May 20 14:12:19 2005 Tim Janik


* sficomport.c: disable debugging message that log every
communication bit. these are of not much use really and hide
the sensible debugging messages.

* sfilog.c: don't let the message type label default to ident if
NULL is specified. callers of sfi_msg_type_label() can handle NULLs.
key_list_change(): allow key seperation by ',' and ignore spaces.

Thu May 19 17:53:48 2005 Tim Janik


* sfilog.h, sfilog.c:
major (and hopefully final) revamp of the message/logging API.
got rid of log message keys. instead, added mechanism to create
new message types. added globally accessible message type bitmask
to quickly figure whether logging is neccessary. moved the API to
SfiMessage and sfi_msg_* namespace.

* sfithreads.h: added wrapper macros (and auxillary functions) to
access atomic integers and atomic pointers in a typesafe way.

* *.c: adapted to new debugging API.

Mon May 16 21:01:01 2005 Tim Janik


* sficomport.h, sficomport.c: added sfi_com_port_test_reap_child().

Mon May 16 17:32:24 2005 Tim Janik


* sfilog.h, sfilog.c: API renames for consistency.
added sfi_log_msg_trampoline() to construct a message and then
hand it over to a message handler.

Sun May 15 15:52:18 2005 Tim Janik


* Makefile.am: compile toyprof conditionally.

Sat May 14 20:49:59 2005 Tim Janik


* sfilog.h, sfilog.c:
cleanups. API cleanups and consolidations. allow custom log bits.
renamed message types from SFI_LOG_* to SFI_MSG_*.

Thu May 12 00:07:51 2005 Tim Janik


* sfilog.h, sfilog.c: made log message much richer.
messages now carry a title, a primary, a secondary message and
details messages. added sfi_log_msg() and a set of log message
formating macros SFI_MSG_*() to facilitate rich log messages.

Mon Apr 11 00:49:40 2005 Tim Janik


* sfi/sfiustore.c: fixed data pointer in sfi_ppool_foreach().

Mon Mar 7 07:32:03 2005 Tim Janik


* removed obsolete .h C++ headers.

* adapted sources to compile against .hh C++ headers.

Thu Jan 20 17:51:25 2005 Tim Janik


* sfistore.[hc]: removed position arguemtn from SfiStoreReadBin().
it's the responsibility of the SfiStoreReadBin() implementation to
provide consequtive data blocks now.

Thu Jan 20 17:31:01 2005 Tim Janik


* sfitime.c (sfi_time_from_string_err): parse dates without time
specifications for yyyy-mm-dd, mm/dd/yyyy and dd.mm.yyyy.

Thu Jan 20 17:15:06 2005 Tim Janik


* sfistore.[hc]:
sfi_wstore_putf(): store floats locale independent.
sfi_wstore_putd(): store doubles locale independent.
sfi_wstore_printf(): issue warnings if the format string contains
localised directives.

Thu Jan 20 15:18:11 2005 Tim Janik


* glib-extra.[hc] (g_printf_find_localised_directive): detect
localised printf format directives.

Thu Jan 20 05:13:30 2005 Tim Janik


* sfistore.c (sfi_wstore_flush_fd): return negative errno
in case of errors.

Thu Jan 6 18:50:27 2005 Tim Janik


* sfistore.[hc]: added sfi_rstore_parse_zbinary() to parse binary
block offset+length adresses zero mark relative.

Fri Dec 31 01:35:09 2004 Tim Janik


* sfifilecrawler.c (errno_check_file): fixed mode="e", which
didn't proeprly call access() due to F_OK==0.

Mon Dec 27 23:57:29 2004 Tim Janik


* sfiprimitives.[hc]: call sfi_ring_uniq() from sfi_ring_uniq_free_deep()
if no destroy functions is given.

Mon Dec 27 03:42:17 2004 Tim Janik


* sfiprimitives.[hc]: added sfi_ring_uniq_free_deep() and
sfi_ring_copy_deep_uniq(). made sfi_ring_uniq() more efficient by
operating in place.

* testsfi.c: test sfi_ring_copy_uniq().

Mon Dec 27 01:27:56 2004 Tim Janik


* sfiprimitives.c: document guaranteed properties (stable-ness,
set precedence for duplicate elements, etc.) for ring functions.

Sun Dec 26 23:50:16 2004 Tim Janik


* sfilog.c: cosmetics, strip path from executable names if logging
debugging info.

Fri Dec 24 22:48:19 2004 Tim Janik


* sfidl-corecxx.cc: there's no need to inline the choice
value accessor for enum types in generated code.

* sfiparams.[hc]: allow provision of a choice value array for
GEnum types by setting an accessor function with
sfi_enum_type_set_choice_value_getter().

Mon Dec 20 15:03:57 2004 Tim Janik


* sfidl-corecxx.cc: call property_changed() in response to automated
properties. changed property_changed() to return a bool which indicates
whether update_modules() needs to be called after property_changed().
adapted all usages.

Sun Dec 19 01:01:41 2004 Tim Janik


* sfiserial.c (sfi_serialize_primitives): relaxed parsing strictness
for booleans, so we parse any int and float as boolean now.

Thu Dec 16 01:57:36 2004 Tim Janik


* sfistore.c (sfi_rstore_new_open): fail to open directories,
block devices or symbolic links.

Mon Dec 6 15:37:29 2004 Stefan Westerfeld


* sfidl-generator.cc(splitName): Fix splitting of "Bse::FFTSize" to
"Bse", "FFT" and "Size", using the rule that more than two upper case
letters followed by a lower case letter indicate a word boundary.

* testsfidl.cc: Added "Bse::FFTSize", "XWindows::WMHints" to test the
new rule.

Fri Dec 3 21:24:34 2004 Stefan Westerfeld


* sfidl-parser.*: Parse #pragma lines into Pragma structures, which can
then be retrieved by individual language bindings using
parser.getPragmas ("SomeBinding"). This will ret

* sfidl-clientc.*: Support new #pragma lines:
#pragma SFIDL ClientC::binding_specific_c_header "foo.h"
#pragma SFIDL ClientC::binding_specific_c_source "foo.c"
They allow including custom C code into the generated output.

Fri Dec 3 15:50:31 2004 Tim Janik


* sfitypes.c (sfi_choice_match_detailed): always match on word
boundary only.

Tue Nov 23 16:25:05 2004 Tim Janik


* glib-extra.h (g_static_assert): g++-3.4 doesn't accept structure casts
in constant expressions (e.g. G_STRUCT_OFFSET (GPollFD, fd) ==
G_STRUCT_OFFSET (struct pollfd, fd)), so implement static_assert() via
negative array sizes.

Mon Nov 15 20:10:06 2004 Tim Janik


* sfitime.c (sfi_time_from_string_err): fixed up mktime() usage by
temporarily unsetting $TZ, use timgm() if available.

Fri Oct 15 23:59:46 2004 Tim Janik


* sfiprimitives.[hc]:
sfi_pointer_cmp(): renamed from sfi_compare_pointers(), changed users.
sfi_ring_uniq(): made this an ring modifying rather than copying
function. this plugs some leaks in current function usages.
sfi_ring_copy_uniq(): copy ring and remove duplicates.

* testsfi.c: adapt to sfi_ring_uniq() modifying inplace now.

Wed Oct 13 18:50:19 2004 Tim Janik


* sfithreads.[hc]: reworked hazard pointer guard API.
sfi_guard_register(): provide an array of hazard pointers in
O(1) time if this thread previously deregistered an array
of sufficient size.
sfi_guard_protect(): renamed from sfi_guard_store(), require
array index to adress hazard pointer within guard.
sfi_guard_n_snap_values(): renamed.
sfi_guard_snap_values(): renamed, provide ordering guarantee.
sfi_guard_is_protected(): provide ordering guarantee.

Tue Oct 12 10:58:21 2004 Tim Janik


* sfithreads.[hc]: implemented hazard pointers or thread guards.
sfi_thread_handle_deleted(): clear thread data after the wakeup destroy
function has been called. deregister all thread guards.
sfi_guard_deregister():
sfi_guard_register(): register/deregister guards.
sfi_guard_store(): protect a pointer via a guard.
sfi_guard_get_n_values(): number of values for collection.
sfi_guard_collect(): collected protected pointers.
sfi_guard_is_protected(): check single pointer protection.

Fri Oct 8 06:49:42 2004 Tim Janik


* glib-extra.[hc]: removed g_strconcat_with_null() which used to work
around a GLib-2.4 bug.
added g_static_assert() to perform compile time assertions.

Tue Oct 5 22:48:52 2004 Tim Janik


* sficxx.h:
* sfivalues.c:
* sfidl-corec.cc:
* glib-extra.h: did code cleanups possible with Glib-2.4.

Mon Oct 4 03:44:03 2004 Tim Janik


* sfiparams.c: fixed param-spec leaks.

* sfilog.[hc]: changed logging to use a handler per-thread.

* sfiprimitives.[hc]: added sfi_seq_validate().

Sat Oct 2 21:01:44 2004 Tim Janik


* sfilog.[hc]: revamped logging API. sfi_warn() became sfi_warning().
sfi_error(), sfi_warning(), sfi_info() and sfi_diag() do not take an
extra argument anymore. they are meant to indicate user visible errors,
warnings and informations, and if requested, diagnostics.
new variants exist for user configurable error, warning and information
messages: sfi_error_msg(), sfi_warning_msg(), sfi_info_msg(). these
take an extra configuration relevant (and translated) argument.
some more API cleanups wrg logging system configuration.

* sfithreads.[hc]: added sfi_thread_get_pid(), sfi_thread_get_name().

Tue Sep 28 21:45:12 2004 Tim Janik


* sfifilecrawler.[hc]: added sfi_file_check() and sfi_file_equals()
(based on functions from bse/gslcommon.c). documented g_file_test_all().

Thu Sep 23 15:50:18 2004 Tim Janik


* glib-extra.[hc]: added g_string_prefix_lines() which adds a prefix
to every line (before '\n') within a GString, usefull for indenting.

Tue Sep 21 21:31:23 2004 Tim Janik


* sfidl-corec.cc (namespace): don't generate prototypes without
implementations.

Mon Sep 20 21:52:23 2004 Tim Janik


* sfidl-corecxx.cc: generate class definiiitions which may contain
function bodies after all other types have been prototyped, declared
and defined.

Mon Sep 20 01:12:01 2004 Tim Janik


* sfidl-corecxx.cc: added class_has_automation_properties().
implemented code geenration for automated property handling.
call set_accessors() from class_init() and supply trampolines
for set_property(), get_property(), editable_property(),
get_candidates() and property_updated().
editable_property() and get_candidates() are virtual to allow
custom implementations in effects.

Thu Sep 16 15:59:05 2004 Tim Janik


* sfidl-corecxx.cc: provide a IDType typedef in the synthesis module
property structures for the property type IDs use by the implementing
effect base object. provide an AutoUpdateCategory typedef in the
efefct base object which aliases Synthesis:Module::NeedAutoUpdateTag
for effects with :automate: properties.

Wed Sep 15 21:37:17 2004 Stefan Westerfeld


* sfidl-parser.cc: Fixes: printWarning/printError should never be
called with a "\n", as this is added implicitely. When a warning is
printed, the output now says so ("warning: ...").

Wed Sep 15 21:23:29 2004 Stefan Westerfeld


* sfidl-parser.hh sfidl-parser.cc: Provide label, blurb and options of
a pspec constructor in the Param struct. Also try to unescape and
evaluate options to options_literal, a ready-to-use concatenated
version of the string without \" and similar constructs. Throw a
warning if this evaluation fails.

Tue Sep 14 19:10:07 2004 Tim Janik


* sfiparams.[hc]: const fixups.

Wed Sep 8 15:36:41 2004 Tim Janik


* glib-extra.[hc]: added g_intern_printf() to return a static printf-
formatted string for which a quark exists.

Mon Sep 6 12:35:27 2004 Tim Janik


* sfiprimitives.c (sfi_ring_reorder): fixed pointer comparision
function that caused an unsorted intermediate structure.

* testsfi.c (test_sfi_ring): added one more sfi_ring_reorder() test.

Sat Sep 4 04:59:57 2004 Tim Janik


* sfiparams.h: removed misplaced pspec option comments.

* sfidl-corecxx.cc:
* sfidl-corec.cc: pspec constructor fixups.

* sfi/sfidl-parser.hh:
* sfi/sfidl-parser.cc: implemented ConstIdent, a constant able to hold
an identifier.

Thu Sep 2 03:29:39 2004 Tim Janik


* glib-extra.c: g_option_find_value(): match +/- option modifiers only
at option boundaries, allow = after option name for value assignments.

* sfiparams.h: more preliminary pspec option documentation.

Wed Sep 1 01:45:40 2004 Tim Janik


* sfiprimitives.[hc]:
sfi_ring_reorder(): changed this into a ring modifying function without
the need of a custom cmp function.
properly handle duplicates in the unordered list.
ring_reorder_lookup(): fixed off-by-one error when adjusting offset,
got rid of calling compare function by using pointer comparisons.

* testsfi.c: more sfi_ring_reorder() tests.

Sun Aug 29 04:14:19 2004 Tim Janik


* sficomport.c (sfi_com_port_send_bulk): in case the comport got
disconnected, don't free values not belonging to the port.

* sfimemory.c: disabled block-allocator, use malloc/free instead. there's
no platform currently where we have performance problems with malloc/free.

* sfiserial.[hc]: added sfi_value_store_stderr() to allow easy debugging
of marshalled value contents.

Sat Aug 28 22:14:30 2004 Tim Janik


* sfiprimitives.[hc]: const fixes for SfiRing.
added sfi_ring_reorder() to "unsort" a ring.

* sfifilecrawler.c: caller fixup.

* testsfi.c: ring reordering tests.

Sat Aug 28 17:53:30 2004 Tim Janik


* sfiprimitives.[hc]: added SfiRing methods: sfi_ring_insert_before(),
sfi_ring_insert(), sfi_ring_position(), sfi_ring_index().

Thu Aug 26 13:13:11 2004 Tim Janik


* sfidl-corec.cc: use make_TYPE_MACRO() instead of makeGTypeName().
don't use typeArray() of CodeGeneratorCBase, that's simply type + "*".
roll out own pspec constructor function construct_pspec() which is
simpler than that of CodeGeneratorCBase. removed cruft.
changed base type to CodeGenerator, as there's nothing left we'd
use from CBase. (this also fixes SfiProxy uses instead BseItem in
the core binding).

Fri Aug 20 18:35:57 2004 Tim Janik


* sfigluecodec.c (decoder_proxy_get_pspec): don't try to free NULL pspecs.

Sun Aug 15 11:53:05 2004 Tim Janik


* sfiglueproxy.c (sfi_glue_proxy_disconnect): acdept any_signal as
well as any-signal.

Sat Jul 17 13:24:57 2004 Tim Janik


* sficxx.h: implement iterators for sequences and fblocks.

* sfiprimitives.[hc]: allow foreign memory regions for fblocks.

Wed Jul 14 01:54:54 2004 Tim Janik


* sfithreads.c: use syscall (__NR_gettid) instead of
_syscall0() which isn't present on ia64 linux. fixed
initial accounting values.

Sun Jul 11 23:57:10 2004 Tim Janik


* sfiprimitives.[hc]: added sfi_ring_from_list(),
sfi_ring_from_list_and_free(), sfi_ring_from_slist() and
sfi_ring_from_slist_and_free() ring constructors.

Sun Jul 11 23:37:46 2004 Tim Janik


* sfiprimitives.[hc]:
added SfiCompareFunc(), sfi_compare_pointers() and a set of
new ring methods:
sfi_ring_copy_rest(): copy a partial ring.
sfi_ring_uniq(): remove duplicate ring elements.
sfi_ring_union(): produce a union of two rings.
sfi_ring_intersection(): produce an intersection of two rings.
sfi_ring_difference(): produce a set-difference on rings.
sfi_ring_symmetric_difference(): produce a symmetric set-difference
on rings.
sfi_ring_includes(): test super/sub set relation.
sfi_ring_equals(): test ring equality.
sfi_ring_mismatch(): find mismatching ring elements.
sfi_ring_min_node():
sfi_ring_min():
sfi_ring_max_node():
sfi_ring_max(): find minimum/maximum in rings respectively.

* testsfi.c: added SfiRing implementation test.

Sat Jul 10 18:23:25 2004 Tim Janik


* sfidl-corecxx.cc: generate *Properties structure for synthesis modules
regardless of whether the object has properties or not (since the module
API depends on the structure's presence).
similar for the *PropertyID numeration.

Wed Jul 7 13:49:30 2004 Tim Janik


* glib-extra.[hc]: added g_predicate_idle_add() and *full() variant, to
install an idle handler with condition.

Sun Jul 4 08:09:48 2004 Tim Janik


* sfidl-parser.hh: with gcc-3.4, finding memebers of a dependant base
in template definitions will only work with qualified names, so use
this->end() instead of just end() as iterator from the base.

Tue Jun 29 01:52:14 2004 Tim Janik


* glib-extra.h: added G_DEFINE_DATA_TYPE() and variants to have
simple type creation macros for types that use class_data or
real_class in the init functions.

* sfiparams.h: added SFI_PARAM_GUI_READABLE.

Fri Jun 11 04:40:08 2004 Tim Janik


* sfidl-corecxx.cc: procedure generation fix.

* sfithreads.[hc]: implemented thread naming and usage accounting.

Thu May 20 14:11:01 2004 Tim Janik


* sfidl-corecxx.cc: use sfi_category_concat() to fixup categories.
support translated categories.

* sfitypes.[hc]: added helper function sfi_category_concat().

Wed May 5 16:37:26 2004 Tim Janik


* sfilog.[hc]: rewrite of the logging/debugging system.
debugging messages still need a key, diagnostics and
simple messages are as easy as printf() to sdterr and
everything else requires log context information for
message configuration.

* *.c: adapted log, error, warning and debugging messages.

Mon May 3 20:00:52 2004 Tim Janik


* sficomwire.c (sfi_com_spawn_async): set child_pid to 0 upon failure.

Fri Apr 30 09:13:47 2004 Tim Janik


* glib-extra.h: small glib-2.4.0 compat addition.

Sun Apr 25 18:07:13 2004 Tim Janik


* sfithreads.c (thread_get_tid): minor preprocessor condition fix.

Fri Mar 19 13:28:04 2004 Stefan Westerfeld


* sfidl.cc: Don't use optind any longer, since we also don't use
getopt() any longer. This fixes compilation on systems where optind
is not declared in those header files sfidl.cc directly/indirectly
includes.

Tue Mar 2 11:09:48 2004 Tim Janik


* sfidl-corecxx.cc: fixed choice serialization type in to_rec() impls.

Tue Mar 2 10:33:55 2004 Tim Janik


* sfidl-parser.cc (parseInfoOptional): lowercase info keys before
entering (key,value) pairs into the info map, since all read-outs
use lowercase keys.

Tue Mar 2 10:22:26 2004 Tim Janik


* sfitypes.[hc]: removed sfi_boxed_make_record(),
sfi_boxed_get_record_info(), sfi_info_string_find(),
sfi_boxed_make_sequence() and sfi_boxed_get_sequence_info()
which are now unused. changed callers.

Mon Mar 1 23:33:56 2004 Tim Janik


* sfidl-corecxx.cc: provide namespace to BSE_CXX_DECLARED_*_TYPE()
macro generations. fix to_rec() and to_seq() method generations
by using SFI types instead of boxed types for the resulting record
fields. provide resizing constructor for egenrated sequences.
initialize GEnumValue values from actual enum value symbols.
assign implementation values as specified in the idl files to
enum value symbols, since this is a core binding.

* sfidl-corec.cc: turned the core-c binding into a C++ wrapper that
depends on the core-cxx binding. lots of cleanups and fixes.

* sficxx.h: added set_boxed() method to record handles.

* Makefile.am: generate a testidl binding with --host-c as
--core-c depends on a C++ binding.

* testsfi.c: disabled tests that depend on the old --core-c.

Fri Feb 27 13:57:52 2004 Tim Janik


* sfidl-corecxx.cc: added --macro option wich generates a macro to
register all types contained in an idl file.

Fri Feb 27 13:54:56 2004 Tim Janik


* sfidl-corec.hh:
* sfidl-corec.cc: major reorganization of the code. split up
generation into multiple digestible functions.
implement CoreC code generator in internal namespace and inline
methods.

Fri Feb 27 06:23:36 2004 Tim Janik


* sfidl-corecxx.cc: fixed i18n and identifier issues with
ichannel/jchannel/ochannel registration.

* sfi/sfidl-parser.[hc]*: streams have ident, label and blurb, where
label and blurb are subject to i18n.

Thu Feb 26 20:37:57 2004 Tim Janik


* glib-extra.[hc]: removed legacy v_int parsing code from GScanner,
use v_int64 solely now. renamed creation function to g_scanner_new64(),
to catch old glib scanner uses.

* testsfi.c:
* sfistore.c:
* sficomport.c: 64bit integer scanning fixes.

* sfidl-parser.[hc]*: 64bit parsing ans Constant handling fixes, allow '+'
as number sign besides '-'.

Wed Feb 25 14:46:33 2004 Tim Janik


* sficomwire.c (sfi_com_spawn_async): drop nice-level after forking.

* sfithreads.[hc]: added sfi_thread_self_pid() which returns the threads
thread id, regardless of multiple threads using the same pid.
(sfi_thread_run): added hack to filter out bogus "Priorities can only be
increased by root." warnings from glib around thread creation.

Mon Feb 23 23:34:28 CET 2004 Stefan Westerfeld


* sfidl-cbase.*
* sfidl-clientc.*:
* sfidl-clientcxx.*:
* sfidl-corec.*:
* sfidl-corecxx.*:
* sfidl-factory.*:
* sfidl-generator.*:
* sfidl-hostc.*:
* sfidl-typelist.*:
* testsfidl.cc:
* sfidl-options.*: Don't parse language specific options in the Option
class - let the code generators parse them themselves. Print help for
bindings in the CodeGenerators with the new virtual
CodeGenerator::help() function.

Mon Feb 23 19:38:35 2004 Stefan Westerfeld


* sfidl-parser.*: Report filename/line for missing include files.

Mon Feb 23 17:48:46 2004 Stefan Westerfeld


* sfidl-parser.cc: Fixed bug - code generated will be generated for
types defined directly in stdin (using sfidl -).

* testidl.idl: Added a choice definition containing all syntactically
valid ways of defining a choice value.

* testidl.c: Added _(x) macro: translates "example" to "example_tr".

Mon Feb 23 17:30:15 2004 Tim Janik


* sfidl-parser.cc (parseChoiceValue): fix simple assigments to
choice values.


Mon Feb 23 04:04:38 2004 Stefan Westerfeld


* sfidl-parser.cc: Bugfix: It is now possible to use fully qualified
constant names (such as Bse::STANDARD) within param specs.

Mon Feb 23 01:27:25 2004 Stefan Westerfeld


* sfidl-clientc.* sfidl-hostc.* sfidl-cbase.*: Code cleanup of the
--host-c binding. Moved common functionality from CodeGeneratorClientC
and CodeGeneratorHostC to CodeGeneratorCBase.

* sfidl-options.cc: Don't suggest the user to specify --interface or
--implementation (these flags don't exist any longer).

Sun Feb 22 22:10:34 2004 Stefan Westerfeld


* sfidl-options.*: Remove generateConstant, generateSignalStuff and
generateProcedures option. The first two were not really used, and
each language binding knows whether to generate procedures or not (the
client bindings do, the other bindings don't).

* sfidl-clientc.*: Code cleanup: splitted the run() method in lots
of smaller methods. Adapted to the changes in the Options class.

* sfidl-corec.cc sfidl-hostc.cc: Adapted to the changes in the Options
class. Started code cleanup.

* sfidl-clientcxx.cc: Fixed bug - there shouldn't be info string based
information in the binding generated for records/sequences.

* sfidl-generator.*: Removed CodeGeneratorQt (and the --qt option),
which didn't do anything useful until now, anyway.

Sun Feb 22 01:44:09 2004 Stefan Westerfeld


* sfidl-generator.*: Put seperate classes in seperate files. So this
now should contain class CodeGenerator, nothing more.

* sfidl-cbase.* sfidl-cxxbase.*: Base classes for C / C++ language
bindings (from sfidl-generator.cc).

* sfidl-clientc.* sfidl-hostc.* sfidl-corec.*: Three new C language
bindings (--client-c --host-c --core-c), all containing the code from
sfidl-generator.cc

* sfidl-corecxx.*: Rename from sfidl-module.*.

* sfidl-clientcxx.*: Rename from sfidl-cxx.*. Moved some stuff from
the CodeGeneratorCxxBase to CodeGeneratorClientCxx, since the core
binding will not use it.

* sfidl-module.* sfidl-cxx.*: Removed (contents are sfidl-corecxx.*
and sfidl-clientcxx.* now).

* sfidl-options.cc: Stripped --boxed --interface --implementation
options: these are selected implicitely by selecting the language
binding.

* sfidl.cc: No longer default one language binding (CodeGeneratorC).

* Makefile.am: Adapted to the new sfidl file structure, and the new
options.

Sat Feb 21 23:28:58 2004 Tim Janik


* cvs copied sfidl sources:

* sfidl-cbase.cc, sfidl-cbase.hh:
* sfidl-hostc.cc, sfidl-hostc.hh:
* sfidl-corec.cc, sfidl-corec.hh:
* sfidl-clientc.cc, sfidl-clientc.hh: from sfidl-generator.*

* sfidl-clientcxx.cc, sfidl-clientcxx.hh: from sfidl-cxx.*

* sfidl-corecxx.cc, sfidl-corecxx.hh: from sfidl-module.*

* sfidl-cxxbase.cc, sfidl-cxxbase.hh: from sfidl-cxx.*

Thu Feb 19 03:59:07 2004 Tim Janik


* sfiparams.[hc]: allowed choice values to have translatable labels
and blurbs, the canonical identifier is named choice_ident now, adapted
callers.

* sfidl-generator.cc: provide choice values through a funciton,
not a static array, so we can translate the choice value label
and blurb. provide value conversion implementations.

* sfidl-module.cc: translate choice values.

* sfidl-parser.[hc]*: fix v_int64 access of scanner values.
made parseChoiceValue() accept translated labels and blurbs for choice
values. made choice value number assignment optional.

* sfidl-cxx.cc: fixed sizeof() vs. G_N_ELEMENTS().

Wed Feb 18 01:40:53 2004 Tim Janik


* sfinote.c (is_note_letter): fixed missing to_lower().

Wed Feb 18 01:36:01 2004 Tim Janik


* sfinote.c (sfi_note_from_string_err): in addition to parsing notes
like Cis-1, support #C-1 and C#-1. also, support H as alias for B.

Mon Feb 16 12:35:33 2004 Tim Janik


* sfinote.c: strip whitespaces from string before attempting to parse
notes.

* sfiserial.c: avoide unnecessary newlines before sequences and records.

Sat Feb 14 08:53:03 2004 Tim Janik


* sfitime.c (_sfi_init_time): applied fix from Rasmus Kaj <kaj@e.kth.se>
to find out the GMT offset on FreeBSD and linux. edited to preserve
portability history.

Wed Feb 11 08:09:57 2004 Tim Janik


* sfiprimitives.c: applied sfi_seq_append_empty() code simplification
patch from Stefan Westerfeld.

* sfiglue.c: same here.

Wed Feb 11 02:08:04 2004 Tim Janik


* bse-plugin-generator.c: removed this file.

* Makefile.am: install sfidl instead of bse-plugin-generator.

Sun Feb 8 03:48:36 2004 Tim Janik


* sfitypes.c (sfi_choice_match_detailed): only match partial choice
names starting at word boundaries.

* sfiustore.[hc]: added sfi_upool_list() function to list ids in a pool.

* sfivalues.[hc]:
(sfi_value_choice2enum):
(sfi_choice2enum): match choices against enum value names only, since
nicks are going to be used for the GUI and since the partial and
canonifying matching supported by sfi_choice_match_detailed() already
xceeds the flexibility provided by nicks by orders of magnitude.
(sfi_choice2enum_checked): introduced error-checking version of
sfi_choice2enum().
(sfi_enum2choice): provide choices in schme-canonified form (lower
case, delimited by '-').

Wed Feb 4 22:37:56 2004 Stefan Westerfeld


* sfilog.c: Speed optimization: Lookup the GQuark for the sfi log
key in the init function instead of during each log message.

* sfivalues.c: Speed optimization: Use sfi_categorize_type() to find
out which type src_value has in sfi_value_copy_deep(), instead of
multiple if statements.

Sun Feb 1 16:10:42 2004 Tim Janik


* sfifilecrawler.[hc]: added sfi_make_dirname_path() to easily
create all directories required by a filename.
added sfi_path_get_filename() to create absolte filenames,
properly expanding ~ and ~USER.

* sfiserial.c: serialize :hex ints by writing out hexadecimal numbers.

Wed Jan 28 15:46:16 2004 Tim Janik


* sfidl-module.cc: remove --module option. select the core
C++ language binding via --core-cxx or via --plugin.

* sfidl-cxx.cc: fixed option description.

* bse-plugin-generator.cc: adapt to --plugin option.

Tue Jan 27 16:31:13 2004 Tim Janik


* sfidl-module.cc: cleaned up some cruft.

Tue Jan 27 16:07:27 2004 Tim Janik


* sficomport.[hc]: support sending value lists, added ability to
receive lists of values to reduze context switches.

* sficxx.h: reimplement specialized versions of boxed_copy and
boxed_free, value_get_boxed and value_set_boxed functions for
record handles and sequences which special case SfiRec and
SfiSeq vs. boxed record and sequence types.

* sfidl-module.cc: provide NAMESPACE_IS_OBJECT() macros for generated
object types. implement value conversions between boxed and
Sfi types (sfirec/records, sfiseq/sequences, choice/enum, object/proxy).

* sfigluecodec.c: bulk send events if possible to reduce
context switches.

* sfivalues.[hc]: added sfi_value_get_enum_auto() and
sfi_value_set_enum_auto() to support the idl compiler.
made sfi_enum2choice() return a constant, non-duplicated string.

Tue Jan 27 00:31:35 2004 Stefan Westerfeld


* sfidl-parser.*: Resort classes in a way that derived classes always
occur after their base classes in the vector returned by getClasses().
This allows bindings to rely on that assumption; in C++ for instance
you need to specify base classes before the derived classes, whereas
the IDL file syntax allows you to invert the order.

Mon Jan 26 19:55:42 2004 Stefan Westerfeld


* sfidl-generator.*: CodeGenerator: Added setOption and getOptions
methods, to allow code generators to come with their own options.

* sfidl-options.cc sfidl.cc: Parse options provided by code generators
in Options::parse. Get rid of a the Target enum, use factories only to
choose which code generator to use.

* sfidl-cxx.* sfidl-generator.* sfidl-typelist.*: Provide a factory
for --cxx, --qt and --list-types. Changed CodeGenerator::run() to return
boolean, to allow code generators to fail on inconsistent options.

* sfidl-module.cc: Adapted to the new CodeGenerator::run().

* sfidl-factory.cc: Fixed evil bug. Using global constructors ensures
no ordering (depends on the linker, among other things). Thus we need
to use a dynamically allocated list of factories, otherwise factories
might try to add themselves to the factory list before the factory list
exists.

* Makefile.am: Added sfidl-typelist.cc.

* testsfidl.cc: Test option parsing.

Mon Jan 26 02:42:32 2004 Tim Janik


* sfidl-module.cc:
(make_PrefixedTypeName): allow string appends.
(find_class): new class to get class structure from type name.
(is_cxx_class): new function, figure whether a class type is implemented
in C++ in Bse. (should make use of an extra commandline option once
possible).
(OBJECT): implemented ordinary object pointers, respecting C/C++
class implementations. this misses out cross-reference support though.