| 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.11 (in progress) |
| ============================ |
| |
| 2016-12-20: wsfulton |
| %namewarn unnecessarily caused keyword warnings for non-instantiated template classes |
| and duplicate warnings for instantiated template classes when keywords were used. |
| Issue https://github.com/swig/swig/issues/845 |
| |
| 2016-12-18: ezralanglois |
| [Python, Ruby, Octave] Memory leak fix on error in std::pair wrappers. |
| Issue https://github.com/swig/swig/pull/851 |
| |
| 2016-12-18: wsfulton |
| Zero initialize arrays when using %array_class and %array_functions. |
| |
| 2016-12-18: t-ikegami |
| [Python] Fix https://github.com/swig/swig/issues/446 |
| Python %array_class of carrays.i failed with -builtin option. |
| |
| 2016-12-16: bcaine |
| [Guile] Patch #744 Added support for Guile's native pointer functionality |
| |
| 2016-12-01: wsfulton |
| [Python] Issue https://github.com/swig/swig/issues/769 |
| Add optional moduleimport attribute to %module so that the |
| default module import code can be overridden. See the "Searching for the wrapper module" |
| documentation in Python.html. Example: |
| |
| %module(moduleimport="import _foo") foo |
| |
| $module also expands to the low-level C/C++ module name, so the following is the |
| same as above |
| |
| %module(moduleimport="import $module") foo |
| |
| 2016-11-30: olly |
| [PHP] Add support for PHP7. PHP5's C extension API has changed |
| substantially so you need to use -php7 to specify you want PHP7 |
| compatible wrappers. The default extension for generated wrappers |
| is now .cxx (to match SWIG's default for every other language - to |
| generate foo_wrap.cpp you can run SWIG with -cppext cpp). Fixes |
| https://github.com/swig/swig/issues/571 |
| |
| As part of this change, the language subdirectory for PHP5 has |
| changed from "php" to "php5" - if you are making use of the search |
| path feature where the language subdirectory of each directory |
| is also searched, you'll need to update your bindings. A simple |
| fix which works for older and newer SWIG is to add a symlink: |
| ln -s php php5 |
| |
| *** POTENTIAL INCOMPATIBILITY *** |
| |
| 2016-11-30: olly |
| [PHP] Only emit one copy of each distinct arginfo. Previously we |
| emitted a separate one for every wrapped function, but typically |
| many functions have the same number of parameters and combinations |
| of parameters passed by reference or not. |
| |
| This change significantly reduces both the size of the generated |
| wrapper, and of the compiled PHP extension module (e.g. by ~6% for |
| the stripped extension module for Xapian's PHP7 bindings). |
| |
| 2016-11-28: wsfulton |
| Fix %rename override of wildcard %rename for templates. For example: |
| |
| %rename(GlobalIntOperator) *::operator bool; // wildcard %rename |
| |
| %rename(XIntOperator) X::operator bool; // fix now overrides first %rename above |
| OR |
| %rename(XIntOperator) X<int>::operator bool; // fix now overrides first %rename above |
| |
| template<typename T> struct X { |
| operator bool(); |
| ... |
| }; |
| %template(Xint) X<int>; |
| |
| 2016-11-26: m7thon |
| [Python] Issue #709 - improved wrapping of division operators |
| 'from __future__ import division' now works in Python 2 whether or not the |
| -py3 flag is used. |
| |
| 2016-11-12: joequant |
| [R] Issue #697 - fix comma issue with overload methods |
| |
| 2016-11-12: joequant |
| [R] Issue #555 - R runtime needs stdio.h |
| |
| 2016-11-02: wsfulton |
| [Python] Issue #816 - fix compilation error when using -extranative and -builtin. |
| |
| 2016-11-02: liorgold |
| Patch #741 - Add support for C++11 alias templates, see updated CPlusPlus11.html |
| documentation. |
| |
| 2016-10-30: myd7349 |
| [C#] Patch #740 Add std_array.i for C# for wrapping std::array. |
| |
| Patch also enhances std::vector<std::wstring> C# wrappers with additional functions |
| (Contains, IndexOf, LastIndexOf and Remove). |
| |
| 2016-10-30: tobilau |
| [Java] Fix wrappers for wstring parameters in director methods to cleanup local |
| ref after director callback has finished. |
| |
| 2016-10-23: wsfulton |
| [C#] Add missing csdirectorin VOID_INT_PTR and csdirectorout VOID_INT_PTR typemaps. |
| |
| 2016-10-23: jiulongw |
| Patch #781 - Fix wrapping of C compound expressions containing char constants |
| in quotes such as: |
| |
| #define H_SUPPRESS_SCALING_MAGIC (('s'<<24) | ('u'<<16) | ('p'<<8) | 'p') |
| |
| enum DifferentTypes { |
| typecharcompound='A'+1, |
| typecharcompound2='B' << 2 |
| }; |
| |
| 2016-10-13: wsfulton |
| [Python] Issue #808 - fix Python pickling and metaclass for builtin wrappers. |
| |
| The metaclass (SwigPyObjectType) for SWIG objects was not defined in |
| a way that let importlib successfully import the Python wrappers. |
| The pickle module previously failed to pickle objects because it couldn't |
| determine what module the SWIG wrapped objects were in. |
| |
| 2016-09-29: wsfulton |
| [Allegrocl, CFFI, GO, Javascript, Ocaml, R, Scilab] |
| Add missing support for the "ret" typemap in a few target languages. |
| The documentation also now has info on the "ret" typemap. |
| |
| 2016-09-27: ahmed-usman |
| [xml] Handle template parameters correctly. |
| |
| 2016-09-27: dontpanic92 |
| [Go] Fix argument names in inherited functions taking more than 8 |
| parameters. Fixes #795. |
| |
| 2016-09-26: smarchetto |
| [Scilab] mlists that map pointers can be given a custom type name. |
| |
| 2016-09-25: wsfulton |
| Patch #793 from q-p to expand exception handling to include std::bad_cast |
| in std_except.i. |
| |
| 2016-09-24: olly |
| [PHP] Fix code generated for feature("director:except") - |
| previously the return value of call_user_function() was ignored and |
| we checked an uninitialised value instead. Fixes #627. Based on |
| patch from Sergey Seroshtan. |
| |
| 2016-09-22: wsfulton |
| [Python] More flexible python builtin slots for overloaded C++ function. |
| |
| The closure names used for builtin slots are mangled with their functype so |
| that overloaded C++ method names can be used for multiple slots. |
| For example: |
| |
| %feature("python:slot", "mp_subscript", functype="binaryfunc") SimpleArray::__getitem__; |
| %feature("python:slot", "sq_item", functype="ssizeargfunc") SimpleArray::__getitem__(Py_ssize_t n); |
| |
| will generate closures: |
| |
| SWIGPY_SSIZEARGFUNC_CLOSURE(_wrap_SimpleArray___getitem__) /* defines _wrap_SimpleArray___getitem___ssizeargfunc_closure */ |
| SWIGPY_BINARYFUNC_CLOSURE(_wrap_SimpleArray___getitem__) /* defines _wrap_SimpleArray___getitem___binaryfunc_closure */ |
| |
| Previously only one name was defined: _wrap_SimpleArray___getitem___closure. |
| Hence the overloaded __getitem__ method can be used to support both mp_subscript and sq_item slots. |
| |
| 2016-09-17: wsfulton |
| [Python] Fix iterators for containers of NULL pointers (or Python None) when using |
| -builtin. Previously iteration would stop at the first element that was NULL. |
| |
| 2016-09-16: olly |
| [Javascript] Fix SWIG_exception() macro to return from the current |
| function. Fixes #789, reported by Julien Dutriaux. |
| |
| 2016-09-16: olly |
| [PHP] Fix SWIG_exception() macro to return from the current function. |
| Fixes #240, reported by Sergey Seroshtan. |
| |
| 2016-09-12: xypron |
| [C#] Patch #786 Keyword rename to be CLS compliant by adding an underscore |
| suffix instead of an underscore suffix to the C symbol name. Please use an explicit |
| %rename to rename the symbol with a _ prefix if you want the old symbol name. |
| |
| *** POTENTIAL INCOMPATIBILITY *** |
| |
| 2016-09-09: olly |
| [Python] Fix import handling for Python 2.6 to work in a frozen |
| application. Fixes #145, reported by Thomas Kluyver. |
| |
| 2016-09-02: smarchetto |
| [Scilab] Pointers are mapped to mlist instead of tlist |
| (mlist better for scilab overloading) |
| |
| 2016-09-02: olly |
| [PHP] Fix "out" typemap for member function pointers and "in" |
| typemap for char INPUT[ANY]. |
| |
| 2016-09-01: wsfulton |
| [Python] More efficient Python slicing. |
| Call reserve for container types that support it to avoid repeated |
| memory reallocations for new slices or slices that grow in size. |
| |
| 2016-09-01: wsfulton |
| [Python] #771 - Make builtin types hashable by default. |
| Default hash is the underlying C/C++ pointer. This matches up with testing for |
| equivalence (Py_EQ in SwigPyObject_richcompare) which compares the pointers. |
| |
| 2016-08-22: wsfulton |
| [Python] The following builtin slots can be customized like other slots via the |
| "python:<x>" and "python:slot" features where <x> is the appropriate slot name: |
| tp_allocs |
| tp_bases |
| tp_basicsize |
| tp_cache |
| tp_del |
| tp_dealloc |
| tp_flags |
| tp_frees |
| tp_getset |
| tp_is_gc |
| tp_maxalloc |
| tp_methods |
| tp_mro |
| tp_new |
| tp_next |
| tp_prev |
| tp_richcompare |
| tp_subclasses |
| tp_weaklist |
| was_sq_ass_slice |
| was_sq_slice |
| |
| A few documentation improvements for slot customization. |
| |
| 2016-08-09: joequant |
| [R] Patch #765 Fix extern "C" header includes for C++ code. |
| |
| 2016-08-05: olly |
| [xml] Fix how the output filename is built to avoid problems when |
| it contains the embedded strings ".c", ".cpp" or ".cxx". |
| Fixes #540 reported by djack42. |
| |
| 2016-07-01: wsfulton |
| Fix corner case of wrapping std::vector of T pointers where a pointer to a pointer of T |
| also exists in the wrapped code. SF Bug 2359417 (967). |
| |
| 2016-06-26: wkalinin |
| [Java, C#] Patch #681 Fix seg fault when ignoring nested classes. |
| |
| 2016-06-25: mromberg |
| [Python] #711 Fix -castmode and conversion of signed and unsigned integer types. |
| See 2015-12-23 CHANGES entry for details of these improvements when they were |
| implemented for the default options (ie not using -castmode). |
| |
| 2016-06-25: ahnolds |
| Patch #730 - Fix %implicitconv for overloaded functions when using |
| -castmode or -fastdispatch options. |
| |
| The result is that in all overload cases where there are multiple possibilities |
| with the same number of arguments, the dispatch function will first check for |
| exact (aka non implicit) matches, and then subsequently check for implicit |
| casting matches. This was already happening in the normal dispatch situation, |
| and in the -fastdispatch case two passes through the candidates were happening, |
| just with SWIG_POINTER_IMPLICIT_CONV always set. After this patch, it is not set |
| on the first pass, and then set on the second pass. |
| |
| 2016-06-25: liorgold |
| Patch #727 - Add support for C++11 type aliasing. |