SWIG Changelog

What's new in SWIG 4.2.1

Feb 24, 2024
  • Tcl 9.0 supprt.
  • ctave 9.0 supprt.
  • Imprvements wrapping friend functins.
  • Variadic templated functins within a template supprt.
  • Type deductin enhancements.
  • Stability and regressin fixes.

New in SWIG 4.2.0 (Dec 31, 2023)

  • 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.

New in SWIG 4.1.1 (Aug 22, 2023)

  • 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.

New in SWIG 4.0.2 (Jun 8, 2020)

  • 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 nterface files.

New in SWIG 4.0.1 (Jun 8, 2020)

  • 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

New in SWIG 4.0.0 (Apr 30, 2019)

  • 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.

New in SWIG 4.0.0 Beta 1 (Apr 16, 2019)

  • 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.

New in SWIG 3.0.12 (Mar 16, 2017)

  • Add support for Octave-4.2.
  • Enhance %extend to support template functions.
  • Language specific enhancements and fixes for C#, D, Guile, Java, PHP7.

New in SWIG 3.0.11 (Mar 16, 2017)

  • 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.

New in SWIG 3.0.10 (Sep 30, 2016)

  • Regression fixes for smart pointers and importing Python modules.

New in SWIG 3.0.9 (Sep 30, 2016)

  • 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.

New in SWIG 3.0.8 (Sep 30, 2016)

  • 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.

New in SWIG 3.0.7 (Sep 30, 2016)

  • Add support for Octave-4.0.0.
  • Remove potential Android security exploit in generated Java classes.
  • Minor new features and bug fixes.

New in SWIG 3.0.6 (Sep 30, 2016)

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

New in SWIG 3.0.5 (Sep 30, 2016)

  • Added support for Scilab.
  • Important Python regression fix when wrapping C++ default arguments.
  • Minor improvements for C#, Go, Octave, PHP and Python.

New in SWIG 3.0.4 (Jan 15, 2015)

  • [PHP] Fix segfault in director upcall check when using PHP built with ZTS enabled.
  • [Python] Fix #294 #296 - Regression introduced in SWIG-3.0.3 when wrapping functions with default arguments. Invalid or missing default arguments were sometimes being generated into the python layer.
  • Allow C++11 "explicit constexpr". Also handle "constexpr explicit" and "constexpr static".
  • When reporting an error for a construct which hasn't been terminated when the end of the file is reached, report it at the start line rather than "EOF" as then tools like editors and IDEs will take you to a generally more useful place for fixing the problem.
  • Improve error messages for a few cases which previously gave the one of the cryptic catch-all errors "Syntax error in input".
  • Provide -cppext as a general command line option for setting the extension used for generated C++ files (previously it was specific to the PHP backend). Deprecate the equivalent -suffix option provided by the Ocaml backend, but continue to support that for now.

New in SWIG 3.0.3 (Jan 8, 2015)

  • 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.

New in SWIG 3.0.2 (Jun 5, 2014)

  • Bug fix during install and a couple of other minor changes.

New in SWIG 3.0.1 (May 28, 2014)

  • [Python] Python 3 byte string output: use errors="surrogateescape" if available on the version of Python that's in use. This allows obtaining the original byte string (and potentially trying a fallback encoding) if the bytes can't be decoded as UTF-8.
  • Previously, a UnicodeDecodeError would be raised with no way to treat the data as bytes or try another codec.
  • Bug #175 - Restore %extend to work for unnamed nested structures by using a C symbol comprising the outer structure name and unnamed variable instance name.
  • Add #166 - 'make check' now works out of source. This required te examples to build out of source. The main languages have been tested - C#, Go, Guile, Java, Javascript, Lua, Octave, Perl, PHP, Python, Ruby and Tcl.
  • Javascript support added, see Javascript chapter in the documentation.
  • [PHP] The generated __isset() method now returns true for read-only properties.
  • [Go] Fix go ./configure parsing of gccgo --version, and goruntime.swg typo in __GNUC_PATCHLEVEL__ (SF Bug #1298)
  • Fix {python|perl5|ruby|tcl}/java examples
  • In Lib/gcj/cni.i, for compatibility with newer gcj versions:
  • remove JvAllocObject() which gcj no longer defines, from gcj Changelog
  • * gcj/cni.h (JvAllocObject): Remove these obsolete, undocumented CNI calls.
  • change JvCreateJavaVM() argument from void* to JvVMInitArgs*, from gcj Changelog:
  • PR libgcj/16923
  • ...
  • (JvCreateJavaVM): Declare vm_args as JvVMInitArgs* rather than void*.
  • POTENTIAL INCOMPATIBILITY
  • SF Bug #1366 - Remove duplicate declarations of strtoimax and strtoumax in inttypes.i
  • [Java C#] Enums which have been ignored via %ignore and are subsequently used are handled slightly differently. Type wrapper classes are now generated which are effectively a wrapper of an empty enum. Previously in Java uncompilable code was generated and in C# an int was used.
  • Fix regression in 3.0.0 where legal code following an operator

New in SWIG 3.0.0 (Mar 25, 2014)

  • wsfulton:
  • C++11 support initially developed as C++0x support by Matevz Jekovec as a Google Summer of Code project has been further extended. The C++11 support is comprehensive, but by no means completeor without limitations. Full details for each new feature in C++11 is covered in the CPlusPlus11.html chapter in the documentation which is included in SWIG and also available online
  • v-for-vandal:
  • [Lua] Numerous Lua improvements:
  • %nspace support has been added. Namespaces are mapped to tables in the module, with the same name as the C++ namespace.
  • Inheritance is now handled differently. Each class metatable keeps a list of class bases instead of merging all members of all bases into the derived class.
  • The new metatables result in differences in accessing class members.
  • The special class metatable member ".constructor" was removed. Now SWIG generates the proxy function by itself and assigns it directly to the class table "__call" method.
  • eLua should also now support inheritance.
  • 'const' subtable in eLua is considered deprecated.
  • Changes in behaviour:
  • You can no longer assign to non-existing class members in classes without a __setitem__ method. It will cause a Lua error.
  • You can no longer iterate over a module table and copy everything into the global namespace. Actually, this was never the case, but it is now explicitly prohibited.
  • Now changing a base class will immediately affect all derived classes.
  • There might be some issues with inheritance. Although the bases iteration scheme is the same as was used for merging base classes into derived one, some unknown issues may arise.
  • The old metatable behaviour can be restored by using the -no-old-metatable-bindings option.
  • wsfulton:
  • [Python] Change in default behaviour wrapping C++ bool. Only a Python True or False will now work for C++ bool parameters. This fixes overloading bool with other types. Python 2.3 minimum is now required for wrapping bool.
  • Fix SF Bug #1363 - Problem with method overloading when some methods are added by %extend and others are real methods and using template default parameters with smart pointers. This is noticeable as a regression since 2.0.12 when using the default smart pointer handling for some languages when the smart pointer wraps std::map and other STL containers.
  • [Python] SF Patch #346 from Jens Krueger. Correct exception thrown attempting to access a non-existent C/C++ global variable on the 'cvar' object. The exception thrown used to be a NameError. However, as this access is via a primary, an AttributeError is more correct and so the exception thrown now is an AttributeError.
  • [Python] Patch #143 Fix type shown when using type() to include the module and package name when using -builtin.
  • [Python] SF patch #347 Fix missing argument count checking with -modern. Fixes regression introduced when builtin changes were introduced in SWIG-2.0.3.
  • [PHP] Fix warning suppression using %warnfilter for PHP reserved class names.
  • [Lua] Add keyword warnings for Lua keywords and Basic Functions.
  • olly:
  • Wallkw now includes keywords for all languages with keyword warnings (previously Go and R were missing).
  • [PHP] Update the lists of PHP keywords with new ones from PHP 5.4
  • and newer (and some missing ones from 5.3). Reserved PHP constants names are now checked against enum values and constants, instead of against function and method names. Built-in PHP function names no longer match methods added by %extend. Functions and methods named '__sleep', '__wakeup', 'not', 'parent', or 'virtual' are no longer needlessly renamed.
  • wsfulton:
  • Fix the %$ismember %rename predicates to also apply to members added via %extend.
  • Add %$isextendmember for %rename of members added via %extend. This can be used to distinguish between normal class/struct members and %extend members. For example '%$ismember, %$not %$isextendmember' will now identify just class/struct members.
  • hfalcic:
  • [Python] Patch #137 - fix crashes/exceptions in exception handling in Python 3.3
  • wsfulton:
  • [Java] Add support for the cdata library
  • vkalinin:
  • Nested class support added. This primarily allows SWIG to properly parse nested classes and keep the nested class information in the parse tree. Java and C# have utilised this information wrapping the C++ nested classes as Java/C# nested classes. The remaining target languages ignore nested classes as in previous versions. Help is needed by users of these remaining languages to design how C++ nested classes can be best wrapped. Please talk to us on the swig-devel mailing list if you think you can help.
  • Previously, there was limited nested class support. Nested classes were treated as opaque pointers. However, the "nestedworkaround" feature provided a way to wrap a nested class as if it was a global class. This feature no longer exists and is replaced by the new "flatnested" feature. This effectively does the same thing with less manual code to be written. Please see the 'Nested classes' section in the documentation in SWIGPlus.html if you were previously using this feature.
  • SWIG now parses the contents of nested classes where previously it did not. You may find that you will need to make adjustments to your interface file as effectively extra code is being wrapped.
  • gjanssens:
  • [Guile] Patch #133. Make scm to string conversion work with non-ascii strings.
  • Guile 2 has a completely rewritten string implementation. SWIG made some assumptions that are no longer valid as to the internals of guile's string representation.
  • wsfulton:
  • [C#] Add new swigtype_inout.i library containing SWIGTYPE *& OUTPUT typemaps.
  • ianlancetaylor:
  • [Go] Add %go_import directive.
  • [Go] Add support for Go 1.3, not yet released.
  • wsfulton:
  • Director exceptions (Swig::DirectorException) now derive from std::exception and hence provide the what() method. In Python and Ruby, this replaces the now deprecated DirectorException::getMessage() method.
  • diorcety:
  • Patch #112 - Fix symbol resolution involving scopes that have multiple levels of typedefs - fixes some template resolutions as well as some typemap searches.
  • wsfulton:
  • Fix and document the naturalvar feature override behaviour - the naturalvar feature attached to a variable name has precedence over the naturalvar feature attached to the variable's type. The overriding was not working when turning the feature off on the variable's name.
  • Fix so that any use of the naturalvar feature will override the global setting. Previously when set globally by -naturalvar or %module(naturalvar=1), use of the naturalvar feature was not always honoured.
  • ianlancetaylor:
  • [Go] Fix bug that broke using directors from a thread not created by Go.
  • ptomulik:
  • [Python] SF Bug #1297
  • Resolve several issues related to python imports.
  • For example, it's now possible to import modules having the same module names, but belonging in different packages.
  • From the user's viewpoint, this patch gives a little bit more control on import statements generated by SWIG. The user may choose to use relative or absolute imports.
  • Some details:
  • we (still) generate import statements in the form 'import a.b.c' which
  • corresponds to absolute imports in python3 and (the only available) ambiguous one in python2.
  • added -relativeimport option to use explicit relative import syntax (python3),
  • The "Python Packages" section in the documentation discusses how to work with importing packages including the new -relativeimport command line option.
  • vadz:
  • [Octave, Perl, Python, R, Ruby, Tcl] Change the length of strings created from fixed-size char buffers in C code.
  • This is a potential backwards compatibility break: a "char buf[5]" containing "ho\0la" was returned as a string of length 5 before, but is returned as a string of length 2 now. Also, it was possible to assign a (non-NUL-terminated) string "hello" to such a buffer before but now this fails and only "helo" can fit.
  • Apply "char FIXSIZE[ANY]" typemaps to explicitly choose the old behaviour.
  • talby:
  • [Perl] Add support for directors.
  • ianlancetaylor:
  • [Go] Don't require that Go environment variables be set when running examples or testsuite when using Go 1 or later.
  • ianlancetaylor:
  • [Go] Remove -longsize option (for backward compatibility, ignore it if seen).
  • [Go] Add -go-pkgpath option
  • [Go] Update for Go 1.2 release. Add support for linking SWIG code directly into executable, rather than using a shared library.
  • [Go] Add SWIG source file name as comments in generated files. This can be used by Go documentation tools.
  • jleveque:
  • [Lua] Fix typo (wchar instead of wchar_t) which made wchar.i for Lua useless.
  • vmiklos:
  • [PHP] PHP's peculiar call-time pass-by-reference feature was deprecated in PHP 5.3 and removed in PHP 5.4, so update the REF typemaps in phppointers.i to specify pass-by-reference in the function definition. Examples/php/pointer has been updated accordingly.
  • olly:
  • [PHP] The usage of $input in PHP directorout typemaps has been changed to be consistent with other languages. The typemaps provided by SWIG have been updated accordingly, but if you have written your own directorout typemaps, you'll need to update $input to &$input (or make equivalent changes).
  • vadz:
  • [C#, Java, Python] Add std_auto_ptr.i defining typemaps for returning std::auto_ptr.
  • wsfulton - [C#] Apply patch #79 from Brant Kyser:
  • - Remove using directives from the generated C# code and fully qualify the use of all .NET framework types in order to minimize potential name collisions from input files defining types, namespace, etc with the same name as .NET framework members.
  • Globally qualify the use of .NET framework types in the System namespace
  • Remove .NET 1.1 support, .NET 2 is the minimum for the C# module
  • [Java] Fix some corner cases for the $packagepath/$javaclassname special variable substitution.
  • [Java] Apply patch #91 from Marvin Greenberg - Add director:except feature for improved exception handling in director methods for Java.
  • vadz:
  • Allow using \l, \L, \u, \U and \E in the substitution part of %(regex:/pattern/subst/) inside %rename to change the case of the text being replaced.
  • wsfulton:
  • [CFFI] Apply #96 - superclass not lispify
  • Merge in C++11 support from the gsoc2009-matevz branch where Matevz Jekovec first started the C++0x additions. Documentation of the C++11 features supported is in a new Chapter of the documentation, "SWIG and C++11" in Doc/Manual/CPlusPlus11.html.
  • Fix %naturalvar not having any affect on templated classes instantiated with an enum as the template parameter type. Problem reported by Vadim Zeitlin.
  • [Java] Fix a memory leak for the java char **STRING_ARRAY typemaps.

New in SWIG 2.0.12 (Feb 14, 2014)

  • 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.

New in SWIG 2.0.11 (Sep 23, 2013)

  • Minor bug fixes and enhancements mostly in Python, but also C#, Lua, Ocaml, Octave, Perl, PHP, Python, R, Ruby, Tcl.

New in SWIG 2.0.10 (Jun 5, 2013)

  • Fix Python 3 inconsistency when negative numbers are passed where a parameter expects an unsigned C type. An OverFlow error is now consistently thrown instead of a TypeError.
  • SVN Patch ticket #338 - fixes to %attribute macros for template usage with %arg.
  • Fix ccache-swig internal error bug due to premature file cleanup.
  • Fixes SF bug 1319 which shows up as a failure in the ccache tests on Debian 64 bit Wheezy, possibly because ENABLE_ZLIB is defined.
  • This is a corner case which will be hit when the maximum number of files in the cache is set to be quite low (-F option), resulting in a cache miss.
  • Fix bugs in Octave module loading:
  • Fix a memory leak in setting of global variables install functions only once, to speed up module loads
  • Updates in guile module:
  • Add support for guile 2.0
  • Drop support for guile 1.6
  • Drop support for generating wrappers using guile's gh interface.
  • All generated wrappers will use the scm interface from now on.
  • Deprecate -gh and -scm options. They are no longer needed.
  • A warning will be issued when these options are still used.
  • Fix all tests and examples to have a successful travis test

New in SWIG 2.0.9 (Dec 17, 2012)

  • 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.

New in SWIG 2.0.8 (Aug 21, 2012)

  • 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.

New in SWIG 2.0.5 (Apr 20, 2012)

  • Official Android support added including documentation and examples.
  • Improvements involving templates:
  • Various fixes with templates and typedef types.
  • Some template lookup problems fixed.
  • 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.

New in SWIG 2.0.4 (May 23, 2011)

  • 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.

New in SWIG 2.0.3 (May 23, 2011)

  • A bug fix release including a couple of fixes for regressions in the 2.0 series.

New in SWIG 2.0.2 (May 23, 2011)

  • 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.

New in SWIG 2.0.1 (May 23, 2011)

  • 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. - 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.

New in SWIG 2.0.0 (May 23, 2011)

  • 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.

New in SWIG 1.3.40 (Dec 1, 2009)

  • Framework (Java / .NET)
  • Both major platforms are supported.
  • Persistence Handling
  • .NET: NHibernate
  • Java: Hibernate, JPA
  • Code Generation (Java / .NET)
  • Add your own cartridges.
  • XMI 1.1 and 1.2 UML Model Import
  • Use tools like ArgoUml, Enterprise Architect, etc.
  • Annotation / Generation GUI
  • A GUI to annotate the clasSWIG now supports directors for PHP.
  • PHP support improved in general.
  • Octave 3.2 support added.
  • Various bug fixes/enhancements for Allegrocl, C#, Java, Octave, Perl,
  • Python, Ruby and Tcl.
  • Other generic fixes and minor new features.
  • s diagram.

New in SWIG 1.3.39 (Mar 23, 2009)

  • Some new small feature enhancements.
  • Improved C# std::vector wrappers.
  • Bug fixes: mainly Python, but also Perl, MzScheme, CFFI, Allegrocl and Ruby

New in SWIG 1.3.37 (Jan 14, 2009)

  • Python 3 support added
  • SWIG now ships with a version of ccache that can be used with SWIG.
  • This enables the files generated by SWIG to be cached so that repeated use of SWIG on unchanged input files speeds up builds quite considerably.
  • PHP 4 support removed and PHP support improved in general
  • Improved C# array support
  • Numerous Allegro CL improvements
  • Bug fixes/enhancements for Python, PHP, Java, C#, Chicken, Allegro CL, CFFI, Ruby, Tcl, Perl, R, Lua.
  • Other minor generic bug fixes and enhancements