git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@9712 626c5289-ae23-0410-ae9c-e8d60b6d4f22
302 lines
12 KiB
Text
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.
|
|
|