summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ANNOUNCE8
-rw-r--r--CHANGES666
-rw-r--r--CHANGES.current667
-rw-r--r--Doc/Manual/Sections.html2
-rw-r--r--README2
-rw-r--r--RELEASENOTES8
-rw-r--r--configure.in2
7 files changed, 681 insertions, 674 deletions
diff --git a/ANNOUNCE b/ANNOUNCE
index d9a401553..ad3e8f8d6 100644
--- a/ANNOUNCE
+++ b/ANNOUNCE
@@ -1,8 +1,8 @@
-*** ANNOUNCE: SWIG 2.0.0 (2 June 2010) ***
+*** ANNOUNCE: SWIG 2.0.1 (in progress) ***
http://www.swig.org
-We're pleased to announce SWIG-2.0.0, the latest SWIG release.
+We're pleased to announce SWIG-2.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-2.0.0.tar.gz
+ http://prdownloads.sourceforge.net/swig/swig-2.0.1.tar.gz
A Windows version is also available at
- http://prdownloads.sourceforge.net/swig/swigwin-2.0.0.zip
+ http://prdownloads.sourceforge.net/swig/swigwin-2.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 83888c235..bd65df32b 100644
--- a/CHANGES
+++ b/CHANGES
@@ -1,8 +1,672 @@
SWIG (Simplified Wrapper and Interface Generator)
-See CHANGES.current file for changes in the current version.
+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.0 (2 June 2010)
+===========================
+
+See CHANGES file for changes in older releases.
See RELEASENOTES file for a summary of changes in each release.
+2010-06-02: wsfulton
+ [C#] Fix SWIG_STD_VECTOR_ENHANCED macro used in std::vector to work with
+ types containing commas, for example:
+
+ SWIG_STD_VECTOR_ENHANCED(std::pair< double, std::string >)
+
+2010-06-01: wsfulton
+ Add in std_shared_ptr.i for wrapping std::shared_ptr. Requires the %shared_ptr
+ macro like in the boost_shared_ptr.i library. std::tr1::shared_ptr can also be
+ wrapped if the following macro is defined:
+
+ #define SWIG_SHARED_PTR_SUBNAMESPACE tr1
+ %include <std_shared_ptr.i>
+
+ shared_ptr is also documented in Library.html now.
+
+2010-05-27: wsfulton
+ Add the ability for $typemap special variable macros to call other $typemap
+ special variable macros, for example:
+
+ %typemap(cstype) CC "CC"
+ %typemap(cstype) BB "$typemap(cstype, CC)"
+ %typemap(cstype) AA "$typemap(cstype, BB)"
+ void hah(AA aa);
+
+ This also fixes C# std::vector containers of shared_ptr and %shared_ptr.
+
+ Also added diagnostics for $typemap with -debug-tmsearch, for example, the
+ above displays additional diagnostic lines starting "Containing: ":
+
+ example.i:34: Searching for a suitable 'cstype' typemap for: AA aa
+ Looking for: AA aa
+ Looking for: AA
+ Using: %typemap(cstype) AA
+ Containing: $typemap(cstype, BB)
+ example.i:31: Searching for a suitable 'cstype' typemap for: BB
+ Looking for: BB
+ Using: %typemap(cstype) BB
+ Containing: $typemap(cstype, CC)
+ example.i:29: Searching for a suitable 'cstype' typemap for: CC
+ Looking for: CC
+ Using: %typemap(cstype) CC
+
+2010-05-26: olly
+ Fix %attribute2ref not to produce a syntax error if the last
+ argument (AccessorMethod) is omitted. Patch from David Piepgras
+ in SF#2235756.
+
+2010-05-26: olly
+ [PHP] When using %throws or %catches, SWIG-generated PHP5 wrappers
+ now throw PHP Exception objects instead of giving a PHP error of
+ type E_ERROR.
+
+ This change shouldn't cause incompatibility issues, since you can't
+ set an error handler for E_ERROR, so previously PHP would just exit
+ which also happens for unhandled exceptions. The benefit is you can
+ now catch them if you want to.
+
+ Fixes SF#2545578 and SF#2955522.
+
+2010-05-25: olly
+ [PHP] Add missing directorin typemap for const std::string &.
+ Fixes SF#3006404 reported by t-Legiaw.
+
+2010-05-23: wsfulton
+ [C#] Fix #2957375 - SWIGStringHelper and SWIGExceptionHelper not always being
+ initialized before use in .NET 4 as the classes were not marked beforefieldinit.
+ A static constructor has been added to the intermediary class like this:
+
+ %pragma(csharp) imclasscode=%{
+ static $imclassname() {
+ }
+ %}
+
+ If you had added your own custom static constructor to the intermediary class in
+ the same way as above, you will have to modify your approach to use static variable
+ initialization or define SWIG_CSHARP_NO_IMCLASS_STATIC_CONSTRUCTOR - See csharphead.swg.
+
+ *** POTENTIAL INCOMPATIBILITY ***
+
+2010-05-23: wsfulton
+ Fix #2408232. Improve shared_ptr and intrusive_ptr wrappers for classes in an
+ inheritance hierarchy. No special treatment is needed for derived classes.
+ The proxy class also no longer needs to be specified, it is automatically
+ deduced. The following macros are deprecated:
+ SWIG_SHARED_PTR(PROXYCLASS, TYPE)
+ SWIG_SHARED_PTR_DERIVED(PROXYCLASS, BASECLASSTYPE, TYPE)
+ and have been replaced by
+ %shared_ptr(TYPE)
+ Similarly for intrusive_ptr wrappers, the following macro is deprecated:
+ SWIG_INTRUSIVE_PTR(PROXYCLASS, TYPE)
+ SWIG_INTRUSIVE_PTR_DERIVED(PROXYCLASS, BASECLASSTYPE, TYPE)
+ and have been replaced by
+ %intrusive_ptr(TYPE)
+
+2010-05-21: olly
+ [PHP] Stop generating a bogus line of code in certain constructors.
+ This was mostly harmless, but caused a PHP notice to be issued, if
+ enabled (SF#2985684).
+
+2010-05-18: wsfulton
+ [Java] Fix member pointers on 64 bit platforms.
+
+2010-05-14: wsfulton
+ Fix wrapping of C++ enum boolean values reported by Torsten Landschoff:
+ typedef enum { PLAY = true, STOP = false } play_state;
+
+2010-05-14: olly
+ [PHP] Fix wrapping of global variables which was producing
+ uncompilable code in some cases.
+
+2010-05-12: drjoe
+ [R] Add two more changes from Wil Nolan. Get garbage
+ collection to work. Implement newfree
+
+2010-05-09: drjoe
+ Fix bug reported by Wil Nolan change creation of string so
+ that R 2.7.0+ can use char hashes
+
+2010-05-07: wsfulton
+ Apply patch #2955146 from Sergey Satskiy to fix expressions containing divide by
+ operator in constructor initialization lists.
+
+2010-05-05: wsfulton
+ [R] Memory leak fix handling const std::string & inputs, reported by Will Nolan.
+
+2010-05-01: wsfulton
+ Typemap matching enhancement for non-default typemaps. Previously all
+ qualifiers were stripped in one step, now they are stripped one at a time
+ starting with the left most qualifier. For example, int const*const
+ is first stripped to int *const then int *.
+
+ *** POTENTIAL INCOMPATIBILITY ***
+
+2010-04-25: bhy
+ [Python] Fix #2985655 - broken constructor renaming.
+
+2010-04-14: wsfulton
+ Typemap fragments are now official and documented in Typemaps.html.
+
+2010-04-09: wsfulton
+ [Ruby] Fix #2048064 and #2408020.
+ Apply Ubuntu patch to fix Ruby and std::vector wrappers with -minherit.
+ https://bugs.launchpad.net/ubuntu/+source/swig1.3/+bug/522874
+
+2010-04-09: wsfulton
+ [Mzscheme] Apply Ubuntu patch to fix std::map wrappers:
+ https://bugs.launchpad.net/ubuntu/+source/swig1.3/+bug/203876
+
+2010-04-09: wsfulton
+ [Python] Apply patch #2952374 - fix directors and the -nortti option.
+
+2010-04-09: wsfulton
+ [Lua] Fix #2887254 and #2946032 - SWIG_Lua_typename using wrong stack index.
+
+2010-04-03: wsfulton
+ [Python] Fix exceptions being thrown with the -threads option based on patch from Arto Vuori.
+ Fixes bug #2818499.
+
+2010-04-03: wsfulton
+ Fix Makefile targets: distclean and maintainer-clean
+
+2010-04-02: wsfulton
+ [Lua] Fix char pointers, wchar_t pointers and char arrays so that nil can be passed as a
+ valid value. Bug reported by Gedalia Pasternak.
+
+2010-04-01: wsfulton
+ Numerous subtle typemap matching rule fixes when using the default type. The typemap
+ matching rules are to take a type and find the best default typemap (SWIGTYPE, SWIGTYPE* etc),
+ then look for the next best match by reducing the chosen default type. The type deduction
+ now follows C++ class template partial specialization matching rules.
+
+ Below are the set of changes made showing the default type deduction
+ along with the old reduced type and the new version of the reduced type:
+
+ SWIGTYPE const &[ANY]
+ new: SWIGTYPE const &[]
+ old: SWIGTYPE (&)[ANY]
+
+ SWIGTYPE *const [ANY]
+ new: SWIGTYPE const [ANY]
+ old: SWIGTYPE *[ANY]
+
+ SWIGTYPE const *const [ANY]
+ new: SWIGTYPE *const [ANY]
+ old: SWIGTYPE const *[ANY]
+
+ SWIGTYPE const *const &
+ new: SWIGTYPE *const &
+ old: SWIGTYPE const *&
+
+ SWIGTYPE *const *
+ new: SWIGTYPE const *
+ old: SWIGTYPE **
+
+ SWIGTYPE *const &
+ new: SWIGTYPE const &
+ old: SWIGTYPE *&
+
+ Additionally, a const SWIGTYPE lookup is used now for any constant type. Some examples, where
+ T is some reduced type, eg int, struct Foo:
+
+ T const
+ new: SWIGTYPE const
+ old: SWIGTYPE
+
+ T *const
+ new: SWIGTYPE *const
+ old: SWIGTYPE *
+
+ T const[]
+ new: SWIGTYPE const[]
+ old: SWIGTYPE[]
+
+ enum T const
+ new: enum SWIGTYPE const
+ old: enum SWIGTYPE
+
+ T (*const )[]
+ new: SWIGTYPE (*const )[]
+ old: SWIGTYPE (*)[]
+
+ Reminder: the typemap matching rules can now be seen for any types being wrapped by using
+ either the -debug-tmsearch or -debug-tmused options.
+
+ In practice this leads to some subtle matching rule changes and the majority of users
+ won't notice any changes, except in the prime area of motivation for this change: Improve
+ STL containers of const pointers and passing const pointers by reference. This is fixed
+ because many of the STL containers use a type 'T const&' as parameters and when T is
+ a const pointer, for example, 'K const*', then the full type is 'K const*const&'. This
+ means that the 'SWIGTYPE *const&' typemaps now match when T is either a non-const or
+ const pointer. Furthermore, some target languages incorrectly had 'SWIGTYPE *&' typemaps
+ when these should have been 'SWIGTYPE *const&'. These have been corrected (Java, C#, Lua, PHP).
+
+ *** POTENTIAL INCOMPATIBILITY ***
+
+2010-03-13: wsfulton
+ [Java] Some very old deprecated pragma warnings are now errors.
+
+2010-03-13: wsfulton
+ Improve handling of file names and directories containing double/multiple path separators.
+
+2010-03-10: mutandiz (Mikel Bancroft)
+ [allegrocl] Use fully qualified symbol name of cl::identity in emit_defun().
+
+2010-03-06: wsfulton
+ [Java] The intermediary JNI class modifiers are now public by default meaning these
+ intermediary low level functions are now accessible by default from outside any package
+ used. The proxy class pointer constructor and getCPtr() methods are also now public.
+ These are needed in order for the nspace option to work without any other mods.
+ The previous default of protected access can be restored using:
+
+ SWIG_JAVABODY_METHODS(protected, protected, SWIGTYPE)
+ %pragma(java) jniclassclassmodifiers = "class"
+
+2010-03-06: wsfulton
+ [C#] Added the nspace feature for C#. Documentation for the nspace feature is now available.
+
+2010-03-04: wsfulton
+ Added the nspace feature. This adds some improved namespace support. Currently only Java
+ is supported for target languages, where C++ namespaces are automatically translated into
+ Java packages. The feature only applies to classes,struct,unions and enums declared within
+ a namespace. Methods and variables declared in namespaces still effectively have their
+ namespaces flattened. Example usage:
+
+ %feature(nspace) Outer::Inner1::Color;
+ %feature(nspace) Outer::Inner2::Color;
+
+ namespace Outer {
+ namespace Inner1 {
+ struct Color {
+ ...
+ };
+ }
+ namespace Inner2 {
+ struct Color {
+ ...
+ };
+ }
+ }
+
+ For Java, the -package option is also required when using the nspace feature. Say
+ we use -package com.myco, the two classes can then be accessed as follows from Java:
+
+ com.myco.Outer.Inner1.Color and com.myco.Outer.Inner2.Color.
+
+2010-02-27: wsfulton
+ [Python] Remove -dirvtable from the optimizations included by -O as it this option
+ currently leads to memory leaks as reported by Johan Blake.
+
+2010-02-27: wsfulton
+ License code changes: SWIG Source is GPL-v3 and library code license is now clearer
+ and is provided under a very permissive license. See http://www.swig.org/legal.html.
+
+2010-02-13: wsfulton
+ [Ruby] A few fixes for compiling under ruby-1.9.x including patch from 'Nibble'.
+
+2010-02-13: wsfulton
+ [Ruby] Apply patch from Patrick Bennett to fix RARRAY_LEN and RARRAY_PTR usage for Ruby 1.9.x
+ used in various STL wrappers.
+
+2010-02-13: wsfulton
+ [C#, Java] Fix incorrect multiply defined symbol name error when an enum item
+ and class name have the same name, as reported by Nathan Krieger. Example:
+
+ class Vector {};
+ namespace Text {
+ enum Preference { Vector };
+ }
+
+ This also fixes other incorrect corner case target language symbol name clashes.
+
+2010-02-11: wsfulton
+ Add the -debug-lsymbols option for displaying the target language layer symbols.
+
+2010-02-09: wsfulton
+ Fix -MM and -MMD options on Windows. They were not omitting files in the SWIG library as
+ they should be.
+
+2010-02-08: wsfulton
+ Fix #1807329 - When Makefile dependencies are being generated using the -M family of options
+ on Windows, the file paths have been corrected to use single backslashes rather than double
+ backslashes as path separators.
+
+2010-02-06: wsfulton
+ Fix #2918902 - language specific files not being generated in correct directory on
+ Windows when using forward slashes for -o, for example:
+ swig -python -c++ -o subdirectory/theinterface_wrap.cpp subdirectory/theinterface.i
+
+2010-02-05: wsfulton
+ Fix #2894405 - assertion when using -xmlout.
+
+2010-01-28: wsfulton
+ Fix typemap matching bug when a templated type has a typemap both specialized and not
+ specialized. For example:
+
+ template<typename T> struct XX { ... };
+ %typemap(in) const XX & "..."
+ %typemap(in) const XX< int > & "..."
+
+ resulted in the 2nd typemap being applied for all T in XX< T >.
+
+2010-01-22: wsfulton
+ Fix #2933129 - typemaps not being found when the unary scope operator (::) is used to denote
+ global scope, the typemap is now used in situations like this:
+
+ struct X {};
+ %typemap(in) const X & "..."
+ void m(const ::X &);
+
+ and this:
+
+ struct X {};
+ %typemap(in) const ::X & "..."
+ void m(const X &);
+
+2010-01-20: wsfulton
+ Fix some unary scope operator (::) denoting global scope problems in the types generated
+ into the C++ layer. Previously the unary scope operator was dropped in the generated code
+ if the type had any sort of qualifier, for example when using pointers, references, like
+ ::foo*, ::foo&, bar< ::foo* >.
+
+2010-01-13: olly
+ [PHP] Add datetime to the list of PHP predefined classes (patch
+ from David Fletcher in SF#2931042).
+
+2010-01-11: wsfulton
+ Slight change to warning, error and diagnostic reporting. The warning number is no
+ longer shown within brackets. This is to help default parsing of warning messages by
+ other tools, vim on Unix in particular.
+
+ Example original display using -Fstandard:
+ example.i:20: Warning(401): Nothing known about base class 'B'. Ignored.
+ New display:
+ example.i:20: Warning 401: Nothing known about base class 'B'. Ignored.
+
+ Also subtle fix to -Fmicrosoft format adding in missing space. Example original display:
+ example.i(20): Warning(401): Nothing known about base class 'Base'. Ignored.
+ New display:
+ example.i(20) : Warning 401: Nothing known about base class 'Base'. Ignored.
+
+2010-01-10: wsfulton
+ Fix a few inconsistencies in reporting of file/line numberings including modifying
+ the overload warnings 509, 512, 516, 474, 475 to now be two line warnings.
+
+2010-01-10: wsfulton
+ Modify -debug-tags output to use standard file name/line reporting so that editors
+ can easily navigate to the appropriate lines.
+ Was typically:
+ . top . include . include (/usr/share/swig/temp/trunk/Lib/swig.swg:312)
+ . top . include . include . include (/usr/share/swig/temp/trunk/Lib/swigwarnings.swg:39)
+ now:
+ /usr/share/swig/temp/trunk/Lib/swig.swg:312: . top . include . include
+ /usr/share/swig/temp/trunk/Lib/swigwarnings.swg:39: . top . include . include . include
+
+2010-01-03: wsfulton
+ Fix missing file/line numbers for typemap warnings and in output from the
+ -debug-tmsearch/-debug-tmused options.
+
+2010-01-03: wsfulton
+ Add typemaps used debugging option (-debug-tmused). When used each line displays
+ the typemap used for each type for which code is being generated including the file
+ and line number related to the type. This is effectively a condensed form of the
+ -debug-tmsearch option. Documented in Typemaps.html.
+
+2009-12-23: wsfulton
+ Fix for %javaexception and directors so that all the appropriate throws clauses
+ are generated. Problem reported by Peter Greenwood.
+
+2009-12-20: wsfulton
+ Add -debug-tmsearch option for debugging the typemap pattern matching rules.
+ Documented in Typemaps.html.
+
+2009-12-12: wsfulton
+ [Octave] Remove the -api option and use the new OCTAVE_API_VERSION_NUMBER
+ macro provided in the octave headers for determining the api version instead.
+
+2009-12-04: olly
+ [Ruby] Improve support for Ruby 1.9 under GCC. Addresses part of
+ SF#2859614.
+
+2009-12-04: olly
+ Fix handling of modulo operator (%) in constant expressions
+ (SF#2818562).
+
+2009-12-04: olly
+ [PHP] "empty" is a reserved word in PHP, so rename empty() method
+ on STL classes to "is_empty()" (previously this was automatically
+ renamed to "c_empty()").
+ *** POTENTIAL INCOMPATIBILITY ***
+
+2009-12-03: olly
+ [PHP] Add typemaps for long long and unsigned long long, and for
+ pointer to method.
+
+2009-12-02: olly
+ [PHP] Fix warning and rename of reserved class name to be case
+ insensitive.
+
+2009-12-01: wsfulton
+ Revert support for %extend and memberin typemaps added in swig-1.3.39. The
+ memberin typemaps are ignored again for member variables within a %extend block.
+ Documentation inconsistency reported by Torsten Landschoff.
+
+2009-11-29: wsfulton
+ [Java, C#] Fix generated quoting when using %javaconst(1)/%csconst(1) for
+ static const char member variables.
+
+ %javaconst(1) A;
+ %csconst(1) A;
+ struct X {
+ static const char A = 'A';
+ };
+
+2009-11-26: wsfulton
+ [Java, C#] Fix %javaconst(1)/%csconst(1) for static const member variables to
+ use the actual constant value if it is specified, rather than the C++ code to
+ access the member.
+
+ %javaconst(1) EN;
+ %csconst(1) EN;
+ struct X {
+ static const int EN = 2;
+ };
+
+2009-11-23: wsfulton
+ C++ nested typedef classes can now be handled too, for example:
+ struct Outer {
+ typedef Foo { } FooTypedef1, FooTypedef2;
+ };
+
+2009-11-18: wsfulton
+ The wrappers for C nested structs are now generated in the same order as declared
+ in the parsed code.
+
+2009-11-18: wsfulton
+ Fix #491476 - multiple declarations of nested structs, for example:
+ struct Outer {
+ struct {
+ int val;
+ } inner1, inner2, *inner3, inner4[1];
+ } outer;
+
+2009-11-17: wsfulton
+ Fix parsing of enum declaration and initialization, for example:
+
+ enum ABC {
+ a,
+ b,
+ c
+ } A = a, *pC = &C, array[3] = {a, b, c};
+
+2009-11-17: wsfulton
+ Fix parsing of struct declaration and initialization, for example:
+
+ struct S {
+ int x;
+ } instance = { 10 };
+
+2009-11-15: wsfulton
+ Fix #1960977 - Syntax error parsing derived nested class declaration and member
+ variable instance.
+
+2009-11-14: wsfulton
+ Fix #2310483 - function pointer typedef within extern "C" block.
+
+2009-11-13: wsfulton
+ Fix usage of nested template classes within templated classes so that compileable code
+ is generated.
+
+2009-11-13: olly
+ [php] Fix place where class prefix (as specified with -prefix)
+ wasn't being used. Patch from gverbruggen in SF#2892647.
+
+2009-11-12: wsfulton
+ Fix usage of nested template classes so that compileable code is generated - the nested
+ template class is now treated like a normal nested classes, that is, as an opaque type
+ unless the nestedworkaround feature is used.
+
+2009-11-12: wsfulton
+ Replace SWIGWARN_PARSE_NESTED_CLASS with SWIGWARN_PARSE_NAMED_NESTED_CLASS and
+ SWIGWARN_PARSE_UNNAMED_NESTED_CLASS for named and unnamed nested classes respectively.
+
+ Named nested class ignored warnings can now be suppressed by name using %warnfilter, eg:
+
+ %warnfilter(SWIGWARN_PARSE_NAMED_NESTED_CLASS) Outer::Inner;
+
+ but clearly unnamed nested classes cannot and the global suppression is still required, eg:
+
+ #pragma SWIG nowarn=SWIGWARN_PARSE_UNNAMED_NESTED_CLASS
+
+2009-11-11: wsfulton
+ Added the nestedworkaround feature as a way to use the full functionality of a nested class
+ (C++ mode only). It removes the nested class from SWIG's type information so it is as if SWIG
+ had never parsed the nested class. The documented nested class workarounds using a global
+ fake class stopped working when SWIG treated the nested class as an opaque pointer, and
+ this feature reverts this behaviour. The documentation has been updated with details of how
+ to use and implement it, see the "Nested classes" section in SWIGPlus.html.
+
+2009-11-11: wsfulton
+ There were a number of C++ cases where nested classes/structs/unions were being handled
+ as if C code was being parsed which would oftentimes lead to uncompileable code as an
+ attempt was made to wrap the nested structs like it is documented for C code. Now all
+ nested structs/classes/unions are ignored in C++ mode, as was always documented. However,
+ there is an improvement as usage of nested structs/classes/unions is now always treated
+ as an opaque type by default, resulting in generated code that should always compile.
+
+ *** POTENTIAL INCOMPATIBILITY ***
+
+2009-11-09: drjoe
+ Fix R for -fcompact and add std_map.i
+
+2009-11-08: wsfulton
+ Fix inconsistency for nested structs/unions/classes. Uncompileable code was being
+ generated when inner struct and union declarations were used as types within the
+ inner struct. The inner struct/union is now treated as a forward declaration making the
+ behaviour the same as an inner class. (C++ code), eg:
+
+ struct Outer {
+ struct InnerStruct { int x; };
+ InnerStruct* getInnerStruct();
+ };
+
+2009-11-08: wsfulton
+ Ignored nested class/struct warnings now display the name of the ignored class/struct.
+
+2009-11-07: wsfulton
+ Bug #1514681 - Fix nested template classes within a namespace generated uncompileable
+ code and introduced strange side effects to other wrapper code especially code
+ after the nested template class. Note that nested template classes are still ignored.
+
+2009-11-07: wsfulton
+ Add new debug options:
+ -debug-symtabs - Display symbol tables information
+ -debug-symbols - Display target language symbols in the symbol tables
+ -debug-csymbols - Display C symbols in the symbol tables
+
+2009-11-03: wsfulton
+ Fix some usage of unary scope operator (::) denoting global scope, for example:
+
+ namespace AA { /* ... */ }
+ using namespace ::AA;
+
+ and bug #1816802 - SwigValueWrapper should be used:
+
+ struct CC {
+ CC(int); // no default constructor
+ };
+ ::CC x();
+
+ and in template parameter specializations:
+
+ struct S {};
+ template <typename T> struct X { void a() {}; };
+ template <> struct X<S> { void b() {}; };
+ %template(MyTConcrete) X< ::S >;
+
+ plus probably some other corner case usage of ::.
+
+2009-11-02: olly
+ [Python] Fix potential memory leak in initialisation code for the
+ generated module.
+
+2009-10-23: wsfulton
+ Fix seg fault when using a named nested template instantiation using %template(name)
+ within a class. A warning that these are not supported is now issued plus processing
+ continues as if no name was given.
+
+2009-10-20: wsfulton
+ [Python] Fix std::vector<const T*>. This would previously compile, but not run correctly.
+
+2009-10-20: wsfulton
+ Fixed previously fairly poor template partial specialization and explicit
+ specialization support. Numerous bugs in this area have been fixed including:
+
+ - Template argument deduction implemented for template type arguments, eg this now
+ works:
+ template<typename T> class X {};
+ template<typename T> class X<T *> {};
+ %template(X1) X<const int *>; // Chooses T * specialization
+
+ and more complex cases with multiple parameters and a mix of template argument
+ deduction and explicitly specialised parameters, eg:
+ template <typename T1, typename T2> struct TwoParm { void a() {} };
+ template <typename T1> struct TwoParm<T1 *, int *> { void e() {} };
+ %template(E) TwoParm<int **, int *>;
+
+ Note that the primary template must now be in scope, like in C++, when
+ an explicit or partial specialization is instantiated with %template.
+
+ *** POTENTIAL INCOMPATIBILITY ***
+
+2009-09-14: wsfulton
+ [C#] Add %csattributes for adding C# attributes to enum values, see docs for example.
+
+2009-09-11: wsfulton
+ Fix memmove regression in cdata.i as reported by Adriaan Renting.
+
+2009-09-07: wsfulton
+ Fix constant expressions containing <= or >=.
+
+2009-09-02: wsfulton
+ The following operators in constant expressions now result in type bool for C++
+ wrappers and remain as type int for C wrappers, as per each standard:
+
+ && || == != < > <= >= (Actually the last 4 are still broken). For example:
+
+ #define A 10
+ #define B 10
+ #define A_EQ_B A == B // now wrapped as type bool for C++
+ #define A_AND_B A && B // now wrapped as type bool for C++
+
+2009-09-02: wsfulton
+ Fix #2845746. true and false are now recognised keywords (only when wrapping C++).
+ Constants such as the following are now wrapped (as type bool):
+ #define FOO true
+ #define BAR FOO && false
+
Version 1.3.40 (18 August 2009)
===============================
diff --git a/CHANGES.current b/CHANGES.current
index d463d1657..9982286c2 100644
--- a/CHANGES.current
+++ b/CHANGES.current
@@ -1,664 +1,7 @@
-Version 2.0.0 (2 June 2010)
-===========================
-
-See CHANGES file for changes in older releases.
-See RELEASENOTES file for a summary of changes in each release.
-
-2010-06-02: wsfulton
- [C#] Fix SWIG_STD_VECTOR_ENHANCED macro used in std::vector to work with
- types containing commas, for example:
-
- SWIG_STD_VECTOR_ENHANCED(std::pair< double, std::string >)
-
-2010-06-01: wsfulton
- Add in std_shared_ptr.i for wrapping std::shared_ptr. Requires the %shared_ptr
- macro like in the boost_shared_ptr.i library. std::tr1::shared_ptr can also be
- wrapped if the following macro is defined:
-
- #define SWIG_SHARED_PTR_SUBNAMESPACE tr1
- %include <std_shared_ptr.i>
-
- shared_ptr is also documented in Library.html now.
-
-2010-05-27: wsfulton
- Add the ability for $typemap special variable macros to call other $typemap
- special variable macros, for example:
-
- %typemap(cstype) CC "CC"
- %typemap(cstype) BB "$typemap(cstype, CC)"
- %typemap(cstype) AA "$typemap(cstype, BB)"
- void hah(AA aa);
-
- This also fixes C# std::vector containers of shared_ptr and %shared_ptr.
-
- Also added diagnostics for $typemap with -debug-tmsearch, for example, the
- above displays additional diagnostic lines starting "Containing: ":
-
- example.i:34: Searching for a suitable 'cstype' typemap for: AA aa
- Looking for: AA aa
- Looking for: AA
- Using: %typemap(cstype) AA
- Containing: $typemap(cstype, BB)
- example.i:31: Searching for a suitable 'cstype' typemap for: BB
- Looking for: BB
- Using: %typemap(cstype) BB
- Containing: $typemap(cstype, CC)
- example.i:29: Searching for a suitable 'cstype' typemap for: CC
- Looking for: CC
- Using: %typemap(cstype) CC
-
-2010-05-26: olly
- Fix %attribute2ref not to produce a syntax error if the last
- argument (AccessorMethod) is omitted. Patch from David Piepgras
- in SF#2235756.
-
-2010-05-26: olly
- [PHP] When using %throws or %catches, SWIG-generated PHP5 wrappers
- now throw PHP Exception objects instead of giving a PHP error of
- type E_ERROR.
-
- This change shouldn't cause incompatibility issues, since you can't
- set an error handler for E_ERROR, so previously PHP would just exit
- which also happens for unhandled exceptions. The benefit is you can
- now catch them if you want to.
-
- Fixes SF#2545578 and SF#2955522.
-
-2010-05-25: olly
- [PHP] Add missing directorin typemap for const std::string &.
- Fixes SF#3006404 reported by t-Legiaw.
-
-2010-05-23: wsfulton
- [C#] Fix #2957375 - SWIGStringHelper and SWIGExceptionHelper not always being
- initialized before use in .NET 4 as the classes were not marked beforefieldinit.
- A static constructor has been added to the intermediary class like this:
-
- %pragma(csharp) imclasscode=%{
- static $imclassname() {
- }
- %}
-
- If you had added your own custom static constructor to the intermediary class in
- the same way as above, you will have to modify your approach to use static variable
- initialization or define SWIG_CSHARP_NO_IMCLASS_STATIC_CONSTRUCTOR - See csharphead.swg.
-
- *** POTENTIAL INCOMPATIBILITY ***
-
-2010-05-23: wsfulton
- Fix #2408232. Improve shared_ptr and intrusive_ptr wrappers for classes in an
- inheritance hierarchy. No special treatment is needed for derived classes.
- The proxy class also no longer needs to be specified, it is automatically
- deduced. The following macros are deprecated:
- SWIG_SHARED_PTR(PROXYCLASS, TYPE)
- SWIG_SHARED_PTR_DERIVED(PROXYCLASS, BASECLASSTYPE, TYPE)
- and have been replaced by
- %shared_ptr(TYPE)
- Similarly for intrusive_ptr wrappers, the following macro is deprecated:
- SWIG_INTRUSIVE_PTR(PROXYCLASS, TYPE)
- SWIG_INTRUSIVE_PTR_DERIVED(PROXYCLASS, BASECLASSTYPE, TYPE)
- and have been replaced by
- %intrusive_ptr(TYPE)
-
-2010-05-21: olly
- [PHP] Stop generating a bogus line of code in certain constructors.
- This was mostly harmless, but caused a PHP notice to be issued, if
- enabled (SF#2985684).
-
-2010-05-18: wsfulton
- [Java] Fix member pointers on 64 bit platforms.
-
-2010-05-14: wsfulton
- Fix wrapping of C++ enum boolean values reported by Torsten Landschoff:
- typedef enum { PLAY = true, STOP = false } play_state;
-
-2010-05-14: olly
- [PHP] Fix wrapping of global variables which was producing
- uncompilable code in some cases.
-
-2010-05-12: drjoe
- [R] Add two more changes from Wil Nolan. Get garbage
- collection to work. Implement newfree
-
-2010-05-09: drjoe
- Fix bug reported by Wil Nolan change creation of string so
- that R 2.7.0+ can use char hashes
-
-2010-05-07: wsfulton
- Apply patch #2955146 from Sergey Satskiy to fix expressions containing divide by
- operator in constructor initialization lists.
-
-2010-05-05: wsfulton
- [R] Memory leak fix handling const std::string & inputs, reported by Will Nolan.
-
-2010-05-01: wsfulton
- Typemap matching enhancement for non-default typemaps. Previously all
- qualifiers were stripped in one step, now they are stripped one at a time
- starting with the left most qualifier. For example, int const*const
- is first stripped to int *const then int *.
-
- *** POTENTIAL INCOMPATIBILITY ***
-
-2010-04-25: bhy
- [Python] Fix #2985655 - broken constructor renaming.
-
-2010-04-14: wsfulton
- Typemap fragments are now official and documented in Typemaps.html.
-
-2010-04-09: wsfulton
- [Ruby] Fix #2048064 and #2408020.
- Apply Ubuntu patch to fix Ruby and std::vector wrappers with -minherit.
- https://bugs.launchpad.net/ubuntu/+source/swig1.3/+bug/522874
-
-2010-04-09: wsfulton
- [Mzscheme] Apply Ubuntu patch to fix std::map wrappers:
- https://bugs.launchpad.net/ubuntu/+source/swig1.3/+bug/203876
-
-2010-04-09: wsfulton
- [Python] Apply patch #2952374 - fix directors and the -nortti option.
-
-2010-04-09: wsfulton
- [Lua] Fix #2887254 and #2946032 - SWIG_Lua_typename using wrong stack index.
-
-2010-04-03: wsfulton
- [Python] Fix exceptions being thrown with the -threads option based on patch from Arto Vuori.
- Fixes bug #2818499.
-
-2010-04-03: wsfulton
- Fix Makefile targets: distclean and maintainer-clean
-
-2010-04-02: wsfulton
- [Lua] Fix char pointers, wchar_t pointers and char arrays so that nil can be passed as a
- valid value. Bug reported by Gedalia Pasternak.
-
-2010-04-01: wsfulton
- Numerous subtle typemap matching rule fixes when using the default type. The typemap
- matching rules are to take a type and find the best default typemap (SWIGTYPE, SWIGTYPE* etc),
- then look for the next best match by reducing the chosen default type. The type deduction
- now follows C++ class template partial specialization matching rules.
-
- Below are the set of changes made showing the default type deduction
- along with the old reduced type and the new version of the reduced type:
-
- SWIGTYPE const &[ANY]
- new: SWIGTYPE const &[]
- old: SWIGTYPE (&)[ANY]
-
- SWIGTYPE *const [ANY]
- new: SWIGTYPE const [ANY]
- old: SWIGTYPE *[ANY]
-
- SWIGTYPE const *const [ANY]
- new: SWIGTYPE *const [ANY]
- old: SWIGTYPE const *[ANY]
-
- SWIGTYPE const *const &
- new: SWIGTYPE *const &
- old: SWIGTYPE const *&
-
- SWIGTYPE *const *
- new: SWIGTYPE const *
- old: SWIGTYPE **
-
- SWIGTYPE *const &
- new: SWIGTYPE const &
- old: SWIGTYPE *&
-
- Additionally, a const SWIGTYPE lookup is used now for any constant type. Some examples, where
- T is some reduced type, eg int, struct Foo:
-
- T const
- new: SWIGTYPE const
- old: SWIGTYPE
-
- T *const
- new: SWIGTYPE *const
- old: SWIGTYPE *
-
- T const[]
- new: SWIGTYPE const[]
- old: SWIGTYPE[]
-
- enum T const
- new: enum SWIGTYPE const
- old: enum SWIGTYPE
-
- T (*const )[]
- new: SWIGTYPE (*const )[]
- old: SWIGTYPE (*)[]
-
- Reminder: the typemap matching rules can now be seen for any types being wrapped by using
- either the -debug-tmsearch or -debug-tmused options.
-
- In practice this leads to some subtle matching rule changes and the majority of users
- won't notice any changes, except in the prime area of motivation for this change: Improve
- STL containers of const pointers and passing const pointers by reference. This is fixed
- because many of the STL containers use a type 'T const&' as parameters and when T is
- a const pointer, for example, 'K const*', then the full type is 'K const*const&'. This
- means that the 'SWIGTYPE *const&' typemaps now match when T is either a non-const or
- const pointer. Furthermore, some target languages incorrectly had 'SWIGTYPE *&' typemaps
- when these should have been 'SWIGTYPE *const&'. These have been corrected (Java, C#, Lua, PHP).
-
- *** POTENTIAL INCOMPATIBILITY ***
-
-2010-03-13: wsfulton
- [Java] Some very old deprecated pragma warnings are now errors.
-
-2010-03-13: wsfulton
- Improve handling of file names and directories containing double/multiple path separators.
-
-2010-03-10: mutandiz (Mikel Bancroft)
- [allegrocl] Use fully qualified symbol name of cl::identity in emit_defun().
-
-2010-03-06: wsfulton
- [Java] The intermediary JNI class modifiers are now public by default meaning these
- intermediary low level functions are now accessible by default from outside any package
- used. The proxy class pointer constructor and getCPtr() methods are also now public.
- These are needed in order for the nspace option to work without any other mods.
- The previous default of protected access can be restored using:
-
- SWIG_JAVABODY_METHODS(protected, protected, SWIGTYPE)
- %pragma(java) jniclassclassmodifiers = "class"
-
-2010-03-06: wsfulton
- [C#] Added the nspace feature for C#. Documentation for the nspace feature is now available.
-
-2010-03-04: wsfulton
- Added the nspace feature. This adds some improved namespace support. Currently only Java
- is supported for target languages, where C++ namespaces are automatically translated into
- Java packages. The feature only applies to classes,struct,unions and enums declared within
- a namespace. Methods and variables declared in namespaces still effectively have their
- namespaces flattened. Example usage:
-
- %feature(nspace) Outer::Inner1::Color;
- %feature(nspace) Outer::Inner2::Color;
-
- namespace Outer {
- namespace Inner1 {
- struct Color {
- ...
- };
- }
- namespace Inner2 {
- struct Color {
- ...
- };
- }
- }
-
- For Java, the -package option is also required when using the nspace feature. Say
- we use -package com.myco, the two classes can then be accessed as follows from Java:
-
- com.myco.Outer.Inner1.Color and com.myco.Outer.Inner2.Color.
-
-2010-02-27: wsfulton
- [Python] Remove -dirvtable from the optimizations included by -O as it this option
- currently leads to memory leaks as reported by Johan Blake.
-
-2010-02-27: wsfulton
- License code changes: SWIG Source is GPL-v3 and library code license is now clearer
- and is provided under a very permissive license. See http://www.swig.org/legal.html.
-
-2010-02-13: wsfulton
- [Ruby] A few fixes for compiling under ruby-1.9.x including patch from 'Nibble'.
-
-2010-02-13: wsfulton
- [Ruby] Apply patch from Patrick Bennett to fix RARRAY_LEN and RARRAY_PTR usage for Ruby 1.9.x
- used in various STL wrappers.
-
-2010-02-13: wsfulton
- [C#, Java] Fix incorrect multiply defined symbol name error when an enum item
- and class name have the same name, as reported by Nathan Krieger. Example:
-
- class Vector {};
- namespace Text {
- enum Preference { Vector };
- }
-
- This also fixes other incorrect corner case target language symbol name clashes.
-
-2010-02-11: wsfulton
- Add the -debug-lsymbols option for displaying the target language layer symbols.
-
-2010-02-09: wsfulton
- Fix -MM and -MMD options on Windows. They were not omitting files in the SWIG library as
- they should be.
-
-2010-02-08: wsfulton
- Fix #1807329 - When Makefile dependencies are being generated using the -M family of options
- on Windows, the file paths have been corrected to use single backslashes rather than double
- backslashes as path separators.
+This file contains 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.
-2010-02-06: wsfulton
- Fix #2918902 - language specific files not being generated in correct directory on
- Windows when using forward slashes for -o, for example:
- swig -python -c++ -o subdirectory/theinterface_wrap.cpp subdirectory/theinterface.i
-
-2010-02-05: wsfulton
- Fix #2894405 - assertion when using -xmlout.
-
-2010-01-28: wsfulton
- Fix typemap matching bug when a templated type has a typemap both specialized and not
- specialized. For example:
-
- template<typename T> struct XX { ... };
- %typemap(in) const XX & "..."
- %typemap(in) const XX< int > & "..."
-
- resulted in the 2nd typemap being applied for all T in XX< T >.
-
-2010-01-22: wsfulton
- Fix #2933129 - typemaps not being found when the unary scope operator (::) is used to denote
- global scope, the typemap is now used in situations like this:
-
- struct X {};
- %typemap(in) const X & "..."
- void m(const ::X &);
-
- and this:
-
- struct X {};
- %typemap(in) const ::X & "..."
- void m(const X &);
-
-2010-01-20: wsfulton
- Fix some unary scope operator (::) denoting global scope problems in the types generated
- into the C++ layer. Previously the unary scope operator was dropped in the generated code
- if the type had any sort of qualifier, for example when using pointers, references, like
- ::foo*, ::foo&, bar< ::foo* >.
-
-2010-01-13: olly
- [PHP] Add datetime to the list of PHP predefined classes (patch
- from David Fletcher in SF#2931042).
-
-2010-01-11: wsfulton
- Slight change to warning, error and diagnostic reporting. The warning number is no
- longer shown within brackets. This is to help default parsing of warning messages by
- other tools, vim on Unix in particular.
-
- Example original display using -Fstandard:
- example.i:20: Warning(401): Nothing known about base class 'B'. Ignored.
- New display:
- example.i:20: Warning 401: Nothing known about base class 'B'. Ignored.
-
- Also subtle fix to -Fmicrosoft format adding in missing space. Example original display:
- example.i(20): Warning(401): Nothing known about base class 'Base'. Ignored.
- New display:
- example.i(20) : Warning 401: Nothing known about base class 'Base'. Ignored.
-
-2010-01-10: wsfulton
- Fix a few inconsistencies in reporting of file/line numberings including modifying
- the overload warnings 509, 512, 516, 474, 475 to now be two line warnings.
-
-2010-01-10: wsfulton
- Modify -debug-tags output to use standard file name/line reporting so that editors
- can easily navigate to the appropriate lines.
- Was typically:
- . top . include . include (/usr/share/swig/temp/trunk/Lib/swig.swg:312)
- . top . include . include . include (/usr/share/swig/temp/trunk/Lib/swigwarnings.swg:39)
- now:
- /usr/share/swig/temp/trunk/Lib/swig.swg:312: . top . include . include
- /usr/share/swig/temp/trunk/Lib/swigwarnings.swg:39: . top . include . include . include
-
-2010-01-03: wsfulton
- Fix missing file/line numbers for typemap warnings and in output from the
- -debug-tmsearch/-debug-tmused options.
-
-2010-01-03: wsfulton
- Add typemaps used debugging option (-debug-tmused). When used each line displays
- the typemap used for each type for which code is being generated including the file
- and line number related to the type. This is effectively a condensed form of the
- -debug-tmsearch option. Documented in Typemaps.html.
-
-2009-12-23: wsfulton
- Fix for %javaexception and directors so that all the appropriate throws clauses
- are generated. Problem reported by Peter Greenwood.
-
-2009-12-20: wsfulton
- Add -debug-tmsearch option for debugging the typemap pattern matching rules.
- Documented in Typemaps.html.
-
-2009-12-12: wsfulton
- [Octave] Remove the -api option and use the new OCTAVE_API_VERSION_NUMBER
- macro provided in the octave headers for determining the api version instead.
-
-2009-12-04: olly
- [Ruby] Improve support for Ruby 1.9 under GCC. Addresses part of
- SF#2859614.
-
-2009-12-04: olly
- Fix handling of modulo operator (%) in constant expressions
- (SF#2818562).
-
-2009-12-04: olly
- [PHP] "empty" is a reserved word in PHP, so rename empty() method
- on STL classes to "is_empty()" (previously this was automatically
- renamed to "c_empty()").
- *** POTENTIAL INCOMPATIBILITY ***
-
-2009-12-03: olly
- [PHP] Add typemaps for long long and unsigned long long, and for
- pointer to method.
-
-2009-12-02: olly
- [PHP] Fix warning and rename of reserved class name to be case
- insensitive.
-
-2009-12-01: wsfulton
- Revert support for %extend and memberin typemaps added in swig-1.3.39. The
- memberin typemaps are ignored again for member variables within a %extend block.
- Documentation inconsistency reported by Torsten Landschoff.
-
-2009-11-29: wsfulton
- [Java, C#] Fix generated quoting when using %javaconst(1)/%csconst(1) for
- static const char member variables.
-
- %javaconst(1) A;
- %csconst(1) A;
- struct X {
- static const char A = 'A';
- };
-
-2009-11-26: wsfulton
- [Java, C#] Fix %javaconst(1)/%csconst(1) for static const member variables to
- use the actual constant value if it is specified, rather than the C++ code to
- access the member.
-
- %javaconst(1) EN;
- %csconst(1) EN;
- struct X {
- static const int EN = 2;
- };
-
-2009-11-23: wsfulton
- C++ nested typedef classes can now be handled too, for example:
- struct Outer {
- typedef Foo { } FooTypedef1, FooTypedef2;
- };
-
-2009-11-18: wsfulton
- The wrappers for C nested structs are now generated in the same order as declared
- in the parsed code.
-
-2009-11-18: wsfulton
- Fix #491476 - multiple declarations of nested structs, for example:
- struct Outer {
- struct {
- int val;
- } inner1, inner2, *inner3, inner4[1];
- } outer;
-
-2009-11-17: wsfulton
- Fix parsing of enum declaration and initialization, for example:
-
- enum ABC {
- a,
- b,
- c
- } A = a, *pC = &C, array[3] = {a, b, c};
-
-2009-11-17: wsfulton
- Fix parsing of struct declaration and initialization, for example:
-
- struct S {
- int x;
- } instance = { 10 };
-
-2009-11-15: wsfulton
- Fix #1960977 - Syntax error parsing derived nested class declaration and member
- variable instance.
-
-2009-11-14: wsfulton
- Fix #2310483 - function pointer typedef within extern "C" block.
-
-2009-11-13: wsfulton
- Fix usage of nested template classes within templated classes so that compileable code
- is generated.
-
-2009-11-13: olly
- [php] Fix place where class prefix (as specified with -prefix)
- wasn't being used. Patch from gverbruggen in SF#2892647.
-
-2009-11-12: wsfulton
- Fix usage of nested template classes so that compileable code is generated - the nested
- template class is now treated like a normal nested classes, that is, as an opaque type
- unless the nestedworkaround feature is used.
-
-2009-11-12: wsfulton
- Replace SWIGWARN_PARSE_NESTED_CLASS with SWIGWARN_PARSE_NAMED_NESTED_CLASS and
- SWIGWARN_PARSE_UNNAMED_NESTED_CLASS for named and unnamed nested classes respectively.
-
- Named nested class ignored warnings can now be suppressed by name using %warnfilter, eg:
-
- %warnfilter(SWIGWARN_PARSE_NAMED_NESTED_CLASS) Outer::Inner;
-
- but clearly unnamed nested classes cannot and the global suppression is still required, eg:
-
- #pragma SWIG nowarn=SWIGWARN_PARSE_UNNAMED_NESTED_CLASS
-
-2009-11-11: wsfulton
- Added the nestedworkaround feature as a way to use the full functionality of a nested class
- (C++ mode only). It removes the nested class from SWIG's type information so it is as if SWIG
- had never parsed the nested class. The documented nested class workarounds using a global
- fake class stopped working when SWIG treated the nested class as an opaque pointer, and
- this feature reverts this behaviour. The documentation has been updated with details of how
- to use and implement it, see the "Nested classes" section in SWIGPlus.html.
-
-2009-11-11: wsfulton
- There were a number of C++ cases where nested classes/structs/unions were being handled
- as if C code was being parsed which would oftentimes lead to uncompileable code as an
- attempt was made to wrap the nested structs like it is documented for C code. Now all
- nested structs/classes/unions are ignored in C++ mode, as was always documented. However,
- there is an improvement as usage of nested structs/classes/unions is now always treated
- as an opaque type by default, resulting in generated code that should always compile.
-
- *** POTENTIAL INCOMPATIBILITY ***
-
-2009-11-09: drjoe
- Fix R for -fcompact and add std_map.i
-
-2009-11-08: wsfulton
- Fix inconsistency for nested structs/unions/classes. Uncompileable code was being
- generated when inner struct and union declarations were used as types within the
- inner struct. The inner struct/union is now treated as a forward declaration making the
- behaviour the same as an inner class. (C++ code), eg:
-
- struct Outer {
- struct InnerStruct { int x; };
- InnerStruct* getInnerStruct();
- };
-
-2009-11-08: wsfulton
- Ignored nested class/struct warnings now display the name of the ignored class/struct.
-
-2009-11-07: wsfulton
- Bug #1514681 - Fix nested template classes within a namespace generated uncompileable
- code and introduced strange side effects to other wrapper code especially code
- after the nested template class. Note that nested template classes are still ignored.
-
-2009-11-07: wsfulton
- Add new debug options:
- -debug-symtabs - Display symbol tables information
- -debug-symbols - Display target language symbols in the symbol tables
- -debug-csymbols - Display C symbols in the symbol tables
-
-2009-11-03: wsfulton
- Fix some usage of unary scope operator (::) denoting global scope, for example:
-
- namespace AA { /* ... */ }
- using namespace ::AA;
-
- and bug #1816802 - SwigValueWrapper should be used:
-
- struct CC {
- CC(int); // no default constructor
- };
- ::CC x();
-
- and in template parameter specializations:
-
- struct S {};
- template <typename T> struct X { void a() {}; };
- template <> struct X<S> { void b() {}; };
- %template(MyTConcrete) X< ::S >;
-
- plus probably some other corner case usage of ::.
-
-2009-11-02: olly
- [Python] Fix potential memory leak in initialisation code for the
- generated module.
-
-2009-10-23: wsfulton
- Fix seg fault when using a named nested template instantiation using %template(name)
- within a class. A warning that these are not supported is now issued plus processing
- continues as if no name was given.
-
-2009-10-20: wsfulton
- [Python] Fix std::vector<const T*>. This would previously compile, but not run correctly.
-
-2009-10-20: wsfulton
- Fixed previously fairly poor template partial specialization and explicit
- specialization support. Numerous bugs in this area have been fixed including:
-
- - Template argument deduction implemented for template type arguments, eg this now
- works:
- template<typename T> class X {};
- template<typename T> class X<T *> {};
- %template(X1) X<const int *>; // Chooses T * specialization
-
- and more complex cases with multiple parameters and a mix of template argument
- deduction and explicitly specialised parameters, eg:
- template <typename T1, typename T2> struct TwoParm { void a() {} };
- template <typename T1> struct TwoParm<T1 *, int *> { void e() {} };
- %template(E) TwoParm<int **, int *>;
-
- Note that the primary template must now be in scope, like in C++, when
- an explicit or partial specialization is instantiated with %template.
-
- *** POTENTIAL INCOMPATIBILITY ***
-
-2009-09-14: wsfulton
- [C#] Add %csattributes for adding C# attributes to enum values, see docs for example.
-
-2009-09-11: wsfulton
- Fix memmove regression in cdata.i as reported by Adriaan Renting.
-
-2009-09-07: wsfulton
- Fix constant expressions containing <= or >=.
-
-2009-09-02: wsfulton
- The following operators in constant expressions now result in type bool for C++
- wrappers and remain as type int for C wrappers, as per each standard:
-
- && || == != < > <= >= (Actually the last 4 are still broken). For example:
-
- #define A 10
- #define B 10
- #define A_EQ_B A == B // now wrapped as type bool for C++
- #define A_AND_B A && B // now wrapped as type bool for C++
-
-2009-09-02: wsfulton
- Fix #2845746. true and false are now recognised keywords (only when wrapping C++).
- Constants such as the following are now wrapped (as type bool):
- #define FOO true
- #define BAR FOO && false
+Version 2.0.1 (in progress)
+===========================
diff --git a/Doc/Manual/Sections.html b/Doc/Manual/Sections.html
index e957318e8..e514f726d 100644
--- a/Doc/Manual/Sections.html
+++ b/Doc/Manual/Sections.html
@@ -6,7 +6,7 @@
<body bgcolor="#ffffff">
<H1><a name="Sections"></a>SWIG-2.0 Documentation</H1>
-Last update : SWIG-2.0.0 (2 June 2010)
+Last update : SWIG-2.0.1 (in progress)
<H2>Sections</H2>
diff --git a/README b/README
index d9288cdae..3c6ee27a0 100644
--- a/README
+++ b/README
@@ -1,6 +1,6 @@
SWIG (Simplified Wrapper and Interface Generator)
-Version: 2.0.0 (2 June 2010)
+Version: 2.0.1 (in progress)
Tagline: SWIG is a compiler that integrates C and C++ with languages
including Perl, Python, Tcl, Ruby, PHP, Java, Ocaml, Lua,
diff --git a/RELEASENOTES b/RELEASENOTES
index 74e043ae7..5f41df04f 100644
--- a/RELEASENOTES
+++ b/RELEASENOTES
@@ -1,10 +1,10 @@
+This file contains a brief overview of the changes made in each release.
+A detailed description of changes are available in the CHANGES.current
+and CHANGES files.
+
Release Notes
=============
-A detailed description of changes are available in the CHANGES.current
-and CHANGES files. The summaries below contain just a brief overview of
-the changes made in each release.
-
SWIG-2.0.0 summary:
- License changes, see LICENSE file and http://www.swig.org/legal.html.
- Much better nested class/struct support.
diff --git a/configure.in b/configure.in
index 49076ec8c..fe95fa7c0 100644
--- a/configure.in
+++ b/configure.in
@@ -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],[2.0.0],[http://www.swig.org])
+AC_INIT([swig],[2.0.1],[http://www.swig.org])
AC_PREREQ(2.58)
AC_CONFIG_SRCDIR([Source/Swig/swig.h])
AC_CONFIG_AUX_DIR([Tools/config])