Homepage

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.11

f6f54c2a2ce3d8257ccaf19f923cbe45  g-wrap-1.9.11.tar.gz
631c842abd9592a66f01068c5972cb9f  g-wrap-1.9.11.tar.gz.sig

Changes from 1.9.10:

    - Fix `double' return value handling on big-endian platforms.

    - libffi is no longer distributed with g-wrap, as it is available
      as a stand-alone package now (instead of being burried in the
      GCC sources).

1.9.10

1ea56bbb10a92154d7c1df9582a73e69  g-wrap-1.9.10.tar.gz
cc244da4c799f7f73ad2c6c64ca59ec2  g-wrap-1.9.10.tar.gz.sig

Changes from 1.9.9:

    - Fix WCT nullable behaviour for 'new' (i.e. non-compat) wrapsets;
      there is now a SRFI-39 parameter 'gw-wcts-nullable?' controlling
      the nullable behaviour; this parameter is #f by default, and set
      to #t when generating compat wrapsets.

1.9.9

9014d7ed8d395ff335a6a4bf5778ed4e  g-wrap-1.9.9.tar.gz
417e172d915b2a4db2717bb690e9d1f3  g-wrap-1.9.9.tar.gz.sig

Changes from 1.9.8:

    - Support per-(type-)instance use of #:allowed-options

    - Build fixes:
      - Fix example build when libffi is not installed on the system.
      - Fix GLib build (was deactivated by accident)
      - Distribute and install SRFI 34/35 again

    - libffi updated from GCC SVN

    - It is now possible to have invisible output arguments; these
      won't show up as return values of the Scheme procedure.

1.9.8

Released files, with md5sum:

b6deb04db3e1008f7d1db4ab7df594b2  g-wrap-1.9.8.tar.gz
fdec12be38dc260d5d42c256824ff39b  g-wrap-1.9.8.tar.gz.sig

Changes from 1.9.7:

  - New feature: function flags. At the moment there is a single flag
    specifying whether to leave "Guile mode" when calling the wrapper
    functions. See the Guile manual on "scm_without_guile" for more
    information.

  - Don't rely on libc to provide (v)asprintf, take the implementation
    from gnulib.

  - The minimal GLib bindings now build against GLib 2.x. However,
    their use is deprecated in favour of the much more complete GLib
    bindings in guile-gnome
    (http://www.gnu.org/software/guile-gnome/).

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.

Valid XHTML 1.0 The G-Wrap developers - g-wrap-dev@nongnu.org
Made with EmacsWiki!