diff --git a/Doc2.0/Octave.html b/Doc2.0/Octave.html
index 84c0a0f..3e12ce6 100644
--- a/Doc2.0/Octave.html
+++ b/Doc2.0/Octave.html
@@ -59,11 +59,8 @@
30.1 Preliminaries
-The SWIG implemention was first based on Octave 2.9.12, so this is the minimum version required. Testing has only been done on Linux.
-
-
-
-As of SWIG 2.0.7, the Octave module has been tested with Octave versions 3.0.5, 3.2.4, 3.4.3, and 3.6.1.
+As of SWIG 3.0.0, the Octave module has been tested with Octave versions 3.0.5, 3.2.4, 3.4.3, 3.6.4, and 3.8.0.
+Use of Octave versions older than 3.x.x is not recommended, as these versions are no longer tested with SWIG.
30.2 Running SWIG
diff --git a/Doc2.0/SWIGDocumentation.html b/Doc2.0/SWIGDocumentation.html
index 0f05228..369663d 100644
--- a/Doc2.0/SWIGDocumentation.html
+++ b/Doc2.0/SWIGDocumentation.html
@@ -1984,7 +1984,7 @@
SWIG-2.0 Documentation
- Last update : SWIG-2.0.11 (15 Sep 2013)
+ Last update : SWIG-2.0.12 (9 Feb 2014)
@@ -36718,10 +36718,10 @@ 30 SWIG and Octave
Examples/octave directory, and hundreds in the test suite
(Examples/test-suite and Examples/test-suite/octave).
30.1 Preliminaries
- The SWIG implemention was first based on Octave 2.9.12, so this is
- the minimum version required. Testing has only been done on Linux.
- As of SWIG 2.0.7, the Octave module has been tested with Octave
- versions 3.0.5, 3.2.4, 3.4.3, and 3.6.1.
+ As of SWIG 3.0.0, the Octave module has been tested with Octave
+ versions 3.0.5, 3.2.4, 3.4.3, 3.6.4, and 3.8.0. Use of Octave versions
+ older than 3.x.x is not recommended, as these versions are no longer
+ tested with SWIG.
30.2 Running SWIG
Let's start with a very simple SWIG interface file, example.i:
diff --git a/Doc2.0/SWIGDocumentation.pdf b/Doc2.0/SWIGDocumentation.pdf
index 7ba8d98..7ea75c3 100644
Binary files a/Doc2.0/SWIGDocumentation.pdf and b/Doc2.0/SWIGDocumentation.pdf differ
diff --git a/Doc2.0/Sections.html b/Doc2.0/Sections.html
index 2dfb438..9a9c0cc 100644
--- a/Doc2.0/Sections.html
+++ b/Doc2.0/Sections.html
@@ -6,7 +6,7 @@
SWIG-2.0 Documentation
-Last update : SWIG-2.0.11 (15 Sep 2013)
+Last update : SWIG-2.0.12 (9 Feb 2014)
Sections
diff --git a/Release/ANNOUNCE b/Release/ANNOUNCE
index caaa55d..06a24cc 100644
--- a/Release/ANNOUNCE
+++ b/Release/ANNOUNCE
@@ -1,8 +1,8 @@
-*** ANNOUNCE: SWIG 2.0.11 (15 Sep 2013) ***
+*** ANNOUNCE: SWIG 2.0.12 (9 Feb 2014) ***
http://www.swig.org
-We're pleased to announce SWIG-2.0.11, the latest SWIG release.
+We're pleased to announce SWIG-2.0.12, the latest SWIG release.
What is SWIG?
=============
@@ -21,11 +21,11 @@ Availability
============
The release is available for download on Sourceforge at
- http://prdownloads.sourceforge.net/swig/swig-2.0.11.tar.gz
+ http://prdownloads.sourceforge.net/swig/swig-2.0.12.tar.gz
A Windows version is also available at
- http://prdownloads.sourceforge.net/swig/swigwin-2.0.11.zip
+ http://prdownloads.sourceforge.net/swig/swigwin-2.0.12.zip
Please report problems with this release to the swig-devel mailing list,
details at http://www.swig.org/mail.html.
diff --git a/Release/CHANGES b/Release/CHANGES
index 488bf72..b40597e 100644
--- a/Release/CHANGES
+++ b/Release/CHANGES
@@ -3,6 +3,143 @@ SWIG (Simplified Wrapper and Interface Generator)
See the CHANGES.current file for changes in the current version.
See the RELEASENOTES file for a summary of changes in each release.
+Version 2.0.11 (15 Sep 2013)
+============================
+
+2013-09-15: wsfulton
+ [R] Fix attempt to free a non-heap object in OUTPUT typemaps for:
+ unsigned short *OUTPUT
+ unsigned long *OUTPUT
+ signed long long *OUTPUT
+ char *OUTPUT
+ signed char*OUTPUT
+ unsigned char*OUTPUT
+
+2013-09-12: wsfulton
+ [Lua] Pull Git patch #62.
+ 1) Static members and static functions inside class can be accessed as
+ ModuleName.ClassName.FunctionName (MemberName respectively). Old way such as
+ ModuleName.ClassName_FunctionName still works.
+ 2) Same goes for enums inside classes: ModuleName.ClassName.EnumValue1 etc.
+
+2013-09-12: wsfulton
+ [UTL] Infinity is now by default an acceptable value for type 'float'. This fix makes
+ the handling of type 'float' and 'double' the same. The implementation requires the
+ C99 isfinite() macro, or otherwise some platform dependent equivalents, to be available.
+
+ Users requiring the old behaviour of not accepting infinity, can define a 'check' typemap
+ wherever a float is used, such as:
+
+ %typemap(check,fragment="
") float, const float & %{
+ if ($1 < -FLT_MAX || $1 > FLT_MAX) {
+ SWIG_exception_fail(SWIG_TypeError, "Overflow in type float");
+ }
+ %}
+
+ *** POTENTIAL INCOMPATIBILITY ***
+
+2013-08-30: wsfulton
+ [Lua] Pull Git patch #81: Include Lua error locus in SWIG error messages.
+ This is standard information in Lua error messages, and makes it much
+ easier to find bugs.
+
+2013-08-29: wsfulton
+ Pull Git patch #75: Handle UTF-8 files with BOM at beginning of file. Was giving an
+ 'Illegal token' syntax error.
+
+2013-08-29: wsfulton
+ [C#] Pull Git patch #77: Allow exporting std::map using non-default comparison function.
+
+2013-08-28: wsfulton
+ [Python] %implicitconv is improved for overloaded functions. Like in C++, the methods
+ with the actual types are considered before trying implicit conversions. Example:
+
+ %implicitconv A;
+ struct A {
+ A(int i);
+ };
+ class CCC {
+ public:
+ int xx(int i) { return 11; }
+ int xx(const A& i) { return 22; }
+ };
+
+ The following python code:
+
+ CCC().xx(-1)
+
+ will now return 11 instead of 22 - the implicit conversion is not done.
+
+2013-08-23: olly
+ [Python] Fix clang++ warning in generated wrapper code.
+
+2013-08-16: wsfulton
+ [Python] %implicitconv will now accept None where the implicit conversion takes a C/C++ pointer.
+ Problem highlighted by Bo Peng. Closes SF patch #230.
+
+2013-08-07: wsfulton
+ [Python] SF Patch #326 from Kris Thielemans - Remove SwigPyObject_print and SwigPyObject_str and
+ make the generated wrapper use the default python implementations, which will fall back to repr
+ (for -builtin option).
+
+ Advantages:
+ - it avoids the swig user having to jump through hoops to get print to work as expected when
+ redefining repr/str slots.
+ - typing the name of a variable on the python prompt now prints the result of a (possibly redefined)
+ repr, without the swig user having to do any extra work.
+ - when redefining repr, the swig user doesn't necessarily have to redefine str as it will call the
+ redefined repr
+ - the behaviour is exactly the same as without the -builtin option while requiring no extra work
+ by the user (aside from adding the %feature("python:slot...) statements of course)
+
+ Disadvantage:
+ - default str() will give different (but clearer?) output on swigged classes
+
+2013-07-30: wsfulton
+ [Python, Ruby] Fix #64 #65: Missing code in std::multimap wrappers. Previously an instantiation
+ of a std::map was erroneously required in addition to an instantiation of std::multimap with the
+ same template parameters to prevent compilation errors for the wrappers of a std::multimap.
+
+2013-07-14: joequant
+ [R] Change types file to allow for SEXP return values
+
+2013-07-05: wsfulton
+ [Python] Add %pythonbegin directive which works like %pythoncode, except the specified code is
+ added at the beginning of the generated .py file. This is primarily needed for importing from
+ __future__ statements required to be at the very beginning of the file. Example:
+
+ %pythonbegin %{
+ from __future__ import print_function
+ print("Loading", "Whizz", "Bang", sep=' ... ')
+ %}
+
+2013-07-01: wsfulton
+ [Python] Apply SF patch #340 - Uninitialized variable fix in SWIG_Python_NonDynamicSetAttr
+ when using -builtin.
+
+2013-07-01: wsfulton
+ [Python, Ruby, Ocaml] Apply SF patch #341 - fix a const_cast in generated code that was generating
+ a <:: digraph when using the unary scope operator (::) (global scope) in a template type.
+
+2013-07-01: wsfulton
+ [Python] Add SF patch #342 from Christian Delbaere to fix some director classes crashing on
+ object deletion when using -builtin. Fixes SF bug #1301.
+
+2013-06-11: wsfulton
+ [Python] Add SWIG_PYTHON_INTERPRETER_NO_DEBUG macro which can be defined to use the Release version
+ of the Python interpreter in Debug builds of the wrappers. The Visual Studio .dsp example
+ files have been modified to use this so that Debug builds will now work without having
+ to install or build a Debug build of the interpreter.
+
+2013-06-07: wsfulton
+ [Ruby] Git issue #52. Fix regression with missing rb_complex_new function for Ruby
+ versions prior to 1.9 using std::complex wrappers if just using std::complex as an output type.
+ Also fix the Complex helper functions external visibility (to static by default).
+
+2013-06-04: olly
+ [PHP] Fix SWIG_ZTS_ConvertResourcePtr() not to dereference NULL
+ if the type lookup fails.
+
Version 2.0.10 (27 May 2013)
============================
diff --git a/Release/CHANGES.current b/Release/CHANGES.current
index 1727ecb..d55bb97 100644
--- a/Release/CHANGES.current
+++ b/Release/CHANGES.current
@@ -2,140 +2,68 @@ 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 2.0.11 (15 Sep 2013)
-============================
-
-2013-09-15: wsfulton
- [R] Fix attempt to free a non-heap object in OUTPUT typemaps for:
- unsigned short *OUTPUT
- unsigned long *OUTPUT
- signed long long *OUTPUT
- char *OUTPUT
- signed char*OUTPUT
- unsigned char*OUTPUT
-
-2013-09-12: wsfulton
- [Lua] Pull Git patch #62.
- 1) Static members and static functions inside class can be accessed as
- ModuleName.ClassName.FunctionName (MemberName respectively). Old way such as
- ModuleName.ClassName_FunctionName still works.
- 2) Same goes for enums inside classes: ModuleName.ClassName.EnumValue1 etc.
-
-2013-09-12: wsfulton
- [UTL] Infinity is now by default an acceptable value for type 'float'. This fix makes
- the handling of type 'float' and 'double' the same. The implementation requires the
- C99 isfinite() macro, or otherwise some platform dependent equivalents, to be available.
-
- Users requiring the old behaviour of not accepting infinity, can define a 'check' typemap
- wherever a float is used, such as:
-
- %typemap(check,fragment="") float, const float & %{
- if ($1 < -FLT_MAX || $1 > FLT_MAX) {
- SWIG_exception_fail(SWIG_TypeError, "Overflow in type float");
- }
- %}
-
- *** POTENTIAL INCOMPATIBILITY ***
-
-2013-08-30: wsfulton
- [Lua] Pull Git patch #81: Include Lua error locus in SWIG error messages.
- This is standard information in Lua error messages, and makes it much
- easier to find bugs.
-
-2013-08-29: wsfulton
- Pull Git patch #75: Handle UTF-8 files with BOM at beginning of file. Was giving an
- 'Illegal token' syntax error.
-
-2013-08-29: wsfulton
- [C#] Pull Git patch #77: Allow exporting std::map using non-default comparison function.
-
-2013-08-28: wsfulton
- [Python] %implicitconv is improved for overloaded functions. Like in C++, the methods
- with the actual types are considered before trying implicit conversions. Example:
-
- %implicitconv A;
- struct A {
- A(int i);
- };
- class CCC {
- public:
- int xx(int i) { return 11; }
- int xx(const A& i) { return 22; }
- };
-
- The following python code:
-
- CCC().xx(-1)
-
- will now return 11 instead of 22 - the implicit conversion is not done.
-
-2013-08-23: olly
- [Python] Fix clang++ warning in generated wrapper code.
-
-2013-08-16: wsfulton
- [Python] %implicitconv will now accept None where the implicit conversion takes a C/C++ pointer.
- Problem highlighted by Bo Peng. Closes SF patch #230.
-
-2013-08-07: wsfulton
- [Python] SF Patch #326 from Kris Thielemans - Remove SwigPyObject_print and SwigPyObject_str and
- make the generated wrapper use the default python implementations, which will fall back to repr
- (for -builtin option).
-
- Advantages:
- - it avoids the swig user having to jump through hoops to get print to work as expected when
- redefining repr/str slots.
- - typing the name of a variable on the python prompt now prints the result of a (possibly redefined)
- repr, without the swig user having to do any extra work.
- - when redefining repr, the swig user doesn't necessarily have to redefine str as it will call the
- redefined repr
- - the behaviour is exactly the same as without the -builtin option while requiring no extra work
- by the user (aside from adding the %feature("python:slot...) statements of course)
-
- Disadvantage:
- - default str() will give different (but clearer?) output on swigged classes
-
-2013-07-30: wsfulton
- [Python, Ruby] Fix #64 #65: Missing code in std::multimap wrappers. Previously an instantiation
- of a std::map was erroneously required in addition to an instantiation of std::multimap with the
- same template parameters to prevent compilation errors for the wrappers of a std::multimap.
-
-2013-07-14: joequant
- [R] Change types file to allow for SEXP return values
-
-2013-07-05: wsfulton
- [Python] Add %pythonbegin directive which works like %pythoncode, except the specified code is
- added at the beginning of the generated .py file. This is primarily needed for importing from
- __future__ statements required to be at the very beginning of the file. Example:
-
- %pythonbegin %{
- from __future__ import print_function
- print("Loading", "Whizz", "Bang", sep=' ... ')
- %}
-
-2013-07-01: wsfulton
- [Python] Apply SF patch #340 - Uninitialized variable fix in SWIG_Python_NonDynamicSetAttr
- when using -builtin.
-
-2013-07-01: wsfulton
- [Python, Ruby, Ocaml] Apply SF patch #341 - fix a const_cast in generated code that was generating
- a <:: digraph when using the unary scope operator (::) (global scope) in a template type.
-
-2013-07-01: wsfulton
- [Python] Add SF patch #342 from Christian Delbaere to fix some director classes crashing on
- object deletion when using -builtin. Fixes SF bug #1301.
-
-2013-06-11: wsfulton
- [Python] Add SWIG_PYTHON_INTERPRETER_NO_DEBUG macro which can be defined to use the Release version
- of the Python interpreter in Debug builds of the wrappers. The Visual Studio .dsp example
- files have been modified to use this so that Debug builds will now work without having
- to install or build a Debug build of the interpreter.
-
-2013-06-07: wsfulton
- [Ruby] Git issue #52. Fix regression with missing rb_complex_new function for Ruby
- versions prior to 1.9 using std::complex wrappers if just using std::complex as an output type.
- Also fix the Complex helper functions external visibility (to static by default).
-
-2013-06-04: olly
- [PHP] Fix SWIG_ZTS_ConvertResourcePtr() not to dereference NULL
- if the type lookup fails.
+Version 2.0.12 (9 Feb 2014)
+===========================
+
+2014-01-16: wsfulton
+ [PHP] Fix compilation error in ZTS mode (64 bit windows) due to incorrect placement
+ of TSRMLS_FETCH() in SWIG_Php_GetModule() as reported by Mark Dawson-Butterworth.
+
+2014-01-13: kwwette
+ [Octave] update support to Octave version 3.8.0
+
+ - Octave 3.8.0 no longer defines OCTAVE_API_VERSION_NUMBER, but 3.8.1
+ will define OCTAVE_{MAJOR,MINOR,PATCH}_VERSION instead: see
+ http://hg.savannah.gnu.org/hgweb/octave/rev/b6b6e0dc700e
+ So we now use a new macro SWIG_OCTAVE_PREREQ(major,minor,patch) to
+ enable features requiring Octave version major.minor.patch or later.
+
+ For Octave versions prior to 3.8.1, we reconstruct values for
+ OCTAVE_{MAJOR,MINOR,PATCH}_VERSION based on OCTAVE_API_VERSION_NUMBER,
+ extracted from Octave's ChangeLogs. An additional hack is needed to
+ distinguish between Octave <= 3.2.x and 3.8.0, neither of which define
+ OCTAVE_API_VERSION_NUMBER.
+
+ - Octave 3.8.0 deprecates symbol_table::varref(), so remove its use
+ for this and future versions of Octave.
+
+ - Octave 3.8.0 removes octave_value::is_real_nd_array(), used in
+ octave_swig_type::dims(). Its use is not required here, so remove it.
+
+ - Retested against Octave versions 3.0.5, 3.2.4, 3.4.3, 3.6.4, and 3.8.0.
+
+ - Updated Octave documentation with tested Octave versions, and added a
+ warning against using versions <= 3.x.x, which are no longer tested.
+
+2013-12-22: wsfulton
+ C++11 support for new versions of erase and insert in the STL containers.
+
+ The erase and insert methods in the containers use const_iterator instead
+ of iterator in C++11. There are times when the methods wrapped must match
+ the parameters exactly. Specifically when full type information for
+ template types is missing or SWIG fails to look up the type correctly,
+ for example:
+
+ %include
+ typedef float Real;
+ %template(RealVector) std::vector;
+
+ SWIG does not find std::vector::iterator because %template using
+ typedefs does not always work and so SWIG doesn't know if the type is
+ copyable and so uses SwigValueWrapper which does
+ not support conversion to another type (const_iterator). This resulted
+ in compilation errors when using the C++11 version of the containers.
+
+ Closes #73
+
+2013-10-17: wsfulton
+ [R] Fix SF #1340 - Visual Studio compile error in C++ wrappers due to #include
+ within extern "C" block.
+
+2013-10-17: wsfulton
+ [Python] Fix SF #1345 - Missing #include for offsetof when using -builtin.
+
+2013-10-12: wsfulton
+ [Lua] Apply #92 - missing return statements for SWIG_Lua_add_namespace_details()
+ and SWIG_Lua_namespace_register().
diff --git a/Release/README b/Release/README
index 946bd9a..664e780 100644
--- a/Release/README
+++ b/Release/README
@@ -1,6 +1,6 @@
SWIG (Simplified Wrapper and Interface Generator)
-Version: 2.0.11 (15 Sep 2013)
+Version: 2.0.12 (9 Feb 2014)
Tagline: SWIG is a compiler that integrates C and C++ with languages
including Perl, Python, Tcl, Ruby, PHP, Java, C#, D, Go, Lua,
diff --git a/Release/RELEASENOTES b/Release/RELEASENOTES
index 720dc9d..756df81 100644
--- a/Release/RELEASENOTES
+++ b/Release/RELEASENOTES
@@ -4,6 +4,14 @@ and CHANGES files.
Release Notes
=============
+SWIG-2.0.12 summary:
+- This is a maintenance release backporting some fixes from the pending
+ 3.0.0 release.
+- Octave 3.8 support added.
+- C++11 support for new versions of erase/insert in the STL containers.
+- Compilation fixes on some systems for the generated Lua, PHP, Python
+ and R wrappers.
+
SWIG-2.0.11 summary:
- Minor bug fixes and enhancements mostly in Python, but also
C#, Lua, Ocaml, Octave, Perl, PHP, Python, R, Ruby, Tcl.
diff --git a/download.ht b/download.ht
index ec6854c..e0c7e66 100644
--- a/download.ht
+++ b/download.ht
@@ -5,12 +5,12 @@ Download SWIG
The Latest Release
-The latest release is swig-2.0.11.
+The latest release is swig-2.0.12.
View the release notes.
Windows users should download
-swigwin-2.0.11
+swigwin-2.0.12
which includes a prebuilt executable.
diff --git a/history.ht b/history.ht
index 77883c0..5580aee 100644
--- a/history.ht
+++ b/history.ht
@@ -88,6 +88,7 @@ handling of overloaded functions added.
- December 16, 2012. SWIG-2.0.9 released.
- May 27, 2013. SWIG-2.0.10 released.
- September 15, 2013. SWIG-2.0.11 released.
+
- February 9, 2014. SWIG-2.0.12 released.