diff options
author | Dave Beazley <dave-swig@dabeaz.com> | 2002-06-17 20:28:59 +0000 |
---|---|---|
committer | Dave Beazley <dave-swig@dabeaz.com> | 2002-06-17 20:28:59 +0000 |
commit | 61932868bbdcfebc135234ceffb037260c30d3da (patch) | |
tree | 62eefae72e66f31f48dd6d94585df5e0b5574b04 /CHANGES | |
parent | 74a64556933c3a3f8c17a5702f7255bf6c8635b5 (diff) | |
download | swig-61932868bbdcfebc135234ceffb037260c30d3da.tar.gz |
update to 1.3.13
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@2979 626c5289-ae23-0410-ae9c-e8d60b6d4f22
Diffstat (limited to 'CHANGES')
-rw-r--r-- | CHANGES | 208 |
1 files changed, 208 insertions, 0 deletions
@@ -14,6 +14,214 @@ http://www.math.uni-magdeburg.de/~mkoeppe/imo-debian Eventually this branch will be merged back to the trunk of the CVS tree (maybe). +Version 1.3.13 (June 17, 2002) +============================== +06/16/2002: beazley + Fixed a bug with __FILE__ expansion in the preprocessor. On Windows, + the backslash (\) is now converted to (\\) in the string literal + used for __FILE__. Reported by Steve Glaser. + +06/14/2002: beazley + Fixed warning message about 'name private in this context'. The + warning is only generated for public methods. Reported by + Scott Michel. + +06/14/2002: beazley + Fixed some problems related to template instantiation + and namespaces. When SWIG expands a template, it does + so with fully resolved types. For example, if you have this: + + template<class T> class foo { }; + typedef double Double; + %template(foo_d) foo<Double>; + + then, it is handled as foo<double> in the typesystem. + This fixes a number of subtle problems with inheritance + and templates. + +06/14/2002: ljohnson (Lyle Johnson) + [Ruby] Added missing bool typemaps for INPUT, OUTPUT and + INOUT in Lib/ruby/typemaps.i. + +05/29/2002: cheetah (William Fulton) + [Java] Fix for a couple of broken pragmas. + +05/29/2002: cheetah (William Fulton) + Fix for unnecessary cast when wrapping global variable where + the type is not parsed by SWIG - Java variables example + failure as reported by Larry Virden. + +06/10/2002: beazley + Modified %template to allow for empty instantiations. + + %template() foo<int,int>; + + This registers foo<int,int> with the type system, but + doesn't wrap it (same as %ignore). This may only be a + temporary measure. SWIG might be able to automatically + instantiate templates in certain cases. + +06/10/2002: beazley + Fixed function prototype problems with Tcl 8.4 + +06/09/2002: beazley + Fixed problem with templates and location of base classes. + This one is a little mind-bending, but here is an example + that illustrates: + + template <class ArgType, class ResType> + struct traits + { + typedef ArgType arg_type; + typedef ResType res_type; + }; + + template <class ArgType, class ResType> + struct Function + { + }; + + template <class AF, class AG> + struct Class : Function<typename traits<AF, AG>::arg_type, + typename traits<AF, AG>::res_type> + { + }; + + %template(traits_dd) traits <double, double>; + %template(Function_dd) Function <double, double>; + %template(Class_dd) Class <double, double>; + + + In this example, the base class of 'Class' is determined from + the Function template, but the types are obtained through typedefs. + Because of this, SWIG could not locate the wrapped base class + (Function<double,double>). Should be fixed in 1.3.13 even + though I can think of a million other things that might + also be broken. + +06/07/2002: beazley + Fixed a problem with conversion operators. If you had an + operator like this, + + operator double() const; + + SWIG was ommitting the "const" qualifier. This affected + %rename and other directives. Reported by Zhong Ren. + +06/07/2002: beazley + Lessened the strictness of abstract class checking. If + you have code like this: + + class Foo { + public: + virtual int method() = 0; + }; + + class Bar : public Foo { + public: + Bar(); + ~Bar(); + }; + + SWIG will go ahead and generate constructor/destructors + for Bar. However, it will also generate a warning message + that "Bar" might be abstract (since method() isn't defined). + In SWIG-1.3.12, SWIG refused to generate a constructor at all. + +06/07/2002: beazley + Change to %template directive. If you specify something like this: + + %template(vi) std::vector<int>; + + It is *exactly* the same as this: + + namespace std { + %template(vi) vector<int>; + } + + SWIG-1.3.12 tried to instantiate the template outside of the namespace + using some trick. However, this was extremely problematic and full + holes. This version is safer. + +06/07/2002: beazley + Fixed bug with scope qualification and templates. For example: + + A<B::C>::DD + + Before, this was separated as scopes A<B, C>, and DD. Fixed now. + +06/06/2002: beazley + Allow the following syntax: + + class A { }; + struct B : A { ... }; + + A base class without a specifier is assumed to be public for a struct. + +06/06/2002: beazley + Fixed syntax error with template constructor initializers. + Reported by Marcelo Matus. + +06/06/2002: beazley + Fixed bug with default template arguments. + Reported by Marcelo Matus. + +06/05/2002: beazley + Fixed subtle problems with %rename directive and template + expansion. + + Code like this should now work: + + %rename(blah) foo<double>::method; + ... + template<class T> class foo { + public: + void method(); + }; + + %template(whatever) foo<double>; + +06/05/2002: beazley + Resolved some tricky issues of multi-pass compilation and + and inheritance. The following situation now generates + an error: + + class Foo : public Bar { + ... + }; + + class Bar { + ... + }; + + The following code generates a warning about incomplete classes. + + class Bar; + class Foo : public Bar { }; + + The following code generates a warning about an undefined class. + + class Foo : public Bar { }; // Bar undefined + + This fixes a failed assertion bug reported by Jason Stewart. + +06/05/2002: ljohnson + [Ruby] Added a warning message for the Ruby module about the lack + of support for multiple inheritance. Only the first base class + listed is used and the others are ignored. (Reported by Craig + Files). + +06/03/2002: beazley + Fixed a bug with struct declarations and typedef. For example: + + typedef struct Foo Foo; + struct Foo { + ... + }; + + A few other subtle struct related typing problems were + also resolved. + Version 1.3.12 (June 2, 2002) ============================= |