SWIG / News: Recent posts

SWIG-3.0.5 released

We are pleased to announce SWIG-3.0.5 has been released with the addition of support for Scilab.

This version also contains:

  • An important Python fix for a regression in SWIG-3.0.3 when wrapping C++ default arguments.
  • Minor improvements for C#, Go, Octave, PHP and Python.

SWIG-3.0.4 was also released recently and contained part of the Python fix for the regression mentioned above. Python users should definitely rather use 3.0.5.

Posted by William Fulton 34 minutes ago

SWIG-3.0.3 released

SWIG-3.0.3 release summary:
- Add support for C++11 strongly typed enumerations.
- Numerous bug fixes and minor enhancements for C#, D, Go, Java,
Javascript, PHP, Perl and Python wrappers.

More detailed release notes can be seen at http://swig.org/release.html

Posted by William Fulton 2014-12-31

SWIG-3.0.2 released

This release has been made to fix a bug during installation, but it also includes a couple of other rather minor changes.

Posted by William Fulton 2014-06-04

SWIG-3.0.1 released

SWIG-3.0.1 is another milestone release as it is the first version to contain support for Javascript.

Release summary:

  • Javascript module added. This supports JavascriptCore (Safari/Webkit), v8 (Chromium) and node.js currently.
  • A few notable regressions introduced in 3.0.0 have been fixed - in Lua, nested classes and parsing of operator <<.
  • The usual round of bug fixes and minor improvements for C#, GCJ, Go, Java, Lua, PHP and Python.
Posted by William Fulton 2014-05-27

SWIG-3.0.0 released

This is a major new release focusing primarily on C++ improvements.

  • C++11 support added. Please see documentation for details of supported
    features: http://www.swig.org/Doc3.0/CPlusPlus11.html
  • Nested class support added. This has been taken full advantage of in
    Java and C#. Other languages can use the nested classes, but require
    further work for a more natural integration into the target language.
    We urge folk knowledgeable in the other target languages to step
    forward and help with this effort.
  • Lua: improved metatables and support for %nspace.
  • Go 1.3 support added.
  • Python import improvements including relative imports.
  • Python 3.3 support completed.
  • Perl director support added.
  • C# .NET 2 support is now the minimum. Generated using statements are
    replaced by fully qualified names.
  • Bug fixes and improvements to the following languages:
    C#, Go, Guile, Java, Lua, Perl, PHP, Python, Octave, R, Ruby, Tcl
  • Various other bug fixes and improvements affecting all languages.
  • Note that this release contains some backwards incompatible changes
    in some languages.
  • Full detailed release notes are in the changes file.
    See http://swig.org/release.html.
Posted by William Fulton 2014-03-16

SWIG-2.0.12 released

SWIG-2.0.12 summary:
- This is a maintenance release backporting some fixes from the pending 3.0.0 release.
- Octave 3.8 support added.
- C++11 support for new versions of erase/insert in the STL containers.
- Compilation fixes on some systems for the generated Lua, PHP, Python and R wrappers.

Posted by William Fulton 2014-02-09

SWIG-2.0.11 released

SWIG-2.0.11 summary:
- Minor bug fixes and enhancements mostly in Python, but also
C#, Lua, Ocaml, Octave, Perl, PHP, Python, R, Ruby, Tcl.

Posted by William Fulton 2013-09-15

SWIG-2.0.10 released

SWIG-2.0.10 summary:
- Ruby 1.9 support is now complete.
- Add support for Guile 2.0 and Guile 1.6 support (GH interface) has
been dropped.
- Various small language neutral improvements and fixes.
- Various bug fixes and minor improvements specific to C#, CFFI, D,
Java, Octave, PHP, Python,
- Minor bug fix in ccache-swig.
- Development has moved to Github with Travis continuous integration
testing - patches using https://github.com/swig/swig are welcome.

Posted by William Fulton 2013-05-27

SWIG license explanation

We have recently updated the SWIG legal page to provide clarification on the SWIG license. There has been some confusion as to how the GPL license may or may not affect the code generated by SWIG. Please take a look at the updated SWIG legal page.

We are indebted to the Software Freedom Law Center for all the help given in providing the legal explanations and for originally helping set up the license for version 2.0.

Posted by William Fulton 2013-05-03

SWIG on Github

With the new year we have switched SWIG development to a new development model - Git on Github. The old Subversion history (including the even older CVS history) has been migrated and is now viewable in Github - https://github.com/swig/swig. If you have used SWIG we would really appreciate improvements you have made for incorporation into the mainline SWIG releases. So, feel free to use Github to fork and send your pull requests or patches.... read more

Posted by William Fulton 2013-01-03

SWIG-2.0.9 released

SWIG-2.0.9 summary:
- Improved typemap matching.
- Ruby 1.9 support is much improved.
- Various bug fixes and minor improvements in C#, CFFI, Go, Java,
Modula3, Octave, Perl, Python, R, Ruby, Tcl and in ccache-swig.

Posted by William Fulton 2012-12-16

Summer of Code 2012

GSoC 2012 was SWIG's third Summer of Code, and this year we
received five slots for projects related to SWIG. Out of five,
four students completed the program successfully with valuable
additions to SWIG.

Dmitry Kabak, mentored by Marko Klopcic, worked on SWIG
internals to parse the source code documentation comments within
the C/C++ header files and use them to document the target
language wrapper classes/functions. Dmitry's efforts
complemented the existing support added in GSoC 2008. In
summary, all previously known bugs have been fixed and the
original source code for comment translation was re-factored to
improve performance and maintainability. Parsing of C/C++ source
code has been improved, so that every declaration/definition can
now be commented. Translation of Doxygen tags to Javadoc and
Python docstrings has been improved and corresponding regression
tests have been implemented. The project mentor, Marko Klopcic
has some great ideas for the future GSoC. The work can be tried
out on the branch gsoc2012-doxygen.... read more

Posted by William Fulton 2012-11-07

SWIG-2.0.8 released

SWIG-2.0.8 summary:
- Fix a couple of regressions introduced in 2.0.5 and 2.0.7.
- Improved using declarations and using directives support.
- Minor fixes/enhancements for C#, Java, Octave, Perl and Python.

Posted by William Fulton 2012-08-20

SWIG-2.0.7 released

SWIG-2.0.7 summary:
- Important regression fixes since 2.0.5 for typemaps in general and
in Python.
- Fixes and enhancements for Go, Java, Octave and PHP.

Posted by William Fulton 2012-05-26

SWIG-2.0.6 released

This release fixes a bug in SWIG-2.0.5, please use SWIG-2.0.6 instead.

SWIG-2.0.6 summary:
- Regression fix for Python STL wrappers on some systems.

Posted by William Fulton 2012-04-30

Summer of Code 2012 projects

Google has announced the list of accepted students for the Google Summer of Code program. SWIG was given 5 slots this year the SWIG developer community has chosen the following projects which will be worked on over the next 4 months:

"SWIG's Scilab 6.0 Backend" - Wolfgang Frisch
"Enhance Objective C support" - Swati Sharma
"Get the C backend in shape and into trunk" - Leif Middelschulte
"New module for Javascript" - Neha Narang
"Source Code Documentation Comments" - Dmitry Kabak... read more

Posted by William Fulton 2012-04-24

SWIG-2.0.5 released

SWIG-2.0.5 summary:
- Official Android support added including documentation and examples.
- Improvements involving templates:
1) Various fixes with templates and typedef types.
2) Some template lookup problems fixed.
3) Templated type fixes to use correct typemaps.
- Autodoc documentation generation improvements.
- Python STL container wrappers improvements including addition of
stepped slicing.
- Approximately 70 fixes and minor enhancements for the following
target languages: AllegroCL, C#, D, Go, Java, Lua, Ocaml, Octave,
Perl, PHP, Python, R, Ruby, Tcl, Xml.

Posted by William Fulton 2012-04-19

SWIG in Google Summer of Code 2012

SWIG has been accepted on the Google Summer of Code program for the third time. This is an opportunity for budding open source programmers to get paid for coding. If you are a student and interested please take a look at http://codewrapper.com/wiki/index.php?title=SWIG_GSoC_2012_ideas_page and http://www.google-melange.com/gsoc/homepage/google/gsoc2012 for further details. Applications must be in by 6 April 2012.

Posted by William Fulton 2012-03-24

SWIG-2.0.4 released

SWIG-2.0.4 release summary:
- This is mainly a Python oriented release including support for Python
built-in types for superior performance with the new -builtin option.
The -builtin option is especially suitable for performance-critical
libraries and applications that call wrapped methods repeatedly.
See the python-specific chapter of the SWIG manual for more info.
- Python 3.2 support has also been added and various Python bugs have
been fixed.
- Octave 3.4 support has also been added.
- There are also the usual minor generic improvements, as well as bug
fixes and enhancements for D, Guile, Lua, Octave, Perl and Tcl.

Posted by William Fulton 2011-05-21

SWIG-2.0.3 released

SWIG-2.0.3 has been released. This is a bug fix release including a couple of fixes for regressions in the 2.0 series.

Posted by William Fulton 2011-03-29

SWIG-2.0.2 released

SWIG-2.0.2 has been released and includes the following changes:

- Support for the D language has been added.
- Various bug fixes and minor enhancements.
- Bug fixes particular to the Clisp, C#, Go, MzScheme, Ocaml, PHP, R, Ruby target languages.

Posted by William Fulton 2011-02-20

SWIG-2.0.1 released

SWIG-2.0.1 has been released and includes the following changes:

- Support for the Go language has been added.
- New regular expression (regex) encoder for renaming symbols based on the Perl Compatible Regular Expressions (PCRE) library - http://pcre.org .
- Numerous fixes in reporting file and line numbers in error and warning messages.
- Various bug fixes and improvements in the C#, Lua, Perl, PHP, Ruby and Python language modules.

Posted by William Fulton 2010-10-04

SWIG-2.0.0 released

SWIG-2.0.0 has been released. The following are the main changes:

- License changes, see LICENSE file and http://www.swig.org/legal.html .
- Much better nested class/struct support.
- Much improved template partial specialization and explicit specialization handling.
- Namespace support improved with the 'nspace' feature where namespaces can be automatically translated into Java packages or C# namespaces.
- Improved typemap and symbol table debugging.
- Numerous subtle typemap matching rule changes when using the default (SWIGTYPE) type. These now work much like C++ class template partial specialization matching.
- Other small enhancements for typemaps. Typemap fragments are also now official and documented.
- Warning and error display refinements.
- Wrapping of shared_ptr is improved and documented now.
- Numerous C++ unary scope operator (::) fixes.
- Better support for boolean expressions.
- Various bug fixes and improvements in the Allegrocl, C#, Java, Lua, Octave, PHP, Python, R, Ruby and XML modules.

Posted by William Fulton 2010-06-03

SWIG joins the Software Freedom Conservancy

The Software Freedom Conservancy has just announced that SWIG has been accepted as a member of the Conservancy - http://sfconservancy.org/news/2010/apr/20/swig-joins/ . Being part of the Conservancy and all the good work it does for free and open source software is great news for SWIG. The Conservancy provides many benefits such as a formal legal structure and will help ensure the vitality of SWIG as the Conservancy is able to handle donations to the SWIG project. Please visit our new http://www.swig.org/donate.html donations page.... read more

Posted by William Fulton 2010-04-20

SWIG's Second Summer of code

SWIG is a programmer's tool designed to make it easier to use C and C++ code from other popular programming languages such as Python, Perl, Ruby, PHP, Java, and C#. 2009 was SWIG's second Summer of Code, and this year we mentored five projects related to SWIG. All five students were very active over the summer period and produced some great new features. In no particular order:

Matevz Jekovec has been busy working at the coal face of SWIG to add support for C++0x, the forthcoming C++ standard. Matevz has managed to achieve close to full support for C++0x. The C++0x Wikipaedia article http://en.wikipedia.org/wiki/C%2B%2B0x details the numerous planned new C++0x features and Matevž has put together a SWIG C++0x page (http://swig.svn.sourceforge.net/viewvc/swig/branches/gsoc2009-matevz/Doc/Manual/Cpp0x.html) documenting the new SWIG support for each of these. In summary the enhanced C++ language can now be parsed by SWIG, which in itself is a great step. There is much more than just this though, as most of the information parsed is used to create useful wrappers of C++0x code. The work can be tried out on the C++0x branch http://swig.svn.sourceforge.net/viewvc/swig/branches/gsoc2009-matevz which should be merged fairly soon into a forthcoming release.... read more

Posted by William Fulton 2009-09-23