diff options
author | William S Fulton <wsf@fultondesigns.co.uk> | 2016-12-30 23:49:46 +0000 |
---|---|---|
committer | William S Fulton <wsf@fultondesigns.co.uk> | 2016-12-30 23:49:46 +0000 |
commit | 12e1ab0e933ca7756f0ab66be215d46c9bbaada1 (patch) | |
tree | 1f5e599802a9ad32aaa144ca49339fdcfa11a50e /CHANGES | |
parent | 26a01e1b83d217799cf483ebbf27ec425f85f542 (diff) | |
download | swig-12e1ab0e933ca7756f0ab66be215d46c9bbaada1.tar.gz |
Bump version to 3.0.12
Diffstat (limited to 'CHANGES')
-rw-r--r-- | CHANGES | 314 |
1 files changed, 314 insertions, 0 deletions
@@ -5,6 +5,320 @@ 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.11 (29 Dec 2016) +============================ + +2016-12-24: wsfulton + [C#] Add %feature("csdirectordelegatemodifiers") to enable customization + of the delegate access modifiers generated in director classes. + Fixes issue #748. + +2016-12-23: wsfulton + [Python] Fix builtin "python:slot" feature failing for tp_hash when using + hashfunc closure with a "Wrong type for hash function" for Python 2. + Issue #843. + +2016-12-21: joequamt + Changed generation of functions so that only functions + that end in _set generate accessor functions rather than + looking for "set". + Change generation of operators to not have underscores + to start in R. Users need to provide custom names for these operator overloads. + +2016-12-21: olly + Fix isfinite() checks to work with all C++11 compilers. + Fixes issues #615, #788 and #849. + +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 #845. + +2016-12-18: ezralanglois + [Python, Ruby, Octave] Memory leak fix on error in std::pair wrappers. + Issue #851. + +2016-12-18: wsfulton + Zero initialize arrays when using %array_class and %array_functions. + +2016-12-18: t-ikegami + [Python] Fix #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 #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 + issue #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>; + + This also fixes %rename override of global %rename for templates. For example: + + // Global rename to make all functions start with a lower case letter + %rename("%(firstlowercase)s", %$isfunction ) ""; + %rename(woohoo) W::Woo; // fix now overrides above %rename + + template<typename T> struct W { + W Woo(); + ... + }; + %template(Wint) W<int>; + + The above also introduces a possibly unexpected change. Many of the STL containers + provided by SWIG use %rename to rename some methods, eg in std::vector, push_back + is renamed to add in Java. Previously this intended rename did not happen when using + using global %rename rules and the method would remain as push_back, but is now + renamed to add. Some more info in issue #856. + + *** POTENTIAL INCOMPATIBILITY *** + +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 prefix 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. + Version 3.0.10 (12 Jun 2016) ============================ |