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.2.1 (24 Feb 2024) =========================== 2024-02-23: wsfulton #2814 Correctly ignore duplicate template instantiation (when the duplicate contains typedef'd template parameters). 2024-02-22: erezgeva [Ruby, Octave, R] #2284 Fix segfault shrinking STL containers. 2024-02-22: simark Fix -Wundef warning about testing the value of __cplusplus when compiling SWIG-generated C code. Warning introduced by a change in SWIG 4.2.0. 2024-02-21: olly #2808 [PHP] Fix memory leak when getting or setting a PHP attribute which wraps a C++ member variable. Bug introduced in SWIG 4.1.0. 2024-02-18: wsfulton #2745 Fix for wrapping STL containers that are static member variables or global variables (most scripting languages). Previously a copy of the STL container was made into a target language container when reading the variable. Changes, such as adjusting an element or adding/erasing elements, were made to the copy of the container rather the actual underlying C++ container. Also applies to const reference STL static members. If you really need the old behaviour, add in the typemap that used to provide it. For example, for std::list< int > and const std::list< int >&, use: %typemap(varout,noblock=1,fragment="SWIG_" "Traits" "_" {std::list< int >}) std::list< int >, const std::list< int >& { $result = swig::from(static_cast< std::list< int > >($1)); } *** POTENTIAL INCOMPATIBILITY *** 2024-02-15: olly Improve type deduction for enum values in expressions. 2024-02-15: rlaboiss #2799 [Octave] Add support for Octave 9.0; fix warnings about use of deprecated Octave APIs with Octave 7 and later. 2024-02-14: olly SWIG now warns and ignores if %constant is used with an implicit type which SWIG can't deduce. 2024-02-13: olly Fix type deduction for certain cases involving C-style casts, or which are syntactically like a C-style cast applied to an unary operator, such as: (7)*6 2024-02-13: olly #2796 Fix handling of enum initialised by expression including a cast to a typedef-ed type. Regression introduced in 4.2.0. 2024-02-09: wsfulton #2794 Fix SwigType_isvariadic assertion to add support for variadic templated functions in a template. 2024-02-08: wsfulton #2761 [Tcl] Fix assert in SWIG_Tcl_ConvertPtrFromString(). 2024-02-03: wsfulton #1897 [C#, Java] Fix crash handling enums with same name in different namespaces. 2024-02-01: wsfulton #2781 Correctly report line number warnings/errors for base classes that are templates. 2024-01-31: olly Fix assertion failure and segfault trying to use %constant to deduce the type of a "float _Complex" constant. 2024-01-31: jim-easterbrook #2771 [Python] builtin fixes to handle NULL values passed to slots using functype: ssizeobjargproc and ternaryfunc. 2024-01-31: olly [Java] #2766 Fix segfault trying to wrap a constant whose type is unknown to SWIG with "%javaconst(1);" enabled. 2024-01-31: wsfulton #2768 Fix seg fault handling upcasting when using %shared_ptr on some templates. 2024-01-31: olly #2783 Fix incorrectly deduced type for function call. Regression introduced in 4.2.0. 2024-01-27: wsfulton [Python] Fix compilation error when wrapping two or more classes that have the same friend operator overload when the classes are in a namespace. 2024-01-15: wsfulton https://sourceforge.net/p/swig/bugs/960/ https://sourceforge.net/p/swig/bugs/807/ Fix so that friend operators within a namespace can be correctly ignored or renamed. 2024-01-15: wsfulton Wrap friend functions that are defined or declared within a namespace. Previously unqualified friend definitions/declarations in a namespace were ignored. The visibility of unqualified friend functions in C++ is somewhat quirky and the documentation has been enhanced to aid wrapping of friends. 2024-01-12: wsfulton #2749 Fix seg fault handling friend constructor/destructor declarations. 2024-01-12: olly [Ruby, Tcl] #2751 Fix -external-runtime output to define SWIG_snprintf (bug introduced in 4.2.0). 2024-01-12: olly Improve preprocessor warning for use of an undefined function-like macro. SWIG now warns: Warning 202: Could not evaluate expression 'MY_VERSION_AT_LEAST(1,2,3)' Warning 202: Use of undefined function-like macro instead of: Warning 202: Could not evaluate expression 'MY_VERSION_AT_LEAST(1,2,3)' Warning 202: Syntax error: expected operator 2024-01-11: PaulObermeier [Tcl] Improve support for Tcl 9.0. All examples and tests now pass with Tcl 9.0.b1. 2024-01-06: wsfulton [Python] #2744 Regression fix - add in missing SwigPyIterator_T fragment for SwigPyIteratorClosed_T when using %import on an instantiated std::map.