| 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-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. |
| |
| 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==. |