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

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.
