Update for 1.3.17 release
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@4127 626c5289-ae23-0410-ae9c-e8d60b6d4f22
This commit is contained in:
parent
a3255749ac
commit
5fcae5eb66
2 changed files with 27 additions and 22 deletions
2
README
2
README
|
|
@ -1,6 +1,6 @@
|
||||||
SWIG (Simplified Wrapper and Interface Generator)
|
SWIG (Simplified Wrapper and Interface Generator)
|
||||||
|
|
||||||
Version: 1.3.16 (October 14, 2002)
|
Version: 1.3.17 (November 22, 2002)
|
||||||
|
|
||||||
$Header$
|
$Header$
|
||||||
|
|
||||||
|
|
|
||||||
47
TODO
47
TODO
|
|
@ -1,11 +1,11 @@
|
||||||
SWIG TO-DO
|
SWIG TO-DO
|
||||||
|
|
||||||
Release: SWIG-1.3.16 (Late September, 2002)
|
Release: SWIG-1.3.16 (Late September, 2002)
|
||||||
-----------------------------------------------------------------------------
|
-----------------------------------------------------------------------------
|
||||||
|
|
||||||
**** = High Priority
|
**** = High Priority
|
||||||
*** = Implement if possible.
|
*** = Implement if possible.
|
||||||
** = Will implement if time.
|
** = Will implement if time.
|
||||||
* = Implement if bored (or deemed necessary).
|
* = Implement if bored (or deemed necessary).
|
||||||
|
|
||||||
defer = Implement in 1.3.17
|
defer = Implement in 1.3.17
|
||||||
|
|
@ -25,7 +25,7 @@ defer ready to go. The primary obstacle lies in the target language
|
||||||
};
|
};
|
||||||
|
|
||||||
This is one of the last remaining "hard" problems in the SWIG
|
This is one of the last remaining "hard" problems in the SWIG
|
||||||
core, but it is important that we solve it.
|
core, but it is important that we solve it.
|
||||||
|
|
||||||
**** Typemap environments. Stay tuned.
|
**** Typemap environments. Stay tuned.
|
||||||
|
|
||||||
|
|
@ -62,12 +62,19 @@ defer ready to go. The primary obstacle lies in the target language
|
||||||
|
|
||||||
*** Add attributes to the %feature directive. Something like:
|
*** Add attributes to the %feature directive. Something like:
|
||||||
|
|
||||||
%feature("except", throws="OutOfMemoryException")
|
%feature("except", throws="OutOfMemoryException")
|
||||||
|
|
||||||
*** Implement $fail special variable substitution in wrappers. Used
|
*** Implement $fail special variable substitution in wrappers. Used
|
||||||
to properly transfer control out of a wrapper function while
|
to properly transfer control out of a wrapper function while
|
||||||
reclaiming resources.
|
reclaiming resources.
|
||||||
|
|
||||||
|
*** Better targeting of output typemaps. For example:
|
||||||
|
It is not possible to target an output typemap for function
|
||||||
|
Foo::func() and not Bar::func(). Output typemaps need to support
|
||||||
|
syntax something along the lines of:
|
||||||
|
|
||||||
|
%typemap(out) int *Foo::func { ... }
|
||||||
|
|
||||||
*** Rewrite declaration annotation to better unify %rename and related
|
*** Rewrite declaration annotation to better unify %rename and related
|
||||||
directives. Add a selector mechanism that allows specific parse tree
|
directives. Add a selector mechanism that allows specific parse tree
|
||||||
nodes to be identified. For example:
|
nodes to be identified. For example:
|
||||||
|
|
@ -77,8 +84,8 @@ defer ready to go. The primary obstacle lies in the target language
|
||||||
Also desirable for the Java module to specify the classes to go in the
|
Also desirable for the Java module to specify the classes to go in the
|
||||||
throw clause:
|
throw clause:
|
||||||
|
|
||||||
%feature("except", throws="OutOfMemoryException") Foo {
|
%feature("except", throws="OutOfMemoryException") Foo {
|
||||||
... code which throws the OutOfMemoryException ...
|
... code which throws the OutOfMemoryException ...
|
||||||
};
|
};
|
||||||
|
|
||||||
Consider use of wildcards. Namespace/nested scope support in
|
Consider use of wildcards. Namespace/nested scope support in
|
||||||
|
|
@ -89,7 +96,7 @@ defer ready to go. The primary obstacle lies in the target language
|
||||||
*** Bring Aquinas' contract/assertion checking code online.
|
*** Bring Aquinas' contract/assertion checking code online.
|
||||||
|
|
||||||
*** Add more intelligent information related to object ownership.
|
*** Add more intelligent information related to object ownership.
|
||||||
SWIG should be able to automatically strip ownership from
|
SWIG should be able to automatically strip ownership from
|
||||||
objects when they are assigned to pointer variables and structure
|
objects when they are assigned to pointer variables and structure
|
||||||
members as well as stored in a container (i.e., an array of pointers).
|
members as well as stored in a container (i.e., an array of pointers).
|
||||||
|
|
||||||
|
|
@ -104,7 +111,7 @@ defer ready to go. The primary obstacle lies in the target language
|
||||||
public:
|
public:
|
||||||
Blah *operator->();
|
Blah *operator->();
|
||||||
};
|
};
|
||||||
|
|
||||||
class Bar : public Foo {
|
class Bar : public Foo {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -132,7 +139,7 @@ defer ready to go. The primary obstacle lies in the target language
|
||||||
** Unification of symbol tables and type system scopes. In a sense
|
** Unification of symbol tables and type system scopes. In a sense
|
||||||
they capture the same information so it is not necessary to have
|
they capture the same information so it is not necessary to have
|
||||||
both. The existence of two symbol management systems is mostly
|
both. The existence of two symbol management systems is mostly
|
||||||
historical.
|
historical.
|
||||||
|
|
||||||
** Add a warning for uninstantiated templates. For example, if a function
|
** Add a warning for uninstantiated templates. For example, if a function
|
||||||
using a template type, but that type hasn't been instantiated using
|
using a template type, but that type hasn't been instantiated using
|
||||||
|
|
@ -146,9 +153,6 @@ defer ready to go. The primary obstacle lies in the target language
|
||||||
Build
|
Build
|
||||||
-----
|
-----
|
||||||
|
|
||||||
**** Upgrade libtool to a more recent version. Might fix linking on OS-X
|
|
||||||
but should definitely help on Cygwin.
|
|
||||||
|
|
||||||
**** Make sure there are tests for *ALL* library files in the test-suite.
|
**** Make sure there are tests for *ALL* library files in the test-suite.
|
||||||
A number of files appear to be broken in SWIG-1.3.13.
|
A number of files appear to be broken in SWIG-1.3.13.
|
||||||
|
|
||||||
|
|
@ -157,7 +161,7 @@ Build
|
||||||
|
|
||||||
* Upgrade autoconf? This will definitely help for Windows. The later the
|
* Upgrade autoconf? This will definitely help for Windows. The later the
|
||||||
version the better.
|
version the better.
|
||||||
|
|
||||||
Library
|
Library
|
||||||
-------
|
-------
|
||||||
|
|
||||||
|
|
@ -218,10 +222,10 @@ Ruby
|
||||||
from Base2 would still work as they currently are, unless other derived
|
from Base2 would still work as they currently are, unless other derived
|
||||||
classes also use MI. The exception and extra wrapper generation would
|
classes also use MI. The exception and extra wrapper generation would
|
||||||
only kick in with the use of multiple inheritance where the base class
|
only kick in with the use of multiple inheritance where the base class
|
||||||
information is available to SWIG.
|
information is available to SWIG.
|
||||||
|
|
||||||
The feature could be turned on and off, and doesn't have to be default
|
The feature could be turned on and off, and doesn't have to be default
|
||||||
if necessary.
|
if necessary.
|
||||||
|
|
||||||
I was under the impression that the Tcl module, until a few releases ago,
|
I was under the impression that the Tcl module, until a few releases ago,
|
||||||
did all inheritance this way (generating wrappers for superclass methods
|
did all inheritance this way (generating wrappers for superclass methods
|
||||||
|
|
@ -235,12 +239,12 @@ Ruby
|
||||||
support for MI at all unless you want to get fancy with mixins. I'm not
|
support for MI at all unless you want to get fancy with mixins. I'm not
|
||||||
sure how good of an idea that is or even if it is workable.
|
sure how good of an idea that is or even if it is workable.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
Another problem (which we can't really get around anyways) is that
|
Another problem (which we can't really get around anyways) is that
|
||||||
basic inheritance relationships wouldn't be true at the Ruby level,
|
basic inheritance relationships wouldn't be true at the Ruby level,
|
||||||
e.g. Derived#is_a?(Base1) would return true but Derived#is_a?(Base2)
|
e.g. Derived#is_a?(Base1) would return true but Derived#is_a?(Base2)
|
||||||
would return false.
|
would return false.
|
||||||
|
|
||||||
** A related suggestion from Brett Williams (and perhaps an alternative
|
** A related suggestion from Brett Williams (and perhaps an alternative
|
||||||
to the previously described workaround for MI) is to provide a
|
to the previously described workaround for MI) is to provide a
|
||||||
variant of the %extend directive that allows you to pretend that these
|
variant of the %extend directive that allows you to pretend that these
|
||||||
|
|
@ -258,7 +262,7 @@ Ruby
|
||||||
As written, SWIG would expect you to have provided functions with
|
As written, SWIG would expect you to have provided functions with
|
||||||
names classname_AddArtProperty(), etc. somewhere else in the wrapper
|
names classname_AddArtProperty(), etc. somewhere else in the wrapper
|
||||||
code. We'd prefer that it somehow knew to call the function directly.
|
code. We'd prefer that it somehow knew to call the function directly.
|
||||||
|
|
||||||
* Consider adding a switch to define everything in the global (Kernel)
|
* Consider adding a switch to define everything in the global (Kernel)
|
||||||
module instead of nested in a user-defined module, but only if
|
module instead of nested in a user-defined module, but only if
|
||||||
it comes up.
|
it comes up.
|
||||||
|
|
@ -266,8 +270,7 @@ Ruby
|
||||||
Java
|
Java
|
||||||
----
|
----
|
||||||
|
|
||||||
* Consider using typemaps for proxy class code generation. [partially
|
[DONE] Consider using typemaps for proxy class code generation.
|
||||||
implemented]
|
|
||||||
|
|
||||||
PHP
|
PHP
|
||||||
---
|
---
|
||||||
|
|
@ -315,7 +318,7 @@ Guile
|
||||||
code that puts the functions into our type table. No
|
code that puts the functions into our type table. No
|
||||||
additional functions are generated.
|
additional functions are generated.
|
||||||
|
|
||||||
-- The default for all pointer types would be:
|
-- The default for all pointer types would be:
|
||||||
%typemap(destructor) SWIGPOINTER * "free";
|
%typemap(destructor) SWIGPOINTER * "free";
|
||||||
(or "delete" for C++)
|
(or "delete" for C++)
|
||||||
|
|
||||||
|
|
@ -336,6 +339,8 @@ Guile
|
||||||
** Maybe communicate the type system between object modules via Scheme
|
** Maybe communicate the type system between object modules via Scheme
|
||||||
variables, rather than a shared object.
|
variables, rather than a shared object.
|
||||||
|
|
||||||
|
** Provide a clean way to construct type predicates.
|
||||||
|
|
||||||
Mzscheme
|
Mzscheme
|
||||||
--------
|
--------
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue