/tags/rel-2.0.4/CHANGES
#! | 1563 lines | 1191 code | 372 blank | 0 comment | 0 complexity | b20828b34f3bc5254d04ba1fc8e771c4 MD5 | raw file
Possible License(s): LGPL-2.1, Cube, GPL-3.0, 0BSD, GPL-2.0
Large files files are truncated, but you can click here to view the full file
- SWIG (Simplified Wrapper and Interface Generator)
- See the CHANGES.current file for changes in the current version.
- See the RELEASENOTES file for a summary of changes in each release.
- Version 2.0.3 (29 March 2011)
- =============================
- 2011-03-29: wsfulton
- [R] Apply patch #3239076 from Marie White fixing strings for R >= 2.7.0
- 2011-03-29: wsfulton
- [Tcl] Apply patch #3248280 from Christian Delbaere which adds better error messages when
- the incorrect number or type of arguments are passed to overloaded methods.
- 2011-03-29: wsfulton
- [Tcl] Apply patch #3224663 from Christian Delbaere.
- 1. Fix when function returns a NULL value, a "NULL" command will be created in the Tcl interpreter
- and calling this command will cause a segmentation fault.
- 2. Previous implementation searches for class methods using a linear search causing performance issues
- in wrappers for classes with many member functions. The patch adds a method hash table to classes and
- changes method name lookup to use the hash table instead of doing a linear search.
- 2011-03-26: wsfulton
- [C#, Java] SF bug #3195112 - fix wrapping of enums that are type char, for example:
- enum { X = 'X'; }
- 2011-03-21: vadz
- Allow setting PCRE_CFLAGS and PCRE_LIBS during configuration to override the values returned by
- pcre-config, e.g. to allow using a static version of PCRE library.
- 2011-03-17: wsfulton
- [UTL] Add missing headers in generated STL wrappers to fix compilation with gcc-4.6.
- 2011-03-17: wsfulton
- Fix regression introduced in swig-2.0.2 where filenames with spaces were not found
- when used with %include and %import. Reported by Shane Liesegang.
- 2011-03-15: wsfulton
- [UTL] Fix overloading when using const char[], problem reported by David Maxwell.
- Similarly for char[ANY] and const char[ANY].
- 2011-03-15: wsfulton
- [C#] Apply patch #3212624 fixing std::map Keys property.
- 2011-03-14: olly
- [PHP] Fix handling of overloaded methods/functions where some
- return void and others don't - whether this worked or not depended
- on the order they were encountered in (SF#3208299).
-
- 2011-03-13: klickverbot
- [D] Extended support for C++ namespaces (nspace feature).
- 2011-03-12: olly
- [PHP] Fix sharing of type information between multiple SWIG-wrapped
- modules (SF#3202463).
- 2011-03-09: wsfulton
- [Python] Fix SF #3194294 - corner case bug when 'NULL' is used as the default value
- for a primitive type parameter in a method declaration.
- 2011-03-07: olly
- [PHP] Don't use zend_error_noreturn() for cases where the function
- returns void - now this issue can only matter if you have a function
- or method which is directed and returns non-void.
- 2011-03-06: olly
- [PHP] Add casts to the typemaps for long long and unsigned long
- long to avoid issues when they are used with shorter types via
- %apply.
- 2011-03-02: wsfulton
- Templated smart pointers overloaded with both const and non const operator-> generated uncompilable
- code when the pointee was a class with either public member variables or static methods.
- Regression in 2.0.x reported as working in 1.3.40 by xantares on swig-user mailing list.
- Version 2.0.2 (20 February 2011)
- ================================
- 2011-02-19: wsfulton
- [PHP] Add missing INPUT, OUTPUT and INOUT typemaps in the typemaps.i library
- for primitive reference types as well as signed char * and bool *.
- 2011-02-19: olly
- [PHP] Address bug in PHP on some platforms/architectures which
- results in zend_error_noreturn() not being available using
- SWIG_ZEND_ERROR_NORETURN which defaults to zend_error_noreturn but
- can be overridden when building the module by passing
- -DSWIG_ZEND_ERROR_NORETURN=zend_error to the compiler. This may
- result in compiler warnings, but should at least allow a module
- to be built on those platforms/architectures (SF#3166423).
- 2011-02-18: wsfulton
- Fix #3184549 - vararg functions and function overloading when using the -fastdispatch option.
- 2011-02-18: olly
- [PHP] An overloaded method which can return an object or a
- primitive type no longer causes SWIG to segfault. Reported by Paul
- Colby in SF#3168531.
- 2011-02-18: olly
- [PHP] Fix invalid erase during iteration of std::map in generated
- director code. Reported by Cory Bennett in SF#3175820.
- 2011-02-17: wsfulton
- Preprocessing now warns if extra tokens appear after #else and #end.
- 2011-02-16: wsfulton
- Fix #1653092 Preprocessor does not error out when #elif is missing an expression.
- This and other cases of missing preprocessor expressions now result in an error.
- 2011-02-14: wsfulton
- [Ocaml] Apply patch #3151788 from Joel Reymont. Brings Ocaml support up to date
- (ver 3.11 and 3.12), including std::string.
- 2011-02-13: wsfulton
- [Ruby] Apply patch #3176274 from James Masters - typecheck typemap for time_t.
- 2011-02-13: wsfulton
- Apply patch #3171793 from szager - protected director methods failing when -fvirtual is used.
- 2011-02-13: wsfulton
- Fix #1927852 - #include directives don't preprocess the file passed to it. The fix is for
- #include with -importall or -includeall, %include and %import, for example:
- #define FILENAME "abc.h"
- %include FILENAME
- 2011-02-12: wsfulton
- Fix #1940536, overactive preprocessor which was expanding defined(...) outside of #if and #elif
- preprocessor directives.
- 2011-02-05: wsfulton
- [MzScheme] SF #2942899 Add user supplied documentation to help getting started with MzScheme.
- Update chapter name to MzScheme/Racket accounting for the rename of MzScheme to Racket.
- 2011-02-05: wsfulton
- [C#] SF #3085906 - Possible fix running test-suite on Mac OSX.
- 2011-02-05: wsfulton
- SF #3173367 Better information during configure about Boost prerequisite for running
- the test-suite.
- 2011-02-05: wsfulton
- SF #3127633 Fix infinite loop in recursive typedef resolution.
- 2011-02-04: wsfulton
- [R] SF #3168676 Fix %rename not working for member variables and methods.
- 2011-02-04: wsfulton
- [clisp] SF #3148200 Fix segfault parsing nested unions.
- 2011-02-01: wsfulton
- [C#] Directors - a call to a method being defined in the base class, not
- overridden in a subclass, but again overridden in a class derived from
- the first subclass was not being dispatched correctly to the most derived class.
- See director_alternating.i for an example.
- 2011-02-01: wsfulton
- [C#, Java] Any 'using' statements in the protected section of a class were previously
- ignored with director protected (dirprot) mode.
- 2011-01-30: wsfulton
- Fix overloading with const pointer reference (SWIGTYPE *const&) parameters for a
- number of scripting languages.
- 2011-01-17: wsfulton
- New warning for smart pointers if only some of the classes in the inheritance
- chain are marked as smart pointer, eg, %shared_ptr should be used for all classes
- in an inheritance hierarchy, so this new warning highlights code where this is
- not the case.
- example.i:12: Warning 520: Base class 'A' of 'B' is not similarly marked as a smart pointer.
- example.i:16: Warning 520: Derived class 'C' of 'B' is not similarly marked as a smart pointer.
- 2011-01-14: wsfulton
- Added some missing multi-argument typemaps: (char *STRING, size_t LENGTH) and
- (char *STRING, int LENGTH). Documentation for this updated. Java patch from
- Volker Grabsch.
- 2011-01-11: iant
- Require Go version 7077 or later.
- 2010-12-30: klickverbot
- [C#, D, Java] Check for collision of parameter names with target
- language keywords when generating the director glue code.
-
- The situation in which the generated could would previously be
- invalid is illustrated in the new 'director_keywords' test case.
- 2010-12-23: wsfulton
- [C#] Fix $csinput special variable not being expanded for csvarin typemaps
- when used for global variables. Reported by Vadim Zeitlin.
- 2010-12-14: wsfulton
- Fix $basemangle expansion in array typemaps. For example if type is int *[3],
- $basemangle expands to _p_int.
- 2010-12-07: iant
- Check that we are using a sufficiently new version of the
- 6g or 8g Go compiler during configure time. If not, disable Go.
- Minimum version is now 6707.
- *** POTENTIAL INCOMPATIBILITY ***
- 2010-12-06: wsfulton
- Fix #3127394 - use of network paths on Windows/MSys.
- 2010-11-18: klickverbot
- [D] Added the D language module.
- 2010-11-12: vadz
- Fix handling of multiple regex-using %renames attached to the same
- declaration. For example, now
- %rename("%(regex/^Set(.*)/put\\1/)s") "";
- %rename("%(regex/^Get(.*)/get\\1/)s") "";
- works as expected whereas before only the last anonymous rename was
- taken into account.
- 2010-10-17: drjoe
- [R] Fix failure in overloaded functions which was breaking
- QuantLib-SWIG
- 2010-10-14: olly
- [PHP] Allow compilation on non-conforming Microsoft C++ compilers
- which don't accept: return function_returning_void();
- Reported by Frank Vanden Berghen on the SWIG mailing list.
- 2010-10-12: wsfulton
- Fix unary scope operator (::) (global scope) regression introduced in 2.0.0, reported by
- Ben Walker. The mangled symbol names were incorrect, sometimes resulting in types being
- incorrectly treated as opaque types.
- Also fixes #2958781 and some other type problems due to better typedef resolution, eg
- std::vector<T *>::value_type didn't resolve to T * when it should have. The mangled type
- was incorrectly SWIGTYPE_std__vectorT_Test_p_std__allocatorT_Test_p_t_t__value_type and now
- it is correctly SWIGTYPE_p_Test.
- Version 2.0.1 (4 October 2010)
- ==============================
- 2010-10-03: wsfulton
- Apply patch #3066958 from Mikael Johansson to fix default smart pointer
- handling when the smart pointer contains both a const and non-const operator->.
- 2010-10-01: wsfulton
- Add -pcreversion option to display PCRE version information.
- 2010-10-01: olly
- [Ruby] Avoid segfault when a method node has no parentNode
- (SF#3034054).
- 2010-10-01: olly
- [Python] Allow reinitialisation to work with an embedded Python
- interpreter (patch from Jim Carroll in SF#3075178).
- 2010-09-28: wsfulton
- [C#] Apply patch from Tomas Dirvanauskas for std::map wrappers to avoid
- throwing exceptions with normal usage of iterators.
- 2010-09-27: olly
- [Python] Improve error message given when a parameter of the wrong
- type is passed to an overloaded method (SF#3027355).
- 2010-09-25: wsfulton
- Apply SF patch #3075150 - Java directors using static variables in
- named namespace.
- 2010-09-24: wsfulton
- More file and line error/warning reporting fixes where SWIG macros
- are used within {} braces (where the preprocessor expands macros),
- for example macros within %inline {...} and %fragment(...) {...}
- and nested structs.
- 2010-09-18: wsfulton
- More file and line error/warning reporting fixes for various inherited
- class problems.
- 2010-09-15: wsfulton
- A much improved debugging of SWIG source experience is now available and
- documented in the "Debugging SWIG" section in the Doc/Devel/internals.html
- file, including a swig.dbg support file for the gdb debugger.
- 2010-09-11: wsfulton
- Fix incorrect line number reporting in errors/warnings when a macro
- definition ends with '/' and it is not the end of a C comment.
- 2010-09-11: wsfulton
- Fix incorrect line number reporting in errors/warnings after parsing
- macro invocations with parameters given over more than one line.
- 2010-09-10: wsfulton
- Remove extraneous extra line in preprocessed output after including files
- which would sometimes lead to error/warning messages two lines after the
- end of the file.
- 2010-09-10: wsfulton
- Fix #2149523 - Incorrect line number reporting in errors after parsing macros
- containing C++ comments.
- 2010-09-08: olly
- [PHP] Fix handling of OUTPUT typemaps (Patch from Ryan in SF#3058394).
- 2010-09-03: wsfulton
- Fix erroneous line numbers in error messages for macro expansions, for example,
- the error message now points to instantiation of the macro, ie the last line here:
- #define MACRO2(a, b)
- #define MACRO1(NAME) MACRO2(NAME,2,3)
- MACRO1(abc)
- 2010-09-02: wsfulton
- Fix line numbers in error and warning messages for preprocessor messages within
- %inline, for example:
- %inline %{
- #define FOOBAR 1
- #define FOOBAR "hi"
- %}
- 2010-09-02: wsfulton
- Fix line numbers in error and warning messages which were cumulatively one
- less than they should have been after parsing each %include/%import - bug
- introduced in swig-1.3.32. Also fix line numbers in error and warning messages
- when new line characters appear between the %include / %import statement and
- the filename.
- 2010-08-30: wsfulton
- Fix line number and file name reporting for some macro preprocessor warnings.
- The line number of the macro argument has been corrected and the line number
- of the start of the macro instead of one past the end of the macro is used.
- Some examples:
- file.h:11: Error: Illegal macro argument name '..'
- file.h:19: Error: Macro 'DUPLICATE' redefined,
- file.h:15: Error: previous definition of 'DUPLICATE'.
- file.h:25: Error: Variable-length macro argument must be last parameter
- file.h:32: Error: Illegal character in macro argument name
- file.i:37: Error: Macro 'SIT' expects 2 arguments
- 2010-08-26: wsfulton
- Fix __LINE__ and __FILE__ expansion reported by Camille Gillot. Mostly this
- did not work at all. Also fixes SF #2822822.
- 2010-08-17: wsfulton
- [Perl] Fix corner case marshalling of doubles - errno was not being correctly
- set before calling strtod - patch from Justin Vallon - SF Bug #3038936.
- 2010-08-17: wsfulton
- Fix make distclean when some of the more obscure languages are detected by
- configure - fixes from Torsten Landschoff.
- 2010-07-28: wsfulton
- Restore configuring out of source for the test-suite since it broke in 1.3.37.
- As previously, if running 'make check-test-suite' out of source, it needs to be
- done by invoking configure with a relative path. Invoking configure with an
- absolute path will not work. Running the full 'make check' still needs to be
- done in the source tree.
- 2010-07-16: wsfulton
- Fix wrapping of function pointers and member function pointers when the function
- returns by reference.
- 2010-07-13: vadz
- Removed support for the old experimental "rxspencer" encoder and
- "[not]rxsmatch" in %rename (see the 01/16/2006 entry). The new and
- officially supported "regex" encoder and "[not]regexmatch" checks
- should be used instead (see the two previous entries). Please
- replace "%(rxspencer:[pat][subst])s" with "%(regex:/pat/subst/)s"
- when upgrading. Notice that you will also need to replace the back-
- references of form "@1" with the more standard "\\1" and may need to
- adjust your regular expressions syntax as the new regex encoder uses
- Perl-compatible syntax and not (extended) POSIX syntax as the old one.
- *** POTENTIAL INCOMPATIBILITY ***
- 2010-07-13: vadz
- Add "regexmatch", "regextarget" and "notregexmatch" which can be
- used to apply %rename directives to the declarations matching the
- specified regular expression only. The first two can be used
- interchangeably, both of the %renames below do the same thing:
- %rename("$ignore", regexmatch$name="Old$") "";
- %rename("$ignore", regextarget=1) "Old$";
- (namely ignore the declarations having "Old" suffix).
- "notregexmatch" restricts the match to only the declarations which
- do not match the regular expression, e.g. here is how to rename to
- lower case versions all declarations except those consisting from
- capital letters only:
- %rename("$(lowercase)s", notregexmatch$name="^[A-Z]+$") "";
- 2010-07-13: vadz
- Add the new "regex" encoder that can be used in %rename, e.g.
- %rename("regex:/(\\w+)_(.*)/\\2/") "";
- to remove any alphabetical prefix from all identifiers. The syntax
- of the regular expressions is Perl-like and PCRE library
- (http://www.pcre.org/) is used to implement this feature but notice
- that backslashes need to be escaped as usual inside C strings.
- Original patch from Torsten Landschoff.
- 2010-07-08: wsfulton
- Fix #3024875 - shared_ptr of classes with non-public destructors. This also fixes
- the "unref" feature when used on classes with non-public destructors.
- 2010-06-17: ianlancetaylor
- [Go] Add the Go language module.
- 2010-06-10: wsfulton
- [Lua] Fix SWIG_lua_isnilstring multiply defined when using multiple
- modules and wrapping strings. Patch from 'Number Cruncher'.
- 2010-06-10: olly
- [PHP] Fix directors to correctly call a method with has a
- different name in PHP to C++ (we were always using the C++ name
- in this case).
- 2010-06-03: wsfulton
- Fix uncompileable code when %rename results in two enum items
- with the same name. Reported by Vadim Zeitlin.
- Version 2.0.0 (2 June 2010)
- ===========================
- 2010-06-02: wsfulton
- [C#] Fix SWIG_STD_VECTOR_ENHANCED macro used in std::vector to work with
- types containing commas, for example:
- SWIG_STD_VECTOR_ENHANCED(std::pair< double, std::string >)
- 2010-06-01: wsfulton
- Add in std_shared_ptr.i for wrapping std::shared_ptr. Requires the %shared_ptr
- macro like in the boost_shared_ptr.i library. std::tr1::shared_ptr can also be
- wrapped if the following macro is defined:
- #define SWIG_SHARED_PTR_SUBNAMESPACE tr1
- %include <std_shared_ptr.i>
- shared_ptr is also documented in Library.html now.
- 2010-05-27: wsfulton
- Add the ability for $typemap special variable macros to call other $typemap
- special variable macros, for example:
- %typemap(cstype) CC "CC"
- %typemap(cstype) BB "$typemap(cstype, CC)"
- %typemap(cstype) AA "$typemap(cstype, BB)"
- void hah(AA aa);
- This also fixes C# std::vector containers of shared_ptr and %shared_ptr.
- Also added diagnostics for $typemap with -debug-tmsearch, for example, the
- above displays additional diagnostic lines starting "Containing: ":
- example.i:34: Searching for a suitable 'cstype' typemap for: AA aa
- Looking for: AA aa
- Looking for: AA
- Using: %typemap(cstype) AA
- Containing: $typemap(cstype, BB)
- example.i:31: Searching for a suitable 'cstype' typemap for: BB
- Looking for: BB
- Using: %typemap(cstype) BB
- Containing: $typemap(cstype, CC)
- example.i:29: Searching for a suitable 'cstype' typemap for: CC
- Looking for: CC
- Using: %typemap(cstype) CC
- 2010-05-26: olly
- Fix %attribute2ref not to produce a syntax error if the last
- argument (AccessorMethod) is omitted. Patch from David Piepgras
- in SF#2235756.
- 2010-05-26: olly
- [PHP] When using %throws or %catches, SWIG-generated PHP5 wrappers
- now throw PHP Exception objects instead of giving a PHP error of
- type E_ERROR.
- This change shouldn't cause incompatibility issues, since you can't
- set an error handler for E_ERROR, so previously PHP would just exit
- which also happens for unhandled exceptions. The benefit is you can
- now catch them if you want to.
- Fixes SF#2545578 and SF#2955522.
- 2010-05-25: olly
- [PHP] Add missing directorin typemap for const std::string &.
- Fixes SF#3006404 reported by t-Legiaw.
- 2010-05-23: wsfulton
- [C#] Fix #2957375 - SWIGStringHelper and SWIGExceptionHelper not always being
- initialized before use in .NET 4 as the classes were not marked beforefieldinit.
- A static constructor has been added to the intermediary class like this:
- %pragma(csharp) imclasscode=%{
- static $imclassname() {
- }
- %}
- If you had added your own custom static constructor to the intermediary class in
- the same way as above, you will have to modify your approach to use static variable
- initialization or define SWIG_CSHARP_NO_IMCLASS_STATIC_CONSTRUCTOR - See csharphead.swg.
- *** POTENTIAL INCOMPATIBILITY ***
- 2010-05-23: wsfulton
- Fix #2408232. Improve shared_ptr and intrusive_ptr wrappers for classes in an
- inheritance hierarchy. No special treatment is needed for derived classes.
- The proxy class also no longer needs to be specified, it is automatically
- deduced. The following macros are deprecated:
- SWIG_SHARED_PTR(PROXYCLASS, TYPE)
- SWIG_SHARED_PTR_DERIVED(PROXYCLASS, BASECLASSTYPE, TYPE)
- and have been replaced by
- %shared_ptr(TYPE)
- Similarly for intrusive_ptr wrappers, the following macro is deprecated:
- SWIG_INTRUSIVE_PTR(PROXYCLASS, TYPE)
- SWIG_INTRUSIVE_PTR_DERIVED(PROXYCLASS, BASECLASSTYPE, TYPE)
- and have been replaced by
- %intrusive_ptr(TYPE)
- 2010-05-21: olly
- [PHP] Stop generating a bogus line of code in certain constructors.
- This was mostly harmless, but caused a PHP notice to be issued, if
- enabled (SF#2985684).
- 2010-05-18: wsfulton
- [Java] Fix member pointers on 64 bit platforms.
- 2010-05-14: wsfulton
- Fix wrapping of C++ enum boolean values reported by Torsten Landschoff:
- typedef enum { PLAY = true, STOP = false } play_state;
- 2010-05-14: olly
- [PHP] Fix wrapping of global variables which was producing
- uncompilable code in some cases.
- 2010-05-12: drjoe
- [R] Add two more changes from Wil Nolan. Get garbage
- collection to work. Implement newfree
- 2010-05-09: drjoe
- Fix bug reported by Wil Nolan change creation of string so
- that R 2.7.0+ can use char hashes
- 2010-05-07: wsfulton
- Apply patch #2955146 from Sergey Satskiy to fix expressions containing divide by
- operator in constructor initialization lists.
- 2010-05-05: wsfulton
- [R] Memory leak fix handling const std::string & inputs, reported by Will Nolan.
- 2010-05-01: wsfulton
- Typemap matching enhancement for non-default typemaps. Previously all
- qualifiers were stripped in one step, now they are stripped one at a time
- starting with the left most qualifier. For example, int const*const
- is first stripped to int *const then int *.
- *** POTENTIAL INCOMPATIBILITY ***
- 2010-04-25: bhy
- [Python] Fix #2985655 - broken constructor renaming.
- 2010-04-14: wsfulton
- Typemap fragments are now official and documented in Typemaps.html.
- 2010-04-09: wsfulton
- [Ruby] Fix #2048064 and #2408020.
- Apply Ubuntu patch to fix Ruby and std::vector wrappers with -minherit.
- https://bugs.launchpad.net/ubuntu/+source/swig1.3/+bug/522874
- 2010-04-09: wsfulton
- [Mzscheme] Apply Ubuntu patch to fix std::map wrappers:
- https://bugs.launchpad.net/ubuntu/+source/swig1.3/+bug/203876
- 2010-04-09: wsfulton
- [Python] Apply patch #2952374 - fix directors and the -nortti option.
- 2010-04-09: wsfulton
- [Lua] Fix #2887254 and #2946032 - SWIG_Lua_typename using wrong stack index.
- 2010-04-03: wsfulton
- [Python] Fix exceptions being thrown with the -threads option based on patch from Arto Vuori.
- Fixes bug #2818499.
- 2010-04-03: wsfulton
- Fix Makefile targets: distclean and maintainer-clean
- 2010-04-02: wsfulton
- [Lua] Fix char pointers, wchar_t pointers and char arrays so that nil can be passed as a
- valid value. Bug reported by Gedalia Pasternak.
- 2010-04-01: wsfulton
- Numerous subtle typemap matching rule fixes when using the default type. The typemap
- matching rules are to take a type and find the best default typemap (SWIGTYPE, SWIGTYPE* etc),
- then look for the next best match by reducing the chosen default type. The type deduction
- now follows C++ class template partial specialization matching rules.
- Below are the set of changes made showing the default type deduction
- along with the old reduced type and the new version of the reduced type:
- SWIGTYPE const &[ANY]
- new: SWIGTYPE const &[]
- old: SWIGTYPE (&)[ANY]
- SWIGTYPE *const [ANY]
- new: SWIGTYPE const [ANY]
- old: SWIGTYPE *[ANY]
- SWIGTYPE const *const [ANY]
- new: SWIGTYPE *const [ANY]
- old: SWIGTYPE const *[ANY]
- SWIGTYPE const *const &
- new: SWIGTYPE *const &
- old: SWIGTYPE const *&
- SWIGTYPE *const *
- new: SWIGTYPE const *
- old: SWIGTYPE **
- SWIGTYPE *const &
- new: SWIGTYPE const &
- old: SWIGTYPE *&
- Additionally, a const SWIGTYPE lookup is used now for any constant type. Some examples, where
- T is some reduced type, eg int, struct Foo:
- T const
- new: SWIGTYPE const
- old: SWIGTYPE
- T *const
- new: SWIGTYPE *const
- old: SWIGTYPE *
- T const[]
- new: SWIGTYPE const[]
- old: SWIGTYPE[]
- enum T const
- new: enum SWIGTYPE const
- old: enum SWIGTYPE
- T (*const )[]
- new: SWIGTYPE (*const )[]
- old: SWIGTYPE (*)[]
- Reminder: the typemap matching rules can now be seen for any types being wrapped by using
- either the -debug-tmsearch or -debug-tmused options.
- In practice this leads to some subtle matching rule changes and the majority of users
- won't notice any changes, except in the prime area of motivation for this change: Improve
- STL containers of const pointers and passing const pointers by reference. This is fixed
- because many of the STL containers use a type 'T const&' as parameters and when T is
- a const pointer, for example, 'K const*', then the full type is 'K const*const&'. This
- means that the 'SWIGTYPE *const&' typemaps now match when T is either a non-const or
- const pointer. Furthermore, some target languages incorrectly had 'SWIGTYPE *&' typemaps
- when these should have been 'SWIGTYPE *const&'. These have been corrected (Java, C#, Lua, PHP).
- *** POTENTIAL INCOMPATIBILITY ***
- 2010-03-13: wsfulton
- [Java] Some very old deprecated pragma warnings are now errors.
- 2010-03-13: wsfulton
- Improve handling of file names and directories containing double/multiple path separators.
- 2010-03-10: mutandiz (Mikel Bancroft)
- [allegrocl] Use fully qualified symbol name of cl::identity in emit_defun().
- 2010-03-06: wsfulton
- [Java] The intermediary JNI class modifiers are now public by default meaning these
- intermediary low level functions are now accessible by default from outside any package
- used. The proxy class pointer constructor and getCPtr() methods are also now public.
- These are needed in order for the nspace option to work without any other mods.
- The previous default of protected access can be restored using:
- SWIG_JAVABODY_METHODS(protected, protected, SWIGTYPE)
- %pragma(java) jniclassclassmodifiers = "class"
- 2010-03-06: wsfulton
- [C#] Added the nspace feature for C#. Documentation for the nspace feature is now available.
- 2010-03-04: wsfulton
- Added the nspace feature. This adds some improved namespace support. Currently only Java
- is supported for target languages, where C++ namespaces are automatically translated into
- Java packages. The feature only applies to classes,struct,unions and enums declared within
- a namespace. Methods and variables declared in namespaces still effectively have their
- namespaces flattened. Example usage:
- %feature(nspace) Outer::Inner1::Color;
- %feature(nspace) Outer::Inner2::Color;
- namespace Outer {
- namespace Inner1 {
- struct Color {
- ...
- };
- }
- namespace Inner2 {
- struct Color {
- ...
- };
- }
- }
- For Java, the -package option is also required when using the nspace feature. Say
- we use -package com.myco, the two classes can then be accessed as follows from Java:
- com.myco.Outer.Inner1.Color and com.myco.Outer.Inner2.Color.
- 2010-02-27: wsfulton
- [Python] Remove -dirvtable from the optimizations included by -O as it this option
- currently leads to memory leaks as reported by Johan Blake.
- 2010-02-27: wsfulton
- License code changes: SWIG Source is GPL-v3 and library code license is now clearer
- and is provided under a very permissive license. See http://www.swig.org/legal.html.
- 2010-02-13: wsfulton
- [Ruby] A few fixes for compiling under ruby-1.9.x including patch from 'Nibble'.
- 2010-02-13: wsfulton
- [Ruby] Apply patch from Patrick Bennett to fix RARRAY_LEN and RARRAY_PTR usage for Ruby 1.9.x
- used in various STL wrappers.
- 2010-02-13: wsfulton
- [C#, Java] Fix incorrect multiply defined symbol name error when an enum item
- and class name have the same name, as reported by Nathan Krieger. Example:
- class Vector {};
- namespace Text {
- enum Preference { Vector };
- }
- This also fixes other incorrect corner case target language symbol name clashes.
- 2010-02-11: wsfulton
- Add the -debug-lsymbols option for displaying the target language layer symbols.
- 2010-02-09: wsfulton
- Fix -MM and -MMD options on Windows. They were not omitting files in the SWIG library as
- they should be.
- 2010-02-08: wsfulton
- Fix #1807329 - When Makefile dependencies are being generated using the -M family of options
- on Windows, the file paths have been corrected to use single backslashes rather than double
- backslashes as path separators.
- 2010-02-06: wsfulton
- Fix #2918902 - language specific files not being generated in correct directory on
- Windows when using forward slashes for -o, for example:
- swig -python -c++ -o subdirectory/theinterface_wrap.cpp subdirectory/theinterface.i
- 2010-02-05: wsfulton
- Fix #2894405 - assertion when using -xmlout.
- 2010-01-28: wsfulton
- Fix typemap matching bug when a templated type has a typemap both specialized and not
- specialized. For example:
- template<typename T> struct XX { ... };
- %typemap(in) const XX & "..."
- %typemap(in) const XX< int > & "..."
- resulted in the 2nd typemap being applied for all T in XX< T >.
- 2010-01-22: wsfulton
- Fix #2933129 - typemaps not being found when the unary scope operator (::) is used to denote
- global scope, the typemap is now used in situations like this:
- struct X {};
- %typemap(in) const X & "..."
- void m(const ::X &);
- and this:
- struct X {};
- %typemap(in) const ::X & "..."
- void m(const X &);
- 2010-01-20: wsfulton
- Fix some unary scope operator (::) denoting global scope problems in the types generated
- into the C++ layer. Previously the unary scope operator was dropped in the generated code
- if the type had any sort of qualifier, for example when using pointers, references, like
- ::foo*, ::foo&, bar< ::foo* >.
- 2010-01-13: olly
- [PHP] Add datetime to the list of PHP predefined classes (patch
- from David Fletcher in SF#2931042).
- 2010-01-11: wsfulton
- Slight change to warning, error and diagnostic reporting. The warning number is no
- longer shown within brackets. This is to help default parsing of warning messages by
- other tools, vim on Unix in particular.
- Example original display using -Fstandard:
- example.i:20: Warning(401): Nothing known about base class 'B'. Ignored.
- New display:
- example.i:20: Warning 401: Nothing known about base class 'B'. Ignored.
- Also subtle fix to -Fmicrosoft format adding in missing space. Example original display:
- example.i(20): Warning(401): Nothing known about base class 'Base'. Ignored.
- New display:
- example.i(20) : Warning 401: Nothing known about base class 'Base'. Ignored.
- 2010-01-10: wsfulton
- Fix a few inconsistencies in reporting of file/line numberings including modifying
- the overload warnings 509, 512, 516, 474, 475 to now be two line warnings.
- 2010-01-10: wsfulton
- Modify -debug-tags output to use standard file name/line reporting so that editors
- can easily navigate to the appropriate lines.
- Was typically:
- . top . include . include (/usr/share/swig/temp/trunk/Lib/swig.swg:312)
- . top . include . include . include (/usr/share/swig/temp/trunk/Lib/swigwarnings.swg:39)
- now:
- /usr/share/swig/temp/trunk/Lib/swig.swg:312: . top . include . include
- /usr/share/swig/temp/trunk/Lib/swigwarnings.swg:39: . top . include . include . include
- 2010-01-03: wsfulton
- Fix missing file/line numbers for typemap warnings and in output from the
- -debug-tmsearch/-debug-tmused options.
- 2010-01-03: wsfulton
- Add typemaps used debugging option (-debug-tmused). When used each line displays
- the typemap used for each type for which code is being generated including the file
- and line number related to the type. This is effectively a condensed form of the
- -debug-tmsearch option. Documented in Typemaps.html.
- 2009-12-23: wsfulton
- Fix for %javaexception and directors so that all the appropriate throws clauses
- are generated. Problem reported by Peter Greenwood.
- 2009-12-20: wsfulton
- Add -debug-tmsearch option for debugging the typemap pattern matching rules.
- Documented in Typemaps.html.
- 2009-12-12: wsfulton
- [Octave] Remove the -api option and use the new OCTAVE_API_VERSION_NUMBER
- macro provided in the octave headers for determining the api version instead.
- 2009-12-04: olly
- [Ruby] Improve support for Ruby 1.9 under GCC. Addresses part of
- SF#2859614.
- 2009-12-04: olly
- Fix handling of modulo operator (%) in constant expressions
- (SF#2818562).
- 2009-12-04: olly
- [PHP] "empty" is a reserved word in PHP, so rename empty() method
- on STL classes to "is_empty()" (previously this was automatically
- renamed to "c_empty()").
- *** POTENTIAL INCOMPATIBILITY ***
- 2009-12-03: olly
- [PHP] Add typemaps for long long and unsigned long long, and for
- pointer to method.
- 2009-12-02: olly
- [PHP] Fix warning and rename of reserved class name to be case
- insensitive.
- 2009-12-01: wsfulton
- Revert support for %extend and memberin typemaps added in swig-1.3.39. The
- memberin typemaps are ignored again for member variables within a %extend block.
- Documentation inconsistency reported by Torsten Landschoff.
- 2009-11-29: wsfulton
- [Java, C#] Fix generated quoting when using %javaconst(1)/%csconst(1) for
- static const char member variables.
- %javaconst(1) A;
- %csconst(1) A;
- struct X {
- static const char A = 'A';
- };
- 2009-11-26: wsfulton
- [Java, C#] Fix %javaconst(1)/%csconst(1) for static const member variables to
- use the actual constant value if it is specified, rather than the C++ code to
- access the member.
- %javaconst(1) EN;
- %csconst(1) EN;
- struct X {
- static const int EN = 2;
- };
- 2009-11-23: wsfulton
- C++ nested typedef classes can now be handled too, for example:
- struct Outer {
- typedef Foo { } FooTypedef1, FooTypedef2;
- };
- 2009-11-18: wsfulton
- The wrappers for C nested structs are now generated in the same order as declared
- in the parsed code.
- 2009-11-18: wsfulton
- Fix #491476 - multiple declarations of nested structs, for example:
- struct Outer {
- struct {
- int val;
- } inner1, inner2, *inner3, inner4[1];
- } outer;
- 2009-11-17: wsfulton
- Fix parsing of enum declaration and initialization, for example:
- enum ABC {
- a,
- b,
- c
- } A = a, *pC = &C, array[3] = {a, b, c};
- 2009-11-17: wsfulton
- Fix parsing of struct declaration and initialization, for example:
- struct S {
- int x;
- } instance = { 10 };
- 2009-11-15: wsfulton
- Fix #1960977 - Syntax error parsing derived nested class declaration and member
- variable instance.
- 2009-11-14: wsfulton
- Fix #2310483 - function pointer typedef within extern "C" block.
- 2009-11-13: wsfulton
- Fix usage of nested template classes within templated classes so that compileable code
- is generated.
- 2009-11-13: olly
- [php] Fix place where class prefix (as specified with -prefix)
- wasn't being used. Patch from gverbruggen in SF#2892647.
- 2009-11-12: wsfulton
- Fix usage of nested template classes so that compileable code is generated - the nested
- template class is now treated like a normal nested classes, that is, as an opaque type
- unless the nestedworkaround feature is used.
- 2009-11-12: wsfulton
- Replace SWIGWARN_PARSE_NESTED_CLASS with SWIGWARN_PARSE_NAMED_NESTED_CLASS and
- SWIGWARN_PARSE_UNNAMED_NESTED_CLASS for named and unnamed nested classes respectively.
- Named nested class ignored warnings can now be suppressed by name using %warnfilter, eg:
- %warnfilter(SWIGWARN_PARSE_NAMED_NESTED_CLASS) Outer::Inner;
- but clearly unnamed nested classes cannot and the global suppression is still required, eg:
- #pragma SWIG nowarn=SWIGWARN_PARSE_UNNAMED_NESTED_CLASS
- 2009-11-11: wsfulton
- Added the nestedworkaround feature as a way to use the full functionality of a nested class
- (C++ mode only). It removes the nested class from SWIG's type information so it is as if SWIG
- had never parsed the nested class. The documented nested class workarounds using a global
- fake class stopped working when SWIG treated the nested class as an opaque pointer, and
- this feature reverts this behaviour. The documentation has been updated with details of how
- to use and implement it, see the "Nested classes" section in SWIGPlus.html.
- 2009-11-11: wsfulton
- There were a number of C++ cases where nested classes/structs/unions were being handled
- as if C code was being parsed which would oftentimes lead to uncompileable code as an
- attempt was made to wrap the nested structs like it is documented for C code. Now all
- nested structs/classes/unions are ignored in C++ mode, as was always documented. However,
- there is an improvement as usage of nested structs/classes/unions is now always treated
- as an opaque type by default, resulting in generated code that should always compile.
- *** POTENTIAL INCOMPATIBILITY ***
- 2009-11-09: drjoe
- Fix R for -fcompact and add std_map.i
- 2009-11-08: wsfulton
- Fix inconsistency for nested structs/unions/classes. Uncompileable code was being
- generated when inner struct and union declarations were used as types within the
- inner struct. The inner struct/union is now treated as a forward declaration making the
- behaviour the same as an inner class. (C++ code), eg:
- struct Outer {
- struct InnerStruct { int x; };
- InnerStruct* getInnerStruct();
- };
- 2009-11-08: wsfulton
- Ignored nested class/struct warnings now display the name of the ignored class/struct.
- 2009-11-07: wsfulton
- Bug #1514681 - Fix nested template classes within a namespace generated uncompileable
- code and introduced strange side effects to other wrapper code especially code
- after the nested template class. Note that nested template classes are still ignored.
- 2009-11-07: wsfulton
- Add new debug options:
- -debug-symtabs - Display symbol tables information
- -debug-symbols - Display target language symbols in the symbol tables
- -debug-csymbols - Display C symbols in the symbol tables
- 2009-11-03: wsfulton
- Fix some usage of unary scope operator (::) denoting global scope, for example:
- namespace AA { /* ... */ }
- using namespace ::AA;
- and bug #1816802 - SwigValueWrapper should be used:
- struct CC {
- CC(int); // no default constructor
- };
- ::CC x();
- and in template parameter specializations:
- struct S {};
- template <typename T> struct X { void a() {}; };
- template <> struct X<S> { void b() {}; };
- %template(MyTConcrete) X< ::S >;
- plus probably some other corner case usage of ::.
- 2009-11-02: olly
- [Python] Fix potential memory leak in initialisation code for the
- generated module.
- 2009-10-23: wsfulton
- Fix seg fault when using a named nested template instantiation using %template(name)
- within a class. A warning that these are not supported is now issued plus processing
- continues as if no name was given.
- 2009-10-20: wsfulton
- [Python] Fix std::vector<const T*>. This would previously compile, but not run correctly.
- 2009-10-20: wsfulton
- Fixed previously fairly poor template partial specialization and explicit
- specialization support. Numerous bugs in this area have been fixed including:
- - Template argument deduction implemented for template type arguments, eg this now
- works:
- template<typename T> class X {};
- template<typename T> class X<T *> {};
- %template(X1) X<const int *>; // Chooses T * specialization
- and more complex cases with multiple parameters and a mix of template argument
- deduction and explicitly specialised parameters, eg:
- template <typename T1, typename T2> struct TwoParm { void a() {} };
- template <typename T1> struct TwoParm<T1 *, int *> { void e() {} };
- %template(E) TwoParm<int **, int *>;
- Note that the primary template must now be in scope, like in C++, when
- an explicit or partial specialization is instantiated with %template.
- *** POTENTIAL INCOMPATIBILITY ***
- 2009-09-14: wsfulton
- [C#] Add %csattributes for adding C# attributes to enum values, see docs for example.
- 2009-09-11: wsfulton
- Fix memmove regression in cdata.i as reported by Adriaan Renting.
- 2009-09-07: wsfulton
- Fix constant expressions containing <= or >=.
- 2009-09-02: wsfulton
- The following operators in constant expressions now result in type bool for C++
- wrappers and remain as type int for C wrappers, as per each standard:
- && || == != < > <= >= (Actually the last 4 are still broken). For example:
- #define A 10
- #define B 10
- #define A_EQ_B A == B // now wrapped as type bool for C++
- #define A_AND_B A && B // now wrapped as type bool for C++
- 2009-09-02: wsfulton
- Fix #2845746. true and false are now recognised keywords (only when wrapping C++).
- Constants such as the following are now wrapped (as type bool):
- #define FOO true
- #define BAR FOO && false
- Version 1.3.40 (18 August 2009)
- ===============================
- 2009-08-17: olly
- [Perl] Add "#undef do_exec" to our clean up of Perl global
- namespace pollution.
- 2009-08-17: olly
- [PHP] Fix to wrap a resource returned by __get() in a PHP object (SF#2549217).
- 2009-08-17: wsfulton
- Fix #2797485 After doing a 'make clean', install fails if yodl2man or yodl2html
- is not available.
- 2009-08-16: wsfulton
- [Octave] Caught exceptions display the type of the C++ exception instead of the
- generic "c++-side threw an exception" message.
- 2009-08-16: wsfulton
- [Java] When %catches is used, fix so that any classes specified in the "throws"
- attribute of the "throws" typemap are generated into the Java method's throws clause.
- 2009-08-16: wsfulton
- [C#] Fix exception handling when %catches is used, reported by Juan Manuel Alvarez.
- 2009-08-15: wsfulton
- Fix %template seg fault on some cases of overloading the templated method.
- Bug reported by Jan Kupec.
- 2009-08-15: wsfulton
- [Ruby] Add numerous missing wrapped methods for std::vector<bool> specialization
- as reported by Youssef Jones.
- 2009-08-14: wsfulton
- [Perl] Add SWIG_ConvertPtrAndOwn() method into the runtime for smart pointer
- memory ownership control. shared_ptr support still to be added. Patch from
- David Fletcher.
- 2009-08-14: olly
- [PHP] PHP5 now wraps static member variables as documented.
- 2009-08-14: olly
- [PHP] Update the PHP "class" example to work with PHP5 and use
- modern wrapping features.
- 2009-08-13: wsfulton
- [PHP] std::vector wrappers overhaul. They no longer require the
- specialize_std_vector() macro. Added wrappers for capacity() and reserve().
- 2009-08-13: wsfulton
- [PHP] Add const reference typemaps. const reference primitive types are
- now passed by value rather than pointer like the other target languages.
- Fixes SF#2524029.
- 2009-08-08: wsfulton
- [Python] More user friendly AttributeError is raised when there are
- no constructors generated for the proxy class in the event that the
- class is abstract - the error message is now
- "No constructor defined - class is abstract" whereas if there are no
- public constructors for any other reason and the class is not abstract,
- the message remains
- "No constructor defined".
- [tcl] Similarly for tcl when using -itcl.
- 2009-08-04: olly
- [PHP] Fix generated code to work with PHP 5.3.
- 2009-08-04: vmiklos
- [PHP] Various mathematical functions (which would conflict
- with the built-in PHP ones) are now automatically handled by
- adding a 'c_' prefix.
- 2009-08-03: wsfulton
- [C#] The std::vector<T> implementation is improved and now uses $typemap such
- that the proxy class for T no longer has to be specified in some macros
- for correct C# compilation; the following macros are deprecated, where
- CSTYPE was the C# type for the C++ class CTYPE:
- SWIG_STD_VECTOR_SPECIALIZE_MINIMUM(CSTYPE, CTYPE)
- usage should be removed altogether
- SWIG_STD_VECTOR_SPECIALIZE(CSTYPE, CTYPE)
- should be replaced with:
- SWIG_STD_VECTOR_ENHANCED(CTYP…
Large files files are truncated, but you can click here to view the full file