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 3.0.6 (5 Jul 2015)
==========================

2015-07-02: wsfulton
	    Fix syntax error when the template keyword is used in types, eg:

              std::template vector<int> v;

2015-07-02: ngladitz
	    [Lua] Push characters as unformatted 1-character strings to avoid
	    unprintable characters such as (char)127 being converted to
	    "<\127>" with Lua 5.3 and later.  (github PR #452)

2015-06-29: olly
	    [Python] Improve handling of whitespace in %pythoncode.

	    Previously SWIG looked at the indentation of the first line and
	    removed that many characters from each subsequent line, regardless
	    of what those characters were.  This was made worse because SWIG's
	    preprocessor removes any whitespace before a '#'.  Fixes github
	    issue #379, reported by Joe Orton.

2015-06-12: wsfulton
	    [R] Fix #430 - call to SWIG_createNewRef in copyToC was incorrectly named.

2015-06-11: sghirate
	    [C#] Patch #427 adds in new command line option -outfile to combine all the
            generated C# code into a single file.

2015-06-09: wsfulton
	    Fix seg fault processing C++11 type aliasing. Issue #424.

2015-05-28: wsfulton
	    [Python] Add new feature "python:cdefaultargs" to control default argument
            code generation. By default, SWIG attempts to convert C/C++ default argument values
            into Python values and generates code into the Python layer with these values.
            Recent versions of SWIG are able to convert more of these values, however, the
            new behaviour can be circumvented if desired via this new feature, such that
            the default argument values are obtained from the C layer and not the Python layer.
            For example:

              struct CDA {
                int fff(int a = 1, bool b = false);
              };

            The default code generation in the Python layer is:

              class CDA(_object):
                  ...
                  def fff(self, a=1, b=False):
                      return _default_args.CDA_fff(self, a, b)

            Adding the feature:

              %feature("python:cdefaultargs") CDA::fff;

            Results in:

              class CDA(_object):
                  ...
                  def fff(self, *args):
                      return _default_args.CDA_fff(self, *args)

            Some code generation modes, eg -builtin and -fastproxy, are unaffected by this as
            the default values are always obtained from the C layer.

2015-05-27: wsfulton
	    [Python] Deal with an integer as the default value of a typedef to bool
	    parameter in the C++ prototype.  See #327. Regression from 3.0.0 onwards.

2015-05-19: olly
	    [Python] Fix warning when compiling generated code with MSVC.
	    (Fixes https://sourceforge.net/p/swig/patches/351/ reported by
	    Mateusz Szymański).

2015-05-14: wsfulton
            Fix seg fault wrapping shared_ptr of classes with private constructors and destructors. 
            This also fixes the "unref" feature when used on classes with private destructors.

2015-05-10: wsfulton
            [Java] Fix multi-argument typemaps (char *STRING, size_t LENGTH)
            so that they can be applied to a wider range of types. Fixes #385.

2015-05-07: olly
	    [Python] Deal with an integer as the default value of a bool
	    parameter in the C++ prototype.  Fixes github #327, reported by
	    Greg Allen.

2015-05-07: LindleyF
	    [Java] Allow feature("director") and feature("ref") to be used
	    together.  Github PR#403.

2015-05-05: olly
	    Suppress warning 325 "Nested class not currently supported (Foo
	    ignored)" when Foo has already been explicitly ignored with "%ignore".

2015-05-04: wsfulton
            Add support for friend templates, including operator overloading - fixes #196. Considering
            the example below, previously the operator gave a syntax error and friendfunc incorrectly
            warned with:

             "Warning 503: Can't wrap 'friendfunc<(Type)>' unless renamed to a valid identifier."

              template <class Type> class MyClass {
                friend int friendfunc <Type>(double is, MyClass <Type> & x);
                friend int operator<< <Type>(double un, const MyClass <Type> &x);
              };

            The following also previously incorrectly warned with:

              "Warning 302: Identifier 'template_friend' redefined (ignored),"

              template<typename T> T template_friend(T);
              struct MyTemplate {
                template<typename T> friend T template_friend(T);
              };

2015-05-01: wsfulton
            Fix handling of conversion operators where the operator is split over multiple
            lines or has comments within the operator type. Fixes #401.

            Also fix similar problem with normal operators which gave a syntax error if split over
            multiple lines or had a comment within the operator declaration.

2015-04-30: olly
	    Ignore unknown preprocessor directives which are inside an inactive
	    conditional (github issue #394, reported by Dan Wilcox).
	    Regression introduced in 3.0.3.

2015-04-27: vadz
            [Python] Fix "default" typemap used after an argument with "numinputs=0" (#377).

2015-04-24: wsfulton
            [Python] Fix #256. Code generated with '-builtin -modernargs' segfaults for any
            method taking zero arguments.

            Also fixes: "SystemError: error return without exception set" during error checking
            when using just -builtin and the incorrect number of arguments is passed to a class
            method expecting zero arguments.

2015-04-23: wsfulton
            [Java] Bug #386 - Memory leak fix in (char *STRING, size_t LENGTH) typemaps.

2015-04-23: vadz
            [Python] Make "default" typemap work again (#330, #377).

2015-04-23: vadz
            [Python] Fix the use of default values for the pointer types (#365, #376).

2015-04-23: wsfulton
            Fix 'make check-ccache' which is part of 'make check' when one of the CCACHE_
            environment variables, for example CCACHE_DISABLE, is set.

2015-04-14: wsfulton
            Clearer warning message for badly constructed typecheck typemaps. For example, was:

              example.i:3: Warning 467: Overloaded foo(int) not supported (no type checking
              rule for 'int').

            Now:

              example.i:3: Warning 467: Overloaded foo(int) not supported (incomplete type checking
              rule - no precedence level in typecheck typemap for 'int').

2015-04-11: wsfulton
            [Java] Fix #353 - Linker multiple definition of 'ExceptionMatches' when
            using directors and multiple modules.

2015-04-11: wsfulton
            Merge #320 - Make __dict__ accessible for Python builtin classes.

2015-04-07: wsfulton
            Fix #375 - parsing of extern "C" and typedef for example:
              extern "C" typedef void (*Hook2_t)(int, const char *);
              extern "C" typedef int Integer;

2015-03-12: olly
	    -DSWIG_DIRECTOR_STATIC is now supported for all languages with
	    director support, not only Python and PHP.

2015-03-02: ianlancetaylor
	    [Go] Add -cgo option, required for Go versions 1.5 and
	    later.

2015-02-26: olly
	    Fix segmentation fault when top==NULL, introduced by nested class
	    handling (reported in issue#346 by Paweł Tomulik).

2015-02-09: wsfulton
            [Guile] Fix generated code for static const char member variables when
            defined and declared inline.

2015-02-09: mishas
            [Go] Fix %import of files in sub directories.

2015-02-05: ianlancetaylor
            [Go] Ignore Go specific type maps (goin, goout, etc.) if they are empty.

2015-02-05: ianlancetaylor
            [Go] Generated Go code no longer calls _swig_goallocate or
            _swig_makegostring, as they will no longer work as of Go 1.5.
