[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