summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWilliam S Fulton <wsf@fultondesigns.co.uk>2014-03-17 06:54:00 +0000
committerWilliam S Fulton <wsf@fultondesigns.co.uk>2014-03-17 06:54:00 +0000
commitb0afd857e5cc67938c4cd1cc650b4b911aa95176 (patch)
treec62502a0f1674160b7e30dcf438e02f1eff2e322
parentade79e2e9446470d64e37c5d54bf7239a15a2556 (diff)
downloadswig-b0afd857e5cc67938c4cd1cc650b4b911aa95176.tar.gz
Bump version to 3.0.1
-rw-r--r--ANNOUNCE8
-rw-r--r--CHANGES358
-rw-r--r--CHANGES.current358
-rw-r--r--Doc/Manual/Sections.html2
-rw-r--r--README2
-rw-r--r--configure.ac2
6 files changed, 366 insertions, 364 deletions
diff --git a/ANNOUNCE b/ANNOUNCE
index c5108035a..6229edc4a 100644
--- a/ANNOUNCE
+++ b/ANNOUNCE
@@ -1,8 +1,8 @@
-*** ANNOUNCE: SWIG 3.0.0 (16 Mar 2014) ***
+*** ANNOUNCE: SWIG 3.0.1 (in progress) ***
http://www.swig.org
-We're pleased to announce SWIG-3.0.0, the latest SWIG release.
+We're pleased to announce SWIG-3.0.1, 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-3.0.0.tar.gz
+ http://prdownloads.sourceforge.net/swig/swig-3.0.1.tar.gz
A Windows version is also available at
- http://prdownloads.sourceforge.net/swig/swigwin-3.0.0.zip
+ http://prdownloads.sourceforge.net/swig/swigwin-3.0.1.zip
Please report problems with this release to the swig-devel mailing list,
details at http://www.swig.org/mail.html.
diff --git a/CHANGES b/CHANGES
index db9adab03..297da776f 100644
--- a/CHANGES
+++ b/CHANGES
@@ -3,6 +3,364 @@ 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 3.0.0 (16 Mar 2014)
+===========================
+
+2014-03-16: wsfulton
+ C++11 support initially developed as C++0x support by Matevz Jekovec as a Google Summer of Code
+ project has been further extended. The C++11 support is comprehensive, but by no means complete
+ or without limitations. Full details for each new feature in C++11 is covered in the
+ CPlusPlus11.html chapter in the documentation which is included in SWIG and also available
+ online at http://www.swig.org/Doc3.0/CPlusPlus11.html.
+
+2014-03-14: v-for-vandal
+ [Lua] Numerous Lua improvements:
+ 1. %nspace support has been added. Namespaces are mapped to tables in the module, with the same
+ name as the C++ namespace.
+ 2. Inheritance is now handled differently. Each class metatable keeps a list of class bases instead
+ of merging all members of all bases into the derived class.
+ 3. The new metatables result in differences in accessing class members. For example:
+
+ %module example
+ struct Test {
+ enum { TEST1 = 10, TEST2 = 20 };
+ static const int ICONST = 12;
+ };
+
+ Now this can be used as follows:
+ print(example.Test.TEST1)
+ print(example.Test.ICONST)
+ The old way was:
+ print(example.Test_TEST1)
+ print(example.Test_ICONST)
+
+ 4. The special class metatable member ".constructor" was removed. Now SWIG generates the proxy
+ function by itself and assigns it directly to the class table "__call" method.
+ 5. eLua should also now support inheritance.
+ 6. 'const' subtable in eLua is considered deprecated.
+
+ Changes in behaviour:
+ a. You can no longer assign to non-existing class members in classes without a __setitem__ method.
+ It will cause a Lua error.
+ b. You can no longer iterate over a module table and copy everything into the global namespace.
+ Actually, this was never the case, but it is now explicitly prohibited.
+ c. Now changing a base class will immediately affect all derived classes.
+ d. There might be some issues with inheritance. Although the bases iteration scheme is the same
+ as was used for merging base classes into derived one, some unknown issues may arise.
+
+ The old metatable behaviour can be restored by using the -no-old-metatable-bindings option.
+
+ *** POTENTIAL INCOMPATIBILITY ***
+
+2014-03-06: wsfulton
+ [Python] Change in default behaviour wrapping C++ bool. Only a Python True or False
+ will now work for C++ bool parameters. This fixes overloading bool with other types.
+ Python 2.3 minimum is now required for wrapping bool.
+
+ When wrapping:
+
+ const char* overloaded(bool value) { return "bool"; }
+ const char* overloaded(int value) { return "int"; }
+
+ Previous behaviour:
+ >>> overloaded(False)
+ 'int'
+ >>> overloaded(True)
+ 'int'
+ >>> overloaded(0)
+ 'int'
+
+ Now we get the expected behaviour:
+ >>> overloaded(False)
+ 'bool'
+ >>> overloaded(0)
+ 'int'
+
+ The consequence is when wrapping bool in non-overloaded functions:
+
+ const char* boolfunction(bool value) { return value ? "true" : "false"; }
+
+ The previous behaviour was very Pythonic:
+ >>> boolfunction("")
+ 'false'
+ >>> boolfunction("hi")
+ 'true'
+ >>> boolfunction(12.34)
+ 'true'
+ >>> boolfunction(0)
+ 'false'
+ >>> boolfunction(1)
+ 'true'
+
+ Now the new behaviour more along the lines of C++ due to stricter type checking. The
+ above calls result in an exception and need to be explicitly converted into a bool as
+ follows:
+ >>> boolfunction(0)
+ Traceback (most recent call last):
+ File "<stdin>", line 1, in <module>
+ TypeError: in method 'boolfunction', argument 1 of type 'bool'
+ >>> boolfunction(bool(0))
+ 'false'
+
+ The old behaviour can be resurrected by passing the -DSWIG_PYTHON_LEGACY_BOOL command line
+ parameter when executing SWIG. Typemaps can of course be written to customise the behaviour
+ for specific parameters.
+
+ *** POTENTIAL INCOMPATIBILITY ***
+
+2014-03-06: wsfulton
+ Fix SF Bug #1363 - Problem with method overloading when some methods are added by %extend
+ and others are real methods and using template default parameters with smart pointers.
+ This is noticeable as a regression since 2.0.12 when using the default smart pointer
+ handling for some languages when the smart pointer wraps std::map and other STL containers.
+
+2014-03-02: wsfulton
+ [Python] SF Patch #346 from Jens Krueger. Correct exception thrown attempting to
+ access a non-existent C/C++ global variable on the 'cvar' object. The exception thrown
+ used to be a NameError. However, as this access is via a primary, an AttributeError
+ is more correct and so the exception thrown now is an AttributeError. Reference:
+ http://docs.python.org/2/reference/expressions.html#attribute-references
+
+ *** POTENTIAL INCOMPATIBILITY ***
+
+2014-03-01: wsfulton
+ [Python] Patch #143 Fix type shown when using type() to include the module and package
+ name when using -builtin.
+
+2014-03-01: wsfulton
+ [Python] SF patch #347 Fix missing argument count checking with -modern.
+ Fixes regression introduced when builtin changes were introduced in SWIG-2.0.3.
+
+2014-02-21: wsfulton
+ [PHP] Fix warning suppression using %warnfilter for PHP reserved class names.
+
+2014-02-19: olly
+ [Lua] Add keyword warnings for Lua keywords and Basic Functions.
+
+2014-02-19: olly
+ -Wallkw now includes keywords for all languages with keyword
+ warnings (previously Go and R were missing).
+
+2014-02-19: olly
+ [PHP] Update the lists of PHP keywords with new ones from PHP 5.4
+ and newer (and some missing ones from 5.3). Reserved PHP constants
+ names are now checked against enum values and constants, instead
+ of against function and method names. Built-in PHP function names
+ no longer match methods added by %extend. Functions and methods
+ named '__sleep', '__wakeup', 'not', 'parent', or 'virtual' are no
+ longer needlessly renamed.
+
+2014-02-15: wsfulton
+ Fix the %$ismember %rename predicates to also apply to members added via %extend.
+
+ Add %$isextendmember for %rename of members added via %extend. This can be used to
+ distinguish between normal class/struct members and %extend members. For example
+ '%$ismember, %$not %$isextendmember' will now identify just class/struct members.
+
+ *** POTENTIAL INCOMPATIBILITY ***
+
+2014-02-16: hfalcic
+ [Python] Patch #137 - fix crashes/exceptions in exception handling in Python 3.3
+
+2014-02-15: wsfulton
+ [Java] Add support for the cdata library.
+
+2014-02-08: vkalinin
+ Nested class support added. This primarily allows SWIG to properly parse nested
+ classes and keep the nested class information in the parse tree. Java and C#
+ have utilised this information wrapping the C++ nested classes as Java/C#
+ nested classes. The remaining target languages ignore nested classes as in
+ previous versions. Help is needed by users of these remaining languages to
+ design how C++ nested classes can be best wrapped. Please talk to us on the
+ swig-devel mailing list if you think you can help.
+
+ Previously, there was limited nested class support. Nested classes were treated
+ as opaque pointers. However, the "nestedworkaround" feature provided a way to
+ wrap a nested class as if it was a global class. This feature no longer exists
+ and is replaced by the new "flatnested" feature. This effectively does the same
+ thing with less manual code to be written. Please see the 'Nested classes'
+ section in the documentation in SWIGPlus.html if you were previously using this
+ feature.
+
+ SWIG now parses the contents of nested classes where previously it did not. You
+ may find that you will need to make adjustments to your interface file as
+ effectively extra code is being wrapped.
+
+ *** POTENTIAL INCOMPATIBILITY ***
+
+2014-02-06: gjanssens
+ [Guile] Patch #133. Make scm to string conversion work with non-ascii strings.
+ Guile 2 has a completely rewritten string implementation. SWIG made some assumptions
+ that are no longer valid as to the internals of guile's string representation.
+
+2014-01-30: wsfulton
+ [C#] Add new swigtype_inout.i library containing SWIGTYPE *& OUTPUT typemaps.
+
+ Example usage wrapping:
+
+ void f(XXX *& x) { x = new XXX(111); }
+
+ would be:
+
+ XXX x = null;
+ f(out x);
+ // use x
+ x.Dispose(); // manually clear memory or otherwise leave out and leave it to the garbage collector
+
+2014-01-21: ianlancetaylor
+ [Go] Add %go_import directive.
+
+2014-01-21: ianlancetaylor
+ [Go] Add support for Go 1.3, not yet released.
+
+2014-01-20: wsfulton
+ Director exceptions (Swig::DirectorException) now derive from std::exception
+ and hence provide the what() method. In Python and Ruby, this replaces the now
+ deprecated DirectorException::getMessage() method.
+
+2014-01-14: diorcety
+ Patch #112 - Fix symbol resolution involving scopes that have multiple levels
+ of typedefs - fixes some template resolutions as well as some typemap searches.
+
+2014-01-11: wsfulton
+ Fix and document the naturalvar feature override behaviour - the naturalvar
+ feature attached to a variable name has precedence over the naturalvar
+ feature attached to the variable's type. The overriding was not working
+ when turning the feature off on the variable's name.
+
+ Fix so that any use of the naturalvar feature will override the global
+ setting. Previously when set globally by -naturalvar or %module(naturalvar=1),
+ use of the naturalvar feature was not always honoured.
+
+2014-01-06: ianlancetaylor
+ [Go] Fix bug that broke using directors from a thread not
+ created by Go.
+
+2013-12-24: ptomulik
+ [Python] SF Bug #1297
+
+ Resolve several issues related to python imports.
+ For example, it's now possible to import modules having the same module
+ names, but belonging in different packages.
+
+ From the user's viewpoint, this patch gives a little bit more control on
+ import statements generated by SWIG. The user may choose to use relative
+ or absolute imports.
+
+ Some details:
+ - we (still) generate import statements in the form 'import a.b.c' which
+ corresponds to absolute imports in python3 and (the only available)
+ ambiguous one in python2.
+ - added -relativeimport option to use explicit relative import syntax
+ (python3),
+
+ The "Python Packages" section in the documentation discusses how to work
+ with importing packages including the new -relativeimport command line option.
+
+2013-12-23: vadz
+ [Octave, Perl, Python, R, Ruby, Tcl] Change the length of strings created from fixed-size char
+ buffers in C code.
+
+ This is a potential backwards compatibility break: a "char buf[5]" containing "ho\0la" was
+ returned as a string of length 5 before, but is returned as a string of length 2 now. Also,
+ it was possible to assign a (non-NUL-terminated) string "hello" to such a buffer before but
+ now this fails and only "helo" can fit.
+
+ Apply "char FIXSIZE[ANY]" typemaps to explicitly choose the old behaviour.
+
+ *** POTENTIAL INCOMPATIBILITY ***
+
+2013-12-23: talby
+ [Perl] Add support for directors.
+
+2013-12-18: ianlancetaylor
+ [Go] Don't require that Go environment variables be set
+ when running examples or testsuite when using Go 1 or
+ later.
+
+2013-12-17: ianlancetaylor
+ [Go] Remove -longsize option (for backward compatibility,
+ ignore it if seen).
+
+2013-12-17: ianlancetaylor
+ [Go] Add -go-pkgpath option.
+
+2013-12-16: ianlancetaylor
+ [Go] Update for Go 1.2 release. Add support for linking
+ SWIG code directly into executable, rather than using a
+ shared library.
+
+2013-12-13: ianlancetaylor
+ [Go] Add SWIG source file name as comments in generated
+ files. This can be used by Go documentation tools.
+
+2013-12-12: jleveque
+ [Lua] Fix typo (wchar instead of wchar_t) which made wchar.i
+ for Lua useless.
+
+2013-12-12: vmiklos
+ [PHP] PHP's peculiar call-time pass-by-reference feature was
+ deprecated in PHP 5.3 and removed in PHP 5.4, so update the REF
+ typemaps in phppointers.i to specify pass-by-reference in the
+ function definition. Examples/php/pointer has been updated
+ accordingly.
+
+2013-12-12: olly
+ [PHP] The usage of $input in PHP directorout typemaps has been
+ changed to be consistent with other languages. The typemaps
+ provided by SWIG have been updated accordingly, but if you
+ have written your own directorout typemaps, you'll need to
+ update $input to &$input (or make equivalent changes).
+
+ *** POTENTIAL INCOMPATIBILITY ***
+
+2013-11-27: vadz
+ [C#, Java, Python] Add std_auto_ptr.i defining typemaps for returning std::auto_ptr<>.
+
+2013-11-09: wsfulton
+ [C#] Apply patch #79 from Brant Kyser
+ - Remove using directives from the generated C# code and fully qualify the use of all .NET
+ framework types in order to minimize potential name collisions from input files defining
+ types, namespace, etc with the same name as .NET framework members.
+ - Globally qualify the use of .NET framework types in the System namespace
+ - Remove .NET 1.1 support, .NET 2 is the minimum for the C# module
+
+ This is a potential backwards compatibility break if code has been added relying on these using
+ statements that used to be generated:
+
+ using System;
+ using System.Runtime.InteropServices;
+
+ The quick fix to add these back in is to add the -DSWIG2_CSHARP command line option when
+ executing SWIG. See CSharp.html documentation for more info.
+
+ *** POTENTIAL INCOMPATIBILITY ***
+
+2013-11-05: wsfulton
+ [Java] Fix some corner cases for the $packagepath/$javaclassname special variable substitution.
+
+2013-11-05: wsfulton
+ [Java] Apply patch #91 from Marvin Greenberg - Add director:except feature for improved
+ exception handling in director methods for Java.
+
+2013-10-15: vadz
+ Allow using \l, \L, \u, \U and \E in the substitution part of %(regex:/pattern/subst/)
+ inside %rename to change the case of the text being replaced.
+
+2013-10-12: wsfulton
+ [CFFI] Apply #96 - superclass not lispify
+
+2013-10-12: wsfulton
+ Merge in C++11 support from the gsoc2009-matevz branch where Matevz Jekovec first
+ started the C++0x additions. Documentation of the C++11 features supported is in a
+ new Chapter of the documentation, "SWIG and C++11" in Doc/Manual/CPlusPlus11.html.
+
+2013-10-04: wsfulton
+ Fix %naturalvar not having any affect on templated classes instantiated with an
+ enum as the template parameter type. Problem reported by Vadim Zeitlin.
+
+2013-09-20: wsfulton
+ [Java] Fix a memory leak for the java char **STRING_ARRAY typemaps.
Version 2.0.12 (9 Feb 2014)
===========================
diff --git a/CHANGES.current b/CHANGES.current
index b87e6c577..606cfd309 100644
--- a/CHANGES.current
+++ b/CHANGES.current
@@ -2,362 +2,6 @@ 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.0 (16 Mar 2014)
+Version 3.0.1 (in progress)
===========================
-2014-03-16: wsfulton
- C++11 support initially developed as C++0x support by Matevz Jekovec as a Google Summer of Code
- project has been further extended. The C++11 support is comprehensive, but by no means complete
- or without limitations. Full details for each new feature in C++11 is covered in the
- CPlusPlus11.html chapter in the documentation which is included in SWIG and also available
- online at http://www.swig.org/Doc3.0/CPlusPlus11.html.
-
-2014-03-14: v-for-vandal
- [Lua] Numerous Lua improvements:
- 1. %nspace support has been added. Namespaces are mapped to tables in the module, with the same
- name as the C++ namespace.
- 2. Inheritance is now handled differently. Each class metatable keeps a list of class bases instead
- of merging all members of all bases into the derived class.
- 3. The new metatables result in differences in accessing class members. For example:
-
- %module example
- struct Test {
- enum { TEST1 = 10, TEST2 = 20 };
- static const int ICONST = 12;
- };
-
- Now this can be used as follows:
- print(example.Test.TEST1)
- print(example.Test.ICONST)
- The old way was:
- print(example.Test_TEST1)
- print(example.Test_ICONST)
-
- 4. The special class metatable member ".constructor" was removed. Now SWIG generates the proxy
- function by itself and assigns it directly to the class table "__call" method.
- 5. eLua should also now support inheritance.
- 6. 'const' subtable in eLua is considered deprecated.
-
- Changes in behaviour:
- a. You can no longer assign to non-existing class members in classes without a __setitem__ method.
- It will cause a Lua error.
- b. You can no longer iterate over a module table and copy everything into the global namespace.
- Actually, this was never the case, but it is now explicitly prohibited.
- c. Now changing a base class will immediately affect all derived classes.
- d. There might be some issues with inheritance. Although the bases iteration scheme is the same
- as was used for merging base classes into derived one, some unknown issues may arise.
-
- The old metatable behaviour can be restored by using the -no-old-metatable-bindings option.
-
- *** POTENTIAL INCOMPATIBILITY ***
-
-2014-03-06: wsfulton
- [Python] Change in default behaviour wrapping C++ bool. Only a Python True or False
- will now work for C++ bool parameters. This fixes overloading bool with other types.
- Python 2.3 minimum is now required for wrapping bool.
-
- When wrapping:
-
- const char* overloaded(bool value) { return "bool"; }
- const char* overloaded(int value) { return "int"; }
-
- Previous behaviour:
- >>> overloaded(False)
- 'int'
- >>> overloaded(True)
- 'int'
- >>> overloaded(0)
- 'int'
-
- Now we get the expected behaviour:
- >>> overloaded(False)
- 'bool'
- >>> overloaded(0)
- 'int'
-
- The consequence is when wrapping bool in non-overloaded functions:
-
- const char* boolfunction(bool value) { return value ? "true" : "false"; }
-
- The previous behaviour was very Pythonic:
- >>> boolfunction("")
- 'false'
- >>> boolfunction("hi")
- 'true'
- >>> boolfunction(12.34)
- 'true'
- >>> boolfunction(0)
- 'false'
- >>> boolfunction(1)
- 'true'
-
- Now the new behaviour more along the lines of C++ due to stricter type checking. The
- above calls result in an exception and need to be explicitly converted into a bool as
- follows:
- >>> boolfunction(0)
- Traceback (most recent call last):
- File "<stdin>", line 1, in <module>
- TypeError: in method 'boolfunction', argument 1 of type 'bool'
- >>> boolfunction(bool(0))
- 'false'
-
- The old behaviour can be resurrected by passing the -DSWIG_PYTHON_LEGACY_BOOL command line
- parameter when executing SWIG. Typemaps can of course be written to customise the behaviour
- for specific parameters.
-
- *** POTENTIAL INCOMPATIBILITY ***
-
-2014-03-06: wsfulton
- Fix SF Bug #1363 - Problem with method overloading when some methods are added by %extend
- and others are real methods and using template default parameters with smart pointers.
- This is noticeable as a regression since 2.0.12 when using the default smart pointer
- handling for some languages when the smart pointer wraps std::map and other STL containers.
-
-2014-03-02: wsfulton
- [Python] SF Patch #346 from Jens Krueger. Correct exception thrown attempting to
- access a non-existent C/C++ global variable on the 'cvar' object. The exception thrown
- used to be a NameError. However, as this access is via a primary, an AttributeError
- is more correct and so the exception thrown now is an AttributeError. Reference:
- http://docs.python.org/2/reference/expressions.html#attribute-references
-
- *** POTENTIAL INCOMPATIBILITY ***
-
-2014-03-01: wsfulton
- [Python] Patch #143 Fix type shown when using type() to include the module and package
- name when using -builtin.
-
-2014-03-01: wsfulton
- [Python] SF patch #347 Fix missing argument count checking with -modern.
- Fixes regression introduced when builtin changes were introduced in SWIG-2.0.3.
-
-2014-02-21: wsfulton
- [PHP] Fix warning suppression using %warnfilter for PHP reserved class names.
-
-2014-02-19: olly
- [Lua] Add keyword warnings for Lua keywords and Basic Functions.
-
-2014-02-19: olly
- -Wallkw now includes keywords for all languages with keyword
- warnings (previously Go and R were missing).
-
-2014-02-19: olly
- [PHP] Update the lists of PHP keywords with new ones from PHP 5.4
- and newer (and some missing ones from 5.3). Reserved PHP constants
- names are now checked against enum values and constants, instead
- of against function and method names. Built-in PHP function names
- no longer match methods added by %extend. Functions and methods
- named '__sleep', '__wakeup', 'not', 'parent', or 'virtual' are no
- longer needlessly renamed.
-
-2014-02-15: wsfulton
- Fix the %$ismember %rename predicates to also apply to members added via %extend.
-
- Add %$isextendmember for %rename of members added via %extend. This can be used to
- distinguish between normal class/struct members and %extend members. For example
- '%$ismember, %$not %$isextendmember' will now identify just class/struct members.
-
- *** POTENTIAL INCOMPATIBILITY ***
-
-2014-02-16: hfalcic
- [Python] Patch #137 - fix crashes/exceptions in exception handling in Python 3.3
-
-2014-02-15: wsfulton
- [Java] Add support for the cdata library.
-
-2014-02-08: vkalinin
- Nested class support added. This primarily allows SWIG to properly parse nested
- classes and keep the nested class information in the parse tree. Java and C#
- have utilised this information wrapping the C++ nested classes as Java/C#
- nested classes. The remaining target languages ignore nested classes as in
- previous versions. Help is needed by users of these remaining languages to
- design how C++ nested classes can be best wrapped. Please talk to us on the
- swig-devel mailing list if you think you can help.
-
- Previously, there was limited nested class support. Nested classes were treated
- as opaque pointers. However, the "nestedworkaround" feature provided a way to
- wrap a nested class as if it was a global class. This feature no longer exists
- and is replaced by the new "flatnested" feature. This effectively does the same
- thing with less manual code to be written. Please see the 'Nested classes'
- section in the documentation in SWIGPlus.html if you were previously using this
- feature.
-
- SWIG now parses the contents of nested classes where previously it did not. You
- may find that you will need to make adjustments to your interface file as
- effectively extra code is being wrapped.
-
- *** POTENTIAL INCOMPATIBILITY ***
-
-2014-02-06: gjanssens
- [Guile] Patch #133. Make scm to string conversion work with non-ascii strings.
- Guile 2 has a completely rewritten string implementation. SWIG made some assumptions
- that are no longer valid as to the internals of guile's string representation.
-
-2014-01-30: wsfulton
- [C#] Add new swigtype_inout.i library containing SWIGTYPE *& OUTPUT typemaps.
-
- Example usage wrapping:
-
- void f(XXX *& x) { x = new XXX(111); }
-
- would be:
-
- XXX x = null;
- f(out x);
- // use x
- x.Dispose(); // manually clear memory or otherwise leave out and leave it to the garbage collector
-
-2014-01-21: ianlancetaylor
- [Go] Add %go_import directive.
-
-2014-01-21: ianlancetaylor
- [Go] Add support for Go 1.3, not yet released.
-
-2014-01-20: wsfulton
- Director exceptions (Swig::DirectorException) now derive from std::exception
- and hence provide the what() method. In Python and Ruby, this replaces the now
- deprecated DirectorException::getMessage() method.
-
-2014-01-14: diorcety
- Patch #112 - Fix symbol resolution involving scopes that have multiple levels
- of typedefs - fixes some template resolutions as well as some typemap searches.
-
-2014-01-11: wsfulton
- Fix and document the naturalvar feature override behaviour - the naturalvar
- feature attached to a variable name has precedence over the naturalvar
- feature attached to the variable's type. The overriding was not working
- when turning the feature off on the variable's name.
-
- Fix so that any use of the naturalvar feature will override the global
- setting. Previously when set globally by -naturalvar or %module(naturalvar=1),
- use of the naturalvar feature was not always honoured.
-
-2014-01-06: ianlancetaylor
- [Go] Fix bug that broke using directors from a thread not
- created by Go.
-
-2013-12-24: ptomulik
- [Python] SF Bug #1297
-
- Resolve several issues related to python imports.
- For example, it's now possible to import modules having the same module
- names, but belonging in different packages.
-
- From the user's viewpoint, this patch gives a little bit more control on
- import statements generated by SWIG. The user may choose to use relative
- or absolute imports.
-
- Some details:
- - we (still) generate import statements in the form 'import a.b.c' which
- corresponds to absolute imports in python3 and (the only available)
- ambiguous one in python2.
- - added -relativeimport option to use explicit relative import syntax
- (python3),
-
- The "Python Packages" section in the documentation discusses how to work
- with importing packages including the new -relativeimport command line option.
-
-2013-12-23: vadz
- [Octave, Perl, Python, R, Ruby, Tcl] Change the length of strings created from fixed-size char
- buffers in C code.
-
- This is a potential backwards compatibility break: a "char buf[5]" containing "ho\0la" was
- returned as a string of length 5 before, but is returned as a string of length 2 now. Also,
- it was possible to assign a (non-NUL-terminated) string "hello" to such a buffer before but
- now this fails and only "helo" can fit.
-
- Apply "char FIXSIZE[ANY]" typemaps to explicitly choose the old behaviour.
-
- *** POTENTIAL INCOMPATIBILITY ***
-
-2013-12-23: talby
- [Perl] Add support for directors.
-
-2013-12-18: ianlancetaylor
- [Go] Don't require that Go environment variables be set
- when running examples or testsuite when using Go 1 or
- later.
-
-2013-12-17: ianlancetaylor
- [Go] Remove -longsize option (for backward compatibility,
- ignore it if seen).
-
-2013-12-17: ianlancetaylor
- [Go] Add -go-pkgpath option.
-
-2013-12-16: ianlancetaylor
- [Go] Update for Go 1.2 release. Add support for linking
- SWIG code directly into executable, rather than using a
- shared library.
-
-2013-12-13: ianlancetaylor
- [Go] Add SWIG source file name as comments in generated
- files. This can be used by Go documentation tools.
-
-2013-12-12: jleveque
- [Lua] Fix typo (wchar instead of wchar_t) which made wchar.i
- for Lua useless.
-
-2013-12-12: vmiklos
- [PHP] PHP's peculiar call-time pass-by-reference feature was
- deprecated in PHP 5.3 and removed in PHP 5.4, so update the REF
- typemaps in phppointers.i to specify pass-by-reference in the
- function definition. Examples/php/pointer has been updated
- accordingly.
-
-2013-12-12: olly
- [PHP] The usage of $input in PHP directorout typemaps has been
- changed to be consistent with other languages. The typemaps
- provided by SWIG have been updated accordingly, but if you
- have written your own directorout typemaps, you'll need to
- update $input to &$input (or make equivalent changes).
-
- *** POTENTIAL INCOMPATIBILITY ***
-
-2013-11-27: vadz
- [C#, Java, Python] Add std_auto_ptr.i defining typemaps for returning std::auto_ptr<>.
-
-2013-11-09: wsfulton
- [C#] Apply patch #79 from Brant Kyser
- - Remove using directives from the generated C# code and fully qualify the use of all .NET
- framework types in order to minimize potential name collisions from input files defining
- types, namespace, etc with the same name as .NET framework members.
- - Globally qualify the use of .NET framework types in the System namespace
- - Remove .NET 1.1 support, .NET 2 is the minimum for the C# module
-
- This is a potential backwards compatibility break if code has been added relying on these using
- statements that used to be generated:
-
- using System;
- using System.Runtime.InteropServices;
-
- The quick fix to add these back in is to add the -DSWIG2_CSHARP command line option when
- executing SWIG. See CSharp.html documentation for more info.
-
- *** POTENTIAL INCOMPATIBILITY ***
-
-2013-11-05: wsfulton
- [Java] Fix some corner cases for the $packagepath/$javaclassname special variable substitution.
-
-2013-11-05: wsfulton
- [Java] Apply patch #91 from Marvin Greenberg - Add director:except feature for improved
- exception handling in director methods for Java.
-
-2013-10-15: vadz
- Allow using \l, \L, \u, \U and \E in the substitution part of %(regex:/pattern/subst/)
- inside %rename to change the case of the text being replaced.
-
-2013-10-12: wsfulton
- [CFFI] Apply #96 - superclass not lispify
-
-2013-10-12: wsfulton
- Merge in C++11 support from the gsoc2009-matevz branch where Matevz Jekovec first
- started the C++0x additions. Documentation of the C++11 features supported is in a
- new Chapter of the documentation, "SWIG and C++11" in Doc/Manual/CPlusPlus11.html.
-
-2013-10-04: wsfulton
- Fix %naturalvar not having any affect on templated classes instantiated with an
- enum as the template parameter type. Problem reported by Vadim Zeitlin.
-
-2013-09-20: wsfulton
- [Java] Fix a memory leak for the java char **STRING_ARRAY typemaps.
-
diff --git a/Doc/Manual/Sections.html b/Doc/Manual/Sections.html
index d769c2792..877ca2fae 100644
--- a/Doc/Manual/Sections.html
+++ b/Doc/Manual/Sections.html
@@ -6,7 +6,7 @@
<body bgcolor="#ffffff">
<H1><a name="Sections"></a>SWIG-3.0 Documentation</H1>
-Last update : SWIG-3.0.0 (16 Mar 2014)
+Last update : SWIG-3.0.1 (in progress)
<H2>Sections</H2>
diff --git a/README b/README
index 83dc31773..46497c148 100644
--- a/README
+++ b/README
@@ -1,6 +1,6 @@
SWIG (Simplified Wrapper and Interface Generator)
-Version: 3.0.0 (16 Mar 2014)
+Version: 3.0.1 (in progress)
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/configure.ac b/configure.ac
index f3414969e..f4d734e78 100644
--- a/configure.ac
+++ b/configure.ac
@@ -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 Tools/config directory in .m4 files.
-AC_INIT([swig],[3.0.0],[http://www.swig.org])
+AC_INIT([swig],[3.0.1],[http://www.swig.org])
dnl NB: When this requirement is increased to 2.60 or later, AC_PROG_SED
dnl definition below can be removed