diff --git a/SWIG/CHANGES.current b/SWIG/CHANGES.current index 1b83903b7..faaf022b8 100644 --- a/SWIG/CHANGES.current +++ b/SWIG/CHANGES.current @@ -1,576 +1,7 @@ -Version 1.3.18 (In progress) +Version 1.3.19 (In progress) ============================ -03/21/2003: beazley - Fixed two problems with the %extend directive, overloading, and - template expansion. See the 'template_extend_overload' and - 'template_extend_overload_2' tests in Examples/test-suite for - details. - -03/20/2003: cheetah (William Fulton) - [C#] Added some typemaps as suggested by Andreas Schoerk for handling - parameters that are passed as pointers or by reference. These have - been put in typemaps.i. - -03/20/2003: beazley - Fixed a C++ scoping bug related to code like this: - - class Foo { - public: - int Foo::bar(); - }; - - Previously, SWIG just tossed out the Foo::bar() declaration. Now, - the declaration is wrapped provided that the prefix is exactly the - same as the current scope (including any enclosing namespaces). - Reported by Bruce Lowery. - -03/20/2003: beazley - Incorporated [ 696516 ] Enabling exception processing for data member access. - In some compilers, attribute access can generate exceptions. However, - SWIG ordinarily assumes that no exceptions will be raised. To disable this, - use the %feature("allowexcept"). For example: - - %feature("allowexcept") Foo::x; - ... - class Foo { - public: - int x; /* Exception handling enabled */ - ... - }; - - Patch contributed by Yakov Markovitch. - -03/20/2003: beazley - Incorporated Patch. [ 701860 ] Improve Performance (python proxies). - Gives a performance boost to proxy class code and the management of the - .this and .thisown attributes. Contributed by Mike Romberg. - -03/19/2003: cheetah (William Fulton) - [C# and Java] Added missing vararg support. - -03/18/2003: mrose (Mark Rose) - Removed code related to tagging individual methods for directors. - The concept of having directors for some but not all virtual methods - of a class is deeply flawed. The %feature("nodirector") tag is also - gone. - - Directors are off by default. To enable them for a class, issue - %feature("director") classname; which will create director methods - for every virtual method in the hierarchy of the class. - -03/17/2003: beazley - Fixed a subtle problem with passing arguments of type function. For - example: - - int foo(int x(int, int)); - - or - - typedef int binop_t(int, int); - int foo(binop_t x); - - In old versions, this would produce code that wouldn't compile. Now, - SWIG merely adds an extra pointer, making these declarations the same - as: - - int foo(int (*x)(int, int)); - - typedef int binop_t(int, int); - int foo(binop_t *x); - - Reported by Garth Bushell. - -03/17/2003: mrose (Mark Rose) - Fixed the return statement for director base class calls that have no - return value. - -03/15/2003: beazley - Fixed a problem with const smart-pointer wrapping. For example: - - class Foo { - public: - int x; - void bar() const; - void spam(); - }; - - class Blah { - ... - const Foo *operator->(); - ... - }; - - In this case, only "x" and "bar" are visible from Blah (since application - of spam violates constness). Moreover, access to "x" is read-only. - -03/15/2003: mrose (Mark Rose) - Cleaned up two signed versus unsigned comparisons in python/std_vector.i. - -03/15/2003: cheetah (William Fulton) - [C#] Global variables are wrapped using properties instead of get and set methods. - Member variable wrapping bug fixes, for example wrapping pointers work now. - Typemaps are used for all variable wrapping to generate the property code. - -03/13/2003: mrose (Mark Rose) - Fixed a bug in the virtual method unrolling for directors. - The order of unrolling is now from base to derived, to ensure - that the most derived implementation of a director method is - found. - - Director methods for pure virtual methods now throw - DIRECTOR_PURE_VIRTUAL_EXCEPTION if _up is set. - -03/12/2003: cheetah (William Fulton) - [C#] Polymorphism fix: virtual functions now use the appropriate - keyword in the C# proxy class, virtual or override. - Some 'using System;' statement fixes needed by the Mono compiler. - -03/11/2003: beazley - Fixed subtle bug in the application of SwigValueWrapper<> to - template classes with default constructors. Reported by - Bruce Lowery. - -03/11/2003: beazley - The $descriptor(type) variable is now expanded in code supplied to - %extend. This is useful for certain kinds of advanced wrapping - (especially container classes). - -03/11/2003: luigi - Support for std::map. - (a) Integration with scripting language (a la std::vector) for - Python, Ruby, MzScheme, and Guile; - (b) Simple wrapper for other languages - -03/10/2003: beazley - Fixed problem with escape sequences in string and character constants. SWIG - wasn't parsing certain octal codes correctly. - -03/07/2003: beazley - Fixed a variety of subtle preprocessor problems reported by - Sebastien Recio. - - (a) Empty preprocessor values no longer generate "bad constant - value" errors. For example: - - #define FOO - #define FOO BAR - - (b) Macro names can now span multiple lines (technically valid, - although questionable practice). For example: - - #define A_LONG_MACRO_\ - NAME 42 - - (c) Whitespace is no longer required before certain macro values. - For example: - - #define FOO"Hello" - #define BAR\ - "Hello" - -03/07/2003: ljohnson (Lyle Johnson) - [Ruby] Added missing long long and unsigned long long typemaps - in the Lib/ruby/typemaps.i library file. - -03/07/2003: mrose (Mark Rose) - Added Examples/python/callback to demostrate how directors can - be used to implement callbacks in Python - Added Examples/python/extend to demonstrate virtual method - calls from C++ to Python (really the same as the callback - example, just a different context). - Added four tests for very basic director functionality. These - have runtime tests under python. - The Python module now emits #define SWIG_DIRECTORS near the - top of the output file if directors are enabled. This is useful - for disabling parts of tests in target languages that don't - support directors. - -03/06/2003: mrose (Mark Rose) - Added a section to Doc/Manual/Python.html on cross language - polymorphism (directors). - -03/06/2003: mrose (Mark Rose) - The short-lived "-fdirectors" command line option has been - removed. To enable directors, instead use the extended %module - directive as follows: - - %module(directors="1") modulename - -03/06/2003: cheetah (William Fulton) - The long long typemaps have been rewritten so that they can be more - easily used with non ISO compilers, like Visual C++. For example - if you are wrapping the Windows 64 bit type __int64 the long long - typemaps can be used with %apply: - - %apply long long { __int64 }; - __int64 value1(__int64 x); - - __int64 will now appear in the generated code instead of long long. - -03/06/2003: beazley - *** DEVELOPER CHANGE *** - Swig module mutation has been changed slightly. When a language - class method wants to save node attributes, it now uses one of the - following functions: - - Swig_require() - Swig_save() - - The first argument to these functions is a namespace in which - saved attributes are placed. For example,this code - - Node *n; - Swig_save("cDeclaration",n,"type","parms","name",NIL); - - saves the attributes as "cDeclaration:type", "cDeclaration:parms", - and so forth. If necessary, a language module can refer to - old values by using this special namespace qualifier. - - In addition to this, a special attribute "view" contains the name - of the last namespace used to save attributes. In the above - example, "view" would have the value "cDeclaration". The value - of "cDeclaration:view" would have the previous view and so forth. - - Swig_restore(n) restores a node to the state before the last - Swig_require() or Swig_save() call. - - Note: This change makes it easier for language modules to refer - to old values of attributes. - - -03/06/2003: mrose (Mark Rose) - Merged the cross-language polymorphism patch. When enabled, C++ - "proxy" classes (called directors) are generated for each specified - C++ class. Directors pass method calls from C++ to Python, similar - to the way the usual proxy (shadow) classes pass method calls from - Python to C++. Together, these two types of proxies allow C++ - classes that are extended in Python to behave just like ordinary - C++ classes and be used in C++ like native objects. - - This feature is still very experimental and is disabled by default. - To enable director support, specify '-fdirectors' on the SWIG command - line or in the SWIG_FEATURES environment variable. In the interface - file, add %feature("director") to generate directors for all classes - that have virtual methods. - - See http://stm.lbl.gov/~tm2/swig/ProxyDoc.html for more details. - - -03/03/2003: beazley - Fixed a small glitch in typemap local variable replacement. If you had - a typemap like this: - - %typemap(in) type ($1_type temp) { - ... - temp = ...; - ... - } - - and no occurrence of "$1_type" appeared in the body, then the local - variable type wouldn't be substituted. - -03/03/2003: cheetah (William Fulton) - [C#] New version of the CSharp module which is typemap based. - It also uses ECMA C# and no longer uses Microsoft Visual C++.NET - glue. This means that it will work on non-Windows platforms. - Contributed by Neil Cawse. - -02/27/2003: beazley - Fixed [ 653548 ] error parsing casting operator definition. - SWIG now ignores casting operators declared outside of a class. - For example: - - inline A::operator char *() { ... } - - Bug reported by Martin Casado. - -02/27/2003: beazley - Added support for anonymous bit-fields. For example: - - struct Foo { - int x : 4; - int : 4; - int y : 8; - }; - - Anonymous bit-fields are ignored by SWIG. Problem - reported by Franz Höpfinger. - -02/26/2003: cheetah (William Fulton) - [Java] Better typemaps in the Examples/java/typemap example and also - fixes subtle bug when using the StringBuffer typemaps more than once. - -02/26/2003: beazley - Fixed [ 642112 ] Constants char bug. - -02/26/2003: beazley - Fixed [ 675337 ] Partial template specialization not entirely working. - There was a subtle problem related to the naming and ordering of - template partial specialization arguments. Matching worked okay, - the resulting templates weren't expanded correctly. - -02/25/2003: beazley - Fixed problem with parsing (and generating code) for - references to arrays. For example: - - int foo(int (&x)[10]); - -02/25/2003: beazley - Fixed [ 635347 ] Compilation warning from libpy.c. - Reported by Daniel L. Rall. - -02/25/2003: beazley - Fixed a subtle problem with virtual method implementation - checking and typedef. - - typedef int *intptr; - - struct A { - virtual int *foo() = 0; - }; - struct B : public A { - virtual intptr foo() { }; - }; - - SWIG was treating these declarations as different even though - they are the same (via typedef). - -02/25/2003: ljohnson (Lyle Johnson) - [Ruby] Added range checking for the NUM2USHRT macro, per [ 675353 ]. - -02/24/2003: beazley - Fixed a subtle problem with the code that determined if a class is abstract - and can be instantiated. If you had classes like this: - - struct A { - virtual int foo(int) = 0; - }; - struct B : virtual A { - virtual int foo(int); - }; - - struct C : virtual A { - }; - - /* Note order of base classes */ - struct D : B, C { }; /* Ok */ - struct E : C, B { }; /* Broken */ - - then SWIG determined that it could instantiate D(), but not E(). - This inconsistency arose from the depth-first search of the - inheritance hierarchy to locate the implementations of virtual - methods. This problem should now be fixed---SWIG will attempt - to locate any valid implementation of a virtual method by - traversing over the entire hierarchy. - -02/22/2003: cheetah (William Fulton) - [Java] Fix for using enum typemaps. The Java final static variable type - can be set using the jstype typemap, enabling enums to be mapped to - something other than int. Bug reported by Heiner Petith. - -02/21/2003: songyanf (Tiger) - Added CSharp (C#) module prototype - i.e. csharp.cxx & csharp.h at Source/Modules/. - They are for test usage only now and need improvement. - The interface also need to be modified. - - *** NEW FEATURE *** - -02/20/2003: songyanf (Tiger) - Fixed problem with typedef with -fvirtual. - Similar as beazley's modification today. - -02/20/2003: beazley - Added support for gcc-style variadic preprocessor macros. - Patch [ 623258 ] GCC-style vararg macro support. - Contributed by Joe Mason. - -02/20/2003: beazley - Fixed [ 605162 ] Typemap local variables. - Reported by Lyle Johnson. - -02/20/2003: beazley - Fixed problem with abstract classes and typedef. For example: - - class Foo { - public: - virtual void foo(int x) = 0; - }; - - typedef int Integer; - class Bar : public Foo { - public: - virtual void foo(Integer x); - }; - - SWIG was getting confused about the latter method---making Bar - abstract. Reported by Marcelo Matus. - -02/19/2003: cheetah (William Fulton) - [Java] %javaconst(flag) can also be used on enums as well as constants. - This feature enables true Java compiler constants so that they can be - used in Java switch statements. Thanks to Heiner Petith for patches. - -02/19/2003: songyanf (Tiger) - Modified -fcompact feature to deal with PP lines - -02/18/2003: beazley - Fixed [ 689040 ] Missing return value in std_vector.i. - Reported by Robert H. de Vries. - -02/18/2003: beazley - Fixed a few evil scoping problems with templates, namespaces, and the - %extend directive. Problem reported by Luigi Ballabio. - - -02/18/2003: cheetah (William Fulton) - [Ruby] Improved support for Visual C++ and other native Windows compilers. - It is no longer necessary to specify "/EXPORT:Init_", where is the - swig module name when linking using these native Windows compilers. - -02/15/2003: songyanf (Tiger) - Added -fvirtual option. - Reduce the lines and size of the wrapper file - by omitting redifined virtual function in children classes. - - Modified -compact option to -fcompact option - - Added -small option. - -small = -fvirtual -fcompact - And it can be extended by future feature options, - which are used to reduce wrapper file szie. - - Added SWIG_FEATURES environment variable check. - To dynamically set the feature options such as -fcompact & -fvirtual - *** NEW FEATURE *** - -02/13/2003: lenz - Updated Doc/Manual/Perl5.html to talk about C++ compile problems - configure.in now checks for PERL5_CCFLAGS - Runtime/Makefile.in and Example/Makefile.in now use PERL5_CCFLAGS - Added Lib/perl5/noembed.h which contains all the known macro conflicts - -02/12/2003: beazley - Fixed [ 685410 ] C++ Explicit template instantiation causes SWIG to exit. - Fixes a syntax error with declarations similar to this: - - template class std::vector; - - SWIG now ignores the instantiation and generates a warning message. - We might do more later. Reported by Thomas Williamson. - -02/11/2003: cheetah (William Fulton) - Rewrote bool typemaps to remove performance warning for compiling generated code - under Visual C++. - -02/11/2003: cheetah (William Fulton) - Fix for wrapping reference variables (const non-primitive and all non-const types) - for example: - int& i; - Class& c; - const Class& c; - -02/11/2003: beazley - Fixed more very subtle preprocessor corner cases related to recursive - macro expansion. For example: - - #define cat(x,y) x ## y - - cat(cat(1,2),3) // Produces: cat(1,2)3 - - #define xcat(x,y) cat(x,y) - - xcat(xcat(1,2),3) // Produces 123 - - See K&R, 2nd Ed. p. 231. - -02/10/2003: cheetah (William Fulton) - Fixed [ 683882 ] - patch submitted by F. Postma for SWIG to compile on HP-UX. - -02/10/2003: beazley - Fixed subtle preprocessor argument expansion bug. Reported by Marcelo Matus. - -02/10/2003: songyanf - Added -compact option. - Reduce the lines and size of the wrapper file - by omitting comments and combining short lines. - *** NEW FEATURE *** - -02/07/2003: beazley - Fixed [ 651355 ] Syntax error with cstring.i - Reported by Omri Barel. - -02/07/2003: beazley - Fixed [ 663632 ] incompatibility with standard cpp. - This is a refinement that fixes this problem: - - // Some macro with an argument - #define FOO(x) x - - int FOO; /* Not a macro---no arguments */ - -02/05/2003: beazley - Fixed [ 675491 ] parse error with global namespace qualification. - Submitted by Jeremy Yallop. - -02/04/2003: beazley - Fixed bug in varargs processing introduced by the numinputs typemap parameter. - -01/08/2003: ttn - [xml] Fix string-replacement ordering buglet. - Thanks to Gary Herron. - -12/23/2002: cheetah (William Fulton) - Further build changes: - - The SWIG executable is now built using a single Makefile. - - This makefile is generated by Automake (Source/Makefile.am). - - Dependency tracking and tags support are in this makefile. - - Automake 1.7.2 and Autoconf 2.54 minimum versions are needed to build SWIG from CVS. - - Running ./autogen.sh now installs Autoconf/Automake support files into - Tools/config and these files are no longer stored in CVS. - - Bug fixes in 'make install' for systems using .exe executable extension and - ./configure --with-release-suffix=whatever - -12/16/2002: cheetah (William Fulton) - More build changes: - - Autoconf's AC_CANONICAL_HOST replaces proprietary approach for detecting build host. - - Autoconf support files moved to Tools/config. - -12/16/2002: cheetah (William Fulton) - Modifications to run on MacOS, submitted by Bernard Desgraupes. - Mainly ensuring generated files are output in the appropriate directory for - some modules. - -12/11/2002: cheetah (William Fulton) - Various build modifications and bug fixes: - - Simplification of version string. Use autoconf's PACKAGE_VERSION instead. - - Build time removed from SWIG version. - - Using standard autoconf config header generation. - - Updated old autoconf macros as reported by autoupdate. - - Removed $prefix in autoconf from search paths as autoconf won't expand them. - - Subtle bug fix where 'make prefix=/somewhere; make clean; make prefix=/somwhere/else' - produced an executable using the incorrect library directories. - - Added -ldflags commandline option for MzScheme, Ocaml, Pike and PHP. - - Fixed reporting of compiler used when using -version commandline option. - - SWIG web address added to -version commandline option. - -12/11/2002: beazley - Minor fix to Tcl dynamic cast typemaps. Reported by - Kristopher Blom. - -12/10/2002: beazley - Fixed subtle template argument replace bug. Reported by - Chris Flatley. - -12/10/2002: beazley - Reverted CHANGES 09/03/2002, preprocessor argument evaluation. Arguments - are not evaluated during collection, K&R, p. 230. - -12/06/2002: beazley - Fixed [ 649022 ] Compilation problems with KAI/KCC - -12/02/2002: beazley - SWIG 'rel-1-3' CVS branch merged back into the main branch. +03/23/2003: beazley + Released 1.3.18.