123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494 |
- This file contains a brief overview of the changes made in each release.
- A detailed description of changes are available in the CHANGES.current
- and CHANGES files.
- Release Notes
- =============
- Detailed release notes are available with the release and are also
- published on the SWIG web site at https://swig.org/release.html.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- SWIG-3.0.10 summary:
- - Regression fixes for smart pointers and importing Python modules.
- SWIG-3.0.9 summary:
- - 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.
- 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.
- SWIG-3.0.7 summary:
- - Add support for Octave-4.0.0.
- - Remove potential Android security exploit in generated Java classes.
- - Minor new features and bug fixes.
- SWIG-3.0.6 summary:
- - Stability and regression fixes.
- - Fixed parsing of C++ corner cases.
- - Language improvements and bug fixes for C#, Go, Java, Lua, Python, R.
- SWIG-3.0.5 summary:
- - Added support for Scilab.
- - Important Python regression fix when wrapping C++ default arguments.
- - Minor improvements for C#, Go, Octave, PHP and Python.
- SWIG-3.0.4 summary:
- - Python regression fix when wrapping C++ default arguments.
- - Improved error messages.
- SWIG-3.0.3 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.
- SWIG-3.0.2 summary:
- - Bug fix during install and a couple of other minor changes.
- SWIG-3.0.1 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.
- SWIG-3.0.0 summary:
- - This is a major new release focusing primarily on C++ improvements.
- - C++11 support added. Please see documentation for details of supported
- features: https://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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- SWIG-2.0.6 summary:
- - Regression fix for Python STL wrappers on some systems.
- 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.
- SWIG-2.0.4 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.
- SWIG-2.0.3 summary:
- - A bug fix release including a couple of fixes for regressions in the
- 2.0 series.
- SWIG-2.0.2 summary:
- - 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.
- SWIG-2.0.1 summary:
- - 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.
- SWIG-2.0.0 summary:
- - License changes, see LICENSE file and https://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.
- SWIG-1.3.40 summary:
- - SWIG 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.
- SWIG-1.3.39 summary:
- - Some new small feature enhancements.
- - Improved C# std::vector wrappers.
- - Bug fixes: mainly Python, but also Perl, MzScheme, CFFI, Allegrocl
- and Ruby
- SWIG-1.3.38 summary:
- - Output directory regression fix and other minor bug fixes
- SWIG-1.3.37 summary:
- - 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
- SWIG-1.3.36 summary:
- - Enhancement to directors to wrap all protected members
- - Optimisation feature for objects returned by value
- - A few bugs fixes in the PHP, Java, Ruby, R, C#, Python, Lua and
- Perl modules
- - Other minor generic bug fixes
- SWIG-1.3.35 summary:
- - Octave language module added
- - Bug fixes in Python, Lua, Java, C#, Perl modules
- - A few other generic bugs and runtime assertions fixed
- SWIG-1.3.34 summary:
- - shared_ptr support for Python
- - Support for latest R - version 2.6
- - Various minor improvements/bug fixes for R, Lua, Python, Java, C#
- - A few other generic bug fixes, mainly for templates and using statements
- SWIG-1.3.33 summary:
- - Fix regression for Perl where C++ wrappers would not compile
- - Fix regression parsing macros
- SWIG-1.3.32 summary:
- - shared_ptr support for Java and C#
- - Enhanced STL support for Ruby
- - Windows support for R
- - Fixed long-standing memory leak in PHP Module
- - Numerous fixes and minor enhancements for Allegrocl, C#, cffi, Chicken, Guile,
- Java, Lua, Ocaml, Perl, PHP, Python, Ruby, Tcl.
- - Improved warning support
- SWIG-1.3.31 summary:
- - Python modern classes regression fix
- SWIG-1.3.30 summary:
- - Python-2.5 support
- - New language module: R
- - Director support added for C#
- - Numerous director fixes and improvements
- - Improved mingw/msys support
- - Better constants support in Guile and chicken modules
- - Support for generating PHP5 class wrappers
- - Important Java premature garbage collection fix
- - Minor improvements/fixes in cffi, php, allegrocl, perl, chicken, lua, ruby,
- ocaml, python, java, c# and guile language modules
- - Many many other bug fixes
- SWIG-1.3.29 summary:
- - Numerous important bug fixes
- - Few minor new features
- - Some performance improvements in generated code for Python
- 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.
- - Tcl support for std::wstring.
- - 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.
- SWIG-1.3.27 summary:
- - Fix bug in anonymous typedef structures which was leading to strange behaviour
- SWIG-1.3.26 summary:
- - New language modules: Lua, CLISP and Common Lisp with UFFI.
- - Big overhaul to the PHP module.
- - Change to the way 'extern' is handled.
- - Minor bug fixes specific to C#, Java, Modula3, Ocaml, Allegro CL,
- XML, Lisp s-expressions, Tcl, Ruby and Python modules.
- - Other minor improvements and bug fixes.
- SWIG-1.3.25 summary:
- - Improved runtime type system. Speed of module loading improved in
- modules with lots of types. SWIG_RUNTIME_VERSION has been increased
- from 1 to 2, but the API is exactly the same; only internal changes
- were made.
- - The languages that use the runtime type system now support external
- access to the runtime type system.
- - Various improvements with typemaps and template handling.
- - Fewer warnings in generated code.
- - Improved colour documentation.
- - Many C# module improvements (exception handling, prevention of early
- garbage collection, C# attributes support added, more flexible type
- marshalling/asymmetric types.)
- - Minor improvements and bug fixes specific to the C#, Java, TCL, Guile,
- Chicken, MzScheme, Perl, Php, Python, Ruby and Ocaml modules).
- - Various other bug fixes and memory leak fixes.
- SWIG-1.3.24 summary:
- - Improved enum handling
- - More runtime library options
- - More bugs fixes for templates and template default arguments, directors
- and other areas.
- - Better smart pointer support, including data members, static members
- and %extend.
- SWIG-1.3.23 summary:
- - Improved support for callbacks
- - Python docstring support and better error handling
- - C++ default argument support for Java and C# added.
- - Improved c++ default argument support for the scripting languages plus
- option to use original (compact) default arguments.
- - %feature and %ignore/%rename bug fixes and mods - they might need default
- arguments specified to maintain compatible behaviour when using the new
- default arguments wrapping.
- - Runtime library changes: Runtime code can now exist in more than one module
- and so need not be compiled into just one module
- - Further improved support for templates and namespaces
- - Overloaded templated function support added
- - More powerful default typemaps (mixed default typemaps)
- - Some important %extend and director code bug fixes
- - Guile now defaults to using SCM API. The old interface can be obtained by
- the -gh option.
- - Various minor improvements and bug fixes for C#, Chicken, Guile, Java,
- MzScheme, Perl, Python and Ruby
- - Improved dependencies generation for constructing Makefiles.
- SWIG-1.3.22 summary:
- - Improved exception handling and translation of C errors or C++
- exceptions into target language exceptions.
- - Improved enum support, mapping to built-in Java 1.5 enums and C#
- enums or the typesafe enum pattern for these two languages.
- - Python - much better STL support and support for std::wstring,
- wchar_t and FILE *.
- - Initial support for Modula3 and Allegro CL.
- - 64 bit TCL support.
- - Java and C#'s proxy classes are now nearly 100% generated from
- typemaps and/or features for finer control on the generated code.
- - SWIG runtime library support deprecation.
- - Improved documentation. SWIG now additionally provides documentation
- in the form of a single HTML page as well as a pdf document.
- - Enhanced C++ friend declaration support.
- - Better support for reference counted classes.
- - Various %fragment improvements.
- - RPM fixes.
- - Various minor improvements and bug fixes for C#, Chicken, Guile, Java,
- MzScheme, Perl, Php, Python, Ruby and XML.
|