diff --git a/CHANGES.current b/CHANGES.current index 824781e03ec..da84352fa36 100644 --- a/CHANGES.current +++ b/CHANGES.current @@ -7,6 +7,26 @@ the issue number to the end of the URL: https://github.com/swig/swig/issues/ Version 4.3.0 (in progress) =========================== +2024-09-14: wsfulton + C++ reference errors when passing in a 'NULL' change of behaviour. + Most languages now use "NullReferenceError" in the error message + where they previously used "ValueError". Also exception changes: + + Guile: "swig-null-reference-error" instead of "swig-value-error" + MzScheme: "swig-null-reference-error" instead of "swig-value-error" + PHP: zend_ce_type_error instead of zend_ce_value_error + Python: Consistently raises TypeError instead of a mix of ValueError + and TypeError. + Ruby: Consistently raises NullReferenceError instead of a mix of + ArgumentError and NullReferenceErrorError. + + The consistent raising of a TypeError instead of ValueError for Python + ensures that incorrectly passing 'None' into a C++ reference argument + will correctly convert the error into a NotImplemented error for + the rich comparisons implementations per PEP 207. Fixes #2987 + + *** POTENTIAL INCOMPATIBILITY *** + 2024-09-12: olly Remove remains of %nestedworkaround and the nestedworkaround feature it uses, which were deprecated over 10 years ago in SWIG diff --git a/Doc/Manual/Guile.html b/Doc/Manual/Guile.html index b39b393557a..d40681587ff 100644 --- a/Doc/Manual/Guile.html +++ b/Doc/Manual/Guile.html @@ -456,16 +456,17 @@
- MAP(SWIG_MemoryError, "swig-memory-error"); - MAP(SWIG_IOError, "swig-io-error"); - MAP(SWIG_RuntimeError, "swig-runtime-error"); - MAP(SWIG_IndexError, "swig-index-error"); - MAP(SWIG_TypeError, "swig-type-error"); - MAP(SWIG_DivisionByZero, "swig-division-by-zero"); - MAP(SWIG_OverflowError, "swig-overflow-error"); - MAP(SWIG_SyntaxError, "swig-syntax-error"); - MAP(SWIG_ValueError, "swig-value-error"); - MAP(SWIG_SystemError, "swig-system-error"); + MAP(SWIG_MemoryError, "swig-memory-error"); + MAP(SWIG_IOError, "swig-io-error"); + MAP(SWIG_RuntimeError, "swig-runtime-error"); + MAP(SWIG_IndexError, "swig-index-error"); + MAP(SWIG_TypeError, "swig-type-error"); + MAP(SWIG_DivisionByZero, "swig-division-by-zero"); + MAP(SWIG_OverflowError, "swig-overflow-error"); + MAP(SWIG_SyntaxError, "swig-syntax-error"); + MAP(SWIG_ValueError, "swig-value-error"); + MAP(SWIG_SystemError, "swig-system-error"); + MAP(SWIG_NullReferenceError, "swig-null-reference-error");