mirror of https://github.com/swig/swig
441 lines
18 KiB
Plaintext
441 lines
18 KiB
Plaintext
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 (in progress)
|
|
===========================
|
|
|
|
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 and compiler errors due to lack
|
|
of const in some methods taking char*.
|
|
|
|
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] 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 nspace feature - fix director_nspace test
|
|
[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-04: szager
|
|
[python] Bug 3429388: python unsigned integer handling on 32-bit architectures.
|
|
|
|
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).
|
|
|