guile-gnome-glib NEWS --- history of user-visible changes.
Copyright (C) 2004,2005,2006,2007,2008 Free Software Foundation, Inc.
See the end for copying conditions of this file.
Last updated 03 Jul 2008.


guile-gnome-glib is a Guile binding for GLib and GObject, including a
bindings generator. It is part of GNU guile-gnome. This file documents
the user-visible changes in guile-gnome-glib only.


guile-gnome-glib 2.16.1 - Andy Wingo, 2008-07-03
================================================

* Recognize GInitiallyUnowned as a sinkable object.

This doesn't affect e.g. GTK+, for which we already recognize GtkObject
as sinkable, but it does affect e.g. Clutter.

* Don't error when constructing parameter types of which we are unaware.

Affects e.g. ClutterUnit parameters; the precise nature of this fix will
change in the future.
  
* Accept integers as init values for <gchar> or <guchar> values.

* Bugfix for custom-wrapped boxed values, like GdkRectangle.

* Fix regressions on x86-64.


guile-gnome-glib 2.16.0 - Andy Wingo, 2008-06-12
================================================

* Improved documentation.

* Build process is slightly less noisy.


guile-gnome-glib 2.15.98 - Andy Wingo, 2008-04-25
=================================================

* API changes: Made gtype-interface-destroy! public. Removed the
  terrible %especify-metaclass! as it is not used.

* Documentation updated.

* Don't use API deprecated in Guile 1.8.

* A few bugfixes after the large changes in 2.15.97.


guile-gnome-glib 2.15.97 - Andy Wingo, 2008-04-10
=================================================

* Major rewrite of low-level (gnome gobject) code. 

GTypes are no longer exposed to Scheme. Instead, types are represented
directly as <gtype-class> instances.

Internally, <gtype-class> instances know their GType, because is stored
in a <read-only-slot>, which stores a raw (untagged) word -- the perfect
size for a GType.

Similarly, I also removed the need for <%gtype-instance> smobs as well,
through interesting trickery: the GOOPS objects directly store the
GTypeInstance* pointer in a <read-only-slot>. The trickery is that we
can be notified when the struct is collected, via monkeypatching the
<gtype-class> objects to free via a custom function,
scm_gtype_instance_struct_free. This allows us to unref the object.

The same strategy was applied to GValue wrappers. With this change,
Guile-GNOME no longer holds C data in SMOBs.

Removing the <gtype>, <%gtype-class>, <%gtype-instance>, and primitive
<gvalue> types has allowed for the removal of much useless,
non-orthogonal glue API.

Signals and parameters are also represented natively with GOOPS objects,
not structures. There is no overhead for this, as GOOPS objects are in
fact structures, whose VTable is their class.

This is an incompatible change, but one which allows me to commit to a
stable API/ABI, perhaps in the next release.

Please test your programs against this version, so that I can help you
port, and so that we can make sure that the API is fine.


guile-gnome-glib 2.15.96 - Andy Wingo, 2007-12-10
=================================================

* API review.

* Documentation changes: add type index, section for undocumented
  exports, regenerated for changes resulting from API review.

* Bugfix: avoid SCM_STRING_CHARS in core (gnome gobject) code, which
  will raise an exception when called on shared substrings.

* Fixes to the fifo.scm example, which uses GIOChannel.

* Leave guile mode at the right time in g-main-loop-run, fixing some
  hangs.

* Change to the wrapset generator to no longer silently wrap opaque
  types; instead, functions that reference unknown types are ignored,
  and a warning is printed out. Requires more discipline when making
  wrapsets, but reduces random crap being wrapped.

* Add support for appending a list of undocumented functions to the
  generated documentation.

* Add support for wrapping more kinds of C structures: freeable
  pointers, generic refcounted pointers, and destructurable values. See
  the changes to (gnome gw support gobject) for more information.


guile-gnome-glib 2.15.95 - Andy Wingo, 2007-11-10
=================================================

* Added API regression unit tests for (gnome gw glib); previously only
  (gnome gobject) was tested.

* Add new code to check documentation coverage, integrated with the
  build system via the generate-docs.mk file in the `pkg' module.

* Fix documentation of class properties.


guile-gnome-glib 2.15.94 - Andy Wingo, 2007-09-25
=================================================

* Added documentation for the gobject and glib wrappers.

* Added unit tests which check that the (gnome gobject) and (gnome gw
  glib) APIs do not unintentionally change incompatibly.

* Added infrastructure for automatically producing documentation based
  on upstream GTK-Doc documentation.

* Fixed a number of API bugs; see the ChangeLog from 2006-09-01 and
  before for more details. Should not affect user's applications.


guile-gnome-glib 2.15.93 - Andy Wingo, 2007-06-15
=================================================

* Fix parsing of some options on arguments, such as (callee-owned),
  broken since 2007-05-05.

* Fix wrapper name of g-string-get-str.

* Fix some default values lost when glib.defs was autogenerated.

* Large speedup in load time of wrapped modules if we detect that
  Guile's module-make-local-var! is "lightweight", as is the case in the
  latest Guile 1.8 and HEAD CVS.


guile-gnome-glib 2.15.92 - Andy Wingo, 2007-05-24
=================================================

* Update to GLib 2.10. Notably, this wraps the GBookmarkFile API, and
  the g_unicode and g_utf8 functions.

* Fix POSIX signal handling when running the main loop with Guile 1.8.


guile-gnome-glib 2.15.91 - Andy Wingo, 2007-05-10
=================================================

* Leave guile mode when calling into C, and enter when calling back into
  Guile, as in GClosures. Guile-gnome now supports multithreaded
  operation on Guile 1.8.

* The custom handler for g_warning() and friends was removed;
  guile-gnome will no longer scm_error when GLib logs.

* The defs parser automatically recognizes more output arguments, for
  example guint64*.

* Many bugfixes.


guile-gnome-glib 2.15.90 - Andy Wingo, 2006-12-15
=================================================

* Operate on GTypeInstances via a generic registry of fundamental type
  operations. guile-gnome-glib comes with operations on GObject and
  GParamSpec; wrappers can define other operations for other fundamental
  types (such as GstMiniObject in GStreamer).

* Require G-Wrap 1.9.7, so that we can place all of our generics in the
  (gnome gw generics) module instead of in the root module.

* Avoid calling scm_ functions while in GC sweep, fixes crashes on Guile
  1.8.

* Add support macro for wrapping custom unclassed GTypes, such as
  GStreamer's fractions.

* Don't ignore 'null-ok (or other options) in cases like this:
  '("GMainContext*" "context" (null-ok) (default "NULL")).

* Remove SLIB dependency by folding in the needed functionality.

* Add support for gsize and gssize, both as input and output parameters.

* Add accessors for fields of GError.

* Other compile, memleak, and bug fixes.


guile-gnome-glib 2.7.99 - Andy Wingo, 2005-03-06
================================================

* Updates to work with g-wrap 1.9.5.


guile-gnome-glib 2.7.98 - Andy Wingo, 2005-01-11
================================================

* New platform release, no change.


guile-gnome-glib 2.7.97 - Andy Wingo, 2004-12-05
================================================

* Initial release with NEWS


See NEWS.guile-gobject and the ChangeLog for older news.


Copyright (C) 2004,2005,2006,2007 Free Software Foundation, Inc.

Copying and distribution of this file, with or without modification, are
permitted in any medium without royalty provided the copyright notice
and this notice are preserved.
