summaryrefslogtreecommitdiff
path: root/CHANGES.current
blob: aaadbad7cad76532a3be3b5bad52a9b020e3633e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
Below are the changes for the current release.
See the CHANGES file for changes in older releases.
See the RELEASENOTES file for a summary of changes in each release.

Version 2.0.5 (in progress)
===========================

2012-04-05: olly
	    [Lua] Add support for Lua 5.2 (patch SF#3514593 from Miles Bader)

2012-03-26: xavier98
	    [octave] Apply patch #3425993 from jgillis: add extra logic to the octave_swig_type::dims(void) method: it checks if the user has defined a __dims__ method and uses this in stead of returning (1,1)
	    [octave] Apply patch #3424833 from jgillis: make is_object return true for swig types

2012-03-24: wsfulton
            [D] Apply #3502431 to fix duplicate symbols in multiple modules and compiler errors due to lack
            of const in some methods taking char*.

2012-03-21: wsfulton
            Fix #3494791 - %$isglobal for %rename matching.

2012-03-20: wsfulton
            Fix #3487706 and #3391906 - missing stddef.h include for ptrdiff_t when using %import
            for STL containers and compiling with g++-4.6. An include of stddef.h is now only
            generated when SWIG generates STL helper templates which require ptrdiff_t. If you 
            were previously relying on "#include <stddef.h>" always being generated when using a
            %include of an STL header, you may now need to add this in manually.

2012-03-16: wsfulton
            Apply patch #3392264 from Sebastien Bine to parse (unsigned) long long types in enum value assignment.

2012-03-16: wsfulton
            Apply patch #3505530 from Karl Wette to allow custom allocators in STL string classes for the UTL languages.

2012-03-13: wsfulton
            Apply patch #3468362 from Karl Wette to fix %include inside %define.

2012-03-13: wsfulton
            [Python, Ruby, Octave] Fix #3475492 - iterating through std::vector wrappers of enumerations.

2012-02-27: xavier98 (patches from Karl Wette)
	    [Octave] Use -globals . to load global variables in module namespace
	    [Octave] Comment declaration of unimplemented function swig_register_director
	    [Octave] Fix OCTAVE_PATH in octave Makefiles
	    [Octave] Add support for nspace feature - fix director_nspace test
	    [Octave] Add support for std::list - fix li_std_containers_int test
	    [Octave] Fix imports test

2012-02-16: wsfulton
            [Java] Make generated support functions in arrays_java.i static so that generated code
            from multiple instances of SWIG can be compiled and linked together - problem reported by
            Evan Krause.

2012-01-24: wsfulton
            Fix crash with bad regex - bug #3474250.

2012-01-24: wsfulton
            [Python] Add Python stepped slicing support to the STL wrappers (std::vector, std::list).
            Assigning to a slice, reading a slice and deleting a slice with steps now work.
            For example:

            %template(vector_i) std::vector<int>

              vi = vector_i(range(10))
              print list(vi)
              vi[1:4:2] = [111, 333]
              print list(vi)
              del vi[3:10:3]
              print list(vi)
              print list(vi[::-1])

            gives (same behaviour as native Python sequences such as list):

              [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
              [0, 111, 2, 333, 4, 5, 6, 7, 8, 9]
              [0, 111, 2, 4, 5, 7, 8]
              [8, 7, 5, 4, 2, 111, 0]

2012-01-23: klickverbot
            [D] Correctly annotate function pointers with C linkage.
            [D] Exception and Error have become blessed names; removed d_exception_name test case.

2012-01-20: wsfulton
            [Python] Fix some indexing bugs in Python STL wrappers when the index is negative, eg:

            %template(vector_i) std::vector<int>

              iv=vector_i([0,1,2,3,4,5])
              iv[-7:]

            now returns [0, 1, 2, 3, 4, 5] instead of [5].

              vv[7:9] = [22,33]

            now returns [0, 1, 2, 3, 4, 5, 22, 33] instead of "index out range" error.

            Also fix some segfaults when replacing ranges, eg when il is a std::list wrapper:

              il[0:2] = [11]

2012-01-17: wsfulton
            [Go] Fix forward class declaration within a class when used as a base.

2012-01-07: wsfulton
            [C#] Add support for %nspace when using directors.

2012-01-06: wsfulton
            [Java] Patch #3452560 from Brant Kyser - add support for %nspace when using directors.

2011-12-21: wsfulton
            The 'directorin' typemap now accepts $1, $2 etc expansions instead of having to use workarounds -
            $1_name, $2_name etc.

2011-12-20: wsfulton
            [Java] Add (char *STRING, size_t LENGTH) director typemaps.

2011-12-20: wsfulton
            [C#, Go, Java, D] Add support for the 'directorargout' typemap.

2011-12-20: wsfulton
            [Ocaml, Octave, PHP, Python, Ruby] Correct special variables in 'directorargout' typemap.
            This change will break any 'directorargout' typemaps you may have written. Please change:
              $result to $1
              $input to $result

            Also fix the named 'directorargout' DIRECTOROUT typemaps for these languages which didn't
            previously compile and add in $1, $2 etc expansion.

            *** POTENTIAL INCOMPATIBILITY  ***

2011-12-10: talby
            [perl5] SWIG_error() now gets decorated with perl source file/line number.
            [perl5] error handling now conforms to public XS api (fixes perl v5.14 issue).

2011-12-10: wsfulton
            [Android/Java] Fix directors to compile on Android.

            Added documentation and examples for Android.

2011-12-08: vadz
	    Bug fix: Handle methods renamed or ignored in the base class correctly in the derived classes
	    (they could be sometimes mysteriously not renamed or ignored there before).

2011-12-03: klickverbot
            [D] Fix exception glue code for newer DMD 2 versions.
            [D] Do not default to 32 bit glue code for DMD anymore.
            [D] Use stdc.config.c_long/c_ulong to represent C long types.

2011-12-01: szager
	    [python] Fixed bug 3447426: memory leak in vector.__getitem__.

2011-11-30: wsfulton
            [R] Remove C++ comments from generated C code.

2011-11-27: olly
	    [Python] Fix some warnings when compiling generated wrappers with
	    certain GCC warning options (Debian bug #650246).

2011-11-28: wsfulton
            Fix #3433541 %typemap(in, numinputs=0) with 10+ arguments.

2011-11-28: olly
	    [Perl] Fix warnings when compiling generated wrappers with certain
	    GCC warning options (Debian bug #436711).

2011-11-28: olly
	    [PHP] Update keyword list to include keywords added in PHP releases up to 5.3.

2011-11-25: wsfulton
            [C#] Provide an easy way to override the default visibility for the proxy class pointer
            constructors and getCPtr() method. The visibility is 'internal' by default and if multiple
            SWIG modules are being used and compiled into different assemblies, then they need to be 
            'public' in order to use the constructor or getCPtr() method from a different assembly.
            Use the following macros to change the visibilities in the proxy and type wrapper class:

              SWIG_CSBODY_PROXY(public, public, SWIGTYPE)
              SWIG_CSBODY_TYPEWRAPPER(public, public, public, SWIGTYPE)

            [Java] Provide an easy way to override the default visibility for the proxy class pointer
            constructors and getCPtr() method. The visibility is 'protected' by default and if multiple
            SWIG modules are being used and compiled into different packages, then they need to be 
            'public' in order to use the constructor or getCPtr() method from a different package.
            Use the following macros to change the visibilities in the proxy and type wrapper class:

              SWIG_JAVABODY_PROXY(public, public, SWIGTYPE)
              SWIG_JAVABODY_TYPEWRAPPER(public, public, public, SWIGTYPE)

            The default for Java has changed from public to protected for the proxy classes. Use the
            SWIG_JAVABODY_PROXY macro above to restore to the previous visibilities.

            *** POTENTIAL INCOMPATIBILITY  ***

2011-11-22: szager
	    [python] Bug 3440044: #ifdef out SWIG_Python_NonDynamicSetAttr if -builtin
	    isn't being used, to avoid unnecessary binary incompatibilities between
	    python installations.

2011-11-17: wsfulton
            Bug fix: Remove root directory from directory search list in Windows.

2011-11-13: wsfulton
            [Ruby] Apply patch #3421876 from Robin Stocker to fix #3416818 - same class name in 
            different namespaces confusion when using multiple modules.

2011-11-11: wsfulton
            Fix pcre-build.sh to work with non-compressed tarballs - problem reported by Adrian Blakely.

2011-11-04: szager
	    [python] Bug 3429388: python unsigned integer handling on 32-bit architectures.

2011-11-03: wsfulton
            Expand special variables in typemap warnings, eg:

              %typemap(in, warning="1000:Test warning for 'in' typemap for $1_type $1_name") int "..."

2011-11-01: wsfulton
            Fix named output typemaps not being used when the symbol uses a qualifier and contains
            a number, eg:

              %typemap(out) double ABC::m1 "..."

2011-10-24: talby
            [perl5] SF bug #3423119 - overload dispatch stack corruption fix.  Better, but more research
            is needed on a stable path for tail calls in XS.

            Also, fix for large long longs in 32 bit perl.

2011-10-13: xavier98
	    [octave] Allow Octave modules to be re-loaded after a "clear all".

2011-09-19: wsfulton
            Fix regression introduced in swig-2.0.1 reported by Teemu Ikonone leading to uncompilable code
            when using typedef and function pointer references, for example: 

              typedef int FN(const int &a, int b);
              void *typedef_call1(FN *& precallback, FN * postcallback);

2011-09-14: wsfulton
            [Lua] Patch #3408012 from Raman Gopalan - add support for embedded Lua (eLua)
            including options for targeting Lua Tiny RAM (LTR).

2011-09-14: wsfulton
            [C#] Add boost_intrusive_ptr.i library contribution from patch #3401571.

2011-09-13: wsfulton
            Add warnings for badly named destructors, eg:

              struct KStruct {
                ~NOT_KStruct() {}
              };

            cpp_extend_destructors.i:92: Warning 521: Illegal destructor name ~NOT_KStruct. Ignored.

2011-09-13: wsfulton
            Fix %extend and destructors for templates. The destructor in %extend was not always wrapped,
            for example:

              %extend FooT {
                ~FooT() { delete $self; } // was not wrapped as expected
              };
              template<class T> class FooT {};
              %template(FooTi) FooT<int>;

2011-09-13: wsfulton
            Fix special variables such as "$decl" and "$fulldecl" in destructors to include the ~ character.

2011-09-10: talby
            [perl5] SF bug #1481958 - Improve range checking for integer types.
            Enhance li_typemaps_runme.pl

2011-09-08: wsfulton
            Fix %extend on typedef classes in a namespace using the typedef name, for example:
            namespace Space {
              %extend CStruct {
                ...
              }
              typedef struct tagCStruct { ... } CStruct;
            }

2011-08-31: xavier98
	    [octave] patches from Karl Wette: improvements to module loading behavior;
	    added example of friend operator to operator example; fixed octave panic/crash in 3.0.5;
	    documentation improvements

2011-08-30: szager
	    [python] Bug 3400486, fix error signalling for built-in constructors.

2011-08-26: wsfulton
            [Go] Fix file/line number display for "gotype" when using typemap debugging options
            -tmsearch and -tmused.

2011-08-26: wsfulton
            [C#, D] Fix %callback which was generating uncompileable code.

2011-08-25: wsfulton
            Fix constructors in named typedef class declarations as reported by Gregory Bronner:

            typedef struct A {
              A(){} // Constructor which was not accepted by SWIG
              B(){} // NOT a constructor --illegal, but was accepted by SWIG
            } B;

            For C code, the fix now results in the use of 'struct A *' instead of just 'B *' in
            the generated code when wrapping members in A, but ultimately this does not matter, as
            they are the same thing.

2011-08-23: wsfulton
            Fix %newobject when used in conjunction with %feature("ref") as reported by Jan Becker. The
            code from the "ref" feature was not always being generated for the function specified by %newobject.
            Documentation for "ref" and "unref" moved from Python to the C++ chapter.

2011-08-22: szager
	    [python] Fixed memory leak with --builtin option (bug 3385089).

2011-08-22: wsfulton
            [Lua] SF patch #3394339 from Torsten Landschoff - new option -nomoduleglobal to disable installing 
            the module table into the global namespace. Require call also returns the module table instead 
            of a string.

2011-08-09: xavier98
            Fix bug 3387394; Octave patches for 3.4.0 compatibility, etc. (from Karl Wette)

2011-08-04: wsfulton
            Add in $symname expansion for director methods.

2011-07-29: olly
	    [PHP] Don't generate "return $r;" in cases where $r hasn't been set.
	    This was basically harmless, except it generated a PHP E_NOTICE if
	    the calling code had enabled them.

2011-07-26: wsfulton
            Fix scoping of forward class declarations nested within a class (for C++). Previously the symbol
            was incorrectly put into the outer namespace, eg

            namespace std {
              template<class Key, class T> struct map {
                class iterator;
              }
            }

            iterator was scoped as std::iterator, but now it is correctly std::map<Key, T>::iterator;

            Also fixed is %template and template parameters that are a typedef when the template contains
            default template parameters, eg:

            namespace Std {
              template<class Key, class T, class C = int> struct Map {
                typedef Key key_type;
                typedef T mapped_type;
              }
            }
            tyepdef double DOUBLE;
            %typemap(MM) Std::Map<int, DOUBLE>;

            All symbols within Map will be resolved correctly, eg key_type and mapped_type no matter if the
            wrapped code uses Std::Map<int, double> or std::Map<int, DOUBLE> or Std::Map<int, double, int>

            Also fixes bug #3378145 - regression introduced in 2.0.4 - %template using traits.

2011-07-20  szager
	    [python] Fix closure for tp_call slot.

2011-07-16: wsfulton
	    [python] Fix director typemap using PyObject *.

2011-07-13: szager
	    [python] SF patch #3365908 - Add all template parameters to map support code in std_map.i

2011-07-13: szager
	    [python] Fix for bug 3324753: %rename member variables with -builtin.

2011-07-01: wsfulton
	    Fix some scope and symbol lookup problems when template default parameters are being
            used with typedef. For example:

            template<typename XX, typename TT = SomeType> struct Foo {
              typedef XX X;
              typedef TT T;
            };
            template<typename TT> struct UsesFoo {
              void x(typename Foo<TT>::T, typename Foo<TT>::X);
            };

            Also fixes use of std::vector<int>::size_type for Python as reported by Aubrey Barnard.

2011-06-23: olly
	    [PHP] Fix director code to work when PHP is built with ZTS enabled,
	    which is the standard configuration on Microsoft Windows.

2011-06-21: mutandiz
	    [allegrocl]
	    - various small tweaks and bug fixes.
	    - Avoid name conflicts between smart pointer wrappers and the wrappers for
	    the actual class.
	    - Fix default typemaps for C bindings, which were incorrectly attempting to
	    call non-existent destructors on user-defined types.
	    - New feature, feature:aclmixins, for adding superclass to the foreign class
	    wrappers.
	    - Improve longlong typemaps.

2011-06-19: wsfulton
	    Fix incorrect typemaps being used for a symbol within a templated type, eg:
            A<int>::value_type would incorrectly use a typemap for type A.

2011-06-18: olly
	    [Tcl] Fix variable declarations in middle of blocks which isn't
	    permitted in C90 (issue probably introduced in 2.0.3 by patch #3224663).
	    Reported by Paul Obermeier in SF#3288586.

2011-06-17: wsfulton
	    [Java] SF #3312505 - slightly easier to wrap char[] or char[ANY] with a Java byte[]
            using arrays_java.i.

2011-06-13: wsfulton
	    [Ruby, Octave] SF #3310528 Autodoc fixes similar to those described below for Python.

2011-06-10: wsfulton
	    [Python] Few subtle bugfixes in autodoc documentation generation,
            - Unnamed argument names fix for autodoc levels > 0.
            - Display of template types fixed for autodoc levels > 1.
            - Fix SF #3310528 - display of typedef structs for autodoc levels > 1.
            - Add missing type for self for autodoc levels 1 and 3.
            - autodoc levels 2 and 3 documented.
            - Minor tweaks to autodoc style to conform with PEP8.

2011-05-30: olly
	    [PHP] Fix handling of directors when -prefix is used.

2011-05-24: olly
	    [PHP] Fix handling of methods of classes with a virtual base class (SF#3124665).