Changes since 1.9.4:
- Bugfixes
+ The minimal GLib wrappers are now installed as (g-wrap gw-glib),
as expected by GnuCash.
+ A problem with generic specializer class lookup has been fixed.
+ A problem with generics specialization and default arguments has
been fixed.
+ A problem with default arguments, when combined with
invisible arguments (such as output arguments) has been fixed.
- Enhanced generics support: now all arguments of methods are
specialized, not only the first one.
- Bugfixes
+ Now ships with (g-wrap gw-wct) compatibilty module needed by
GnuCash at runtime.
+ Fixes for handling output arguments:
- Wrapped functions with void return value and output arguments
now return expected results
- Optional argument count is now correctly computed in the
presence of output arguments
+ The libffi alignment requirements are now honored. This fixes bus
errors on many non-x86 architectures.
+ On big-endian architectures libffi-wrapped functions that return
char now work correctly.
+ Some "uninitialized variable" warnings were fixed in generated code
which caused compiles with GCC 4.0 to fail (Debian Bug#290305).
Changes since 1.3.4:
Version 1.9.3
- Comes with a compatibility layer that allows GnuCash to be built
with it.
- Reverts the enhanced generics support, which was introduced in
1.9.2, since that currently breaks guile-gnome
- Bugfixes
+ g-wrap-2.0-guile.pc is now generated correctly, even if the
internal libffi is used.
+ Types used by constants are now considered when calculating the
set of referenced types in a wrapset. This bug led to missing code
and compile errors when a type defined in another wrapset was used
by only by a constant.
+ On platforms which lack alloca(), the version shipped with
G-Wrap should now build correctly.
Version 1.9.2
- Now comes with libffi included, for systems which lack an libffi
installation
- SRFI module checks now work correctly, even if you do an in-tree build
Version 1.9.1
- API change: destruct-value-cg is now named destroy-value-cg
- Bugfixes
+ A bug in the latent generic code has been fixed
+ The error message for WCP type errors has been fixed
Version 1.9.0
- Complete rewrite; too many changes to list, see the manual for the
new GOOPS-based API and the guile-gnome project for an extended
example.
- New features:
+ Output arguments
+ Default arguments
- G-Wrap should be target-language agnostic, like it was in its
early days.
Unfortunately, guile{,14}/buildlink3.mk directly includes it, and I don't
know which dependencies actually need libltdl, so it was a recursive bump.
Hopefully this recursive inclusion can be ripped out of
guile{,14}/buildlink3.mk at some point and bubble down to dependencies that
actually use libltdl, avoiding this headache in the future....
in the process. (More information on tech-pkg.)
Bump PKGREVISION and BUILDLINK_DEPENDS of all packages using libtool and
installing .la files.
Bump PKGREVISION (only) of all packages depending directly on the above
via a buildlink3 include.
All library names listed by *.la files no longer need to be listed
in the PLIST, e.g., instead of:
lib/libfoo.a
lib/libfoo.la
lib/libfoo.so
lib/libfoo.so.0
lib/libfoo.so.0.1
one simply needs:
lib/libfoo.la
and bsd.pkg.mk will automatically ensure that the additional library
names are listed in the installed package +CONTENTS file.
Also make LIBTOOLIZE_PLIST default to "yes".
PR pkg/20270 with minor nitpicks by myself.
Some of the changes since 1.2.1:
* configure.in: fix minor problem where we used the guile-gtk
config program even when it wasn't found.
* acconfig.h: deleted since deprecated -- replaced by three arg
AC_DEFINEs in configure.in.
* doc/.cvsignore: add texinfo.tex.
* configure.in (AM_INIT_AUTOMAKE): bump version for release.
* bunch of subversion cleanups.
* change license to LGPL.
* g-wrap/gw-glib-spec.scm: coerce to (gpointer) in gw:glist-of and
gw:gslist-of code where needed.
* g-wrap/enumeration.scm (gw:wrap-enumeration): make val->int and
int->val functions static so they don't cause conflicts.
* configure.in (GW_GUILE_GTK_CFLAGS): delete any occurences of -I
/usr/include or similar. Newer gcc's don't like that at all.
* bin/g-wrap-config.in (c-compile-args): don't output -I if it's
/usr/include. The new gcc doesn't like -I /usr/include at all.
* test/Makefile.am (gw-test-enumeration.scm gw-test-enumeration.h
gw-test-enumeration.c gw-test-enumeration.html
gw-test-enumeration-autogen.h): use LD_LIBRARY_PATH.
(gw-test-parent.scm gw-test-parent.h gw-test-parent.c
gw-test-parent.html gw-test-parent-autogen.h): use LD_LIBRARY_PATH.
* doc/g-wrap.texi: minor re-editing -- still needs much more.
* configure.in (GW_GUILE_GTK_CFLAGS): add and AC_SUBST.
(GW_GUILE_GTK_LIBFLAGS): add and AC_SUBST.
* g-wrap/simple-type.scm: new file -- support for simple types.
* g-wrap/runtime.scm: new file -- scm support for runtime wrapset
database.
* g-wrap/gw-wct-spec.scm: new file -- wrapped C pointer types.
* g-wrap/gw-standard-spec.scm: new file -- standard wrapped types.
* g-wrap/gw-gtk-spec.scm: new file -- wrappers for gtk.
* g-wrap/gw-glib-spec.scm: new file -- wrappers for glib.
* g-wrap/gtkobj.scm: support for wrapping new C ptr types as
gtkobjects.
* g-wrap/Makefile.am: major changes -- support gw-glib, gw-wct,
gw-gtk, etc.
* g-wrap/g-wrap-wct.h: support header for gw-wct. Part of
libgwrap-wct.
* g-wrap/g-wrap-wct.c: support code for gw-wct. Part of
libgwrap-wct.
* g-wrap/g-wrap-glib.h: support header for gw-glib. Part of
libgwrap-glib.
* g-wrap/g-wrap-glib.c: support code for gw-glib. Part of
libgwrap-glib.
* g-wrap/output-file.scm (flatten-display): make public.
* g-wrap/g-wrap-compatibility.h: start guile version compatibility
library.
* g-wrap/enumeration.scm: break out enumeration support.
* g-wrap/dummy-main.c: new file - for link testing.
* bin/g-wrap-config.in (c-link-args): add support for glib, wct,
etc.
* g-wrap.scm: major overhaul -- modules -> wrapsets, ccodegens ->
init/decl/lists, etc.
* configure.in: remove rscheme (and other dead bits). Add support
for glib and gnome-guile. Handle libruntime reorg/removal.
* acconfig.h: accomodate reorg/removal of libruntime.
* g-wrapped/gw-runtime-spec.scm: switch to use of SCM_FALSEP and
SCM_NFALSEP rather than direct SCM_BOOL_*
* libruntime-guile/g-wrap-runtime-guile.c: switch to use of
SCM_FALSEP and SCM_NFALSEP rather than direct SCM_BOOL_*
comparisons.
* g-wrap.scm: switch to use of SCM_FALSEP and SCM_NFALSEP rather
than direct SCM_BOOL_* comparisons.
instead of the one in the work directory. Also ensure that we install
guile library files into ${GUILE14_PREFIX}/share/guile instead of into
the same place under ${LOCALBASE}, since we are using guile14. Bump
PKGREVISION of devel/g-wrap to 1.
out of date - it was based on a.out OBJECT_FMT, and added entries in the
generated PLISTs to reflect the symlinks that ELF packages uses. It also
tried to be clever, and removed and recreated any symbolic links that were
created, which has resulted in some fun, especially with packages which
use dlopen(3) to load modules. Some recent changes to our ld.so to bring
it more into line with other Operating Systems also exposed some cracks.
+ Modify bsd.pkg.mk and its shared object handling, so that PLISTs now contain
the ELF symlinks.
+ Don't mess about with file system entries when handling shared objects in
bsd.pkg.mk, since it's likely that libtool and the BSD *.mk processing will
have got it right, and have a much better idea than we do.
+ Modify PLISTs to contain "ELF symlinks"
+ On a.out platforms, delete any "ELF symlinks" from the generated PLISTs
+ On ELF platforms, no extra processing needs to be done in bsd.pkg.mk
+ Modify print-PLIST target in bsd.pkg.mk to add dummy symlink entries on
a.out platforms
+ Update the documentation in Packages.txt
With many thanks to Thomas Klausner for keeping me honest with this.