[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
CVS instability coming up -- afterward new g-wrap will be required.
From: |
Rob Browning |
Subject: |
CVS instability coming up -- afterward new g-wrap will be required. |
Date: |
Wed, 09 Jan 2002 15:01:05 -0600 |
User-agent: |
Gnus/5.090004 (Oort Gnus v0.04) Emacs/21.1 (i386-debian-linux-gnu) |
Just a warning that I'm about to start comitting a whole raft of
changes to make gnucash unstable CVS compatible with the new g-wrap.
Once I'm finished, everyone (as the helpful configure message will
warn you) will need to do a make distclean (most likely), update to
latest CVS, and then upgrade to at least g-wrap 1.3.2.
You can get g-wrap-1.3.2.tar.gz from
ftp.gnucash.org/pub/g-wrap/sources.
For those interested, some improvements include:
- much better run-time wrapper error checking/handling. As an
example, g-wrapped functions accepting/returning limited range
integer types will now signal range and type errors independently.
- the beginings of glib support, including support for <gw:gint64>
(independent of guile version across 1.3.4, 1.4, and 1.5 --
i.e. we work around earlier guile's bit-operation problems), and
support for the somewhat strange "composite type", gw:glist-of,
which allows you to specify arguments/return-values with complex
composed types like this:
(gw:glist-of (<gw:gchars> caller-owned) caller-owned)
This specifies a C argument or return value that's a GList* of
g_new allocated character strings, where the caller owns both the
spine of the list and the actual strings. G-wrap will
automatically convert back and forth between the scheme side
scheme list and the C side GList* generating and destroying both
the GList and it's contents when appropriate. You should even be
able to say something like this if you really wanted to:
(gw:glist-of
(gw:glist-of (<gw:gchars> callee-owned) callee-owned)
caller-owned)
In all of these cases, g-wrap should be careful about destroying
partially converted C-side values when errors occur, before
throwing the actual scheme side error -- reducing the possibility
of a memory leak, which can be important for anyone trying to
recover from such an error.
- wrapping/handling gnome-guile objects transparently so you can
wrap your own functions and they'll accept/return gnome guile
objects via the modules (g-wrap gtkobj) and (g-wrap gw-gtk)
(gw:wrap-as-gtkobj '<my-foo-gtkobj> "FooWidget")
- modularized support for g-wrap's own guile side C pointer wrapper
system "wct" via (g-wrap gw-wct) and gw:wrap-as-wct.
- support for wrapping C side constant values via
(gw:wrap-value my-gl-red '<gw:int> "GL_RED")
- major overhaul of internals to provide more flexibility for those
writing their own types.
- much more extensive "make check" regression testing. This has
been a major help finding/fixing bugs during development.
--
Rob Browning
rlb @defaultvalue.org, @linuxdevel.com, and @debian.org
Previously @cs.utexas.edu
GPG=1C58 8B2C FB5E 3F64 EA5C 64AE 78FE E5FE F0CB A0AD
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- CVS instability coming up -- afterward new g-wrap will be required.,
Rob Browning <=