mirror of https://github.com/swig/swig
1217 lines
49 KiB
Plaintext
1217 lines
49 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.
|
||
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 4.1.0 (in progress)
|
||
===========================
|
||
|
||
2022-10-06: wsfulton
|
||
[Java] #Fix quoting for doxygen \image command to quote the output
|
||
file name generated into the html src attribute.
|
||
|
||
2022-10-05: benjamin-sch
|
||
[Python] added an interpreter counter to fix deinitialization
|
||
issues if multiple subinterpreters are used
|
||
|
||
2022-10-05: olly, wsfulton
|
||
#672 Add support for parsing C++11 final classes such as:
|
||
|
||
class X final {};
|
||
|
||
This no longer gives a syntax error.
|
||
|
||
2022-10-05: wsfulton
|
||
[OCaml] Fix %rename for enum items. Previously the rename had no effect.
|
||
|
||
2022-10-05: olly
|
||
#1465 Report errors in preprocessor expressions by default
|
||
|
||
Until now SWIG quietly ignored such errors unless -Wextra (or -Wall
|
||
which implies -Wextra) was passed, but this is unhelpful as it tends
|
||
to hide genuine problems. To illustrate this point, enabling this
|
||
warning by default revealed a typo in the preproc_defined.i
|
||
testcase in SWIG's own testsuite.
|
||
|
||
If you really don't want to see this warning, you can suppress it
|
||
with command line option -w202 or by using this in your interface
|
||
file:
|
||
|
||
%warnfilter(SWIGWARN_PP_EVALUATION);
|
||
|
||
Both will work with older versions of SWIG too.
|
||
|
||
2022-10-04: olly
|
||
#1050 Consistently define SWIG_VERSION both at SWIG-time and in
|
||
the generated wrapper. Best practice remains to check at SWIG-time
|
||
where possible because that results in smaller generated wrapper
|
||
sources.
|
||
|
||
SWIGGO and SWIGJAVASCRIPT are now defined in the generated wrappers
|
||
to match behaviour for all other target languages.
|
||
|
||
The undocumented SWIGVERSION macro is no longer defined.
|
||
|
||
2022-09-29: olly
|
||
#2303 SWIG's internal hash tables now use a better hash function.
|
||
|
||
The old hash function only considerd the last five characters
|
||
plus the least significant bit of the last-but-sixth character,
|
||
which as you might guess generated a lot of many-way collisions.
|
||
|
||
This change seems to give about a 4% reduction in wallclock time
|
||
for processing li_std_list_wrap.i from the testsuite for Python.
|
||
The hash collision rate for this example drops from 39% to 0!
|
||
|
||
2022-09-29: wsfulton
|
||
#2303 Type tables are now output in a fixed order whereas previously
|
||
the order may change with any minor input code change. This shouldn't
|
||
affect users except SWIG_TypePrettyName may output a different C/C++
|
||
typedef to a type - it's used mostly for showing errors when the type
|
||
passed to a function is wrong.
|
||
|
||
2022-09-29: olly
|
||
[PHP] Dynamic class properties are no longer supported by default.
|
||
|
||
Historically PHP has supported dynamic class properties and SWIG
|
||
has implemented them too (because we implement the magic __get(),
|
||
__set() and __isset() methods we need to include explicit
|
||
handling).
|
||
|
||
PHP 8.2 deprecates dynamic class properties - initially they'll
|
||
warn, and apparently they'll not work by default in PHP 9.0:
|
||
https://wiki.php.net/rfc/deprecate_dynamic_properties
|
||
|
||
In PHP code dynamic properties can be enabled for a class by
|
||
marking that class with the attribute `#[AllowDynamicProperties]`.
|
||
|
||
To follow this PHP change, in SWIG you now need to specify
|
||
`%feature("php:allowdynamicproperties", 1) Foo;` (or
|
||
`%feature("php:allowdynamicproperties", 1)` to enable it for
|
||
all wrapped classes). Unknown features are ignored, so you can add
|
||
it unconditionally and it'll work with older SWIG too.
|
||
|
||
*** POTENTIAL INCOMPATIBILITY ***
|
||
|
||
2022-09-19: wsfulton
|
||
#1484 Fixes for class inheritance with the same name in different namespaces
|
||
such as:
|
||
|
||
namespace A { class Bar {}; }
|
||
namespace B { template<typename T, typename U> class Bar : public A::Bar {}; }
|
||
|
||
2022-09-19: wsfulton
|
||
#2316 Remove swig.spec file and srcrpm makefile target. These are very out of date
|
||
and don't seem to be used by RPM based Linux distributions which have their
|
||
own version of swig.spec.
|
||
|
||
2022-09-17: wsfulton
|
||
[Go, Guile, Racket, Scilab] Add throws typemaps for std::string so that thrown
|
||
string exception messages can be seen.
|
||
|
||
2022-09-17: wsfulton
|
||
[Racket] Add throws typemaps for char * so that thrown string exception
|
||
messages can be seen from Racket.
|
||
|
||
2022-09-17: wsfulton
|
||
[Javascript, Octave, R] Improve exceptions for %catches and exception
|
||
specifications for native types. String exception messages are shown as
|
||
the exception message instead of just the type of the exception.
|
||
|
||
2022-09-17: wsfulton
|
||
Add missing typecheck typemaps for std::auto_ptr and std::unique_ptr to
|
||
fix overloading when using these types.
|
||
|
||
2022-09-17: wsfulton
|
||
[Guile] Add error checking to SWIGTYPE and SWIGTYPE & in typemaps to prevent
|
||
seg faults when passing #nil to these parameter types.
|
||
|
||
2022-09-16: wsfulton
|
||
#999 Provide SWIGTYPE MOVE typemaps in swigmove.i for implementing full
|
||
move semantics when passing parameters by value.
|
||
|
||
2022-08-31: wsfulton
|
||
#999 Improve move semantics when using rvalue references.
|
||
The SWIGTYPE && input typemaps now assume the object has been moved.
|
||
|
||
These typemaps have been changed assuming that after the function call,
|
||
the rvalue reference parameter has been moved. The parameter's proxy class
|
||
that owns the C++ object thus has the underlying pointer set to null
|
||
so that the (moved from, but still valid) C++ object cannot be used again
|
||
and the object is additionally deleted.
|
||
|
||
*** POTENTIAL INCOMPATIBILITY ***
|
||
|
||
2022-08-28: wsfulton
|
||
[Octave] SWIG now marshals a C/C++ NULL pointer into the null matrix, [].
|
||
SWIG has always marshalled the null matrix into a NULL pointer; this remains
|
||
and now we have consistency in representing a NULL pointer.
|
||
|
||
2022-08-26: wsfulton
|
||
[Racket] SWIG now marshals a C/C++ NULL pointer into a null value by calling
|
||
scheme_make_null(), so that scheme's null? is true for a NULL C/C++ pointer value.
|
||
|
||
2022-08-18: wsfulton
|
||
[Racket] Add support for std::unique_ptr in std_unique_ptr.i.
|
||
Add support for std::auto_ptr in std_auto_ptr.i.
|
||
|
||
2022-08-13: wsfulton
|
||
[Guile] Add support for std::unique_ptr in std_unique_ptr.i.
|
||
Add support for std::auto_ptr in std_auto_ptr.i.
|
||
|
||
2022-08-11: wsfulton
|
||
[Lua] Add support for std::unique_ptr in std_unique_ptr.i.
|
||
Add support for std::auto_ptr in std_auto_ptr.i.
|
||
|
||
2022-08-05: wsfulton
|
||
[D] Fix occasional undefined behaviour with inheritance hierarchies, particularly
|
||
when using virtual inheritance as the pointers weren't correctly upcast from derived
|
||
class to base class when stored in the base's proxy class.
|
||
|
||
2022-08-05: wsfulton
|
||
[D] Add support for std::unique_ptr in std_unique_ptr.i.
|
||
Add support for std::auto_ptr in std_auto_ptr.i.
|
||
|
||
2022-08-03: wsfulton
|
||
[Javascript] Add support for std::unique_ptr in std_unique_ptr.i.
|
||
Add support for std::auto_ptr in std_auto_ptr.i.
|
||
|
||
2022-08-02: wsfulton
|
||
[Octave] Add support for std::unique_ptr in std_unique_ptr.i.
|
||
Add support for std::auto_ptr in std_auto_ptr.i.
|
||
|
||
2022-08-01: wsfulton
|
||
[Python] Add initialisers for additional members in PyHeapTypeObject
|
||
(builtin mode) for Python-3.11 - _ht_tpname, _spec_cache.
|
||
|
||
2022-07-30: wsfulton
|
||
C++20 has deprecated std::basic_string<>::reserve() and the C++11 method
|
||
std::basic_string<>::shrink_to_fit() is a replacement that can be used.
|
||
std_string.i and std_wstring.i provided wrappers for reserve with the following
|
||
template instantiations:
|
||
|
||
%template(string) std::basic_string<char>;
|
||
%template(wstring) std::basic_string<wchar_t>;
|
||
|
||
The reserve method is no longer wrapped, however the shrink_to_fit() method
|
||
can be used as an alternative from the target language (the generated wrappers
|
||
call reserve() instead if C++<=20).
|
||
|
||
Note that std::basic_string<>::reserve(size_t n) is still wrapped unchanged.
|
||
|
||
*** POTENTIAL INCOMPATIBILITY ***
|
||
|
||
2022-07-30: wsfulton
|
||
[Tcl] Add support for std::unique_ptr in std_unique_ptr.i.
|
||
Add support for std::auto_ptr in std_auto_ptr.i.
|
||
|
||
2022-07-27: ZackerySpytz, olly
|
||
#1678 Support parsing C++20 templated lambdas.
|
||
|
||
2022-07-27: ZackerySpytz, olly
|
||
#1622 Add support for the C++20 spaceship operator (<=>).
|
||
|
||
2022-07-26: olly
|
||
[Tcl] https://sourceforge.net/p/swig/bugs/977/
|
||
Fix handling of long long on 32-bit platforms. This fix raises
|
||
SWIG's minimum supported Tcl version to 8.4.0 (which was released
|
||
just under 20 years ago).
|
||
|
||
2022-07-26: olly
|
||
Fix incorrect operator precedence in preprocessor expressions.
|
||
|
||
2022-07-25: olly
|
||
Support for C++14 binary integer literals in preprocessor expressions.
|
||
|
||
2022-07-20: wsfulton
|
||
[C#, Java] Ensure the order of interfaces generated in proxy interfaces for the
|
||
%interface family of macros is the same as that parsed from the bases in C++.
|
||
|
||
2022-07-20: jicks, Ingener74, olly
|
||
#422 [Python] Fix mishandling of a Python class inheriting from
|
||
multiple SWIG-wrapped director classes.
|
||
|
||
2022-07-19: wsfulton
|
||
#692 [C#, Java, Perl, Python, Ruby] std::unique_ptr and std::auto_ptr typemaps
|
||
provided for inputs types in std_unique_ptr.i and std_auto_ptr.i.
|
||
|
||
Now these smart pointers can be used as input parameters to functions. A proxy
|
||
class instance transfers memory ownership of the underlying C++ object from the
|
||
proxy class to a smart pointer instance passed to the wrapped function.
|
||
|
||
2022-07-19: jschueller
|
||
[Python] #2314 Drop support for Python 3.2.
|
||
|
||
2022-07-19: olly
|
||
Remove remaining support code for classic macos, which has not been
|
||
supported by Apple for over 20 years now.
|
||
|
||
2022-07-12: wsfulton
|
||
#999 Performance optimisation for parameters passed by value that are C++11 movable.
|
||
The C++ wrappers create a temporary variable for a parameter to be passed to a
|
||
function. This is initially default constructed and then copy assigned from the
|
||
instance being passed in from the target language. This is unchanged, however,
|
||
when the temporary variable is passed to the wrapped function, it is now done using
|
||
std::move. If the type is move constructible, the move constructor will be used
|
||
instead of the copy constructor.
|
||
|
||
2022-07-12: wsfulton
|
||
[Perl] Add std::auto_ptr support in std_auto_ptr.i library file.
|
||
|
||
2022-07-12: erezgeva
|
||
[Perl] Add std::unique_ptr support in std_unique_ptr.i library file.
|
||
|
||
2022-07-07: olly
|
||
[xml] #2213 XML has been moved to "Experimental" target language
|
||
status. It's not in good shape and is likely to be removed unless
|
||
somebody steps up to bring it up to the expected standard (it fails
|
||
to even meet the criteria for "Experimental" currently).
|
||
|
||
2022-07-07: jmarrec
|
||
#1158 #2286 Add basic support for C++11 attributes. These are now
|
||
crudely ignored by SWIG's parser's tokeniser, which is better that
|
||
failing with a parse error.
|
||
|
||
2022-07-05: ianlancetaylor
|
||
[Go] #2245 Handle NULL pointers for string* conversions.
|
||
Rearrange generation of director methods and rename
|
||
receiver argument from p to swig_p.
|
||
|
||
2022-07-03: wsfulton
|
||
#999 Performance optimisation for directors for classes passed by value. The directorin
|
||
typemaps in the director methods now use std::move on the input parameter when
|
||
copying the object from the stack to the heap prior to the callback into the target
|
||
language, thereby taking advantage of move semantics if available.
|
||
|
||
2022-07-02: wsfulton
|
||
#1722 [C#, Java, Python, Ruby] Add std::unique_ptr support. Ported from std::auto_ptr.
|
||
Use the %unique_ptr(T) macro as follows for usage std::unique_ptr<T>. For example, for
|
||
a class called Klass:
|
||
|
||
%include "std_unique_ptr.i"
|
||
%unique_ptr(Klass)
|
||
|
||
Support is currently limited to only returning a std::unique_ptr from a function.
|
||
|
||
2022-06-29: wsfulton
|
||
#999 #1044 Enhance SWIGTYPE "out" typemaps to use std::move when copying
|
||
objects, thereby making use of move semantics when wrapping a function returning
|
||
by value if the returned type supports move semantics.
|
||
|
||
Wrapping functions that return move only types 'by value' now work out the box
|
||
without having to provide custom typemaps.
|
||
|
||
The implementation removed all casts in the "out" typemaps to allow the compiler to
|
||
appropriately choose calling a move constructor, where possible, otherwise a copy
|
||
constructor. The implementation also required modifying SwigValueWrapper to
|
||
change a cast operator from:
|
||
|
||
SwigValueWrapper::operator T&() const;
|
||
|
||
to
|
||
|
||
#if __cplusplus >=201103L
|
||
SwigValueWrapper::operator T&&() const;
|
||
#else
|
||
SwigValueWrapper::operator T&() const;
|
||
#endif
|
||
|
||
This is not backwards compatible for C++11 and later when using the valuewrapper feature
|
||
if a cast is explicitly being made in user supplied "out" typemaps. Suggested change
|
||
in custom "out" typemaps for C++11 and later code:
|
||
|
||
1. Try remove the cast altogether to let the compiler use an appropriate implicit cast.
|
||
2. Change the cast, for example, from static_cast<X &> to static_cast<X &&>, using the
|
||
__cplusplus macro if all versions of C++ need to be supported.
|
||
|
||
*** POTENTIAL INCOMPATIBILITY ***
|
||
|
||
2022-06-15: wsfulton
|
||
#2039 Add move assignment operator to SwigValueWrapper used by the
|
||
valuewrapper feature.
|
||
|
||
2022-06-04: sethrj
|
||
Enhance $typemap to support typemap attributes.
|
||
|
||
$typemap(method:attribute, typepattern)
|
||
|
||
For example:
|
||
|
||
%typemap(cstype, out="object") XClass "XClass"
|
||
%typemap(cscode) BarClass %{
|
||
$typemap(cstype:out, XClass) bar() {
|
||
return null;
|
||
}
|
||
|
||
which expands to
|
||
|
||
object bar() {
|
||
return null;
|
||
}
|
||
|
||
2022-05-30: wsfulton
|
||
[C#, D] Add new special variable expansion: $imfuncname.
|
||
Expands to the function name called in the intermediary class.
|
||
|
||
2022-05-30: LindleyF
|
||
[Java] #2042 Add new special variable expansion: $imfuncname.
|
||
Expands to the function name called in the intermediary class.
|
||
|
||
2022-05-28: jkuebart
|
||
[Java] On some versions of Android, specifically Android 6,
|
||
detaching the current thread from the JVM after every invocation
|
||
causes a memory leak.
|
||
|
||
Offer SWIG_JAVA_DETACH_ON_THREAD_END to configure a behaviour
|
||
where the JVM is only detached in the thread destructor.
|
||
|
||
See https://developer.android.com/training/articles/perf-jni#threads.
|
||
|
||
2022-05-27: xypron
|
||
[Python] #2277 Define PY_SSIZE_T_CLEAN macro before #include "Python.h" as
|
||
recommended in Python 3.7 and later.
|
||
|
||
To avoid this macro definition, add the following to your interface file so
|
||
that SWIG_NO_PY_SSIZE_T_CLEAN is defined at the beginning of the C++ wrappers:
|
||
|
||
%begin %{
|
||
#define SWIG_NO_PY_SSIZE_T_CLEAN
|
||
%}
|
||
|
||
2022-05-26: rokups
|
||
[C#] #1323 Modify SwigDerivedClassHasMethod for a more efficient director
|
||
implementation when calling virtual methods that are not overridden.
|
||
|
||
2022-05-15: erezgeva, eiselekd
|
||
[Lua, Perl, Octave, PHP, Tcl] #2275 #2276 #2283 Add argcargv.i library containing
|
||
(int ARGC, char **ARGV) multi-argument typemaps.
|
||
|
||
Document this library in Typemaps.html.
|
||
|
||
2022-05-07: KrisThielemans
|
||
[Python] Fix "too many initializers for 'PyHeapTypeObject'" errors
|
||
using PyPy 3.8 and later.
|
||
|
||
2022-05-04: wsfulton
|
||
[C#] Add C# wchar_t * director typemaps
|
||
|
||
2022-04-20: cminyard
|
||
Fix an issue where newlines were not properly generated
|
||
for godirectorin typemaps. If you have a virtual function
|
||
not assigned to zero, in some cases it won't generate a
|
||
newline and you will see errors:
|
||
example.go:1508:3: expected ';', found swig_r
|
||
when compiling the go code.
|
||
|
||
Also add an example of using goin and godirectorin and add
|
||
a test for this situation.
|
||
|
||
2022-04-29: jason-daly, JerryJoyce, wsfulton
|
||
[C#] #1233 Add wchar_t * and std::wstring Unicode string support on Linux.
|
||
|
||
2022-04-11: robinst
|
||
#2257 Fix new Ruby 3.2 warning "undefining the allocator of T_DATA
|
||
class swig_runtime_data".
|
||
|
||
2022-04-07: olly
|
||
#1750 SWIG now recognises and ignores Doxygen group commands `@{` and `@}`.
|
||
|
||
2022-04-06: wsfulton
|
||
./configure now enables C++11 and later C++ standards testing by default (when
|
||
running: 'make check').
|
||
|
||
The options to control this testing are the same:
|
||
|
||
./configure --enable-cpp11-testing
|
||
./configure --disable-cpp11-testing
|
||
|
||
But the former is now the default and the latter can be used to turn off C++11 and
|
||
later C++ standards testing.
|
||
|
||
2022-04-06: wsfulton
|
||
[Python] #1635 The "autodoc" feature no longer overrides Doxygen comments
|
||
in the generated docstring.
|
||
|
||
If a "docstring" feature is present it will still override a Doxygen comment.
|
||
If the "autodoc" feature is also present, the combined "autodoc" and "docstring"
|
||
will override the Doxygen comment. If no "docstring" is present then the
|
||
"autodoc" feature will not be generated when there is a Doxygen comment.
|
||
|
||
This way the "autodoc" feature can be specified and used to provide documentation
|
||
for 'missing' Doxygen comments.
|
||
|
||
*** POTENTIAL INCOMPATIBILITY ***
|
||
|
||
2022-04-01: olly
|
||
Remove undocumented and non-functional -browse command line option.
|
||
|
||
2022-03-26: eltoder
|
||
[Python] #1684 Use different capsule names with and without -builtin
|
||
|
||
Types generated with and without -builtin are not compatible. Mixing
|
||
them in a common type list leads to crashes. Avoid this by using
|
||
different capsule names: "type_pointer_capsule" without -builtin and
|
||
"type_pointer_capsule_builtin" with.
|
||
|
||
2022-03-25: wsfulton
|
||
The debug command line options that display parse tree nodes
|
||
(-debug-module, -debug-top, -debug-symtabs) now display previously hidden
|
||
linked list pointers which are useful for debugging parse trees.
|
||
|
||
Added new command line option -debug-quiet. This suppresses the display
|
||
of most linked list pointers and symbol table pointers in the parse tree nodes.
|
||
|
||
The keys in the parse tree node are now shown in alphabetical order.
|
||
|
||
2022-03-24: wsfulton
|
||
#2244 Fix using declaration in derived class bugs when all the base
|
||
class's overloaded methods were overridden in the derived class -
|
||
fixes "multiply defined" errors.
|
||
|
||
2022-03-23: wsfulton
|
||
[Python] #1779 The -py3 option is deprecated and now has no effect on the
|
||
code generated. Use of this option results in a deprecated warning.
|
||
The related SWIGPYTHON_PY3 macro that this option defined is no longer generated.
|
||
|
||
Note that %pythonnondynamic feature generates a metaclass that works on both
|
||
Python 2 and Python 3.
|
||
|
||
2022-03-21: wsfulton
|
||
[Python] #1779 pyabc.i for abstract base classes now supports versions of
|
||
Python prior to 3.3 by using the collection module for these older versions.
|
||
Python-3.3 and later continue to use the collections.abc module.
|
||
The -py3 option no longer has any effect on the %pythonabc feature.
|
||
|
||
2022-03-21: jschueller, jim-easterbrook, wsfulton
|
||
[Python] #2137 C++ static member functions no longer generate a "flattened"
|
||
name in the Python module. For example:
|
||
|
||
s = example.Spam()
|
||
s.foo() # Spam::foo() via an instance
|
||
example.Spam.foo() # Spam::foo() using class method
|
||
example.Spam_foo() # Spam::foo() "flattened" name
|
||
|
||
The "flattened" name is no longer generated, but can be generated
|
||
by using the new -flatstaticmethod option.
|
||
|
||
*** POTENTIAL INCOMPATIBILITY ***
|
||
|
||
2022-03-18: ianlancetaylor
|
||
[Go] #337 Implement %extend base methods in child classes.
|
||
|
||
2022-03-17: olly
|
||
[Python] #1779 SWIG's Python test-suite and examples are now
|
||
run with Python 3 by default. To run them with Python 2, set
|
||
PY2 to a non-empty value, e.g.:
|
||
|
||
make check-python-test-suite PY2=1
|
||
|
||
2022-03-16: olly
|
||
[Go] #683 -intgosize is now optional - if not specified the
|
||
generated C/C++ wrapper code will use ptrdiff_t for intgo and
|
||
size_t for uintgo.
|
||
|
||
2022-03-15: ianlancetaylor
|
||
[Go] Add typemaps for std::string*.
|
||
|
||
2022-03-15: ianlancetaylor
|
||
[Go] Don't convert arrays to pointers if there is a "gotype"
|
||
typemap entry.
|
||
|
||
2022-03-15: ianlancetaylor
|
||
[Go] Add documentation note about Go and C++ exceptions.
|
||
|
||
2022-03-12: wsfulton
|
||
#1524 %interface family of macros no longer contain the getter/setter
|
||
methods for wrapping variables. The interface only contains
|
||
virtual and non-virtual instance methods, that is, no static methods.
|
||
Enums are also no longer added to the interface (affects Java only where
|
||
they were missing from the proxy class, C# never had them in the interface).
|
||
|
||
*** POTENTIAL INCOMPATIBILITY ***
|
||
|
||
2022-03-12: wsfulton
|
||
#1277 Fixes for the family of %interface macros, %interface,
|
||
%interface_impl and %interface_custom fixes for overloaded methods
|
||
in an inheritance chain.
|
||
|
||
When C++ methods are not able to be overloaded in a derived class,
|
||
such as when they differ by just const, or the target language
|
||
parameters types are identical even when the C++ parameter types
|
||
are different, SWIG will ignore one of the overloaded methods with
|
||
a warning. A %ignore is required to explicitly ignore one of the
|
||
overloaded methods to avoid the warning message. Methods added
|
||
in the derived classes due to one of the %interface macros are now
|
||
similarly ignored/not added to the derived class.
|
||
|
||
The methods added to the derived classes can now also be modified
|
||
via %feature and %rename.
|
||
|
||
2022-03-08: ianlancetaylor
|
||
[Go] Treat a nil argument as a NULL pointer.
|
||
|
||
2022-03-08: ianlancetaylor
|
||
[Go] Add documentation notes about thread local storage.
|
||
|
||
2022-03-08: olly
|
||
#1006 SWIG now copes with an interface filename specified on the
|
||
command line which contains a closing parenthesis `)`, and more
|
||
generally with attributes to `%include` and `%import` which
|
||
are quoted and contain parentheses.
|
||
|
||
2022-03-07: Omar Medina
|
||
[Tcl] https://sourceforge.net/p/swig/bugs/1290/
|
||
Fix SWIG_AsWCharPtrAndSize() to actually assign to result
|
||
variable. It looks like SWIG/Tcl wide character handling is
|
||
currently fundamentally broken except on systems which use wide
|
||
characters as the system encoding, but this should fix wrapping
|
||
functions which take a wide string as a parameter on Microsoft
|
||
Windows.
|
||
|
||
2022-03-07: olly
|
||
[Javascript] #682 Fix handling of functions which take void*.
|
||
|
||
2022-03-06: olly
|
||
SWIG should now reliably exit with status 0 if the run was
|
||
successful and status 1 if there was an error (or a warning and
|
||
-Werror was in effect).
|
||
|
||
Previously in some situations SWIG would try to exit with the
|
||
status set to the number of errors encountered, but that's
|
||
problematic - for example if there were 256 errors this would
|
||
result in exit status 0 on most platforms. Also some error
|
||
statuses have special meanings e.g. those defined by <sysexits.h>.
|
||
Also SWIG/Javascript tried to exit with status -1 in a few places
|
||
(which typically results in exit status 255).
|
||
|
||
2022-03-05: wsfulton
|
||
#1441 Fix using declaration in derived class incorrectly introducing a method
|
||
from a base class when the using declaration is declared before the method
|
||
declaration. Problem occurred when within a namespace and the parameter types
|
||
in the method signatures were not fully qualified.
|
||
2022-03-05: ianlancetaylor
|
||
[Go] Treat non-const references as pointers.
|
||
|
||
2022-03-05: ianlancetaylor
|
||
In SWIG Go testsuite, fail test if "go build" fails.
|
||
|
||
2022-03-03: olly
|
||
#1901 #2223 SWIG should now always exit cleanly if memory
|
||
allocation fails, including removing any output files created
|
||
during the current run.
|
||
|
||
Previously most places in the code didn't check for a NULL return
|
||
from malloc()/realloc()/calloc() at all, typically resulting in
|
||
undefined behaviour; some places used assert() to check for a NULL
|
||
return (which is a misuse of assert() and such checks disappear if
|
||
built with NDEBUG defined leaving us back with undefined
|
||
behaviour).
|
||
|
||
2022-03-03: olly
|
||
#891 Report errors for typemap attributes without a value
|
||
(previously SWIG segfaulted) and for typemap types with a value
|
||
(previously the value was quietly ignored).
|
||
|
||
The old way of specifying a language name in the typemap attributes
|
||
is no longer supported (it has been deprecated for 16 years).
|
||
|
||
2022-03-02: geographika, wsfulton
|
||
[Python] #1951 Add Python variable annotations support.
|
||
|
||
Both function annotations and variable annotations are turned on using the
|
||
"python:annotations" feature. Example:
|
||
|
||
%feature("python:annotations", "c");
|
||
|
||
struct V {
|
||
float val;
|
||
};
|
||
|
||
The generated code contains a variable annotation containing the C float type:
|
||
|
||
class V(object):
|
||
val: "float" = property(_example.V_val_get, _example.V_val_set)
|
||
...
|
||
|
||
Python 3.5 and earlier do not support variable annotations, so variable
|
||
annotations can be turned off with a "python:annotations:novar" feature flag.
|
||
Example turning on function annotations but not variable annotations globally:
|
||
|
||
%feature("python:annotations", "c");
|
||
%feature("python:annotations:novar");
|
||
|
||
or via the command line:
|
||
|
||
-features python:annotations=c,python:annotations:novar
|
||
|
||
*** POTENTIAL INCOMPATIBILITY ***
|
||
|
||
2022-02-27: wsfulton
|
||
[Python] #735 #1561 Function annotations containing C/C++ types are no longer
|
||
generated when using the -py3 option. Function annotations support has been
|
||
moved to a feature to provide finer grained control. It can be turned on
|
||
globally by adding:
|
||
|
||
%feature("python:annotations", "c");
|
||
|
||
or by using the command line argument:
|
||
|
||
-features python:annotations=c
|
||
|
||
Also see entry dated 2022-03-02, regarding variable annotations.
|
||
|
||
*** POTENTIAL INCOMPATIBILITY ***
|
||
|
||
2022-02-26: wsfulton
|
||
#655 #1840 Add new warning WARN_LANG_USING_NAME_DIFFERENT to warn when a
|
||
method introduced by a using declaration in a derived class cannot
|
||
be used due to a conflict in names.
|
||
|
||
2022-02-24: olly
|
||
#1465 An invalid preprocessor expression is reported as a pair of
|
||
warnings with the second giving a more detailed message from the
|
||
expression evaluator. Previously SWIG prefixed the second message
|
||
with "Error:" - that was confusing as it's actually only a warning
|
||
by default so we've now dropped this prefix.
|
||
|
||
Before:
|
||
|
||
x.i:1: Warning 202: Could not evaluate expression '1.2'
|
||
x.i:1: Warning 202: Error: 'Floating point constant in preprocessor expression'
|
||
|
||
Now:
|
||
|
||
x.i:1: Warning 202: Could not evaluate expression '1.2'
|
||
x.i:1: Warning 202: Floating point constant in preprocessor expression
|
||
|
||
2022-02-23: olly
|
||
#1384 Fix a preprocessor expression evaluation bug. A
|
||
subexpression in parentheses lost its string/int type flag and
|
||
instead used whatever type was left in the stack entry from
|
||
previous use. In practice we mostly got away with this because
|
||
most preprocessor expressions are integer, but it could have
|
||
resulted in a preprocessor expression incorrectly evaluating as
|
||
zero. If -Wextra was in use you got a warning:
|
||
|
||
Warning 202: Error: 'Can't mix strings and integers in expression'
|
||
|
||
2022-02-21: davidcl
|
||
[Scilab] Improve 5.5.2, 6.0.0 and 6.1.0 support.
|
||
|
||
For Scilab 5, long names are reduced to small names preserving the
|
||
class prefix and accessor suffix (get or set).
|
||
|
||
For Scilab 6, long names with the class prefix and accessor suffix
|
||
should be used on the user code.
|
||
|
||
The `-targetversion` option has been removed as the generated code
|
||
now detects the Scilab version in loader.sce or builder.sce.
|
||
|
||
*** POTENTIAL INCOMPATIBILITY ***
|
||
|
||
2022-02-20: wsfulton
|
||
Fix %warnfilter warning suppress for warning 315 SWIGWARN_PARSE_USING_UNDEF.
|
||
|
||
2022-02-17: olly
|
||
[PHP] https://sourceforge.net/p/swig/bugs/1211/
|
||
Fix to call cleanup code in exception situations and not to invoke
|
||
the freearg typemap twice in certain situations.
|
||
|
||
2022-02-15: olly
|
||
#300 #368 Improve parser handling of % followed immediately by
|
||
an identifier. If it's not a recognised directive the scanner
|
||
now emits MODULO and then rescans what follows, and if the parser
|
||
then gives a syntax error we report it as an unknown directive.
|
||
This means that `a%b` is now allowed in an expression, and that
|
||
things like `%std::vector<std::string>` now give an error rather
|
||
than being quietly ignored.
|
||
|
||
2022-02-11: adr26
|
||
[Python] #2154 Fix memory leak.
|
||
|
||
SWIG python objects were being freed after the corresponding SWIG
|
||
module information was destroyed in Python 3, causing leaks when as
|
||
a result the object destructor could not be invoked. To prevent this
|
||
misordering, SWIG python objects now obtain a reference to the
|
||
Python capsule wrapping the module information, so that the module
|
||
information is correctly destroyed after all SWIG python objects
|
||
have been freed (and corresponding destructors invoked).
|
||
|
||
2022-02-10: olly
|
||
[Tcl] https://sourceforge.net/p/swig/bugs/1207/
|
||
https://sourceforge.net/p/swig/bugs/1213/
|
||
|
||
Fix Tcl generic input typemap for std::vector.
|
||
|
||
2022-02-07: sethrj
|
||
#2196 Add alternative syntax for specifying fragments in typemaps.
|
||
|
||
New syntax:
|
||
%typemap("in", fragment="frag1", fragment="frag2", fragment="frag3") {...}
|
||
which is equivalent to:
|
||
%typemap(in, fragment="frag1,frag2,frag3") {...}
|
||
|
||
|
||
2022-02-07: olly
|
||
#1806 Remove support for the "command" encoder, which was mostly
|
||
intended for use in `%rename` - most uses can be achieved using
|
||
the "regex" encoder, so we recommend using that instead.
|
||
|
||
The "command" encoder suffers from a number of issues - as the
|
||
documentation for it admitted, "[it] is extremely slow compared to
|
||
all the other [encoders] as it involves spawning a separate process
|
||
and using it for many declarations is not recommended" and that it
|
||
"should generally be avoided because of performance
|
||
considerations".
|
||
|
||
But it's also not portable. The design assumes that `/bin/sh`
|
||
supports `<<<` but that's a bash-specific feature so it doesn't
|
||
work on platforms where `/bin/sh` is not bash - it fails on
|
||
Debian, Ubuntu and probably some other Linux distros, plus most
|
||
non-Linux platforms. Microsoft Windows doesn't even have a
|
||
/bin/sh as standard.
|
||
|
||
Finally, no escaping of the passed string is done, so it has
|
||
potential security issues (though at least with %rename the input
|
||
is limited to valid C/C++ symbol names).
|
||
|
||
2022-02-06: olly
|
||
#2193 -DFOO on the SWIG command line now sets FOO to 1 for
|
||
consistency with C/C++ compiler preprocessors. Previously
|
||
SWIG set FOO to an empty value.
|
||
|
||
Existing invocations of SWIG with `-DFOO` where the empty value
|
||
matters can be updated to `-DFOO=` which should work with both
|
||
old and new releases of SWIG.
|
||
|
||
*** POTENTIAL INCOMPATIBILITY ***
|
||
|
||
2022-02-06: sethrj
|
||
#2194 Classes that are non-assignable due to const data or const
|
||
reference members are now automatically detected.
|
||
|
||
2022-02-04: friedrichatgc
|
||
[Octave] #1672 Fix for isobject for Octave 4.4 - 6.0.
|
||
|
||
2022-02-03: olly
|
||
[C#] #283 #998 Fix memory leak in directorin typemap for
|
||
std::string.
|
||
|
||
2022-02-03: olly
|
||
[Python] #967 Make `self` parameter available to user typemaps.
|
||
|
||
2022-02-03: teythoon
|
||
[Python] #801 Fix -Wunused-parameter warnings with builtin,
|
||
|
||
2022-02-03: teythoon
|
||
#801 Fix -Wstrict-prototypes warnings in generated pointer
|
||
functions.
|
||
|
||
2022-02-03: olly
|
||
#660 https://sourceforge.net/p/swig/bugs/1081/
|
||
Default parameter values containing method calls are now parsed and
|
||
handled - e.g. `x->foo(3,4)` and `y.z()`.
|
||
|
||
2022-02-02: olly
|
||
[Ruby] https://sourceforge.net/p/swig/bugs/1136/ Fix remove of prefix
|
||
from method name to only remove it at the start.
|
||
|
||
2022-02-01: olly
|
||
#231 Handle returning an object by reference in a C++ trailing
|
||
return type.
|
||
|
||
2022-02-01: davidcl
|
||
[Scilab] #745 use SWIG_<module>_Init() as a C module init function.
|
||
|
||
2022-02-01: olly
|
||
[OCaml] #2083 Fix to work when CAML_SAFE_STRING is on, which it is
|
||
by default in recent Ocaml releases.
|
||
|
||
2022-01-31: mreeez
|
||
https://sourceforge.net/p/swig/bugs/1147/
|
||
Fix copyToR() generated for a struct in a namespace.
|
||
|
||
2022-01-29: fschlimb
|
||
#655 Better handling of using declarations.
|
||
|
||
2022-01-29: dontpanic92
|
||
[Go] #676 Fix code generated for a C++ class with a non-capitalised
|
||
name.
|
||
|
||
2022-01-26: trex58
|
||
#1919 #1921 #1923 Various fixes for AIX portability.
|
||
|
||
2022-01-26: olly
|
||
#1935 Don't crash on an unclosed HTML tag in a doxygen comment
|
||
when -doxygen is specified.
|
||
|
||
2022-01-25: olly
|
||
Constant expressions now support member access with `.` such as
|
||
`foo.bar`. Previous this only worked in a case like `x->foo.bar`.
|
||
|
||
2022-01-25: olly
|
||
#2091 Support most cases of `sizeof` applied to an expression
|
||
in constant expressions. Previously there was only support for
|
||
`sizeof(<type>)` and expressions which syntactically look like a
|
||
type (such as `sizeof(foo)`).
|
||
|
||
2022-01-25: olly
|
||
#80 #635 https://sourceforge.net/p/swig/bugs/1139/
|
||
Add support for parsing common cases of `<` and `>` comparisons
|
||
in constant expressions. Adding full support for these seems hard
|
||
to do without introducing conflicts into the parser grammar, but in
|
||
fact all reported cases have had parentheses around the comparison
|
||
and we can support that with a few restrictions on the left side of
|
||
`<`.
|
||
|
||
2022-01-25: wsfulton
|
||
New warning 327 for extern templates, eg:
|
||
|
||
extern template class std::vector<int>;
|
||
extern template void Func<int>();
|
||
|
||
results in warning
|
||
|
||
example.i:3: Warning 327: Extern template ignored.
|
||
example.i:4: Warning 327: Extern template ignored.
|
||
|
||
Extern template classes previously resulted in warning 320.
|
||
|
||
2022-01-24: romintomasetti
|
||
#2131 #2157 C++11 extern function template parsing error fix.
|
||
|
||
2022-01-21: wsfulton
|
||
#2120 #2138 Replace legacy PCRE dependency with PCRE2.
|
||
This requires changes for building SWIG from source. See updated
|
||
html documentation in Preface.html and Windows.html. Updated
|
||
instructions are also shown when running ./configure if PCRE2 is not
|
||
found. Note that debian based systems can install PCRE2 using:
|
||
|
||
apt install libpcre2-dev
|
||
|
||
Note that https://github.com/swig/swig/wiki/Getting-Started also has
|
||
updated information for building from source.
|
||
|
||
2022-01-19: olly
|
||
[PHP] #2027 Automatically generate PHP type declarations for PHP 8.
|
||
The generate code still compiles for PHP 7.x, but without type
|
||
declarations since PHP 7.x has much more limited type declaration
|
||
support.
|
||
|
||
2022-01-18: olly
|
||
[Perl] #1629 Perl 5.8.0 is now the oldest version we aim to support.
|
||
|
||
2022-01-14: wsfulton
|
||
[Python] Fix %callback and specifying the callback function as a
|
||
static member function using Python staticmethod syntax, such as
|
||
Klass.memberfunction instead of Klass_memberfunction when using
|
||
-builtin and -fastproxy.
|
||
|
||
2022-01-11: wsfulton
|
||
[Python] Accept keyword arguments accessing static member functions when
|
||
using -builtin and kwargs feature and Python class staticmethod syntax.
|
||
The missing keyword argument support was only when using the
|
||
class staticmethod syntax, such as Klass.memberfunction, and not when
|
||
using the flat static method syntax, such as Klass_memberfunction.
|
||
|
||
2022-01-04: juierror
|
||
[Go] #2045 Add support for std::array in std_array.i.
|
||
|
||
2021-12-18: olly
|
||
[PHP] Add PHP keyword 'readonly' (added in 8.1) to the list SWIG
|
||
knows to automatically rename. This keyword is special in that PHP
|
||
allows it to be used as a function (or method) name.
|
||
|
||
2021-12-07: vstinner
|
||
[Python] #2116 Python 3.11 support: use Py_SET_TYPE()
|
||
|
||
2021-12-05: rwf1
|
||
[Octave] #2020 #1893 Add support for Octave 6 up to and including 6.4.
|
||
Also add support for compiling with -Bsymbolic which is used by default
|
||
by mkoctfile.
|
||
|
||
2021-12-02: jsenn
|
||
[Python] #2102 Fixed crashes when using embedded Python interpreters.
|
||
|
||
2021-11-12: wsfulton
|
||
[Javascript] v8 and node only. Fix mismatched new char[] and free()
|
||
when wrapping C code char arrays. Now calloc is now used instead of
|
||
new char[] in SWIG_AsCharPtrAndSize.
|
||
|
||
2021-10-03: ajrh1
|
||
[Perl] #2074: Avoid -Wmisleading-indentation in generated code
|
||
when using gcc11.
|
||
|
||
2021-10-03: jschueller
|
||
[CMake] #2065: Add option to enable or disable PCRE support.
|
||
|
||
2021-09-16: ianlancetaylor
|
||
[Go] Improved _cgo_panic implementation.
|
||
|
||
2021-09-16: ianlancetaylor
|
||
[Go] Don't use crosscall2 for panicking. Instead rely on documented
|
||
and exported interfaces.
|
||
|
||
2021-09-14: ianlancetaylor
|
||
[Go] Remove -no-cgo option (long unsupported in Go)
|
||
|
||
2021-05-04: olly
|
||
[PHP] #2014 Throw PHP exceptions instead of using PHP errors
|
||
|
||
PHP exceptions can be caught and handled if desired, but if they
|
||
aren't caught then PHP exits in much the same way as it does for a
|
||
PHP error.
|
||
|
||
In particular this means parameter type errors and some other cases
|
||
in SWIG-generated wrappers now throw a PHP exception, which matches
|
||
how PHP's native parameter handling deals with similar situations.
|
||
|
||
`SWIG_ErrorCode()`, `SWIG_ErrorMsg()`, `SWIG_FAIL()` and `goto thrown;`
|
||
are no longer supported (these are really all internal implementation
|
||
details and none are documented aside from brief mentions in CHANGES
|
||
for the first three). I wasn't able to find any uses in user interface
|
||
files at least in FOSS code via code search tools.
|
||
|
||
If you are using these:
|
||
|
||
Use `SWIG_PHP_Error(code,msg);` instead of `SWIG_ErrorCode(code);
|
||
SWIG_ErrorMsg(msg);` (which will throw a PHP exception in SWIG >= 4.1
|
||
and do the same as the individual calls in older SWIG).
|
||
|
||
`SWIG_FAIL();` and `goto thrown;` can typically be replaced with
|
||
`SWIG_fail;`. This will probably also work with older SWIG, but
|
||
please test with your wrappers if this is important to you.
|
||
|
||
*** POTENTIAL INCOMPATIBILITY ***
|
||
|
||
2021-05-17: adr26
|
||
[Python] #1985 Fix memory leaks:
|
||
|
||
1. Python object references were being incorrectly retained by
|
||
SwigPyClientData, causing swig_varlink_dealloc() never to run / free
|
||
memory. SwigPyClientData_New() / SwigPyClientData_Del() were updated
|
||
to fix the object reference counting, causing swig_varlink_dealloc()
|
||
to run and the memory swig_varlink owns to be freed.
|
||
|
||
2. SwigPyClientData itself was not freed by SwigPyClientData_Del(),
|
||
causing another heap leak. The required free() was added to
|
||
SwigPyClientData_Del()
|
||
|
||
3. Fix reference counting/leak of python cached type query
|
||
|
||
4. Fix reference counting/leak of SwigPyObject dict (-builtin)
|
||
|
||
5. Python object reference counting fixes for out-of-memory
|
||
scenarios were added to: SWIG_Python_RaiseOrModifyTypeError(),
|
||
SWIG_Python_AppendOutput(), SwigPyClientData_New(),
|
||
SwigPyObject_get___dict__() and SwigPyObject_format()
|
||
|
||
6. Add error handling for PyModule_AddObject() to
|
||
SWIG_Python_SetModule() (failure could be caused by OOM or a name
|
||
clash caused by malicious code)
|
||
|
||
2021-05-13: olly
|
||
[UFFI] #2009 Remove code for Common Lisp UFFI. We dropped support
|
||
for it in SWIG 4.0.0 and nobody has stepped forward to revive it in
|
||
over 2 years.
|
||
|
||
2021-05-13: olly
|
||
[S-EXP] #2009 Remove code for Common Lisp S-Exp. We dropped
|
||
support for it in SWIG 4.0.0 and nobody has stepped forward to
|
||
revive it in over 2 years.
|
||
|
||
2021-05-13: olly
|
||
[Pike] #2009 Remove code for Pike. We dropped support for it in
|
||
SWIG 4.0.0 and nobody has stepped forward to revive it in over 2
|
||
years.
|
||
|
||
2021-05-13: olly
|
||
[Modula3] #2009 Remove code for Modula3. We dropped support for it
|
||
in SWIG 4.0.0 and nobody has stepped forward to revive it in over 2
|
||
years.
|
||
|
||
2021-05-13: olly
|
||
[CLISP] #2009 Remove code for GNU Common Lisp. We dropped support
|
||
for it in SWIG 4.0.0 and nobody has stepped forward to revive it in
|
||
over 2 years.
|
||
|
||
2021-05-13: olly
|
||
[Chicken] #2009 Remove code for Chicken. We dropped support for it
|
||
in SWIG 4.0.0 and nobody has stepped forward to revive it in over 2
|
||
years.
|
||
|
||
2021-05-13: olly
|
||
[Allegrocl] #2009 Remove code for Allegro Common Lisp. We dropped
|
||
support for it in SWIG 4.0.0 and nobody has stepped forward to
|
||
revive it in over 2 years.
|
||
|
||
2021-05-04: olly
|
||
[PHP] #1982 #1457 https://sourceforge.net/p/swig/bugs/1339/
|
||
SWIG now only use PHP's C API to implement its wrappers, and no
|
||
longer generates PHP code to define classes. The wrappers should
|
||
be almost entirely compatible with those generated before, but
|
||
faster and without some previously hard-to-fix bugs.
|
||
|
||
The main notable difference is SWIG no longer generates a .php
|
||
wrapper at all by default (only if %pragma(php) code=... or
|
||
%pragma(php) include=... are specified in the interface file).
|
||
This also means you need to load the module via extension=...
|
||
in php.ini, rather than letting the dl() in the generated
|
||
.php wrapper load it (but dl() has only worked for command-line
|
||
PHP for some years now).
|
||
|
||
*** POTENTIAL INCOMPATIBILITY ***
|
||
|
||
2021-04-30: olly
|
||
#1984 Remove support for $source and $target.
|
||
These were officially deprecated in 2001, and attempts to use them have
|
||
resulted in a warning (including a pointer to what to update them to)
|
||
for most if not all of that time.
|
||
|
||
2021-04-27: wsfulton
|
||
#1987 [Java] Fix %interface family of macros for returning by const
|
||
pointer reference.
|
||
|
||
2021-04-19: olly
|
||
Fix use of uninitialised variable in the generated code for an
|
||
empty typecheck typemap, such as the dummy one we include for
|
||
std::initializer_list.
|
||
|
||
2021-04-12: olly
|
||
#1777 [Python] Specifying -py3 now generates a check for Python
|
||
version >= 3.0.
|
||
|
||
2021-03-26: olly
|
||
[PHP] Add PHP keywords 'fn' (added in 7.4) and 'match' (added in
|
||
8.0) to the list SWIG knows to automatically rename.
|
||
|
||
2021-03-23: wsfulton
|
||
#1942 [Python] Fix compilation error in wrappers when using -builtin
|
||
and wrapping varargs in constructors.
|
||
|
||
2021-03-22: goto40
|
||
#1977 Fix handling of template template parameters.
|
||
|
||
2021-03-21: olly
|
||
#1929, #1978 [PHP] Add support for PHP 8.
|
||
|
||
2021-03-19: wsfulton
|
||
#1610 Remove -ansi from default compilation flags.
|
||
|
||
2021-03-19: dot-asm
|
||
#1934 [Java] Clean up typemaps for long long arrays.
|
||
|
||
2021-03-19: olly
|
||
#1527 [PHP] Improve PHP object creation in directorin case.
|
||
Reportedly the code we were using in this case gave segfaults in
|
||
PHP 7.2 and later - we've been unable to reproduce these, but the
|
||
new approach is also simpler and should be bit faster too.
|
||
|
||
2021-03-18: olly
|
||
#1655 [PHP] Fix char* typecheck typemap to accept PHP Null like the
|
||
corresponding in typemap does.
|
||
|
||
2021-03-18: olly
|
||
#1900, #1905 [PHP] Fix wrapping of overloaded directed methods with
|
||
non-void return.
|
||
|
||
2021-03-11: murillo128
|
||
#1498 [Javascript] Support type conversion.
|
||
|
||
2021-03-06: nshmyrev
|
||
#872 [Javascript] Various typemap issues in arrays_javascript.i fixed.
|
||
|
||
2021-03-03: vaughamhong
|
||
#577 [Javascript] Implemented SetModule/GetModule for JSC to allow type sharing
|
||
across modules.
|
||
|
||
2021-03-01: xantares, Oliver Buchtala, geographika
|
||
#1040 Add support for building SWIG with CMake. See documentation in Windows.html.
|
||
|
||
2021-03-01: vadz
|
||
#1952 Fix incorrect warning "Unknown Doxygen command: ."
|
||
|
||
2021-02-28: p2k
|
||
#969 [Javascript] v8/node - prevent crash calling a constructor without new keyword.
|
||
|
||
2021-02-28: alecmev
|
||
#405 #1121 [Javascript] Fix OUTPUT typemaps on methods that don't return void.
|
||
The output value is appended to the return value.
|
||
|
||
2021-02-26: murillo128, wsfulton
|
||
#1269 [Javascript] Fix handling of large positive unsigned long and
|
||
unsigned long long values.
|
||
|
||
2021-02-24: tomleavy, yegorich, tungntpham
|
||
#1746 [Javascript] Add support for Node v12, v14 and v16.
|
||
SWIG support for Node is now for v6 and later only.
|
||
|
||
2020-02-09: ZackerySpytz
|
||
#1872 Fix typos in attribute2ref macros.
|
||
|
||
2020-10-10: wsfulton
|
||
[Javascript] Fix so that ccomplex.i interface to file can be used.
|
||
|
||
2020-10-10: wsfulton
|
||
#252 complex can now be used as a C identifier and doesn't give a syntax error.
|
||
|
||
2020-10-10: lpsinger
|
||
#1770 Correct C complex support.
|
||
_Complex is now parsed as a keyword rather than complex as per the C99 standard.
|
||
The complex macro is available in the ccomplex.i library file along with other
|
||
complex number handling provided by the complex.h header.
|
||
|
||
2020-10-07: ZackerySpytz
|
||
[Python] #1812 Fix the error handling for the PyObject_GetBuffer() calls in
|
||
pybuffer.i.
|
||
|
||
2020-10-07: treitmayr
|
||
#1824 Add missing space in director method declaration returning
|
||
const pointer.
|
||
|
||
2020-10-07: adelva1984
|
||
#1859 Remove all (two) exceptions from SWIG executable.
|
||
|
||
2020-09-25: wsfulton
|
||
[C#, Java] #1874 Add ability to change the modifiers for the interface
|
||
generated when using the %interface macros.
|
||
|
||
For C# use the 'csinterfacemodifiers' typemap.
|
||
For Java use the 'javainterfacemodifiers' typemap.
|
||
|
||
For example:
|
||
|
||
%typemap(csinterfacemodifiers) X "internal interface"
|
||
|
||
2020-09-24: geefr
|
||
[C#] #1868 Fix wchar_t* csvarout typemap for member variable wrappers.
|
||
|
||
2020-08-28: wsfulton
|
||
[Java] #1862 Fix crashes in swig_connect_director during director class construction
|
||
when using the director class from multiple threads - a race condition initialising
|
||
block scope static variables. The fix is guaranteed when using C++11, but most
|
||
compilers also fix it when using C++03/C++98.
|
||
|
||
2020-08-16: wsfulton
|
||
[Python] Add missing initializer for member ‘_heaptypeobject::ht_module’ when using
|
||
-builtin to complete Python 3.9 support.
|
||
|
||
2020-08-16: wsfulton
|
||
[Python] Remove PyEval_InitThreads() call for Python 3.7 and later as Python calls
|
||
it automatically now. This removes a deprecation warning when using Python 3.9.
|
||
|
||
2020-08-15: wsfulton
|
||
[Python] All Python examples and tests are written to be Python 2 and Python 3
|
||
compatible, removing the need for 2to3 to run the examples or test-suite.
|
||
|
||
2020-08-13: wsfulton
|
||
[C#] Add support for void *VOID_INT_PTR for member variables.
|
||
|
||
2020-07-29: chrisburr
|
||
#1843 [Python] Compilation error fix in SwigPyBuiltin_SetMetaType when using PyPy.
|
||
|
||
2020-06-14: ZackerySpytz
|
||
#1642 #1809 Fix virtual comparison operators in director classes - remove incorrect
|
||
space in the function name, for example, operator= = is now operator==.
|