1 Version 1.3.40 (18 August 2009)
2 ===============================
5 [Perl] Add "#undef do_exec" to our clean up of Perl global
9 [PHP] Fix to wrap a resource returned by __get() in a PHP object (SF#2549217).
12 Fix #2797485 After doing a 'make clean', install fails if yodl2man or yodl2html
16 [Octave] Caught exceptions display the type of the C++ exception instead of the
17 generic "c++-side threw an exception" message.
20 [Java] When %catches is used, fix so that any classes specified in the "throws"
21 attribute of the "throws" typemap are generated into the Java method's throws clause.
24 [C#] Fix exception handling when %catches is used, reported by Juan Manuel Alvarez.
27 Fix %template seg fault on some cases of overloading the templated method.
28 Bug reported by Jan Kupec.
31 [Ruby] Add numerous missing wrapped methods for std::vector<bool> specialization
32 as reported by Youssef Jones.
35 [Perl] Add SWIG_ConvertPtrAndOwn() method into the runtime for smart pointer
36 memory ownership control. shared_ptr support still to be added. Patch from
40 [PHP] PHP5 now wraps static member variables as documented.
43 [PHP] Update the PHP "class" example to work with PHP5 and use
44 modern wrapping features.
47 [PHP] std::vector wrappers overhaul. They no longer require the
48 specialize_std_vector() macro. Added wrappers for capacity() and reserve().
51 [PHP] Add const reference typemaps. const reference primitive types are
52 now passed by value rather than pointer like the other target languages.
56 [Python] More user friendly AttributeError is raised when there are
57 no constructors generated for the proxy class in the event that the
58 class is abstract - the error message is now
59 "No constructor defined - class is abstract" whereas if there are no
60 public constructors for any other reason and the class is not abstract,
62 "No constructor defined".
63 [tcl] Similarly for tcl when using -itcl.
66 [PHP] Fix generated code to work with PHP 5.3.
69 [PHP] Various mathematical functions (which would conflict
70 with the built-in PHP ones) are now automatically handled by
74 [C#] The std::vector<T> implementation is improved and now uses $typemap such
75 that the proxy class for T no longer has to be specified in some macros
76 for correct C# compilation; the following macros are deprecated, where
77 CSTYPE was the C# type for the C++ class CTYPE:
79 SWIG_STD_VECTOR_SPECIALIZE_MINIMUM(CSTYPE, CTYPE)
80 usage should be removed altogether
82 SWIG_STD_VECTOR_SPECIALIZE(CSTYPE, CTYPE)
83 should be replaced with:
84 SWIG_STD_VECTOR_ENHANCED(CTYPE)
86 Some more details in csharp/std_vector.i
88 *** POTENTIAL INCOMPATIBILITY ***
91 [Python] Fix indentation so that we give a useful error if the
92 module can't be loaded. Patch from Gaetan Lehmann in SF#2829853.
95 Add $typemap(method, typelist) special variable macro. This allows
96 the contents of a typemap to be inserted within another typemap.
97 Fully documented in Typemaps.html.
100 [PHP] Static member variables are now prefixed with the
101 class name. This allows static member variables with the
102 same name in different classes.
105 [Python] Add missing locks to std::map wrappers. Patch from
106 Paul Hampson in SF#2813836.
109 [PHP] Fix memory leak in PHP OUTPUT typemaps. Reported by Hitoshi
113 [PHP] Fix memory leak in PHP resource destructor for classes
114 without a destructor and non-class types. Patch from Hitoshi Amano
118 [PHP] Update warnings about clashes between identifiers and PHP
119 keywords and automatic renaming to work with the PHP5 class
120 wrappers. Fixes SF#1613679.
123 [PHP] If a member function is not public but it has a base
124 which is public, then now a warning is issued and the member
125 function will be public, as PHP requires this.
128 [PHP] Director support added.
131 [Perl] Don't specify Perl prototype "()" for a constructor with a
132 different name to the class, as such constructors can still take
136 [Octave] Add support for Octave 3.2 API
139 [PHP] Update the list of PHP keywords - "cfunction" is no longer a
140 keyword in PHP5 and PHP 5.3 added "goto", "namespace", "__DIR__",
144 [Tcl] To complement USE_TCL_STUBS, add support for USE_TK_STUBS
145 and SWIG_TCL_STUBS_VERSION. Document all three in the Tcl chapter
146 of the manual. Based on patch from SF#2810380 by Christian
150 [PHP] Added factory.i for PHP, see the li_factory testcase
151 for more info on how to use it.
154 Fix -Wallkw option as reported by Solomon Gibbs.
157 Fix syntax error when a nested struct contains a comment containing a * followed
158 eventually by a /. Regression from 1.3.37, reported by Solomon Gibbs.
161 [PHP] Unknown properties are no longer ignored in proxy
165 [PHP] Fixed %newobject behaviour, previously any method
166 marked with %newobject was handled as a constructor.
169 [Ruby] Undefine close and connect macros defined by Ruby API
170 headers as we don't need them and they can clash with C++ methods
171 being wrapped. Patch from Vit Ondruch in SF#2814430.
174 [Ruby] Fix to handle FIXNUM values greater than MAXINT passed for a
178 Fix wrapping methods with default arguments and the compactdefaultargs feature
179 where a class is passed by value and is assigned a default value. The SwigValueWrapper
180 template workaround for a missing default constructor is no longer used as the code
181 generated does not call the default constructor.
184 [Java,C#] Fix enum marshalling when %ignore is used on one of the enum items.
185 Incorrect enum values were being passed to the C++ layer or compilation errors resulted.
188 [Perl] Resolved reference.i overload support problem
189 identified by John Potowsky.
192 [C#] Improved std::map wrappers based on patch from Yuval Baror. The C# proxy
193 now implements System.Collections.Generic.IDictionary<>.
195 These std:map wrappers have a non-backwards compatible overhaul to make them
196 like a .NET IDictionary. Some method names have changed as following:
197 set -> setitem (use this[] property now)
198 get -> getitem (use this[] property now)
199 has_key -> ContainsKey
203 The following macros used for std::map wrappers are deprecated and will no longer work:
204 specialize_std_map_on_key
205 specialize_std_map_on_value
206 specialize_std_map_on_both
208 *** POTENTIAL INCOMPATIBILITY ***
211 [PHP] Add the 'thisown' member to classes. The usage of it
212 is the same as the Python thisown one: it's 1 by default and
213 you can set it to 0 if you want to prevent freeing it. (For
214 example to prevent a double free.)
217 [Python] Fix the wrong pointer value returned by SwigPyObject_repr().
219 2009-05-13: mutandiz (Mikel Bancroft)
220 [allegrocl] Minor tweak when wrapping in -nocwrap mode.
223 [C#] Improved std::vector wrappers on the C# proxy side from Yuval Baror. These
224 implement IList<> instead of IEnumerable<> where possible.
227 [Java, C#] Add the 'notderived' attribute to the javabase and csbase typemaps.
228 When this attribute is set, the typemap will not apply to classes that are derived
229 from a C++ base class, eg
230 %typemap(csbase, notderived="1") SWIGTYPE "CommonBase"
233 [Python] Don't attempt to acquire the GIL in situations where we
234 know that it will already be locked. This avoids some dead-locks
235 with mod_python (due to mod_python bugs which are apparently
236 unlikely to ever be fixed), and results in smaller wrappers which
237 run a little faster (in tests with Xapian on x86-64 Ubuntu 9.04,
238 the stripped wrapper library was 11% smaller and ran 2.7% faster).
241 [C#] Fix #2753469 - bool &OUTPUT and bool *OUTPUT typemaps initialisation.
244 Fix #2746858 - C macro expression using floating point numbers
247 [PHP] The default out typemap for char[ANY] now returns the string up to a
248 zero byte, or the end of the array if there is no zero byte. This
249 is the same as Python does, and seems more generally useful than
250 the previous behaviour of returning the whole contents of the array
251 including any zero bytes. If you want the old behaviour, you can provide
252 your own typemap to do this:
254 %typemap(out) char [ANY]
256 RETVAL_STRINGL($1, $1_dim0, 1);