[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[ann] guile-gnome-platform 2.15.97 released

From: Andy Wingo
Subject: [ann] guile-gnome-platform 2.15.97 released
Date: Thu, 10 Apr 2008 17:47:15 +0200
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/23.0.60 (gnu/linux)

Greetings lambda wranglers,

I am pleased to announce the release of guile-gnome-platform version

guile-gnome-platform 2.15.97 may be downloaded from:

About guile-gnome-platform

guile-gnome-platform is a binding between Guile Scheme and the Gnome
stack of libraries.

This release is a part of the unstable 2.15 series, which aims to wrap
the libraries in the Gnome Developer Platform at version 2.16. It is
unstable, but 2.16.0 will be stable.

Around December, I realized that our core (gnome gobject) presented a
needlessly complicated interface because of the multiple layers at which
we wrapped C objects: <gtype>, <%gtype-class>, and <gtype-class>;
<%gtype-instance> and <gtype-instance>; etc. So for this release I
rewrote the core pointer-binding machinery to collapse those types,
resulting in the removal of lots of redundant, and little-used API.

If this sounds like it's scary, it's really not -- very little
application code changes after this; basically you just substitute
GTypes for classes, e.g. gtype:foo changes to <foo>. But still, sorry
for the churn. It's a necessary step that takes us closer to a stable

One caveat: I haven't updated the documentation yet. Wrappers like
(gnome gtk) should be the same, though, it's just (gnome gobject) that
will be updated.

Call me an optimist, but at this point I think that 2.16.0 could happen
within a month.

Please see the notes for the changes in the glib wrapper, and test your
code. Thanks!


packaging changes
* No user-visible changes.

* New platform release, no change.

* New platform release, no change.

* Adapt to changes in (gnome gobject). corba-typecode->gtype-class is
  the new name for corba-typecode->gtype.

* Compilation fix if BONOBO_EX is already defined.

* New platform release, no change.

* New platform release, no change.

* Adapt to changes in (gnome gobject).

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

* Adapt to changes in (gnome gobject).

* New function wrapper: gtk-widget-get-state.

* Reintroduce gtk-menu-popup wrapper, this time supporting the menu
  positioning function.

* Adapt to changes in (gnome gobject).

* Interface changes: Tree models now deal in <gtype-class> instances,
  now that there are no more GType objects. This applies to the list
  store, tree store, and the generic tree model.

* Make the texinfo viewer understand more kinds of @def commands.

* Adapt to changes in (gnome gobject).

* New platform release, no change.

* Compilation fixes with picky compilers.

* New platform release, no change.

* New platform release, no change.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]