unofficial mirror of guile-user@gnu.org 
 help / color / mirror / Atom feed
* [ann] guile-gnome-platform 2.15.97 released
@ 2008-04-10 15:52 Andy Wingo
  0 siblings, 0 replies; only message in thread
From: Andy Wingo @ 2008-04-10 15:52 UTC (permalink / raw
  To: guile-user

(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/




^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2008-04-10 15:52 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-04-10 15:52 [ann] guile-gnome-platform 2.15.97 released Andy Wingo

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).