Menu

SWIG / News: Recent posts

SWIG-4.3.1 released

  • Small number of regression fixes for Python and Java.
  • Corner case operator precedence bug fix affecting type deduction.
  • Octave 10 compilation errors fix.
Posted by William Fulton 2025-04-15

SWIG-4.3.0 released

SWIG-4.3.0 summary:

  • Add experimental support for C as a target language.
  • MzScheme/Racket is deprecated and planned for removal in SWIG-4.4.
  • The distributed Windows binary is now a 64-bit executable.
  • Add some missing use of move semantics for performance improvements.
  • Enhanced handling of namespaces when using the nspace feature.
  • STL wrapper enhancements for std::unique_ptr, std::string_view,
    std::filesystem.
  • Various enum and enum class wrapping improvements.
  • Other C++ handling improvements around templates, friends, C++11
    trailing return types and C++17 fold expressions.
  • Many parser improvements for both C and C++, especially expressions.
  • Improvements to handling of string and character literals.
  • Minor preprocessor fixes.
  • Python: Stricter stable ABI conformance, add support for python-3.13.
  • C#: Add support for converting Doxygen comments into XML C# comments.
  • Various other target language specific enhancements and updates for
    Java, Javascript, Lua, MzScheme, Ocaml, Octave, Perl, Python, R, Ruby.
Posted by William Fulton 2024-10-20

SWIG-4.2.1 released

SWIG-4.2.1 is primarily a stability and regression fix release, but also includes:

  • Tcl 9.0 support.
  • Octave 9.0 support.
  • Improvements wrapping friend functions.
  • Variadic templated functions within a template support.
  • Type deduction enhancements.
Posted by William Fulton 2024-02-24

SWIG-4.2.0 released

SWIG-4.2.0 summary:

  • Various template wrapping improvements: template template parameters,
    variadic templates, partially specialized templates, const template
    parameters and improved error checking instantiating templates.
  • Improved decltype() support for expressions.
  • C++14 auto without trailing return type and C++11 auto variables.
  • Numerous C++ using declarations improvements.
  • Numerous fixes for constructors, destructors and assignment operators:
    implicit, default and deleted and related non-assignable variable
    wrappers.
  • STL: std::array and std::map improvements, std::string_view support
    added.
  • Various C preprocessor improvements.
  • Various issues fixed to do with architecture specific long type.
  • Various Doxygen improvements.
  • D1/Tango support removed. D2/Phobos is now the supported D version
    and SWIG now generates code which works with recent D2 releases.
  • New Javascript generator targeting Node.js binary stable ABI Node-API.
  • Octave 8.1 support added.
  • PHP7 support removed, PHP8 is now the supported PHP version.
  • Python STL container wrappers now use the Python Iterator Protocol.
  • Python stable ABI support added.
  • Python 3.12 support added.
  • Ruby 3.2 and 3.3 support.
  • Scilab 2023.* support added.
  • Various minor enhancements for C#, Go, Guile, Javascript, Lua, Ocaml,
    Perl, PHP, R, Racket, Ruby, Scilab and Tcl.
  • A number of deprecated features have been removed.
Posted by William Fulton 2023-12-31

SWIG-4.1.1 released

SWIG-4.1.1 summary:

  • Couple of stability fixes.
  • Stability fix in ccache-swig when calculating hashes of inputs.
  • Some template handling improvements.
  • R - minor fixes plus deprecation for rtypecheck typemaps being optional.
Posted by William Fulton 2022-11-30

SWIG-4.1.0 released

SWIG-4.1.0 summary:

  • Add Javascript Node v12-v18 support, remove support prior to v6.
  • Octave 6.0 to 6.4 support added.
  • Add PHP 8 support.
  • PHP wrapping is now done entirely via PHP's C API - no more .php wrapper.
  • Perl 5.8.0 is now the oldest version SWIG supports.
  • Python 3.3 is now the oldest Python 3 version SWIG supports.
  • Python 3.9-3.11 support added.
  • Various memory leak fixes in Python generated code.
  • Scilab 5.5-6.1 support improved.
  • Many improvements for each and every target language.
  • Various preprocessor expression handling improvements.
  • Improved C99, C++11, C++14, C++17 support. Start adding C++20 standard.
  • Make SWIG much more move semantics friendly.
  • Add C++ std::unique_ptr support.
  • Few minor C++ template handling improvements.
  • Various C++ using declaration fixes.
  • Few fixes for handling Doxygen comments.
  • GitHub Actions is now used instead of Travis CI for continuous integration.
  • Add building SWIG using CMake as a secondary build system.
  • Update optional SWIG build dependency for regex support from PCRE to PCRE2.
Posted by William Fulton 2022-10-24

SWIG-4.0.2 released

SWIG-4.0.2 summary:

  • A few fixes around doxygen comment handling.
  • Ruby 2.7 support added.
  • Various minor improvements to C#, D, Java, OCaml, Octave, Python, R, Ruby.
  • Considerable performance improvement running SWIG on large interface files.
Posted by William Fulton 2020-06-08

SWIG-4.0.1 released

SWIG-4.0.1 summary:

  • SWIG now cleans up on error by removing all generated files.
  • Add Python 3.8 support.
  • Python Sphinx compatibility added for Doxygen comments.
  • Some minor regressions introduced in 4.0.0 were fixed.
  • Fix some C++17 compatibility problems in Python and Ruby generated code.
  • Minor improvements/fixes for C#, Java, Javascript, Lua, MzScheme, Ocaml, Octave and Python.
Posted by William Fulton 2019-08-21

SWIG-4.0.0 released

SWIG-4.0.0 summary

  • Support for Doxygen documentation comments which are parsed and converted into JavaDoc or PyDoc comments.
  • STL wrappers improved for C#, Java and Ruby.
  • C++11 STL containers added for Java, Python and Ruby.
  • Improved support for parsing C++11 and C++14 code.
  • Various fixes for shared_ptr.
  • Various C preprocessor corner case fixes.
  • Corner case fixes for member function pointers.
  • Python module overhaul by simplifying the generated code and turning most optimizations on by default.
  • %template improvements wrt scoping to align with C++ explicit template instantiations.
  • Added support for a command-line options file (sometimes called a response file).
  • Numerous enhancements and fixes for all supported target languages.
  • SWIG now classifies the status of target languages into either 'Experimental' or 'Supported' to indicate the expected maturity level.
  • Support for CFFI, Allegrocl, Chicken, CLISP, S-EXP, UFFI, Pike, Modula3 has been removed.
  • Octave 4.4-5.1 support added.
  • PHP5 support removed, PHP7 is now the supported PHP version.
  • Minimum Python version required is now 2.7, 3.2-3.7 are the only other versions supported.
  • Added support for Javascript NodeJS versions 2-10.
  • OCaml support is much improved and updated, minimum OCaml version required is now 3.12.0.
Posted by William Fulton 2019-04-28

SWIG-3.0.12 released

SWIG-3.0.12 summary:

  • Add support for Octave-4.2.
  • Enhance %extend to support template functions.
  • Language specific enhancements and fixes for C#, D, Guile, Java, PHP7.
Posted by William Fulton 2017-01-28

SWIG-3.0.11 released

SWIG-3.0.11 summary:
- PHP 7 support added.
- C++11 alias templates and type aliasing support added.
- Minor fixes and enhancements for C# Go Guile Java Javascript Octave PHP Python R Ruby Scilab XML.

Posted by William Fulton 2016-12-29

SWIG-3.0.10 released

This release fixes a couple of important regressions in SWIG-3.0.9 for smart pointers and importing Python modules.

Posted by William Fulton 2016-06-12

SWIG-3.0.9 released

Summary of changes in SWIG-3.0.9

  • Add support for Python's implicit namespace packages.
  • Fixes to support Go 1.6.
  • C++11 std::array support added for Java.
  • Improved C++ multiple inheritance support for Java/C# wrappers.
  • Various other minor fixes and improvements for C#, D, Go, Java, Javascript, Lua, Python, R, Ruby, Scilab.
Posted by William Fulton 2016-05-29

SWIG-3.0.8 released

SWIG-3.0.8 summary:
- pdf documentation enhancements.
- Various Python 3.5 issues fixed.
- std::array support added for Ruby and Python.
- shared_ptr support added for Ruby.
- Minor improvements for CFFI, Go, Java, Perl, Python, Ruby.

Posted by William Fulton 2015-12-31

SWIG-3.0.7 released

SWIG-3.0.7 release summary:
- Add support for Octave-4.0.0.
- Remove potential Android security exploit in generated Java classes.
- Minor new features and bug fixes.

Posted by William Fulton 2015-08-03

SWIG-3.0.6 released

SWIG-3.0.6 is mostly a stability release.

Release summary:
- Stability and regression fixes.
- Fixed parsing of C++ corner cases.
- Language improvements and bug fixes for C#, Go, Java, Lua, Python, R.

Posted by William Fulton 2015-07-05

Defending the GPL

SWIG is a proud member of the Software Freedom Conservancy who has recently announced that they will be supporting a lawsuit to defend an alleged violation of the GNU General Public License (GPL). Ensuring this software license, the same one that protects the SWIG source code, is not abused and is actively defended in a court of law is important for everyone using the license. ... read more

Posted by William Fulton 2015-03-07

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 2015-02-01

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
Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.