| 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.5 (19 April 2012) |
| ============================= |
| |
| 2012-04-14: wsfulton |
| [Lua] Apply patch #3517435 from Miles Bader - prefer to use Lua_pushglobaltable |
| |
| 2012-04-14: wsfulton |
| [Ruby] Apply patch #3517769 from Robin Stocker to fix compile error on MacRuby using RSTRING_PTR. |
| |
| 2012-04-13: wsfulton |
| Apply patch #3511009 from Leif Middelschulte for slightly optimised char * variable wrappers. |
| |
| 2012-04-13: wsfulton |
| [Lua] Apply #3219676 from Shane Liesegang which adds: |
| - support for %factory |
| - a __tostring method |
| - a __disown method |
| |
| 2012-04-13: wsfulton |
| [Xml] Apply #3513569 which adds a catchlist to the xml output. |
| |
| 2012-04-05: olly |
| [Lua] Add support for Lua 5.2 (patch SF#3514593 from Miles Bader) |
| |
| 2012-03-26: xavier98 |
| [octave] Apply patch #3425993 from jgillis: add extra logic to the octave_swig_type::dims(void) method: it checks if the user has defined a __dims__ method and uses this in stead of returning (1,1) |
| [octave] Apply patch #3424833 from jgillis: make is_object return true for swig types |
| |
| 2012-03-24: wsfulton |
| [D] Apply #3502431 to fix duplicate symbols in multiple modules. |
| |
| 2012-03-21: wsfulton |
| Fix #3494791 - %$isglobal for %rename matching. |
| |
| 2012-03-20: wsfulton |
| Fix #3487706 and #3391906 - missing stddef.h include for ptrdiff_t when using %import |
| for STL containers and compiling with g++-4.6. An include of stddef.h is now only |
| generated when SWIG generates STL helper templates which require ptrdiff_t. If you |
| were previously relying on "#include <stddef.h>" always being generated when using a |
| %include of an STL header, you may now need to add this in manually. |
| |
| 2012-03-16: wsfulton |
| Apply patch #3392264 from Sebastien Bine to parse (unsigned) long long types in enum value assignment. |
| |
| 2012-03-16: wsfulton |
| Apply patch #3505530 from Karl Wette to allow custom allocators in STL string classes for the UTL languages. |
| |
| 2012-03-13: wsfulton |
| Apply patch #3468362 from Karl Wette to fix %include inside %define. |
| |
| 2012-03-13: wsfulton |
| [Python, Ruby, Octave, R] Fix #3475492 - iterating through std::vector wrappers of enumerations. |
| |
| 2012-02-27: xavier98 (patches from Karl Wette) |
| [Octave] Use -globals . to load global variables in module namespace |
| [Octave] Comment declaration of unimplemented function swig_register_director |
| [Octave] Fix OCTAVE_PATH in octave Makefiles |
| [Octave] Add support for std::list - fix li_std_containers_int test |
| [Octave] Fix imports test |
| |
| 2012-02-16: wsfulton |
| [Java] Make generated support functions in arrays_java.i static so that generated code |
| from multiple instances of SWIG can be compiled and linked together - problem reported by |
| Evan Krause. |
| |
| 2012-01-24: wsfulton |
| Fix crash with bad regex - bug #3474250. |
| |
| 2012-01-24: wsfulton |
| [Python] Add Python stepped slicing support to the STL wrappers (std::vector, std::list). |
| Assigning to a slice, reading a slice and deleting a slice with steps now work. |
| For example: |
| |
| %template(vector_i) std::vector<int> |
| |
| vi = vector_i(range(10)) |
| print list(vi) |
| vi[1:4:2] = [111, 333] |
| print list(vi) |
| del vi[3:10:3] |
| print list(vi) |
| print list(vi[::-1]) |
| |
| gives (same behaviour as native Python sequences such as list): |
| |
| [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] |
| [0, 111, 2, 333, 4, 5, 6, 7, 8, 9] |
| [0, 111, 2, 4, 5, 7, 8] |
| [8, 7, 5, 4, 2, 111, 0] |
| |
| 2012-01-23: klickverbot |
| [D] Correctly annotate function pointers with C linkage. |
| [D] Exception and Error have become blessed names; removed d_exception_name test case. |
| |
| 2012-01-20: wsfulton |
| [Python] Fix some indexing bugs in Python STL wrappers when the index is negative, eg: |
| |
| %template(vector_i) std::vector<int> |
| |
| iv=vector_i([0,1,2,3,4,5]) |
| iv[-7:] |
| |
| now returns [0, 1, 2, 3, 4, 5] instead of [5]. |
| |
| vv[7:9] = [22,33] |
| |
| now returns [0, 1, 2, 3, 4, 5, 22, 33] instead of "index out range" error. |
| |
| Also fix some segfaults when replacing ranges, eg when il is a std::list wrapper: |
| |
| il[0:2] = [11] |
| |
| 2012-01-17: wsfulton |
| [Go] Fix forward class declaration within a class when used as a base. |
| |
| 2012-01-07: wsfulton |
| [C#] Add support for %nspace when using directors. |
| |
| 2012-01-06: wsfulton |
| [Java] Patch #3452560 from Brant Kyser - add support for %nspace when using directors. |
| |
| 2011-12-21: wsfulton |
| The 'directorin' typemap now accepts $1, $2 etc expansions instead of having to use workarounds - |
| $1_name, $2_name etc. |
| |
| 2011-12-20: wsfulton |
| [Java] Add (char *STRING, size_t LENGTH) director typemaps. |
| |
| 2011-12-20: wsfulton |
| [C#, Go, Java, D] Add support for the 'directorargout' typemap. |
| |
| 2011-12-20: wsfulton |
| [Ocaml, Octave, PHP, Python, Ruby] Correct special variables in 'directorargout' typemap. |
| This change will break any 'directorargout' typemaps you may have written. Please change: |
| $result to $1 |
| $input to $result |
| |
| Also fix the named 'directorargout' DIRECTOROUT typemaps for these languages which didn't |
| previously compile and add in $1, $2 etc expansion. |
| |
| *** POTENTIAL INCOMPATIBILITY *** |
| |
| 2011-12-10: talby |
| [perl5] SWIG_error() now gets decorated with perl source file/line number. |
| [perl5] error handling now conforms to public XS api (fixes perl v5.14 issue). |
| |
| 2011-12-10: wsfulton |
| [Android/Java] Fix directors to compile on Android. |
| |
| Added documentation and examples for Android. |
| |
| 2011-12-08: vadz |
| Bug fix: Handle methods renamed or ignored in the base class correctly in the derived classes |
| (they could be sometimes mysteriously not renamed or ignored there before). |
| |
| 2011-12-03: klickverbot |
| [D] Fix exception glue code for newer DMD 2 versions. |
| [D] Do not default to 32 bit glue code for DMD anymore. |
| [D] Use stdc.config.c_long/c_ulong to represent C long types. |
| |
| 2011-12-01: szager |
| [python] Fixed bug 3447426: memory leak in vector.__getitem__. |
| |
| 2011-11-30: wsfulton |
| [R] Remove C++ comments from generated C code. |
| |
| 2011-11-27: olly |
| [Python] Fix some warnings when compiling generated wrappers with |
| certain GCC warning options (Debian bug #650246). |
| |
| 2011-11-28: wsfulton |
| Fix #3433541 %typemap(in, numinputs=0) with 10+ arguments. |
| |
| 2011-11-28: olly |
| [Perl] Fix warnings when compiling generated wrappers with certain |
| GCC warning options (Debian bug #436711). |
| |
| 2011-11-28: olly |
| [PHP] Update keyword list to include keywords added in PHP releases up to 5.3. |
| |
| 2011-11-25: wsfulton |
| [C#] Provide an easy way to override the default visibility for the proxy class pointer |
| constructors and getCPtr() method. The visibility is 'internal' by default and if multiple |
| SWIG modules are being used and compiled into different assemblies, then they need to be |
| 'public' in order to use the constructor or getCPtr() method from a different assembly. |
| Use the following macros to change the visibilities in the proxy and type wrapper class: |
| |
| SWIG_CSBODY_PROXY(public, public, SWIGTYPE) |
| SWIG_CSBODY_TYPEWRAPPER(public, public, public, SWIGTYPE) |
| |
| [Java] Provide an easy way to override the default visibility for the proxy class pointer |
| constructors and getCPtr() method. The visibility is 'protected' by default and if multiple |
| SWIG modules are being used and compiled into different packages, then they need to be |
| 'public' in order to use the constructor or getCPtr() method from a different package. |
| Use the following macros to change the visibilities in the proxy and type wrapper class: |
| |
| SWIG_JAVABODY_PROXY(public, public, SWIGTYPE) |
| SWIG_JAVABODY_TYPEWRAPPER(public, public, public, SWIGTYPE) |
| |
| The default for Java has changed from public to protected for the proxy classes. Use the |
| SWIG_JAVABODY_PROXY macro above to restore to the previous visibilities. |
| |
| *** POTENTIAL INCOMPATIBILITY *** |
| |
| 2011-11-22: szager |
| [python] Bug 3440044: #ifdef out SWIG_Python_NonDynamicSetAttr if -builtin |
| isn't being used, to avoid unnecessary binary incompatibilities between |
| python installations. |
| |
| 2011-11-17: wsfulton |
| Bug fix: Remove root directory from directory search list in Windows. |
| |
| 2011-11-13: wsfulton |
| [Ruby] Apply patch #3421876 from Robin Stocker to fix #3416818 - same class name in |
| different namespaces confusion when using multiple modules. |
| |
| 2011-11-11: wsfulton |
| Fix pcre-build.sh to work with non-compressed tarballs - problem reported by Adrian Blakely. |
| |
| 2011-11-03: wsfulton |
| Expand special variables in typemap warnings, eg: |
| |
| %typemap(in, warning="1000:Test warning for 'in' typemap for $1_type $1_name") int "..." |
| |
| 2011-11-01: wsfulton |
| Fix named output typemaps not being used when the symbol uses a qualifier and contains |
| a number, eg: |
| |
| %typemap(out) double ABC::m1 "..." |
| |
| 2011-10-24: talby |
| [perl5] SF bug #3423119 - overload dispatch stack corruption fix. Better, but more research |
| is needed on a stable path for tail calls in XS. |
| |
| Also, fix for large long longs in 32 bit perl. |
| |
| 2011-10-13: xavier98 |
| [octave] Allow Octave modules to be re-loaded after a "clear all". |
| |
| 2011-09-19: wsfulton |
| Fix regression introduced in swig-2.0.1 reported by Teemu Ikonone leading to uncompilable code |
| when using typedef and function pointer references, for example: |
| |
| typedef int FN(const int &a, int b); |
| void *typedef_call1(FN *& precallback, FN * postcallback); |
| |
| 2011-09-14: wsfulton |
| [Lua] Patch #3408012 from Raman Gopalan - add support for embedded Lua (eLua) |
| including options for targeting Lua Tiny RAM (LTR). |
| |
| 2011-09-14: wsfulton |
| [C#] Add boost_intrusive_ptr.i library contribution from patch #3401571. |
| |
| 2011-09-13: wsfulton |
| Add warnings for badly named destructors, eg: |
| |
| struct KStruct { |
| ~NOT_KStruct() {} |
| }; |
| |
| cpp_extend_destructors.i:92: Warning 521: Illegal destructor name ~NOT_KStruct. Ignored. |
| |
| 2011-09-13: wsfulton |
| Fix %extend and destructors for templates. The destructor in %extend was not always wrapped, |
| for example: |
| |
| %extend FooT { |
| ~FooT() { delete $self; } // was not wrapped as expected |
| }; |
| template<class T> class FooT {}; |
| %template(FooTi) FooT<int>; |
| |
| 2011-09-13: wsfulton |
| Fix special variables such as "$decl" and "$fulldecl" in destructors to include the ~ character. |
| |
| 2011-09-10: talby |
| [perl5] SF bug #1481958 - Improve range checking for integer types. |
| Enhance li_typemaps_runme.pl |
| |
| 2011-09-08: wsfulton |
| Fix %extend on typedef classes in a namespace using the typedef name, for example: |
| namespace Space { |
| %extend CStruct { |
| ... |
| } |
| typedef struct tagCStruct { ... } CStruct; |
| } |
| |
| 2011-08-31: xavier98 |
| [octave] patches from Karl Wette: improvements to module loading behavior; |
| added example of friend operator to operator example; fixed octave panic/crash in 3.0.5; |
| documentation improvements |
| |
| 2011-08-30: szager |
| [python] Bug 3400486, fix error signalling for built-in constructors. |
| |
| 2011-08-26: wsfulton |
| [Go] Fix file/line number display for "gotype" when using typemap debugging options |
| -tmsearch and -tmused. |
| |
| 2011-08-26: wsfulton |
| [C#, D] Fix %callback which was generating uncompileable code. |
| |
| 2011-08-25: wsfulton |
| Fix constructors in named typedef class declarations as reported by Gregory Bronner: |
| |
| typedef struct A { |
| A(){} // Constructor which was not accepted by SWIG |
| B(){} // NOT a constructor --illegal, but was accepted by SWIG |
| } B; |
| |
| For C code, the fix now results in the use of 'struct A *' instead of just 'B *' in |
| the generated code when wrapping members in A, but ultimately this does not matter, as |
| they are the same thing. |
| |
| 2011-08-23: wsfulton |
| Fix %newobject when used in conjunction with %feature("ref") as reported by Jan Becker. The |
| code from the "ref" feature was not always being generated for the function specified by %newobject. |
| Documentation for "ref" and "unref" moved from Python to the C++ chapter. |
| |
| 2011-08-22: szager |
| [python] Fixed memory leak with --builtin option (bug 3385089). |
| |
| 2011-08-22: wsfulton |
| [Lua] SF patch #3394339 from Torsten Landschoff - new option -nomoduleglobal to disable installing |
| the module table into the global namespace. Require call also returns the module table instead |
| of a string. |
| |
| 2011-08-09: xavier98 |
| Fix bug 3387394; Octave patches for 3.4.0 compatibility, etc. (from Karl Wette) |
| |
| 2011-08-04: wsfulton |
| Add in $symname expansion for director methods. |
| |
| 2011-07-29: olly |
| [PHP] Don't generate "return $r;" in cases where $r hasn't been set. |
| This was basically harmless, except it generated a PHP E_NOTICE if |
| the calling code had enabled them. |
| |
| 2011-07-26: wsfulton |
| Fix scoping of forward class declarations nested within a class (for C++). Previously the symbol |
| was incorrectly put into the outer namespace, eg |
| |
| namespace std { |
| template<class Key, class T> struct map { |
| class iterator; |
| } |
| } |
| |
| iterator was scoped as std::iterator, but now it is correctly std::map<Key, T>::iterator; |
| |
| Also fixed is %template and template parameters that are a typedef when the template contains |
| default template parameters, eg: |
| |
| namespace Std { |
| template<class Key, class T, class C = int> struct Map { |
| typedef Key key_type; |
| typedef T mapped_type; |
| } |
| } |
| tyepdef double DOUBLE; |
| %typemap(MM) Std::Map<int, DOUBLE>; |
| |
| All symbols within Map will be resolved correctly, eg key_type and mapped_type no matter if the |
| wrapped code uses Std::Map<int, double> or std::Map<int, DOUBLE> or Std::Map<int, double, int> |
| |
| Also fixes bug #3378145 - regression introduced in 2.0.4 - %template using traits. |
| |
| 2011-07-20 szager |
| [python] Fix closure for tp_call slot. |
| |
| 2011-07-16: wsfulton |
| [python] Fix director typemap using PyObject *. |
| |
| 2011-07-13: szager |
| [python] SF patch #3365908 - Add all template parameters to map support code in std_map.i |
| |
| 2011-07-13: szager |
| [python] Fix for bug 3324753: %rename member variables with -builtin. |
| |
| 2011-07-01: wsfulton |
| Fix some scope and symbol lookup problems when template default parameters are being |
| used with typedef. For example: |
| |
| template<typename XX, typename TT = SomeType> struct Foo { |
| typedef XX X; |
| typedef TT T; |
| }; |
| template<typename TT> struct UsesFoo { |
| void x(typename Foo<TT>::T, typename Foo<TT>::X); |
| }; |
| |
| Also fixes use of std::vector<int>::size_type for Python as reported by Aubrey Barnard. |
| |
| 2011-06-23: olly |
| [PHP] Fix director code to work when PHP is built with ZTS enabled, |
| which is the standard configuration on Microsoft Windows. |
| |
| 2011-06-21: mutandiz |
| [allegrocl] |
| - various small tweaks and bug fixes. |
| - Avoid name conflicts between smart pointer wrappers and the wrappers for |
| the actual class. |
| - Fix default typemaps for C bindings, which were incorrectly attempting to |
| call non-existent destructors on user-defined types. |
| - New feature, feature:aclmixins, for adding superclass to the foreign class |
| wrappers. |
| - Improve longlong typemaps. |
| |
| 2011-06-19: wsfulton |
| Fix incorrect typemaps being used for a symbol within a templated type, eg: |
| A<int>::value_type would incorrectly use a typemap for type A. |
| |
| 2011-06-18: olly |
| [Tcl] Fix variable declarations in middle of blocks which isn't |
| permitted in C90 (issue probably introduced in 2.0.3 by patch #3224663). |
| Reported by Paul Obermeier in SF#3288586. |
| |
| 2011-06-17: wsfulton |
| [Java] SF #3312505 - slightly easier to wrap char[] or char[ANY] with a Java byte[] |
| using arrays_java.i. |
| |
| 2011-06-13: wsfulton |
| [Ruby, Octave] SF #3310528 Autodoc fixes similar to those described below for Python. |
| |
| 2011-06-10: wsfulton |
| [Python] Few subtle bugfixes in autodoc documentation generation, |
| - Unnamed argument names fix for autodoc levels > 0. |
| - Display of template types fixed for autodoc levels > 1. |
| - Fix SF #3310528 - display of typedef structs for autodoc levels > 1. |
| - Add missing type for self for autodoc levels 1 and 3. |
| - autodoc levels 2 and 3 documented. |
| - Minor tweaks to autodoc style to conform with PEP8. |
| |
| 2011-05-30: olly |
| [PHP] Fix handling of directors when -prefix is used. |
| |
| 2011-05-24: olly |
| [PHP] Fix handling of methods of classes with a virtual base class (SF#3124665). |
| |