Wed Feb 11 08:09:57 2004  Tim Janik  <timj@gtk.org>

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

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

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

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

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

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

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

Tue Jan 27 16:07:27 2004  Tim Janik  <timj@gtk.org>

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

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

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

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

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

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

	* 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.h, sfidl-namespace.cc:
	added printable_form() to return a constant c-string from
	printableForm().

Sun Jan 25 05:30:32 2004  Tim Janik  <timj@gtk.org>

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

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

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

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

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

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

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

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

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

Sat Jan 24 01:01:43 2004  Stefan Westerfeld  <stefan@space.twc.de>

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

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

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

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

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

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

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

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

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

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

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

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

Tue Jan 20 02:49:23 2004  Stefan Westerfeld  <stefan@space.twc.de>

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

Tue Jan 20 02:18:22 2004  Stefan Westerfeld  <stefan@space.twc.de>

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

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

Tue Jan 20 01:35:01 2004  Tim Janik  <timj@gtk.org>

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

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

Tue Jan 20 00:46:39 2004  Tim Janik  <timj@gtk.org>

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

Tue Jan 20 00:39:48 2004  Stefan Westerfeld  <stefan@space.twc.de>

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

Tue Jan 20 00:20:07 2004  Tim Janik  <timj@gtk.org>

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

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

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

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

Mon Jan 19 20:19:11 2004  Stefan Westerfeld  <stefan@space.twc.de>

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

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

Sun Jan 11 06:20:12 2004  Tim Janik  <timj@gtk.org>

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

Sat Jan 10 10:27:40 2004  Tim Janik  <timj@gtk.org>

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

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

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

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

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

Mon Jan  5 14:34:50 2004  Stefan Westerfeld  <stefan@space.twc.de>

	* 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  <nedko@users.sourceforge.net>

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

Wed Dec 31 00:11:48 2003  Stefan Westerfeld  <stefan@space.twc.de>

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

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

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

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

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

Sun Dec 21 20:40:15 2003  Stefan Westerfeld  <stefan@space.twc.de>

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

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

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

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

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

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

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

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

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

Mon Dec 15 15:30:57 2003  Tim Janik  <timj@gtk.org>

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

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

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

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

Sat Dec  6 02:36:49 2003  Tim Janik  <timj@gtk.org>

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

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

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

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

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

Fri Nov 28 02:57:56 2003  Tim Janik  <timj@gtk.org>

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

Fri Nov 28 00:49:15 2003  Stefan Westerfeld  <stefan@space.twc.de>

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

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

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

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

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

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

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

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

Sat Nov  1 03:39:38 2003  Tim Janik  <timj@gtk.org>

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

Mon Oct 27 19:56:12 2003  Tim Janik  <timj@gtk.org>

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

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

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

Sat Oct 25 01:49:50 2003  Tim Janik  <timj@gtk.org>

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

	* sfiustore.[hc]: added pointer pool.

Mon Oct 13 12:29:48 2003  Tim Janik  <timj@gtk.org>

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

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

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

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

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

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

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

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

Sun Sep 21 04:23:18 2003  Stefan Westerfeld  <stefan@space.twc.de>

	* bse-plugin-generator.cc: Renamed pdef to idl.
	
	* sfidl-parser.cc: Fixed #include handling (typo).

Sun Sep 21 02:29:42 2003  Stefan Westerfeld  <stefan@space.twc.de>

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

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

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

Sun Sep  7 17:36:43 2003  Stefan Westerfeld  <stefan@space.twc.de>

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

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

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

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

Tue Aug 26 08:57:54 2003  Tim Janik  <timj@gtk.org>

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

	* sfidl-module.cc: generate only a single object header file
	from .mdef (module definition file) files.
	based on the export macros from bsecxxplugin.h, 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  <timj@gtk.org>

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

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

Fri Aug 22 07:48:14 2003  Tim Janik  <timj@gtk.org>

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

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

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

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

Thu Jul 31 18:09:23 2003  Tim Janik  <timj@gtk.org>

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

Wed Jul 30 05:17:56 2003  Tim Janik  <timj@gtk.org>

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

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

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

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

Wed Jul 23 19:19:36 2003  Stefan Westerfeld <stefan@space.twc.de>

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

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

Mon Jul 14 16:59:25 2003  Tim Janik  <timj@gtk.org>

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

Mon Jul 14 16:43:20 2003  Tim Janik  <timj@gtk.org>

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

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

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