summaryrefslogtreecommitdiff
path: root/CHANGES
diff options
context:
space:
mode:
authorWilliam S Fulton <wsf@fultondesigns.co.uk>2016-12-30 23:49:46 +0000
committerWilliam S Fulton <wsf@fultondesigns.co.uk>2016-12-30 23:49:46 +0000
commit12e1ab0e933ca7756f0ab66be215d46c9bbaada1 (patch)
tree1f5e599802a9ad32aaa144ca49339fdcfa11a50e /CHANGES
parent26a01e1b83d217799cf483ebbf27ec425f85f542 (diff)
downloadswig-12e1ab0e933ca7756f0ab66be215d46c9bbaada1.tar.gz
Bump version to 3.0.12
Diffstat (limited to 'CHANGES')
-rw-r--r--CHANGES314
1 files changed, 314 insertions, 0 deletions
diff --git a/CHANGES b/CHANGES
index 088edc7d7..4347c126a 100644
--- a/CHANGES
+++ b/CHANGES
@@ -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)
============================