Bump version to 3.0.12
This commit is contained in:
parent
26a01e1b83
commit
12e1ab0e93
6 changed files with 322 additions and 319 deletions
8
ANNOUNCE
8
ANNOUNCE
|
|
@ -1,8 +1,8 @@
|
||||||
*** ANNOUNCE: SWIG 3.0.11 (29 Dec 2016) ***
|
*** ANNOUNCE: SWIG 3.0.12 (in progress) ***
|
||||||
|
|
||||||
http://www.swig.org
|
http://www.swig.org
|
||||||
|
|
||||||
We're pleased to announce SWIG-3.0.11, the latest SWIG release.
|
We're pleased to announce SWIG-3.0.12, the latest SWIG release.
|
||||||
|
|
||||||
What is SWIG?
|
What is SWIG?
|
||||||
=============
|
=============
|
||||||
|
|
@ -27,11 +27,11 @@ Availability
|
||||||
============
|
============
|
||||||
The release is available for download on Sourceforge at
|
The release is available for download on Sourceforge at
|
||||||
|
|
||||||
http://prdownloads.sourceforge.net/swig/swig-3.0.11.tar.gz
|
http://prdownloads.sourceforge.net/swig/swig-3.0.12.tar.gz
|
||||||
|
|
||||||
A Windows version is also available at
|
A Windows version is also available at
|
||||||
|
|
||||||
http://prdownloads.sourceforge.net/swig/swigwin-3.0.11.zip
|
http://prdownloads.sourceforge.net/swig/swigwin-3.0.12.zip
|
||||||
|
|
||||||
Please report problems with this release to the swig-devel mailing list,
|
Please report problems with this release to the swig-devel mailing list,
|
||||||
details at http://www.swig.org/mail.html.
|
details at http://www.swig.org/mail.html.
|
||||||
|
|
|
||||||
314
CHANGES
314
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
|
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/
|
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)
|
Version 3.0.10 (12 Jun 2016)
|
||||||
============================
|
============================
|
||||||
|
|
||||||
|
|
|
||||||
313
CHANGES.current
313
CHANGES.current
|
|
@ -4,7 +4,7 @@ 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
|
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/
|
the issue number to the end of the URL: https://github.com/swig/swig/issues/
|
||||||
|
|
||||||
Version 3.0.11 (29 Dec 2016)
|
Version 3.0.12 (in progress)
|
||||||
============================
|
============================
|
||||||
|
|
||||||
2016-12-30: olly
|
2016-12-30: olly
|
||||||
|
|
@ -12,314 +12,3 @@ Version 3.0.11 (29 Dec 2016)
|
||||||
as "CONST_PERSISTENT" to avoid segmentation fault on module unload.
|
as "CONST_PERSISTENT" to avoid segmentation fault on module unload.
|
||||||
Fixes https://github.com/swig/swig/issues/859 reported by Timotheus
|
Fixes https://github.com/swig/swig/issues/859 reported by Timotheus
|
||||||
Pokorra - thanks also to Javier Torres for a minimal reproducer.
|
Pokorra - thanks also to Javier Torres for a minimal reproducer.
|
||||||
|
|
||||||
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.
|
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,7 @@
|
||||||
<H1><a name="Sections">SWIG-3.0 Documentation</a></H1>
|
<H1><a name="Sections">SWIG-3.0 Documentation</a></H1>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Last update : SWIG-3.0.11 (29 Dec 2016)
|
Last update : SWIG-3.0.12 (in progress)
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<H2><a name="Sections_Sections">Sections</a></H2>
|
<H2><a name="Sections_Sections">Sections</a></H2>
|
||||||
|
|
|
||||||
2
README
2
README
|
|
@ -1,6 +1,6 @@
|
||||||
SWIG (Simplified Wrapper and Interface Generator)
|
SWIG (Simplified Wrapper and Interface Generator)
|
||||||
|
|
||||||
Version: 3.0.11 (29 Dec 2016)
|
Version: 3.0.12 (in progress)
|
||||||
|
|
||||||
Tagline: SWIG is a compiler that integrates C and C++ with languages
|
Tagline: SWIG is a compiler that integrates C and C++ with languages
|
||||||
including Perl, Python, Tcl, Ruby, PHP, Java, C#, D, Go, Lua,
|
including Perl, Python, Tcl, Ruby, PHP, Java, C#, D, Go, Lua,
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,7 @@ dnl Process this file with autoconf to produce a configure script.
|
||||||
dnl The macros which aren't shipped with the autotools are stored in the
|
dnl The macros which aren't shipped with the autotools are stored in the
|
||||||
dnl Tools/config directory in .m4 files.
|
dnl Tools/config directory in .m4 files.
|
||||||
|
|
||||||
AC_INIT([swig],[3.0.11],[http://www.swig.org])
|
AC_INIT([swig],[3.0.12],[http://www.swig.org])
|
||||||
|
|
||||||
dnl NB: When this requirement is increased to 2.60 or later, AC_PROG_SED
|
dnl NB: When this requirement is increased to 2.60 or later, AC_PROG_SED
|
||||||
dnl definition below can be removed
|
dnl definition below can be removed
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue