New entry.
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@258 626c5289-ae23-0410-ae9c-e8d60b6d4f22
This commit is contained in:
parent
ea65307e2c
commit
8a7effef52
1 changed files with 144 additions and 137 deletions
281
SWIG/CHANGES
281
SWIG/CHANGES
|
|
@ -1,9 +1,16 @@
|
||||||
SWIG (Simplified Wrapper and Interface Generator)
|
SWIG (Simplified Wrapper and Interface Generator)
|
||||||
|
|
||||||
|
2/24/00 : ttn
|
||||||
|
Incorporate Guile support contributed by Clark McGrew.
|
||||||
|
This works with Guile 1.3, but since it depends heavily
|
||||||
|
on the gh_ interface, it should work for all later versions.
|
||||||
|
It has not been tested with versions before 1.3.
|
||||||
|
WARNING: Code is unstable due to experimentation by ttn.
|
||||||
|
|
||||||
Version 1.3 Alpha 1 (February 11, 2000)
|
Version 1.3 Alpha 1 (February 11, 2000)
|
||||||
=======================================
|
=======================================
|
||||||
|
|
||||||
2/11/00 : Added 'void' to prototype of Python module initializer.
|
2/11/00 : Added 'void' to prototype of Python module initializer.
|
||||||
Reported by Mark Howson (1/20/00).
|
Reported by Mark Howson (1/20/00).
|
||||||
|
|
||||||
2/11/00 : beazley
|
2/11/00 : beazley
|
||||||
|
|
@ -49,14 +56,14 @@ Version 1.3 Alpha 1 (February 11, 2000)
|
||||||
return val
|
return val
|
||||||
|
|
||||||
becomes
|
becomes
|
||||||
|
|
||||||
def method1(self, *_args):
|
def method1(self, *_args):
|
||||||
val = apply(test2c.PyClass1_method1, (self,) + _args)
|
val = apply(test2c.PyClass1_method1, (self,) + _args)
|
||||||
return val
|
return val
|
||||||
|
|
||||||
2. Incorporate self into the _args tuple. This saves at least one tuple
|
2. Incorporate self into the _args tuple. This saves at least one tuple
|
||||||
allocation per method call.
|
allocation per method call.
|
||||||
|
|
||||||
def method1(self, *_args):
|
def method1(self, *_args):
|
||||||
val = apply(test2c.PyClass1_method1, (self,) + _args)
|
val = apply(test2c.PyClass1_method1, (self,) + _args)
|
||||||
return val
|
return val
|
||||||
|
|
@ -67,13 +74,13 @@ Version 1.3 Alpha 1 (February 11, 2000)
|
||||||
val = apply(test2c.PyClass1_method1, _args)
|
val = apply(test2c.PyClass1_method1, _args)
|
||||||
return val
|
return val
|
||||||
|
|
||||||
3. Remove *Ptr classes.
|
3. Remove *Ptr classes.
|
||||||
Assume that we are SWIGging a c++ class CppClass.
|
Assume that we are SWIGging a c++ class CppClass.
|
||||||
Currently SWIG will generate both CppClassPtr class
|
Currently SWIG will generate both CppClassPtr class
|
||||||
that hosts all methods and also CppClass that is derived
|
that hosts all methods and also CppClass that is derived
|
||||||
from the former and contains just the constructor.
|
from the former and contains just the constructor.
|
||||||
When CppClass method is called, the interpreter will try
|
When CppClass method is called, the interpreter will try
|
||||||
to find it in the CppClass's dictionary first, and only then
|
to find it in the CppClass's dictionary first, and only then
|
||||||
check the base class.
|
check the base class.
|
||||||
|
|
||||||
CppClassPtr functionality may be emulated with:
|
CppClassPtr functionality may be emulated with:
|
||||||
|
|
@ -85,10 +92,10 @@ Version 1.3 Alpha 1 (February 11, 2000)
|
||||||
|
|
||||||
This saves us one dictionary lookup per call.
|
This saves us one dictionary lookup per call.
|
||||||
|
|
||||||
<DB>The new module was first added in Python-1.5.2 so it
|
<DB>The new module was first added in Python-1.5.2 so it
|
||||||
won't work with older versions. I've implemented an
|
won't work with older versions. I've implemented an
|
||||||
alternative that achieves the same thing</DB>
|
alternative that achieves the same thing</DB>
|
||||||
|
|
||||||
4. Use CObjects instead of strings for pointers.
|
4. Use CObjects instead of strings for pointers.
|
||||||
|
|
||||||
Dave: This enhancements result in speedups of up to 50% in some
|
Dave: This enhancements result in speedups of up to 50% in some
|
||||||
|
|
@ -97,7 +104,7 @@ Version 1.3 Alpha 1 (February 11, 2000)
|
||||||
2/1/00 : Upgraded the Python module to use a new type-checking scheme that
|
2/1/00 : Upgraded the Python module to use a new type-checking scheme that
|
||||||
is more memory efficient, provides better performance, and
|
is more memory efficient, provides better performance, and
|
||||||
is less error prone. Unfortunately, it will break all code that
|
is less error prone. Unfortunately, it will break all code that
|
||||||
depends on the SWIG_GetPtr() function call in typemaps.
|
depends on the SWIG_GetPtr() function call in typemaps.
|
||||||
These functions should be changed as follows:
|
These functions should be changed as follows:
|
||||||
|
|
||||||
if (SWIG_GetPtr(string,&ptr,"_Foo_p")) {
|
if (SWIG_GetPtr(string,&ptr,"_Foo_p")) {
|
||||||
|
|
@ -125,7 +132,7 @@ Version 1.3 Alpha 1 (February 11, 2000)
|
||||||
Keep configure scripts so that people are not *forced* to autoconf
|
Keep configure scripts so that people are not *forced* to autoconf
|
||||||
Keep sources generated by yacc so that compilation without yacc
|
Keep sources generated by yacc so that compilation without yacc
|
||||||
is possible.
|
is possible.
|
||||||
Source/LParse/cscanner.c: change lyacc.h into parser.h to please
|
Source/LParse/cscanner.c: change lyacc.h into parser.h to please
|
||||||
default yacc generation rules.
|
default yacc generation rules.
|
||||||
Use AC_CONFIG_SUBDIRS in configure.in instead of hand made script.
|
Use AC_CONFIG_SUBDIRS in configure.in instead of hand made script.
|
||||||
Update all relevant .cvsignore to include .deps
|
Update all relevant .cvsignore to include .deps
|
||||||
|
|
@ -145,18 +152,18 @@ Version 1.3 Alpha 1 (February 11, 2000)
|
||||||
Patch contributed by Dieter Baron.
|
Patch contributed by Dieter Baron.
|
||||||
|
|
||||||
1/13/00 : loic
|
1/13/00 : loic
|
||||||
Added .cvsignore, Examples/.cvsignore, Source/DOH/Doh/.cvsignore
|
Added .cvsignore, Examples/.cvsignore, Source/DOH/Doh/.cvsignore
|
||||||
Source/SWIG1.1/main.cxx: Fixed -I handling bug
|
Source/SWIG1.1/main.cxx: Fixed -I handling bug
|
||||||
Source/Modules1.1/java.cxx: fixed char* -> const char* warnings that are
|
Source/Modules1.1/java.cxx: fixed char* -> const char* warnings that are
|
||||||
errors when compiling with gcc-2.95.2
|
errors when compiling with gcc-2.95.2
|
||||||
Source/SWIG1.1/main.cxx: cast const char* to char* for String_replace
|
Source/SWIG1.1/main.cxx: cast const char* to char* for String_replace
|
||||||
token and rep should really be const.
|
token and rep should really be const.
|
||||||
|
|
||||||
1/12/00 : beazley
|
1/12/00 : beazley
|
||||||
Added Harco's Java modules.
|
Added Harco's Java modules.
|
||||||
|
|
||||||
1/12/00 : beazley
|
1/12/00 : beazley
|
||||||
Revoked the %ifdef, %ifndef, %endif, %if, %elif, and %else
|
Revoked the %ifdef, %ifndef, %endif, %if, %elif, and %else
|
||||||
directives. These are no longer needed as SWIG now has a real
|
directives. These are no longer needed as SWIG now has a real
|
||||||
preprocessor.
|
preprocessor.
|
||||||
*** POTENTIAL INCOMPATIBILITY ***
|
*** POTENTIAL INCOMPATIBILITY ***
|
||||||
|
|
@ -167,7 +174,7 @@ Version 1.3 Alpha 1 (February 11, 2000)
|
||||||
to begin with).
|
to begin with).
|
||||||
|
|
||||||
1/12/00 : beazley
|
1/12/00 : beazley
|
||||||
Removed the -stat option for printing statistics. The
|
Removed the -stat option for printing statistics. The
|
||||||
statistics reporting was inadequate and mostly broken
|
statistics reporting was inadequate and mostly broken
|
||||||
anyway.
|
anyway.
|
||||||
*** POTENTIAL INCOMPATIBILITY ***
|
*** POTENTIAL INCOMPATIBILITY ***
|
||||||
|
|
@ -214,13 +221,13 @@ Version 1.3 Alpha 1 (February 11, 2000)
|
||||||
Examples/ Examples
|
Examples/ Examples
|
||||||
|
|
||||||
More directories will be added as needed.
|
More directories will be added as needed.
|
||||||
|
|
||||||
12/08/99: Loic Dachary (loic@senga.org)
|
12/08/99: Loic Dachary (loic@senga.org)
|
||||||
Enhanced package handling for perl5 and c++.
|
Enhanced package handling for perl5 and c++.
|
||||||
|
|
||||||
With new option -hide Foo::Bar, every perl5 object (Frob) is
|
With new option -hide Foo::Bar, every perl5 object (Frob) is
|
||||||
qualified by Foo::Bar::Frob. The package name is solely used
|
qualified by Foo::Bar::Frob. The package name is solely used
|
||||||
to encapsulate C/C++ wrappers output in <module>_wrap.c and the
|
to encapsulate C/C++ wrappers output in <module>_wrap.c and the
|
||||||
corresponding perl package in <module>.pm. Note that a package
|
corresponding perl package in <module>.pm. Note that a package
|
||||||
name may contain :: (Frob::Nitz) and will be relative to the
|
name may contain :: (Frob::Nitz) and will be relative to the
|
||||||
package name provided by -hide (Foo::Bar::Frob::Nitz).
|
package name provided by -hide (Foo::Bar::Frob::Nitz).
|
||||||
|
|
@ -233,11 +240,11 @@ Version 1.3 Alpha 1 (February 11, 2000)
|
||||||
but contain perl code and applies to wrappers generated by
|
but contain perl code and applies to wrappers generated by
|
||||||
-shadow.
|
-shadow.
|
||||||
|
|
||||||
Lacking proper regression tests I used
|
Lacking proper regression tests I used
|
||||||
Examples/perl5/{c++,constraint,defarg,except,
|
Examples/perl5/{c++,constraint,defarg,except,
|
||||||
graph/graph[1234],multinherit,nested,shadow,simple,tree,
|
graph/graph[1234],multinherit,nested,shadow,simple,tree,
|
||||||
typemaps/{argv,argv2,arraymember,database,file,ignore,integer,
|
typemaps/{argv,argv2,arraymember,database,file,ignore,integer,
|
||||||
output,passref,reference,return}}/. I ran swig with and without
|
output,passref,reference,return}}/. I ran swig with and without
|
||||||
the patches, diff the generatedsources, run the .pl files
|
the patches, diff the generatedsources, run the .pl files
|
||||||
and checked that the results are identical. In all those examples
|
and checked that the results are identical. In all those examples
|
||||||
I had no error.
|
I had no error.
|
||||||
|
|
@ -248,7 +255,7 @@ Version 1.3 Alpha 1 (February 11, 2000)
|
||||||
Now, we simply use variable traces to support everything. This may
|
Now, we simply use variable traces to support everything. This may
|
||||||
break scripts that rely upon the older behavior.
|
break scripts that rely upon the older behavior.
|
||||||
*** POTENTIAL INCOMPATIBILITY ***
|
*** POTENTIAL INCOMPATIBILITY ***
|
||||||
|
|
||||||
11/21/99: Added slight tweak to wrapper generator to collect local variables
|
11/21/99: Added slight tweak to wrapper generator to collect local variables
|
||||||
of similar type. Produces somewhat more compact wrapper code.
|
of similar type. Produces somewhat more compact wrapper code.
|
||||||
|
|
||||||
|
|
@ -281,7 +288,7 @@ Version 1.3 Alpha 1 (February 11, 2000)
|
||||||
|
|
||||||
11/5/99 : Fixed an obscure code generation bug related to the generation
|
11/5/99 : Fixed an obscure code generation bug related to the generation
|
||||||
of default constructors. Bug reported by Brad Clements.
|
of default constructors. Bug reported by Brad Clements.
|
||||||
|
|
||||||
11/5/99 : Fixed a few memory problems found by purify.
|
11/5/99 : Fixed a few memory problems found by purify.
|
||||||
|
|
||||||
11/5/99 : Officially deprecated the -htcl, -htk, and -plugin options
|
11/5/99 : Officially deprecated the -htcl, -htk, and -plugin options
|
||||||
|
|
@ -289,7 +296,7 @@ Version 1.3 Alpha 1 (February 11, 2000)
|
||||||
|
|
||||||
10/26/99: Removed unused variable from python/typemaps.i. Patch
|
10/26/99: Removed unused variable from python/typemaps.i. Patch
|
||||||
contributed by Keith Davidson.
|
contributed by Keith Davidson.
|
||||||
|
|
||||||
8/16/99 : Added _WIN32 symbol to libraries to better support Windows.
|
8/16/99 : Added _WIN32 symbol to libraries to better support Windows.
|
||||||
|
|
||||||
8/16/99 : Deprecated the Perl4 module. It is no longer included in the
|
8/16/99 : Deprecated the Perl4 module. It is no longer included in the
|
||||||
|
|
@ -306,7 +313,7 @@ Version 1.3 Alpha 1 (February 11, 2000)
|
||||||
8/15/99 : Many changes to the libraries to support runtime libraries.
|
8/15/99 : Many changes to the libraries to support runtime libraries.
|
||||||
|
|
||||||
8/13/99 : Eliminated C++ compiler warning messages about extern "C" linkage.
|
8/13/99 : Eliminated C++ compiler warning messages about extern "C" linkage.
|
||||||
|
|
||||||
8/13/99 : Some cleanup of Python .swg files to better support runtime libraries
|
8/13/99 : Some cleanup of Python .swg files to better support runtime libraries
|
||||||
on Windows.
|
on Windows.
|
||||||
|
|
||||||
|
|
@ -336,7 +343,7 @@ Version 1.3 Alpha 1 (February 11, 2000)
|
||||||
8/13/99 : Patch to Python shadow classes to eliminate ignored
|
8/13/99 : Patch to Python shadow classes to eliminate ignored
|
||||||
exception errors in destructors. Patch contributed
|
exception errors in destructors. Patch contributed
|
||||||
by Robin Dunn.
|
by Robin Dunn.
|
||||||
|
|
||||||
8/11/99 : Minor patch to swig_lib/python/swigptr.swg (added SWIGSTATIC
|
8/11/99 : Minor patch to swig_lib/python/swigptr.swg (added SWIGSTATIC
|
||||||
declaration). Patch contributed by Lyle Johnson.
|
declaration). Patch contributed by Lyle Johnson.
|
||||||
|
|
||||||
|
|
@ -366,8 +373,8 @@ Version 1.3 Alpha 1 (February 11, 2000)
|
||||||
is made to see if they are balanced (i.e., a %disabledoc
|
is made to see if they are balanced (i.e., a %disabledoc
|
||||||
directive inside a class does not have to have a matching
|
directive inside a class does not have to have a matching
|
||||||
%enabledoc in the same class).
|
%enabledoc in the same class).
|
||||||
|
|
||||||
8/8/99 : Keyword argument handling is now supported in the Python
|
8/8/99 : Keyword argument handling is now supported in the Python
|
||||||
module. For example:
|
module. For example:
|
||||||
|
|
||||||
int foo(char *bar, int spam, double x);
|
int foo(char *bar, int spam, double x);
|
||||||
|
|
@ -381,8 +388,8 @@ Version 1.3 Alpha 1 (February 11, 2000)
|
||||||
should work as well. Unnamed arguments are assigned names
|
should work as well. Unnamed arguments are assigned names
|
||||||
such as "arg1", "arg2", etc...
|
such as "arg1", "arg2", etc...
|
||||||
|
|
||||||
*** POTENTIAL INCOMPATIBILITY ***
|
*** POTENTIAL INCOMPATIBILITY ***
|
||||||
Functions with duplicate argument names such as
|
Functions with duplicate argument names such as
|
||||||
bar(int *OUTPUT, int *OUTPUT) will likely cause problematic
|
bar(int *OUTPUT, int *OUTPUT) will likely cause problematic
|
||||||
wrapper code to be generated. To fix this, use different
|
wrapper code to be generated. To fix this, use different
|
||||||
names or use %apply to map typemaps to alternate names.
|
names or use %apply to map typemaps to alternate names.
|
||||||
|
|
@ -390,12 +397,12 @@ Version 1.3 Alpha 1 (February 11, 2000)
|
||||||
8/8/99 : Handling of the 'this' pointer has been changed in Python shadow
|
8/8/99 : Handling of the 'this' pointer has been changed in Python shadow
|
||||||
classes. Previously, dereferencing of '.this' occured in the
|
classes. Previously, dereferencing of '.this' occured in the
|
||||||
Python shadow class itself. Now, this step occurs in the C
|
Python shadow class itself. Now, this step occurs in the C
|
||||||
wrappers using the following function:
|
wrappers using the following function:
|
||||||
|
|
||||||
SWIG_GetPtrObj(PyObject *, void **ptr, char *type)
|
SWIG_GetPtrObj(PyObject *, void **ptr, char *type)
|
||||||
|
|
||||||
This function can accept either a string containing a pointer
|
This function can accept either a string containing a pointer
|
||||||
or a shadow class instance with a '.this' attribute of
|
or a shadow class instance with a '.this' attribute of
|
||||||
appropriate type. This change allows the following:
|
appropriate type. This change allows the following:
|
||||||
|
|
||||||
1. The real shadow class instance for an object is
|
1. The real shadow class instance for an object is
|
||||||
|
|
@ -416,7 +423,7 @@ Version 1.3 Alpha 1 (February 11, 2000)
|
||||||
|
|
||||||
|
|
||||||
8/8/99 : Fixed handling of "const" and pointers in classes. In particular,
|
8/8/99 : Fixed handling of "const" and pointers in classes. In particular,
|
||||||
declarations such as
|
declarations such as
|
||||||
|
|
||||||
class foo {
|
class foo {
|
||||||
...
|
...
|
||||||
|
|
@ -425,7 +432,7 @@ Version 1.3 Alpha 1 (February 11, 2000)
|
||||||
}
|
}
|
||||||
|
|
||||||
are handled as assignable variables as opposed to constant
|
are handled as assignable variables as opposed to constant
|
||||||
values (this is the correct behavior in C/C++). Note:
|
values (this is the correct behavior in C/C++). Note:
|
||||||
declarations such as "char *const msg" are still unsupported.
|
declarations such as "char *const msg" are still unsupported.
|
||||||
Constants declared at the global level using const are also
|
Constants declared at the global level using const are also
|
||||||
broken (because I have a number of interfaces that rely upon
|
broken (because I have a number of interfaces that rely upon
|
||||||
|
|
@ -488,10 +495,10 @@ Version 1.3 Alpha 1 (February 11, 2000)
|
||||||
2/27/99 : Modified Perl5 module to recognize 'undef' as a NULL char *.
|
2/27/99 : Modified Perl5 module to recognize 'undef' as a NULL char *.
|
||||||
Patch contributed by Junio Hamano.
|
Patch contributed by Junio Hamano.
|
||||||
|
|
||||||
2/27/99 : Fixed the Perl5 module to support the newer versions of
|
2/27/99 : Fixed the Perl5 module to support the newer versions of
|
||||||
ActiveState Perl for Win32.
|
ActiveState Perl for Win32.
|
||||||
|
|
||||||
2/27/99 : Fixed the include order of files specified with the
|
2/27/99 : Fixed the include order of files specified with the
|
||||||
-I option.
|
-I option.
|
||||||
|
|
||||||
2/5/98- : Dave finishes his dissertation, goes job hunting, moves to
|
2/5/98- : Dave finishes his dissertation, goes job hunting, moves to
|
||||||
|
|
@ -521,7 +528,7 @@ Version 1.1 Patch 4 (January 4, 1998)
|
||||||
=====================================
|
=====================================
|
||||||
|
|
||||||
1/4/98 : Changed structured of the Examples directory to be more friendly
|
1/4/98 : Changed structured of the Examples directory to be more friendly
|
||||||
to Borland C++.
|
to Borland C++.
|
||||||
|
|
||||||
1/4/98 : Added the function Makefile.win.bc for compiling the examples
|
1/4/98 : Added the function Makefile.win.bc for compiling the examples
|
||||||
under Borland 5.2.
|
under Borland 5.2.
|
||||||
|
|
@ -541,25 +548,25 @@ Version 1.1 Patch 4 (January 4, 1998)
|
||||||
the original SWIG mechanism that assumed [incr Tcl] namespaces.
|
the original SWIG mechanism that assumed [incr Tcl] namespaces.
|
||||||
To use namespaces, simply run SWIG with the following options
|
To use namespaces, simply run SWIG with the following options
|
||||||
|
|
||||||
swig -tcl -namespace foo.i
|
swig -tcl -namespace foo.i
|
||||||
|
|
||||||
This places everything in a namespace that matches
|
This places everything in a namespace that matches
|
||||||
the module name
|
the module name
|
||||||
|
|
||||||
swig -tcl -namespace -prefix bar foo.i
|
swig -tcl -namespace -prefix bar foo.i
|
||||||
|
|
||||||
This places everything in the namespace 'bar'
|
This places everything in the namespace 'bar'
|
||||||
|
|
||||||
The use of namespaces is new in Tcl 8.0. However, the wrapper code
|
The use of namespaces is new in Tcl 8.0. However, the wrapper code
|
||||||
generated by SWIG will still work with all versions of Tcl newer
|
generated by SWIG will still work with all versions of Tcl newer
|
||||||
than and including Tcl 7.3/Tk3.6 even if the -namespace option is
|
than and including Tcl 7.3/Tk3.6 even if the -namespace option is
|
||||||
used.
|
used.
|
||||||
|
|
||||||
*** POTENTIAL INCOMPATIBILITY ***
|
*** POTENTIAL INCOMPATIBILITY ***
|
||||||
This change may break existing applications that relied on the
|
This change may break existing applications that relied on the
|
||||||
-prefix and -namespace options.
|
-prefix and -namespace options.
|
||||||
|
|
||||||
1/2/98 : Added the following constants to the Tcl wrapper code
|
1/2/98 : Added the following constants to the Tcl wrapper code
|
||||||
|
|
||||||
SWIG_name - Name of the SWIG module
|
SWIG_name - Name of the SWIG module
|
||||||
SWIG_prefix - Prefix/namespace appended to command names
|
SWIG_prefix - Prefix/namespace appended to command names
|
||||||
|
|
@ -577,7 +584,7 @@ Version 1.1 Patch 4 (January 4, 1998)
|
||||||
significant changes were made :
|
significant changes were made :
|
||||||
|
|
||||||
1. The OUTPUT typemap now returns Python tuples instead of
|
1. The OUTPUT typemap now returns Python tuples instead of
|
||||||
lists. Lists can be returned as before by using the
|
lists. Lists can be returned as before by using the
|
||||||
L_OUTPUT type. If compatibility with older versions
|
L_OUTPUT type. If compatibility with older versions
|
||||||
is needed, run SWIG with the -DOUTPUT_LIST option.
|
is needed, run SWIG with the -DOUTPUT_LIST option.
|
||||||
|
|
||||||
|
|
@ -589,11 +596,11 @@ Version 1.1 Patch 4 (January 4, 1998)
|
||||||
Changes to typemaps.i may break existing Python scripts that assume
|
Changes to typemaps.i may break existing Python scripts that assume
|
||||||
output in the form of a list.
|
output in the form of a list.
|
||||||
*** POTENTIAL INCOMPATIBILITY ***
|
*** POTENTIAL INCOMPATIBILITY ***
|
||||||
|
|
||||||
12/31/97: Fixed long overdue problems with the testing scripts and certain
|
12/31/97: Fixed long overdue problems with the testing scripts and certain
|
||||||
makefiles that required the use of the bash shell. Everything should
|
makefiles that required the use of the bash shell. Everything should
|
||||||
work properly with the standard Bourne shell (sh) now.
|
work properly with the standard Bourne shell (sh) now.
|
||||||
|
|
||||||
12/31/97: Modified typemaps to allow $basetype as a valid local variable.
|
12/31/97: Modified typemaps to allow $basetype as a valid local variable.
|
||||||
This allows for all sorts of bizarre hackish typemaps that
|
This allows for all sorts of bizarre hackish typemaps that
|
||||||
do cool things. Patch contributed by Dominique Dumont.
|
do cool things. Patch contributed by Dominique Dumont.
|
||||||
|
|
@ -611,18 +618,18 @@ Version 1.1 Patch 4 (January 4, 1998)
|
||||||
12/31/97: Changed the default C constructor to use calloc() instead
|
12/31/97: Changed the default C constructor to use calloc() instead
|
||||||
of malloc()
|
of malloc()
|
||||||
|
|
||||||
12/30/97: Changed the creation of constants in the Perl5 module.
|
12/30/97: Changed the creation of constants in the Perl5 module.
|
||||||
For all practical purposes, they should work in exactly the
|
For all practical purposes, they should work in exactly the
|
||||||
same way as before except that they now require much less
|
same way as before except that they now require much less
|
||||||
wrapper code. Modules containing large numbers of
|
wrapper code. Modules containing large numbers of
|
||||||
constants may see greater than a 50% reduction in wrapper
|
constants may see greater than a 50% reduction in wrapper
|
||||||
code size.
|
code size.
|
||||||
|
|
||||||
12/30/97: Modified the Python module to be more intelligent about the
|
12/30/97: Modified the Python module to be more intelligent about the
|
||||||
creation of constants. SWIG no longer generates redundant
|
creation of constants. SWIG no longer generates redundant
|
||||||
global variables and the size of the module initialization
|
global variables and the size of the module initialization
|
||||||
function should be reduced. (Many thanks to Jim Fulton).
|
function should be reduced. (Many thanks to Jim Fulton).
|
||||||
|
|
||||||
12/29/97: Fixed a bug in C++ code generation related to member functions,
|
12/29/97: Fixed a bug in C++ code generation related to member functions,
|
||||||
default arguments, and references.
|
default arguments, and references.
|
||||||
|
|
||||||
|
|
@ -631,19 +638,19 @@ Version 1.1 Patch 4 (January 4, 1998)
|
||||||
12/29/97: Added 'embed15.i' library file. This file should be used to
|
12/29/97: Added 'embed15.i' library file. This file should be used to
|
||||||
staticly link versions of Python 1.5. To make it the default,
|
staticly link versions of Python 1.5. To make it the default,
|
||||||
simply copy 'swig_lib/python/embed15.i' to 'swig_lib/python/embed.i'
|
simply copy 'swig_lib/python/embed15.i' to 'swig_lib/python/embed.i'
|
||||||
|
|
||||||
Version 1.1 Patch 3 (November 24, 1997)
|
Version 1.1 Patch 3 (November 24, 1997)
|
||||||
========================================
|
========================================
|
||||||
|
|
||||||
11/23/97: Fixed a bug in the Perl5 module with shadow classes and
|
11/23/97: Fixed a bug in the Perl5 module with shadow classes and
|
||||||
static class functions that return class instances.
|
static class functions that return class instances.
|
||||||
Note : The fix for this bug requires a slight restructuring of
|
Note : The fix for this bug requires a slight restructuring of
|
||||||
of the .pm files created by SWIG.
|
of the .pm files created by SWIG.
|
||||||
|
|
||||||
11/23/97: Fixed a bug in the Tcl/Tcl8 modules related to variable linking
|
11/23/97: Fixed a bug in the Tcl/Tcl8 modules related to variable linking
|
||||||
of character arrays. If you declared a global variable 'char foo[10]',
|
of character arrays. If you declared a global variable 'char foo[10]',
|
||||||
the generated wrapper code would either cause a segmentation fault
|
the generated wrapper code would either cause a segmentation fault
|
||||||
immediately upon loading or weird memory corruption elsewhere.
|
immediately upon loading or weird memory corruption elsewhere.
|
||||||
This should now be fixed although character arrays can only be
|
This should now be fixed although character arrays can only be
|
||||||
read-only.
|
read-only.
|
||||||
|
|
||||||
|
|
@ -657,7 +664,7 @@ Version 1.1 Patch 3 (November 24, 1997)
|
||||||
11/23/97: Changed the behavior of the -o option when used with shadow
|
11/23/97: Changed the behavior of the -o option when used with shadow
|
||||||
classes. If -o was used to specify both the pathname and filename
|
classes. If -o was used to specify both the pathname and filename
|
||||||
of SWIG's output such as
|
of SWIG's output such as
|
||||||
|
|
||||||
swig -o /home/swig/wrapper.c -shadow -perl5 foo.i
|
swig -o /home/swig/wrapper.c -shadow -perl5 foo.i
|
||||||
|
|
||||||
The wrapper code would be placed the file specified with -o,
|
The wrapper code would be placed the file specified with -o,
|
||||||
|
|
@ -688,13 +695,13 @@ Version 1.1 Patch 3 (November 24, 1997)
|
||||||
11/23/97: Modified the typemap mechanism to allow output
|
11/23/97: Modified the typemap mechanism to allow output
|
||||||
typemaps of type 'void'. These were ignored previously,
|
typemaps of type 'void'. These were ignored previously,
|
||||||
but now if you specify,
|
but now if you specify,
|
||||||
|
|
||||||
%typemap(lang,out) void {
|
%typemap(lang,out) void {
|
||||||
... return a void ...
|
... return a void ...
|
||||||
}
|
}
|
||||||
|
|
||||||
You can change or assign a return value to the function.
|
You can change or assign a return value to the function.
|
||||||
|
|
||||||
11/23/97: Fixed processing of 'bool' datatypes in the Python module.
|
11/23/97: Fixed processing of 'bool' datatypes in the Python module.
|
||||||
|
|
||||||
11/23/97: Fixed minor parsing error with C++ initializers. For example,
|
11/23/97: Fixed minor parsing error with C++ initializers. For example,
|
||||||
|
|
@ -717,7 +724,7 @@ Version 1.1 Patch 3 (November 24, 1997)
|
||||||
%include typemaps.i
|
%include typemaps.i
|
||||||
void foo(double *OUTPUT, double *OUTPUT, double a);
|
void foo(double *OUTPUT, double *OUTPUT, double a);
|
||||||
|
|
||||||
Previously, doing this resulted in the creation of an
|
Previously, doing this resulted in the creation of an
|
||||||
extraneous comma in the output, resulting in a C syntax error.
|
extraneous comma in the output, resulting in a C syntax error.
|
||||||
|
|
||||||
11/22/97: Fixed a bug when template handling that was stripping whitespace
|
11/22/97: Fixed a bug when template handling that was stripping whitespace
|
||||||
|
|
@ -747,7 +754,7 @@ Version 1.1 Patch 3 (November 24, 1997)
|
||||||
|
|
||||||
void foo(Vector a, Vector b = d);
|
void foo(Vector a, Vector b = d);
|
||||||
|
|
||||||
should now work properly.
|
should now work properly.
|
||||||
|
|
||||||
Version 1.1 Patch 2 (September 4, 1997)
|
Version 1.1 Patch 2 (September 4, 1997)
|
||||||
=======================================
|
=======================================
|
||||||
|
|
@ -785,7 +792,7 @@ Version 1.1 Patch 1 (August 27, 1997)
|
||||||
void foo(double *a, double *b, double *result);
|
void foo(double *a, double *b, double *result);
|
||||||
|
|
||||||
three local variables will be created as follows :
|
three local variables will be created as follows :
|
||||||
|
|
||||||
double temp_a;
|
double temp_a;
|
||||||
double temp_b;
|
double temp_b;
|
||||||
double temp_result;
|
double temp_result;
|
||||||
|
|
@ -799,14 +806,14 @@ Version 1.1 Patch 1 (August 27, 1997)
|
||||||
|
|
||||||
%apply double [ANY] { Real [ANY] };
|
%apply double [ANY] { Real [ANY] };
|
||||||
%apply double [4] { double [10] };
|
%apply double [4] { double [10] };
|
||||||
|
|
||||||
A generic version of apply like this :
|
A generic version of apply like this :
|
||||||
|
|
||||||
%apply double { Real };
|
%apply double { Real };
|
||||||
|
|
||||||
should now work--even if arrays involving doubles and Reals are
|
should now work--even if arrays involving doubles and Reals are
|
||||||
used later.
|
used later.
|
||||||
|
|
||||||
7/27/97 : Changed warning message about "Array X has been converted to Y" to
|
7/27/97 : Changed warning message about "Array X has been converted to Y" to
|
||||||
only appear if running SWIG in verbose mode.
|
only appear if running SWIG in verbose mode.
|
||||||
|
|
||||||
|
|
@ -827,7 +834,7 @@ Version 1.1 Patch 1 (August 27, 1997)
|
||||||
|
|
||||||
The problem with this is that typemaps allow a user to redefine
|
The problem with this is that typemaps allow a user to redefine
|
||||||
the output behavior of a function--as a result, we can no longer
|
the output behavior of a function--as a result, we can no longer
|
||||||
make any assumptions about the return type being a pointer or
|
make any assumptions about the return type being a pointer or
|
||||||
even being a single value for that matter (it could be a list,
|
even being a single value for that matter (it could be a list,
|
||||||
tuple, etc...). If SWIG detects the use of output typemaps
|
tuple, etc...). If SWIG detects the use of output typemaps
|
||||||
(either "out" or "argout") it returns the result unmodified like
|
(either "out" or "argout") it returns the result unmodified like
|
||||||
|
|
@ -840,7 +847,7 @@ Version 1.1 Patch 1 (August 27, 1997)
|
||||||
In this case, it is up to the user to figure out what to do
|
In this case, it is up to the user to figure out what to do
|
||||||
with the return value (including the possibility of converting it
|
with the return value (including the possibility of converting it
|
||||||
into a Python class).
|
into a Python class).
|
||||||
|
|
||||||
7/26/97 : Fixed a parsing problem with types like 'unsigned long int',
|
7/26/97 : Fixed a parsing problem with types like 'unsigned long int',
|
||||||
'unsigned short int', etc...
|
'unsigned short int', etc...
|
||||||
|
|
||||||
|
|
@ -854,7 +861,7 @@ Version 1.1 Patch 1 (August 27, 1997)
|
||||||
Mark Hammond's COM support. I'm not entirely sure they
|
Mark Hammond's COM support. I'm not entirely sure they
|
||||||
work yet however. Needs documentation and testing.
|
work yet however. Needs documentation and testing.
|
||||||
|
|
||||||
7/24/97 : Fixed code generation bugs when structures had array members
|
7/24/97 : Fixed code generation bugs when structures had array members
|
||||||
and typemaps were used. For example :
|
and typemaps were used. For example :
|
||||||
|
|
||||||
%typemap(memberin) double [20][20] {
|
%typemap(memberin) double [20][20] {
|
||||||
|
|
@ -876,7 +883,7 @@ Version 1.1 Patch 1 (August 27, 1997)
|
||||||
When writing typemaps, one can assume that the source variable
|
When writing typemaps, one can assume that the source variable
|
||||||
is an array of the *same* type as the structure member. This
|
is an array of the *same* type as the structure member. This
|
||||||
may break some codes that managed to work around the array bug.
|
may break some codes that managed to work around the array bug.
|
||||||
*** POTENTIAL INCOMPATIBILITY ***
|
*** POTENTIAL INCOMPATIBILITY ***
|
||||||
|
|
||||||
7/13/97 : Fixed bug in Perl5 module when using C global variables that
|
7/13/97 : Fixed bug in Perl5 module when using C global variables that
|
||||||
are pointers. When used in function calls and other operations,
|
are pointers. When used in function calls and other operations,
|
||||||
|
|
@ -936,7 +943,7 @@ Version 1.1 Patch 1 (August 27, 1997)
|
||||||
|
|
||||||
7/8/97 : Fixed bizarre code generation bug with typemaps and C++ classes.
|
7/8/97 : Fixed bizarre code generation bug with typemaps and C++ classes.
|
||||||
In some cases, typemaps containing printf formatting strings such as
|
In some cases, typemaps containing printf formatting strings such as
|
||||||
|
|
||||||
%typemap(memberout) int * {
|
%typemap(memberout) int * {
|
||||||
printf("%d",42);
|
printf("%d",42);
|
||||||
}
|
}
|
||||||
|
|
@ -944,7 +951,7 @@ Version 1.1 Patch 1 (August 27, 1997)
|
||||||
Would generate completely bogus code with garbage replacing
|
Would generate completely bogus code with garbage replacing
|
||||||
the '%d'. Caused by one faulty use of printf (wasn't able to find
|
the '%d'. Caused by one faulty use of printf (wasn't able to find
|
||||||
any other occurences).
|
any other occurences).
|
||||||
|
|
||||||
7/7/97 : Fixed bug in Python shadow class generation with non-member
|
7/7/97 : Fixed bug in Python shadow class generation with non-member
|
||||||
functions that are returning more than one value.
|
functions that are returning more than one value.
|
||||||
|
|
||||||
|
|
@ -968,7 +975,7 @@ Version 1.1 Patch 1 (August 27, 1997)
|
||||||
Version 1.1 (June 24, 1997)
|
Version 1.1 (June 24, 1997)
|
||||||
===========================
|
===========================
|
||||||
|
|
||||||
6/24/97 : Fixed Objective-C constructor bug when working with Perl5
|
6/24/97 : Fixed Objective-C constructor bug when working with Perl5
|
||||||
shadow classes.
|
shadow classes.
|
||||||
|
|
||||||
6/23/97 : Fixed some parsing problems with Objective-C. Declarations
|
6/23/97 : Fixed some parsing problems with Objective-C. Declarations
|
||||||
|
|
@ -980,7 +987,7 @@ Version 1.1 (June 24, 1997)
|
||||||
the SWIG pointer type-checker and support functions
|
the SWIG pointer type-checker and support functions
|
||||||
that are normally included in every module. By using
|
that are normally included in every module. By using
|
||||||
the library, it is easier to work with multiple SWIG
|
the library, it is easier to work with multiple SWIG
|
||||||
generated modules.
|
generated modules.
|
||||||
|
|
||||||
6/22/97 : Fixed minor bug in Perl5 module related to static linking
|
6/22/97 : Fixed minor bug in Perl5 module related to static linking
|
||||||
of multiple modules.
|
of multiple modules.
|
||||||
|
|
@ -1008,7 +1015,7 @@ Version 1.1 (June 24, 1997)
|
||||||
At most, only one typemap file can be specified in this manner.
|
At most, only one typemap file can be specified in this manner.
|
||||||
*** NEW FEATURE ***
|
*** NEW FEATURE ***
|
||||||
|
|
||||||
6/18/97 : Need a Makefile fast? Type
|
6/18/97 : Need a Makefile fast? Type
|
||||||
|
|
||||||
swig [-tcl, -perl5, -python] -co Makefile
|
swig [-tcl, -perl5, -python] -co Makefile
|
||||||
|
|
||||||
|
|
@ -1024,12 +1031,12 @@ Version 1.1 (June 24, 1997)
|
||||||
|
|
||||||
Checks the file foobar.i into the Tcl part of the library.
|
Checks the file foobar.i into the Tcl part of the library.
|
||||||
In order to check a file into the general library (accessible
|
In order to check a file into the general library (accessible
|
||||||
to all languages modules), do the following
|
to all languages modules), do the following
|
||||||
|
|
||||||
swig -ci -o ../foobar.i foobar.i
|
swig -ci -o ../foobar.i foobar.i
|
||||||
|
|
||||||
(Admittedly this looks a little strange but is unavoidable).
|
(Admittedly this looks a little strange but is unavoidable).
|
||||||
The check-in option is primarily designed for SWIG maintenance
|
The check-in option is primarily designed for SWIG maintenance
|
||||||
and library development. The command will fail if the user does
|
and library development. The command will fail if the user does
|
||||||
not have write permission to the SWIG library. Third party library
|
not have write permission to the SWIG library. Third party library
|
||||||
extensions can easily install themselves by simply providing
|
extensions can easily install themselves by simply providing
|
||||||
|
|
@ -1041,7 +1048,7 @@ Version 1.1 (June 24, 1997)
|
||||||
6/16/97 : Fixed a bug in shadow class generation when %name() was applied
|
6/16/97 : Fixed a bug in shadow class generation when %name() was applied
|
||||||
to a class definition. Unfortunately, fixing the bug required
|
to a class definition. Unfortunately, fixing the bug required
|
||||||
a change in the Language C API by adding an extra argument to
|
a change in the Language C API by adding an extra argument to
|
||||||
the Language::cpp_class_decl() function. This may break
|
the Language::cpp_class_decl() function. This may break
|
||||||
SWIG C++ extensions.
|
SWIG C++ extensions.
|
||||||
*** POTENTIAL INCOMPATIBILITY ***
|
*** POTENTIAL INCOMPATIBILITY ***
|
||||||
|
|
||||||
|
|
@ -1062,7 +1069,7 @@ Version 1.1 (June 24, 1997)
|
||||||
Unlike %name, %rename will rename any occurence of the old name.
|
Unlike %name, %rename will rename any occurence of the old name.
|
||||||
This applies to functions, variables, class members and so forth.
|
This applies to functions, variables, class members and so forth.
|
||||||
There is no way to disable %rename once set, but you can change the
|
There is no way to disable %rename once set, but you can change the
|
||||||
name by redeclaring it to something else.
|
name by redeclaring it to something else.
|
||||||
*** NEW FEATURE ***
|
*** NEW FEATURE ***
|
||||||
|
|
||||||
6/15/97 : Improved the implementation of the %name directive so that it
|
6/15/97 : Improved the implementation of the %name directive so that it
|
||||||
|
|
@ -1072,7 +1079,7 @@ Version 1.1 (June 24, 1997)
|
||||||
%name(NewName)
|
%name(NewName)
|
||||||
#endif
|
#endif
|
||||||
int OldName(int);
|
int OldName(int);
|
||||||
|
|
||||||
6/15/97 : Added support for functions with no return datatype. In this case,
|
6/15/97 : Added support for functions with no return datatype. In this case,
|
||||||
SWIG assumes a return type of 'int'.
|
SWIG assumes a return type of 'int'.
|
||||||
|
|
||||||
|
|
@ -1080,7 +1087,7 @@ Version 1.1 (June 24, 1997)
|
||||||
less sensitive to errors that occur inside class definitions
|
less sensitive to errors that occur inside class definitions
|
||||||
now. Also reports errors for function pointers.
|
now. Also reports errors for function pointers.
|
||||||
|
|
||||||
6/11/97 : Made '$' a legal symbol in identifiers. This is to support
|
6/11/97 : Made '$' a legal symbol in identifiers. This is to support
|
||||||
some Objective-C libraries. Some compilers (such as gcc) may also
|
some Objective-C libraries. Some compilers (such as gcc) may also
|
||||||
allow identifiers to contain a $ in C/C++ code as well (this is
|
allow identifiers to contain a $ in C/C++ code as well (this is
|
||||||
an obscure feature of C). When '$' appears in identifier, SWIG
|
an obscure feature of C). When '$' appears in identifier, SWIG
|
||||||
|
|
@ -1116,8 +1123,8 @@ Version 1.1 (June 24, 1997)
|
||||||
6/2/97 : Fixed code generation bug when read-only variables were inherited
|
6/2/97 : Fixed code generation bug when read-only variables were inherited
|
||||||
into other classes. Under inheritance, the variables would
|
into other classes. Under inheritance, the variables would
|
||||||
become writable, but this has now been corrected.
|
become writable, but this has now been corrected.
|
||||||
|
|
||||||
5/30/97 : An empty %name() directive is no longer allowed or supported.
|
5/30/97 : An empty %name() directive is no longer allowed or supported.
|
||||||
This directive was originally used to strip the prefix
|
This directive was originally used to strip the prefix
|
||||||
off of a class or structure. Unfortunately, this never really
|
off of a class or structure. Unfortunately, this never really
|
||||||
seemed to work right and it complicated the C++ code generator
|
seemed to work right and it complicated the C++ code generator
|
||||||
|
|
@ -1143,16 +1150,16 @@ Version 1.1 (June 24, 1997)
|
||||||
When used, the entire name 'vector<complex>' becomes the name
|
When used, the entire name 'vector<complex>' becomes the name
|
||||||
of the datatype. Due to space limitations in datatype
|
of the datatype. Due to space limitations in datatype
|
||||||
representations, the name should not exceed 96 characters.
|
representations, the name should not exceed 96 characters.
|
||||||
|
|
||||||
Note : This is only part of what is needed for template support.
|
Note : This is only part of what is needed for template support.
|
||||||
Template class definitions are not yet supported by SWIG.
|
Template class definitions are not yet supported by SWIG.
|
||||||
|
|
||||||
The template notation above may also be used when specifying
|
The template notation above may also be used when specifying
|
||||||
Objective-C protocol lists.
|
Objective-C protocol lists.
|
||||||
*** NEW FEATURE ***
|
*** NEW FEATURE ***
|
||||||
|
|
||||||
5/24/97 : First cut at Objective-C support added. As it turns out, almost
|
5/24/97 : First cut at Objective-C support added. As it turns out, almost
|
||||||
everything can be handled with only a few minor modifications to
|
everything can be handled with only a few minor modifications to
|
||||||
the C++ module.
|
the C++ module.
|
||||||
*** NEW FEATURE ***
|
*** NEW FEATURE ***
|
||||||
|
|
||||||
|
|
@ -1175,7 +1182,7 @@ Version 1.1 (June 24, 1997)
|
||||||
"DWORD". This now includes pointers to the two datatypes.
|
"DWORD". This now includes pointers to the two datatypes.
|
||||||
For example, a typemap applied to "unsigned long **" would
|
For example, a typemap applied to "unsigned long **" would
|
||||||
also be applied to any occurrence of "DWORD **" as well.
|
also be applied to any occurrence of "DWORD **" as well.
|
||||||
|
|
||||||
5/19/97 : Fixed an ownership assignment bug in the Perl5 module when
|
5/19/97 : Fixed an ownership assignment bug in the Perl5 module when
|
||||||
class members were returning new objects belonging to
|
class members were returning new objects belonging to
|
||||||
different classes.
|
different classes.
|
||||||
|
|
@ -1184,12 +1191,12 @@ Version 1.1 (June 24, 1997)
|
||||||
|
|
||||||
$name - Name of function/variable/member
|
$name - Name of function/variable/member
|
||||||
$basetype - Base datatype (type without pointers)
|
$basetype - Base datatype (type without pointers)
|
||||||
$argnum - Argument number
|
$argnum - Argument number
|
||||||
|
|
||||||
5/16/97 : Fixed embarrassing underscore error in local variable
|
5/16/97 : Fixed embarrassing underscore error in local variable
|
||||||
allocator.
|
allocator.
|
||||||
|
|
||||||
5/16/97 : Fixed namespace clash bug in parameterized typemaps
|
5/16/97 : Fixed namespace clash bug in parameterized typemaps
|
||||||
when creating arrays as new local variables.
|
when creating arrays as new local variables.
|
||||||
|
|
||||||
5/15/97 : Fixed some bugs with inheritance of added methods across
|
5/15/97 : Fixed some bugs with inheritance of added methods across
|
||||||
|
|
@ -1234,7 +1241,7 @@ Version 1.1 Beta6 (May 9, 1997)
|
||||||
Old versions automatically turned the result into a
|
Old versions automatically turned the result into a
|
||||||
Python list. The new version does nothing, leaving the
|
Python list. The new version does nothing, leaving the
|
||||||
implementation up to the user. This provides more flexibility
|
implementation up to the user. This provides more flexibility
|
||||||
but may break older codes that rely on typemaps.
|
but may break older codes that rely on typemaps.
|
||||||
*** POTENTIAL INCOMPATIBILITY ***
|
*** POTENTIAL INCOMPATIBILITY ***
|
||||||
|
|
||||||
5/5/97 : Fixed bug in Python module related to the interaction of
|
5/5/97 : Fixed bug in Python module related to the interaction of
|
||||||
|
|
@ -1267,7 +1274,7 @@ Version 1.1 Beta6 (May 9, 1997)
|
||||||
unique, even if the same typemap is applied many times
|
unique, even if the same typemap is applied many times
|
||||||
in a given function.
|
in a given function.
|
||||||
** Not currently supported in Perl4 or Guile modules.
|
** Not currently supported in Perl4 or Guile modules.
|
||||||
|
|
||||||
5/2/97 : Fixed processing of %ifdef, %endif, %if, etc... (These are
|
5/2/97 : Fixed processing of %ifdef, %endif, %if, etc... (These are
|
||||||
SWIG equivalents of the C preprocessor directives that
|
SWIG equivalents of the C preprocessor directives that
|
||||||
can pass through the C preprocessor without modification).
|
can pass through the C preprocessor without modification).
|
||||||
|
|
@ -1323,8 +1330,8 @@ Version 1.1 Beta6 (May 9, 1997)
|
||||||
4/13/97 : Added %pragma directive for Perl5 module. Two new pragmas are
|
4/13/97 : Added %pragma directive for Perl5 module. Two new pragmas are
|
||||||
available :
|
available :
|
||||||
|
|
||||||
%pragma(perl5) code = "string"
|
%pragma(perl5) code = "string"
|
||||||
%pragma(perl5) include = "file.pl"
|
%pragma(perl5) include = "file.pl"
|
||||||
|
|
||||||
Both insert code into the .pm file created by SWIG. This can
|
Both insert code into the .pm file created by SWIG. This can
|
||||||
be used to automatically customize the .pm file created by SWIG.
|
be used to automatically customize the .pm file created by SWIG.
|
||||||
|
|
@ -1333,7 +1340,7 @@ Version 1.1 Beta6 (May 9, 1997)
|
||||||
option has been specified. This provides support for C programs
|
option has been specified. This provides support for C programs
|
||||||
that make use of these keywords for identifiers.
|
that make use of these keywords for identifiers.
|
||||||
SWIG may need to be explicitly run with the -c++ option when
|
SWIG may need to be explicitly run with the -c++ option when
|
||||||
compiling C++ code (this was allowed, but not recommended in
|
compiling C++ code (this was allowed, but not recommended in
|
||||||
previous versions). **POTENTIAL INCOMPATIBILITY**
|
previous versions). **POTENTIAL INCOMPATIBILITY**
|
||||||
|
|
||||||
4/11/97 : Fixed a rather nasty bug in the Perl5 module related to using
|
4/11/97 : Fixed a rather nasty bug in the Perl5 module related to using
|
||||||
|
|
@ -1352,14 +1359,14 @@ Version 1.1 Beta6 (May 9, 1997)
|
||||||
|
|
||||||
4/8/97 : Fixed code generation bugs in Python and Perl5 modules related to
|
4/8/97 : Fixed code generation bugs in Python and Perl5 modules related to
|
||||||
using class renaming (applying the %name directive to a class
|
using class renaming (applying the %name directive to a class
|
||||||
definition) and shadow classes.
|
definition) and shadow classes.
|
||||||
|
|
||||||
4/7/97 : Fixed minor bugs in swigptr.swg, tcl8ptr.swg, and perl5ptr.swg to
|
4/7/97 : Fixed minor bugs in swigptr.swg, tcl8ptr.swg, and perl5ptr.swg to
|
||||||
prevent infinite loops when weird datatypes are passed.
|
prevent infinite loops when weird datatypes are passed.
|
||||||
|
|
||||||
3/29/97 : 'Makefile.win' added. This is used to build most of the examples
|
3/29/97 : 'Makefile.win' added. This is used to build most of the examples
|
||||||
in the Examples directory under Windows NT/95.
|
in the Examples directory under Windows NT/95.
|
||||||
|
|
||||||
3/27/97 : Fixes to SWIG's error return codes. SWIG now returns non-zero
|
3/27/97 : Fixes to SWIG's error return codes. SWIG now returns non-zero
|
||||||
exit codes for certain kinds of errors (which makes it more
|
exit codes for certain kinds of errors (which makes it more
|
||||||
friendly to makefiles). An overhaul of the error handling
|
friendly to makefiles). An overhaul of the error handling
|
||||||
|
|
@ -1407,7 +1414,7 @@ Version 1.1 Beta6 (May 9, 1997)
|
||||||
make modules from SWIG library files. For example, if you
|
make modules from SWIG library files. For example, if you
|
||||||
want to make a Python module from the SWIG timers library, just
|
want to make a Python module from the SWIG timers library, just
|
||||||
type this in any directory :
|
type this in any directory :
|
||||||
|
|
||||||
swig -python timers.i
|
swig -python timers.i
|
||||||
|
|
||||||
You will get the files timers_wrap.c and timers_wrap.doc in
|
You will get the files timers_wrap.c and timers_wrap.doc in
|
||||||
|
|
@ -1424,14 +1431,14 @@ Version 1.1 Beta6 (May 9, 1997)
|
||||||
unix >
|
unix >
|
||||||
|
|
||||||
Once in your directory you can customize the file to suit your
|
Once in your directory you can customize the file to suit your
|
||||||
particular purposes. The checkout option makes it easy to
|
particular purposes. The checkout option makes it easy to
|
||||||
grab library files without knowing anything about the SWIG
|
grab library files without knowing anything about the SWIG
|
||||||
installation, but it also makes it possible to start
|
installation, but it also makes it possible to start
|
||||||
including scripts, C code, and other miscellaneous files
|
including scripts, C code, and other miscellaneous files
|
||||||
in the library. For example, you could put a cool script
|
in the library. For example, you could put a cool script
|
||||||
in the library and check it out whenever you wanted to use it.
|
in the library and check it out whenever you wanted to use it.
|
||||||
*** New Feature ***
|
*** New Feature ***
|
||||||
|
|
||||||
3/24/97 : #pragma export directives added to Tcl output for compiling
|
3/24/97 : #pragma export directives added to Tcl output for compiling
|
||||||
shared libraries on the Mac.
|
shared libraries on the Mac.
|
||||||
|
|
||||||
|
|
@ -1445,11 +1452,11 @@ Version 1.1 Beta6 (May 9, 1997)
|
||||||
typemap to achieve some safety. For example :
|
typemap to achieve some safety. For example :
|
||||||
|
|
||||||
%typemap(perl5,check) Node * {
|
%typemap(perl5,check) Node * {
|
||||||
if (!$target)
|
if (!$target)
|
||||||
croak("NULL Pointers not allowed.");
|
croak("NULL Pointers not allowed.");
|
||||||
}
|
}
|
||||||
|
|
||||||
This prevents any NULL value of a "Node *" pointer to be
|
This prevents any NULL value of a "Node *" pointer to be
|
||||||
passed to a function. (I think this is much cleaner
|
passed to a function. (I think this is much cleaner
|
||||||
than the old -DALLOW_NULL hack anyways).
|
than the old -DALLOW_NULL hack anyways).
|
||||||
|
|
||||||
|
|
@ -1461,7 +1468,7 @@ Version 1.1 Beta6 (May 9, 1997)
|
||||||
validity of function input values. For example :
|
validity of function input values. For example :
|
||||||
|
|
||||||
%typemap(perl5,check) int posint {
|
%typemap(perl5,check) int posint {
|
||||||
if ($target < 0)
|
if ($target < 0)
|
||||||
croak("Argument is not a positive integer");
|
croak("Argument is not a positive integer");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1473,7 +1480,7 @@ Version 1.1 Beta6 (May 9, 1997)
|
||||||
|
|
||||||
3/18/97 : Fixed a few glitches in the typemap module with respect to
|
3/18/97 : Fixed a few glitches in the typemap module with respect to
|
||||||
chaining. For example :
|
chaining. For example :
|
||||||
|
|
||||||
%typemap(tcl,in) int {
|
%typemap(tcl,in) int {
|
||||||
$in // Inserts prexisting typemap
|
$in // Inserts prexisting typemap
|
||||||
printf("Received a %d\n", $target);
|
printf("Received a %d\n", $target);
|
||||||
|
|
@ -1502,7 +1509,7 @@ Version 1.1b5 Patch 1 (March 16, 1997)
|
||||||
attached to the previous declaration and will stay in the proper
|
attached to the previous declaration and will stay in the proper
|
||||||
location relative to the previous entry.
|
location relative to the previous entry.
|
||||||
|
|
||||||
Version 1.1b5 (March 12, 1997)
|
Version 1.1b5 (March 12, 1997)
|
||||||
==============================
|
==============================
|
||||||
|
|
||||||
3/11/97 : Fixed compilation problems introduced by Tcl/Tk 8.0a2.
|
3/11/97 : Fixed compilation problems introduced by Tcl/Tk 8.0a2.
|
||||||
|
|
@ -1514,7 +1521,7 @@ Version 1.1b5 (March 12, 1997)
|
||||||
3/9/97 : Parsing bugs with nested class definitions and privately
|
3/9/97 : Parsing bugs with nested class definitions and privately
|
||||||
declared nested class definitions fixed.
|
declared nested class definitions fixed.
|
||||||
|
|
||||||
3/9/97 : Fixed a few minor code generation bugs with C++ classes and
|
3/9/97 : Fixed a few minor code generation bugs with C++ classes and
|
||||||
constructors. In some cases, the resulting wrapper code
|
constructors. In some cases, the resulting wrapper code
|
||||||
would not compile properly. SWIG now attempts to use
|
would not compile properly. SWIG now attempts to use
|
||||||
the default copy constructor instead.
|
the default copy constructor instead.
|
||||||
|
|
@ -1531,7 +1538,7 @@ Version 1.1b5 (March 12, 1997)
|
||||||
swig -python example.i # Build a dynamically loaded extension
|
swig -python example.i # Build a dynamically loaded extension
|
||||||
swig -python -lembed.i example.i # Build a static extension
|
swig -python -lembed.i example.i # Build a static extension
|
||||||
|
|
||||||
These kinds of options could previously be accomplished with
|
These kinds of options could previously be accomplished with
|
||||||
conditional compilation such as :
|
conditional compilation such as :
|
||||||
|
|
||||||
%module example
|
%module example
|
||||||
|
|
@ -1567,10 +1574,10 @@ Version 1.1b5 (March 12, 1997)
|
||||||
would override a double [ANY][ANY][ANY]. However, overuse of the ANY
|
would override a double [ANY][ANY][ANY]. However, overuse of the ANY
|
||||||
tag in arrays of high-dimensions may not work as you expect due to
|
tag in arrays of high-dimensions may not work as you expect due to
|
||||||
the pattern matching rule used. For example, which of the following
|
the pattern matching rule used. For example, which of the following
|
||||||
typemaps has precedence?
|
typemaps has precedence?
|
||||||
|
|
||||||
%typemap(in) double [ANY][5] {} // Avoid this!
|
%typemap(in) double [ANY][5] {} // Avoid this!
|
||||||
%typemap(in) double [5][ANY] {}
|
%typemap(in) double [5][ANY] {}
|
||||||
|
|
||||||
3/7/97 : Fixed a number of bugs related to multi-dimensional array handling.
|
3/7/97 : Fixed a number of bugs related to multi-dimensional array handling.
|
||||||
Typedefs involving multi-dimensional arrays now works correctly.
|
Typedefs involving multi-dimensional arrays now works correctly.
|
||||||
|
|
@ -1581,9 +1588,9 @@ Version 1.1b5 (March 12, 1997)
|
||||||
...
|
...
|
||||||
extern double foo(MATRIX a);
|
extern double foo(MATRIX a);
|
||||||
|
|
||||||
Typecasting of pointers into multi-dimensional arrays is now
|
Typecasting of pointers into multi-dimensional arrays is now
|
||||||
implemented properly when making C/C++ function calls.
|
implemented properly when making C/C++ function calls.
|
||||||
|
|
||||||
3/6/97 : Fixed potentially dangerous bug in the Tcl Object-oriented
|
3/6/97 : Fixed potentially dangerous bug in the Tcl Object-oriented
|
||||||
interface. Well, actually, didn't fix it but issued a
|
interface. Well, actually, didn't fix it but issued a
|
||||||
Tcl error instead. The bug would manifest itself as follows:
|
Tcl error instead. The bug would manifest itself as follows:
|
||||||
|
|
@ -1604,7 +1611,7 @@ Version 1.1b5 (March 12, 1997)
|
||||||
...
|
...
|
||||||
% set m [List -this $l]
|
% set m [List -this $l]
|
||||||
Object name already exists!
|
Object name already exists!
|
||||||
|
|
||||||
Use catch{} to ignore the error.
|
Use catch{} to ignore the error.
|
||||||
|
|
||||||
3/3/97 : Better support for enums added. Datatypes of 'enum MyEnum'
|
3/3/97 : Better support for enums added. Datatypes of 'enum MyEnum'
|
||||||
|
|
@ -1624,17 +1631,17 @@ Version 1.1b5 (March 12, 1997)
|
||||||
|
|
||||||
3/3/97 : Added %import directive. This works exactly like %extern
|
3/3/97 : Added %import directive. This works exactly like %extern
|
||||||
except it tells the language module that the declarations are
|
except it tells the language module that the declarations are
|
||||||
coming from a separate module. This is usually only
|
coming from a separate module. This is usually only
|
||||||
needed when working with shadow classes.
|
needed when working with shadow classes.
|
||||||
|
|
||||||
3/2/97 : Changed pointer type-checker to be significantly more
|
3/2/97 : Changed pointer type-checker to be significantly more
|
||||||
efficient when working with derived datatypes. This
|
efficient when working with derived datatypes. This
|
||||||
has been accomplished by storing type-mappings in sorted
|
has been accomplished by storing type-mappings in sorted
|
||||||
order, using binary search schemes, and caching recently
|
order, using binary search schemes, and caching recently
|
||||||
used datatypes. For SWIG generated C++ modules that
|
used datatypes. For SWIG generated C++ modules that
|
||||||
make a large number of C function calls with derived types,
|
make a large number of C function calls with derived types,
|
||||||
this could result in speedups of between 100 and 50000 percent.
|
this could result in speedups of between 100 and 50000 percent.
|
||||||
However, due to the required sorting operation, module
|
However, due to the required sorting operation, module
|
||||||
loading time may increased slightly when there are lots of
|
loading time may increased slightly when there are lots of
|
||||||
datatypes.
|
datatypes.
|
||||||
|
|
||||||
|
|
@ -1647,8 +1654,8 @@ Version 1.1b5 (March 12, 1997)
|
||||||
2/26/97 : Fixed bug in Python module with -c option.
|
2/26/97 : Fixed bug in Python module with -c option.
|
||||||
|
|
||||||
2/26/97 : Slight tweak of parser to allow trailing comma in enumerations
|
2/26/97 : Slight tweak of parser to allow trailing comma in enumerations
|
||||||
such as
|
such as
|
||||||
|
|
||||||
enum Value (ALE, STOUT, LAGER, };
|
enum Value (ALE, STOUT, LAGER, };
|
||||||
|
|
||||||
2/25/97 : Fixed code generation bug in Tcl module when using the
|
2/25/97 : Fixed code generation bug in Tcl module when using the
|
||||||
|
|
@ -1665,7 +1672,7 @@ Version 1.1b5 (March 12, 1997)
|
||||||
Activeware port of Perl 5.003 running under Windows 95.
|
Activeware port of Perl 5.003 running under Windows 95.
|
||||||
The C source generated by SWIG should compile without
|
The C source generated by SWIG should compile without
|
||||||
modification under both versions of Perl, but is now
|
modification under both versions of Perl, but is now
|
||||||
even more hideous than before.
|
even more hideous than before.
|
||||||
|
|
||||||
2/25/97 : Modified parser to allow scope resolution operation to
|
2/25/97 : Modified parser to allow scope resolution operation to
|
||||||
appear in expressions and default arguments as in :
|
appear in expressions and default arguments as in :
|
||||||
|
|
@ -1698,7 +1705,7 @@ Version 1.1b5 (March 12, 1997)
|
||||||
running under Win95.
|
running under Win95.
|
||||||
|
|
||||||
2/19/97 : Fixed typedef handling bug in Perl5 shadow classes.
|
2/19/97 : Fixed typedef handling bug in Perl5 shadow classes.
|
||||||
|
|
||||||
2/19/97 : Added exception support. To use it, do the following :
|
2/19/97 : Added exception support. To use it, do the following :
|
||||||
|
|
||||||
%except(lang) {
|
%except(lang) {
|
||||||
|
|
@ -1731,8 +1738,8 @@ Version 1.1b5 (March 12, 1997)
|
||||||
but seemingly unnecessary declarations.
|
but seemingly unnecessary declarations.
|
||||||
|
|
||||||
2/18/97 : Optimized handling of member functions under inheritance.
|
2/18/97 : Optimized handling of member functions under inheritance.
|
||||||
SWIG can now use wrapper functions generated for a
|
SWIG can now use wrapper functions generated for a
|
||||||
base class instead of regenerating wrappers for
|
base class instead of regenerating wrappers for
|
||||||
the same functions in a derived class. This could
|
the same functions in a derived class. This could
|
||||||
make a drastic reduction in wrapper code size for C++
|
make a drastic reduction in wrapper code size for C++
|
||||||
applications with deep inheritance hierarchies and
|
applications with deep inheritance hierarchies and
|
||||||
|
|
@ -1781,10 +1788,10 @@ Version 1.1b5 (March 12, 1997)
|
||||||
|
|
||||||
Would apply the second typemap to all functions in Foo
|
Would apply the second typemap to all functions in Foo
|
||||||
due to delayed generation of C++ wrapper code (clearly this
|
due to delayed generation of C++ wrapper code (clearly this
|
||||||
is not the desired effect). Problem has been fixed by
|
is not the desired effect). Problem has been fixed by
|
||||||
assigning unique numerical identifiers to every datatype in
|
assigning unique numerical identifiers to every datatype in
|
||||||
an interface file and recording the "range of effect" of each
|
an interface file and recording the "range of effect" of each
|
||||||
typemap.
|
typemap.
|
||||||
|
|
||||||
2/11/97 : Added support for "ignore" and "default" typemaps. Only use
|
2/11/97 : Added support for "ignore" and "default" typemaps. Only use
|
||||||
if you absolutely know what you're doing.
|
if you absolutely know what you're doing.
|
||||||
|
|
@ -1804,7 +1811,7 @@ Version 1.1b5 (March 12, 1997)
|
||||||
2/9/97 : Added -make_default option for producing default constructors
|
2/9/97 : Added -make_default option for producing default constructors
|
||||||
and destructors for classes without them.
|
and destructors for classes without them.
|
||||||
|
|
||||||
2/9/97 : Changed the syntax of the SWIG %pragma directive to
|
2/9/97 : Changed the syntax of the SWIG %pragma directive to
|
||||||
%pragma option=value or %pragma(lang) option=value.
|
%pragma option=value or %pragma(lang) option=value.
|
||||||
This change makes the syntax a little more consistent
|
This change makes the syntax a little more consistent
|
||||||
between general pragmas and language-specific pragmas.
|
between general pragmas and language-specific pragmas.
|
||||||
|
|
@ -1815,7 +1822,7 @@ Version 1.1b5 (March 12, 1997)
|
||||||
structures, classes, and unions.
|
structures, classes, and unions.
|
||||||
|
|
||||||
2/9/97 : Fixed C++ compilation problem in Python 'embed.i' library file.
|
2/9/97 : Fixed C++ compilation problem in Python 'embed.i' library file.
|
||||||
|
|
||||||
2/9/97 : Fixed missing return value in perlmain.i library file.
|
2/9/97 : Fixed missing return value in perlmain.i library file.
|
||||||
|
|
||||||
2/9/97 : Fixed Python shadow classes to return an AttributeError when
|
2/9/97 : Fixed Python shadow classes to return an AttributeError when
|
||||||
|
|
@ -1842,7 +1849,7 @@ Version 1.1b5 (March 12, 1997)
|
||||||
shadow classes.
|
shadow classes.
|
||||||
|
|
||||||
1/23/97 : Fixed bug with nested %extern declarations.
|
1/23/97 : Fixed bug with nested %extern declarations.
|
||||||
|
|
||||||
1/21/97 : Fixed problem with typedef involving const datatypes.
|
1/21/97 : Fixed problem with typedef involving const datatypes.
|
||||||
|
|
||||||
1/21/97 : Somewhat obscure, but serious bug with having multiple levels
|
1/21/97 : Somewhat obscure, but serious bug with having multiple levels
|
||||||
|
|
@ -1855,7 +1862,7 @@ Version 1.1 Beta4 (January 16, 1997)
|
||||||
====================================
|
====================================
|
||||||
|
|
||||||
Note : SWIG 1.1b3 crashed and burned shortly after take off due
|
Note : SWIG 1.1b3 crashed and burned shortly after take off due
|
||||||
to a few major run-time problems that surfaced after release.
|
to a few major run-time problems that surfaced after release.
|
||||||
This release should fix most, if not all, of those problems.
|
This release should fix most, if not all, of those problems.
|
||||||
|
|
||||||
1/16/97 : Fixed major memory management bug on Linux
|
1/16/97 : Fixed major memory management bug on Linux
|
||||||
|
|
@ -1875,7 +1882,7 @@ This release should fix most, if not all, of those problems.
|
||||||
a C++ class. SWIG was not generating correct code,
|
a C++ class. SWIG was not generating correct code,
|
||||||
but a new scoping mechanism and method for handling
|
but a new scoping mechanism and method for handling
|
||||||
datatypes inside a C++ class have been added.
|
datatypes inside a C++ class have been added.
|
||||||
|
|
||||||
1/14/97 : Changed enumerations to use the value name instead
|
1/14/97 : Changed enumerations to use the value name instead
|
||||||
of any values that might have appeared in the interface
|
of any values that might have appeared in the interface
|
||||||
file. This makes the code a little more friendly to
|
file. This makes the code a little more friendly to
|
||||||
|
|
@ -1937,7 +1944,7 @@ Version 1.1 Beta2 (December 3, 1996)
|
||||||
#define A (int) 3
|
#define A (int) 3
|
||||||
|
|
||||||
4. Added support for typedef lists. For example :
|
4. Added support for typedef lists. For example :
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
double x,y,z;
|
double x,y,z;
|
||||||
} Vector, *VectorPtr;
|
} Vector, *VectorPtr;
|
||||||
|
|
@ -2113,7 +2120,7 @@ There are lots of changes in this release :
|
||||||
|
|
||||||
5. The syntax of the %name directive has been changed. Use of the
|
5. The syntax of the %name directive has been changed. Use of the
|
||||||
old one should generate a warning message, but may still work.
|
old one should generate a warning message, but may still work.
|
||||||
|
|
||||||
6. To support Tcl/Tk on non-unix platforms, SWIG imports a file called
|
6. To support Tcl/Tk on non-unix platforms, SWIG imports a file called
|
||||||
swigtcl.cfg from the $(SWIG_LIB)/tcl directory. I don't have access
|
swigtcl.cfg from the $(SWIG_LIB)/tcl directory. I don't have access
|
||||||
to an NT machine, but this file is supposedly allows SWIG to
|
to an NT machine, but this file is supposedly allows SWIG to
|
||||||
|
|
@ -2132,7 +2139,7 @@ There are lots of changes in this release :
|
||||||
- Documentation order is printed in interface file order by
|
- Documentation order is printed in interface file order by
|
||||||
default. This can be overridden by putting an %alpha
|
default. This can be overridden by putting an %alpha
|
||||||
directive in the beginning of the interface file.
|
directive in the beginning of the interface file.
|
||||||
|
|
||||||
- You can supply additional documentation text using
|
- You can supply additional documentation text using
|
||||||
|
|
||||||
%text %{ put your text here %}
|
%text %{ put your text here %}
|
||||||
|
|
@ -2203,9 +2210,9 @@ notes are in no particular order--hope I remembered everything....
|
||||||
1. Tcl/Tk
|
1. Tcl/Tk
|
||||||
|
|
||||||
SWIG is known to work with Tcl7.3, Tk3.6 and later versions.
|
SWIG is known to work with Tcl7.3, Tk3.6 and later versions.
|
||||||
I've also tested SWIG with expect-5.19.
|
I've also tested SWIG with expect-5.19.
|
||||||
|
|
||||||
Normally SWIG expects to use the header files "tcl.h" and "tk.h".
|
Normally SWIG expects to use the header files "tcl.h" and "tk.h".
|
||||||
Newer versions of Tcl/Tk use version numbers. You can specify these
|
Newer versions of Tcl/Tk use version numbers. You can specify these
|
||||||
in SWIG as follows :
|
in SWIG as follows :
|
||||||
|
|
||||||
|
|
@ -2231,7 +2238,7 @@ This is a somewhat experimental implementation, but is alot less
|
||||||
buggy than the alpha release. SWIG operates independently of
|
buggy than the alpha release. SWIG operates independently of
|
||||||
the XS language and xsubpp supplied with Perl5. Currently SWIG
|
the XS language and xsubpp supplied with Perl5. Currently SWIG
|
||||||
produces the necessary C code and .pm file needed to dynamically
|
produces the necessary C code and .pm file needed to dynamically
|
||||||
load a module into Perl5.
|
load a module into Perl5.
|
||||||
|
|
||||||
To support Perl5's notion of modules and packages (as with xsubpp),
|
To support Perl5's notion of modules and packages (as with xsubpp),
|
||||||
you can use the following command line options :
|
you can use the following command line options :
|
||||||
|
|
@ -2263,18 +2270,18 @@ If you really want to live on the edge, pick up a copy of Guile-iii and
|
||||||
play around with this. This is highly experimental---especially since
|
play around with this. This is highly experimental---especially since
|
||||||
I'm not sure what the official state of Guile is these days. This
|
I'm not sure what the official state of Guile is these days. This
|
||||||
implementation may change at any time should I suddenly figure out better
|
implementation may change at any time should I suddenly figure out better
|
||||||
ways to do things.
|
ways to do things.
|
||||||
|
|
||||||
6. Extending SWIG
|
6. Extending SWIG
|
||||||
|
|
||||||
SWIG is written in C++ although I tend to think of the code as mostly
|
SWIG is written in C++ although I tend to think of the code as mostly
|
||||||
being ANSI C with a little inheritance thrown in. Each target language
|
being ANSI C with a little inheritance thrown in. Each target language
|
||||||
is implemented as a C++ class that can be plugged into the system.
|
is implemented as a C++ class that can be plugged into the system.
|
||||||
If you want to add your own modifications, see Appendix C of the user
|
If you want to add your own modifications, see Appendix C of the user
|
||||||
manual. Then take a look at the "user" directory which contains some
|
manual. Then take a look at the "user" directory which contains some
|
||||||
code for building your own extenions.
|
code for building your own extenions.
|
||||||
|
|
||||||
7. The SWIG library
|
7. The SWIG library
|
||||||
|
|
||||||
The SWIG library is still incomplete. Some of the files mentioned in
|
The SWIG library is still incomplete. Some of the files mentioned in
|
||||||
the user manual are unavailable. These files will be made available
|
the user manual are unavailable. These files will be made available
|
||||||
|
|
@ -2293,7 +2300,7 @@ Version 0.1 Alpha (February 9, 1996)
|
||||||
|
|
||||||
1. Run-time type-checking of SWIG pointers. Pointers are now represented
|
1. Run-time type-checking of SWIG pointers. Pointers are now represented
|
||||||
as strings with both numeric and encoded type information. This makes
|
as strings with both numeric and encoded type information. This makes
|
||||||
it a little harder to shoot yourself in the foot (and it eliminates
|
it a little harder to shoot yourself in the foot (and it eliminates
|
||||||
some segmentation faults and other oddities).
|
some segmentation faults and other oddities).
|
||||||
|
|
||||||
2. Python 1.3 now supported.
|
2. Python 1.3 now supported.
|
||||||
|
|
@ -2301,7 +2308,7 @@ Version 0.1 Alpha (February 9, 1996)
|
||||||
3. #define and enum can be used to install constants.
|
3. #define and enum can be used to install constants.
|
||||||
|
|
||||||
4. Completely rewrote the %include directive and made it alot more powerful.
|
4. Completely rewrote the %include directive and made it alot more powerful.
|
||||||
|
|
||||||
5. Restructured the SWIG library to make it work better.
|
5. Restructured the SWIG library to make it work better.
|
||||||
|
|
||||||
6. Various bug fixes to Tcl, Perl4, Perl5, and Guile implementations.
|
6. Various bug fixes to Tcl, Perl4, Perl5, and Guile implementations.
|
||||||
|
|
@ -2310,7 +2317,7 @@ Version 0.1 Alpha (February 9, 1996)
|
||||||
|
|
||||||
8. Made some changes to SWIG's class structure to make it easier to expand.
|
8. Made some changes to SWIG's class structure to make it easier to expand.
|
||||||
SWIG is now built into a library file that you can use to make your
|
SWIG is now built into a library file that you can use to make your
|
||||||
own extenions.
|
own extenions.
|
||||||
|
|
||||||
9. Made extensive changes to the documentation.
|
9. Made extensive changes to the documentation.
|
||||||
|
|
||||||
|
|
@ -2325,7 +2332,7 @@ Version 0.1 Alpha (February 9, 1996)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue