| Below are the changes for the current release. |
| See the CHANGES file for changes in older releases. |
| See the RELEASENOTES file for a summary of changes in each release. |
| Issue # numbers mentioned below can be found on Github. For more details, add |
| the issue number to the end of the URL: https://github.com/swig/swig/issues/ |
| |
| Version 3.0.12 (27 Jan 2017) |
| ============================ |
| |
| 2017-01-27: wsfulton |
| [C#] #882 Fix missing filename in error messages when there is a problem |
| writing out C# files. |
| |
| 2017-01-27: briancaine |
| [Guile] #744 Fix compilation errors in Guile wrappers - regression |
| introduced in swig-3.0.11. |
| |
| 2017-01-24: andrey-starodubtsev |
| [Java] Apply #704 - director typemap improvements. |
| Memory leak fixes, add support for "directorargout" typemap and |
| add director support to typemaps.i. |
| |
| 2017-01-24: wsfulton |
| Enhance %extend to extend a class with template constructors, eg: |
| |
| struct Foo { |
| %extend { |
| template<typename T> |
| Foo(int a, T b) { |
| ... |
| } |
| } |
| }; |
| %template(Foo) Foo::Foo<double>; |
| |
| 2017-01-22: wsfulton |
| Issue #876 Enhance %extend to extend a class with template methods, eg: |
| |
| struct Foo { |
| %extend { |
| template<typename T> |
| void do_stuff(int a, T b) { |
| ... |
| } |
| } |
| }; |
| %template(do_stuff_inst) Foo::do_stuff<double>; |
| |
| Similarly for static template methods. |
| |
| 2017-01-22: kwwette |
| [Octave] add support for version 4.2 |
| - The Octave API now uses some C++11 features. It is recommended to use |
| the mkoctfile program supplied by Octave to compile the SWIG-generated |
| wrapper code, as mkoctfile will ensure the correct C++ compiler/options |
| are used. Otherwise, the value of `mkoctfile -p CXX` should be parsed |
| for any -std=* flags which might be present. |
| - Octave has dropped support for << and >> operators, so SWIG now |
| ignores them. |
| - The Octave error() function now raises C++ exceptions to propagate |
| Octave errors, so %exception directives may need to be modified. |
| For convenience the SWIG_RETHROW_OCTAVE_EXCEPTIONS macro can be used |
| to rethrow any Octave exceptions for Octave itself to handle, e.g.: |
| |
| try { |
| $action // may call error() |
| } |
| SWIG_RETHROW_OCTAVE_EXCEPTIONS // error() exceptions are rethrown |
| catch(...) { |
| ... // all other exceptions |
| } |
| |
| *** POTENTIAL INCOMPATIBILITY *** |
| |
| 2017-01-16: wkalinin |
| [C#] Fix #733 regression introduced in swig-3.0.9. |
| Missing virtual function override in C# layer when using %import. |
| |
| 2017-01-16: fschlimb |
| Fix #813 template symbol name lookup bug when typedef names are the same but in different |
| namespaces. |
| |
| 2017-01-15: wsfulton |
| [C# D Java] |
| The SWIG library no longer uses the javatype, dtype or cstype typemaps, thereby |
| completely freeing them up for users to use without having to replicate the library |
| code that they previously added. The code previously generated by these typemaps |
| has been replaced by the new %proxycode directive. Their use in the library code |
| was fairly minimal: |
| |
| C# cstype: std_array.i std_map.i std_vector.i |
| D dtype: std_vector.i |
| Java javatype: arrays_java.i |
| |
| 2017-01-14: wsfulton |
| The %extend directive can now optionally support one of the 'class', 'struct' or 'union' |
| keywords before the identifier name, for example: |
| |
| struct X { ... }; |
| %extend struct X { ... } |
| |
| Previously this had to specified as: |
| |
| struct X { ... }; |
| %extend X { ... } |
| |
| 2017-01-13: wsfulton |
| [C# D Java] Add new %proxycode directive which is a macro for %insert("proxycode"). |
| This is a way of adding pure C#/D/Java code into the appropriate proxy class, eg: |
| |
| %extend Proxy2 { |
| %proxycode %{ |
| public int proxycode2(int i) { |
| return i+2; |
| } |
| %} |
| } |
| |
| %inline %{ |
| struct Proxy2 {}; |
| %} |
| |
| There will then be a pure Java/C#/D method called proxycode2 in the Proxy2 class. |
| |
| 2016-12-31: ajrheading1 |
| Issue #860 - Remove use of std::unary_function and std::binary_function |
| which is deprecated in C++11. |
| |
| 2016-12-30: olly |
| [PHP7] Register internal 'swig_runtime_data_type_pointer' constant |
| as "CONST_PERSISTENT" to avoid segmentation fault on module unload. |
| Fixes #859 reported by Timotheus Pokorra. Thanks also to Javier Torres |
| for a minimal reproducer. |