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.

Version 2.0.10 (27 May 2013)
============================

2013-05-25: wsfulton
            [Python] Fix Python 3 inconsistency when negative numbers are passed
            where a parameter expects an unsigned C type. An OverFlow error is
            now consistently thrown instead of a TypeError.

2013-05-25: Artem Serebriyskiy
            SVN Patch ticket #338 - fixes to %attribute macros for template usage
            with %arg.

2013-05-19: wsfulton
            Fix ccache-swig internal error bug due to premature file cleanup.

            Fixes SF bug 1319 which shows up as a failure in the ccache tests on
            Debian 64 bit Wheezy, possibly because ENABLE_ZLIB is defined.

            This is a corner case which will be hit when the maximum number of files
            in the cache is set to be quite low (-F option), resulting in a cache miss.

2013-05-09: kwwette
            [Octave] Fix bugs in Octave module loading:
            - fix a memory leak in setting of global variables
            - install functions only once, to speed up module loads

2013-04-28: gjanssens
            [Guile] Updates in guile module:
            - Add support for guile 2.0
            - Drop support for guile 1.6
            - Drop support for generating wrappers using guile's gh interface.
              All generated wrappers will use the scm interface from now on.
            - Deprecate -gh and -scm options. They are no longer needed.
              A warning will be issued when these options are still used.
            - Fix all tests and examples to have a successful travis test

2013-04-18: wsfulton
            Apply Patch #36 from Jesus Lopez to add support for $descriptor() special variable macro expansion 
            in fragments. For example:

              %fragment("nameDescriptor", "header")
              %{
                static const char *nameDescriptor = "$descriptor(Name)";
              %}

            which will generate into the wrapper if the fragment is used:

              static const char *nameDescriptor = "SWIGTYPE_Name";

2013-04-18: wsfulton
            Fix SF Bug #428 - Syntax error when preprocessor macros are defined inside of enum lists, such as:

              typedef enum {
                eZero = 0
              #define ONE 1
              } EFoo;

            The macros are silently ignored.

2013-04-17: wsfulton
            [C#] Pull patch #34 from BrantKyser to fix smart pointers in conjuction with directors.

2013-04-15: kwwette
            [Octave] Fix bugs in output of cleanup code.
            - Cleanup code is now written also after the "fail:" label, so it will be called if
              a SWIG_exception is raised by the wrapping function, consistent with other modules.
            - Octave module now also recognises the "$cleanup" special variable, if needed.

2013-04-08: kwwette
            Add -MP option to SWIG for generating phony targets for all dependencies.
            - Prevents make from complaining if header files have been deleted before
              the dependency file has been updated.
            - Modelled on similar option in GCC.

2013-04-09: olly
	    [PHP] Add missing directorin typemap for char* and char[] which
	    fixes director_string testcase failure.

2013-04-05: wsfulton
            [Ruby] SF Bug #1292 - Runtime fixes for Proc changes in ruby-1.9 when using STL
            wrappers that override the default predicate, such as:

              %template(Map) std::map<swig::LANGUAGE_OBJ, swig::LANGUAGE_OBJ, swig::BinaryPredicate<> >;

2013-04-05: wsfulton
            [Ruby] SF Bug #1159 - Correctly check rb_respond_to call return values to fix some
            further 1.9 problems with functors and use of Complex wrappers.

2013-04-02: wsfulton
            [Ruby] Runtime fixes for std::complex wrappers for ruby-1.9 - new native Ruby complex numbers are used.

2013-03-30: wsfulton
            [Ruby] Fix seg fault when using STL containers of generic Ruby types, GC_VALUE or LANGUAGE_OBJECT,
            on exit of the Ruby interpreter. More frequently observed in ruby-1.9.

2013-03-29: wsfulton
            [Ruby] Fix delete_if (reject!) for the STL container wrappers which previously would
            sometimes seg fault or not work.

2013-03-25: wsfulton
            [Python] Fix some undefined behaviour deleting slices in the STL containers.

2013-03-19: wsfulton
            [C#, Java, D] Fix seg fault in SWIG using directors when class and virtual method names are
            the same except being in different namespaces when the %nspace feature is not being used.

2013-02-19: kwwette
            Fix bug in SWIG's handling of qualified (e.g. const) variables of array type. Given the typedef
              a(7).q(volatile).double myarray     // typedef volatile double[7] myarray;
            the type
              q(const).myarray                    // const myarray
            becomes
              a(7).q(const volatile).double       // const volatile double[7]
            Previously, SwigType_typedef_resolve() produces the type
              q(const).a(7).q(volatile).double    // non-sensical type
            which would never match %typemap declarations, whose types were parsed correctly.
            Add typemap_array_qualifiers.i to the test suite which checks for the correct behaviour.

2013-02-18: wsfulton
            Deprecate typedef names used as constructor and destructor names in %extend. The real
            class/struct name should be used.

              typedef struct tagEStruct {
                int ivar;
              } EStruct;

              %extend tagEStruct {
                EStruct() // illegal name, should be tagEStruct()
                {
                  EStruct *s = new EStruct();
                  s->ivar = ivar0;
                  return s;
                }
                ~EStruct() // illegal name, should be ~tagEStruct()
                {
                  delete $self;
                }
              }

            For now these trigger a warning:

              extend_constructor_destructor.i:107: Warning 522: Use of an illegal constructor name 'EStruct' in
              %extend is deprecated, the constructor name should be 'tagEStruct'.
              extend_constructor_destructor.i:111: Warning 523: Use of an illegal destructor name 'EStruct' in
              %extend is deprecated, the destructor name should be 'tagEStruct'.

            These %extend destructor and constructor names were valid up to swig-2.0.4, however swig-2.0.5 ignored
            them altogether for C code as reported in SF bug #1306. The old behaviour of using them has been
            restored for now, but is officially deprecated. This does not apply to anonymously defined typedef
            classes/structs such as:

              typedef struct {...} X;

2013-02-17: kwwette
            When generating functions provided by %extend, use "(void)" for no-argument functions
            instead of "()". This prevents warnings when compiling with "gcc -Wstrict-prototypes".

2013-02-17: kwwette
            [Octave] Minor fix to autodoc generation: get the right type for functions returning structs.

2013-02-15: wsfulton
            Deprecate typedef names used in %extend that are not the real class/struct name. For example:

              typedef struct StructBName {
                int myint;
              } StructB;

              %extend StructB {
                void method() {}
              }

            will now trigger a warning:

              swig_extend.i:19: Warning 326: Deprecated %extend name used - the struct name StructBName
              should be used instead of the typedef name StructB.

            This is only partially working anyway (the %extend only worked if placed after the class
            definition). 

2013-02-09: wsfulton
            [CFFI] Apply patch #22 - Fix missing package before &body

2013-01-29: wsfulton
            [Java] Ensure 'javapackage' typemap is used as it stopped working from version 2.0.5.

2013-01-28: wsfulton
            [Python] Apply patch SF #334 - Fix default value conversions "TRUE"->True, "FALSE"->False.

2013-01-28: wsfulton
            [Java] Apply patch SF #335 - Truly ignore constructors in directors with %ignore.

2013-01-18: Brant Kyser
            [Java] Patch #15 - Allow the use of the nspace feature without the -package commandline option.
            This works as long and the new jniclasspackage pragma is used to place the JNI intermediate class
            into a package and the nspace feature is used to place all exposed types into a package.

2013-01-15: wsfulton
            Fix Visual Studio examples to work when SWIG is unzipped into a directory containing spaces.

2013-01-15: wsfulton
            [C#] Fix cstype typemap lookup for member variables so that a fully qualified variable name
            matches. For example:
              %typemap(cstype) bool MVar::mvar "MyBool"
              struct MVar {
                bool mvar;
              };

2013-01-11: Brant Kyser
	    [Java, C#, D] SF Bug #1299 - Fix generated names for when %nspace is used on
            classes with the same name in two different namespaces.

2013-01-11: Vladimir Kalinin
	    [C#] Add support for csdirectorin 'pre', 'post' and 'terminator' attributes.

2013-01-08: olly
	    [PHP] Fix to work with a ZTS build of PHP (broken in 2.0.7).

2013-01-07: olly
	    Fix bashism in configure, introduced in 2.0.9.

2013-01-06: wsfulton
            Pull patch #4 from ptomulik to fix SF Bug #1296 - Fix incorrect warning for virtual destructors
            in templates, such as:
             Warning 521: Illegal destructor name B< A >::~B(). Ignored.

2013-01-05: wsfulton
            [Python] Pull patch #3 from ptomulik to fix SF Bug #1295 - standard exceptions as
            classes using the SWIG_STD_EXCEPTIONS_AS_CLASSES macro.

2013-01-04: wsfulton
            [Java] Pull patch #2 from BrantKyser to fix SF Bug #1283 - fix smart pointers in conjuction
            with directors.

2013-01-03: wsfulton
            [Java] Pull patch #1 from BrantKyser to fix SF Bug #1278 - fix directors and nspace feature when
            multilevel namespaces are used.

