* Updates for string- and vector-move-right/left! docstrings.
[bpt/guile.git] / TODO
diff --git a/TODO b/TODO
dissimilarity index 98%
index 13a3db0..8fd602b 100644 (file)
--- a/TODO
+++ b/TODO
@@ -1,38 +1,99 @@
-* Add facilities for debugging Scheme programs.
-
-The low-level debugging support is done, and we are now working on the
-user interface.
-
-* Documentation.
-
-We have a new layout for the reference manual which covers the
-C/Scheme interface, as well as the scheme variants.  We also want a
-more thorough tutorial manual, but we haven't sketched that out yet.
-
-
-Desired later on
-
-* Good interface to Tk and Gtk
-
-* Add a convenient facility for running a pipeline of processes
-with redirections.  Gary Houston <ghouston@actrix.gen.nz>
-is working on this.
-
-* Make it possible to link Guile and TK without using libtcl.a, by
-providing Guile-based replacements for the libtcl.a functions that TK
-requires.
-
-* Make ordinary lambda functions work as callbacks for Tk;
-eliminate the need for tcl-lambda.
-
-* Translators for additional languages; in particular, Perl, Python,
-TCL, Emacs Lisp, and Rexx.
-
-* Clean up declarations of C functions to use a PROTO macro
-for conditional prototypes, instead of explicit conditionals.
-
-* A package for time conversions and formatting.
-
-* Make GDB work with Guile
-
-This would permit programmable debugging and a nice integrated GUI.
+The Guile TODO List (actually, an -*-outline-*-)
+
+* Protocol
+
+These TODO items are grouped by target release version.  The first group is
+the "Eventually" group, which is not associated w/ any particular version.
+Items should be initially added to this group, and then later moved under a
+version upon either ownership or sponsorship.
+
+Maintainers (w/ write privs) indicate ownership by `[USERNAME]'.  Use
+`[ACTUAL-OWNER:MAINTAINER]' to indicate sponsorship, where both elements are
+usernames.
+
+Upon completion, simply change the "-" to a "+", but do not delete the item.
+At release time, the "+" entries will be deleted after review to make sure
+that user-visible changes are reflected in NEWS.
+
+
+* Eventually
+
+- [after signal handling and threading have been fixed] remove the code
+  corresponding to GUILE_OLD_ASYNC_CLICK and the corresponding
+  GUILE_OLD_ASYNC_CLICK macro.
+- implement and integrate generational garbage collection
+- add POSIX thread support
+- factor thread support out of libguile
+- protect common resources using mutecis from the new interface
+- remove the dynamic roots
+- revise the fluid implementation
+- implement the GC thread synchronization (all threads: go to sleep!)
+- implementing the libguileposix threads glue library
+- develop better representation for GOOPS objects
+- write Orbit CORBA interface
+- [after new module system] factor out modules sort.c and random.c should be
+  factored out into separate modules
+- include malloc debugging code in an optional file in libguile
+- fix looking up procedure names in environment in backtraces
+- implement srcprops using double cells
+- use "real" procprops
+- add facilities for easily debugging Scheme programs from Emacs
+- write good interface to Tk
+- write translators for additional languages
+  - Perl
+  - Python
+  - TCL
+  - Emacs Lisp
+  - Rexx
+- make GDB work with Guile
+- use the SCM trick of tagging environments with immediates (see m_letrec1)
+  to convert source correctly in unmemocopy
+- eliminate argument checking for closures
+- Implement a thread-safe alternative to SCM's environment caches
+- rename ice-9 to something more obvious
+- implement implicitly shared substrings (thread-safe, copy on write).  In
+  this context, the concept of read-only-strings might be re-introduced to
+  implement the symbol->string semantics of R5RS.
+- implement internationalized strings
+- revise the uniform vector implementation
+- make the set of error signalling functions more consistent
+- Fix bug reported by Sven.Hartrumpf@fernuni-hagen.de 2001-08-31:
+  (debug-disable 'debug) has no effect if it is the first form in ~/.guile.
+
+
+* Before releasing 1.8.0:
+
+- add DLL support [ela]                <-- set by ttn (my bad)
+
++ sync srfi-modules.texi [ttn]
+
+- For GOOPS: [ttn]
+  - rewrite method cache management in C
+  - rewrite core macros (define-class et al) in C
+  - define C API
+
+- Compile with --enable-error-on-warning without failure.  Requires a
+  number of fixes, including num2integral.i.c and on some platforms
+  gc_os_dep.c.  Also SCM_FIXABLE etc. will produce unavoidable
+  warnings on some platforms with some vars as written now.  i.e. on
+  alphas, SCM_FIXABLE(some_int) is always true.  We need more
+  conditional compilation or similar.
+
+- Move sample .gdbinit in HACKING to somewhere more appropriate (manual?).
+
+- Make sure we have appropriate interface numbers for shared
+  libraries, and that we document and use the libtool
+  conventions. [rlb].
+
+- Update the version numbers in GUILE-VERSION and README. [rlb]
+
+- Start a new section of the NEWS file.
+
+
+* Before releasing 1.10.0:
+
+- in boot-9.scm:
+  remove deprecated function `feature?ยด.
+
+
+[TODO ends here]