git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@8890 626c5289-ae23-0410-ae9c-e8d60b6d4f22
146 lines
5.3 KiB
Text
146 lines
5.3 KiB
Text
Version 1.3.29 (In progress)
|
|
============================
|
|
|
|
02/24/2006: mgossage
|
|
|
|
Small update Lua documents on troubleshooting problems
|
|
|
|
02/22/2006: mmatus
|
|
|
|
Fix all the errors reported for 1.3.28.
|
|
- fix bug #1158178
|
|
- fix bug #1060789
|
|
- fix bug #1263457
|
|
- fix 'const char*&' typemap in the UTL, reported by Geoff Hutchison
|
|
- fixes for python 2.1 and the runtime library
|
|
- fix copyctor + template bug #1432125
|
|
- fix [ 1432152 ] %rename friend operators in namespace
|
|
- fix gcc warning reported by R. Bernstein
|
|
- avoid assert when finding a recursive scope inheritance,
|
|
emit a warning in the worst case, reported by Nitro
|
|
- fix premature object deletion reported by Paul in tcl3d
|
|
- fix warning reported by Nitro in VC7
|
|
- more fixes for old Solaris compiler
|
|
- fix for python 2.3 and gc_refs issue reported by Luigi
|
|
- fix fastproxy for methods using kwargs
|
|
- fix overload + protected member issue reported by Colin McDonald
|
|
- fix seterrormsg as reported by Colin McDonald
|
|
- fix directors, now the test-suite runs again using -directors
|
|
- fix for friend operator and Visual studio and bug 1432152
|
|
- fix bug #1435090
|
|
- fix using + %extend as reported by William
|
|
- fix bug #1094964
|
|
- fix for Py_NotImplemented as reported by Olly and Amaury
|
|
- fix nested namespace issue reported by Charlie
|
|
|
|
and also:
|
|
|
|
- allow director protected members by default
|
|
- delete extra new lines in swigmacros[UTL]
|
|
- cosmetic for generated python code
|
|
- add the factory.i library for UTL
|
|
- add swigregister proxy method and move __repr__ to a
|
|
single global module [python]
|
|
|
|
02/22/2006: mmatus
|
|
|
|
When using directors, now swig will emit all the virtual
|
|
protected methods by default.
|
|
|
|
In previous releases, you needed to use the 'dirprot'
|
|
option to acheive the same.
|
|
|
|
If you want, you can disable the new default behaviour,
|
|
use the 'nodirprot' option:
|
|
|
|
swig -nodirprot ...
|
|
|
|
and/or the %nodirector feature for specific methods, i.e.:
|
|
|
|
%nodirector Foo::bar;
|
|
|
|
struct Foo {
|
|
virtual ~Foo();
|
|
|
|
protected:
|
|
virtual void bar();
|
|
};
|
|
|
|
|
|
As before, pure abstract protected members are allways
|
|
emitted, independent of the 'dirprot/nodirprot' options.
|
|
|
|
|
|
02/22/2006: mmatus
|
|
Add the factory.i library for languages using the UTL (python,tcl,ruby,perl).
|
|
|
|
factory.i implements a more natural wrap for factory methods.
|
|
|
|
For example, if you have:
|
|
|
|
---- geometry.h --------
|
|
struct Geometry {
|
|
enum GeomType{
|
|
POINT,
|
|
CIRCLE
|
|
};
|
|
|
|
virtual ~Geometry() {}
|
|
virtual int draw() = 0;
|
|
|
|
//
|
|
// Factory method for all the Geometry objects
|
|
//
|
|
static Geometry *create(GeomType i);
|
|
};
|
|
|
|
struct Point : Geometry {
|
|
int draw() { return 1; }
|
|
double width() { return 1.0; }
|
|
};
|
|
|
|
struct Circle : Geometry {
|
|
int draw() { return 2; }
|
|
double radius() { return 1.5; }
|
|
};
|
|
|
|
//
|
|
// Factory method for all the Geometry objects
|
|
//
|
|
Geometry *Geometry::create(GeomType type) {
|
|
switch (type) {
|
|
case POINT: return new Point();
|
|
case CIRCLE: return new Circle();
|
|
default: return 0;
|
|
}
|
|
}
|
|
---- geometry.h --------
|
|
|
|
|
|
You can use the %factory with the Geometry::create method as follows:
|
|
|
|
%newobject Geometry::create;
|
|
%factory(Geometry *Geometry::create, Point, Circle);
|
|
%include "geometry.h"
|
|
|
|
and Geometry::create will return a 'Point' or 'Circle' instance
|
|
instead of the plain 'Geometry' type. For example, in python:
|
|
|
|
circle = Geometry.create(Geometry.CIRCLE)
|
|
r = circle.radius()
|
|
|
|
where 'circle' now is a Circle proxy instance.
|
|
|
|
|
|
02/17/2006: mkoeppe
|
|
[MzScheme] Typemaps for all integral types now accept the full range of integral
|
|
values, and they signal an error when a value outside the valid range is passed.
|
|
[Guile] Typemaps for all integral types now signal an error when a value outside
|
|
the valid range is passed.
|
|
|
|
02/13/2006: mgossage
|
|
[Documents] updated the extending documents to give a skeleton swigging code
|
|
with a few typemaps.
|
|
[Lua] added an extra typemap for void* [in], so a function which requires a void*
|
|
can take any kind of pointer
|
|
|