Revision: 9697
http://swig.svn.sourceforge.net/swig/?rev=9697&view=rev
Author: gga73
Date: 2007-04-29 01:58:31 -0700 (Sun, 29 Apr 2007)
Log Message:
-----------
Added Ruby changes.
Modified Paths:
--------------
trunk/CHANGES.current
Modified: trunk/CHANGES.current
===================================================================
--- trunk/CHANGES.current 2007-04-28 17:45:32 UTC (rev 9696)
+++ trunk/CHANGES.current 2007-04-29 08:58:31 UTC (rev 9697)
@@ -1,6 +1,97 @@
Version 1.3.32 (in progress)
============================
+04/29/2007: gga
+ [Ruby] Fixed GC memory issues with trackings that could lead
+ to segfaults when dealing, mainly, with static variables.
+ [Bug: ]
+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:]
+
+04/29/2007: gga
+ [Ruby]
+ Changed VALUE swig_ruby_trackings (the tracking hash table)
+ from static to being exposed outside of a single DSO. This
+ allows properly dealing with directors across multiple DSOs.
+ However, the developer is currently forced to turn on and off
+ a -DSWIGEXTERN flag. In the next revision this will be
+ addressed.
+ [Bug: ]
+
+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.
+
+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 (temporary) 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) 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 stack in order to mark
+ any VALUE (Ruby objects) it finds there to avoid collection of
+ them. This allows the ruby API to 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.
+
+
04/21/2007: olly
Fix parsing of float constants with an exponent (e.g. 1e-02f)
(bug #1699646).
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.

Revision: 9700
http://swig.svn.sourceforge.net/swig/?rev=9700&view=rev
Author: gga73
Date: 2007-04-29 11:49:01 -0700 (Sun, 29 Apr 2007)
Log Message:
-----------
Improved new ruby docs a little bit.
Modified Paths:
--------------
trunk/CHANGES.current
Modified: trunk/CHANGES.current
===================================================================
--- trunk/CHANGES.current 2007-04-29 18:48:22 UTC (rev 9699)
+++ trunk/CHANGES.current 2007-04-29 18:49:01 UTC (rev 9700)
@@ -1,28 +1,27 @@
Version 1.3.32 (in progress)
============================
+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: ]
+ (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:]
+ when converting strings with \0 in them.
+ (bug #1700535 and patch #1702907)
04/29/2007: gga
[Ruby]
- Changed VALUE swig_ruby_trackings (the tracking hash table)
- from static to being exposed outside of a single DSO. This
- allows properly dealing with directors across multiple DSOs.
- However, the developer is currently forced to turn on and off
- a -DSWIGEXTERN flag. In the next revision this will be
- addressed.
- [Bug: ]
-
-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.
@@ -35,12 +34,15 @@
04/29/2007: gga
[Ruby - but should be made generic]
- %feature("numoutputs","0") added. This (temporary) 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) as
- "numoutputs"=0, just like "numinputs"=0 exists.
+ %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>
@@ -68,11 +70,11 @@
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 stack in order to mark
- any VALUE (Ruby objects) it finds there to avoid collection of
- them. This allows the ruby API to very simple and allows you
- to write code like "VALUE a = sth" anywhere without needing to
- do things like refcounting like python.
+ 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
@@ -90,6 +92,7 @@
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
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.

Revision: 9859
http://swig.svn.sourceforge.net/swig/?rev=9859&view=rev
Author: olly
Date: 2007-06-25 16:49:19 -0700 (Mon, 25 Jun 2007)
Log Message:
-----------
Fix two typos
Modified Paths:
--------------
trunk/CHANGES.current
Modified: trunk/CHANGES.current
===================================================================
--- trunk/CHANGES.current 2007-06-25 21:43:43 UTC (rev 9858)
+++ trunk/CHANGES.current 2007-06-25 23:49:19 UTC (rev 9859)
@@ -44,7 +44,7 @@
[Python]
Split docstrings into separate string literals at each newline when
generating C/C++ wrapper code (the C/C++ compiler will just combine
- the back into a single string literal). This avoids MSVC
+ 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).
@@ -83,7 +83,7 @@
%rename(opABC) Space::ABC::operator Space::ABC() const;
- in the same that this does not match:
+ in the same way that this does not match:
%rename(methodABC) Space::ABC::method(Space::ABC a) const;
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.

Revision: 9909
http://swig.svn.sourceforge.net/swig/?rev=9909&view=rev
Author: wsfulton
Date: 2007-08-20 13:20:55 -0700 (Mon, 20 Aug 2007)
Log Message:
-----------
Fix bug #1776651 - bug when the director class name is similar to other symbols being used
Modified Paths:
--------------
trunk/CHANGES.current
Modified: trunk/CHANGES.current
===================================================================
--- trunk/CHANGES.current 2007-08-20 19:48:45 UTC (rev 9908)
+++ trunk/CHANGES.current 2007-08-20 20:20:55 UTC (rev 9909)
@@ -1,6 +1,11 @@
Version 1.3.32 (in progress)
============================
+08/20/2007: wsfulton
+ [Java C#] Fix director bug #1776651 reported by Jorgen Tjerno which occured 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
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.