import source from 1.3.40
[external/swig.git] / CHANGES.current
1 Version 1.3.40 (18 August 2009)
2 ===============================
3
4 2009-08-17: olly
5             [Perl] Add "#undef do_exec" to our clean up of Perl global
6             namespace pollution.
7
8 2009-08-17: olly
9             [PHP] Fix to wrap a resource returned by __get() in a PHP object (SF#2549217).
10
11 2009-08-17: wsfulton
12             Fix #2797485 After doing a 'make clean', install fails if yodl2man or yodl2html 
13             is not available.
14
15 2009-08-16: wsfulton
16             [Octave] Caught exceptions display the type of the C++ exception instead of the
17             generic "c++-side threw an exception" message.
18
19 2009-08-16: wsfulton
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.
22
23 2009-08-16: wsfulton
24             [C#] Fix exception handling when %catches is used, reported by Juan Manuel Alvarez.
25
26 2009-08-15: wsfulton
27             Fix %template seg fault on some cases of overloading the templated method.
28             Bug reported by Jan Kupec.
29
30 2009-08-15: wsfulton
31             [Ruby] Add numerous missing wrapped methods for std::vector<bool> specialization
32             as reported by Youssef Jones.
33
34 2009-08-14: wsfulton
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 
37             David Fletcher.
38
39 2009-08-14: olly
40             [PHP] PHP5 now wraps static member variables as documented.
41
42 2009-08-14: olly
43             [PHP] Update the PHP "class" example to work with PHP5 and use
44             modern wrapping features.
45
46 2009-08-13: wsfulton
47             [PHP] std::vector wrappers overhaul. They no longer require the 
48             specialize_std_vector() macro. Added wrappers for capacity() and reserve().
49
50 2009-08-13: wsfulton
51             [PHP] Add const reference typemaps. const reference primitive types are
52             now passed by value rather than pointer like the other target languages.
53             Fixes SF#2524029.
54
55 2009-08-08: wsfulton
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,
61             the message remains
62             "No constructor defined".
63             [tcl] Similarly for tcl when using -itcl.
64
65 2009-08-04: olly
66             [PHP] Fix generated code to work with PHP 5.3.
67
68 2009-08-04: vmiklos
69             [PHP] Various mathematical functions (which would conflict
70             with the built-in PHP ones) are now automatically handled by
71             adding a 'c_' prefix.
72
73 2009-08-03: wsfulton
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:
78
79             SWIG_STD_VECTOR_SPECIALIZE_MINIMUM(CSTYPE, CTYPE)
80               usage should be removed altogether
81
82             SWIG_STD_VECTOR_SPECIALIZE(CSTYPE, CTYPE)
83               should be replaced with:
84             SWIG_STD_VECTOR_ENHANCED(CTYPE)
85
86             Some more details in csharp/std_vector.i
87
88             *** POTENTIAL INCOMPATIBILITY ***
89
90 2009-07-31: olly
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.
93
94 2009-07-29: wsfulton
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.
98
99 2009-07-29: vmiklos
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.
103
104 2009-07-29: olly
105             [Python] Add missing locks to std::map wrappers.  Patch from 
106             Paul Hampson in SF#2813836.
107
108 2009-07-29: olly
109             [PHP] Fix memory leak in PHP OUTPUT typemaps.  Reported by Hitoshi
110             Amano in SF#2826322.
111
112 2009-07-29: olly
113             [PHP] Fix memory leak in PHP resource destructor for classes
114             without a destructor and non-class types.  Patch from Hitoshi Amano
115             in SF#2825303.
116
117 2009-07-28: olly
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.
121
122 2009-07-28: vmiklos
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.
126
127 2009-07-21: vmiklos
128             [PHP] Director support added.
129
130 2009-07-15: olly
131             [Perl] Don't specify Perl prototype "()" for a constructor with a
132             different name to the class, as such constructors can still take
133             parameters.
134
135 2009-07-12: xavier98
136             [Octave] Add support for Octave 3.2 API
137
138 2009-07-05: olly
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__",
141             and "__NAMESPACE__".
142
143 2009-07-03: olly
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
147             Gollwitzer.
148
149 2009-07-02: vmiklos
150             [PHP] Added factory.i for PHP, see the li_factory testcase
151             for more info on how to use it.
152
153 2009-07-02: wsfulton
154             Fix -Wallkw option as reported by Solomon Gibbs.
155
156 2009-07-02: wsfulton
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.
159
160 2009-07-01: vmiklos
161             [PHP] Unknown properties are no longer ignored in proxy
162             classes.
163
164 2009-07-01: vmiklos
165             [PHP] Fixed %newobject behaviour, previously any method
166             marked with %newobject was handled as a constructor.
167
168 2009-06-30: olly
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.
172
173 2009-06-26: olly
174             [Ruby] Fix to handle FIXNUM values greater than MAXINT passed for a
175             double parameter.
176
177 2009-06-24: wsfulton
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.
182
183 2009-06-16: wsfulton
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.
186
187 2009-06-02: talby
188             [Perl] Resolved reference.i overload support problem
189             identified by John Potowsky.
190
191 2009-05-26: wsfulton
192             [C#] Improved std::map wrappers based on patch from Yuval Baror. The C# proxy
193             now implements System.Collections.Generic.IDictionary<>.
194
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
200               del -> Remove
201               clear -> Clear
202
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
207
208             *** POTENTIAL INCOMPATIBILITY ***
209
210 2009-05-20: vmiklos
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.)
215
216 2009-05-14: bhy
217             [Python] Fix the wrong pointer value returned by SwigPyObject_repr().
218
219 2009-05-13: mutandiz (Mikel Bancroft)
220             [allegrocl] Minor tweak when wrapping in -nocwrap mode.
221
222 2009-05-11: wsfulton
223             [C#] Improved std::vector wrappers on the C# proxy side from Yuval Baror. These
224             implement IList<> instead of IEnumerable<> where possible.
225
226 2009-04-29: wsfulton
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"
231
232 2009-04-29: olly
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).
239
240 2009-04-21: wsfulton
241             [C#] Fix #2753469 - bool &OUTPUT and bool *OUTPUT typemaps initialisation.
242
243 2009-04-09: wsfulton
244             Fix #2746858 - C macro expression using floating point numbers
245
246 2009-03-30: olly
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:
253
254             %typemap(out) char [ANY]
255             %{
256                 RETVAL_STRINGL($1, $1_dim0, 1);
257             %}