125 lines
4.8 KiB
Text
125 lines
4.8 KiB
Text
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.
|
|
Issue # numbers mentioned below can be found on Github. For more details, add
|
|
the issue number to the end of the URL: https://github.com/swig/swig/issues/
|
|
|
|
Version 3.0.12 (27 Jan 2017)
|
|
============================
|
|
|
|
2017-01-24: andrey-starodubtsev
|
|
[Java] Apply #704 - director typemap improvements.
|
|
Memory leak fixes, add support for "directorargout" typemap and
|
|
add director support to typemaps.i.
|
|
|
|
2017-01-24: wsfulton
|
|
Enhance %extend to extend a class with template constructors, eg:
|
|
|
|
struct Foo {
|
|
%extend {
|
|
template<typename T>
|
|
Foo(int a, T b) {
|
|
...
|
|
}
|
|
}
|
|
};
|
|
%template(Foo) Foo::Foo<double>;
|
|
|
|
2017-01-22: wsfulton
|
|
Issue #876 Enhance %extend to extend a class with template methods, eg:
|
|
|
|
struct Foo {
|
|
%extend {
|
|
template<typename T>
|
|
void do_stuff(int a, T b) {
|
|
...
|
|
}
|
|
}
|
|
};
|
|
%template(do_stuff_inst) Foo::do_stuff<double>;
|
|
|
|
Similarly for static template methods.
|
|
|
|
2017-01-22: kwwette
|
|
[Octave] add support for version 4.2
|
|
- The Octave API now uses some C++11 features. It is recommended to use
|
|
the mkoctfile program supplied by Octave to compile the SWIG-generated
|
|
wrapper code, as mkoctfile will ensure the correct C++ compiler/options
|
|
are used. Otherwise, the value of `mkoctfile -p CXX` should be parsed
|
|
for any -std=* flags which might be present.
|
|
- Octave has dropped support for << and >> operators, so SWIG now
|
|
ignores them.
|
|
- The Octave error() function now raises C++ exceptions to propagate
|
|
Octave errors, so %exception directives may need to be modified.
|
|
For convenience the SWIG_RETHROW_OCTAVE_EXCEPTIONS macro can be used
|
|
to rethrow any Octave exceptions for Octave itself to handle, e.g.:
|
|
|
|
try {
|
|
$action // may call error()
|
|
}
|
|
SWIG_RETHROW_OCTAVE_EXCEPTIONS // error() exceptions are rethrown
|
|
catch(...) {
|
|
... // all other exceptions
|
|
}
|
|
|
|
*** POTENTIAL INCOMPATIBILITY ***
|
|
|
|
2017-01-16: wkalinin
|
|
[C#] Fix #733 regression introduced in swig-3.0.9.
|
|
Missing virtual function override in C# layer when using %import.
|
|
|
|
2017-01-16: fschlimb
|
|
Fix #813 template symbol name lookup bug when typedef names are the same but in different
|
|
namespaces.
|
|
|
|
2017-01-15: wsfulton
|
|
[C# D Java]
|
|
The SWIG library no longer uses the javatype, dtype or cstype typemaps, thereby
|
|
completely freeing them up for users to use without having to replicate the library
|
|
code that they previously added. The code previously generated by these typemaps
|
|
has been replaced by the new %proxycode directive. Their use in the library code
|
|
was fairly minimal:
|
|
|
|
C# cstype: std_array.i std_map.i std_vector.i
|
|
D dtype: std_vector.i
|
|
Java javatype: arrays_java.i
|
|
|
|
2017-01-14: wsfulton
|
|
The %extend directive can now optionally support one of the 'class', 'struct' or 'union'
|
|
keywords before the identifier name, for example:
|
|
|
|
struct X { ... };
|
|
%extend struct X { ... }
|
|
|
|
Previously this had to specified as:
|
|
|
|
struct X { ... };
|
|
%extend X { ... }
|
|
|
|
2017-01-13: wsfulton
|
|
[C# D Java] Add new %proxycode directive which is a macro for %insert("proxycode").
|
|
This is a way of adding pure C#/D/Java code into the appropriate proxy class, eg:
|
|
|
|
%extend Proxy2 {
|
|
%proxycode %{
|
|
public int proxycode2(int i) {
|
|
return i+2;
|
|
}
|
|
%}
|
|
}
|
|
|
|
%inline %{
|
|
struct Proxy2 {};
|
|
%}
|
|
|
|
There will then be a pure Java/C#/D method called proxycode2 in the Proxy2 class.
|
|
|
|
2016-12-31: ajrheading1
|
|
Issue #860 - Remove use of std::unary_function and std::binary_function
|
|
which is deprecated in C++11.
|
|
|
|
2016-12-30: olly
|
|
[PHP7] Register internal 'swig_runtime_data_type_pointer' constant
|
|
as "CONST_PERSISTENT" to avoid segmentation fault on module unload.
|
|
Fixes https://github.com/swig/swig/issues/859 reported by Timotheus
|
|
Pokorra - thanks also to Javier Torres for a minimal reproducer.
|