summaryrefslogtreecommitdiff
path: root/TODO
diff options
context:
space:
mode:
authorWilliam S Fulton <wsf@fultondesigns.co.uk>2002-11-23 13:15:50 +0000
committerWilliam S Fulton <wsf@fultondesigns.co.uk>2002-11-23 13:15:50 +0000
commit5fcae5eb66d377e1c3f81da7465c44a62295a72b (patch)
tree8d79da10dfdf6017e138ae777164217859ad106c /TODO
parenta3255749acbb49b71f7c78f0a80e937a33db8d2e (diff)
downloadswig-5fcae5eb66d377e1c3f81da7465c44a62295a72b.tar.gz
Update for 1.3.17 release
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@4127 626c5289-ae23-0410-ae9c-e8d60b6d4f22
Diffstat (limited to 'TODO')
-rw-r--r--TODO47
1 files changed, 26 insertions, 21 deletions
diff --git a/TODO b/TODO
index ad59f825b..ff7f1659b 100644
--- a/TODO
+++ b/TODO
@@ -1,11 +1,11 @@
-SWIG TO-DO
+SWIG TO-DO
Release: SWIG-1.3.16 (Late September, 2002)
-----------------------------------------------------------------------------
**** = High Priority
*** = Implement if possible.
-** = Will implement if time.
+** = Will implement if time.
* = Implement if bored (or deemed necessary).
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
- core, but it is important that we solve it.
+ core, but it is important that we solve it.
**** 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:
- %feature("except", throws="OutOfMemoryException")
+ %feature("except", throws="OutOfMemoryException")
*** Implement $fail special variable substitution in wrappers. Used
to properly transfer control out of a wrapper function while
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
directives. Add a selector mechanism that allows specific parse tree
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
throw clause:
- %feature("except", throws="OutOfMemoryException") Foo {
- ... code which throws the OutOfMemoryException ...
+ %feature("except", throws="OutOfMemoryException") Foo {
+ ... code which throws the OutOfMemoryException ...
};
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.
*** 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
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:
Blah *operator->();
};
-
+
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
they capture the same information so it is not necessary to have
both. The existence of two symbol management systems is mostly
- historical.
+ historical.
** Add a warning for uninstantiated templates. For example, if a function
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
-----
-**** 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.
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
version the better.
-
+
Library
-------
@@ -218,10 +222,10 @@ Ruby
from Base2 would still work as they currently are, unless other derived
classes also use MI. The exception and extra wrapper generation would
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
- if necessary.
+ if necessary.
I was under the impression that the Tcl module, until a few releases ago,
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
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
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)
would return false.
-
+
** A related suggestion from Brett Williams (and perhaps an alternative
to the previously described workaround for MI) is to provide a
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
names classname_AddArtProperty(), etc. somewhere else in the wrapper
code. We'd prefer that it somehow knew to call the function directly.
-
+
* Consider adding a switch to define everything in the global (Kernel)
module instead of nested in a user-defined module, but only if
it comes up.
@@ -266,8 +270,7 @@ Ruby
Java
----
-* Consider using typemaps for proxy class code generation. [partially
- implemented]
+[DONE] Consider using typemaps for proxy class code generation.
PHP
---
@@ -315,7 +318,7 @@ Guile
code that puts the functions into our type table. No
additional functions are generated.
- -- The default for all pointer types would be:
+ -- The default for all pointer types would be:
%typemap(destructor) SWIGPOINTER * "free";
(or "delete" for C++)
@@ -336,6 +339,8 @@ Guile
** Maybe communicate the type system between object modules via Scheme
variables, rather than a shared object.
+** Provide a clean way to construct type predicates.
+
Mzscheme
--------