Sun Jun 8 22:59:52 2008 Stefan Westerfeld


* sfidl-factory.cc:
* sfidl-options.cc:
* sfidl-namespace.cc:
* sfidl-parser.cc:
* sfidl-cxxbase.cc:
* sficxx.hh: Compile fixes for G++-4.3: Added a few standard includes.

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.

Sun Jan 25 21:13:16 2004 Stefan Westerfeld


* sfidl-namespace.cc: Add closing comment when closing namespaces.

* sfidl-parser.cc: Support namespaces in namespaces. I needed this
for testing the closing comments, but it might be a useful feature
anyway...

Sun Jan 25 19:42:31 2004 Stefan Westerfeld


* sfidl-cxx.cc sfidl-generator.cc sfidl-parser.cc: Put fully qualified
name into the ChoiceValue data structure while parsing.

Sun Jan 25 08:38:36 2004 Tim Janik


* sfidl-module.cc: removed lots of old ad-hoc string conversion
fucntions. replaced with varians of rename().
refactored class and enum generation into different functions.
generate class_init() in the implementation section, after all
types have been defined. use NamespaceHelper.printable_form()
which returns static strings that don't corrupt.
lots of symbol name generation fixes.
resolved namespace problems/hacks with NamespaceHelper.

* sfidl-module.h: removed unused code.

* sfidl-namespace.hh, sfidl-namespace.cc:
added printable_form() to return a constant c-string from
printableForm().

Sun Jan 25 05:30:32 2004 Tim Janik


* sficxx.h: renamed value_set() and value_get() methods to
value_set_TYPE() and value_get_TYPE(), depending on what TYPE
they set/get. added set_boxed() method to Sequence. added
c_ptr() and set_boxed() to Sequence (basically, because
operator=() isn't inherited).
added cxx_value_set_boxed_sequence(), cxx_value_get_boxed_sequence()
cxx_value_set_boxed_record() and cxx_value_get_boxed_record().

* sfidl-cxx.cc: adapt to get_value/set_value renames, changed
generated implementation to operate on SfiRec and SfiSeq now.
the boxed variants are taken care of by sfidl-module.cc.

* sfidl-module.cc: fixed generic SfiRec pspec constructor.
adapt to value_set/value_get renames.

* sfiparams.[hc]: added sfi_pspec_rec_generic() for SfiRec
idl types.

Sun Jan 25 04:41:23 2004 Tim Janik


* bse-plugin-generator.cc: convert to sfidl code generator
factories. use "--module" factory.

* sfidl-module.h: removed (disabled) class definition.

* sfidl-module.cc: rewrote code generator into self-contained
language-binding object.

* sfiprimitives.[hc]: added sfi_seq_append_empty() and
sfi_rec_forced_get() to simplify code generation.

Sat Jan 24 19:13:40 2004 Tim Janik


* sfidl-cxx.cc (printRecSeqImpl): remove type_name argument from
BSE_CXX_DECLARE_RECORD() and BSE_CXX_DECLARE_SEQUENCE() which they don't
need since we provide type_name().

Sat Jan 24 18:25:21 2004 Tim Janik


* glib-extra.h: copied over the newest incarnation of G_DEFINE_TYPE()
from glib, which type_name_ prefix parent_class variables.

Sat Jan 24 06:55:57 2004 Tim Janik


* sfidl-cxx.cc: switch to a get_element() method for sequences,
return SfiRecFields for get_fields() of records.

* sfiparams.[hc]: reimplemented boxed type helpers, based on an
element pspec for sequences and SfiRecFields for records.

Sat Jan 24 04:44:00 2004 Stefan Westerfeld


* sfidl-generator.*: Make rename() prefix namespace_seperator for
absolute namespaces only if the seperator is "::", as for C++, its
useful, for the other supported languages, useless. Result: make check
passes now, finally.

* testsfidl.c: Changed the message from "Foo." to something more
meaningful.

Sat Jan 24 04:16:43 2004 Stefan Westerfeld


* sfidl.cc sfidl-options.* sfidl-factory.* Makefile.am: Added a new
mechanism, which allows bindings to register themselves in the option
parser, using factories. This allows sfidl to know which bindings it
supports, even though the binding will only need to setup its factory
within its own C++ file.

* sfidl-module.cc bse-plugin-generator.cc: Use this mechanism for the
--module option.

Sat Jan 24 03:08:44 2004 Stefan Westerfeld


* sfidl-generator.*: Added generic rename function, which can be used
to reformat typenames. Should be able to do everything that
makeLowerName, makeMixedName, makeUpperName, makeGTypeName did, and
more (at the cost of having a more complex API).

* Makefile.am testsfidl.cc: Added test code.

Sat Jan 24 01:50:55 2004 Tim Janik


* sfidl-cxx.cc: fixed get_fields() usage in pspec constructors,
imlpemented get_fields() for sequences.

Sat Jan 24 01:01:43 2004 Stefan Westerfeld


* sfidl-cxx.cc sficxx.h: Made the to_seq conversion function static,
similar to to_rec.

Fri Jan 23 19:27:10 2004 Stefan Westerfeld


* sfidl-cxx.cc: CodeGeneratorCxxBase::printRecSeqImpl: generate
get_fields method only when used for the server binding.
Fixed bug in the property setter generation - record and sequence
properties in the C++ client binding should be fine now.

Fri Jan 23 02:59:28 2004 Tim Janik


* sficxx.h: added class GNewable which supplies new/delete operators
based on g_malloc()/g_free(). required, since our generated C++
classes mimick plain C records/sequences.

* sfidl-cxx.cc: derive Records from GNewable.

Fri Jan 23 02:30:27 2004 Tim Janik


* sficxx.h: added take() to Sequence, added steal() to Record
and Sequence. added templates used by code generator:
cxx_boxed_copy, cxx_boxed_free, cxx_boxed_to_rec,
cxx_boxed_from_rec, cxx_boxed_to_seq, cxx_boxed_from_seq,
cxx_value_get_record, cxx_value_set_record,
cxx_value_get_sequence and cxx_value_set_sequence.

* sfidl-cxx.[hc]*: copied lots of string helpers from sfidl-module.cc
here because we still have no single identifier/typename
manipulation function. added typed_pspec_constructor() and
untyped_pspec_constructor() to create pspec constructors with and
without presence of type system respectively.
added printChoicePrototype() and printChoiceImpl() to implement
choice generation. lots of fixups to printRecSeqForwardDecl(),
printRecSeqDecl() and printRecSeqImpl(). added missing record and
sequence methods, using the above templates.

* sfidl-module.[hc]*: use pspec constructor generation code from
sfidl-cxx.c, added choice generation. more property fixes.

* sfidl-namespace.cc: added fixme, this should generate comments
telling what namespace was just closed.

* sfiparams.[hc]: SfiBoxedFields field changes.

* testsfi.c:
* sfidl-generator.cc: pspec constructor fixups.

Wed Jan 21 03:36:21 2004 Stefan Westerfeld


* sfidl-cxx.cc: Added FIXME for indicating where function computing
fields in the server binding should be added.

Wed Jan 21 03:21:00 2004 Stefan Westerfeld


* sfidl-module.cc: More work on records: really call type
registration macros.

* sfidl-namespace.cc: Fixlet: no ; after namespaces.

Tue Jan 20 23:23:28 2004 Stefan Westerfeld


* bse-plugin-generator.cc sfidl-options.cc: Set generateBoxedTypes
to true, as the generated code is supposed to be running within the
core.

* sfidl-cxx.*: Moved the records/sequences into CodeGeneratorCxxBase
to allow them to be accessed by the C++ core binding.

* sfidl-module.cc sfidl-module.h: Start making records/sequences
available to plugins. Not complete yet.

Tue Jan 20 15:35:46 2004 Tim Janik


* sfiparams.[hc]: added sfi_boxed_type_set_fields() and
sfi_boxed_type_get_fields() since sfi_boxed_get_record_info()
and sfi_boxed_get_sequence_info() are scheduled for removal.

* sfivalues.c: fixed up sfi_value_dup_rec().

Tue Jan 20 05:49:22 2004 Tim Janik


* sfidl-module.cc: simplified type speical casing by moving
to C++ type wrappers from sficxx.h.

* sfivalues.[hc]: implemented sfi_value_dup_rec().

Tue Jan 20 05:47:24 2004 Tim Janik


* sficxx.h: implemented BBlock, FBlock, Rec (for SfiRec) and
ObjectHandle (for GObject) wrappers. fixed up assignment
operators.

Tue Jan 20 04:50:39 2004 Stefan Westerfeld


* sfidl-parser.cc: Make ; following the namespace declaration
optional. Don't automatically do a "using namespace Sfi;".

Tue Jan 20 03:09:34 2004 Stefan Westerfeld


* sfidl-module.cc: Don't include bse/bsecxxsmart.h.

Tue Jan 20 02:49:23 2004 Stefan Westerfeld


* sficxx.h sfidl-cxx.cc: Migrate to Sfi::Sequence (instead of
Bse::Sequence).

Tue Jan 20 02:18:22 2004 Stefan Westerfeld


* sficxx.h: The bool operator and is_null() should be const.

* sfidl-cxx.cc: Use RecordHandle<...> instead of SmartPtr<...>.

Tue Jan 20 01:57:47 2004 Tim Janik


* sficxx.h: implement bool operator, is_null() and operator[]
for RecordHandle.

Tue Jan 20 01:35:01 2004 Tim Janik


* sficxx.h: moved GValue get/set functions for strings into class String.
* sfidl-cxx.cc:
* sfidl-module.cc: changed usage cases.

Tue Jan 20 00:50:57 2004 Stefan Westerfeld


* sficxx.h: Added sfi_value_(set|get)_cxxstring here.

Tue Jan 20 00:46:39 2004 Tim Janik


* sficxx.h: added operator+() to strings.

Tue Jan 20 00:39:48 2004 Stefan Westerfeld


* sfidl-module.cc sfidl-cxx.cc: Use Sfi::String instead of
std::string.

Tue Jan 20 00:20:07 2004 Tim Janik


* sficxx.h: define Bool, Int, Num, Real, BBlock, FBlock and Rec
type aliases. made String NULL save (for cstring==NULL which can
happen due to C accessing cstring).
implemented class Sequence<> template.

* testcxx.cc: added sequence tests.

Mon Jan 19 23:12:47 2004 Tim Janik


* sficxx.h: implement comparison operators for class String,
added operator*() to class RecordHandle<>.

* testcxx.cc: more string tests.

Mon Jan 19 22:50:20 2004 Tim Janik


* sficxx.h: added RecordHandle<>(), which implements smart
by-value handling of record pointers.

* testcxx.cc: test RecordHandle<>().

* Makefile.am: added testcxx to make check.

Mon Jan 19 21:46:15 2004 Tim Janik


* sficxx.h: first start at C++ header.

Mon Jan 19 20:19:11 2004 Stefan Westerfeld


* bse-plugin-generator.cc sfidl-cxx.cc sfidl-generator.cc
sfidl-module.cc sfidl.cc: Moved the C/C++ style comments (about this
being a generated file) from sfidl.cc to the code generators, as not
all generators will produces C/C++ish output.

* sfidl-options.cc sfidl-options.cc sfidl.cc sfidl-typelist.: Added
--list-types option, which lists all types which were define within the
.idl file.

* sfidl-parser.cc: Support "-" as filename, for parsing from stdin.

Mon Jan 19 19:03:42 2004 Tim Janik


* sfidl-module.cc (generate_procedures): fix g_value_get_object<>() usage.

Sun Jan 11 06:20:12 2004 Tim Janik


* glib-extra.h: adapt to gtype.h changes.

Sat Jan 10 10:27:40 2004 Tim Janik


* testsfi.c (test_threads): added simple mutex test.

* sfidl-module.cc: rename header local pixstream template to
inlined_pixstream() to not have the same name as the related
calling class method (triggered by older gcc versions).

Fri Jan 9 15:03:22 2004 Tim Janik


* glib-extra.h: added G_DEFINE_TYPE() and variants, which are not
provided by glib versions prior to 2.4.

Tue Jan 6 01:36:31 2004 Stefan Westerfeld


* sfidl-parser.cc sfidl-generator.cc: Move predefined Sfi types (like
Int, Real, Num) into the Sfi namespace and add an implicit using
namespace Sfi.

Mon Jan 5 23:58:38 2004 Stefan Westerfeld


* sfidl-parser.*: Support for "using namespace Foo;" statements.

* sfidl-namespace.*: Remove obsolete code (class ModuleHelper).

Mon Jan 5 14:34:50 2004 Stefan Westerfeld


* sfidl-cxx.* sfidl-module.* sfidl-generator.*: Next part of
createTypeCode breakup: MODEL_NEW, MODEL_COPY and MODEL_FREE are
replaced by funcNew, funcCopy and funcFree instead. These functions
return a std::string again (which makes writing them easier), whereas
there are new variants (cTypeArg, ... cFuncNew) returning a const
gchar* to make using them easy.

Wed Dec 31 01:18:38 2003 Nedko Arnaudov


* sfifilecrawler.c (get_user_home): Use configure detection of
getpwnam_r and getpwnam functions availability.

Wed Dec 31 00:11:48 2003 Stefan Westerfeld


* sfidl-cxx.* sfidl-module.*: Introduce new CodeGeneratorCxxBase
class, which serves as base for CodeGeneratorCxx and
CodeGeneratorModule.

* sfidl-cxx.* sfidl-module.* sfidl-generator.*: Started to break up
createTypeCode into smaller virtual functions, one for each model.
MODEL_ARG, MODEL_MEMBER, MODEL_RET and MODEL_ARRAY are gone now. The
functions which replace them are called typeArg, typeField, typeRet
and typeArray. They also return const gchar*, using
CodeGeneratorCBase::makeCStr (which takes a std::string, and returns a
g_intern_string).

* sfidl-parser.cc: Silence compiler warning about includeImpl being
unitialized (always will be initialized, but gcc doesn't see that).

Tue Dec 30 23:37:29 2003 Tim Janik


* glib-extra.[hc]: added g_object_disconnect_any() as a workaround for
g_object_disconnect() barfing on missing signal connections.

* sfidl-module.[hc]: seperated procedure generation.
changed procedure generation namespace. the client side procedure
implementations look much more intuitive now, if written inside
the Procedure namespace. fixed Procedure type name to follow BSE
conventions.

Mon Dec 29 21:16:07 2003 Tim Janik


* sfidl-module.cc: s/canonify_type/canonify_name/. made more functions
return const char*, added TYPE_NAME(). implemented signal registration
and emission glue. declare classes and procedures early enough, so their
type ids may be used within the class definitions.

Tue Dec 23 05:05:06 2003 Tim Janik


* sfidl-generator.cc: turn checks in createTypeCode() into assertions
to avoid wiritng broken files.

* sfidl-module.[hc]*: return C strings from TypeName(), TypeRef() and
TypeField() (renamed from TypeMember()). adaptions to non-std::string
returns. reverted using TypeMember() instead of TypeRef() for property
and parameter types (changed by stefan) as this broke enum type usages.
added Info root_category; hack for procedures, since categories from
idl files are always translated.

* sfiglue.[hc], sfigluecodec.[hc]: removed blurb from procedure
description.

Mon Dec 22 23:56:45 2003 Tim Janik


* sfidl-module.cc: support per-type options for procedures and objects.

Sun Dec 21 20:40:15 2003 Stefan Westerfeld


* sfidl-cxx.cc: Use Bse::Sequence as sequence template for all
sequences (not only for the record based sequences).

Sun Dec 21 20:19:31 2003 Stefan Westerfeld


* sfidl-parser.*: Support for #include-impl "foo.idl", which works
like #include, but also generates code for files which are
implincluded.

Sun Dec 21 04:23:03 2003 Stefan Westerfeld


* sfidl-generator.cc sfidl-module.cc testidl.idl: Removed support for
generic PSpec type.

* sfidl-parser.*: Removed support for generic PSpec type. Fixed
#include "/some/absolute/path.idl".

Sat Dec 20 20:56:29 2003 Stefan Westerfeld


* sfidl-cxx.*: Support properties. Generate proper implamantations for
_to_rec and _to_seq for records/sequences.

Thu Dec 18 00:56:55 2003 Tim Janik


* sfidl-module.cc: use g_intern_strconcat() in generated static member
functions to construct translated plugin categories, so plugins don't
leak across reloads.

* glib-extra.[hc]: added g_intern_strconcat() which is a convenience
wrapper around g_strconcat() and g_intern_string().
removed g_strref() and g_strunref() because that'd be yet another
string allocation case that has to be paid attention to.

Wed Dec 17 23:58:05 2003 Tim Janik


* sfidl-generator.cc: allow NULL rec/seq on _copy_shallow().
this also removes _copy_shallow_internal(), indentation fixes.
added FIXMEs that still need to be taken care off.

* sfiglue.c (sfi_glue_vcall_rec): do't create empty record
instead of NULL returns.

Wed Dec 17 19:15:30 2003 Tim Janik


* glib-extra.c (g_option_find_value): fixed lookup bug.
continue string searches after wrong substring matches.

Tue Dec 16 11:52:25 2003 Tim Janik


* sfidl-module.cc: provide static accessors in generated Base objects
for authors and license info strings.

* sfivalues.[hc]: renamed sfi_value_rec_take_ref() to
sfi_value_new_take_rec() and sfi_value_seq_take_ref() to
sfi_value_new_take_seq(). adapted callers.

Mon Dec 15 22:45:23 2003 Tim Janik


* sfiparams.h: document :skip-default: and :skip-undo: property options.

Mon Dec 15 15:30:57 2003 Tim Janik


* sfidl-module.cc: auto-prepend "/Modules/" to plugin categories, as
this part of the category string should not be translated, and
is redundant in idl files.

Sat Dec 13 19:09:47 2003 Stefan Westerfeld


* sfidl-parser.*: Support parsing for i18n'd strings in property
groups, stream and info declarations.

* sfidl-generator.* sfidl-module.*: Write out i18n'd strings when
required by the IDL file.

* testidl.idl: The syntax 'property "X-Group" Real y;' for groups is
no longer supported.

Wed Dec 10 09:20:33 2003 Tim Janik


* sfinote.c: support parsing upper and lower case notes.
for string conversions, switched to uppercase note names.

Mon Dec 8 16:38:32 2003 Tim Janik


* sfinote.c (sfi_note_from_string_err): error handling fixup.

Sat Dec 6 02:36:49 2003 Tim Janik


* glib-extra.[hc]: added (moved from sfi)
g_param_spec_set_options(), g_param_spec_check_option(),
g_param_spec_add_option(), g_param_spec_provides_options(),
g_param_spec_get_options(), g_param_spec_set_istepping(),
g_param_spec_get_istepping(), g_param_spec_set_fstepping(),
g_param_spec_get_fstepping(), g_param_spec_set_log_scale()
and g_param_spec_get_log_scale() to support user defined
options, and to handle stepping and logarithmic scaling
generically for the various integer and floarting types.

* sfiparams.[hc]: removed paramspec functions which glib-extra.h
provides now. added sfi_pspec_get_choice_hash() as an approximative
substitute for SfiChoice type signatures.

Fri Dec 5 00:35:24 2003 Tim Janik


* glib-extra.c: handle NULL for intern_string variants.

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

Tue Dec 2 23:32:12 2003 Tim Janik


* gbsearcharray.h: added g_bsearch_array_remove_node() which is a simple
convenience function for g_bsearch_array_remove() and
g_bsearch_array_get_index().

* glib-extra.[hc]: added G_STRFUNC, g_strref() and g_strunref(). the
latter two keep reference counts on duplicated strings to avoid gross
memory duplication for often referenced strings.

Sat Nov 29 06:22:36 2003 Tim Janik


* glib-extra.h: implemented GBitMatrix, a couple inline functions to
allow quick operations on a two dimensional bit array.

Fri Nov 28 03:37:16 2003 Tim Janik


* glib-extra.h: preserve type safety in convenience functions for c++.

Fri Nov 28 02:57:56 2003 Tim Janik


* sfidl-cxx.cc: remove bogus generated includes.

Fri Nov 28 00:49:15 2003 Stefan Westerfeld


* sfidl-cxx.*: Records, sequences, choices, classes are covered now.
So its reasonably usable binding (which can handle bse/bse.idl).

* sfidl-generator.*: New createTypeCode model: MODEL_VCALL_CARG.
Comments. Seperated choice conversion into a seperate function.

Thu Nov 27 00:55:40 2003 Stefan Westerfeld


* sfidl-cxx.*: New files: initial check-in of the C++ language binding.

* Makefile.am: Added sfidl-cxx.*.

* sfidl-generator.*: Moved more functionality to the base class, so
that the C++ language binding can use it. Qt binding available again.

* sfidl-options.* sfidl.cc: The target is now an enum. New --mixed and
--lower options to specify the style of the identifiers used in the
binding.

Wed Nov 26 22:07:49 2003 Stefan Westerfeld


* sfidl-generator.*: Moved common functionality of all C / C++
language bindings into new parent class CodeGeneratorCBase. "Proxy" no
longer accepted as type.

* sfidl-parser.*: Added Parser::typeOf method returning an enum (moved
from sfidl-module.cc).

* sfidl-module.*: Cleanup ugly stuff by inheriting CodeGeneratorCBase
and using Parser::typeOf method.

Wed Nov 26 13:37:17 2003 Stefan Westerfeld


* sfidl-generator.*: Cleanups.

* sfidl-module.cc: More work on the language binding for records (use
SmartPtr now).

Mon Nov 17 00:49:34 2003 Tim Janik


* glib-extra.[hc]: added g_strconcat_with_null() and defined
g_strconcat() to g_strconcat_with_null() which also accepts
its first argument to be NULL.

Sun Nov 16 17:56:50 2003 Stefan Westerfeld


* sfidl-module.cc: Escape user defined strings (like the blurb) from
the idl file. First step for support for records/sequences.

Wed Nov 12 04:21:32 2003 Tim Janik


* glib-extra.[hc]: provide G_HASH_POINTER().
renamed *quark_intern* functions to:
g_intern_string() and g_intern_static_string().

Sun Nov 2 20:09:45 2003 Tim Janik


* sfidl-generator.cc: fix printf()-args.

Sat Nov 1 03:39:38 2003 Tim Janik


* glib-extra.[hc]: added g_option_concat() and g_option_get().

Mon Oct 27 19:56:12 2003 Tim Janik


* sfifilecrawler.[hc]: added sfi_make_dirpath() to create directories
possibly containing ~, ~user or non-existant parent directories.

Sun Oct 26 09:33:46 2003 Stefan Westerfeld


* sfidl-parser.cc: Take notice of strings within preprocessor and
ignore comments within them.

* testidl.idl: Added test code for new string handling code.

Sat Oct 25 17:28:02 2003 Tim Janik


* sfistore.[hc]: implement sfi_rstore_quick_scan() to scan lisp syntax
for a specific statement.

Sat Oct 25 01:49:50 2003 Tim Janik


* *.*: changed "copyright" field of procedures, scripts and objects
into a "license" field which better reflects what we're asking for.

Sat Oct 18 04:59:35 2003 Tim Janik


* sfiustore.[hc]: added pointer pool.

Mon Oct 13 12:29:48 2003 Tim Janik


* glib-extra.[hc]: added convenience functions g_quark_intern()
and g_quark_intern_static() which return the constant quark
string stored in glib for a given string.

Sun Oct 12 16:37:29 2003 Tim Janik


* glib-extra.[hc]: added g_path_concat() to concatenate
paths without extra searchpath seperators.

* sfifilecrawler.[hc]: fixed home directory parsing (~user/)
not working.
added file_pattern to sfi_file_crawler_add_search_path().
added sfi_file_crawler_add_tests()
to filter matches by additional file tests.
added sfi_file_crawler_list_files() wich blocks until all files
are found and tested for a given search path.
quickly imlpemented g_file_test_all() as g_file_test() just has
too sick semantics to be usable.

Sun Oct 12 00:52:58 2003 Tim Janik


* glib-extra.[hc]: implemented g_option_check() which checks
for an option string in a colon seperated options list.

* sfidl-options.cc: disable Constants code generation, this just
produces potential conflicts and should be resolved upon idl file
parsing anyways.

* sfidl-parser.cc: fix constnats loosing precision due to %f.
allow param hints to contain constants.

* sfiparams.[hc]: renamed hints to options in public API.
use g_option_check() to check for options.
reduced SFI_PARAM_* macros, users are supposed to use the strings
instead, shortened option names.

Fri Oct 10 12:35:34 2003 Tim Janik


* sfidl-module.cc: handle icon file paths idl-file location relative.

* sfidl-parser.[hc]*: provide the source file name for all parsed
entities.
(parse): setup scanner->input_name with absolute input file name.

Mon Oct 6 10:36:24 2003 Tim Janik


* sfiglueproxy.c (sfi_glue_proxy_disconnect): make missing signal
handlers a debugging message, rather than a warning.

Mon Oct 6 03:00:01 2003 Tim Janik


* sfidl-module.cc: provide type_name() method for effects and
procedures which returns a fully namespace prefixed type name.

Sun Oct 5 07:02:00 2003 Tim Janik


* sfidl-module.cc: changed generated code to contain a virtual
property_changed() function per inheritance level.
special cased Trigger() properties, we reset their value to false
after update_modules().

Fri Oct 3 13:52:57 2003 Tim Janik


* sfistore.[hc]: added sfi_rstore_new_open().

Sun Sep 21 04:23:18 2003 Stefan Westerfeld


* bse-plugin-generator.cc: Renamed pdef to idl.

* sfidl-parser.cc: Fixed #include handling (typo).

Sun Sep 21 02:29:42 2003 Stefan Westerfeld


* bse-plugin-generator.cc: Duplicated include related options
here.

* sfidl-options.* sfidl.cc: New options: --print-include-path,
--version, --nostdinc. Use SFIDL_PATH_STDINC from topconfig.h.

* sfidl-parser.cc: Include file relative includes are now only
handled for #include "foo.idl". #include <foo.idl> uses the include
path only.

Sat Sep 20 22:16:40 2003 Stefan Westerfeld


* sfidl-generator.cc sfidl-module.cc: Use sequentialValue where
appropriate.

* sfidl-parser.*: Compute two values for each ChoiceValue: one
containing the assigned value for the server side C/C++ language
binding and one containing a sequential number for the client side
C/C++ language binding.

Mon Sep 8 00:31:10 2003 Stefan Westerfeld


* gbsearcharray.h: inserted casts for C++.

Sun Sep 7 17:36:43 2003 Stefan Westerfeld


* sfidl-generator.* sfidl-module.cc sfidl-parser.*: reintroduce const
for datastructures containing maps - to be able to access their
contents, added a new template class called Map<Key,Value> with a
const get(Key) function.

Thu Sep 4 14:58:14 2003 Tim Janik


* sfidl-module.cc: introduce static data for the generated classes.
added set_property_changed() method to Base class to allow hooking
into property setting.

* glib-extra.[hc]: removed double array implementation which
was mostly unused.

Wed Sep 3 00:56:42 2003 Tim Janik


* sfidl-module.cc: reworked generated plugin code to allow
derivation from the generated object and to integrate with
the new BSE export mechanisms. also, procedure implementations
in plugins are now supported.

Fri Aug 29 18:17:49 2003 Tim Janik


* bse-plugin-generator.cc: cvs rename.

Tue Aug 26 08:57:54 2003 Tim Janik


* sfidl-module.[hc]*: fixed buglet.

* bse-module-generator.[hc]*: new parser/code-generator front-end
that just uses the Module code generator and parses .mdef files
(module definition files).

* sfidl-generator.[hc]*: renamed from sfild.* (per cvs-copy).
stripped to contain only code-generator code.

* sfidl.h: removed.
* sfidl.cc: stripped to contain only main().

Mon Aug 25 19:34:05 2003 Tim Janik


* sfidl-module.cc: generate only a single object header file
from .mdef (module definition file) files.
based on the export macros from bsecxxplugin.hh, the generated header
contains a complete class implementation as requested in the .mdef
file, except for the actual *Module object. users need to only
implement the *Module object and add two export macros to their
*.cc file.
generate inlined icon pixstreams via gdk-pixbuf-csource for
Info icon="file.png"; statements.

* sfidl*.[hc]*: got rid of a couple "const" qualifiers in order
to be able to use map<string,string> infos; as non-const.

Fri Aug 22 19:47:55 2003 Tim Janik


* sfidl-parser.cc (parseChoiceValue): applied patch from stefan which
allowes choice values as number (or Neutral), string, or a pair of both.

Fri Aug 22 08:06:29 2003 Tim Janik


* testidl.idl:
* Makefile.am: renamed *.sfidl to *.idl.

Fri Aug 22 07:48:14 2003 Tim Janik


* sfidl-parser.cc: move everything into an anonymous namespace to
avoid unwanted symbol exports.
declare extra tokens as enum values, move token strings next to
the enum definition as ordering is important here.
provide operator== for enum comparisons.
make the @ in '@=' statements in idl files optional.
prototyped $GROUP=""; syntax for property group assignments,
this code is disabled however because the syntax looks somewhat
odd. removed code for oddball 'group: "Foo";' statements which
interferes with the way 'private:' or 'public:' are used in C++.
introduced new syntax for property grouping, supported in records
_and_ classes, which simply block groups the property definitions:
'group "Property Group" { ... };'. also allow a property group
name after the 'property' keyword for singly property definitions
in classes. however this syntax should probably go, as it differs
from property declarations as used in records.
fixed some indentation problems.

* testidl.sfidl: adapt and test syntax changes.

Tue Aug 19 04:21:32 2003 Tim Janik


* gbsearcharray.h: sync with gbsearcharray.h in newer glib (2.3.0).
new flag name G_BSEARCH_ARRAY_AUTO_SHRINK to shrink arrays upon
removal.
(g_bsearch_array_insert): do nothing if the node is already there.
(g_bsearch_array_replace): replace node or fallback to insert.

Sat Aug 9 20:06:57 2003 Stefan Westerfeld


* sfidl-namespace.cc sfidl-parser.*: fix parsing type names from
different namespaces (such as Foo::Bar).
don't generate code after printing parse errors.

* sfidl.h: remove using namespace std; from header

Sat Aug 9 17:29:45 2003 Stefan Westerfeld


* sfidl-parser.cc: support string concatenation in {I|J|O}Stream
parsing.

Thu Jul 31 18:09:23 2003 Tim Janik


* sfidl-module.[hc]*: conditionalize generated code into
source and header file stuff.

Wed Jul 30 05:17:56 2003 Tim Janik


* sfidl-options.[hc]*: add --module code generation option.

* sfidl-parser.[hc]*: implement {I|J|O}Stream parsing.

* sfidl.[hc]*: export C code generator since it implements
functionality needed by the other code generators (needs to be fixed).

* sfidl-module.[hc]*: implement plugin module code generator.

* sfitypes.h: introduce SfiString.

Mon Jul 28 05:21:01 2003 Tim Janik


* toyprof.c: fix evaluation of config macro TOYPROF_PENTIUM, reported
by Sam Hocevar <sam@zoy.org>.

Fri Jul 25 17:17:52 2003 Stefan Westerfeld


* sfidl-parser.*: adapted prototyping to work in cases where the full
definition of a choice/class/record/sequence is not contained in the
idl file at all

Wed Jul 23 02:05:24 2003 Tim Janik


* sficomport.c: reset pfd.events to 0 once the fd becomes -1.

Wed Jul 23 19:19:36 2003 Stefan Westerfeld


* sfidl*.cc sfidl*.h: cleanup of class names.
support prototyping for choices, records and sequences, like
choice ChoiceDefinedLater;

Thu Jul 17 04:00:12 2003 Tim Janik


* sfidl-namespace.cc: make unknown symbols an error.

Mon Jul 14 16:59:25 2003 Tim Janik


* sficomport.c: guard against systems not having ERESTART.

Mon Jul 14 16:43:20 2003 Tim Janik


* sfiprimitives.[hc]: added sfi_seq_from_cstrv(), a variant of
sfi_seq_from_strv() for const gchar**.

* sfiglue.[hc]: changed gchar** returns to const gchar** returns
where apropriate.

* sfigluecodec.c: fixed sequence reference count leak.

* sfithreads.c: sched_yield() is not available on NetBSD, reported
by collver1@comcast.net.

* toyprof-mem.c:
* toyprof.c: fix pointless gcc warnings.

* toyprof.h: special case toyprof code for GLIBC >= 2.2, since we
use _r_debug.

Tue Jun 24 23:22:58 2003 Tim Janik


* sfidl.cc: allocate structures with g_new0() in shallow_copy(),
so we don't oeverwrite fields with already initialized contents
and leak substructures.
also free the array holding element pointers when freeing sequencs.

* sficomport.c (sfi_com_port_destroy): don't forget to destroy port->scanner.

Mon Jun 23 20:38:13 2003 Tim Janik


* sficomport.[hc]: added sfi_com_port_reap_child() and fields holding
the exit states of the reaped child, implemented child reaping and
SIGKILL fallback.
fixed write buffer allocation and write buffer queueing.
implemented >blocking< in receive routine which was simply missing
since never triggered on fast machines. IO_BOTTLE_NECK can be defined
to a small value now to trigger the code on fast machines.

* sficomwire.c (sfi_com_spawn_async): don't auto-reap children, if
we need auto-reaping again, we can add a function variant.

Sun Jun 8 19:56:11 2003 Tim Janik


* sfistore.[hc]: error cosmetics.

Sun Jun 8 17:59:56 2003 Tim Janik


* sfiserial.c: fixup superfluous newlines.

* sfistore.[hc]:
(sfi_rstore_new):
(sfi_rstore_parse_param):
(sfi_rstore_ensure_bin_offset):
(sfi_rstore_get_bin_offset):
(sfi_rstore_parse_binary): fixed up binary appendix position handling.
(sfi_rstore_parse_until): marged parse_all() and parse_rest() into this.
(sfi_rstore_input_fd): fixup file name.
(sfi_wstore_peek_text): implemented.
(sfi_wstore_printf):
(sfi_wstore_puts): update needs-break state.
(sfi_wstore_destroy): destroy bin data readers.

Tue May 20 15:11:19 2003 Tim Janik


* adapted code to compile with gcc-3.3 and g++-3.3.

Sun May 18 05:05:58 2003 Tim Janik


* sfistore.c: syntax fixup for inlined binary data: "binary-appendix".

Sun May 11 15:35:47 2003 Tim Janik


* sfigluecodec.c (encoder_process_message): fix NULL/void returns.

Tue May 6 04:17:19 2003 Tim Janik


* sfifilecrawler.[hc]: added SfiFileCrawler, a new mechanism to
construct a file list for a given search path incrementally.

Mon May 5 03:16:51 2003 Tim Janik


* sfiprimitives.[hc]: added sfi_ring_test_length(l) to figure whether
a ring has >=l elements in at most O(l) time.
(sfi_ring_free_deep): adapted to g_[s]list_free_deep().

* sfiustore.[hc]: added SfiUPool which is simply an SfiUStore
without a value per key, i.e. a simple id hash set. currently
wastefully implemented, should be optimized at some point.

* glib-extra.[hc]: added g_list_free_deep() and g_slist_free_deep().

* sfiglueproxy.[hc]: export sfi_glue_proxy_get_signal_quark() to fetch
a quark from a cononified signal name.
removed _sfi_glue_proxy_request_notify() which is implemented in
sfiglue.c now.
(delete_signal):
(fetch_signal): use _sfi_glue_proxy_request_notify() instead of
accessing the vtable directly.
(_sfi_glue_signal_find_closures):
(sfi_glue_signal_disconnect):
(sfi_glue_proxy_weak_unref): don't demand create a local proxy struct.
(sfi_glue_proxy_cancel_matched_event): filter signal events from
disconnected signals and flag them for cancellation.
(_sfi_glue_proxy_dispatch_event): handle cancelled signal events by
just acknowledging the notification id.

* sfiglue.[hc]: moved _sfi_glue_proxy_request_notify() here from
sfiglueproxy.c. for disconnecitons, we now filter out the local event
queue after calling remote.

Mon Apr 21 03:02:01 2003 Tim Janik


* sfiparams.c: use SFI_MIN_TIME and SFI_MAX_TIME constants.

* sfitime.c:
(_sfi_init_time): use tzset() to initialize timezone.
(sfi_time_system): no need for paranoid error checking.
(sfi_time_to_string): properly convert from/to UTC times.
(sfi_time_from_string): converts from/to UTC, work around
mktime() insisting on localtime argument and fix daylight
saving bug.

* sfitime.h, sfitypes.h: urg, fix SfiTime to be signed 64bit,
adjust MIN/MAX constants to UTC.

Sun Apr 20 21:46:20 2003 Tim Janik


* sfitime.c (sfi_time_from_string_err): make <1990 time check more verbose.

Wed Apr 16 19:29:48 2003 Tim Janik


* sfidl.cc (CodeGeneratorC::run): include <string.h> in generated code,
since we use memset().

* glib-extra.c (intern_ascii_strtoull): cure warnings due to glib 2.2
implementing g_ascii_strtoull().

Mon Mar 17 07:08:35 2003 Tim Janik


* sfigluecodec.c (sfi_glue_decoder_dispatch): unref the fetched
event sequence since sfi_glue_context_fetch_event() passes on
ownership to us.

* toyprof-mem.[hc]: implement a signal triggered leak checker,
nuked the old statistic code.

Thu Mar 13 12:35:50 2003 Tim Janik


* sfidl-parser.cc (parseParamDefHints): use %.17g to print doubles,
so we don't print out virtual digit precision artefacts.

* sfiserial.c (sfi_serialize_primitives): use %.17g to print doubles,
and use %.7g if SFI_PARAM_FLOAT was given. let g_ascii_formatd() handle
the actual printout to fix locale dependencies.

Mon Mar 10 06:18:51 2003 Tim Janik


* sficomport.[hc]: debugging cleanup.

Sun Mar 9 14:45:50 2003 Tim Janik


* sfidl.cc: added NULL guards to value transforms.

* sfivalues.c (sfi_value_copy_deep): fix NULL GValue handling.

Sun Mar 9 07:06:16 2003 Stefan Westerfeld


* sfidl.cc: fixed double quotes in sfidl

Fri Mar 7 21:39:47 2003 Stefan Westerfeld


* sfidl-parser.* sfidl.cc: support group keyword for grouping
parameter specifications

* sfiparams.[hc]: sfi_pspec_set_group returns now the GParamSpec*

* testidl.sfidl testsfi.c: test pspec group support

Fri Mar 7 14:50:16 2003 Tim Janik


* sfilog.[hc]: cleaned things up, added key based debugging
and info filter.

* sfi*.c: use SFI for debugging.

Fri Mar 7 03:45:12 2003 Tim Janik


* sfitime.c (sfi_time_to_string): clamp argument into sfi's
min and max time.

* testsfi.c (test_time): added few more tests.

Tue Feb 18 16:39:38 2003 Stefan Westerfeld


* sfimemory.c sfinote.c sfiprimitives.c sfithreads.c sfitypes.c
testsfi.c toyprof-mem.c: fixes to build without warnings on gcc-3.2.

Tue Feb 18 16:29:17 2003 Tim Janik


* sfilog.c (sfi_log_message): refine debugging messages.

Tue Feb 18 16:29:19 2003 Stefan Westerfeld


* sfivalues.c: make sfi_value_type_transformable actually call
g_value_type_transformable, which makes it actually work.

Mon Feb 17 19:07:13 2003 Tim Janik


* sfivalues.[hc]: <sigh>, added sfi_value_transform(),
sfi_value_type_compatible() and sfi_value_type_transformable()
to work around bugs in equally named glib functions. GLib-2.2.1
(and prior) can't register transform functions for dynamic types,
so we hardcode choice<=>enum transforms in these functions.
changed all callers of related glib functions.

* sfivalues.c (sfi_value_choice2enum_simple): provide
sfi_value_choice2enum_simple() which is readily usable as transform
function.

Mon Feb 17 15:20:10 2003 Tim Janik


* sfimemory.[hc] (sfi_alloc_upper_power2): fix return type.

Fri Feb 14 07:46:01 2003 Tim Janik


* sfiserial.c (sfi_value_store_param): newline and indent before
storing values.
(sfi_serialize_primitives): store doubles with at most 17 significant
digits to avoid roundoff junk being stored.

* sfiserial.[hc]: export sfi_serial_check_parse_null_token() and
SFI_SERIAL_NULL_TOKEN to have a single point of NULL/nil token.hhandling.

Fri Feb 14 11:17:51 2003 Stefan Westerfeld


* sfidl-parser.cc: add space between tokens that are simply parsed
out of the .sfidl file and added to the .c source as-they-are, to
allow string concatenation (SFI_PARAM_DEFAULT SFI_PARAM_HINT_SCALE).

Tue Feb 11 03:16:51 2003 Tim Janik


* sfiglueproxy.[hc]: added sfi_glue_proxy_pending() to test for
existing signal connections on a proxy.

Sun Feb 9 17:56:07 2003 Stefan Westerfeld


* sfiglue.c: using promoted type as argument for va_arg fixes
crashes with gcc-3.2

Thu Feb 6 19:31:55 2003 Stefan Westerfeld


* sfidl-parser.* sfidl.cc: necessary #includes and std
namespacing to compile with gcc-3.2

Fri Jan 31 19:36:20 2003 Tim Janik


* glib-extra.[hc]: new function to append en element to an slist
if it's not already contained.

Sat Jan 18 05:15:46 2003 Tim Janik


* sfilog.[hc]: improved logging output, add with_key() variants
for sfi_debug(), sfi_nodebug() and sfi_info() to support detailed
(de-)activation of certain messages (filtering mechanism not yet
in place though).

Thu Jan 16 23:26:25 2003 Tim Janik


* sfiparams.h: added SFI_PARAM_GUI_READABLE and SFI_PARAM_GUI_WRITABLE
which are pspec hints that really are just readable or writable.

Fri Jan 3 19:16:49 2003 Tim Janik


* sfiprimitives.[hc]: export functionality to merge two
sorted rings (sfi_ring_merge_sorted).

Tue Dec 31 03:01:30 2002 Tim Janik


* toyprof.[hc], toyprof.README, toyprof.pl: moved
toyprof code from BSE to here.

* toyprof-mem.[hc]: added GLibc specific memory profiler.

* sfiprimitives.c: allocate SfiRec, SfiSeq, SfiBBlock and
SfiFBlock via memblocks.

* sfivalues.[hc]: added sfi_value_rec_take_ref() and
sfi_value_seq_take_ref() which are value constructors
that take over the intial reference count of a rec or seq,
needed by sfidl.

* sfigluecodec.c (sfi_glue_decoder_dispatch): run gc at the
end of dispatch.

* sfidl.cc (createTypeCode): fix reference counting of records and
sequences, so we don't leak upon every conversion in generated code.

Mon Dec 30 00:37:10 2002 Tim Janik


* sfiglueproxy.[hc]: confirm processed notifies.

* sfiglue.[hc]: renamed signal connection request to
proxy_request_notify(), added proxy_processed_notify() to
confirm processed notifies.

* sfigluecodec.[hc]: support proxy_processed_notify().
turned proxy_processed_notify() and proxy_set_property() into
one-way messages.

Sun Dec 29 06:02:58 2002 Tim Janik


* sfigluecodec.c: code cosmetics.

* sficomport.c (sfi_com_port_io_pending): update pollfds.

Sat Dec 28 11:34:50 2002 Tim Janik


* sfivalues.c: allocate values as Sfi memblocks.

Sat Dec 28 09:52:20 2002 Tim Janik


* sfiparams.[hc]: added sfi_pspec_add_hint() and
sfi_pspec_remove_hint(), removed API for static hints.
(sfi_pspec_set_hints): canonicalize hints to be preceeded and
followed by colons.

Thu Dec 26 19:11:17 2002 Tim Janik


* glib-extra.[hc]: added convenience function to setup a simple
GLib main loop source.

* sfivcall.[hc]: deleted these in favour of sfivmarshal.[hc].

* sfivmarshal.[hc]: reduced the amount of required marshallers
for up to 5 arguments (243 instead of 364). fixed wrong handling
of pointer sizes > 4. renamed vcall inrterface to
sfi_vmarshal_void().

* testsfi.c: more marshal generation fixes, now deployed in
sfivmarshal.c.

Tue Dec 24 00:12:10 2002 Tim Janik


* sfiserial.c: moved SFI global GScanner config here.

* sfigluecodec.[hc]:
* sfiglue.[hc]: fix sfi_glue_proc_new() signature (take proc_name).

Mon Dec 23 03:26:28 2002 Tim Janik


* sfigluecodec.[hc]:
* sfiglue.[hc]: support blurb, help, authors and copyright
for procedures. list poll fds per context. implemented
context destruction. removed leading '_' frmo non-private
functions.

* sfigluecodec.[hc]: implement client message handling.

* sfiglueproxy.[hc]: support context destruction.

* sfivalues.[hc]: provide SFI_IS_VALUE() to check for
SFI supported values.

* sfiprimitives.[hc]: added sfi_rec_clear(), sfi_ring_copy(),
sfi_ring_copy_deep() and sfi_ring_free_deep(). enforce usage
of SFI values in seq and rec.

* sficomwire.[hc]: accept SfiRing of arguments for spawning.

* sficomport.[hc]: support communications via pipes.

* glib-extra.h: fix g_object_qdata type annoyances.

* testsfi.c: added comport test. toyed with new marshaller
(vcall) generation ideas.

Tue Dec 17 08:47:57 2002 Tim Janik


* sfiglue.[hc]: added main loop intergration functions to
glue layer.

* sfigluecodec.[hc]: reimplemented the glue layer encoder
and decoder.

* sfiglueproxy.[hc]: event handling fixups.

* sfithreads.[hc]: got rid of creating a pipe per thread.
users can set a wakeup function per thread now and sleeping
waits on a condition.

* sficomport.[hc]: communication mechanism for glue layer
encoder and decoder (meant to obsolete SfiComWire).

Sat Dec 14 10:03:25 2002 Tim Janik


* sfilog.[hc]: moved logging functionality here.

* sfistore.[hc]: removed logging functionality.

Fri Dec 13 17:53:35 2002 Tim Janik


* sfiglue.[hc]: get rid of remaining dangerous collect shortcuts.
plugged gc leaks, moved gc into contexts. keep context stack per-thread.

Fri Dec 13 08:07:57 2002 Tim Janik


* testsfi.c: added threading test.

* sfimemory.[hc]: simple caching memory block allocator, moved
here from GSL.

* sfithreads.[hc]: SFI thread wrapper, based on GslThread.
this is mostly a slim wrapper around GThread, except if pthreads
are present, in this case, the fast pthread mutex and condition
functions are used directly.

Tue Dec 10 03:33:12 2002 Tim Janik


* sfiglue.[hc]: handle NULL as iface_name in _sfi_glue_iface_new().
document NULL-terminated string vectors.

* sfiglueproxy.[hc]: added _sfi_glue_proxy_watch_release(),
_sfi_glue_proxy_notify() and sfi_glue_proxy_get_pspec_scategory().

* sfiprimitives.[hc]: added sfi_seq_to_strv() and
sfi_seq_from_strv().

* sficomwire.[hc]: moved here from BSE.

* sfigluecodec.[hc]: untested port of encoder and decoder
routines to seq/rec/value.

Mon Dec 9 07:24:14 2002 Tim Janik


* sfistore.[hc]: expect -errno returns from SfiStoreReadBin() in
case of failure, number of supplied values otherwise.
virtualized a few things that BSE will have to override.
added sfi_rstore_parse_binary() as counterpart to
sfi_wstore_put_binary() (renamed from _bin_data).

Sun Dec 8 05:51:24 2002 Tim Janik


* sfistore.[hc]: new files, implementing storage writing and
reading basics. *not* added as binary compatibility maintainable
API to sfi.h.

* sfiserial.c (sfi_value_store_param): avoid extra newline.

Sat Dec 7 17:49:04 2002 Tim Janik


* sfigluecodec.c:
* sfiprimitives.c:
* sfiprimitives.h:
* sfitime.c: fix arg ordering in gsl/sfi_ring_walk().

Tue Dec 3 01:03:26 2002 Tim Janik


* sfiprimitives.[hc]: added sfi_rec_swap_fields() and sfi_rec_validate().

Mon Dec 2 01:40:10 2002 Tim Janik


* sfiglue.[hc]: made vcalls more GC friendly. removed
sfi_glue_gc_collect_value() to avoid misuses.
(sfi_glue_vcall_rec):
(sfi_glue_vcall_seq):
(sfi_glue_vcall_choice):
(sfi_glue_vcall_string): make sure we always return "" or empty seq/rec
instead of NULL.

Sun Dec 1 22:20:11 2002 Stefan Westerfeld


* sfidl*.cc: fix allocation of elements for resizing sequences,
support "Neutral" for choices, fixes

* testidl.sfidl: Neutral

Sun Dec 1 14:01:25 2002 Stefan Westerfeld


* sfidl.cc: add results returned by clientside C language binding
for procedures to GC where necessary (records/sequences)

Sun Dec 1 05:09:37 2002 Tim Janik


* glib-extra.[hc]: added whitespace stripping strdup functions.

Sun Dec 1 04:21:16 2002 Tim Janik


* Makefile.am (libsfiinclude_HEADERS): install public headers.

Sun Dec 1 03:42:00 2002 Stefan Westerfeld


* sfidl.cc: vcall arguments are now taken from SFI_SCAT_* from
sfiparams.h

Sun Dec 1 03:23:29 2002 Stefan Westerfeld


* sfidl.cc: indentation beautification, free doesn't accept NULL
any longer.

Sun Dec 1 02:40:38 2002 Stefan Westerfeld


* sfidl-parser.cc testidl.sfidl: use Const instead of Constant
to resolve conflict with the "Constant" class.

Sun Dec 1 02:18:42 2002 Tim Janik


* sfiparam.[hc]: new param spec int derived type pspec note which
allowes for void notes and comes with its own validation implementation.

Sun Dec 1 01:32:11 2002 Stefan Westerfeld


* sfidl-parser.cc sfidl.cc sfidl.h testidl.sfidl: use capitalized
keywords for In, Out, Constant, Info ; fixed const char* in C
language binding

Sun Dec 1 00:04:48 2002 Stefan Westerfeld


* sfidl-options.* sfidl.cc Makefile.am: restructured options again

Sun Nov 24 03:21:07 2002 Tim Janik


* sfidl-options.cc: reverted stefan's last change, which broke
client side init function generation.

Sun Nov 24 02:21:09 2002 Tim Janik


* sfidl.cc: store SfiChoiceValue arrays in addition to
GEnumValue arrays.

* sfiparams.[hc]:
(sfi_pspec_copy_commons): extend copying of common fields.
(sfi_pspec_test_all_hints): new hint test fnction.

Tue Nov 12 03:50:44 2002 Tim Janik


* sfiprimitives.[hc]: implement sequence and record convenience
getters.

* sfiparams.[hc]: define SfiChoiceValues in terms of
SfiChoiceValue (structure with name and blurb) instead of
GEnumValue.
introduce sfi_pspec_{g|s}et_owner().
get rid of sfi_pspec_get_choice_value_list().
implement sfi_pspec_to_rec() and sfi_pspec_from_rec().
(sfi_categorize_type): SFI_TYPE_PSPEC is not a boxed type,
but a seperate fundamental.

* sfiserial.c: implement serialization of pspecs as records.

* testsfi.c: fixed up choice serialization tests. extended
serialization tests to serialize pspecs and added serialization
test code for all defined pspecs.

Thu Nov 14 10:51:51 2002 Stefan Westerfeld


* sfidl.cc: fixed code generation for class names starting
with two uppercase letters like "BseSNet".

Wed Nov 13 23:21:13 2002 Stefan Westerfeld


* sfidl.cc sfidl-options.cc: completed codegeneration for
client C language binding: prefix method names when
--c-client-prefix is given, conversion code for choices,
procedure prototypes, no more init function and similar
stuff the client doesn't need.

Wed Nov 13 19:43:59 2002 Stefan Westerfeld


* sfidl.cc: neutral element initialization on missing fields
from_rec, made copy_shallow complain on getting null pointer
arguments.

Wed Nov 6 19:25:08 2002 Tim Janik


* sfiserial.c: get entirely rid of "nil" as identifier, it's
not recommended in scheme either and may clash with choices.
eliminated prefixing of arbitrary constructs with '\''.
fix choice parsing error handling. fixed sequence and record
indentation.

* sfiparams.h: use 'C' as type letter for choices, to preserve
'c' for the slight possibility of a future introduction of chars.

Tue Nov 5 08:13:51 2002 Tim Janik


* sfivalues.c (sfi_value_enum2choice): convert to scheme names
by default.

Mon Nov 4 11:38:56 2002 Tim Janik


* sfitypes.[hc]: remove SfiBoxedToRec, SfiBoxedFromRec,
SfiBoxedToSeq and SfiBoxedFromSeq fields from record and sequence
info, as the value transforms do the job already.

* sfidl.cc: remove unneeded code generation.

* sfidl-parser.hh:
* sfidl-namespace.hh: start comments with one asterisk, not two
which is a special token used by the documentation parser.

Mon Nov 4 07:32:22 2002 Tim Janik


* sfiglueproxy.c (signal_quark): canonify signal names.

* sfivalues.c: G_TYPE_PARAM is it's own base type and not derived
from G_TYPE_BOXED, fixed code acordingly.

* sfiglue.[hc]: don't export the supported signals in SfiGlueIFace.

Sun Nov 3 19:23:29 2002 Stefan Westerfeld


* sfidl-parser.*: added preprocessing code to handle #include
directives and C++ style comments.

* sfidl-options.*: new -I option to add directories to the
include search path.

* sfidl.cc: limit code generation to those types that were not
defined in an included file.

Sun Nov 3 13:55:41 2002 Stefan Westerfeld


* sfidl-options.* sfidl-parser.* sfidl-namespace.* sfidl.cc
Makefile.am: cleanup: moved the parser and the option handling
into seperate classes/files ; std namespace related fixes

Sat Nov 2 00:17:31 2002 Tim Janik


* sfiglue.c (sfi_glue_gc_add): don't warn about multiple adding
of ref counted objects to the gc.

* sfiglueproxy.c (signals_compare): fix quark comparison.

* sfiglue.[hc]: started to revamp context API. we need thread
support in Sfi to complete this though.

* sfivalues.c (sfi_choice2enum): fallback to 0 instead
of the first enum value if the choice can't be matched
(like sfi_value_choice2enum()).

* sfiglueproxy.c (default_glue_marshal): properly swap proxy and
data argument if rerquested.

Fri Nov 1 17:55:46 2002 Tim Janik


* sfiglueproxy.c (sfi_glue_proxy_is_a): spew no warning if proxy==0.

Sun Nov 3 00:00:12 2002 Stefan Westerfeld


* sfidl.cc: long options, finally (--sfk-core-header and such)

* Makefile.am: switch to sfidl long options

Sat Nov 2 22:03:56 2002 Stefan Westerfeld


* sfidl.cc: register enums for choices at the glib type system
when the -b option is given ; pspec_Rec -> pspec_RecBoxed to
resolve conflicts with "real" Rec param specs

* testidl.sfidl testsfi.c: more test code testing the type system
registration and the behaviour of choices in records

Fri Nov 1 23:58:18 2002 Stefan Westerfeld


* sfidl.cc: changed the C language binding for choices to "real"
enums instead of representing them as strings

* sfivalues.[hc]: implemented sfi_value_choice_genum, sfi_choice2enum
and sfi_enum2choice for conversion between choices and type system
known enums as required by sfidl

* testidl.sfidl testsfi.c: added a choice in a record for testing

Fri Nov 1 01:28:12 2002 Tim Janik


* sfiglueproxy.[hc]: add weak refs and the usual signal connection
variants.

Thu Oct 31 23:16:41 2002 Stefan Westerfeld


* sfidl.cc: more work on clientside C language binding: procedures,
methods ; first version of Rec/PSpec primitive types.

* testsfi.c testidl.sfidl: added a test for Rec/PSpec primitive
types ; there is still a name clash here (sfidl_pspec_Rec) which
needs to be resolved (see comment in testidl.sfidl)

Thu Oct 31 18:16:14 2002 Stefan Westerfeld


* sfidl.cc sfitypes.h: parsing for constants, properties, infos;
code generation for constants (-c option) and info lines used in
sequences and records ; string concatenation ; forward declarations
for classes.

* testidl.sfidl testsfi.c Makefile.am: added a test for
generation of #defines for constants

Mon Oct 28 04:46:58 2002 Tim Janik


* sfiglueproxy.c: for now, spew real warnings if invalid proxy ids
are being used.

Sun Oct 27 23:00:25 2002 Stefan Westerfeld


* sfidl.cc: enum is now called choice in sfidl files,
record, enum and sequence don't have a typedef any longer,
use sfidl_pspec_Int and similar instead of sfi_pspec_Int

* testidl.sfidl: removed typedef to match new sfidl syntax

* testsfi.c: sfi_pspec_* -> sfidl_pspec_*

Sun Oct 27 22:38:25 2002 Stefan Westerfeld


* sfidl.cc: added new code generation target for c++/qt (-g option
to select target), started procedure code generation (-p option)

Sun Oct 27 19:26:37 2002 Stefan Westerfeld


* sfiparams.c: fixed pspec_flags to convert sfi string hints
to GParamFlags properly.

Sun Oct 27 16:17:32 2002 Tim Janik


* sfiparams.[hc]: implement sfi_pspec_get_log_scale(),
sfi_pspec_set_log_scale() and sfi_pspec_log_scale().

* sfiustore.[hc]: new files, providing a unique-id -> data pointer
lookup map.

* sfiglueproxy.[hc]: new files, providing glue layer proxy
functionality. parts from sfiglue.[hc], sfiglusignal.c, bswproxy.[hc]
and bswsignal.[hc] got moved and/or reimplemented here.

* sfigluesignal.c: removed.

* sfiglue.[hc]: proxy related vtable changes.

* sfiprimitives.[hc]: provide convenience setters for records
and sequences.

* sfivcall.[hc]: const fixes.

* Makefile.am: reorder stuff for better streamlining during
compilation process. fix testidl.[hc] generation.

Thu Oct 24 18:04:51 2002 Tim Janik


* gbsearcharray.h: added this file here from BSE (should go into
GLib someday, but not for automatic includes anyway).

Sun Oct 27 00:54:52 2002 Stefan Westerfeld


* sfidl.cc: do proper code generation for proxy types.

Sun Oct 27 00:33:24 2002 Stefan Westerfeld


* sfidl.cc: parse procedures / classes / signals.

Wed Oct 23 20:39:56 2002 Stefan Westerfeld


* sfidl.cc: generate resize functions for sequences.

Wed Oct 23 20:28:01 2002 Tim Janik


* sfiprimitives.h: provide convenience setters for record fields.

Wed Oct 23 19:25:40 2002 Tim Janik


* sfivalues.[hc]:
* sfiparams.[hc]: s/param_spec/pspec/ due to stefan's command.
introduce pspec primitive (serialization lacking).

Mon Oct 21 22:19:04 2002 Tim Janik


* sfiglue.[hc]:
* sfigluecodec.[hc]:
* sfigluesignal.c:
moved glue layer to SFI.

Mon Oct 21 16:16:35 2002 Tim Janik


* sfivcall.[hc]: implement sfi_vcall_void(), a GValue based
function call marshaller (void returns) with up to 5 arguments.

* sfimarshal.[hcl]*: get rid of this.

Sun Oct 20 19:06:14 2002 Tim Janik


* sfidl.cc: generate data for boxed types after function definitions.

* sfidl.cc: generate static GValueTransform functions for boxed<->SfiSeq
and boxed<->SfiRec, passed on to sfi_boxed_make_sequence() and
sfi_boxed_make_record().

* sfiparams.c:
(param_rec_validate): fix empty field creation.
(sfi_param_spec_time): fix hints.
(sfi_param_spec_note): fix hints.

* sfiserial.c: minor syntax tweaks.

* sfitypes.[hc]: add support for GValueTransform registration
for boxed sequence and record types.

* sfivalues.c (sfi_value_choice2enum): fallback to 0 as enum
value if no pspec default is given, and we fail completely at
matching the given choice pattern. we use 0 despite enum class
contents here, it can later be fixed up through validation.

Fri Oct 18 04:39:00 2002 Tim Janik


* sfiserial.[hc]: removed cruft. use GScanner 64bit int parsing instead
of identifier hack. implemented sfi_value_store_param() and
sfi_value_parse_param_rest().

* sfiparams.c (param_rec_values_cmp): handle type mismatch of field
pspec and value.

Sat Oct 12 19:30:42 2002 Tim Janik


* glib-extra.[hc]: implemented 64bit-safe GScanner, using
strtoull() code from glibc.

Sat Oct 12 01:03:24 2002 Tim Janik


* sfinote.[hc]: fixup error handling when parsing notes.

* sfiparams.[hc]: add cmp/validate implementations for bblock,
fblock, seq and rec.

* sfiprimitives.[hc]: support sorting of record fields and use binary
lookups for field access.

* sfiserial.[hc]: implement sfi_value_store_typed() and
sfi_value_parse_typed() for all SFI types.

* sfitime.[hc]: fixup error handling when parsing date/time.

* sfitypes.h: add type specific constants.

* testsfi.c: check serialization facilities.

Thu Oct 10 18:25:40 2002 Tim Janik


* sfidl.cc (parseParamDefHints): stringify unsigned longs with %lu (not
%ld), stringify doubles with %.20g to preserve precision, handle
unexpected tokens by simple returning the expected token so we
actually trigger a scanning error.

Wed Oct 9 13:59:00 2002 Stefan Westerfeld


* sfidl.cc: conceptually changed the way setting up defaults for
sequences to the way it works for records. you have per-type
defaults now, thus the syntax has changed to

typedef sequence {
Int ids @= ("ID", "", 0, 0, G_MAXINT, 1, ":readwrite");
} IDSeq;

(minor cleanups): make -l work. don't generate code on parse error.
parse class Foo {}; properly. removed unused code.

Tue Oct 8 19:25:24 2002 Stefan Westerfeld


* sfidl.cc: support registering boxed types for each record and
each sequence type (-b), make #line number directives optional (-l)

Sun Oct 6 08:04:55 2002 Tim Janik


* sfiprimitives.[hc]: add sfi_seq_clear().

* sfitypes.[hc]: introduce sfi_boxed_make_record(),
sfi_boxed_make_sequence(), sfi_boxed_get_record_info() and
sfi_boxed_get_sequence_info() to support boxed<->rec and seq
transformations.

* sfiparams.[hc]: remove non-serializable pspecs Object and Enum.
set hints via sfi_pspec_set_static_hints() in the constructors,
so we can map these (partially) onto flags.
provide accessors for pspec hints. cleanup serializable param spec
categories. renamed a few things for consistency.

* sfivalues.[hc]: same here, remove object and enum values.
added sfi_value_lstring() and sfi_value_lchoice().

Sat Oct 5 02:07:57 2002 Tim Janik


* glib-extra.[hc]: add type name conversion functions.

* sfiprimitives.[hc]: add sfi_bblock_new_sized(),
sfi_fblock_new_sized(), sfi_bblock_resize() and sfi_fblock_resize().

* sfidl.cc (parse): sync this with GValue types (missed out Proxy).

* sfidl-namespace.cc (qualify): output warnigns with g_warning().

* sfidl.cc: remove pointless namespacing in generated code,
fix sfi_value_*() uses. fix one more hardcoded "element"
sequence memeber.

Fri Oct 4 13:08:29 2002 Stefan Westerfeld


* sfidl.cc: support optionally specifying the name of the sequence
elements for the C binding (typedef sequence<Int notes> NoteSeq).

Fri Oct 4 12:41:33 2002 Stefan Westerfeld


* sfidl.cc: generate conversion functions for sequences/records
from/to SfiSeq*/SfiRec* instead of from/to GValue*.

Fri Oct 4 11:30:07 2002 Stefan Westerfeld


* sfidl.cc: support namespace substitution (sfidl -n Bse/Bsw)

Fri Oct 4 10:01:53 2002 Tim Janik


* sfiparams.c: pass nick and blurb of "" as NULL into GLib pspecs.

* sfivalues.h: fix SFI_VALUE_HOLDS_NOTE() and SFI_VALUE_HOLDS_TIME().

Fri Oct 4 08:53:29 2002 Tim Janik


* sfinote.c (sfi_note_from_string): default to kammer note
instead of SFI_NOTE_VOID if the note is unparsable.

* testsfi.c: new file, executed by make check.
currently contains small tests for notes and time.

* sfinote.[hc]: midi note definitions and string conversion
routines.

* sfidl.cc: we don't need sfi functions, so include just
glib-extra.h.

Fri Oct 4 05:13:39 2002 Tim Janik


* sfidl.cc: call sequence elements "element" not
"content" in the generated pspecs.
(run): print seq/rec prototypes after structure definitions.
generate "#line" directive before param_spec creation to make
compiler warnings somewhat meaningfull.

Fri Oct 4 02:06:15 2002 Tim Janik


* sfidl.cc (createTypeCode): support SfiBBlock.

* sfiprimitives.[hc]: add SfiBBlock, a block of bytes,
similar to SfiFBlock.

* sfivalues.[hc]: implement BBlock values.

* sfiparams.[hc]: implement BBlock pspecs.

Fri Oct 4 01:18:21 2002 Stefan Westerfeld


* sfidl.cc: generate proper default initialization for sequences
when @= is omitted (instead of segfaulting), FBlock support, cleanup:
add name of arguments/arrays by the caller, not by createTypeCode

Thu Oct 3 23:31:26 2002 Tim Janik


* sfi/: new subdirectory and library. in preparation for SFK (synthesis
fusion kit), this is the underlying interface library SFI (syntheis
fusion kit interface).

* sfidl.cc: .sfidl code generator by Stefan.
* sfidl-namespace.[hc]*: auxillary files for sfidl.cc.

* sfiserial.[hc]: preliminary parsing/serialization code.

* sfiparams.[hc]: pspec implementations, corresponding to the Sfi values.

* sfivalues.[hc]: wrappers for supported GValue types and implementaitons
of Sfi specific value types.

* sfitime.[hc]: some preliminary time handling routines.

* sfiprimitives.[hc]: fundamental structure implementations, such as
record, sequence and float sequences (for performance reasons implemented
as a block of floats).

* sfitypes.[hc]: miscellaneous type decls and yet-to-clean-up auxillary
functions.

* glib-extra.[hc]: GLib compatibility code, add-ons or extensions.