diff --git a/CHANGES b/CHANGES index 5411b3ead..750381bde 100644 --- a/CHANGES +++ b/CHANGES @@ -2,6 +2,900 @@ SWIG (Simplified Wrapper and Interface Generator) See CHANGES.current for current version. +Version 1.3.32 (November 15, 2007) +================================== + +11/14/2007: wsfulton + [R] Package name and dll name is now the same as the SWIG module + name. It used to be the module name with _wrap as a suffix. The package + and dll names can be modified using the -package and -dll commandline + options. + + *** POTENTIAL INCOMPATIBILITY *** + +11/11/2007: wsfulton + [R] Add support for Windows (Visual C++ 8 tested) + +11/10/2007: olly + [php] Fix makefile generated by -make (SF#1633679). Update + documentation to mark "-make" as deprecated (none of the other + SWIG backends seem to offer such a feature, it can't realistically + generate a fully portable makefile, and the commands to build an + extension are easy enough to write for the user's preferred build + tool). Also recommend against the use of "-phpfull" (it's only + really useful when static linking, and a dynamically loadable + module is virtually always the better approach). + +11/09/2007: olly + Fix --help output to note that `export SWIG_FEATURES' is required. + +10/29/2007: wsfulton + [R] Fix seg fault on Windows + [R] Examples R scripts are now platform independent + +10/30/2007: mgossage + [lua] fixed bug in template classes which cases template_default2 + and template_specialization_defarg to fail. + Added several warning filters into the overload's test cases. + Added runtime tests for several codes. + You can now make check-lua-test-suite with no errors and only a few warnings. + +10/30/2007: olly + [guile] Fix the configure test to put GUILELINK in LIBS not LDFLAGS + (SF#1822430). + +10/30/2007: olly + [guile] Fix the guile examples on 64-bit platforms. + +10/29/2007: wsfulton + [C#] Fix member pointers on 64 bit platforms. + +10/28/2007: olly + [lua] Fix swig_lua_class instances to be static to allow multiple + SWIG wrappers to be compiled into the same executable statically. + Patch from Andreas Fredriksson (posted to the swig mailing list). + +10/28/2007: olly + [lua] Fix Examples/lua to pass SRCS for C tests rather than CXXSRCS. + The code as it was happened to work on x86, but broke on x86_64 (and + probably any other platforms which require -fPIC). + +10/28/2007: wsfulton + [Java, C#] New approach for fixing uninitialised variable usage on error in director + methods using the new templated initialisation function SwigValueInit(). + +10/28/2007: wsfulton + [Perl] Use more efficient SvPV_nolen(x) instead of SvPV(x,PL_na) if SvPV_nolen is + supported. + +10/26/2007: wuzzeb + [Chicken] Fix global variables of class member function pointers. + Other minor fixes, so all tests in the chicken test suite now pass + +10/25/2007: olly + Fix UTL typecheck macro for a function taking char[] or const + char[] (SF#1820132). + +10/22/2007: mkoeppe + [Guile] Filter out -ansi -pedantic from CFLAGS while compiling test programs for Guile + in configure. This enables running the test suite for Guile if it is installed and + usable. + +10/22/2007: mkoeppe + [Guile -scm] Fix testcases apply_signed_char and apply_strings + by adding explicit casts to the appropriate $ltype. + +10/22/2007: wsfulton + [Java, C#] Fix uninitialised variable usage on error in director methods. + +10/19/2007: wsfulton + [Java, C#] Bug #1794247 - fix generated code for derived classes when csbase or javabase + typemaps are used with the replace="1" attribute. + +10/19/2007: wsfulton + [Python] Docs updated to suggest using distutils. Patch #1796681 from Christopher Barker. + +10/19/2007: olly + [perl5] Clear errno before calls to strtol(), strtoul(), strtoll() + and strtoull() which we check errno after to avoid seeing a junk + value of errno if there isn't an error in the call. + +10/16/2007: wsfulton + Deprecate %attribute_ref and replace with %attributeref. There is just an argument + order change in order to maintain consistency with %attribute, from: + + %attribute_ref(Class, AttributeType, AccessorMethod, AttributeName) + to + %attributeref(Class, AttributeType, AttributeName, AccessorMethod) + +10/16/2007: olly + [Tcl] Fix several ocurrences of "warning: deprecated conversion + from string constant to 'char*'" from GCC 4.2 in generated C/C++ + code. + +10/16/2007: olly + [PHP] Fix many occurrences of "warning: deprecated conversion from + string constant to 'char*'" from GCC 4.2 in generated C/C++ code + when compiling with a new enough version of PHP 5 (tested with + PHP 5.2.3, but PHP 5.2.1 is probably the minimum requirement). + +10/15/2007: wsfulton + Patch #1797133 from David Piepgrass fixes %attribute when the getter has the same name + as the attribute name and no longer generate non-functional setter for read-only attributes. + +10/15/2007: olly + [Tcl] Prevent SWIG_Tcl_ConvertPtr from calling the unknown proc. + Add Examples/tcl/std_vector/ which this change fixes. Patch + is from "Cliff C" in SF#1809819. + +10/12/2007: wsfulton + [Java] Add DetachCurrentThread back in for directors. See entry dated 08/11/2006 and + search for DetachCurrentThread on the mailing lists for details. The crashes on Solaris + seem to be only present in jdk-1.4.2 and lower (jdk-1.5.0 and jdk-1.6.0 are okay), so + anyone using directors should use a recent jdk on Solaris, or define (see director.swg) + SWIG_JAVA_NO_DETACH_CURRENT_THREAD to the C++ compiler to get old behaviour. + +10/12/2007: wsfulton + [Java] Ensure the premature garbage collection prevention parameter (pgcpp) is generated + when there are C comments in the jtype and jstype typemaps. + +10/12/2007: wuzzeb + Added a testsuite entry for Bug #1735931 + +10/09/2007: olly + Automatically rerun autogen.sh if configure.in is modified. + +10/09/2007: olly + Enhance check-%-test-suite rule and friends to give a more helpful + error message if you try them for a language which doesn't exist + (e.g. "make check-php-test-suite" rather than the correct + "make check-php4-test-suite"). + +10/09/2007: olly + Add make rule to regenerate Makefile from Makefile.in if it has + changed. + +10/09/2007: olly + [php] Fix long-standing memory leak in wrapped constructors and + wrapped functions/methods which return an object. + +10/08/2007: olly + Fix Makefile.in to read check.list files correctly in a VPATH + build. + +10/07/2007: wsfulton + [C#, Java] Experimental shared_ptr typemaps added + +09/27/2007: mgossage + [lua] added more verbose error messages for incorrect typechecks. + Added a routine which checks the exact number of parameters passed to a function + (breaks operator_overloading for unary minus operator, currently disabled). + Reorganised the luatypemaps.swg to tidy it up. + Added a lot of %ignores on the operators not supported by lua. + Added support for constant member function pointers & runtest for member_pointer.i + Added first version of wchar.i + +09/25/2007: wsfulton + [C#, Java] throws typemaps for std::wstring using C# patch #1799064 from David Piepgrass + +09/24/2007: wsfulton + [Tcl] Apply #1771313 to fix bug #1650229 - fixes long long and unsigned long long + handling. + +09/20/2007: olly + [Java] Eliminate some unnecessary uses of a temporary buffer + allocated using new[]. SF#1796609. + +09/19/2007: wsfulton + [C#] The $csinput special variable can be used in the csvarin typemap where it is always + expanded to 'value'. + +09/19/2007: wsfulton + [C#] Fix bug reported by Glenn A Watson and #1795260 where the cstype typemap used the 'ref' + keyword in the typemap body, it produced uncompilable C# properties (variable wrappers). + The type for the property now correctly comes from the 'out' attribute in the cstype typemap. + +09/19/2007: wsfulton + [Java] Fix const std::wstring& typemaps + +09/19/2007: wsfulton + [Java] Ensure the premature garbage collection prevention parameter (pgcpp) is generated + where a parameter is passed by pointer reference, eg in the std::vector wrappers. The pgcpp + is also generated now when user's custom typemaps use a proxy class in the jstype typemap + and a 'long' in the jtype typemap. + +09/18/2007: olly + [php] Add typemaps for handling parameters of type std::string & + which are modified by the wrapped function. + +09/17/2007: olly + [python] Split potentially long string literals to avoid hitting + MSVC's low fixed limit on string literal length - patch from + SF#1723770, also reported as SF#1630855. + +09/17/2007: olly + [ocaml] Fix renaming of overloaded methods in the method_table - + my patch from SF#940399. + +09/17/2007: olly + [python] Simpler code for SWIG_AsVal_bool() which fixes a "strict + aliasing" warning from GCC - patch from SF#1724581 by Andrew + Baumann. + +09/17/2007: olly + [perl5] Use sv_setpvn() to set a scalar from a pointer and length + - patch from SF#174460 by "matsubaray". + +09/17/2007: olly + When wrapping C++ code, generate code which uses + std::string::assign(PTR, LEN) rather than assigning + std::string(PTR, LEN). Using assign generates more efficient code + (tested with GCC 4.1.2). + +09/07/2007: wsfulton + Fix %ignore on constructors which are not explicitly declared [SF #1777712] + +09/05/2007: wuzzeb (John Lenz) + - Change r_ltype in typesys.c to store a hashtable instead of a single value. + several very subtle bugs were being caused by multiple ltypes being mapped + to a single mangled type, mostly when using typedefed template parameters. + Now, r_ltype stores a hashtable of possible ltypes, and when generating the + type table, all the ltypes are added into the swig_type_info structure. + +08/31/2007: wsfulton + SF #1754967 from James Bigler. + - Fix bug in turning on warnings that were turned off by default. Eg 'swig -w+309' will now + turn on the normally suppressed warning 309. + + - New -Wextra commandline option which enables the extra warning numbers: + 202,309,403,512,321,322 (this is the list of warnings that have always been suppressed by + default). By specifying -Wextra, all warnings will be turned on, but unlike -Wall, + warnings can still be selectively turned on/off using %warnfilter, + #pragma SWIG nowarn or further -w commandline options, eg: + swig -Wextra -w309 + will turn on all warnings except 309. + +08/28/2007: wsfulton + - New debugging options, -debug-module and -debug-top to display the parse tree at + various stages, where is a comma separated list of stages 1-4.For example, to + display top of parse tree at stages 1 and 3: + swig -debug-top 1,3 + + - Deprecate the following options which have equivalents below: + -dump_parse_module => -debug-module 1 + -dump_module => -debug-module 4 + -dump_parse_top => -debug-top 1 + -dump_top => -debug-top 4 + + - Renamed some commandline options for naming consistency across all options: + -debug_template => -debug-template + -debug_typemap => -debug-typemap + -dump_classes => -debug-classes + -dump_tags => -debug-tags + -dump_typedef => -debug-typedef + -dump_memory => -debug-memory + +08/25/2007: olly + [PHP5] Fix handling of double or float parameters with an integer + default value. + +08/25/2007: olly + [PHP5] Generate __isset() methods for setters for PHP 5.1 and later. + +08/20/2007: wsfulton + [Java C#] Fix director bug #1776651 reported by Stephane Routelous which occurred when + the director class name is the same as the start of some other symbols used within + the director class. + +08/17/2007: wsfulton + Correct behaviour for templated methods used with %rename or %ignore and the empty + template declaration - %template(). A warning is issued if the method has not been + renamed. + +08/16/2007: mutandiz (Mikel Bancroft) + [allegrocl] Name generated cl file based on input file rather than by + module name. It was possible to end up with a mypackage.cl and a test_wrap.c + when parsing a test.i input file. Confusing. Also, include external-format + templates for :fat and :fat-le automatically to avoid these being compiled + at runtime. + +08/15/2007: efuzzyone + [cffi] Apply patch #1766076 from Leigh Smith adding support for newly introduced + in cffi :long-long and :unsigned-long-long. + +08/10/2007: wsfulton + [Java] Add documentation patch #1743573 from Jeffrey Sorensen. It contains a neat + idea with respect to better memory management by the JVM of C++ allocated memory. + +08/10/2007: wsfulton + [Perl] Apply patch #1771410 from Wade Brainerd to fix typedef XS(SwigPerlWrapper) in + perlrun.swg for ActiveState Perl build 822 and Perl 5.8.9 and 5.10 branches. + +08/10/2007: wsfulton + [Lua] const enum reference typemaps fixed. + +08/09/2007: wsfulton + [C#] Added missing support for C++ class member pointers. + +08/09/2007: wsfulton + [C#, Java] Add support for $owner in the "out" typemaps like in the the scripting + language modules. Note that $owner has always been supported in the "javaout" / "csout" + typemaps. + +08/01/2007: wsfulton + Fix smart pointer handling for classes that have templated methods within the smart + pointer type. Problem reported by craigdo at ee.washington.edu. + +07/31/2007: efuzzyone + [cffi] fixed memory access after being freed bug. thanks to Martin Percossi. + package name clos changed to cl. thanks to Ralf Mattes + +07/24/2007: wsfulton + Parallel make support added for the examples and test-suite for developers who have + more than one CPU. Now parallel make can be used for checking in addition to building + the SWIG executable. Some typical checking examples: + + make -j8 -k check + make -j4 check-java-test-suite + make -j2 check-java-examples + +07/19/2007: mgossage + Fixed bug that stopped configure working on mingw (applied dos2unix to configure.in) + +07/10/2007: mgossage + [lua] Extra compatibility with Lua 5.1 (updated SWIG_init, docs, examples, test suite) + Removed name clash for static link of multiple modules + +07/05/2007: mgossage + [lua] Fix a bug in SWIG_ALLOC_ARRAY() + improved the error messages for incorrect arguments. + Changed the output of swig_type() to use the human readable form of the type, + rather than the raw swig type. + +07/03/2007: wsfulton + [C#] Fix directors for some overloaded methods where the imtype resulted in identical + methods being generated in the C# director class, eg void foo(int *) and void foo(double *) + used to generated two of these: + + private void SwigDirectorfoo(IntPtr p) { ... } + +06/25/2007: wsfulton + [Java, C#] Some parameter name changes in std_vector.i allowing better targeting + of typemaps for method parameters (for memory management of containers of pointers). + +06/07/2007: mutandiz (Mikel Bancroft) + [allegrocl] + fix foreign-type constructor to properly look for ffitype typemap + bindings. fix inout_typemaps.i for strings. + +06/06/2007: olly + [Ruby] + Use whichever of "long" or "long long" is the same size as "void*" + to hold pointers as integers, rather than whichever matches off_t. + Fixes compilation on OS X and GCC warnings on platforms where + sizeof(void*) < sizeof(off_t) (SF patch #1731979). + +06/06/2007: olly + [PHP5] + Fix handling of a particular case involving overloaded functions + with default parameters. + +06/05/2007: mutandiz (Mikel Bancroft) + [allegrocl] + Fix case where we'd pass fully qualified identifiers + (i.e. NS1::NS2::FOO) to swig-insert-id. All namespaces + should be stripped. + + Fix bug in TypedefHandler introduced by last fix. + +06/05/2007: olly + Fix reporting of filenames in errors after %include (patch from + Leigh Smith in #1731040; also reported as #1699940). + +05/31/2007: olly + [Python] + Fix "missing initialiser" warning when compiling generated C/C++ + wrapper code with Python 2.5 with warnings enabled (patch from + bug#1727668 from Luke Moore). + +05/29/2007: olly + [Python] + Split docstrings into separate string literals at each newline when + generating C/C++ wrapper code (the C/C++ compiler will just combine + them back into a single string literal). This avoids MSVC + complaining that the strings are too long (problem reported by + Bo Peng on the mailing list). + +05/28/2007: olly + [Python] + Escape backslashes in docstrings. + +05/26/2007: olly + [Python] + Fix autodoc generation of enums to be more consistent with how the + enums are wrapped - patch #1697226 from Josh Cherry. + +05/26/2007: olly + [PHP5] + Fix wrapping of methods and functions which return a pointer to a + class (bug#1700788) and those which have overloaded forms returning + both classes and non-classes (bug#1712717, thanks to Simon + Berthiaume for the patch). + +05/25/2007: wsfulton + Fixed %rename inconsistency in conversion operators as reported by Zhong Ren. The matching + is now done on the operator name in the same way as it is done for parameters. For example: + + %rename(opABC) Space::ABC::operator ABC() const; + %rename(methodABC) Space::ABC::method(ABC a) const; + namespace Space { + class ABC { + public: + void method(ABC a) const {} + operator ABC() const { ABC a; return a; } + }; + } + + Note that qualifying the conversion operator previously may or may not have matched. + Now it definitely won't, so this will not match: + + %rename(opABC) Space::ABC::operator Space::ABC() const; + + in the same way that this does not match: + + %rename(methodABC) Space::ABC::method(Space::ABC a) const; + + The documentation has been improved with respect to %rename, namespaces and templates. + Conversion operators documentation too. + + *** POTENTIAL INCOMPATIBILITY *** + +05/16/2007: mutandiz + [allegrocl] + Fix bad generation of local var ltype's in functionWrapper(). + Try to work better with the backward order in which swig + unrolls nested class definitions. + cleaned up a little unnecessary code/debug printf's. + Remove warning when replacing $ldestructor for ff:foreign-pointer + +05/12/2007: olly + [Python] + swig -python -threads now generates C/C++ code which uses Python's + own threading abstraction (from pythread.h) rather than OS specific + code. The old code failed to compile on MS Windows. (See SF patch + tracker #1710341). + +05/04/2007: gga + [Ruby] + Changed STL renames to be global renames. This fixes + STL functions not being renamed when autorename is on. + This is a not a totally perfect work-around, but better. + Someone really needs to fix the template renaming code. + (See bug #1545634) + +05/04/2007 gga + [All] + Changed %rename("%(undercase)s") a little so that single + numbers at the end of a function are not undercased. That is: + getSomething -> get_something + get2D -> get_2d + get234 -> get_234 + BUT: + asFloat2 -> as_float2 + (Bug #1699714) + +05/03/2007: gga + [Ruby] + Made __swigtype__ => @__swigtype__ so it can be accessed + from the scripting language (and follows Ruby's official + documentation, just in case). + Made tracking => @__trackings__ for same reason. + Currently storing ivars without the @ seems valid, but + the PickAxe says this is not correct, so just in case... + +05/03/2007: gga + [Ruby] + Applied patch for -minherit bug and exception classes. + This issue should be revisited more closely, as Multiple + Inheritance in Ruby is still problematic. + (patch/bug #1604878) + +05/03/2007: gga + [Ruby] + Overloaded functions in ruby will now report to the user + the possible prototypes when the user mistypes the number or + type of a parameter. + +05/03/2007: gga + [Ruby] + Forgot to document the bug fixing of an old bug regarding + exceptions. + (bug #1458247) + +05/03/2007: gga + [Ruby] + Fixed Ruby documentation to use the proper css styles for + each section. Added autodoc section to Ruby's docs to + document the features supported by Ruby in documenting its modules. + Made rdoc documentation spit out the full name of the class + + method name. Albeit this will make the current rdoc not recognize + the method, this is still needed to disambiguate between different + classes with similar methods (rdoc was created to document the + ruby source which only contains one class per c file, unlike swig) + I have patched rdoc to make it more friendly to swig. This + patch needs to be merged in the ruby std library now. + +05/03/2007: gga + [Ruby] + Changed flag -feature to be -init_name to better reflect its + purpose and avoid confusion with -features. + +05/03/2007: gga + [Ruby] + Improved autodoc generation. + Added autodoc .swg files to Ruby library for easily adding + documentation to common Ruby methods and STL methods. + Fixed autodoc documenting of getters and setters and module. + Made test suite always generate autodocs. + +05/03/2007: gga + [Ruby] + Removed some warnings from STL and test suite. + +05/02/2007: mgossage + [Lua] Fixed issues with C++ classes and hierachies across multiple + source files. Fixed imports test case & added run test. + Added Examples/imports. + Added typename for raw lua_State* + Added documentation on native functions. + +05/02/2007: gga + [Ruby] + Docstrings are now supported. + %feature("autodoc") and %feature("docstring") are now + properly supported in Ruby. These features will generate + a _wrap.cxx file with rdoc comments in them. + +05/02/2007: gga + [Ruby] + STL files have been upgraded to follow the new swig/python + Lib/std conventions. + This means std::vector, std::set, std::map, set::multimap, + std::multiset, std::deque and std::string are now properly + supported, including their iterators, support for containing + ruby objects (swig::GC_VALUE) and several other ruby + enhancements. + std::complex, std::ios, std::iostream, std::iostreambuf and + std::sstream are now also supported. + std::wstring, std::wios, std::wiostream, std::wiostreambuf + and std::wsstream are supported verbatim with no unicode + conversion. + + std_vector.i now mimics the behavior of Ruby Arrays much more + closely, supporting slicing, shifting, unshifting, + multiple indexing and proper return values on assignment. + + COMPATABILITY NOTE: this changes the older api a little bit in + that improper indexing would previously (incorrectly) raise + exceptions. Now, nil is returned instead, following ruby's + standard Array behavior. + +05/02/2007: gga + [Ruby] + Changed the value of SWIG_TYPECHECK_BOOL to be 10000 (ie. higher + than that of all integers). + This is because Ruby allows typecasting + integers down to booleans which can make overloaded functions on + bools and integers to fail. + (bug# 1488142) + +05/02/2007: gga + [Ruby] + Fixed a subtle bug in multiple argouts that could get triggered if + the user returned two or more arguments and the first one was an + array. + +05/01/2007: gga + [Ruby] + Improved the documentation to document the new features + added, add directorin/out/argout typemaps, etc. + +05/01/2007: gga + [Ruby] + Added %initstack and %ignorestack directives for director + functions. These allow you to control whether a director + function should re-init the Ruby stack. + This is sometimes needed for an embedded Ruby where the + director method is used as a C++ callback and not called + by the user from ruby code. + Explanation: + Ruby's GC needs to be aware of the running OS stack in order to + mark any VALUE (Ruby objects) it finds there to avoid collection + of them. This allows the ruby API to be very simple and allows + you to write code like "VALUE a = sth" anywhere without needing + to do things like refcounting like python. + By default, the start of the stack is set when ruby_init() is + called. If ruby is inited within main(), as it usually is the + case with the main ruby executable, ruby will be able to calculate + its stack properly. However, when this is not possible, as when + ruby is embedded as a plugin to an application where main is not + available, ruby_init() will be called in the wrong place, and + ruby will be incorrectly tracking the stack from the function + that called ruby_init() forwards only, which can lead to + all sorts of weird crashes or to ruby thinking it has run out of + stack space incorrectly. + To avoid this, director (callback) functions can now be tagged + to try to reset the ruby stack, which will solve the issues. + NOTE: ruby1.8.6 still contains a bug in it in that its function + to reset the stack will not always do so. This bug is triggered + very rarely, when ruby is called from two very distinct places + in memory, like a branch of main() and another dso. This bug + has now been reported to ruby-core and is pending further + investigation. + (bug #1700535 and patch #1702907) + +04/30/2007: wsfulton + Fix #1707582 - Restore building from read-only source directories. + +04/30/2007: gga + [Ruby] + Ruby will now report the parameter index properly on type + errors as well as the class and value of the incorrect + argument passed. + (feature request #1699670) + +04/30/2007: gga + [Ruby] + Ruby no longer creates the free_Class function if the class + contains its own user defined free function (%freefunc). + (bug #1702882) + +04/30/2007: gga + [Ruby] + Made directors raise a ruby exception for incorrect argout + returned values if RUBY_EMBEDDED is set, instead of throwing + an actual SwigDirector exception. + This will prevent crashes when ruby is embedded and unaware + of the SwigDirector exception. + +04/30/2007: gga + [Ruby] + Removed the need for -DSWIGEXTERN. + Changed swig_ruby_trackings to be a static variable, but also + be kept within a hidden instance variable in the SWIG module. + This allows properly dealing with trackings across multiple + DSOs, which was previously broken. + (bug #1700535 and improvement to patch #1702907) + +04/29/2007: gga + [Ruby] Fixed GC memory issues with trackings that could lead + to segfaults when dealing, mainly, with static variables. + (bug #1700535 and patch #1702907) + +04/29/2007: gga + [Ruby] + Fixed String conversion using old ruby1.6 macros. Now + StringValuePtr() is used if available. This removes warnings + when converting strings with \0 in them. + (bug #1700535 and patch #1702907) + +04/29/2007: gga + [Ruby] + Fixed the argout count in directors for Ruby. Previously, + ignored or "numinputs=0" typemaps would incorrectly not get + counted towards the argout count. + (bug/patch #1545585) + +04/29/2007: gga + [Ruby] + Upgraded Ruby converter to recognize "numinputs=0". Previously, + only the old "ignore" flag was checked (which would currently + still work properly, but is deprecated). + +04/29/2007: gga + [Ruby - but should be made generic] + + %feature("numoutputs","0") added. + + This feature allows you to ignore the output of a function so + that it is not added to a list of output values + ( ie. argouts ). + This should also become a feature of %typemap(directorout) + as "numoutputs"=0, just like "numinputs"=0 exists. + + %feature("directors"=1) + + %include + + %feature("numoutputs","0") { Class::member_function1 }; + %typemap(out) MStatus { // some code, like check mstatus + // and raise exception if wrong }; + + %inline %{ + typedef int MStatus; + class Class { + + // one argument returned, but director out code added + // MStatus is discarded as a return (out) parameter. + virtual MStatus member_function1( int& OUTPUT ); + + // two arguments returned, director out code added + // MStatus is not discarded + virtual MStatus member_function2( int& OUTPUT ); + }; + %} + + +04/21/2007: olly + Fix parsing of float constants with an exponent (e.g. 1e-02f) + (bug #1699646). + +04/20/2007: olly + [Python] Fix lack of generation of docstrings when -O is used. + Also, fix generation of docstrings containing a double quote + character. Patch from Richard Boulton in bug#1700146. + +04/17/2007: wsfulton + [Java, C#] Support for adding in Java/C# code before and after the intermediary call, + specifically related to the marshalling of the proxy type to the intermediary type. + The javain/csin typemap now supports the 'pre' and 'post' attributes to achieve this. + The javain typemap also supports an optional 'pgcppname' attribute for premature garbage + collection prevention parameter naming and the csin typemap supports an optional 'cshin' + attribute for the parameter type used in a constructor helper generated when the type is used + in a constructor. Details in the Java.html and CSharp.html documentation. + +04/16/2007: olly + Don't treat `restrict' as a reserved identifier in C++ mode + (bug#1685534). + +04/16/2007: olly + [PHP5] Fix how zend_throw_exception() is called (bug #1700785). + +04/10/2007: olly + Define SWIGTEMPLATEDISAMBIGUATOR to template for aCC (reported on + swig-user that this is needed). + +04/04/2007: olly + [PHP5] If ZTS is enabled, release _globals_id in MSHUTDOWN + to avoid PHP interpreter crash on shutdown. This solution was + suggested here: http://bugs.php.net/bug.php?id=40985 + +04/03/2007: olly + [PHP4] Add missing ZTS annotations to generated C++ wrapper code + to fix compilation failures when using ZTS enabled SWIG (Linux + distributions tend to disable ZTS, but notably the Windows build + uses it by default). + +04/01/2007: efuzzyone + [CFFI] Patch #1684261: fixes handling of unsigned int literals, thanks Leigh Smith. + Also, improved documentation. + +03/30/2007: olly + Avoid generating '<:' token when using SwigValueWrapper<> on a type + which starts with '::' (patch #1690948). + +03/25/2007: wuzzeb (John Lenz) + [perl5] Add SWIG_fail to the SWIG_exception macro. Fixes a few problems reported + on the mailing list. + +03/23/2007: wsfulton + String copying patch from Josh Cherry reducing memory consumption by about 25%. + +03/21/2007: wsfulton + [Java] Apply patch #1631987 from Ulrik Peterson - bool INOUT typemaps + fail on big endian machines. + +03/16/2007: wsfulton + Fix seg fault given dodgy C++ code: namespace abc::def { } + +03/16/2007: wsfulton + [Java] Fixes so that ARRAYSOFCLASSES and ARRAYSOFENUMS in arrays_java.i can be applied + to pointer types. + +03/03/2007: olly + [PHP5] When we know the literal numeric value for a constant, use + that to initialise the const member in the PHP wrapper class. + +03/02/2007: olly + [PHP5] Fix PHP wrapper code generated for certain cases of + overloaded forms with default arguments. + +02/26/2007: efuzzyone + [CFFI] Patch #1656395: fixed hex and octal values bug, thanks to Arthur Smyles. + +02/22/2007: mgossage + [Lua] Fixed bug in typemaps which caused derived_byvalue and rname test cases to fail. + Updated derived_byvalue.i to explain how to find and fix the problem + +01/25/2007: wsfulton + Fix #1538522 and #1338527, forward templated class declarations without a + name for the templated class parameters, such as: + + template class X; + +01/23/2007: mgossage + [Lua] Patch #1640862: replaced by + Patch #1598063 Typo in typemaps.i + +01/22/2007: mgossage + [Lua] Added a lua specific carrays.i which adds the operator[] support. + modified the main code to make it not emit all the class member functions & accessors + Note: C structs are created using new_XXX() while C++ classes use XXX() (should be standardised) + Updated test case: li_carrays + Updated the documentation. + +01/12/2007: wsfulton + [Php] Add support for newfree typemaps (sometimes used by %newobject) + +01/12/2007: beazley + New command line option -macroerrors. When supplied, this will force + the C scanner/parser to report proper location information for code contained + inside SWIG macros (defined with %define). By default, SWIG merely reports + errors on the line at which a macro is used. With this option, you + can expand the error back to its source---something which may simplify + debugging. + +01/12/2007: beazley + [Internals] Major overhaul of C/C++ scanning implementation. For quite + some time, SWIG contained two completely independent C/C++ tokenizers-- + the legacy scanner in CParse/cscanner.c and a general purpose scanner + in Swig/scanner.c. SWIG still has two scanning modules, but the C parser + scanner (CParse/cscanner.c) now relies upon the general purpose + scanner found in Swig/scanner.c. As a result, it is much smaller and + less complicated. This change also makes it possible to maintain all + of the low-level C tokenizing in one central location instead of two + places as before. + + ***POTENTIAL FLAKINESS*** + This change may cause problems with accurate line number reporting + as well as error reporting more generally. I have tried to resolve this + as much as possible, but there might be some corner cases. + +01/12/2007: mgossage + [Lua] Added typemap throws for std::string*, typemap for SWIGTYPE DYNAMIC, + changed the existing throws typemap to throw a string instead of making a copy of + the object (updating a few test cases to deal with the change). + fixed test case: dynamic_casts, exception_partial_info, li_std_string, size_t + +01/03/2007: beazley + [Internals]. Use of swigkeys.c/.h variables is revoked. Please use + simple strings for attribute names. + +12/30/2006: beazley + Internal API functions HashGetAttr() and HashCheckAttr() have been revoked. + Please use Getattr() to retrieve attributes. The function Checkattr() can + be used to check attributes. Note: These functions have been revoked + because they only added a marginal performance improvement at the expense + code clarity. + +12/26/2006: mgossage + [Lua] Added more STL (more exceptions, map, size_t), + fixed test case: conversion_ns_template. + +12/21/2006: mgossage + [Lua] Update to throw errors when setting immutables, + and allowing user addition of module variables. + +12/20/2006: wsfulton + Fix typedef'd variable wrappers that use %naturalvar, eg, std::string. + +12/14/2006: wsfulton + [C#] Add std::wstring and wchar_t typemaps + +12/14/2006: olly + [php] Fix bug #1613673 (bad PHP5 code generated for getters and + setters). + +12/02/2006: wsfulton, John Lenz, Dave Beazley + Move from cvs to Subversion for source control + +11/30/2006: beazley + Cleaned up swigwarnings.swg file not to use nested macro + definitions. + +11/12/2006: wsfulton + [Java, C#] Fix for %extend to work for static member variables. + Version 1.3.31 (November 20, 2006) ================================== diff --git a/CHANGES.current b/CHANGES.current index 556c10ab8..f311304d3 100644 --- a/CHANGES.current +++ b/CHANGES.current @@ -1,894 +1,3 @@ -Version 1.3.32 (November 15, 2007) -================================== - -11/14/2007: wsfulton - [R] Package name and dll name is now the same as the SWIG module - name. It used to be the module name with _wrap as a suffix. The package - and dll names can be modified using the -package and -dll commandline - options. - - *** POTENTIAL INCOMPATIBILITY *** - -11/11/2007: wsfulton - [R] Add support for Windows (Visual C++ 8 tested) - -11/10/2007: olly - [php] Fix makefile generated by -make (SF#1633679). Update - documentation to mark "-make" as deprecated (none of the other - SWIG backends seem to offer such a feature, it can't realistically - generate a fully portable makefile, and the commands to build an - extension are easy enough to write for the user's preferred build - tool). Also recommend against the use of "-phpfull" (it's only - really useful when static linking, and a dynamically loadable - module is virtually always the better approach). - -11/09/2007: olly - Fix --help output to note that `export SWIG_FEATURES' is required. - -10/29/2007: wsfulton - [R] Fix seg fault on Windows - [R] Examples R scripts are now platform independent - -10/30/2007: mgossage - [lua] fixed bug in template classes which cases template_default2 - and template_specialization_defarg to fail. - Added several warning filters into the overload's test cases. - Added runtime tests for several codes. - You can now make check-lua-test-suite with no errors and only a few warnings. - -10/30/2007: olly - [guile] Fix the configure test to put GUILELINK in LIBS not LDFLAGS - (SF#1822430). - -10/30/2007: olly - [guile] Fix the guile examples on 64-bit platforms. - -10/29/2007: wsfulton - [C#] Fix member pointers on 64 bit platforms. - -10/28/2007: olly - [lua] Fix swig_lua_class instances to be static to allow multiple - SWIG wrappers to be compiled into the same executable statically. - Patch from Andreas Fredriksson (posted to the swig mailing list). - -10/28/2007: olly - [lua] Fix Examples/lua to pass SRCS for C tests rather than CXXSRCS. - The code as it was happened to work on x86, but broke on x86_64 (and - probably any other platforms which require -fPIC). - -10/28/2007: wsfulton - [Java, C#] New approach for fixing uninitialised variable usage on error in director - methods using the new templated initialisation function SwigValueInit(). - -10/28/2007: wsfulton - [Perl] Use more efficient SvPV_nolen(x) instead of SvPV(x,PL_na) if SvPV_nolen is - supported. - -10/26/2007: wuzzeb - [Chicken] Fix global variables of class member function pointers. - Other minor fixes, so all tests in the chicken test suite now pass - -10/25/2007: olly - Fix UTL typecheck macro for a function taking char[] or const - char[] (SF#1820132). - -10/22/2007: mkoeppe - [Guile] Filter out -ansi -pedantic from CFLAGS while compiling test programs for Guile - in configure. This enables running the test suite for Guile if it is installed and - usable. - -10/22/2007: mkoeppe - [Guile -scm] Fix testcases apply_signed_char and apply_strings - by adding explicit casts to the appropriate $ltype. - -10/22/2007: wsfulton - [Java, C#] Fix uninitialised variable usage on error in director methods. - -10/19/2007: wsfulton - [Java, C#] Bug #1794247 - fix generated code for derived classes when csbase or javabase - typemaps are used with the replace="1" attribute. - -10/19/2007: wsfulton - [Python] Docs updated to suggest using distutils. Patch #1796681 from Christopher Barker. - -10/19/2007: olly - [perl5] Clear errno before calls to strtol(), strtoul(), strtoll() - and strtoull() which we check errno after to avoid seeing a junk - value of errno if there isn't an error in the call. - -10/16/2007: wsfulton - Deprecate %attribute_ref and replace with %attributeref. There is just an argument - order change in order to maintain consistency with %attribute, from: - - %attribute_ref(Class, AttributeType, AccessorMethod, AttributeName) - to - %attributeref(Class, AttributeType, AttributeName, AccessorMethod) - -10/16/2007: olly - [Tcl] Fix several ocurrences of "warning: deprecated conversion - from string constant to 'char*'" from GCC 4.2 in generated C/C++ - code. - -10/16/2007: olly - [PHP] Fix many occurrences of "warning: deprecated conversion from - string constant to 'char*'" from GCC 4.2 in generated C/C++ code - when compiling with a new enough version of PHP 5 (tested with - PHP 5.2.3, but PHP 5.2.1 is probably the minimum requirement). - -10/15/2007: wsfulton - Patch #1797133 from David Piepgrass fixes %attribute when the getter has the same name - as the attribute name and no longer generate non-functional setter for read-only attributes. - -10/15/2007: olly - [Tcl] Prevent SWIG_Tcl_ConvertPtr from calling the unknown proc. - Add Examples/tcl/std_vector/ which this change fixes. Patch - is from "Cliff C" in SF#1809819. - -10/12/2007: wsfulton - [Java] Add DetachCurrentThread back in for directors. See entry dated 08/11/2006 and - search for DetachCurrentThread on the mailing lists for details. The crashes on Solaris - seem to be only present in jdk-1.4.2 and lower (jdk-1.5.0 and jdk-1.6.0 are okay), so - anyone using directors should use a recent jdk on Solaris, or define (see director.swg) - SWIG_JAVA_NO_DETACH_CURRENT_THREAD to the C++ compiler to get old behaviour. - -10/12/2007: wsfulton - [Java] Ensure the premature garbage collection prevention parameter (pgcpp) is generated - when there are C comments in the jtype and jstype typemaps. - -10/12/2007: wuzzeb - Added a testsuite entry for Bug #1735931 - -10/09/2007: olly - Automatically rerun autogen.sh if configure.in is modified. - -10/09/2007: olly - Enhance check-%-test-suite rule and friends to give a more helpful - error message if you try them for a language which doesn't exist - (e.g. "make check-php-test-suite" rather than the correct - "make check-php4-test-suite"). - -10/09/2007: olly - Add make rule to regenerate Makefile from Makefile.in if it has - changed. - -10/09/2007: olly - [php] Fix long-standing memory leak in wrapped constructors and - wrapped functions/methods which return an object. - -10/08/2007: olly - Fix Makefile.in to read check.list files correctly in a VPATH - build. - -10/07/2007: wsfulton - [C#, Java] Experimental shared_ptr typemaps added - -09/27/2007: mgossage - [lua] added more verbose error messages for incorrect typechecks. - Added a routine which checks the exact number of parameters passed to a function - (breaks operator_overloading for unary minus operator, currently disabled). - Reorganised the luatypemaps.swg to tidy it up. - Added a lot of %ignores on the operators not supported by lua. - Added support for constant member function pointers & runtest for member_pointer.i - Added first version of wchar.i - -09/25/2007: wsfulton - [C#, Java] throws typemaps for std::wstring using C# patch #1799064 from David Piepgrass - -09/24/2007: wsfulton - [Tcl] Apply #1771313 to fix bug #1650229 - fixes long long and unsigned long long - handling. - -09/20/2007: olly - [Java] Eliminate some unnecessary uses of a temporary buffer - allocated using new[]. SF#1796609. - -09/19/2007: wsfulton - [C#] The $csinput special variable can be used in the csvarin typemap where it is always - expanded to 'value'. - -09/19/2007: wsfulton - [C#] Fix bug reported by Glenn A Watson and #1795260 where the cstype typemap used the 'ref' - keyword in the typemap body, it produced uncompilable C# properties (variable wrappers). - The type for the property now correctly comes from the 'out' attribute in the cstype typemap. - -09/19/2007: wsfulton - [Java] Fix const std::wstring& typemaps - -09/19/2007: wsfulton - [Java] Ensure the premature garbage collection prevention parameter (pgcpp) is generated - where a parameter is passed by pointer reference, eg in the std::vector wrappers. The pgcpp - is also generated now when user's custom typemaps use a proxy class in the jstype typemap - and a 'long' in the jtype typemap. - -09/18/2007: olly - [php] Add typemaps for handling parameters of type std::string & - which are modified by the wrapped function. - -09/17/2007: olly - [python] Split potentially long string literals to avoid hitting - MSVC's low fixed limit on string literal length - patch from - SF#1723770, also reported as SF#1630855. - -09/17/2007: olly - [ocaml] Fix renaming of overloaded methods in the method_table - - my patch from SF#940399. - -09/17/2007: olly - [python] Simpler code for SWIG_AsVal_bool() which fixes a "strict - aliasing" warning from GCC - patch from SF#1724581 by Andrew - Baumann. - -09/17/2007: olly - [perl5] Use sv_setpvn() to set a scalar from a pointer and length - - patch from SF#174460 by "matsubaray". - -09/17/2007: olly - When wrapping C++ code, generate code which uses - std::string::assign(PTR, LEN) rather than assigning - std::string(PTR, LEN). Using assign generates more efficient code - (tested with GCC 4.1.2). - -09/07/2007: wsfulton - Fix %ignore on constructors which are not explicitly declared [SF #1777712] - -09/05/2007: wuzzeb (John Lenz) - - Change r_ltype in typesys.c to store a hashtable instead of a single value. - several very subtle bugs were being caused by multiple ltypes being mapped - to a single mangled type, mostly when using typedefed template parameters. - Now, r_ltype stores a hashtable of possible ltypes, and when generating the - type table, all the ltypes are added into the swig_type_info structure. - -08/31/2007: wsfulton - SF #1754967 from James Bigler. - - Fix bug in turning on warnings that were turned off by default. Eg 'swig -w+309' will now - turn on the normally suppressed warning 309. - - - New -Wextra commandline option which enables the extra warning numbers: - 202,309,403,512,321,322 (this is the list of warnings that have always been suppressed by - default). By specifying -Wextra, all warnings will be turned on, but unlike -Wall, - warnings can still be selectively turned on/off using %warnfilter, - #pragma SWIG nowarn or further -w commandline options, eg: - swig -Wextra -w309 - will turn on all warnings except 309. - -08/28/2007: wsfulton - - New debugging options, -debug-module and -debug-top to display the parse tree at - various stages, where is a comma separated list of stages 1-4.For example, to - display top of parse tree at stages 1 and 3: - swig -debug-top 1,3 - - - Deprecate the following options which have equivalents below: - -dump_parse_module => -debug-module 1 - -dump_module => -debug-module 4 - -dump_parse_top => -debug-top 1 - -dump_top => -debug-top 4 - - - Renamed some commandline options for naming consistency across all options: - -debug_template => -debug-template - -debug_typemap => -debug-typemap - -dump_classes => -debug-classes - -dump_tags => -debug-tags - -dump_typedef => -debug-typedef - -dump_memory => -debug-memory - -08/25/2007: olly - [PHP5] Fix handling of double or float parameters with an integer - default value. - -08/25/2007: olly - [PHP5] Generate __isset() methods for setters for PHP 5.1 and later. - -08/20/2007: wsfulton - [Java C#] Fix director bug #1776651 reported by Stephane Routelous which occurred when - the director class name is the same as the start of some other symbols used within - the director class. - -08/17/2007: wsfulton - Correct behaviour for templated methods used with %rename or %ignore and the empty - template declaration - %template(). A warning is issued if the method has not been - renamed. - -08/16/2007: mutandiz (Mikel Bancroft) - [allegrocl] Name generated cl file based on input file rather than by - module name. It was possible to end up with a mypackage.cl and a test_wrap.c - when parsing a test.i input file. Confusing. Also, include external-format - templates for :fat and :fat-le automatically to avoid these being compiled - at runtime. - -08/15/2007: efuzzyone - [cffi] Apply patch #1766076 from Leigh Smith adding support for newly introduced - in cffi :long-long and :unsigned-long-long. - -08/10/2007: wsfulton - [Java] Add documentation patch #1743573 from Jeffrey Sorensen. It contains a neat - idea with respect to better memory management by the JVM of C++ allocated memory. - -08/10/2007: wsfulton - [Perl] Apply patch #1771410 from Wade Brainerd to fix typedef XS(SwigPerlWrapper) in - perlrun.swg for ActiveState Perl build 822 and Perl 5.8.9 and 5.10 branches. - -08/10/2007: wsfulton - [Lua] const enum reference typemaps fixed. - -08/09/2007: wsfulton - [C#] Added missing support for C++ class member pointers. - -08/09/2007: wsfulton - [C#, Java] Add support for $owner in the "out" typemaps like in the the scripting - language modules. Note that $owner has always been supported in the "javaout" / "csout" - typemaps. - -08/01/2007: wsfulton - Fix smart pointer handling for classes that have templated methods within the smart - pointer type. Problem reported by craigdo at ee.washington.edu. - -07/31/2007: efuzzyone - [cffi] fixed memory access after being freed bug. thanks to Martin Percossi. - package name clos changed to cl. thanks to Ralf Mattes - -07/24/2007: wsfulton - Parallel make support added for the examples and test-suite for developers who have - more than one CPU. Now parallel make can be used for checking in addition to building - the SWIG executable. Some typical checking examples: - - make -j8 -k check - make -j4 check-java-test-suite - make -j2 check-java-examples - -07/19/2007: mgossage - Fixed bug that stopped configure working on mingw (applied dos2unix to configure.in) - -07/10/2007: mgossage - [lua] Extra compatibility with Lua 5.1 (updated SWIG_init, docs, examples, test suite) - Removed name clash for static link of multiple modules - -07/05/2007: mgossage - [lua] Fix a bug in SWIG_ALLOC_ARRAY() - improved the error messages for incorrect arguments. - Changed the output of swig_type() to use the human readable form of the type, - rather than the raw swig type. - -07/03/2007: wsfulton - [C#] Fix directors for some overloaded methods where the imtype resulted in identical - methods being generated in the C# director class, eg void foo(int *) and void foo(double *) - used to generated two of these: - - private void SwigDirectorfoo(IntPtr p) { ... } - -06/25/2007: wsfulton - [Java, C#] Some parameter name changes in std_vector.i allowing better targeting - of typemaps for method parameters (for memory management of containers of pointers). - -06/07/2007: mutandiz (Mikel Bancroft) - [allegrocl] - fix foreign-type constructor to properly look for ffitype typemap - bindings. fix inout_typemaps.i for strings. - -06/06/2007: olly - [Ruby] - Use whichever of "long" or "long long" is the same size as "void*" - to hold pointers as integers, rather than whichever matches off_t. - Fixes compilation on OS X and GCC warnings on platforms where - sizeof(void*) < sizeof(off_t) (SF patch #1731979). - -06/06/2007: olly - [PHP5] - Fix handling of a particular case involving overloaded functions - with default parameters. - -06/05/2007: mutandiz (Mikel Bancroft) - [allegrocl] - Fix case where we'd pass fully qualified identifiers - (i.e. NS1::NS2::FOO) to swig-insert-id. All namespaces - should be stripped. - - Fix bug in TypedefHandler introduced by last fix. - -06/05/2007: olly - Fix reporting of filenames in errors after %include (patch from - Leigh Smith in #1731040; also reported as #1699940). - -05/31/2007: olly - [Python] - Fix "missing initialiser" warning when compiling generated C/C++ - wrapper code with Python 2.5 with warnings enabled (patch from - bug#1727668 from Luke Moore). - -05/29/2007: olly - [Python] - Split docstrings into separate string literals at each newline when - generating C/C++ wrapper code (the C/C++ compiler will just combine - them back into a single string literal). This avoids MSVC - complaining that the strings are too long (problem reported by - Bo Peng on the mailing list). - -05/28/2007: olly - [Python] - Escape backslashes in docstrings. - -05/26/2007: olly - [Python] - Fix autodoc generation of enums to be more consistent with how the - enums are wrapped - patch #1697226 from Josh Cherry. - -05/26/2007: olly - [PHP5] - Fix wrapping of methods and functions which return a pointer to a - class (bug#1700788) and those which have overloaded forms returning - both classes and non-classes (bug#1712717, thanks to Simon - Berthiaume for the patch). - -05/25/2007: wsfulton - Fixed %rename inconsistency in conversion operators as reported by Zhong Ren. The matching - is now done on the operator name in the same way as it is done for parameters. For example: - - %rename(opABC) Space::ABC::operator ABC() const; - %rename(methodABC) Space::ABC::method(ABC a) const; - namespace Space { - class ABC { - public: - void method(ABC a) const {} - operator ABC() const { ABC a; return a; } - }; - } - - Note that qualifying the conversion operator previously may or may not have matched. - Now it definitely won't, so this will not match: - - %rename(opABC) Space::ABC::operator Space::ABC() const; - - in the same way that this does not match: - - %rename(methodABC) Space::ABC::method(Space::ABC a) const; - - The documentation has been improved with respect to %rename, namespaces and templates. - Conversion operators documentation too. - - *** POTENTIAL INCOMPATIBILITY *** - -05/16/2007: mutandiz - [allegrocl] - Fix bad generation of local var ltype's in functionWrapper(). - Try to work better with the backward order in which swig - unrolls nested class definitions. - cleaned up a little unnecessary code/debug printf's. - Remove warning when replacing $ldestructor for ff:foreign-pointer - -05/12/2007: olly - [Python] - swig -python -threads now generates C/C++ code which uses Python's - own threading abstraction (from pythread.h) rather than OS specific - code. The old code failed to compile on MS Windows. (See SF patch - tracker #1710341). - -05/04/2007: gga - [Ruby] - Changed STL renames to be global renames. This fixes - STL functions not being renamed when autorename is on. - This is a not a totally perfect work-around, but better. - Someone really needs to fix the template renaming code. - (See bug #1545634) - -05/04/2007 gga - [All] - Changed %rename("%(undercase)s") a little so that single - numbers at the end of a function are not undercased. That is: - getSomething -> get_something - get2D -> get_2d - get234 -> get_234 - BUT: - asFloat2 -> as_float2 - (Bug #1699714) - -05/03/2007: gga - [Ruby] - Made __swigtype__ => @__swigtype__ so it can be accessed - from the scripting language (and follows Ruby's official - documentation, just in case). - Made tracking => @__trackings__ for same reason. - Currently storing ivars without the @ seems valid, but - the PickAxe says this is not correct, so just in case... - -05/03/2007: gga - [Ruby] - Applied patch for -minherit bug and exception classes. - This issue should be revisited more closely, as Multiple - Inheritance in Ruby is still problematic. - (patch/bug #1604878) - -05/03/2007: gga - [Ruby] - Overloaded functions in ruby will now report to the user - the possible prototypes when the user mistypes the number or - type of a parameter. - -05/03/2007: gga - [Ruby] - Forgot to document the bug fixing of an old bug regarding - exceptions. - (bug #1458247) - -05/03/2007: gga - [Ruby] - Fixed Ruby documentation to use the proper css styles for - each section. Added autodoc section to Ruby's docs to - document the features supported by Ruby in documenting its modules. - Made rdoc documentation spit out the full name of the class + - method name. Albeit this will make the current rdoc not recognize - the method, this is still needed to disambiguate between different - classes with similar methods (rdoc was created to document the - ruby source which only contains one class per c file, unlike swig) - I have patched rdoc to make it more friendly to swig. This - patch needs to be merged in the ruby std library now. - -05/03/2007: gga - [Ruby] - Changed flag -feature to be -init_name to better reflect its - purpose and avoid confusion with -features. - -05/03/2007: gga - [Ruby] - Improved autodoc generation. - Added autodoc .swg files to Ruby library for easily adding - documentation to common Ruby methods and STL methods. - Fixed autodoc documenting of getters and setters and module. - Made test suite always generate autodocs. - -05/03/2007: gga - [Ruby] - Removed some warnings from STL and test suite. - -05/02/2007: mgossage - [Lua] Fixed issues with C++ classes and hierachies across multiple - source files. Fixed imports test case & added run test. - Added Examples/imports. - Added typename for raw lua_State* - Added documentation on native functions. - -05/02/2007: gga - [Ruby] - Docstrings are now supported. - %feature("autodoc") and %feature("docstring") are now - properly supported in Ruby. These features will generate - a _wrap.cxx file with rdoc comments in them. - -05/02/2007: gga - [Ruby] - STL files have been upgraded to follow the new swig/python - Lib/std conventions. - This means std::vector, std::set, std::map, set::multimap, - std::multiset, std::deque and std::string are now properly - supported, including their iterators, support for containing - ruby objects (swig::GC_VALUE) and several other ruby - enhancements. - std::complex, std::ios, std::iostream, std::iostreambuf and - std::sstream are now also supported. - std::wstring, std::wios, std::wiostream, std::wiostreambuf - and std::wsstream are supported verbatim with no unicode - conversion. - - std_vector.i now mimics the behavior of Ruby Arrays much more - closely, supporting slicing, shifting, unshifting, - multiple indexing and proper return values on assignment. - - COMPATABILITY NOTE: this changes the older api a little bit in - that improper indexing would previously (incorrectly) raise - exceptions. Now, nil is returned instead, following ruby's - standard Array behavior. - -05/02/2007: gga - [Ruby] - Changed the value of SWIG_TYPECHECK_BOOL to be 10000 (ie. higher - than that of all integers). - This is because Ruby allows typecasting - integers down to booleans which can make overloaded functions on - bools and integers to fail. - (bug# 1488142) - -05/02/2007: gga - [Ruby] - Fixed a subtle bug in multiple argouts that could get triggered if - the user returned two or more arguments and the first one was an - array. - -05/01/2007: gga - [Ruby] - Improved the documentation to document the new features - added, add directorin/out/argout typemaps, etc. - -05/01/2007: gga - [Ruby] - Added %initstack and %ignorestack directives for director - functions. These allow you to control whether a director - function should re-init the Ruby stack. - This is sometimes needed for an embedded Ruby where the - director method is used as a C++ callback and not called - by the user from ruby code. - Explanation: - Ruby's GC needs to be aware of the running OS stack in order to - mark any VALUE (Ruby objects) it finds there to avoid collection - of them. This allows the ruby API to be very simple and allows - you to write code like "VALUE a = sth" anywhere without needing - to do things like refcounting like python. - By default, the start of the stack is set when ruby_init() is - called. If ruby is inited within main(), as it usually is the - case with the main ruby executable, ruby will be able to calculate - its stack properly. However, when this is not possible, as when - ruby is embedded as a plugin to an application where main is not - available, ruby_init() will be called in the wrong place, and - ruby will be incorrectly tracking the stack from the function - that called ruby_init() forwards only, which can lead to - all sorts of weird crashes or to ruby thinking it has run out of - stack space incorrectly. - To avoid this, director (callback) functions can now be tagged - to try to reset the ruby stack, which will solve the issues. - NOTE: ruby1.8.6 still contains a bug in it in that its function - to reset the stack will not always do so. This bug is triggered - very rarely, when ruby is called from two very distinct places - in memory, like a branch of main() and another dso. This bug - has now been reported to ruby-core and is pending further - investigation. - (bug #1700535 and patch #1702907) - -04/30/2007: wsfulton - Fix #1707582 - Restore building from read-only source directories. - -04/30/2007: gga - [Ruby] - Ruby will now report the parameter index properly on type - errors as well as the class and value of the incorrect - argument passed. - (feature request #1699670) - -04/30/2007: gga - [Ruby] - Ruby no longer creates the free_Class function if the class - contains its own user defined free function (%freefunc). - (bug #1702882) - -04/30/2007: gga - [Ruby] - Made directors raise a ruby exception for incorrect argout - returned values if RUBY_EMBEDDED is set, instead of throwing - an actual SwigDirector exception. - This will prevent crashes when ruby is embedded and unaware - of the SwigDirector exception. - -04/30/2007: gga - [Ruby] - Removed the need for -DSWIGEXTERN. - Changed swig_ruby_trackings to be a static variable, but also - be kept within a hidden instance variable in the SWIG module. - This allows properly dealing with trackings across multiple - DSOs, which was previously broken. - (bug #1700535 and improvement to patch #1702907) - -04/29/2007: gga - [Ruby] Fixed GC memory issues with trackings that could lead - to segfaults when dealing, mainly, with static variables. - (bug #1700535 and patch #1702907) - -04/29/2007: gga - [Ruby] - Fixed String conversion using old ruby1.6 macros. Now - StringValuePtr() is used if available. This removes warnings - when converting strings with \0 in them. - (bug #1700535 and patch #1702907) - -04/29/2007: gga - [Ruby] - Fixed the argout count in directors for Ruby. Previously, - ignored or "numinputs=0" typemaps would incorrectly not get - counted towards the argout count. - (bug/patch #1545585) - -04/29/2007: gga - [Ruby] - Upgraded Ruby converter to recognize "numinputs=0". Previously, - only the old "ignore" flag was checked (which would currently - still work properly, but is deprecated). - -04/29/2007: gga - [Ruby - but should be made generic] - - %feature("numoutputs","0") added. - - This feature allows you to ignore the output of a function so - that it is not added to a list of output values - ( ie. argouts ). - This should also become a feature of %typemap(directorout) - as "numoutputs"=0, just like "numinputs"=0 exists. - - %feature("directors"=1) - - %include - - %feature("numoutputs","0") { Class::member_function1 }; - %typemap(out) MStatus { // some code, like check mstatus - // and raise exception if wrong }; - - %inline %{ - typedef int MStatus; - class Class { - - // one argument returned, but director out code added - // MStatus is discarded as a return (out) parameter. - virtual MStatus member_function1( int& OUTPUT ); - - // two arguments returned, director out code added - // MStatus is not discarded - virtual MStatus member_function2( int& OUTPUT ); - }; - %} - - -04/21/2007: olly - Fix parsing of float constants with an exponent (e.g. 1e-02f) - (bug #1699646). - -04/20/2007: olly - [Python] Fix lack of generation of docstrings when -O is used. - Also, fix generation of docstrings containing a double quote - character. Patch from Richard Boulton in bug#1700146. - -04/17/2007: wsfulton - [Java, C#] Support for adding in Java/C# code before and after the intermediary call, - specifically related to the marshalling of the proxy type to the intermediary type. - The javain/csin typemap now supports the 'pre' and 'post' attributes to achieve this. - The javain typemap also supports an optional 'pgcppname' attribute for premature garbage - collection prevention parameter naming and the csin typemap supports an optional 'cshin' - attribute for the parameter type used in a constructor helper generated when the type is used - in a constructor. Details in the Java.html and CSharp.html documentation. - -04/16/2007: olly - Don't treat `restrict' as a reserved identifier in C++ mode - (bug#1685534). - -04/16/2007: olly - [PHP5] Fix how zend_throw_exception() is called (bug #1700785). - -04/10/2007: olly - Define SWIGTEMPLATEDISAMBIGUATOR to template for aCC (reported on - swig-user that this is needed). - -04/04/2007: olly - [PHP5] If ZTS is enabled, release _globals_id in MSHUTDOWN - to avoid PHP interpreter crash on shutdown. This solution was - suggested here: http://bugs.php.net/bug.php?id=40985 - -04/03/2007: olly - [PHP4] Add missing ZTS annotations to generated C++ wrapper code - to fix compilation failures when using ZTS enabled SWIG (Linux - distributions tend to disable ZTS, but notably the Windows build - uses it by default). - -04/01/2007: efuzzyone - [CFFI] Patch #1684261: fixes handling of unsigned int literals, thanks Leigh Smith. - Also, improved documentation. - -03/30/2007: olly - Avoid generating '<:' token when using SwigValueWrapper<> on a type - which starts with '::' (patch #1690948). - -03/25/2007: wuzzeb (John Lenz) - [perl5] Add SWIG_fail to the SWIG_exception macro. Fixes a few problems reported - on the mailing list. - -03/23/2007: wsfulton - String copying patch from Josh Cherry reducing memory consumption by about 25%. - -03/21/2007: wsfulton - [Java] Apply patch #1631987 from Ulrik Peterson - bool INOUT typemaps - fail on big endian machines. - -03/16/2007: wsfulton - Fix seg fault given dodgy C++ code: namespace abc::def { } - -03/16/2007: wsfulton - [Java] Fixes so that ARRAYSOFCLASSES and ARRAYSOFENUMS in arrays_java.i can be applied - to pointer types. - -03/03/2007: olly - [PHP5] When we know the literal numeric value for a constant, use - that to initialise the const member in the PHP wrapper class. - -03/02/2007: olly - [PHP5] Fix PHP wrapper code generated for certain cases of - overloaded forms with default arguments. - -02/26/2007: efuzzyone - [CFFI] Patch #1656395: fixed hex and octal values bug, thanks to Arthur Smyles. - -02/22/2007: mgossage - [Lua] Fixed bug in typemaps which caused derived_byvalue and rname test cases to fail. - Updated derived_byvalue.i to explain how to find and fix the problem - -01/25/2007: wsfulton - Fix #1538522 and #1338527, forward templated class declarations without a - name for the templated class parameters, such as: - - template class X; - -01/23/2007: mgossage - [Lua] Patch #1640862: replaced by - Patch #1598063 Typo in typemaps.i - -01/22/2007: mgossage - [Lua] Added a lua specific carrays.i which adds the operator[] support. - modified the main code to make it not emit all the class member functions & accessors - Note: C structs are created using new_XXX() while C++ classes use XXX() (should be standardised) - Updated test case: li_carrays - Updated the documentation. - -01/12/2007: wsfulton - [Php] Add support for newfree typemaps (sometimes used by %newobject) - -01/12/2007: beazley - New command line option -macroerrors. When supplied, this will force - the C scanner/parser to report proper location information for code contained - inside SWIG macros (defined with %define). By default, SWIG merely reports - errors on the line at which a macro is used. With this option, you - can expand the error back to its source---something which may simplify - debugging. - -01/12/2007: beazley - [Internals] Major overhaul of C/C++ scanning implementation. For quite - some time, SWIG contained two completely independent C/C++ tokenizers-- - the legacy scanner in CParse/cscanner.c and a general purpose scanner - in Swig/scanner.c. SWIG still has two scanning modules, but the C parser - scanner (CParse/cscanner.c) now relies upon the general purpose - scanner found in Swig/scanner.c. As a result, it is much smaller and - less complicated. This change also makes it possible to maintain all - of the low-level C tokenizing in one central location instead of two - places as before. - - ***POTENTIAL FLAKINESS*** - This change may cause problems with accurate line number reporting - as well as error reporting more generally. I have tried to resolve this - as much as possible, but there might be some corner cases. - -01/12/2007: mgossage - [Lua] Added typemap throws for std::string*, typemap for SWIGTYPE DYNAMIC, - changed the existing throws typemap to throw a string instead of making a copy of - the object (updating a few test cases to deal with the change). - fixed test case: dynamic_casts, exception_partial_info, li_std_string, size_t - -01/03/2007: beazley - [Internals]. Use of swigkeys.c/.h variables is revoked. Please use - simple strings for attribute names. - -12/30/2006: beazley - Internal API functions HashGetAttr() and HashCheckAttr() have been revoked. - Please use Getattr() to retrieve attributes. The function Checkattr() can - be used to check attributes. Note: These functions have been revoked - because they only added a marginal performance improvement at the expense - code clarity. - -12/26/2006: mgossage - [Lua] Added more STL (more exceptions, map, size_t), - fixed test case: conversion_ns_template. - -12/21/2006: mgossage - [Lua] Update to throw errors when setting immutables, - and allowing user addition of module variables. - -12/20/2006: wsfulton - Fix typedef'd variable wrappers that use %naturalvar, eg, std::string. - -12/14/2006: wsfulton - [C#] Add std::wstring and wchar_t typemaps - -12/14/2006: olly - [php] Fix bug #1613673 (bad PHP5 code generated for getters and - setters). - -12/02/2006: wsfulton, John Lenz, Dave Beazley - Move from cvs to Subversion for source control - -11/30/2006: beazley - Cleaned up swigwarnings.swg file not to use nested macro - definitions. - -11/12/2006: wsfulton - [Java, C#] Fix for %extend to work for static member variables. +Version 1.3.33 (in progress) +============================