About
G-Wrap is a tool (and Guile library) for generating function wrappers for inter-language calls. It currently only supports generating Guile wrappers for C functions.
G-Wrap is currently used in GnuCash, guile-gnome and DistWork.
You can find a bug tracker, and mailing list information on the Savannah project page.
G-Wrap has already undergone two major overhauls; the most recent one resulted in the 1.9 unstable series, which will lead to G-Wrap 2.0.
Download
The G-Wrap releases up to 1.3.4 are available from http://ftp.gnucash.org/pub/g-wrap/source/.
The 1.9.x series of releases can be found on http://savannah.nongnu.org/download/g-wrap/.
Recent Releases
1.9.7
Released files, with md5sum:
4e980fd3f464d53ecee12184569c32bf g-wrap-1.9.7.tar.gz 88f5cc2bae5db7beec0b8f6ac082ac62 g-wrap-1.9.7.tar.gz.sig
Changes from 1.9.6:
- The shared libraries now reside in $(pkglibdir)/modules (e.g. /usr/lib/g-wrap/modules). - Users are now allowed to chose in which module generic functions should be defined. - New feature: aggregated typespecs. See the node `Wrapping a C Function' of the manual for details. - Users can now specify a free and a mark function, as well as an equality predicate for wrapped C types (WCTs) in `wrap-as-wct!'. - Improved documentation with an API reference (yet to be finished). - Several bugfixes.
1.9.6
Released files, with md5sum:
4d83964f51376500eedced538c1620cb g-wrap-1.9.6.tar.gz 8b46e35c545fe52a19b45207cb742417 g-wrap-1.9.6.tar.gz.sig
Changes form 1.9.5:
- Support for size_t and ssize_t data types.
1.9.5
Released files, with md5sum:
a8b0da86fe723aeb1694f2d149991300 g-wrap-1.9.5.tar.gz 391bdba6d7c0f1ea87a63623f0b62243 g-wrap-1.9.5.tar.gz.sig
Changes from 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.
1.9.4
Released files, with md5sum:
d843c9b1aac9a2960de765cf736c56fb g-wrap-1.9.4.tar.gz 8eab22a61e4077dddbcf913b988091d0 g-wrap-1.9.4.tar.gz.sig
Changes from 1.9.3:
- 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).
1.9.3
Released files, with md5sum:
53c1ac85c4b88aacb781cd08ed8c7046 g-wrap-1.9.3.tar.gz fe27e2f07f5025193fbbe7287ab1a0ed g-wrap-1.9.3.tar.gz.sig
Changes from 1.9.2:
- 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.
The G-Wrap developers - g-wrap-dev@nongnu.org
Made with EmacsWiki!