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.0.2 (in progress)
===========================

2020-02-14: treitmayr
            #1724 Fix wrapping of abstract user-defined conversion operators.

2020-02-13: ddurham2
            [Python] #1512 Fix memleak when using STL containers of shared_ptr objects.

2020-02-06: wsfulton
            [Python] #1673 #1674 Fix setting 'this' when extending a proxy class with __slots__.

2020-01-31: vadz
            [Ruby] #1651 Add std::auto_ptr<> typemaps.

2020-01-31: ZackerySpytz
            [Python] #1700 More robust error checking for failures in calls to Python C API:
            PyBytes_AsStringAndSize() and PyString_AsStringAndSize().

2020-01-31: vadz
            [Python] #1710 Fix crash parsing empty docstrings.

2020-01-30: Alzathar
            [R] #910 #914 Fix R memory leak on exception.

2020-01-30: richardbeare
            [R] #1511 Fix bug wrapping functions. These were previously incorrectly wrapped as if
            they were variables. This happened when 'get' or 'set' was in the name of the function
            or method, but sometimes also in some other circumstances. If you were using R
            attribute syntax to access these methods, you'll need to switch to calling them as R
            methods.

            *** POTENTIAL INCOMPATIBILITY ***

2020-01-24: etse-dignitas, wsfulton
            [C#, D, Java] #1533 Fix upcasting for shared_ptr's of templated types.

2020-01-16: mcfarljm
            #1643 #1654 When using -doxygen, fix segfault when nameless parameters or vararg parameters
            are used.

2020-01-16: mcfarljm
            #1632 #1659 Fix newline handling for doxygen "///" comments.

2020-01-14: mcfarljm
            #1647 #1656 Fix crash handling empty doxygen comments.

2020-01-14: mcfarljm
            #1608 Improve doxygen support.
            - Add support for \param[] commands such as: \param[in].
            - Optional arguments are marked as 'optional' in pydoc.
            - Improve support for \code commands so that other languages are supported as code blocks.
              Support added for java, c and py.  For example Python: \code{.py} ... \endcode
            - Fix doxygen handling of \em and \p tags for Python.

2020-01-13: wsfulton
            [Python] #1595 Python -builtin constructors silently ignored keyword arguments.
            Instead of silenty ignoring them, now a "TypeError: f() takes no keyword arguments"
            exception is thrown if keyword arguments are used. Hence constructors and normal methods/
            functions behave in the same way. Note, -keyword should be used with -builtin to obtain
            keyword argument support.

2020-01-05: jschueller shadchin
            [Python] #1670 #1696 Add missing field initializers introduced in python 3.8:
            tp_vectorcall and tp_print.

2020-01-05: friedrichatgc
            [Octave] #1688 Change swig_this() to use size_t instead of long for compatibility
            with Windows 64 bit.

2020-01-05: treitmayr
            [Ruby] #1692 #1689 Add support for Ruby 2.7

2019-12-30: treitmayr
            [Ruby] #1653 #1668 Fix code generated when using -globalmodule option.

2019-12-29: ZackerySpytz
            [OCaml] #1686 Fix compilation errors with OCaml 4.09.0.

2019-12-10: wsfulton
            #1679 Fix parsing of C++11 identifiers with special meaning (final and override) when
            they are used as part of the scope name of an identifier, such as a namespace name.

2019-11-26: wsfulton
            [C#] #1628 'out' or 'ref' used in a cstype typemap was not always stripped out in parts
            of director code generation.

2019-11-01: wsfulton
            [Python] #1595 Fix bug in support for keyword arguments (kwargs feature or -keyword)
            when using -builtin. The fix is in the argument error checking when wrapping zero
            argument constructors only.
