- .travis.yml:
- ppa:kwwette/octaves has Octave version 4.2, also run C++11 tests
- configure.ac:
- prefer Octave program "octave-cli" to "octave"
- extract any -std=* flags from CXX, add to OCTAVE_CXXFLAGS
- Lib/typemaps/fragments.swg:
- SWIG_isfinite_func(): extern "C++" is required as this fragment can
end up inside an extern "C" { } block
- Lib/octave:
- add std_wstring.i (copied from std_string.i) for C++11 tests
- Lib/octave/octrun.swg:
- move Octave version-checking macros to octruntime.swg
- Octave single()/double() functions now call .as_single()/.as_double()
methods; redirect calls to __float__() method as per .scalar_value()
- << and >> operators are no longer supported by Octave
- Lib/octave/octruntime.swg:
- move Octave version-checking macros here for conditional #includes
- #include interpreter.h instead of #toplev.h
- #include call-stack.h (now needed for octave_call_stack)
- unwind_protect is now in octave:: namespace
- error_state and warning_state are deprecated; use try/catch to catch
errors in feval() instead
- always set octave_exit = ::_Exit, to try to prevent segfault on exit
- Lib/octave/octopers.swg:
- << and >> operators are no longer supported by Octave
- Lib/octave/exception.i:
- Add macro SWIG_RETHROW_OCTAVE_EXCEPTIONS which rethrows any
exceptions raised by Octave >= 4.2
- Examples/test-suite/exception_order.i:
- Use macro SWIG_RETHROW_OCTAVE_EXCEPTIONS to rethrow exceptions
raised by error() function in Octave >= 4.2
- Update Doc/Manual/Octave.html and CHANGES.current
92 lines
3.8 KiB
Text
92 lines
3.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 (in progress)
|
|
============================
|
|
|
|
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.
|