| 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. |
| |
| Version 3.0.9 (29 May 2016) |
| =========================== |
| |
| 2016-05-24: mromberg |
| [Python] Patch #612 - Add support for Python's implicit namespace packages. |
| |
| 2016-05-23: wsfulton |
| [Ruby] Fix #602 - Error handling regression of opaque pointers introduced |
| in swig-3.0.8 when C functions explicitly reset a pointer using 'DATA_PTR(self) = 0'. |
| An ObjectPreviouslyDeleted error was incorrectly thrown when the pointer was used |
| as a parameter. |
| |
| 2016-05-17: tamuratak |
| [Ruby] Patch #651 - Correct overloaded function error message when function is |
| using %newobject. |
| |
| 2016-05-17: aurelj |
| [Ruby] Patch #582 - add support for docstring option in %module() |
| |
| 2016-05-14: wsfulton |
| Fix #434 - Passing classes by value as parameters in director methods did not create |
| a copy of the argument leading to invalid memory accesses if the object was used |
| after the upcall into the target language. Passing arguments by value shouldn't give |
| rise to these sorts of memory problems and so the objects are now copied and ownership |
| of their lifetime is controlled by the target language. |
| |
| 2016-05-07: wsfulton |
| Fix #611. Fix assertion handling defaultargs when using %extend for a template |
| class and the extended methods contain default arguments. |
| |
| 2016-05-05: ejulian |
| [Python] Patch #617. Fix operator/ wrappers. |
| |
| 2016-05-02: wsfulton |
| Fix #669. Don't issue warning about ignoring base classes when the derived class is |
| itself ignored. |
| |
| 2016-04-18: ianlancetaylor |
| [Go] Fix use of goout typemap when calling base method by |
| forcing the "type" attribute to the value we need. |
| |
| 2016-04-17: ianlancetaylor |
| [Go] Fixes for Go 1.6: avoid returning Go pointers from |
| directors that return string values; add a trailing 0 byte |
| when treating Go string as C char*. |
| |
| 2016-04-06: smarchetto |
| [Scilab] #552 Make Scilab runtime keep track of pointer types |
| Instead of a Scilab pointer which has no type, SWIG Scilab maps a |
| pointer to a structure tlist containing the pointer adress and its type. |
| |
| 2016-04-02: ahnolds |
| [Python] Apply #598. Fix misleading error message when attempting to read a non-existent |
| attribute. The previous cryptic error message: |
| AttributeError: type object 'object' has no attribute '__getattr__' |
| is now replaced with one mentioning the attribute name, eg: |
| AttributeError: 'Foo' object has no attribute 'bar' |
| |
| 2016-04-02: derkuci |
| [Python] Patch #610 to fix #607. |
| Fix single arguments when using python -builtin -O with %feature("compactdefaultargs") |
| |
| 2016-03-31: wsfulton |
| Fixes #594. Fix assertion for some languages when wrapping a C++11 enum class that |
| is private in a class. |
| |
| Also don't wrap private enums for a few languages that attempted to do so. |
| |
| 2016-03-31: wsfulton |
| [Java] unsigned long long marshalling improvements when a negative number |
| is passed from Java to C. A cast to signed long long in the C layer will now |
| result in the expected value. No change for positive numbers passed to C. |
| Fixes #623. |
| |
| 2016-03-22: alexwarg |
| [Lua] #398 Fix lua __getitem + inheritance |
| The new handling of classes in Lua (not merging methods into the derived classes) |
| breaks for classes that provide a __getitem function. The __getitem function |
| prevents method calls to any method defined in a base class. This fix calls |
| __getitem only if the member is not found using recursive lookup. |
| |
| 2016-03-18: ptomulik |
| [Python] #563 Stop generating unnecessary _swigconstant helpers. |
| |
| 2016-03-16: richardbeare |
| [R] #636 Add extra std::vector numeric types |
| |
| 2016-03-14: wsfulton |
| [Java] Add std_array.i for C++11 std::array support. |
| |
| 2016-03-12: wsfulton |
| [Java, C#, D] Fix static const char member variables wrappers with %javaconst(1) |
| %csconst(1) or %dmanifestconst. |
| This fixes the case when an integer is used as the initializer, such as: |
| |
| struct W { static const char w = 100; }; |
| |
| Fix generated code parsing enum values using char escape sequences |
| when these values appear in the Java code (usually when using %javaconst(1)) |
| such as: |
| |
| enum X { x1 = '\n', x2 = '\1' }; |
| |
| Similarly for static const member char variables such as: |
| |
| struct Y { static const char y = '\n'; } |
| |
| Likewise for D and %dmanifestconstant. For C# and %csconst(1), char |
| values in C# are now hex escaped as C# doesn't support C octal escaping. |
| |
| 2016-03-11: wsfulton |
| [Java C#] Add support for treating C++ base classes as Java interfaces |
| instead of Java proxy classes. This enable some sort of support for |
| multiple inheritance. The implementation is in swiginterface.i and |
| provides additional macros (see Java.html for full documentation): |
| |
| %interface(CTYPE) |
| %interface_impl(CTYPE) |
| %interface_custom("PROXY", "INTERFACE", CTYPE) |
| |
| 2016-03-01: wsfulton |
| Add rstrip encoder for use in %rename. This is like the strip encoder but |
| strips the symbol's suffix instead of the prefix. The example below |
| will rename SomeThingCls to SomeThing and AnotherThingCls to AnotherThing: |
| |
| %rename("%(rstrip:[Cls])s") ""; |
| |
| class SomeThingCls {}; |
| struct AnotherThingCls {}; |
| |
| 2016-03-01: olly |
| Fix isfinite() check to work with GCC6. Fixes |
| https://github.com/swig/swig/issues/615 reported by jplesnik. |
| |
| 2016-02-17: olly |
| [Python] Add missing keywords 'as' and 'with' to pythonkw.swg. |
| |
| 2016-02-07: kwwette |
| [Octave] recognise various unary functions |
| * Use __float__() for numeric conversions, e.g. when calling double() |
| * Map various unary functions, e.g. abs() to __abs__(), see full list |
| in section 32.3.10 of manual; only available in Octave 3.8.0 or later |
| |
| 2016-02-07: kwwette |
| [Octave] export function swig_octave_prereq() for testing Octave version |
| |
| 2016-02-06: pjohangustavsson |
| [C#] Fix duplicate symbol problems when linking the source generated |
| from multiple SWIG modules into one shared library for the -namespace |
| option. The namespace is now mangled into the global PInvoke function |
| names. |
| |
| *** POTENTIAL INCOMPATIBILITY *** |
| |
| 2016-01-27: ahnolds |
| [Python] Added support for differentiating between Python Bytes |
| and Unicode objects using by defining SWIG_PYTHON_STRICT_BYTE_CHAR |
| and SWIG_PYTHON_STRICT_UNICODE_WCHAR. |
| |
| 2016-01-27: steeve |
| [Go] Ensure structs are properly packed between gc and GCC/clang. |
| |
| 2016-01-25: ahnolds |
| [Python] Support the full Python test suite in -classic mode |
| * Convert long/unsigned long/long long/unsigned long long to PyInt |
| rather than PyLong when possible. Certain python functions like |
| len() require a PyInt when operating on old-style classes. |
| * Add support for static methods in classic mode, including support |
| for pythonappend, pythonprepend, and docstrings. |
| * Removing the use of __swig_getmethods__ for static member methods |
| since they will always be found by the standard argument lookup |
| * Fix a bug where the wrong type of exception was caught when |
| checking for new-style class support |
| |
| 2016-01-23: ahnolds |
| [Go] Enable support for the Go test-suite on OSX: |
| * The linker on OSX requires that all symbols (even weak symbols) |
| are defined at link time. Because the function _cgo_topofstack is |
| only defined starting in Go version 1.4, we explicitly mark it as |
| undefined for older versions of Go on OSX. |
| * Avoid writing empty swigargs structs, since empty structs are not |
| allowed in extern "C" blocks. |
| |
| 2016-01-12: olly |
| [Javascript] Look for "nodejs" as well as "node", as it's packaged |
| as the former on Debian. |
| |
| 2016-01-12: olly |
| [Javascript] For v8 >= 4.3.0, use V8_MAJOR_VERSION. |
| Fixes https://github.com/swig/swig/issues/561. |
| |
| 2016-01-10: ahnolds |
| Improved size_t and ptrdiff_t typemaps to support large values |
| on platforms where sizeof(size_t) > sizeof(unsigned long) and |
| sizeof(ptrdiff_t) > sizeof(long). |