2006-12-15  Andy Wingo  <wingo@pobox.com>

	* == Released guile-gnome-platform version 2.15.90 ==

2006-12-15  Andy Wingo  <wingo@pobox.com>

	* VERSION: Bumped to 2.15.90.

2006-12-15  Andy Wingo  <wingo@pobox.com>

	* test-suite/gw-test-gobject-spec.scm (gw-test-gobject-spec): 
	* test-suite/gw-test-glib-spec.scm (gw-test-glib-spec): Fix up
	includes.

	* test-suite/gobject.test ("basic values"): Fix the check for
	out-of-range errors, using the "value out of range" variant
	instead of "argument N out of range".

	* test-suite/Makefile.am (libgw_guile_test_glib_la_LIBADD): Link
	to GLib.

	* gnome/gw/support/gobject.scm (wrap-value-cg): Use the
	scm_c_gtype_instance_unref generic function instead of
	g_object_unref, so that we can support other classed objects.

	* gnome/gobject/gtype.c: 
	(get_gtype_instance_instance_funcs)
	(scm_register_gtype_instance_funcs, scm_c_gtype_instance_ref)
	(scm_c_gtype_instance_unref)
	(scm_c_gtype_instance_get_cached_smob)
	(scm_c_gtype_instance_set_cached_smob)
	(scm_c_gtype_instance_get_cached_goops)
	(scm_c_gtype_instance_set_cached_goops): Keep a registry of
	fundamental classed gtypes that we know how to deal with, with
	function pointers on how to ref, unref, get qdata, and set qdata
	on them. This gets g_object_* code out of gtype.c, and allows for
	external modules to define wrappers for new fundamental classed
	types, like GStreamer's miniobjects.
	(scm_gtype_instance_free, scm_c_gtype_instance_to_scm)
	(scm_c_make_gtype_instance): Use the generic functions instead of
	type-specific switch blocks.

	* gnome/gobject/gparameter.c (scm_init_gnome_gobject_parameters):
	Register the paramspec ref/sink/qdata functions with gtype.c.
	
	* gnome/gobject/gobject.c (scm_init_gnome_gobject): Register the
	gobject ref/sink/qdata functions with gtype.c.
	(s_scm_gobject_primitive_create_instance): use
	scm_c_gtype_instance_set_cached_goops instead of mucking about
	with qdata ourselves.

2006-12-09  Andy Wingo  <wingo@pobox.com>

	* gnome/gw/support/gobject.scm (wrap-value-cg): If a boxed value
	is caller-owned, then use g_value_take_boxed instead of
	g_value_set_boxed.

	* gnome/gobject/gvalue.c (s_scm_scm_to_gvalue): If a custom
	unwrapper fails to set the gvalue, signal a wrong-type-arg
	exception.

2006-12-08  Andy Wingo  <wingo@pobox.com>

	* gnome/gw/support/gobject.scm (wrap-custom-gvalue!): New public
	macro, allows new fundamental GTypes to be represented as native
	scheme values. For example, GstIntRange as a pair of ints.
	
	* gnome/gobject/guile-gnome-gobject.h: Add gc.h so people using
	this header get everything.

	* gnome/gobject/gvalue.c (scm_init_gnome_gobject_values): Don't
	export enum and flags gtypes here, that's already done by gtype.c.
	I'm not sure if this is the right change though; it seems that all
	of the gtype:foo exports should be done in the same file. Dunno.

2006-11-05  Andy Wingo  <wingo@pobox.com>

	* gnome/gw/gobject-spec.scm: Use (gnome gw support g-wrap), the
	g-wrap compatibility wrapper.

	* gnome/gw/glib-spec.scm: Use (gnome gw support g-wrap), the
	g-wrap compatibility wrapper.

	* gnome/gw/support/Makefile.am (support_DATA): 
	* gnome/gw/support/g-wrap.scm: New module, (gnome gw support
	g-wrap), added to the dist. The idea is for wrapsets to have
	access to all g-wrap generics from one module.

2006-10-30  Andy Wingo  <wingo@pobox.com>

	* gnome/gobject/gc.h:
	* gnome/gobject/gc.c (scm_glib_gc_protect_object)
	(scm_glib_gc_unprotect_object): New functions, like
	scm_gc_[un]protect_object, but can be called from inside the gc's
	sweep phase.

	* gnome/gobject/gparameter.c (s_scm_gparam_to_param_struct): 
	* gnome/gobject/gvalue.c (copy_gboxed_scm, free_gboxed_scm): 
	* gnome/gobject/gobject.c (s_scm_gobject_set_data_x)
	(scm_c_gtype_instance_class_init): 
	* gnome/gobject/gclosure.c (free_closure)
	(s_scm_gclosure_primitive_new): Use scm_glib_gc_protect_object
	instead of guile's scm_gc_protect_object.

	* gnome/gobject/Makefile.am (C_FILES): Add gc.c.

2006-10-27  Andy Wingo  <wingo@pobox.com>

	* gnome/gw/support/defs.scm (construct-argument-list): Don't throw
	away typespec options, like 'null-ok, when there are extras
	arguments. Fixes cases like this:
	'("GMainContext*" "context" (null-ok) (default "NULL")).

2006-10-26  Andy Wingo  <wingo@pobox.com>

	* gnome/gw/support/gobject.scm (add-type!): Only export classes
	that are actually defined. Fixes guile-gnome on guile 1.8.

	* gnome/gw/generics.scm (gnome): Use (gnome gobject), so that any
	methods we define hang off the same generics as the base gobject
	library.

2006-10-20  Andy Wingo  <wingo@pobox.com>

	* gnome/gw/support/gobject.scm (initializations-cg): Tell g-wrap
	to work with generic functions in the (gnome gw generics) module.
	Makes it so that we don't pollute the root namespace.

	* gnome/gw/Makefile.am (guilegwmodule_DATA): Autotoolage.

	* gnome/gw/generics.scm: New file, created to hold guile-gnome's
	generic functions.

2005-12-22  Andy Wingo  <wingo@pobox.com>

	* AUTHORS: Updated.

	* gnome/gw/support/Makefile.am (support_DATA): Updated
	accordingly.

	* gnome/gw/support/slib.scm: New module, provides printf and
	glob:make-matcher. This removes the build dependency on slib.

	* gnome/gw/support/printf.scm: 
	* gnome/gw/support/glob.scm: 
	* gnome/gw/support/genwrite.scm: Pulled in from SLIB. Without
	modifications.

2005-10-13  Andy Wingo  <wingo@pobox.com>

	* gnome/gobject/gtype.c (scm_gtype_interfaces): Signedness fix.

2005-09-17  Andreas Rottmann  <a.rottmann@gmx.at>

	* gnome/gobject/gtype.c (s_scm_gtype_interfaces): Fix GCC 4.0
	warnings.

2005-04-20  Andreas Rottmann  <a.rottmann@gmx.at>

	* gnome/glib.scm (g-error-domain, g-error-code, g-error-message):
	New public functions.

2005-04-10  Andreas Rottmann  <a.rottmann@gmx.at>

	* gnome/gobject/gobject.c, gnome/gobject/gvalue.c,
	* gnome/gw/glib-support.c: Use the new macros.
	* gnome/gobject/gutil.h (GPOINTER_TO_SCM, SCM_TO_GPOINTER): New
	macros.
	
2005-04-09  Andreas Rottmann  <a.rottmann@gmx.at>

	* gnome/gw/glib-spec.scm (initialize): Fix gsize, gssize in- and 
	out-arguments.
	
	* gnome/gw/glib-spec.scm (post-call-arg-cg): Use newly-added function
	scm_c_raise_gerror.
	* gnome/gobject/Makefile.am (C_FILES): Added gutil.c
	* gnome/gobject/gobject.h: #include gutil.h
	* gnome/gobject/gutil.c, gnome/gobject/gutil.h: New files.

2005-04-07  Andreas Rottmann  <a.rottmann@gmx.at>

	* test-suite/gw-gobject.test, test-suite/gobject.test: Added a few
	tests relevant to the gvalue fixes.

	* gnome/gw/support/defs.scm (load-defs): Improve error handling a
	bit by re-raising stacked conditions where appropriate.

	* gnome/gobject/gvalue.c (scm_gvalue_primitive_get): Return a full
	goops instance when the gvalue contains an object.

	* gnome/gobject/gvalue.c (scm_gvalue_primitive_set): Fix
	scm_list_p() check, needs to wrapped with SCM_BOOL().
	(scm_gvalue_primitive_set): Also handle goops gobject instances.

2005-03-17  Andreas Rottmann  <a.rottmann@gmx.at>

	* gnome/gobject/gvalue.c (scm_gvalue_primitive_set): Fix memleak
	when setting a string value.

2005-03-01  Andreas Rottmann  <a.rottmann@gmx.at>

	* gnome/overrides/glib.defs: Added g_io_add_watch_full to ignore
	list.

	* examples/fifo.scm: Polished a bit.

	* gnome/gw/support/defs.scm (load-defs): Re-enable logging of
	opaque types.

2005-03-06  Andy Wingo  <wingo@pobox.com>

	* == Released guile-gnome-platform version 2.7.99 ==

2005-03-06  Andy Wingo  <wingo@pobox.com>

	* VERSION: Bumped to 2.7.99.

2005-03-06  Andy Wingo  <wingo@pobox.com>

	* gnome/gw/support/defs.scm: Don't make generics if the of-object
	is an enum, flags, boxed, or custom boxed. This is a nasty nasty
	hack to make sure generics aren't created with unspecialized args,
	to prevent e.g. (foo-append <top> <top>) -> (append <top> <top>). 

2005-01-29  Andreas Rottmann  <a.rottmann@gmx.at>

	* gnome/gw/support/gobject.scm (make-typespec): Make the methods
	specialized on <gobject-enum-type>, <gobject-boxed-type> and
	<gobject-custom-boxed-type> add the 'unspecialized option to the
	created typespec (needed for G-Wrap 1.9.4).

2005-01-11  Andy Wingo  <wingo@pobox.com>

	* == Released platform version 2.7.98 ==

2005-01-11  Andy Wingo  <wingo@pobox.com>

	* VERSION: Bumped to 2.7.98.

2004-12-06  Andy Wingo  <wingo@pobox.com>

	* VERSION: Bumped.

	* == Released platform version 2.7.97 ==

	* gnome/gobject/gvalue.c (scm_c_register_gvalue_wrappers):
	DAMMMIT, g_int_hash doesn't do what you think it does!

2004-12-05  Andy Wingo  <wingo@pobox.com>

	* gnome/gw/support/gobject.scm (wrap-custom-boxed!): New exported
	macro, replaces wrap-custom-pointer! and custom-wrapper-decls.
	(<gobject-custom-boxed-type>, gen-c-tmp, global-definitions-cg) 
	(global-declarations-cg, initializations-cg, make-custom-wrapper) 
	(make-custom-unwrapper, unwrap-value-cg, wrap-value-cg): Support
	for the new custom wrapper. Will create GValue wrapper functions,
	use them from the wrap/unwrap procedures, and registers them with
	gvalue.c.

	* gnome/gobject/gvalue.c (s_scm_gvalue_primitive_get)
	(scm_c_gvalue_to_scm, s_scm_gvalue_to_scm): Remove casts to
	GTypeInstance.

	* gnome/gobject/gtype.c (scm_c_make_gtype_instance)
	(scm_gtype_instance_free, scm_gtype_instance_print)
	(sink_type_instance, scm_register_gtype_instance_sinkfunc)
	(scm_c_gtype_instance_to_scm, scm_c_make_gtype_instance)
	(guile_gobject_log_handler)
	(scm_c_scm_to_gtype_instance, scm_c_gtype_instance_to_scm): Use
	gpointer instead of GTypeInstance* as the type declaration, since
	we never actually deal with GTypeInstance, only their subclasses.
	Eliminates the need for many casts, because we have to check at
	runtime anyway.

2004-12-02  Andy Wingo  <wingo@pobox.com>

	* gnome/gobject/utils.scm (gnome): Export GStudlyCapsExpand so
	that (gnome gw support gobject) can use it.

	* gnome/gobject/gvalue.c (s_scm_scm_to_gvalue)
	(s_scm_gvalue_to_scm): Use the new gvalue wrappers as appropriate.
	(scm_c_register_gvalue_wrappers): New procedure, registers a pair
	of procedures to make a custom mapping between scheme values and
	gvalues.

2004-11-29  Andy Wingo  <wingo@pobox.com>

	* gnome.scm.in (gnome): Define the module before resolving it, so
	as to avoid guile 1.6 trying to load a binary module. Thanks to
	David Pirotte for the bug report. Define the version as
	`gnome-version' because the core already exports `version'.
	(add-to-load-path!): New proc, tries to order environment-variable
	load paths first so that hacking the load path during compilation
	works.

2004-11-21  Andy Wingo  <wingo@pobox.com>

	* examples/Makefile.am (EXTRA_DIST): Dist all scm files.

2004-11-16  Andy Wingo  <wingo@pobox.com>

	* gnome/gw/glib-support.c: Indentation, only get iochannel_type
	when the func is first called.

2004-11-15  Andy Wingo  <wingo@pobox.com>

	* gnome/gw/glib-support.c: Fix includes.
	(scm_init_glib): Lookup the iochannel type when glib is
	initialized.
	(g_io_func): Don't lookup the type all the time.

2004-10-30  Jan Nieuwenhuizen  <janneke@gnu.org>

	* examples/fifo.scm: Update.

	* gnome/gw/glib-support.scm: Add return parameter overrides (Rotty).

	* gnome/gw/glib-support.c: Remove _wrap_g_io_channel_read_line wrapper.

2004-10-22  Jan Nieuwenhuizen  <janneke@gnu.org>

	* examples/fifo.scm: New file.

2004-10-21  Jan Nieuwenhuizen  <janneke@gnu.org>

	* gnome/gw/glib-support.c (_wrap_g_io_add_watch): New wrapper.

	* gnome/overrides/glib.defs (g_io_add_watch): New override.

2004-11-15  Andy Wingo  <wingo@pobox.com>

	* Makefile.am: Don't install into guile's path, just use $prefix.

	* gnome.scm.in: Don't hack /usr/local. Add some comments.

	* package.ac: Add record_check.

2004-11-13  Andy Wingo  <wingo@pobox.com>

	* Makefile.am (EXTRA_DIST): Dist VERSION.
	* VERSION: New file.

2004-11-11  Andy Wingo  <wingo@pobox.com>

	* gnome.scm.in (usr-local-hack): Fix..

	* Makefile.am (guilesite): Argh, get the inst dir right.

	* package.ac: Avoid readlink -f, be more portable.

	* gnome.scm.in: New file, basically does what guile-gnome-0 does,
	but from within scheme.

	* Makefile.am: Add rules so that gnome-$version.scm looks right
	both installed and uninstalled. Install to the system guile path,
	regardless of the $prefix of guile-gnome. Build . before subdirs.

	* gnome/gw/glib-spec.scm (unwrap-value-cg): Whoops, fix parens.

	* gnome/gw/support/defs.scm (type-lookup): Assume that the caller
	owns generated container types (i.e. GList) if 'const isn't set.
	Prevents some invalid frees, hanks to Patrick Bernaud for the
	report.
	
	* gnome/gw/glib-spec.scm (unwrap-value-cg): Use destroy-value-cg
	to free the list after unwrapping.

2004-11-09  Andy Wingo  <wingo@pobox.com>

	* gnome/gw/support/gobject.scm (custom-wrap-decls)
	(wrap-custom-pointer!): New exported macros, designed to simplify
	wrappings of c types represented by native scheme values.

2004-10-28  Andy Wingo  <wingo@pobox.com>

	* defs-checks.ac: Versioned pkg-config check.

	* Makefile.am (all-local): Versioned pkg-config files.

	* examples/main-loop.scm: 
	* examples/example-1.scm: Use guile-gnome-0.

	* bin/guile-gnome.in (localpath): Add /usr/local include dirs to
	the guile loadpath, so that users aren't surprised when they have
	g-wrap installed in /usr/local/guile/site. A hack for guile 1.6.

2004-10-26  Andy Wingo  <wingo@pobox.com>

	* package.ac (GUILE_GLIB_LIBS): Link to the versioned lib.

	* guile-gnome-glib-uninstalled.pc.in, guile-gnome-glib.pc.in: Link
	to the versioned lib.

	* gnome/gobject/config.scm.in: New file, exports
	*guile-gnome-gobject-lib-path*.

	* gnome/gobject/gobject.scm, gtype.scm, gvalue.scm,
	gparameter.scm, gsignal.scm, gclosure.scm: dynamic-link the path
	from (gnome gobject config).

	* gnome/gobject/Makefile.am: Version the libguile-gnome-gobject
	lib. Make config.scm work in the source tree and in the
	installdir. Define GUILE_GOBJECT_DIR to be $guilegnomedir.

	* bin/Makefile.am: New file. Will install a versioned
	guile-gnome-$apiversion into $bindir.

	* bin/guile-gnome.in: New script, wraps guile with a munged load
	path for modules and libraries.

	* Makefile.am (SUBDIRS): Add bin/.

	* gnome/gw/Makefile.am (guilegnomelib_LTLIBRARIES): Install to
	versioned directory.

2004-10-12  Andreas Rottmann  <a.rottmann@gmx.at>

	* shlib-dirs.ac: New file, to be used by dev-environ.

2004-10-14  Andy Wingo  <wingo@pobox.com>

	* gnome/gobject/gvalue.c (s_scm_gvalue_primitive_set): For
	objects, interpret a #f value as NULL.
	(s_scm_gvalue_primitive_set): Bugfix: convert SCM return value of
	scm_list_p into a C boolean.

	* gnome/gobject/gtype.c (scm_c_make_gtype_instance): Return #f if
	the instance argument is NULL.

2004-10-13  Andy Wingo  <wingo@pobox.com>

	* gnome/gobject/gvalue.c (s_scm_gvalue_primitive_set): For
	objects, assert that the type is compatible with the GValue type.

2004-10-11  Andy Wingo  <wingo@pobox.com>

	* gnome/gobject/gobject.scm (make-gobject-instance): Set the fluid
	%gobject_initargs to the init-keyword kwargs for the duration of
	the gobject-primitive-create-instance. This allows the call back
	into scheme for `initialize' to pass the kwargs. However, if (not
	 (scheme-gclass? class), call `initialize' manually. Also, in the
	error message, "No such s/property/property or init-keyword/ ...".

	* gnome/gobject/gtype.scm (initialize): For <gtype-instance>, no
	need to provide a method that does nothing, and no need to avoid
	the <gobject> initialize method. Removed.

	* gnome/gobject/gobject.h: 
	* gnome/gobject/gobject.c (s_scm_scheme_gclass_p): New predicate,
	returns #t iff `class' is derived from within scheme. Normally it
	doesn't matter, but we want to avoid calling `initialize' twice on
	the instance.
	(scm_init_gnome_gobject): Initialize the _gobject_initargs_fluid
	to '(), define it for scheme.
	(scm_c_gtype_instance_instance_init): Call initialize with the
	proper initargs.

2004-10-10  Andy Wingo  <wingo@pobox.com>

	* gnome/gobject/gtype.c (scm_c_gtype_instance_to_scm): Don't error
	out if ginstance is NULL, we're probably going to scheme anyway.
	Better to just return #f and stay quiet.

	* gnome/gw/support/defs.scm (load-defs): Better error when a
	symbolic include isn't file isn't found.

	* gnome/gobject/gsignal.scm (gtype-class-get-signal-names): Copy
	vector-map from gobject.scm.

	* gnome/gw/glib-spec.scm (initialize): GTime -> int32.

	* gnome/gobject/gvalue.[ch] (scm_c_gboxed_to_scm) 
	(scm_c_dup_gboxed_to_scm): New helper functions. Take a pointer to
	an object along with its GType and return a SCM gvalue.

2004-10-09  Andy Wingo  <wingo@pobox.com>

	* gnome/gw/support/gobject.scm (unwrap-value-cg, wrap-value-cg):
	Define c-var, scm-var, and gtype-id within the body of the
	wrap-pointer! value wrappers.

2004-10-07  Andy Wingo  <wingo@pobox.com>

	* gnome/gw/support/defs.scm (construct-argument-list): Fail
	correctly if there is an unknown rest arg, but warn.
	(load-defs:scan-type!): Catch a throw to 'ignored. Get the ctype
	as a string, not a list of one element. Throw to 'ignored if the
	ctype is in the ignored-types list.
	(load-defs:ignore-types): New procedure, adds all of its arguments
	to the ignored types list.
	(load-defs): Add a hook to interpret ignore-types. Also interpret
	the form (include SYMBOL) to mean (include
	"gnome/overrides/BASENAME-SYMBOL").

2004-09-27  Andy Wingo  <wingo@pobox.com>

	* test-suite/exceptions.scm, gnome/gw/Makefile.am
	* test-suite/test-gobject.c, examples/example-1.scm
	* test-suite/gw-glib.test, test-suite/gw-gobject.test
	* test-suite/gobject.test, test-suite/gw-test-gobject-spec.scm
	* test-suite/guile-gobject-test, test-suite/gw-test-glib-spec.scm
	* test-suite/test-glib.defs, test-suite/test-gobject.h: Added
	license blocks.

2004-09-19  Andy Wingo  <wingo@pobox.com>

	* gnome/gw/Makefile.am (libgw_guile_gnome_glib_la_LIBADD): Not
	G_WRAP_LINK_ARGS, it's G_WRAP_LIBS.

	* gnome/gobject/Makefile.am (libguile_gnome_gobject_la_LIBADD):
	Don't link to g-wrap.

	* gnome/gobject/guile-support.h: Don't include
	g-wrap/guile-compatibility.h -- no reason to depend on g-wrap.

	* guile-gnome-glib.pc.in (includedir): Point to the versioned
	directory.

	* gnome/gobject/Makefile.am: Install headers to a versioned
	directory.

2004-09-16  Andy Wingo  <wingo@pobox.com>

	* Makefile.am (SUBDIRS): Dist fixes.

	* README: Added.

	* NEWS: All pre-guile-gnome stuff elided. 

	* NEWS.guile-gobject: Added the old news here.

2004-09-15  Andy Wingo  <wingo@pobox.com>

	* gnome/gw/support/defs.scm (load-defs): Ignore varargs functions,
	like we used to before the rewrite.

2004-09-12  Andy Wingo  <wingo@pobox.com>

	* gnome/gobject.scm: Real keywords, avoid deprecated modules.

	* gnome/glib.scm: Real keywords, avoid deprecated modules.

	* gnome/gw/gobject-spec.scm (gnome, gnome): Adapt to new module
	names.

	* package.ac (GUILE_GLIB_LIBS): Use readlink, not realpath, for
	portability.

2004-09-08  Andy Wingo  <wingo@pobox.com>

	* AUTHORS: Updated.

	* NEWS: Updated, and put in a more Guile-like format.

	* TODO: Removed many items.

2004-09-07  Andy Wingo  <wingo@pobox.com>

	* gnome/gw/support/defs.scm (load-defs): Change out a `cond' with
	a series of and=> statements. Fixes some problems.

2004-09-06  Andy Wingo  <wingo@pobox.com>

	* Makefile.am: Er, it's not in this module. I'm stupid.

	* Makefile.am: Install the -defs pkg-config file.

2004-09-05  Andy Wingo  <wingo@pobox.com>

	* gnome/gobject/Makefile.am (CLEANFILES): Clean the .x files.

	* package.ac (GUILE_GLIB_CFLAGS): Include the builddir's gobject
	dir as well.

	* gnome/gw/Makefile.am (libgw_guile_gnome_gobject_la_CFLAGS): Add
	the builddir to the CFLAGS as well: the link is placed in the
	builddir.

	* package.ac: Fix the link creation for non-srcdir builds.

	* gnome/overrides/Makefile.am, gnome/Makefile.am: Add the
	overrides to the dist.

	* package.ac: Create the gnome/gobject/guile-gnome-gobject link
	when config.status is created.

	* guile-gnome-glib.pc.in, guile-gnome-glib-uninstalled.pc.in:
	Moved from guile-gobject*.pc.in.

	* gnome/overrides/glib.defs: Moved from glib-overrides in the defs
	module. Otherwise unchanged.

	* defs-checks.ac: New file. We depend on the defs module.

	* For each of the files below, deprecated versions were left in
	the original locations.
	
	* gnome/gw/support/modules.scm: Moved from (gnome gobject
	gw-utils). Otherwise unchanged.

	* gnome/gw/support/gobject.scm: Moved from (gnome gobject
	gw-spec-utils). Otherwise unchanged.

	* gnome/gw/support/defs.scm: Moved from (gnome gobject
	defs-support). The parser was rewritten as an interpreter, rather
	than using guile as the interpreter.
	(load-defs): Take an optional argument, overrides, which should be
	the path within %load-path of the overrides file. Handle (ignore
	overrides).
	(load-defs-with-overrides): New procedure, wraps load-defs.

2004-07-28  Andreas Rottmann  <a.rottmann@gmx.at>

	* gnome/gw/glib-spec.scm (make-typespec): Use raise instead of throw.

	* gnome/gw/glib-spec.scm: Adapt for destruct-value-cg ->
	destroy-value-cg G-Wrap API change.

2004-08-29  Andy Wingo  <wingo@pobox.com>

	* gnome/gobject/gclosure.c (%scm-gclosure-marshal): A non-NULL
	return_value of type G_TYPE_NONE or G_TYPE_INVALID does not need
	to be filled.

2004-09-14  Andy Wingo  <wingo@pobox.com>

	* gnome/gw/glib-spec.scm: Wrap unsigned-char.

2004-07-28  Andreas Rottmann  <a.rottmann@gmx.at>

	* gnome/gw/glib-spec.scm (make-typespec): Use raise instead of throw.

	* gnome/gw/glib-spec.scm: Adapt for destruct-value-cg ->
	destroy-value-cg G-Wrap API change.

2004-08-29  Andy Wingo  <wingo@pobox.com>

	* gnome/gobject/gclosure.c (%scm-gclosure-marshal): A non-NULL
	return_value of type G_TYPE_NONE or G_TYPE_INVALID does not need
	to be filled.

2004-07-18  Andy Wingo  <wingo@pobox.com>

	* gnome/gw/glib-spec.scm (<glist-of-type>): Added #:type-cname and
	#:func prefix slots, so that <glist-of-type> can be used for
	slists as well. The wrap/destruct methods were changed
	accordingly, and "GSList*" now maps to the gslist-of type.

2004-07-11  Andy Wingo  <wingo@pobox.com>

	* gnome/gobject/gvalue.scm (gtype-instance:write): Use logand, not
	logior for flags.

2004-07-07  Andy Wingo  <wingo@pobox.com>

	* gnome/gw/gobject-spec.scm (unwrap-value-cg): Whoops, call
	wrapped-var on the right thing.

	* gnome/gobject/gw-spec-utils.scm (unwrap-value-cg): For enums and
	flags, use scm_scm_to_gvalue() instead of rolling our own
	conversion. Also fixes problems when the current module doesn't
	import GOOPS.

2004-07-06  Andy Wingo  <wingo@pobox.com>

	* gnome/gw/gobject-spec.scm: Same.

	* gnome/gobject/gw-spec-utils.scm: Make sure that gw:error is
	passed the wrapped var, not the scm var -- they are of different
	types.

2004-07-01  Andreas Rottmann  <a.rottmann@gmx.at>

	* gnome/glib.scm: Include #:use-module (gnome gobject) before the
	generated wrapsets (fixes segfault).

	* gnome/gobject/gw-spec-utils.scm (unwrap-null-check): Bugfix;
	conversion code was always executed, even when null-ok and the
	pointer actually was NULL. This is now named unwrap-null-checked
	and takes the actual unwrap code as extra parameter.
 
2004-06-30  Andy Wingo  <wingo@pobox.com>

	* gnome/gobject/gtype.c (scm_gtype_instance_print): Same bug.

	* gnome/gobject/gvalue.c (scm_gvalue_print): I got bit by !SCM.
	Use SCM_FALSEP instead.

	* gnome/gobject/gtype.c: Yikes, somehow Martin's copyright notice
	got lost in the file split! Put back on all files.

	* gnome/gobject/gvalue.c (scm_gvalue_print): Indentation fix.

2004-06-24  Andreas Rottmann  <a.rottmann@gmx.at>

	* test-suite/guile-gobject-test: Include (gnome gobject) in
	use-modules before the generated wrapset (fixes segfault).
	
	* gnome/gw/glib-spec.scm, gnome/gw/gobject-spec.scm,
	* test-suite/gw-test-gobject-spec.scm, 
	* test-suite/gw-test-glib-spec.scm: Adapted for G-Wrap "depends-on!"
	API change.

2004-05-19  Andy Wingo  <wingo@pobox.com>

	* ChangeLog: All changelogs have been merged, and the entries that
	don't deal with the GLib/GObject wrapper have been elided. Some
	directories were corrected.

	* gnome/gobject/gparameter.scm (gnome): Export gparameter: limits.

	* gnome/gobject/gparameter.c (scm_init_gnome_gobject_parameters):
	Changed gruntime:int-max and friends to be gparameter:int-max,
	etc.

	* Makefile.am, files.ac, guile-gobject-uninstalled.pc.in: Revive
	this pkg-config file. See pkg-config(1) for more info.

	* gnome/gobject/gw-spec-utils.scm: Wrap GObjectClass. This is used
	in GStreamer, at least, and should be used in GTK.

	* gnome/gw/Makefile.am: Don't link the glib wrapper to the gobject
	runtime, there's no need.

2004-05-15  Andy Wingo  <wingo@pobox.com>

	* gnome/gobject/gtype.c (scm_c_gtype_to_class): Try to prevent a
	rount-trip to SCM by calling scm_c_lookup_class first.

	* gnome/gobject/gw-spec-utils.scm (unwrap-value-cg for enums and
	flags): Use scm_c_gtype_to_class instead of lookup_class, because
	with latent bindings the class might not exist yet.

2004-05-14  Andy Wingo  <wingo@pobox.com>

	* gnome/gobject/gtype.c (scm_gtype_to_class): Now exported as part
	of the C API (formerly static SCM _gtype_to_class).

2004-05-10  Andy Wingo  <wingo@pobox.com>

	* test-suite/gobject-primitives.test: Removed, this interface is
	no longer exported. Yay!

2004-05-09  Andy Wingo  <wingo@pobox.com>

	* gnome/gobject/gw-gobject-spec.scm (ws): Don't wrap gtype
	functions. I'm trying to move away from unnecessary g-wrap usage.

	* gnome/gobject/gtype.c (s_scm_gtype_to_class_name,
	s_scm_gtype_to_method_name): Implemented in scheme now.

	* gnome/gobject/gw-spec-utils.scm: removed the type name mangling
	code, going to put it in types.scm.

	* gnome/gobject/gtype.c (s_scm_gtype_children): Changed to return
	a list instead of a vector.

	* gnome/gobject/gparameter.c (s_scm_gparam_spec_p): Removed, it
	wasn't used anywhere. (s_scm_gparam_primitive_create): Doesn't
	pre-cache the param struct any more -- should be constructed on
	demand, i.e. when gparam->param-struct is called.

2004-05-04  Andreas Rottmann  <a.rottmann@gmx.at>

	* gnome/gw/glib-support.c, glib-support.c
	(_wrap_g_string_get_str): New function.

2004-04-30  Andreas Rottmann  <a.rottmann@gmx.at>

	* package.ac: Depend on glib-2.0 >= 2.4.0.
	
2004-04-27  Andreas Rottmann  <a.rottmann@gmx.at>

	* gnome/gw/Makefile.am: Also distribute and install glib.scm.

	* gnome/gw/glib-spec.scm (initialize): Added a few type aliases
	for basic C types. Fixed for changed defs directory.

2004-04-12  Andreas Rottmann  <a.rottmann@gmx.at>

	* h2def.py: Quick hack to fix G_*_DECLS misparsing.

2004-04-11  Andy Wingo  <wingo@pobox.com>

	* gnome/gobject/defs-support.scm (load-defs): Cope with slib 3
	(and hopefully 2 as well) by changing the glob:match?? call to
	glob:make-matcher.

2004-04-03  Andreas Rottmann  <a.rottmann@gmx.at>

	* gnome/gobject/defs-support.scm (type-lookup): Recognize "[]" in
	type strings and treat it like a pointer.

2004-04-03  Andreas Rottmann  <a.rottmann@gmx.at>

	* configure.in: Depend on libgnomeui >= 2.6.0 and gtk+ >= 2.4.0.

2004-04-02  Andreas Rottmann  <a.rottmann@gmx.at>

	* gnome/gobject.scm (gtype-instance:write): Typo fix: logor ->
	logior.

2004-03-29  Andreas Rottmann  <a.rottmann@gmx.at>

	* test-suite/Makefile.am (libgw_test_gobject_la_LIBADD): Link
	against core instead of wrapset.

2004-03-29  Andreas Rottmann  <a.rottmann@gmx.at>

	* guile-gobject.pc.in, guile-gobject-uninstalled.pc.in: Moved to
	gnome/gobject, where they belong. Makefiles adapted.
	
	* guile-gobject.pc.in (Libs): Link against against the core
	support code, not a wrapset. Remove have_gtk= line and FIXME
	comment, since these do not fall in the realm of pkg-config (no
	headers or regular shared libs installed). *
	guile-gobject-uninstalled.pc.in: Ditto.
	
2004-03-28  Andreas Rottmann  <a.rottmann@gmx.at>

	* gnome/gobject/defs-support.scm (load-defs): The glob:* functions
	are not existant anymore in SLIB3, and were aliased to filename:*
	anyway.

2004-03-26  Andreas Rottmann  <a.rottmann@gmx.at>

	* gnome/gobject.scm (gtype-class-define-signal): Use
	procedure->memoizing-macro instead of procedure->macro, which is
	deprecated.

2004-02-22  Andy Wingo  <wingo@pobox.com>

	* gnome/gobject/guile-gnome-gobject.c (s_scm_gobject_get_data)
	(s_scm_gobject_set_data_x): Use SCM_UNBOUND to indicate an unbound
	slot.

2004-02-22  Andy Wingo  <wingo@pobox.com>

	* gnome/gobject.scm (make-gparam-instance): Make params (read
	write) by default. (make-gobject-instance): Allow keyword initargs
	that are defined via :init-keyword. Call the <object> initializer
	directly to set these. Somewhat hacky, but doesn't really break
	any rules. (scm->gvalue): Work with closures.

2004-02-21  Andy Wingo  <wingo@pobox.com>

	* gnome/gobject.scm (gtype-instance:write): If we get a GValue
	from somewhere else, the "primitive" code doesn't know how to make
	the class. So we have a new hacky method to accept a gtype as the
	arg and do the gtype->class in gobject.scm now.

2004-02-12  Andy Wingo  <wingo@pobox.com>

	* gnome/gobject/guile-gnome-gobject-primitives.c
	(guile_gobject_log_handler): Handle a NULL for log_domain.

	* gnome/gobject/primitives.scm (gparam-spec-type-args): Add a pair for
	GParamValueArray, but there's probably more work to do before you
	can make the param in scheme.

	* gnome/gobject/guile-gnome-gobject-primitives.h: GuileGClosure
	struct moved to the .c file to make it private.

	* gnome/gobject/guile-gnome-gobject-primitives.c
	(scm_c_debug_print): Removed. (scm_c_get_enum): Removed.
	(scm_c_make_genum): Removed.

	* gnome/gobject/guile-gnome-gobject-primitives.h: No more
	exporting (as C api) gparam-primitive-create-pspec-struct.

	* gnome/gobject/guile-gnome-gobject-primitives.c
	(s_scm_gvalue_primitive_set): Accept object and interface types as
	well. (s_scm_gtype_instance_primitive_to_value): Replaced by
	gvalue-primitive-new then gvalue-primitive-set.
	(s_scm_gvalue_primitive_set): Also handle gboxed-scm.
	(s_scm_gvalue_primitive_get): Handle gboxed-scm.
	(s_scm_gboxed_scm_primitive_new): Removed, now redundant.
	(s_scm_gboxed_scm_primitive_to_scm): Same.
	(s_scm_gtype_is_basic_p): Changed name to include -is and remove
	-primitive, like the standard GLib functions. Documented what a
	basic type is. (s_scm_gtype_is_basic_p): Boxed SCM is a basic
	type. (s_scm_gtype_is_valued_p): New function. Predicate that's
	true when you can make a GValue with (make class :value val).
	(scm_gvalue_array_primitive_new): Remove, just use
	gvalue-primitive-new. (scm_gvalue_array_primitive_append):
	Removed. There are no value array manipulation procedures any
	more. Use gvalue-primitive-set with a list as the argument.

	* gnome/gobject/primitives.scm (gflags->element-list): Replace
	gflags-primitive-bit-set?.

	* gnome/gobject/guile-gnome-gobject-primitives.c
	(s_scm_gvalue_primitive_set_enum): Functionality moved to
	gvalue-primitive-set. (s_scm_gvalue_primitive_set): Accept enum
	and flags types. (s_scm_gvalue_primitive_set_flags): Removed, like
	set-enum. (s_scm_gflags_primitive_bit_set_p): Removed, it's the
	same as (positive? (logand value bit)).

	* gnome/gobject/guile-gnome-gobject-primitives.h
	(scm_gtype_instance_primitive): Undefined function, somehow in the
	API? Removed. (scm_sys_gtype_instance_primitive_destroy_x): Since
	we export it to scheme, we can export it to C.

	* gnome/gobject/guile-gnome-gobject-primitives.c
	(genum_type_get_values): Changed name, from
	genum_primitive_get_values. (s_scm_gflags_type_get_values): Same.
	(scm_init_gnome_gobject_primitives): Organized and documented
	export list. The source file could also use such a reorganization.
	(s_scm_gtype_primitive_create_basic_instance): Removed, it does
	the same thing as gvalue-primitive-new.

	* gnome/gobject/guile-gnome-gobject-primitives.h
	(scm_tc16_gvalue_array): Gone.

	* gnome/gobject/guile-gnome-gobject-primitives.c
	(scm_gvalue_array_primitive_new): Just allocate GValueArray as a
	standard boxed type. (scm_gvalue_array_print): Removed, use just
	normal GValue printing. (scm_gvalue_array_free): Removed, no more
	tc16_gvalue_array.

2004-02-12  Andy Wingo  <wingo@pobox.com>

	* gnome/gobject.scm (scm->gvalue): Add a case for setting flags.
	(allocate-instance): Use gvalue-primitive-new for basic types.
	(gvalue->scm, scm->gvalue): Simplifications based on basic types.
	All over: adapt to primitives changes.

2004-02-08  Andy Wingo  <wingo@pobox.com>

	* gnome/gobject/primitives.scm (genum->value): New public function.
	(genum->value-table): Removed. Use genum-class->value-table from
	gobject.scm.

	* gnome/gobject/guile-gnome-gobject-primitives.c
	(scm_c_make_gvalue): Add some more debugging.

	* gnome/gw/glib-support.h: Add copyright notice. Still need to
	change all these to FSF.

2004-02-08  Andy Wingo  <wingo@pobox.com>

	* gnome/gobject.scm: Removed most of the commentary. Instead,
	refer to the tutorial.

	(exports): No more genum->value-table. New functions
	genum-class->value-table, gflags-class->value-table. New function
	genum->value. (initialize for <gtype-class>): Allow subclassing of
	<genum> and <gflags> to create new GTypes. You must pass #:vtable
	as an initarg. (gtype-instance-primitive): New helper (private).
	(initialize for <gclosure>): Allow either parameters and return
	val to be either <gtype> or <gtype-class> instances. If no return
	type is specified, set the slot to gtype:void, not #f.
	(make-pspec-args): Accept <gtype-class> when gtype? is the
	predicate. (gtype-class-create-signal): Accept <gtype-class>
	instances in the param types.

2004-01-29  Andy Wingo  <wingo@pobox.com>

	* gnome/gobject/defs-support.scm (load-defs): Parse a (callee-owned)
	option in parameter definitions.

	* gnome/gw/gw-gobject-spec.scm (GValue wrapping): Support
	'callee-owned values.

	* gnome/gobject/gw-spec-utils.scm (gobject:gwrap-boxed): Support
	'callee-owned arguments (call g_value_dup_boxed instead of
	_get_boxed).

2004-01-28  Andy Wingo  <wingo@pobox.com>

	* gnome/gw/gw-gobject-spec.scm (ws): Check for a NULL return for
	GValues.

2004-01-22  Andreas Rottmann  <a.rottmann@gmx.at>

	* gnome/gobject/guile-gnome-gobject-primitives.c
	(s_scm_gvalue_array_primitive_new)
	(s_scm_gvalue_array_primitive_append): Don't wrap SCM_DEFINE
	invocation too much, since it seems to confuse older snarfers.

2004-01-22  Andreas Rottmann  <a.rottmann@gmx.at>

	* configure.in: Check for GLib >= 2.2.0, since 2.1.X has no
	g_{set,get}_application_name.

	* configure.in: Use pkg-config to check for g-wrap.

2004-01-20  Andreas Rottmann  <a.rottmann@gmx.at>

	* guile-gobject.pc.in: Require g-wrap and drop @GUILE_LIBS@.

	* autogen.sh: Require automake 1.7.

2004-01-20  Andreas Rottmann  <a.rottmann@gmx.at>

	* gnome/gobject/defs-support.scm (load-defs): The glob:* functions are
	not existant anymore in SLIB3, and were aliased to filename:*
	anyway.

2004-01-14  Andy Wingo  <wingo@pobox.com>

	* gnome/gobject/primitives.scm (<gtype-instance-class>): There's no
	special get-n-set here any more, that's done with qdata. See
	gobject.scm for more details.

	* gnome/gobject/gw-spec-utils.scm (gobject:gwrap-object): Don't ref
	returned objects here, only unref them if we own them. This
	complements the change in make_gtype_instance.
	(gobject:gwrap-interface): Same.

	* gnome/gobject/guile-gnome-gobject.c (s_scm_gobject_set_data_x,
	s_scm_gobject_get_data): New functions implementing object
	properties using qdata so the state persists for all wrappers.
	(scm_c_gobject_get_property): Use scm_c_gtype_instance_to_scm to
	get the object -- will retrieve a cached object.
	(scm_c_gobject_set_property): Same. (remove_object_quark,
	free_object_quark): Removed.
	(s_scm_sys_function_to_method_public): Set the generic's name. A
	bit slower, but necessary for debugging.

	* gnome/gobject/guile-gnome-gobject-primitives.c
	(s_scm_gclosure_primitive_new): Make free_closure the invalidate
	notifier, not the finalize notifier.
	(s_scm_gclosure_primitive_new): Don't actually hold a ref on the
	closure by using g_value_set_static_boxed. This is to compensate
	for an over-conservative GC. (everywhere): Add some more debugging
	printouts (not enabled by default). (scm_gtype_instance_free):
	Remove vestigial finalize_func code, set the SMOB's data to NULL,
	and remove cached wrapper info. Can be called multiple times.
	(s_scm_sys_gtype_instance_primitive_destroy_x): New function,
	analogous to gtk_object_destroy, called by gtk.scm in response to
	the ::destroy signal. (line 710): A couple of pages of comment on
	the design of the GObject wrapper. (scm_c_make_gtype_instance):
	Check for a cached wrapper before sinking object. Cache the
	primitive wrapper separately from the GOOPS wrapper. Actually ref
	the object, in accordance with the design doc. Ref params too.
	(s_scm_gobject_primitive_get_properties): Don't ref the param
	here, it's done in make_gtype_instance.
	(s_scm_gparam_primitive_create): Remove floating reference, still
	holding the one from make_gtype_instance.
	(s_scm_gobject_primitive_create_instance): Remove extra ref on
	object, as we own the one given by g_object_new. Cache the
	wrapper. (s_scm_gvalue_primitive_get): Don't ref the objects or
	params here, it's done in make_gtype_instance.

2004-01-14  Andy Wingo  <wingo@pobox.com>

	* gnome/gobject.scm (make-gobject-instance): Now a method so that
	<gtk-object> can implement explicit destruction. Exported.
	(<gobject-class>): New class whose get-n-set uses gobject-get-data
	and gobject-set-data! to implement instance-allocated slots.
	(gvalue->scm): Use %gtype-instance-value->scm to convert GObject
	GValues into GOOPS objects. An optimization to prevent excessive
	allocation and reffing.

2004-01-14  Andy Wingo  <wingo@pobox.com>

	* WARTS: You've been able to subclass with define-class for a
	while now...

2004-01-13  Andy Wingo  <wingo@pobox.com>

	* gnome/gobject/guile-gnome-gobject.c
	(scm_c_scm_to_gtype_instance): Error if the SMOB's data is NULL
	(meaning the object has been destroyed).
	(scm_c_gtype_instance_to_scm): Cache return values as qdata on the
	objects. The qdata is removed when the SMOB is freed.
	(s_scm_sys_gtype_instance_value_to_scm): New function. An
	optimization so that callbacks can use existing object wrappers.

	* gnome/gobject/gw-utils.scm: Remove re-export-bindings in favor of
	re-export-module. Add a copyright notice.

2003-12-30  Andreas Rottmann  <a.rottmann@gmx.at>

	* gnome/gobject/guile-gnome-gobject-primitives.c
	(scm_c_make_gtype_name) (s_scm_gtype_primitive_get_signals):
	Plugged memory leaks.

2003-12-17  Andreas Rottmann  <a.rottmann@gmx.at>

	* TODO: Added entry on procedure->macro usage.

2003-12-13  Andreas Rottmann  <a.rottmann@gmx.at>

	* gnome/gw/gw-glib-spec.scm (GSList): Initialize the c-var in the
	scm->c-ccg with NULL.

2003-12-13  Andreas Rottmann  <a.rottmann@gmx.at>

	* gnome/gw/guile-support.h: Build upon g-wrap-compatibilty.h.

2003-12-09  Andy Wingo  <wingo@pobox.com>

	* gnome/gobject/guile-gnome-gobject.c
	(scm_c_gtype_instance_instance_init): Switch on the type from the
	class, not the instance, as the instance's type changes in
	different phases of initialization. Check to see if we have a
	servant already before making another one. Fixes some bugs in
	doubly-derived gobject classes.

	* gnome/gobject/guile-gnome-gobject-primitives.c
	(scm_c_make_gtype_instance): Sink objects after checking to see if
	we have a wrapper.

2003-12-07  Andreas Rottmann  <a.rottmann@gmx.at>

	* gnome/gobject/guile-gnome-gobject-primitives.h
	(scm_init_gnome_gobject_helper): Added declaration.

2003-12-06  Andreas Rottmann  <a.rottmann@gmx.at>

	* gnome/gobject/guile-gnome-gobject-primitives.c
	(guile_gobject_log_handler): Always issue error, even with NULL
	domain/message.

2003-12-03  Andy Wingo  <wingo@pobox.com>

	* gnome/gw/gw-glib-spec.scm: Fixed some longstanding bugs,
	embarassingly enough related to the size of fundamental types.
	Also added gshort and gushort as types.

2003-12-03  Andreas Rottmann  <a.rottmann@gmx.at>

	* gnome/gobject/guile-gnome-gobject-primitives.c
	(guile_gobject_log_handler): Protect against NULL arguments.

2003-12-02  Andreas Rottmann  <a.rottmann@gmx.at>

	* gnome/gw/gw-glib-spec.scm (GError): Ignore null-ok typespec
	option (we always pass a pointer).

2003-11-30  Andreas Rottmann  <a.rottmann@gmx.at>

	* gnome/gw/gw-glib-spec.scm: Register gshort and gushort type
	aliases.

2003-11-22  Andreas Rottmann  <a.rottmann@gmx.at>

	* gnome/gw/Makefile.am: Use $(G_WRAP_LIBS) and $(G_WRAP_CFLAGS).

	* gnome/gw/gw-glib-spec.scm: Adapted for new g-wrap. Implemented
	transparent GError handling (throw expection and hide argument).
	
	* gnome/gobject/gw-spec-utils.scm, gw-gobject-spec.scm: Reworked for
	new g-wrap.
	
	* gnome/gw/Makefile.am: Removed gw-standard sections. *
	gnome/gw/gw-standard-spec.scm: Removed, since g-wrap now has an
	up-to-date copy. All uses changed back to "(g-wrap
	gw-standard-spec)".
	
	* gnome/gobject/guile-gnome-gobject.c, guile-gnome-gobject.h
	(scm_sys_function_to_method_public): Removed, functionality is now
	in g-wrap.
	
	* gnome/gobject/guile-gnome-gobject.c, guile-gnome-gobject.h
	(g_type_from_instance, g_type_is_instantiatable)
	(g_type_is_classed): New macro-workalike functions.
	
	* gnome/gw/glib-support.h: Added #include guards. *
	gnome/gw/glib-support.c: Quick-fixed to work with Guile 1.7.
	
	* gnome/gw/guile-support.h (scm_gc_free): Fixed parameter list. *
	gnome/gobject/guile-gnome-gobject-primitives.c (scm_gvalue_free):
	Fix scm_gc_free() invocation.

2003-11-18  Andy Wingo  <wingo@pobox.com>

	* gnome/gobject/guile-gnome-gobject-primitives.c
	(s_scm_gboxed_scm_primitive_to_scm): If the boxed value is NULL,
	we return SCM_UNSPECIFIED to prevent a segfault when the value is
	printed. (s_scm_gvalue_primitive_set): If we don't know how to
	handle the GValue, signal a wrong type arg on the GValue, not the
	value we are trying to set.

2003-11-09  Andy Wingo  <wingo@pobox.com>

	* gnome/gobject/guile-gnome-gobject-primitives.c
	(s_scm_especify_metaclass_x): New function. Makes the metaclass of
	an existing GTypeClass more specific, hence the novel new word
	`especify'. Exists to hack around GOOPS' lack of class methods.

2003-11-08  Andy Wingo  <wingo@pobox.com>

	* gnome/gobject.scm (make-instance): New implementation for
	gtype-instances. `initialize' for gobjects is now called by the
	gobject system, not by goops. For params and interfaces, it is the
	same as before. (gtype-instance:initialize): Gone, replaced by the
	normal `initialize'.

2003-11-06  Andy Wingo  <wingo@pobox.com>

	* gnome/gobject/guile-gnome-gobject.c
	(s_scm_sys_function_to_method_public): Don't set the name keyword
	when making the generic, it's faster according to Andreas.

2003-11-01  Andy Wingo  <wingo@pobox.com>

	* gnome/gobject/guile-gnome-gobject.[ch] (scm_c_gvalue_to_scm):
	This one is const now.

	* gnome/gobject/guile-gnome-gobject-primitives.c
	(%scm-gclosure-marshal): Add some hacky prototypes to allow us to
	use scm_c_gvalue_to_scm in the marshaller.

2003-10-31  Andreas Rottmann  <a.rottmann@gmx.at>

	* test-suite/guile-test-env: Drop support of Guile 1.3 and fix
	left-over g-wrap reference.

	* test-suite/exceptions.scm: Renamed gruntime-wrong-number-of-args
	to wrong-number-of args again, since the exception in lib.scm is
	called wrong-num-args, so there is no conflict. Users adapted
	accordingly.

	* test-suite/exceptions.scm: Get rid of out-of-range, as this is
	already in lib.scm.

	* test-suite/gw-test-gobject-spec.scm: Depend on "gw-standard". *
	test-suite/test-gobject.h, test-gobject.c, test-gobject.defs,
	gw-gobject.test: Added method invocation testcase.

2003-10-29  Andy Wingo  <wingo@pobox.com>

	* gnome/gobject.scm (initialize): Allow a single symbol again as a
	flags #:value.

2003-10-27  Andy Wingo  <wingo@pobox.com>

	* gnome/gobject.scm (initialize): For <gflags>, if the #:value is
	an integer, process it correctly.

2003-10-26  Andy Wingo  <wingo@pobox.com>

	* gnome/gw/gw-glib-spec.scm (gslist-of): Fix some const pointer
	warnings.

	* gnome/gobject/gw-spec-utils.scm (gobject:gwrap-class): Use slot-ref,
	not slot-ref-using-class.

	* gnome/gobject/guile-gnome-gobject-primitives.c
	(slot_definition_using_name): Removed.

	* gnome/gobject/primitives.scm (define-with-docs): Renamed from
	define-public-with-docs, doesn't export the binding any more
	(let's just use the :export option when defining the module).
	(gruntime-debug): Removed. (%gruntime-debug): Removed.

	* gnome/gobject/guile-gnome-gobject.c (scm_gobject_register_type):
	Removed. Just use (define foo (gtype-from-name name)).
	(scm_c_gtype_instance_class_init): Don't call the
	gobject:class-init, just initialize after you define your class.
	This prevents custom initialization of scheme classes further
	subclassed in C, but that's a corner case that is maybe better
	left out. (scm_sys_gobject_get_refcount): Only define if
	DEBUG_REFCOUNTING is defined.
	(scm_c_gtype_instance_instance_init): Only call
	gtype-instance:initialize (was :instance-init), not a specific one
	for gobject.

2003-10-26  Andy Wingo  <wingo@pobox.com>

	* gnome/gobject.scm There were a lot of general cleanups and
	reorganizations here. The file should be more readable now.

	(gobject-get-property): Not a method anymore. We don't want people
	mistakenly overriding this function (override gobject:get-property
	instead). (gobject-set-property): Same. (gobject:set-property):
	Added docstring. (gobject:get-property): Same. (<gobject>): No
	more servant properties. (gobject:instance-init): Gone, use
	gtype-instance:instance-init. (gobject:class-init): Gone,
	initialize after you make the class.
	(gobject-class:install-property): Gone, the C code does The Right
	Thing now. (gtype-instance:class-init): Gone, like
	gobject:class-init. (class-is-a?): Gone.
	(gobject-type-register-static): Gone. Use gtype-register-static if
	you want to, but subclassing should be good enough. (initialize):
	For <gvalue>, we never see closures, so we remove that piece of
	code.

2003-10-26  Andy Wingo  <wingo@pobox.com>

	* examples/gobject/example-1.scm: Updated to the new
	property/signal/subclassing API.

2003-10-25  Andy Wingo  <wingo@pobox.com>

	* gnome/gobject/primitives.scm (<gtype-instance-class>): A new
	metaclass descending from <gtype-class>. <gtype-instance> is now
	an instance of this class. (compute-get-n-set): For
	<gtype-instance-class>, overrides #:instance allocation to set
	properties on the <%gtype-instance> smob.

	* gnome/gobject/guile-gnome-gobject.c (scm_gtype_eq_p): Removed.
	Just use eq?.

2003-10-25  Andy Wingo  <wingo@pobox.com>

	* gnome/gobject.scm (get-direct-supers): Only add <gtype-instance>
	to the hierarchy if the type is instantiatable, not classed.
	(gobject-class-set-properties!): New function, split out of
	init-gobject class. (init-gobject-class): Expose slots described
	with #:param-spec options as gobject properties. (let-params):
	Removed, you can do all of this with GOOPS now.
	(make-gobject-property): Removed, GOOPS handles this now.
	(define-gobject-class): Removed, just use define-class.
	(initialize): For <gtype-class>, do most of the things we did in
	gtype->class here. If no #:gtype argument is passed, subclass the
	parent type. (gtype->class): Just make the class, no more voodoo
	here. (write): for <gparam>, don't try to write the pspec struct
	if it isn't set yet. (gtype-class-create-signal): Take a list of
	param types instead of a vector.

2003-10-25  Andreas Rottmann  <a.rottmann@gmx.at>

	* test-suite/gobject.test: Fixed for recent API changes.

2003-10-25  Andreas Rottmann  <a.rottmann@gmx.at>

	* gnome/gobject/guile-gnome-gobject-primitives.c
	(s_scm_gparam_primitive_create_pspec_struct,
	s_scm_gparam_primitive_create): GValue support for param specs. *
	gnome/gobject/guile-gnome-gobject-primitives.h
	(SCM_G_IS_PARAM_SPEC_VALUE_ARRAY): New macro.

2003-10-25  Andreas Rottmann  <a.rottmann@gmx.at>

	* gnome/gobject.scm (scm->gvalue): Fixed wrt gvalue-array (recent
	changes broke this).
	
2003-10-24  Andreas Rottmann  <a.rottmann@gmx.at>

	* test-suite/gobject.test: Comment out tests failing due to API
	regression.
	
	* test-suite/Makefile.am: 'make distcheck' fixes.
	
	* test-suite/test-gobject.c, test-gobject.h, test-gobject.defs,
	gw-test-gobject-spec.scm, gw-gobject.test: Testcase framework for
	wrapping, including test for GValue arrays.
	
	* test-suite/guile-test-env: New shell script - runs guile with
	the right environment for the tests.

	* test-suite/Makefile.am: New - we want to run the test-suite with
	'make check'.

	* test-suite/guile-gobject-test: Also stolen from Guile CVS
	(guile-test) and adapted. * test-suite/lib.scm: Stolen from Guile
	CVS, as this is not installed.
	
	* test-suite/exceptions.scm: New module, defines common
	exceptions.
	
	* test-suite/gobject.test, gobject-primitives.test: Brought on par
	with the current API and molded into modules.
	
2003-10-24  Andreas Rottmann  <a.rottmann@gmx.at>

	* gnome/gobject.scm (gclosure-invoke): Fixed for closures without
	return type.

2003-10-23  Andy Wingo  <wingo@pobox.com>

	* gnome/gobject/guile-gnome-gobject.c (%gobject-get-property): Use
	scm->gvalue to process the return from gobject:get-property.

2003-10-23  Andy Wingo  <wingo@pobox.com>

	* gnome/gobject.scm (gobject-get-property): Use gvalue->scm.
	(allocate-instance): Allocate GBoxedSCM instances in the
	<gtype-class> allocate-instance method. (let-params): #:name, not
	:name.

2003-10-22  Andy Wingo  <wingo@pobox.com>

	* gnome/gobject/primitives.scm: The big changes! There's no more
	<gtype-class-meta>. (<set-once-class>): New metaclass implementing
	set-once slots. (<gtype-class>): Now a metaclass. Its metaclass is
	<set-once-class>, so it has set-once slots for gtype and
	gtype-class. All gtype classes are now instances of this
	metaclass. (<gtype-instance>): New class, has a set-once slot for
	the gtype-instance. Instance of <gtype-class>. Parent class of all
	instantiatable types (like <gobject>).

	* gnome/gw/gw-gobject-spec.scm: New wrappers for gtype-is-classed?
	and gtype-is-instantiatable?.

	* gnome/gobject/guile-gnome-gobject.h (SCM_GOBJECTP): Use new
	SUBCLASSP macro. (SCM_GOBJECT_CLASSP): Use SUBCLASSP macro.
	(SCM_VALIDATE_GOBJECT_CLASS_GET_TYPE): Get the gtype by a
	slot-ref, not a class-slot-ref.

	* gnome/gobject/guile-gnome-gobject-primitives.h
	(SCM_GPARAM_SPEC_P): Allow SCM_BOOL_F for owner-type.
	(SCM_GTYPE_CLASS_SUBCLASSP): New macro.

	* gnome/gobject/guile-gnome-gobject-primitives.c
	(s_scm_sys_gtype_bind_to_class): Re-set the 'signals slot on
	implemented interfaces after g_type_class_ref()ing an implementor.
	Hackery, but that's the GObject system for you!
	(scm_gtype_class_print): Print gtype-class smobs with a %.
	(s_scm_sys_gtype_bind_to_class): Set the gtype and gtype-class
	slots using slot-set!, in accordance with the new hierarchy. Also
	loop through the implemented interfaces to re-set 'gsignals,
	because they aren't there until after a g_type_class_ref () on an
	implementor. (s_scm_sys_get_struct_slot): Work on any instance.
	(s_scm_sys_set_struct_slot): Same.
	(s_scm_gtype_primitive_get_signals): Rename from
	gobject-primitive-get-signals, because it works on interfaces too.
	(s_scm_gtype_instance_primitive_signal_emit): Renamed.
	(s_scm_gtype_instance_primitive_signal_connect): Renamed.

	* gnome/gobject/generics.scm (all functions): Updated to the new
	class hierarchy.

	* gnome/gobject/guile-gnome-gobject.h
	(SCM_VALIDATE_GOBJECT_CLASS_COPY): Renamed to
	SCM_VALIDATE_GOBJECT_CLASS_GET_GTYPE, since that's what it
	actually does.

2003-10-22  Andy Wingo  <wingo@pobox.com>

	* gnome/gobject.scm: (get-metaclass): Removed, we always use
	<gtype-class> as a metaclass. (gtype->class): Always use
	<gtype-class> as a metaclass. Add some initialization for
	interfaces, but this can't be completed until an implementor has
	been initialized as well. So the job is finished in
	%gtype-bind-to-class for implementors. (gtype-instance:write):
	Work on <%gtype-instance>. This will probably move somewhere else
	in the future. (gtype-instance:write): Why we have implementations
	for <gtype>s is unknown to me. These will likely be removed.
	(gtype-class-get-vector-slot): Robustified to deal with strange
	objects in the CPL (like interfaces).
	(gtype-instance-signal-emit): Name changed from
	gobject-signal-emit, because it can operate on any gtype-instance.
	(gtype-instance-signal-connect-data): Same.
	(gtype-instance-signal-connect): Same.
	(gtype-instance-signal-connect-after): Same.
	(gtype-class-create-signal): Same.

2003-10-22  Andreas Rottmann  <a.rottmann@gmx.at>

	* gnome/gobject/guile-gnome-gobject-primitives.c,
	guile-gnome-gobject-primitives.h, guile-gnome-gobject.c: Implement
	GValue array support.
	
	* gnome/gobject/guile-gnome-gobject-primitives.c
	(scm_c_make_gvalue) (scm_gvalue_free): Replaced deprecated
	scm_must_malloc/free invokations with scm_gc_malloc/free.

	* gnome/gw/guile-support.h (SCM_VECTOR_REF, SCM_VECTOR_SET): New
	compat macros, to be used instead of SCM_VELTS(). (scm_gc_malloc,
	scm_gc_free): New compat macros, to be used instead of
	scm_must_malloc/free. (scm_gc_unregister_collectable_memory)
	(scm_gc_register_collectable_memory): New compat macros.

2003-10-21  Andy Wingo  <wingo@pobox.com>

	* gnome/gobject/guile-gnome-gobject-primitives.c
	(scm_pre_init_gnome_gobject_primitives): Make the smob for
	GTypeClass called "%gtype-class" to avoid conflicts between the
	GOOPS smob class and the real wrapper class.

	* gnome/gw/gw-gobject-spec.scm: New wrapped function:
	gtype-is-classed?.

	* gnome/gobject/guile-gnome-gobject-primitives.c
	(scm_gtype_interfaces): New function, returns the interfaces
	implemented by a type. (scm_gtype_primitive_get_signals): Renamed
	from gobject-primitive-get-signals, although no code change is
	required.

2003-10-21  Andy Wingo  <wingo@pobox.com>

	* gnome/gobject.scm: General reorganizations. (get-parent-types):
	Removed, we only have one direct parent now (as well as interfaces
	if they're not already there). (gtype-class-ancestry): Removed,
	all this information is already encapsulated in the class
	precedence list. (make-class-slots): Change the name of
	gobject-signals to gsignals, and add it to all classed GTypes.
	(gtype-ancestry): Removed, either get this from the class
	precedence list or loop on gtype-parent yourself.
	(init-gobject-class): Only store signals from the class itself in
	the gsignals slot. (gtype-class-get-signal-names): New function.
	(get-direct-supers): New function, replaces get-parent-types. I'm
	schizophrenic ;) (gtype->class): Also initialize GObject (dunno
	why this wasn't done).

2003-10-21  Andreas Rottmann  <a.rottmann@gmx.at>

	* configure.in: Disable ORBit check, since the code needs internal
	API headers that are not installed by default.

2003-10-16  Andy Wingo  <wingo@pobox.com>

	* gnome/gobject/gw-spec-utils.scm: Export
	gobject:gwrap-helper-with-class.

2003-10-15  Andy Wingo  <wingo@pobox.com>

	* gnome/gobject/guile-gnome-gobject.c
	(scm_c_gtype_instance_instance_init): Only call the instance-inits
	with one argument, the object.

2003-10-15  Andy Wingo  <wingo@pobox.com>

	* gnome/gobject.scm (gobject:instance-init): Remove class
	argument. (gtype-instance:instance-init): Remove class argument.

2003-10-13  Andy Wingo  <wingo@pobox.com>

	* gnome/gobject/guile-gnome-gobject.c (scm_c_gvalue_to_scm): Copy
	the incoming GValue so that we have our own.

2003-10-13  Andy Wingo  <wingo@pobox.com>

	* configure.in: -Wall always. -Werror unless you pass
	--disable-Werror. --disable-Wall is gone. Put in debugging symbols
	unless --disable-debug is passed.

2003-10-12  Andy Wingo  <wingo@pobox.com>

	* gnome/gobject/guile-gnome-gobject.c (scm_c_scm_to_gvalue): New
	function, calls scm->gvalue. (scm_c_gvalue_to_scm): New function,
	calls gvalue->scm.

	* gnome/gobject/gw-spec-utils.scm (gobject:gwrap-interface): Wrap
	interfaces properly, now that we use them.

2003-10-12  Andy Wingo  <wingo@pobox.com>

	* gnome/gobject.scm (scm->gvalue): renamed from
	make-value-from-scm. Also deals with interfaces.
	(make-ginterface): Wrap interfaces using the standard
	goops<->GTypeInstance SMOB pairing. (exports): Export classes for
	<ginterface>, <gint64>, and <guint64>.

2003-10-12  Andy Wingo  <wingo@pobox.com>

	* configure.in: We do -Wall by default (--disable-Wall to disable)

2003-10-11  Andy Wingo  <wingo@pobox.com>

	* gnome/gobject/defs-support.scm (load-defs): Ignore .defs entries
	where there is a (varargs ...) line.

	* gnome/gobject/guile-gnome-gobject.c
	(s_scm_sys_function_to_method_public): Some cleanups. Use the same
	coding style as the rest of the file. Use static variables to
	reference the-root-module and module-add!. Don't check to see if
	objects are actually classes, that's done by g-wrap now. We still
	have to make a new closure for the procedure, due to a bug in
	Guile 1.6.4.

2003-10-07  Kevin Ryde  <user42@zip.com.au>

	* gnome/gobject/guile-gnome-gobject.c
	(scm_sys_function_to_method_public): Don't put variable
	declarations in the middle of the function, that's a c99-ism.

2003-10-01  Andy Wingo  <wingo@pobox.com>

	* gnome/gobject/gw-spec-utils.scm: General cleanups all around...
	(GStudlyCapsExpand): New function, based on StudlyCapsExpand from
	slib's strcase.scm (public domain). Given a C type name, returns
	the appropriate scheme type name. Normally a lower case letter
	preceded by one capital letter forces a hyphenation before the
	capital letter: GSource => g-source, GtkIMContext =>
	gtk-im-context. However, a lower case letter preceded by exactly
	two capital letters that is not at the beginning of the string is
	treated specially: GtkHBox => gtk-hbox (like the C api).
	(glib:type-cname->symbol-alist): New alist of overrides for
	converting C type names to scheme names.
	(glib:type-cname->symbol): uses GStudlyCapsExpand, mapping
	underscores to hyphens. GSource* => <g-source*>. (print-info):
	Gives more feedback when the bindings are being created. This uses
	slib's printf. (gwrap-helper): New argument HOW-WRAPPED. If not
	false, will cause gwrap-helper to call print-info for the type.
	(gwrap-helper-with-class): New argument HOW-WRAPPED, passed on to
	gwrap-helper. Cleanups. (gobject:gwrap-*): Pass appropriate values
	for HOW-WRAPPED.

	* gnome/gw/gw-gobject-spec.scm: use the new
	glib:type-cname->symbol-alist to override scheme names for
	<gobject>, <gvalue>, <gclosure>, and <gparam>. When wrapping
	g-source-set-closure, use the new name for GSource (<g-source*>).

	* gnome/gobject/defs-support.scm (register-type): Removed last argument
	relating to information printing -- that's done in gw-spec-utils
	now. (load-defs): When checking to see if a method has a bad name,
	don't ignore asterisks at the end of the type name. Thus we avoid
	creating methods for opaque pointers.

2003-10-01  Andy Wingo  <wingo@pobox.com>

	* configure.in: Check to see if glade is installed.

2003-09-22  Andy Wingo  <wingo@pobox.com>

	* autogen.sh: remove build-dependency on gnome2-dev by using
	gstreamer's build system * autogen-support.sh: gstreamer's build
	system (new file)

2003-08-26  Andreas Rottmann  <a.rottmann@gmx.at>

	* gnome/gobject/gw-utils.scm (function->method-public)
	(functions->methods-public): Unecessary now, removed.
	
	* gnome/gobject/defs-support.scm (load-defs): Make sym_of_object and
	sym_generic_name static. (load-defs): Create generic functions
	immediatly instead of setting the of-object procedure property.

	* gnome/gobject/guile-gnome-gobject.c, guile-gnome-gobject.h
	(scm_sys_function_to_method_public): New function.
	
	* gnome/gobject/defs-support.scm (recursive-type-find): Fixed behavior
	for empty type-hashes.
	
	* gnome/gobject/defs-support.scm, gw-spec-utils.scm: Support for
	enums/flags without gtype-id.

	* gnome/gw/Makefile.am (GUILE_FLAGS): New variable.

2003-07-27  Andy Wingo  <wingo@pobox.com>

	* gnome/gobject/guile-gnome-gobject-primitives.[ch]
	(G_TYPE_BOXED_SCM): renamed from G_TYPE_GBOXED_SCM. There have
	been other changes recently that I haven't been putting in the
	changelogs...

2003-07-27  Andy Wingo  <wingo@pobox.com>

	* gnome/gobject.scm (make-value-from-scm): Make gboxed-scms when
	needed.

2003-06-21  Andy Wingo  <wingo@pobox.com>

	* gnome/gobject/gw-spec-utils.scm (gobject:gwrap-class): New function.

2003-06-19  Andy Wingo  <wingo@pobox.com>

	* gnome/gobject/guile-gnome-gobject.c
	(scm_c_gtype_instance_instance_init): Call
	scm_c_make_gtype_instance to get the primitive GTypeInstance
	wrapper for the servant. That way we really only have one
	primitive wrapper, however many high level wrappers there are.
	Seems to fix some flaky bugs as well, as a side effect.

2003-06-18  Andy Wingo  <wingo@pobox.com>

	* gnome/gobject.scm (make-gparam-instance): Fix typo (name->nick).
	(make-gparam-instance): Make the pspec->flags actually set, with a
	#:flags initarg -- also required some changes in -primitives.c.

2003-06-14  Andy Wingo  <wingo@pobox.com>

	* gnome/gobject/guile-gnome-gobject-primitives.c
	(scm_c_make_gtype_instance): Cache the primitive gtype instance
	smob.

2003-06-07  Andy Wingo  <wingo@pobox.com>

	* gnome/gobject/primitives.scm (gparam-spec:args): Fix to actually
	return the full list of args. Zip up the returned list with
	descriptive keywords.

2003-06-07  Andy Wingo  <wingo@pobox.com>

	* gnome/gobject.scm: Made the commentary retrievable with
	file-commentary, see (ice-9 documentation) for more details.

	* gnome/glib.scm (g-timeout-add, g-idle-add): As it turns out,
	g-idle-source-new creates an idle source, but with priority
	G_PRIORITY_DEFAULT instead of G_PRIORITY_DEFAULT_IDLE. This means
	that after g-idle-add is called, no Gtk events get processed (Bad
	Thing (tm)). Now we set the priority manually to DEFAULT_IDLE.
	Thanks to Owen Taylor for pointers on this one.

2003-05-30  Andy Wingo  <wingo@pobox.com>

	* gw-standard-spec.scm (<gw:long-long>, <gw:unsigned-long-long>):
	Add LL to the end of the max/min 64 bit constants to appease gcc
	3.3. However, gcc-3.3 fails to compile the gtk bindings, at least
	on my machine. gcc 3.2 does work.

2003-05-30  Andy Wingo  <wingo@pobox.com>

	* gnome/gobject/defs-support.scm (type-lookup): Without an explicit
	value for ownership, we only assume that we own non-const strings.
	Other things represented by pointers are treated conservatively.
	This is so that a function returning a GObject* has its return
	g_object_ref'd; non-const is not the same as caller-owned.

2003-05-26  Andy Wingo  <wingo@pobox.com>

	* gnome/gobject/defs-support.scm (load-defs): Add support for null-ok
	in defs files, e.g. '("GdkWindow*" "window" (null-ok)).

	* gnome/gobject/gw-spec-utils.scm: Only allow NULL values for objects,
	pointers, boxeds, and interfaces if 'null-ok appears in the
	typespec.

	* gnome/gw/gw-gobject-spec.scm: Added input checks for generic
	GValue type wrapper. Only allow NULL for closures if 'null-ok
	appears in the typespec.

2003-05-08  Andy Wingo  <wingo@pobox.com>

	* gnome/gobject/guile-gnome-gobject-primitives.[ch]: Added and
	exported log handler for g_logv messages. I don't thing it
	returns, however, which can cause recursion... dunno what to do
	about that.

	* gnome/gw/gw-gobject-spec.scm: wrap closures and
	g-source-set-closure.

	* gnome/gw/gw-glib-spec.scm: wrap main loops and some things from
	gutils.h. Steal GList/GSList wrapper from g-wrap.

	* gnome/gobject/defs-support.scm: prettify output, log opaque types and
	bad methods to a file. We now wrap opaque types as <gw:wct>. Add
	support for GList*-of-GtkWindow*. Support new commands "ignore",
	"ignore-glob", and function attribute "overrides".

2003-05-08  Andy Wingo  <wingo@pobox.com>

	* gnome/glib.scm: new file. Imports gobject/gw-glib and defines
	g-idle-add and g-timeout-add (in scheme).

2003-05-03  Andy Wingo  <wingo@pobox.com>

	* gnome/gw/gobject.scm: Cleanups. Also changed a few
	gtype-instance-primitive function calls with (slot-ref obj
	'gtype-instance). With the new directory structure, gobject.scm
	moves into gnome/.

	* gnome/gobject/primitives.scm: Don't hold extra data in the
	slot-definition, it's needed by the latest guile 1.6. Change the
	old slot allocation for gtype and gtype-instance to rely on a new
	kind of allocation, #:set-once. Adapt to the new method of library
	initialization with g-wrap.

	* gnome/gobject/gw-utils.scm: New file. Provides utility syntax
	re-export-bindings and functions->methods-public.

	* gnome/gobject/gw-spec-utils.scm: New file. Provides utility functions
	for spec files, such as gobject:wrap-object, gobject:wrap-enum,
	and the like.

	* gnome/gobject/defs-support.scm: New file. Provides support for
	natively loading .defs-style api definitions into g-wrap wrapsets.

	* gnome/gw/gw-glib-spec.scm: New file. Will eventually wrap glib
	functions, but for now just provides type wrappings for other
	wrapsets.

	* gnome/gw/gnome-gobject.gwp: Deleted. Functionality moved to
	gw-gobject-spec.scm.
	
	* gnome/gw/gw-gobject-spec.scm: New file. Wraps functions to
	initialize gnome-gobject, as well as wrapping some fundamental
	types for g-wrap.

	* gnome/gw/generics.scm: New file. Provides generic functions for
	gobject.scm.

	* gnome/gobject/guile-gnome-gobject.c: Added diagnostic macros to
	debug allocation problems. Adapted to new slot allocation for
	'gtype and 'gtype-instance. Return a a goops object of class
	(gtype->class [type of gtypeinstance]) in
	scm_c_gtype_instance_to_scm. Exported (to C)
	scm_sym_gtype_to_class, the symbol for gtype->class. Adapted to
	new initialization via g-wrap.
	
	* gnome/gobject/guile-gnome-gobject-primitives.c: Muck about with
	refcounting. Provide guile_gobject_register_sinkfunc(), much like
	what pygtk does, to deal with GTK_OBJECT_FLOATING. Provide getters
	and setters for #:set-once allocation and adapt accordingly for
	'gtype and 'gtype-instance. Refcounting is still not in a coherent
	state, needs a bit of work.
	
2002-11-08  Ariel Rios <ariel@gnu.org>

	* gnome/gobject/guile-gnome-gobject-primitives.c
	(s_scm_gobject_primitive_signal_emit): Rewrite the function being
	more clever, more readable and hey! it works.

	* gnome/gobject.scm (gobject-signal-emit): Do some cleanup.
	
	
2002-08-01  Ariel Rios  <ariel@gnu.org>

	* gnome/gobject/guile-gnome-gobject-primitives.c
	(s_scm_gparam_primitive_create_pspec_struct): Some cleanup

2002-08-01  Ariel Rios  <ariel@gnu.org>

	* gnome/gobject/guile-gnome-gobject-primitives.c
	(s_scm_gparam_primitive_create): Use the new macros thus doing the
	right thing (TM)

	* gnome/gobject/guile-gnome-gobject-primitives.h
	(SCM_G_IS_PARAM_SPEC_BOOLEAN) (SCM_G_IS_PARAM_SPEC_STRING,
	SCM_G_IS_PARAM_SPEC_OBJECT) (SCM_G_IS_PARAM_SPEC_BOXED,
	SCM_G_IS_PARAM_SPEC_CHAR) (SCM_G_IS_PARAM_SPEC_UCHAR,
	SCM_G_IS_PARAM_SPEC_INT) (SCM_G_IS_PARAM_SPEC_UINT,
	SCM_G_IS_PARAM_SPEC_LONG) (SCM_G_IS_PARAM_SPEC_ULONG,
	SCM_G_IS_PARAM_SPEC_FLOAT) (SCM_G_IS_PARAM_SPEC_DOUBLE,
	SCM_G_IS_PARAM_SPEC_POINTER) (SCM_G_IS_PARAM_SPEC_ENUM,
	SCM_G_IS_PARAM_SPEC_FLAGS): New macros

2002-07-30  Ariel Rios  <ariel@gnu.org>

        * guile-gnome-gobject.c : Add string.h to make compiler happy
	
	* gnome/gobject/guile-gnome-gobject-primitives.c: Ditto

	* gnome/gw/guile-support.c: Ditto

2002-07-30  Ariel Rios  <ariel@gnu.org>

	* gnome/gobject/guile-gnome-gobject.c (scm_init_gnome_gobject):
	Some cleanup of unused code.

2002-07-30  Ariel Rios  <ariel@gnu.org>

	* gnome/gobject/guile-gnome-gobject.c (scm_init_gnome_gobject): Do
	the right thing.

2002-04-13  Ariel Rios  <ariel@gnu.org>

	* gnome/gobject/guile-gnome-gobject-primitives.c
	(s_scm_gparam_primitive_create_pspec_struct):
	s/g_param_get_*/g_param_spec_get.

2002-01-28  Ariel Rios  <ariel@gnu.org>

	* configure.in: Bump version number to 0.3.0

	* NEWS: What's new =)

2002-01-23  Ariel Rios  <ariel@gnu.org>

        * guile-gnome-gobject-primitives.c: glib-object.h
	
	* gnome/gobject/guile-gnome-gobject-primitives.h: Ditto.

	* gnome/gobject/guile-gnome-gobject.c (scm_init_gnome_gobject): Do
	not use G_TYPE_FUNDAMENTAL_LAST and other deprecated stuff, this
	hack is a workaround and it is not guaranteed to work yet. We now
	only include glib-object.h
		
2002-01-23  Ariel Rios  <ariel@gnu.org>

	* gnome/gobject/guile-gnome-gobject-primitives.c
	(s_scm_gparam_primitive_create_pspec_struct): Functions now
	compiles. Still some work to do in some functions ahead.
	

2002-01-23  Ariel Rios  <ariel@gnu.org>

	* gnome/gobject/guile-gnome-gobject-primitives.c
	(s_scm_gparam_primitive_create): More clean ups. Almost done.

2002-01-23  Ariel Rios  <ariel@gnu.org>

	* gnome/gobject/guile-gnome-gobject-primitives.c
	(s_scm_gparam_primitive_create): All fixes done. It compiles
	again. Need to check the fundamental stuff.

2001-09-21  Ariel Rios  <ariel@gnu.org>

	* gnome/gobject/guile-gnome-gobject-primitives.c
	(gboxed_scm_get_type): Use correct of arguments required by recent
	glib changes. (s_scm_gparam_primitive_create_pspec_struct): Do not
	access GParamSpec fields directly.
	(s_scm_gparam_primitive_create): Correct number of arguments
	passed to SCM_ASSERT

2001-09-10  Martin Baulig  <baulig@suse.de>

	Released guile-gobject 0.2.0 "The Great Barrier Reef".

	* configure.in: Bump version number to 0.2.0.

	* RELEASE-NOTES-0.2.0.txt: Preparing the release ...

2001-09-09  Martin Baulig  <baulig@suse.de>

	* gnome/gw/gobject.scm (vector-map): New private utility function.
	(<gparam>): Removed the `pspec-struct' slot. (<gparam-pointer>
	<gparam-string> <gparam-object> <gparam-boxed>): Added.
	(<gparam-enum> <gparam-flags>): Added. (gparam->pspec-struct): New
	public function. (allocate-instance <gtype-class>): Moved <gparam>
	and <gobject> initialization into (initialize <gtype-class>), only
	do the actual allocating here.

	* gnome/gobject/guile-gnome-gobject-primitives.c
	(scm_c_debug_print): New utility function. (SCM_DEBUG_PRINT): New
	utility macro. (gparam-primitive->pspec-struct): Moved the
	functionality of this function into
	`gparam-primitive-create-pspec-struct' (not exported), store the
	pspec-struct as qdata in the param and return it.
	(SCM_ERROR_NOT_YET_IMPLEMENTED): Added `what' argument.

	* gnome/gobject/guile-gnome-gobject.c (gtype?): New function.
	(gparam->value-type): New function.

2001-09-09  Martin Baulig  <baulig@suse.de>

	* gnome/gw/gobject.scm (gobject-class-find-property): New public
	function.

2001-09-08  Martin Baulig  <baulig@suse.de>

	* gnome/gw/gobject.scm (gtype-instance:class-init,
	gtype-instance:instance-init gobject:class-init
	gobject:instance-init gobject-class:install-property
	gobject:set-property gobject:get-property): Moved here from
	primitives.scm. (<gparam>): Added `pspec-struct' slot.
	(<gobject>): The `gobject-properties' vector now contains <gparam>
	objects. (make-gparam-instance): Added #:pspec-struct keyword to
	create a <gparam> object from a pspec-struct.
	(gobject:get-property, gobject:set-property): This now gets a
	<gparam> object as argument, not a pspec-struct.
	(gobject-class-install-property): Removed, implemented in C.

	* gnome/gobject/guile-gnome-gobject-primitives.c
	(scm_c_gtype_lookup_class): New function.
	(scm_c_gtype_instance_bind_to_instance): New function.
	(gtype-primitive-register-static): Moved to guile-gnome-gobject.c
	and renamed to gtype-register-static.
	(gobject-class-primitive-install-property): Moved to
	guile-gnome-gobject.c and renamed to
	gobject-class-install-property. (scm_gparam_spec_vtable): Added
	"param-type" field.

	* gnome/gobject/guile-gnome-gobject.c (gtype-register-static):
	Moved here. (gobject-class-install-property): Moved here.

2001-09-08  Martin Baulig  <baulig@suse.de>

	* gnome/gw/foo.[ch]: Removed.

2001-09-07  Martin Baulig  <baulig@suse.de>

	* gnome/gw/guile-support.[ch]: New files. This stuff may be moved
	into guile at a future time.

2001-09-07  Martin Baulig  <baulig@suse.de>

	* gnome/gobject/guile-gnome-gobject-primitives.c
	(scm_add_slot_closure): Removed.

2001-09-06  Martin Baulig  <baulig@suse.de>

	* gnome/gw/gobject.scm (<gparam-char> <gparam-uchar>
	<gparam-boolean> <gparam-int> <gparam-uint> <gparam-long>
	<gparam-ulong> <gparam-float> <gparam-double>): New classes.
	(gobject-class-install-property): New public function.
	(allocate-instance (<gtype-class>)): Added support for <gparam>
	subclasses.

	* gnome/gobject/guile-gnome-gobject-primitives.c
	(gparam-primitive-create): This now takes 4 args like
	(gobject-primitive-create-instance).

2001-09-05  Martin Baulig  <baulig@suse.de>

	* gnome/gobject/primitives.scm (gparam-spec:name gparam-spec:nick
	gparam-spec:blurb gparam-spec:flags gparam-spec:value-type
	gparam-spec:owner-type gparam-spec:args): New accessor functions.

	* gnome/gobject/guile-gnome-gobject-primitives.c
	(gobject-primitive-get-properties): Only return direct properties,
	not the ones from our parent types.

	* gnome/gw/gobject.scm (gtype->class): Register parent classes if
	necessary. gsignal:id gsignal:name gsignal:interface-type
	gsignal:return-type gsignal:param-types gparam-spec:name
	gparam-spec:nick gparam-spec:blurb gparam-spec:flags
	gparam-spec:value-type gparam-spec:owner-type gparam-spec:args):
	Re-export them (from (gnome gobject primitives)).
	(gobject-class-get-property-names): New convenience function.

	* gnome/gobject/guile-gnome-gobject.c
	(scm_c_gtype_instance_is_a_p): New function.
	(scm_c_scm_to_gtype_instance, scm_c_gtype_instance_to_scm): New
	functions.

2001-09-05  Martin Baulig  <baulig@suse.de>

	* gnome/gobject/guile-gnome-gobject-primitives.c (gparam-spec?):
	New func. (gobject-class-primitive-install-property): New
	function. Added support for properties. (scm_gtype_instance_free):
	Don't free the instance if we have a finalize func.

	* gnome/gobject/primitives.scm (gobject:set-property
	gobject:get-property): New generic functions.

	* gnome/gw/gobject.scm (gobject:set-property
	gobject:get-property): Provide default implementation.

2001-09-05  Martin Baulig  <baulig@suse.de>

	* configure.in: Bump version number to 0.1.0.

2001-09-03  Martin Baulig  <baulig@suse.de>

	Another batch of larger changes:

	- improved gsignal support. - we can now derive GObject's in
	scheme.

	More detailed, but a bit uncomplete list:

	* gnome/gw/gobject.scm (gtype->class): For each class we create,
	use its parent class as metaclass. (<gboxed-scm>): New type. This
	is a GBoxed type to hold a scheme value. (gvalue->scm): Moved here
	from primitives.scm and export it. (gtype-instance:class-init):
	New generic function. (gtype-instance:instance-init): New generic
	function. (gobject-class-define-signal): New public macro.

	* gnome/gobject/guile-gnome-gobject-primitives.[ch]
	(gvalue-primitive-get-basic): Renamed to gvalue-primitive-get.
	(gvalue-primitive-set-basic): Renamed to gvalue-primitive-set.
	(gtype-instance-primitive-type): Renamed to
	gtype-instance-primitive->type.
	(gtype-instance-primitive-to-value): New function.
	(scm_init_gnome_gobject_primitives): Don't export the "gsignal-*"
	symbols, except "gsignal-struct-vtable". (G_TYPE_GBOXED_SCM): New
	GBoxed type to hold a scheme value. (gboxed-scm-primitive-new):
	New function. (gboxed-scm-primitive->scm): New function.
	(gsignal-primitive-create): New function. (gtype-class->type):
	Removed. This is now implemented in scheme and correctly handles
	the case if you create a GOOPS subclass of a class.

	* gnome/gobject/guile-gnome-gobject.[ch] (gtype->method-name): New
	function.

	* gnome/gobject/primitives.scm (gsignal:id, gsignal:name,
	gsignal:return-type, gsignal:instance-type,
	gsignal:parameter-types): New accessor functions.

2001-09-03  Martin Baulig  <baulig@suse.de>

	* gnome/gobject/guile-gnome-gobject-primitives.c
	(gobject:class-init, gobject:instance-init): When deriving
	GObject's, use `gobject:class-init' and `gobject-instance-init'
	instead of `gtype-instance:class-init' and
	`gtype-instance:instance-init'.

	* gnome/gobject/guile-gnome-gobject.c (gtype-fundamental?): New
	function. This isn't really necessary, but it's faster to do this
	in C.

	* gnome/gobject/primitives.scm (define-public-with-docs): New macro.
	(define-generic-with-docs): New macro.

	* gnome/gw/gobject.scm: Documentation .....

2001-09-03  Martin Baulig  <baulig@suse.de>

	* gnome/gobject/guile-gnome-gobject-primitives.c
	(scm_c_register_gtype): Unmangle the type with
	G_TYPE_FLAG_RESERVED_ID_BIT.

2001-09-03  Martin Baulig  <baulig@suse.de>

	* gnome/gobject/guile-gnome-gobject-primitives.c
	(gtype-primitive-create-instance): Renamed to
	gobject-primitive-create-instance; its last argument is now a
	vector containing the properties.

	* gnome/gw/gobject.scm: When creating new <gobject> instances,
	interpret all arguments as GObject properties.

2001-09-03  Martin Baulig  <baulig@suse.de>

	* gnome/gobject/guile-gnome-gobject-primitives.c
	(gsignal-primitive-create): Actually pass the `param-types' vector
	to g_signal_newv().

	* gnome/gw/gobject.scm (make-value-from-scm): Throw an exception
	if we got the unspecified value, but a non-void type.

2001-09-01  Martin Baulig  <baulig@suse.de>

	Added support for GParamSpec.

	* gnome/gw/gobject.scm (gobject-get-property,
	gobject-set-property): New functions.

	* gnome/gobject/guile-gnome-gobject-primitives.c
	(scm_gparam_spec_struct_vtable): New struct type.
	(scm_gtype_instance_primitive_to_instance): Renamed to
	scm_gtype_instance_primitive().
	(scm_gtype_instance_primitive_type): New function.
	(scm_gobject_primitive_signal_emit,
	scm_gobject_primitive_signal_connect): Take a
	scm_tc16_gtype_instance smob, not a <gobject> object.
	(scm_gparam_primitive_to_pspec_struct): New function.
	(scm_gparam_primitive_create): New function.
	(s_scm_gobject_primitive_get_properties): New function.
	(scm_gobject_primitive_get_property): New function.
	(scm_gobject_primitive_set_property): New function.

	* gnome/gw/foo.[ch]: Added properties.

2001-09-01  Martin Baulig  <baulig@suse.de>

	* gnome/gobject/primitives.scm (<gtype>): Removed, replaced with a
	smob. (gobject-error): Renamed to gruntime-error.

	* gnome/gobject/guile-gnome-gobject-primitives.[ch]: Removed the
	<gtype> class and added new scm_tc16_gtype smob.

	* gnome/gw/gobject.scm (gtype->class): Use <gtype-class> as
	metaclass and changed all <gtype-class-meta> to <gtype-class>.

	* gnome/gobject/guile-gnome-gobject.c: Call the GType's
	"gtype:<type-name>" instead of "gtype-type-<type-name>".

2001-09-01  Martin Baulig  <baulig@suse.de>

	* gnome/gobject/guile-gnome-gobject-primitives.c
	(scm_gtype_primitive_register_static): New function.

	* gnome/gobject/guile-gnome-gobject-primitives.h
	(SCM_VALIDATE_FLOAT_COPY): Make this actually work.

2001-09-01  Martin Baulig  <baulig@suse.de>

	* Makefile.am, configure.in: Don't build libgnome/ and orbit/ for
	the moment, nothing interesting in there.

2001-08-31  Martin Baulig  <baulig@suse.de>

	* test-suite/gobject-primitives.test: Added tests for gclosure
	primitives.

	* test-suite/gobject.test: Added tests for gclosure.

2001-08-31  Martin Baulig  <baulig@suse.de>

	* gnome/gobject/guile-gnome-gobject-primitives.c
	(scm_tc16_gclosure_smob): Removed.
	(scm_gclosure_primitive_invoke): Correctly GC protect the
	GuileGClosure's `func' field.
	
2001-08-31  Martin Baulig  <baulig@suse.de>

	* gnome/gobject/guile-gnome-gobject-primitives.c
	(scm_gvalue_primitive_to_type): Removed, we already have
	scm_gvalue_to_type.

2001-08-31  Martin Baulig  <baulig@suse.de>

	* gnome/gw/gobject.scm (gtype-instance-write): Added method for
	`(type <gtype>) (obj <gvalue>) file)' - creates the class using
	(gtype->class type) and then calls the normal
	gtype-instance-write.

	* gnome/gobject/guile-gnome-gobject-primitives.c
	(scm_gvalue_print): If the class doesn't exist yet, use the type
	as first argument of gtype-instance-write.

2001-08-31  Martin Baulig  <baulig@suse.de>

	* gnome/gw/gobject.scm (gobject-signal-connect-data): Use the new
	<gclosure> object. (gsignal-handler-block gsignal-handler-unblock
	gsignal-handler-disconnect gsignal-handler-connected?): New
	functions.

	* gnome/gobject/guile-gnome-gobject-primitives.c
	(GuileGTypeInstance): Killed, use GTypeInstance directly.
	(scm_gtype_instance_primitive_to_instance): New func.
	(scm_gsignal_primitive_handler_block): New func.
	(scm_gsignal_primitive_handler_unblock): New func.
	(scm_gsignal_primitive_handler_disconnect): New func.
	(scm_gsignal_primitive_handler_connected_p): New func.

2001-08-31  Martin Baulig  <baulig@suse.de>

	* gnome/gw/gobject.scm (<gclosure>): Implement this as a GOOPS
	class, not as a GValue. (gclosure-invoke): New generic function.

	* gnome/gobject/guile-gnome-gobject-primitives.c
	(scm_tc16_gclosure): Renamed to `scm_tc16_gclosure_smob'.
	(scm_gclosure_primitive_invoke): Added return_type argument.
	(scm_gvalue_primitive_to_type): New function.

2001-08-27  Martin Baulig  <baulig@suse.de>

	* test-suite/gobject.text: Testcase for `(gnome gobject)' module.

	* test-suite/gobject-primitives.test: Testcase for `(gnome gobject
	primitives)'.

2001-08-27  Martin Baulig  <baulig@suse.de>

	* test-suite/: New directory.

2001-08-27  Martin Baulig  <baulig@suse.de>

	* gnome/gobject/primitives.scm, guile-gnome-gobject-primitives.[ch]:
	Moved some of the internal stuff into a new `(gnome gobject
	primitives)' module and exported most of the methods.

2001-08-27  Martin Baulig  <baulig@suse.de>

	* gnome/gobject/primitives.scm (gflags->element-list): New primitive
	function. (gflags->symbol-list gflags->name-list
	gflags->value-list): New functions.

2001-08-25  Martin Baulig  <baulig@suse.de>

	- added basic support for signals.

2001-08-23  Martin Baulig  <baulig@suse.de>

	- added basic gclosure support.

	- added gchararray.

	- added support for flags.

	- added genum-register-static.

	- added gchar, guchar, gint, guint, glong, gulong, gfloat and
	gdouble.

	- added support for enums.

2001-08-21  Martin Baulig  <baulig@suse.de>

	* gnome/gobject/guile-gnome-gobject.c
	(scm_sys_gobject_scheme_dir): New func.
	(scm_gobject_register_type): New func.

	* gnome/gw/Makefile.am: Create and install documentation.

2001-08-21  Martin Baulig  <baulig@suse.de>

	* gnome/gobject/guile-gnome-gobject.c (scm_gtype_children): New
	func. (scm_init_gnome_gobject): Register all fundamental and
	derived types.

