GnuCash trunk now uses SWIG

Chris Shoemaker c.shoemaker at cox.net
Thu Oct 19 18:34:00 EDT 2006


Hi,
        In case you missed recent list traffic, this is just to
announce that, yes, GnuCash has switched from g-wrap to SWIG
(http://swig.sf.net since http://www.swig.org is currently down.)
SWIG is the program that generates wrappers for C functions that can
be called from guile.  The conversion was merged into trunk a few days
ago, on the 15th.

        So, what does this mean for those of you following trunk?
Well, for one, you should be on the look-out for bugs, as always.
There have already been a couple wrapper-related bugs squashed.  A
typical wrapper-related bug would be an unbound-variable error while
exercising some functionality that's implemented in guile.  Chiefly,
that's reports, and import-export, and import-export is especially
under-tested.  (But any bugs are possible.)

        If you're compiling trunk, you're going to need to install
swig >= 1.3.28.  Makefile rules are enabled that will generate the
needed wrappers from the ".i" interface files.  However, they won't be
removed by "make clean".  If you need to remove them for some reason,
you'll need the more drastic "make maintainer-clean".

        It's also possible that left-over g-wrap cruft in your working
directory may interfere with the build process somehow.  Anything
g-wrap can safely be deleted.

        Also, you may get some errors when reloading reports that were
saved with pre-swig versions.  Reopening those reports should work.

        Early heads up: there are currently some bug fixes in swig's
cvs for bugs that we're working around now.  When those fixes appear
in a released version, I hope to depend on them relatively quickly,
(maybe 1 month after release?)  Please speak up if this is
problematic.  BTW, swig is a _breeze_ to install from source, and
there's no library to link to at all. (./configure && make && make
install)

        Note to packagers: Don't worry, this is all good news for you.
SWIG is only a build-time dependency for people building from trunk.
There is no new runtime dependency and no new build-time dependency
for building from tarball (whenever a 2.2 is eventually released.)
And... all the g-wrap dependencies are gone.

        Note to (potential) developers: Hey, if somebody wants to push
a little more reporting infrastructure (options, basically) from guile
into C, we could conceivably write reports in some other scripting
language.  As a perk, you'd get to pick the language! :-)

        Have fun!

-chris


More information about the gnucash-devel mailing list