(copying guile-user) Greetings lambda wranglers,
I am pleased to announce the release of guile-gnome-platform version 2.15.97. guile-gnome-platform 2.15.97 may be downloaded from: http://ftp.gnu.org/pub/gnu/guile-gnome/guile-gnome-platform/guile-gnome-platform-2.15.97.tar.gz 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 release. 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! Changes ======= packaging changes ----------------- * No user-visible changes. atk --- * New platform release, no change. cairo ----- * New platform release, no change. corba ----- * 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. defs ---- * New platform release, no change. docs ---- * New platform release, no change. gconf ----- * Adapt to changes in (gnome gobject). glib ---- * 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. gnome-vfs --------- * Adapt to changes in (gnome gobject). gtk --- * 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. libglade -------- * Adapt to changes in (gnome gobject). libgnome -------- * New platform release, no change. libgnomecanvas -------------- * Compilation fixes with picky compilers. libgnomeui ---------- * New platform release, no change. pango ----- * New platform release, no change. -- http://wingolog.org/
