[cffi-devel] [ANN] SWIG Release - 1.3.28 - with CFFI

efuzzyone at netscape.net efuzzyone at netscape.net
Fri Feb 17 07:05:21 UTC 2006


The SWIG Development team has released SWIG 1.3.28, which now supports CFFI. 
http://www.swig.org/download.html


Full Announcement:

*** ANNOUNCE: SWIG 1.3.28 (February 12, 2006) ***

http://www.swig.org

We're pleased to announce SWIG-1.3.28, the latest installment in the
SWIG development effort.  SWIG-1.3.28 includes a number of bug fixes
and large number of enhancements throughout.

What is SWIG?
-------------

SWIG is a software development tool that reads C/C++ header files and
generates the wrapper code needed to make C and C++ code accessible
from other languages including Perl, Python, Tcl, Ruby, PHP, Java,
Scheme (Guile, MzScheme, CHICKEN), Ocaml, Lua, Pike, C#, Modula-3, and
Common Lisp (CLISP, Allegro CL, CFFI, UFFI). SWIG can also export its parse
tree in the form of XML and Lisp s-expressions.  Major applications of
SWIG include generation of scripting language extension modules, rapid
prototyping, testing, and user interface development for large C/C++
systems.

Availability:
-------------
The release is available for download on Sourceforge at

      http://prdownloads.sourceforge.net/swig/swig-1.3.28.tar.gz

A Windows version should also be available at

      http://prdownloads.sourceforge.net/swig/swigwin-1.3.28.zip

What's New?
===========

SWIG-1.3.28 summary:
- More powerful renaming (%rename) capability.
- More user friendly warning handling.
- Add finer control for default constructors and destructors. We discourage
   the use of the 'nodefault' option, which disables both constructors and
   destructors, leading to possible memory leaks. Use instead
   'nodefaultctor'
   and/or 'nodefaultdtor'.
- Automatic copy constructor wrapper generation via the 'copyctor'
option/feature.
- Better handling of Windows extensions and types.
- Better runtime error reporting.
- Add the %catches directive to catch and dispatch exceptions.
- Add the %naturalvar directive for more 'natural' variable wrapping.
- Better default handling of std::string variables using the
%naturalvar directive.
- Add the %allowexcept and %exceptionvar directives to handle
exceptions when
   accessing a variable.
- Add the %delobject directive to mark methods that act like destructors.
- Add the -fastdispatch option to enable smaller and faster overload
dispatch
   mechanism.
- Template support for %rename, %feature and %typemap improved.
- Add/doc more debug options, such as -dump_module, -debug_typemaps, etc.
- Unified typemap library (UTL) potentially providing core typemaps for all
   scripting languages based on the recently evolving Python typemaps.
- New language module: Common Lisp with CFFI.
- Python, Ruby, Perl and Tcl use the new UTL, many old reported and hidden
   errors with typemaps are now fixed.
- Initial Java support for languages using the UTL via GCJ, you can now use
   Java libraries in your favorite script language using gcj + swig.
- PHP4 module update, many error fixes and actively maintained again.
- Allegrocl support for C++, also enhanced C support.
- Ruby support for bang methods.
- Ruby support for user classes as native exceptions.
- Perl improved dispatching in overloaded functions via the new cast
and rank
   mechanism.
- Perl improved backward compatibility, 5.004 and later tested and working.
- Python improved backward compatibility, 1.5.2 and later tested and
working.
- Python can use the same cast/rank mechanism via the -castmode option.
- Python implicit conversion mechanism similar to C++, via the %implicitconv
   directive (replaces and improves the implicit.i library).
- Python threading support added.
- Python STL support improved, iterators are supported and STL
containers can
   use now the native PyObject type.
- Python many performance options and improvements, try the -O option
to test
   all of them. Python runtime benchmarks show up to 20 times better
   performance
   compared to 1.3.27 and older versions.
- Python support for 'multi-inheritance' on the python side.
- Python simplified proxy classes, now swig doesn't need to generate the
   additional 'ClassPtr' classes.
- Python extended support for smart pointers.
- Python better support for static member variables.
- Python backward compatibility improved, many projects that used to work
   only with  swig-1.3.21 to swig-1.3.24 are working again with swig-1.3.28
- Python test-suite is now 'valgrinded' before release, and swig also
   reports memory leaks due to missing destructors.
- Minor bug fixes and improvements to the Lua, Ruby, Java, C#, Python,
Guile,
   Chicken, Tcl and Perl modules.

Release numbers
---------------
With SWIG-1.3, we are adopting an odd/even version numbering scheme for
SWIG.  Odd version numbers (1.3, 1.5, 1.7, etc...) are considered to
be development releases.  Even numbers (1.4,1.6,1.8) are stable
releases.  The current 1.3 effort is working to produce a stable 2.0
release.  A stable 2.0 release will not be made until it can
accompanied by fully updated documentation.  In the meantime, we will
continue to make periodic 1.3.x releases.

We need your help!
------------------
Even if you are perfectly happy with SWIG-1.1, we can still use your
feedback.  First, we like to know about compilation problems and other
issues concerning the building of SWIG.  Second, if SWIG-1.3 is unable
to compile your old interface files, we would like to get information
about the features you are using.  This information will help us find
bugs in the SWIG-1.3 release, develop techniques for supporting
backwards compatibility, and write documentation that addresses
specific issues related to migrating from SWIG-1.1 to SWIG-1.3.

We are also looking for volunteers who would like to work on various
aspects of SWIG development.  SWIG is an unfunded project that would
not exist without volunteers.  We are also looking for the developers
of other SWIG language modules.  If you have developed a SWIG module
and would like to see it incorporated into the new release, please
contact us to obtain SWIG-CVS access.  We are also more than willing
to help port your module from SWIG-1.1 to SWIG-1.3.  Please send email
to beazley at cs.uchicago.edu for further information.

Please report problems with this release to the swig-dev mailing list,
details at http://www.swig.org/mail.html.

--- The SWIG Developers





More information about the cffi-devel mailing list