summaryrefslogtreecommitdiff
path: root/CHANGES.current
blob: 9d39ccbe04040e1eda5ff9d699175961c23a9886 (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
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 3.0.9 (in progress)
===========================

2016-05-24: mromberg
            [Python] Patch #612 - Add support for Python's implicit namespace packages.

2016-05-23: wsfulton
            [Ruby] Fix #602 - Error handling regression of opaque pointers introduced
            in swig-3.0.8 when C functions explicitly reset a pointer using 'DATA_PTR(self) = 0'.
            An ObjectPreviouslyDeleted error was incorrectly thrown when the pointer was used
            as a parameter.

2016-05-17: tamuratak
            [Ruby] Patch #651 - Correct overloaded function error message when function is
            using %newobject.

2016-05-17: aurelj
            [Ruby] Patch #582 - add support for docstring option in %module()

2016-05-14: wsfulton
            Fix #434 - Passing classes by value as parameters in director methods did not create
            a copy of the argument leading to invalid memory accesses if the object was used
            after the upcall into the target language. Passing arguments by value shouldn't give
            rise to these sorts of memory problems and so the objects are now copied and ownership
            of their lifetime is controlled by the target language.

2016-05-07: wsfulton
            Fix #611. Fix assertion handling defaultargs when using %extend for a template
            class and the extended methods contain default arguments.

2016-05-05: ejulian
            [Python] Patch #617. Fix operator/ wrappers.

2016-05-02: wsfulton
            Fix #669. Don't issue warning about ignoring base classes when the derived class is
            itself ignored.

2016-04-18: ianlancetaylor
	    [Go] Fix use of goout typemap when calling base method by
	    forcing the "type" attribute to the value we need.

2016-04-17: ianlancetaylor
	    [Go] Fixes for Go 1.6: avoid returning Go pointers from
	    directors that return string values; add a trailing 0 byte
	    when treating Go string as C char*.

2016-04-06: smarchetto
            [Scilab] #552 Make Scilab runtime keep track of pointer types
            Instead of a Scilab pointer which has no type, SWIG Scilab maps a
            pointer to a structure tlist containing the pointer adress and its type.

2016-04-02: ahnolds
            [Python] Apply #598. Fix misleading error message when attempting to read a non-existent
            attribute. The previous cryptic error message:
              AttributeError: type object 'object' has no attribute '__getattr__'
            is now replaced with one mentioning the attribute name, eg:
              AttributeError: 'Foo' object has no attribute 'bar'

2016-04-02: derkuci
            [Python] Patch #610 to fix #607.
            Fix single arguments when using python -builtin -O with %feature("compactdefaultargs")

2016-03-31: wsfulton
            Fixes #594. Fix assertion for some languages when wrapping a C++11 enum class that
            is private in a class.

            Also don't wrap private enums for a few languages that attempted to do so.

2016-03-31: wsfulton
            [Java] unsigned long long marshalling improvements when a negative number
            is passed from Java to C. A cast to signed long long in the C layer will now
            result in the expected value. No change for positive numbers passed to C.
            Fixes #623.

2016-03-22: alexwarg
	    [Lua] #398 Fix lua __getitem + inheritance
            The new handling of classes in Lua (not merging methods into the derived classes)
            breaks for classes that provide a __getitem function. The __getitem function
            prevents method calls to any method defined in a base class. This fix calls
            __getitem only if the member is not found using recursive lookup.

2016-03-18: ptomulik
	    [Python] #563 Stop generating unnecessary _swigconstant helpers.

2016-03-16: richardbeare
	    [R] #636 Add extra std::vector numeric types

2016-03-14: wsfulton
	    [Java] Add std_array.i for C++11 std::array support.

2016-03-12: wsfulton
	    [Java, C#, D] Fix static const char member variables wrappers with %javaconst(1)
            %csconst(1) or %dmanifestconst.
            This fixes the case when an integer is used as the initializer, such as:

              struct W { static const char w = 100; };

	    Fix generated code parsing enum values using char escape sequences
            when these values appear in the Java code (usually when using %javaconst(1))
            such as:

              enum X { x1 = '\n', x2 = '\1' };

            Similarly for static const member char variables such as:

              struct Y { static const char y = '\n'; }

            Likewise for D and %dmanifestconstant. For C# and %csconst(1), char
            values in C# are now hex escaped as C# doesn't support C octal escaping.

2016-03-11: wsfulton
            [Java C#] Add support for treating C++ base classes as Java interfaces
            instead of Java proxy classes. This enable some sort of support for
            multiple inheritance. The implementation is in swiginterface.i and
            provides additional macros (see Java.html for full documentation):

              %interface(CTYPE)
              %interface_impl(CTYPE)
              %interface_custom("PROXY", "INTERFACE", CTYPE)

2016-03-01: wsfulton
            Add rstrip encoder for use in %rename. This is like the strip encoder but
            strips the symbol's suffix instead of the prefix. The example below
            will rename SomeThingCls to SomeThing and AnotherThingCls to AnotherThing:

              %rename("%(rstrip:[Cls])s") "";

              class SomeThingCls {};
              struct AnotherThingCls {};

2016-03-01: olly
	    Fix isfinite() check to work with GCC6.  Fixes
	    https://github.com/swig/swig/issues/615 reported by jplesnik.

2016-02-17: olly
	    [Python] Add missing keywords 'as' and 'with' to pythonkw.swg.

2016-02-07: kwwette
            [Octave] recognise various unary functions
            * Use __float__() for numeric conversions, e.g. when calling double()
            * Map various unary functions, e.g. abs() to __abs__(), see full list
              in section 32.3.10 of manual; only available in Octave 3.8.0 or later

2016-02-07: kwwette
            [Octave] export function swig_octave_prereq() for testing Octave version

2016-02-06: pjohangustavsson
            [C#] Fix duplicate symbol problems when linking the source generated
            from multiple SWIG modules into one shared library for the -namespace
            option. The namespace is now mangled into the global PInvoke function
            names.

            *** POTENTIAL INCOMPATIBILITY ***

2016-01-27: ahnolds
            [Python] Added support for differentiating between Python Bytes
            and Unicode objects using by defining SWIG_PYTHON_STRICT_BYTE_CHAR
            and SWIG_PYTHON_STRICT_UNICODE_WCHAR.

2016-01-27: steeve
            [Go] Ensure structs are properly packed between gc and GCC/clang.

2016-01-25: ahnolds
            [Python] Support the full Python test suite in -classic mode
            * Convert long/unsigned long/long long/unsigned long long to PyInt
              rather than PyLong when possible. Certain python functions like
              len() require a PyInt when operating on old-style classes.
            * Add support for static methods in classic mode, including support
              for pythonappend, pythonprepend, and docstrings.
            * Removing the use of __swig_getmethods__ for static member methods
              since they will always be found by the standard argument lookup
            * Fix a bug where the wrong type of exception was caught when
              checking for new-style class support

2016-01-23: ahnolds
            [Go] Enable support for the Go test-suite on OSX:
            * The linker on OSX requires that all symbols (even weak symbols)
              are defined at link time. Because the function _cgo_topofstack is
              only defined starting in Go version 1.4, we explicitly mark it as
              undefined for older versions of Go on OSX.
            * Avoid writing empty swigargs structs, since empty structs are not
              allowed in extern "C" blocks.

2016-01-12: olly
	    [Javascript] Look for "nodejs" as well as "node", as it's packaged
	    as the former on Debian.

2016-01-12: olly
	    [Javascript] For v8 >= 4.3.0, use V8_MAJOR_VERSION.
	    Fixes https://github.com/swig/swig/issues/561.

2016-01-10: ahnolds
            Improved size_t and ptrdiff_t typemaps to support large values
            on platforms where sizeof(size_t) > sizeof(unsigned long) and
            sizeof(ptrdiff_t) > sizeof(long).