Sun Jun  8 19:56:11 2003  Tim Janik  <timj@gtk.org>

	* sfistore.[hc]: error cosmetics.

Sun Jun  8 17:59:56 2003  Tim Janik  <timj@gtk.org>

	* 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  <timj@gtk.org>

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

Sun May 18 05:05:58 2003  Tim Janik  <timj@gtk.org>

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

Sun May 11 15:35:47 2003  Tim Janik  <timj@gtk.org>

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

Tue May  6 04:17:19 2003  Tim Janik  <timj@gtk.org>

        * 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  <timj@gtk.org>

	* 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  <timj@gtk.org>

	* 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  <timj@gtk.org>

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

Wed Apr 16 19:29:48 2003  Tim Janik  <timj@gtk.org>

	* 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  <timj@gtk.org>

	* 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  <timj@gtk.org>

	* 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  <timj@gtk.org>

	* sficomport.[hc]: debugging cleanup.

Sun Mar  9 14:45:50 2003  Tim Janik  <timj@gtk.org>

	* 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  <stefan@space.twc.de>

	* sfidl.cc: fixed double quotes in sfidl

Fri Mar  7 21:39:47 2003  Stefan Westerfeld  <stefan@space.twc.de>

	* 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  <timj@gtk.org>

	* 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  <timj@gtk.org>

	* 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  <stefan@space.twc.de>

	* 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  <timj@gtk.org>

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

Tue Feb 18 16:29:19 2003  Stefan Westerfeld  <stefan@space.twc.de>

	* 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  <timj@gtk.org>

	* 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  <timj@gtk.org>

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

Fri Feb 14 07:46:01 2003  Tim Janik  <timj@gtk.org>

	* 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 handling.

Fri Feb 14 11:17:51 2003  Stefan Westerfeld  <stefan@space.twc.de>

	* 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  <timj@gtk.org>

	* 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  <stefan@space.twc.de>

	* 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  <stefan@space.twc.de>

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

Fri Jan 31 19:36:20 2003  Tim Janik  <timj@gtk.org>

	* 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  <timj@gtk.org>

	* 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  <timj@gtk.org>

	* 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  <timj@gtk.org>

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

Tue Dec 31 03:01:30 2002  Tim Janik  <timj@gtk.org>

	* 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  <timj@gtk.org>

	* 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  <timj@gtk.org>

	* sfigluecodec.c: code cosmetics.

	* sficomport.c (sfi_com_port_io_pending): update pollfds.

Sat Dec 28 11:34:50 2002  Tim Janik  <timj@gtk.org>

	* sfivalues.c: allocate values as Sfi memblocks.

Sat Dec 28 09:52:20 2002  Tim Janik  <timj@gtk.org>

	* 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  <timj@gtk.org>

	* 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  <timj@gtk.org>

	* 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  <timj@gtk.org>

	* 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  <timj@gtk.org>

	* 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  <timj@gtk.org>

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

	* sfistore.[hc]: removed logging functionality.

Fri Dec 13 17:53:35 2002  Tim Janik  <timj@gtk.org>

	* 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  <timj@gtk.org>

	* 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  <timj@gtk.org>

	* 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  <timj@gtk.org>

	* 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  <timj@gtk.org>

	* 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  <timj@gtk.org>

        * 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  <timj@gtk.org>

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

Mon Dec  2 01:40:10 2002  Tim Janik  <timj@gtk.org>

	* 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  <stefan@space.twc.de>

	* 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  <stefan@space.twc.de>

	* 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  <timj@gtk.org>

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

Sun Dec  1 04:21:16 2002  Tim Janik  <timj@gtk.org>

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

Sun Dec  1 03:42:00 2002  Stefan Westerfeld  <stefan@space.twc.de>

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

Sun Dec  1 03:23:29 2002  Stefan Westerfeld  <stefan@space.twc.de>

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

Sun Dec  1 02:40:38 2002  Stefan Westerfeld  <stefan@space.twc.de>

	* 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  <timj@gtk.org>

	* 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  <stefan@space.twc.de>

	* 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  <stefan@space.twc.de>

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

Sun Nov 24 03:21:07 2002  Tim Janik  <timj@gtk.org>

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

Sun Nov 24 02:21:09 2002  Tim Janik  <timj@gtk.org>

	* 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  <timj@gtk.org>

	* 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  <stefan@space.twc.de>

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

Wed Nov 13 23:21:13 2002  Stefan Westerfeld  <stefan@space.twc.de>

	* 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  <stefan@space.twc.de>

	* 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  <timj@gtk.org>

	* 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  <timj@gtk.org>

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

Mon Nov  4 11:38:56 2002  Tim Janik  <timj@gtk.org>

	* 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.h: 
	* sfidl-namespace.h: 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  <timj@gtk.org>

	* 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  <stefan@space.twc.de>

	* 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  <stefan@space.twc.de>

	* 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  <timj@gtk.org>

	* 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  <timj@gtk.org>

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

Sun Nov  3 00:00:12 2002  Stefan Westerfeld  <stefan@space.twc.de>

	* 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  <stefan@space.twc.de>

	* 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  <stefan@space.twc.de>

	* 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  <timj@gtk.org>

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

Thu Oct 31 23:16:41 2002  Stefan Westerfeld  <stefan@space.twc.de>

	* 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  <stefan@space.twc.de>

	* 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  <timj@gtk.org>

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

Sun Oct 27 23:00:25 2002  Stefan Westerfeld <stefan@space.twc.de>

	* 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 <stefan@space.twc.de>

	* 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 <stefan@space.twc.de>

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

Sun Oct 27 16:17:32 2002  Tim Janik  <timj@gtk.org>

	* 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  <timj@gtk.org>

	* 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 <stefan@space.twc.de>

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

Sun Oct 27 00:33:24 2002  Stefan Westerfeld <stefan@space.twc.de>

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

Wed Oct 23 20:39:56 2002  Stefan Westerfeld <stefan@space.twc.de>

	* sfidl.cc: generate resize functions for sequences.

Wed Oct 23 20:28:01 2002  Tim Janik  <timj@gtk.org>

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

Wed Oct 23 19:25:40 2002  Tim Janik  <timj@gtk.org>

	* 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  <timj@gtk.org>

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

Mon Oct 21 16:16:35 2002  Tim Janik  <timj@gtk.org>

	* 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  <timj@gtk.org>

	* 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  <timj@gtk.org>

	* 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  <timj@gtk.org>

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

Sat Oct 12 01:03:24 2002  Tim Janik  <timj@gtk.org>

	* 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  <timj@gtk.org>

	* 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 <stefan@space.twc.de>

	* 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 <stefan@space.twc.de>

	* 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  <timj@gtk.org>

	* 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  <timj@gtk.org>

	* 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 <stefan@space.twc.de>

	* 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 <stefan@space.twc.de>

	* 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 <stefan@space.twc.de>

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

Fri Oct  4 10:01:53 2002  Tim Janik  <timj@gtk.org>

	* 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  <timj@gtk.org>

	* 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  <timj@gtk.org>

	* 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  <timj@gtk.org>

	* 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 <stefan@space.twc.de>

        * sfi/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  <timj@gtk.org>

	* 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.
