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) ***
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@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