swig/CHANGES.current
Gonzalo Garramuno ab2f4590c6 Added new changes to list.
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@9712 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2007-04-29 20:50:36 +00:00

302 lines
12 KiB
Text

Version 1.3.32 (in progress)
============================
04/30/2007: gga
[Ruby]
Ruby will now report the parameter index properly on type
errors.
(feature request #1699670)
04/30/2007: gga
[Ruby]
std_vector.i and some related STL files have been upgraded
to follow the new swig/python Lib/std conventions.
std_vector.i now mimics the behavior of Ruby Arrays much more
closely, supporting slicing, 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.
04/30/2007: gga
[Ruby]
Ruby no longer creates the free_Class function if the class
containes its own user defined free function (%freefunc).
(bug #1702882)
04/30/2007: gga
[Ruby]
Made directors raise a ruby expection 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 outpus values
( ie. argouts ).
This should also become a feature of %typemap(out/directorout)
as "numoutputs"=0, just like "numinputs"=0 exists.
%feature("directors"=1)
%include <typemaps.i>
%feature("numoutputs","0") { Class::member_function1 };
%typemap(out) MStatus { // some code, like ignore mstatus
// and raise exception };
%inline %{
typedef int MStatus;
class Class {
// one argument returned, but director out code added
// MStatus is discarded.
virtual MStatus member_function1( int& OUTPUT );
// two arguments returned, director out code added
// MStatus is not discarded
virtual MStatus member_function2( int& OUTPUT );
};
%}
04/29/2007: gga
[Ruby]
Directors will now try to reset the ruby stack on the first call
to them if the developer sets the define RUBY_EMBEDDED.
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
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() 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.
(bug #1700535 and patch #1702907)
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 <module>_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 <typename, class> class X;
01/23/2007: mgossage
[Lua] Patch #1640862: <malloc.h> replaced by <stdlib.h>
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.