From 212837f52aa8caa75e362c479f67e0919cc3bcc1 Mon Sep 17 00:00:00 2001 From: William S Fulton Date: Wed, 15 Dec 2004 00:13:07 +0000 Subject: [PATCH] bumped version git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@6886 626c5289-ae23-0410-ae9c-e8d60b6d4f22 --- CHANGES | 318 +++++++++++++++++++++++++++++++++++++++ CHANGES.current | 318 +-------------------------------------- Doc/Manual/Sections.html | 2 +- configure.in | 2 +- 4 files changed, 322 insertions(+), 318 deletions(-) diff --git a/CHANGES b/CHANGES index 0765ef5b9..29f48a430 100644 --- a/CHANGES +++ b/CHANGES @@ -2,6 +2,324 @@ SWIG (Simplified Wrapper and Interface Generator) See CHANGES.current for current version. +Version 1.3.24 (December 14, 2004) +================================== + +12/12/2004: wuzzeb (John Lenz) + [Chicken] Fix a bunch of bugs relating to -proxy support + + non-class variables now export properly using -proxy + + static member functions now export properly using -proxy + + member class variables now export properly using -proxy + + added a -nounit argument, which does not export the (declare (unit ...)) + + correctly install swigclosprefix.scm + + constants (enums, defines) now correcly export when using -proxy + +12/11/2004: wsfulton + configure fix for when more than one version of jni_md.h is found + in the Java include directory (was generating lots of sed error + messages). + +12/08/2004: wsfulton + [Java] Fixes to arrays_java.i so that one can apply the array + typemaps to functions taking pointers as input, eg + + %include "arrays_java.i" + %apply int[] {int*}; + void foo(int *a); + +12/05/2004: wsfulton + [Java] Director mods contributed by Scott Michel. New typemaps + directordisconnect and directordisconnect_derived for the + swigDirectorDisconnect() method. Also fix to get the javapackage + typemap working again. + +12/05/2004: mmatus + - Finishing the fixes for templates + default template + args + specializations. + + - [Python] Now we use the new templates + default template + args in the std/STL library. That means the internal + swig files are getting uglier since we now support the + original declarations: + + template > + class vector { + .... + }; + + template, + class _Alloc = std::allocator > > + class map { + .... + }; + + and the user can use the %template directive as + + %template() std::vector; + %template() std::vector >; + %template() std::vector >; + + Now we are closer to the cleaning/rewriting of the + python std/STL support, such that we recover support for + MSVC++ 6.0, and we can add support for other languages + too. + + +12/02/2004: wsfulton + [Java] Fix for directors when wrapping methods using a member enum + and typesafe/proper enums enabled. + +12/01/2004: mmatus + - Fix typemaps to work with templates and default template + args, ie + + template + struct Foo { + }; + + %typemap(in) Foo *{...} + %typemap(out) Foo *{...} + + Foo * foo( Foo *f1, Foo *f2); + + now 'f1', 'f2' and the return value resolve the provided + typemaps properly. + + This is highly needed for proper STL support, see new + std_basic_string.i, std_sstream.i, etc. + + - Added std_sstream.i, and fix std_basic_string.i to use + the new typemaps + template def. arg mechanism. Also, + added the needed std_alloc.i. Now, all the containers + can be modified to support std::allocator, like in: + + template > + class vector { + public: + .... + }; + + This change is only completed by now for basic_string. + + - Fix for smart pointers + members + extensions: + + %extend Foo { + int extension(int i, int j) { return i; } + int extension() { return 1; } + } + + %inline %{ + + class Foo { + public: + int y; + static const int z; + }; + + class Bar { + Foo *f; + public: + Bar(Foo *f) : f(f) { } + Foo *operator->() { + return f; + } + }; + + now you can + + f = Foo() + f.y = 3 + a = f.z + f->extension() + + b = Bar(f) + b.y = 3 + a = b.z + b->extension() + + - Other small errors fixes, mostly python. + +11/25/2004: wsfulton + [Java] Numerous director bug fixes so that the correct java types + and canonicalized types in the JNI code are emitted. Use of the + $javaclassname special variables in the director typemaps now + consistent with the non-director typemaps. The types used for + typemap lookups are also corrected in a few places. If you + previously had your own director typemaps, ensure they are using the + correct C++ type. + + *** POTENTIAL INCOMPATIBILITY FOR JAVA DIRECTORS *** + +11/25/2004: wsfulton + const enum SWIGTYPE & typemaps added. These wrap const enum references + as if they were passed by value. Const enum references thus work the + same as const reference primitive types such as const double &, + const int & etc. Typemaps added for Java, C#, Ruby, Tcl, Perl and Pike. + +11/25/2004: wsfulton + [Java, C#] New special variable: $*javaclassname, similar to $javaclassname + and $&javaclassname. The new one removes a pointer from the C type before + obtaining the Java class name. One or more of $javaclassname, + $&javaclassname or $*javaclassname may now appear in a typemap. Likewise for + C# using csclassname instead of javaclassname. + +11/25/2004: wsfulton + The last vestiges of enums being handled as integers removed from the + internals. The wrapper methods use the enum type rather than an int + now. The net result is added type safety for enums when handled as + pointers, references etc. Previously in situations such as a method + taking a pointer to an enum, a pointer to an int or a pointer to an + enum of some other type could inadvertantly be passed to the method. + This is now fixed as the descriptor for an enum is no longer based on + an int, but the enum type instead. Anonymous enums are still handled + as integers. + + The consequence for scripting language users in correct usage of enums + should not be noticeable. There is no change for any of the languages + where enums are passed by value - most of the scripting languages will + still accept an integer for an enum value and the strongly typed + languages still use either typesafe enums, integers or proper enums + depending on what the user configures. For Java and C# users a change + in the typewrapper class name has occurred (for enum pointers, + references etc). For example: + + enum Numbers { one=1, two }; + enum Numbers* number(); + + In Java and C# this must now be coded as + + SWIGTYPE_p_Numbers n = modulename.number(); + + rather than + + SWIGTYPE_p_int n = modulename.number(); + + *** POTENTIAL INCOMPATIBILITY *** + +11/21/2004: wsfulton/mmatus + Added missing deprecated warning for %name and remove remaining %name + usage in the SWIG libraries. + +11/21/04: mmatus + - [Python] Adding the PySwigObject to be used for carrying + the instance C/C++ pointers. This is used instead of + string and PyCObjects. + + The new PySwigObject is even safer than PyCObject, and + more friendly than plain strings: + + now you can do + + print a.this + + + print str(a.this) + _00691608_p_A + + print long(a.this) + 135686400 + + print "%s 0x%x" % (a.this, a.this) + _00691608_p_A 0x8166900 + + the last one is very useful when debugging the C/C++ + side, since is the pointer value you will usually get + from the debugger. + + Also, if you have some old code that uses the string + representation "_00691608_p_A", you can use it now again + using 'str(ptr)', or by calling 'str = PyObject_Str(obj)' + in the C/C++ side. + + This change is mainly for nostalgic swig users that miss + the string representation, but also allows to say again + + if a.this == b.this: + return "a is b" + + and well, since the change were really simple, maybe in + the future we will be able to do + + next = a.this + 1 + + or add native python iteration over native C/C++ arrays, + ie, no need to create/copy new tuples when returning and + array or vector. + + Also, a PySwigPacked object was adding to carry a member + method pointer, but this is probably a temporal solution + until a more general object for methods is added. + + Be aware that to simplify maintaining and compatibility + with other tools, the old string and PyCObjects + representation could disappear very soon, and the + SWIG_COBJECTS_TYPES or SWIG_NO_OBJECT_TYPES macros will + have no effect at compilation time. Still, the three + mechanisms are present in the code just for testing, + debugging and comparison purposes. + +11/21/04: mmatus + + - [Python] Adding back support for using the swig runtime code + inside the user code. We just allow the user to include + the minimal code needed to implement the runtime + mechanism statically, just as in done in the swig + modules. + + To use the swig runtime code, for example with python, + the user needs include the following: + + #include // or using your favorite language + #include + #include // or using your favorite language + #include + + the files swigrun.swg, pyrun.swg and runtime.swg can + be checked out by using swig -co, or they can simply + be found by adding the swig lib directory to the + compiler include directory list, for example + + SWIGLIB=`swig -swiglib` + c++ -I${SWIGLIB} .. + + of better, using the CPPFLAGS, but that depends on your + environment. + + This change can be ported to the other languages too, + you just need to isolate the needed runtime code in + a single file like 'pyrun.swg', and provide the + SWIG_Runtime_GetTypeList() method. Look at the + Lib/python/pyrun.swg file and the Examples/python/swigrun + example. + +11/15/04: mmatus + - Fix mixed_types.i + gcc-3.4, ie, arrays + references + + typedefs + + - Fix multidim arrays + typedefs,ie + + typedef char character[1]; + typedef character word[64]; + + - Process protected/private bases in the same way before + we process protected/private members, ie, we check + for constructors, operator new, virtual members, etc. + + - Fix Ruby/Java to work (or ignore) multi-inheritance + + directors. Allow other languages to define if it is + supported or not. + + - Now you can run + + SWIG_FEATURES="-directors -dirprot" + make check-ruby-test-suite + make check-python-test-suite + make check-java-test-suite + make check-ocaml-test-suite + + and you will get only 'real' errors. ruby and python + compile with no errors, java shows some problems. + Version 1.3.23 (November 11, 2004) ================================= diff --git a/CHANGES.current b/CHANGES.current index f1e8ec6e4..bb45b1fe0 100644 --- a/CHANGES.current +++ b/CHANGES.current @@ -1,317 +1,3 @@ -Version 1.3.24 (December 14, 2004) -================================== +Version 1.3.25 (In progress) +============================ -12/12/2004: wuzzeb (John Lenz) - [Chicken] Fix a bunch of bugs relating to -proxy support - + non-class variables now export properly using -proxy - + static member functions now export properly using -proxy - + member class variables now export properly using -proxy - + added a -nounit argument, which does not export the (declare (unit ...)) - + correctly install swigclosprefix.scm - + constants (enums, defines) now correcly export when using -proxy - -12/11/2004: wsfulton - configure fix for when more than one version of jni_md.h is found - in the Java include directory (was generating lots of sed error - messages). - -12/08/2004: wsfulton - [Java] Fixes to arrays_java.i so that one can apply the array - typemaps to functions taking pointers as input, eg - - %include "arrays_java.i" - %apply int[] {int*}; - void foo(int *a); - -12/05/2004: wsfulton - [Java] Director mods contributed by Scott Michel. New typemaps - directordisconnect and directordisconnect_derived for the - swigDirectorDisconnect() method. Also fix to get the javapackage - typemap working again. - -12/05/2004: mmatus - - Finishing the fixes for templates + default template - args + specializations. - - - [Python] Now we use the new templates + default template - args in the std/STL library. That means the internal - swig files are getting uglier since we now support the - original declarations: - - template > - class vector { - .... - }; - - template, - class _Alloc = std::allocator > > - class map { - .... - }; - - and the user can use the %template directive as - - %template() std::vector; - %template() std::vector >; - %template() std::vector >; - - Now we are closer to the cleaning/rewriting of the - python std/STL support, such that we recover support for - MSVC++ 6.0, and we can add support for other languages - too. - - -12/02/2004: wsfulton - [Java] Fix for directors when wrapping methods using a member enum - and typesafe/proper enums enabled. - -12/01/2004: mmatus - - Fix typemaps to work with templates and default template - args, ie - - template - struct Foo { - }; - - %typemap(in) Foo *{...} - %typemap(out) Foo *{...} - - Foo * foo( Foo *f1, Foo *f2); - - now 'f1', 'f2' and the return value resolve the provided - typemaps properly. - - This is highly needed for proper STL support, see new - std_basic_string.i, std_sstream.i, etc. - - - Added std_sstream.i, and fix std_basic_string.i to use - the new typemaps + template def. arg mechanism. Also, - added the needed std_alloc.i. Now, all the containers - can be modified to support std::allocator, like in: - - template > - class vector { - public: - .... - }; - - This change is only completed by now for basic_string. - - - Fix for smart pointers + members + extensions: - - %extend Foo { - int extension(int i, int j) { return i; } - int extension() { return 1; } - } - - %inline %{ - - class Foo { - public: - int y; - static const int z; - }; - - class Bar { - Foo *f; - public: - Bar(Foo *f) : f(f) { } - Foo *operator->() { - return f; - } - }; - - now you can - - f = Foo() - f.y = 3 - a = f.z - f->extension() - - b = Bar(f) - b.y = 3 - a = b.z - b->extension() - - - Other small errors fixes, mostly python. - -11/25/2004: wsfulton - [Java] Numerous director bug fixes so that the correct java types - and canonicalized types in the JNI code are emitted. Use of the - $javaclassname special variables in the director typemaps now - consistent with the non-director typemaps. The types used for - typemap lookups are also corrected in a few places. If you - previously had your own director typemaps, ensure they are using the - correct C++ type. - - *** POTENTIAL INCOMPATIBILITY FOR JAVA DIRECTORS *** - -11/25/2004: wsfulton - const enum SWIGTYPE & typemaps added. These wrap const enum references - as if they were passed by value. Const enum references thus work the - same as const reference primitive types such as const double &, - const int & etc. Typemaps added for Java, C#, Ruby, Tcl, Perl and Pike. - -11/25/2004: wsfulton - [Java, C#] New special variable: $*javaclassname, similar to $javaclassname - and $&javaclassname. The new one removes a pointer from the C type before - obtaining the Java class name. One or more of $javaclassname, - $&javaclassname or $*javaclassname may now appear in a typemap. Likewise for - C# using csclassname instead of javaclassname. - -11/25/2004: wsfulton - The last vestiges of enums being handled as integers removed from the - internals. The wrapper methods use the enum type rather than an int - now. The net result is added type safety for enums when handled as - pointers, references etc. Previously in situations such as a method - taking a pointer to an enum, a pointer to an int or a pointer to an - enum of some other type could inadvertantly be passed to the method. - This is now fixed as the descriptor for an enum is no longer based on - an int, but the enum type instead. Anonymous enums are still handled - as integers. - - The consequence for scripting language users in correct usage of enums - should not be noticeable. There is no change for any of the languages - where enums are passed by value - most of the scripting languages will - still accept an integer for an enum value and the strongly typed - languages still use either typesafe enums, integers or proper enums - depending on what the user configures. For Java and C# users a change - in the typewrapper class name has occurred (for enum pointers, - references etc). For example: - - enum Numbers { one=1, two }; - enum Numbers* number(); - - In Java and C# this must now be coded as - - SWIGTYPE_p_Numbers n = modulename.number(); - - rather than - - SWIGTYPE_p_int n = modulename.number(); - - *** POTENTIAL INCOMPATIBILITY *** - -11/21/2004: wsfulton/mmatus - Added missing deprecated warning for %name and remove remaining %name - usage in the SWIG libraries. - -11/21/04: mmatus - - [Python] Adding the PySwigObject to be used for carrying - the instance C/C++ pointers. This is used instead of - string and PyCObjects. - - The new PySwigObject is even safer than PyCObject, and - more friendly than plain strings: - - now you can do - - print a.this - - - print str(a.this) - _00691608_p_A - - print long(a.this) - 135686400 - - print "%s 0x%x" % (a.this, a.this) - _00691608_p_A 0x8166900 - - the last one is very useful when debugging the C/C++ - side, since is the pointer value you will usually get - from the debugger. - - Also, if you have some old code that uses the string - representation "_00691608_p_A", you can use it now again - using 'str(ptr)', or by calling 'str = PyObject_Str(obj)' - in the C/C++ side. - - This change is mainly for nostalgic swig users that miss - the string representation, but also allows to say again - - if a.this == b.this: - return "a is b" - - and well, since the change were really simple, maybe in - the future we will be able to do - - next = a.this + 1 - - or add native python iteration over native C/C++ arrays, - ie, no need to create/copy new tuples when returning and - array or vector. - - Also, a PySwigPacked object was adding to carry a member - method pointer, but this is probably a temporal solution - until a more general object for methods is added. - - Be aware that to simplify maintaining and compatibility - with other tools, the old string and PyCObjects - representation could disappear very soon, and the - SWIG_COBJECTS_TYPES or SWIG_NO_OBJECT_TYPES macros will - have no effect at compilation time. Still, the three - mechanisms are present in the code just for testing, - debugging and comparison purposes. - -11/21/04: mmatus - - - [Python] Adding back support for using the swig runtime code - inside the user code. We just allow the user to include - the minimal code needed to implement the runtime - mechanism statically, just as in done in the swig - modules. - - To use the swig runtime code, for example with python, - the user needs include the following: - - #include // or using your favorite language - #include - #include // or using your favorite language - #include - - the files swigrun.swg, pyrun.swg and runtime.swg can - be checked out by using swig -co, or they can simply - be found by adding the swig lib directory to the - compiler include directory list, for example - - SWIGLIB=`swig -swiglib` - c++ -I${SWIGLIB} .. - - of better, using the CPPFLAGS, but that depends on your - environment. - - This change can be ported to the other languages too, - you just need to isolate the needed runtime code in - a single file like 'pyrun.swg', and provide the - SWIG_Runtime_GetTypeList() method. Look at the - Lib/python/pyrun.swg file and the Examples/python/swigrun - example. - -11/15/04: mmatus - - Fix mixed_types.i + gcc-3.4, ie, arrays + references + - typedefs - - - Fix multidim arrays + typedefs,ie - - typedef char character[1]; - typedef character word[64]; - - - Process protected/private bases in the same way before - we process protected/private members, ie, we check - for constructors, operator new, virtual members, etc. - - - Fix Ruby/Java to work (or ignore) multi-inheritance + - directors. Allow other languages to define if it is - supported or not. - - - Now you can run - - SWIG_FEATURES="-directors -dirprot" - make check-ruby-test-suite - make check-python-test-suite - make check-java-test-suite - make check-ocaml-test-suite - - and you will get only 'real' errors. ruby and python - compile with no errors, java shows some problems. diff --git a/Doc/Manual/Sections.html b/Doc/Manual/Sections.html index 999ee8ec8..4e968d984 100644 --- a/Doc/Manual/Sections.html +++ b/Doc/Manual/Sections.html @@ -6,7 +6,7 @@

SWIG-1.3 Development Documentation

-Last update : SWIG-1.3.24 (December 14, 2004) +Last update : SWIG-1.3.25 (?????? ??, 2004)

Sections

diff --git a/configure.in b/configure.in index 491c724ab..37118cbac 100644 --- a/configure.in +++ b/configure.in @@ -2,7 +2,7 @@ dnl Process this file with autoconf to produce a configure script. dnl The macros which aren't shipped with the autotools are stored in the dnl Tools/config directory in .m4 files. -AC_INIT([swig],[1.3.24],[http://www.swig.org]) +AC_INIT([swig],[1.3.25],[http://www.swig.org]) AC_PREREQ(2.54) AC_CONFIG_SRCDIR([Source/Swig/swig.h]) AC_CONFIG_AUX_DIR([Tools/config])