| 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 4.0.1 (21 Aug 2019) |
| =========================== |
| |
| 2019-08-20: TekuConcept |
| [Javascript] #1535 Add %native support to Javascript. |
| |
| 2019-08-20: bkotzz |
| [Java] #1616 Add SWIG_JavaIllegalStateException to support throwing |
| java.lang.IllegalStateException from JNI code. |
| |
| 2019-08-19: sjml |
| [Lua] #1596 tostring output changes to show the underlying C/C++ pointer. |
| |
| 2019-08-08: rokups |
| [C#, Java] #1601 Fix invalid code generated for "%constant enum EnumType. |
| |
| 2019-08-07: wsfulton |
| [Python] Fix method overloading of methods that take STL containers of different |
| types. The following usage (using std::vector) would fail when using -builtin: |
| |
| %include <std_string.i> |
| %include <std_vector.i> |
| |
| %inline %{ |
| struct X {}; |
| %} |
| |
| %template(VectorX) std::vector<X>; |
| %template(VectorInt) std::vector<int>; |
| |
| %inline %{ |
| using namespace std; |
| string VectorOverload(vector<X> v); |
| string VectorOverload(vector<int> v); |
| %} |
| |
| The following would incorrectly fail: |
| |
| s = VectorOverload([1, 2, 3]) |
| |
| With: |
| |
| Traceback (most recent call last): |
| File "runme3.py", line 20, in <module> |
| ret = VectorOverload([1, 2, 3]) |
| TypeError: Wrong number or type of arguments for overloaded function 'VectorOverload'. |
| Possible C/C++ prototypes are: |
| VectorOverload(std::vector< Number,std::allocator< Number > >) |
| VectorOverload(std::vector< int,std::allocator< int > >) |
| |
| The problem was due to some error handling that was not cleared during typehecking. |
| In this case an error was not cleared when the elements in the list failed the |
| typecheck for converting to X. Only occurs in Python 3+. |
| |
| In some combinations of overloaded methods, the following type of error message would |
| occur: |
| |
| RuntimeError: in sequence element 0 |
| |
| The above exception was the direct cause of the following exception: |
| |
| Traceback (most recent call last): |
| File "runme3.py", line 23, in <module> |
| check(VectorOverload(v), "vector<X>") |
| SystemError: <built-in function VectorOverload> returned a result with an error set |
| |
| 2019-08-01: wsfulton |
| #1602 Fix regression in 4.0.0 where a template function containing a parameter |
| with the same name as the function name led to the parameter name used in the |
| target language being incorrectly modified. |
| |
| 2019-07-29: wsfulton |
| Remove all generated files on error. Previously generated files were not removed, |
| potentially breaking Makefiles using file dependencies, especially when -Werror |
| (warnings as errors) was used. |
| |
| 2019-07-23: smithx |
| [C#] #1530 #1532 Fix marshalling of std::wstring to C#. |
| |
| 2019-07-18: gicmo |
| [Python] #1587 Python 3.8 support - remove use of deprecated PyObject_GC_UnTrack. |
| |
| 2019-07-18: cher-nov |
| [Python] #1573 Generated Python code uses consistent string quoting style - double |
| quotes. |
| |
| 2019-07-16: geefr |
| [C#] #616 #1576 Fix C# bool INPUT[], bool OUTPUT[], bool INOUT[] typemaps to marshall |
| as 1-byte. |
| |
| 2019-07-12: vadz |
| [C#, Java] #1568 #1583 Fix std::set<> typemaps for primitive types. |
| |
| 2019-07-12: vadz |
| #1566 #1584 Regression in 4.0.0 - fix missing value for first item of enums with |
| trailing comma. |
| |
| 2019-07-11: mcfarljm |
| #1548 #1578 Fix segfault in Doxygen parser parsing empty lines in some commands like |
| \code. |
| |
| 2019-07-09: IsaacPascual |
| [C#, Java] #1570 Fix name of generated C#/Java classes for %interface macros |
| in swiginterface.i when wrapping nested C++ classes. |
| |
| 2019-07-05: wsfulton |
| [Python] #1547 Whitespace fixes in Doxygen translated comments into pydoc comments |
| for Sphinx compatibility. |
| |
| 2019-06-28: wsfulton |
| [MzScheme, OCaml] #1559 $arg and $input were incorrectly substituted in the |
| argout typemap when two or more arguments were present. |
| |
| 2019-06-24: wsfulton |
| [Python, Ruby] #1538 Remove the UnknownExceptionHandler class in order to be |
| C++17 compliant as it uses std::unexpected_handler which was removed in C++17. |
| This class was intended for director exception handling but was never used by |
| SWIG and was never documented. |
| |
| *** POTENTIAL INCOMPATIBILITY *** |
| |
| 2019-06-06: bkotzz |
| [Java] #1552 Improve performance in Java std::vector constructor wrapper that takes |
| a native Java array as input. |
| |
| 2019-06-03: olly |
| [Python] Fix regression in implicit_conv handling of tuples, |
| introduced in SWIG 4.0.0. Fixes #1553, reported by Alexandre |
| Duret-Lutz. |
| |
| 2019-05-24: wsfulton |
| [Octave] Fix detection of Octave on MacOS. |
| |
| 2019-05-24: opoplawski |
| [Octave] #1522 Adapt OCTAVE_LDFLAGS for Octave 5.1. |
| |
| 2019-05-22: ferdynator |
| [PHP] #1528 Don't add a closing '?>' PHP tag to generated files. |
| PSR-2 says it MUST be omitted for files containing only PHP. |