*** ANNOUNCE: SWIG 1.3.11 ***

February 1, 2002

We're pleased to announce the next installment of the SWIG1.3
redevelopment effort.  The 1.3.11 release primarily addresses problems
related to SWIG's internal implementation.  Substantial changes have
been made to all of SWIG's language modules.  In addition, typemaps
and exception handling have been completely rewritten.

New Features in 1.3.11
----------------------

* Improved template support *

SWIG-1.3.9 and SWIG-1.3.10 were the first releases to provide
better support for wrapping C++ templates.  SWIG-1.3.11 fixes a
of number of major problems that were discovered and further
refines the implementation.

* New PHP4 Module *

Richard Palmer has made substantial progress on creating a PHP4 module
for SWIG.  The 1.3.11 release includes many more examples, tests, and
documentation for PHP4 support. It also now includes support for
C++ and -shadow.

* Enhanced Java Module *

William Fulton has continued to make progress on the SWIG-Java module.
It should provide much better support for typemaps and other advanced
features.

* Redesigned Typemaps *

In SWIG-1.3.10, the typemap system was almost completely rewritten.  The major
improvement in that release is support for multi-argument typemaps.
This addresses the problem of wrapping functions where multiple arguments
might be mapped to a single object in the target language.  For example:

    void foo(char *buffer, int len);          // String and length
    void bar(int *ptr, int rows, int cols);   // Pointer and shape

This has been a long requested SWIG feature (for more than 4 years).
SWIG-1.3.10 is the first release to allow this.  Here is an example
of a multi-argument typemap:

    %typemap(in) (char *buffer, int len) {
        $1 = PyString_AsString($input);
        $2 = PyString_Size($input);
    }

SWIG-1.3.11 provides many bug-fixes and minor patches to improve
typemap support.

* Minor parser improvements *

SWIG-1.3.11 includes some minor parsing improvements related to
integer types.  Also, better support for the C long long type
has been added.

* Updated documentation *

Continued updates of the SWIG Users Manual are included in this
release including entirely new sections on typemaps and exception
handling.  The first 7 chapters of the old manual are now entirely
up-to-date with SWIG-1.3.11.  However, updating all of the old
documentation is an ongoing process and is not yet finished (we are
working on it).

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

     http://download.sourceforge.net/swig/swig-1.3.11.tar.gz

Within the next day, a Windows version will also be made available at

     http://download.sourceforge.net/swig/swigwin-1.3.11.zip

What's broken?
--------------
This release breaks backwards compatibility with SWIG1.1 in a
substantial manner.  Although we realize that this may be painful,
these incompatibilities are unavoidable due to corrections that need
to be made in order to fix semantic errors in the SWIG1.1
implementation.  However, we hope that these changes are a small price
to pay for some of SWIG's new features including support for C++
templates, overloading, and improved parsing.

As this is a work in progress, a number of features are still missing
or incomplete.  The documentation system is still missing and won't be
reimplemented for some time.  Programmers who have made extensive use of
typemaps may encounter broken code due to the reimplementation of the typemap
system (which has tried to fix a number of subtle problems).

The Perl5 module is also in some need of some repair and may not work
with all Perl configurations such as ActivePerl (It seems to work with
a standard Perl5.6.1 distribution however).  We are looking for a
fearless volunteer to help us with future Perl5 support (please skip
to the end for details).

Documentation
-------------
This release contains partially updated documentation.  Almost all new
SWIG features are described in the updated documentation.  The CHANGES
file contains a detailed log of changes and the README file contains
some additional information. 

New Development Process
-----------------------
Starting with SWIG1.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 unstable development releases.  Even numbers
(1.4,1.6,1.8) are stable releases.  The current 1.3 effort is working
to produce a stable 1.4 release.  A stable 1.4 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 SWIG1.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 SWIG1.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 SWIG1.3 release, develop techniques for supporting
backwards compatibility, and write documentation that addresses
specific issues related to migrating from SWIG1.1 to SWIG1.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 developer access.  We are also more than
willing to help port your module from SWIG1.1 to SWIG1.3.  Please send
email to beazley@cs.uchicago.edu for further information.

Please report problems with this release to swig-dev@cs.uchicago.edu.

--- The SWIG Developers












