0.7.7.24:
[sbcl.git] / TODO
diff --git a/TODO b/TODO
index 3c6e526..7de2072 100644 (file)
--- a/TODO
+++ b/TODO
@@ -1,43 +1,13 @@
-for 0.7.0:
-
-* filed off the roughest edges (or, perhaps, at least hammered down the
-       protruding rusty nails and snipped off the trailing razor wire,
-       leaving some filing for later:-) from the monster
-       EVAL/EVAL-WHEN/%COMPILE/DEFUN/DEFSTRUCT cleanup:
-       ** substantially rewrote DEFSTRUCT implementation to work
-               cleanly with EVAL-WHEN, not sleazily use DEFUN for 
-               structure functions, implement out-of-line structure
-               accessors as closures, reduce or eliminate non-ANSI
-               magicality of structure functions
-               *** made structure type tests work again
-               *** got rid of bogus warnings about "redefinition" of
-                       structure accessors
-       ** made inlining DEFUN inside MACROLET work again
-       ** made %COMPILE set up debugging data more like the way the
-               debugger expects (and maybe even completely
-               correctly:-)
-* incompatible changes listed in NEWS:
-       ** changed debugger prompt to "5]", "5[2]", "5[3]", etc.
-       ** changed default output representation of *PRINT-ESCAPE*-ed
-               unprintable ASCII characters to #\Nul, #\Soh, etc.
-* some easy FIXMEs with high disruptive potential:
-       ** Search lists go away.
-       ** Grep for ~D and and change most of them to ~S.
-* more renaming in global external names:
-       ** used DEFINE-THE-FOO-THING and DEFFOO style consistently (and 
-               deprecated supported extensions named in the DEF-FOO
-               style, e.g. SB-ALIEN:DEF-ALIEN-ROUTINE)
-       ** reserved DO-FOO-style names for iteration macros
-       ** finished s/FUNCTION/FUN/
-       ** s/VARIABLE/VAR/
-       ** s/TOPLEVEL/TOP-LEVEL/
-* global style systematization:
-       ** s/#'(lambda/(lambda/
-       ** four-space indentation in C
-=======================================================================
 for early 0.7.x:
 
 for early 0.7.x:
 
-* building with CLISP (or explaining why not)
+* urgent EVAL/EVAL-WHEN/%COMPILE/DEFUN/DEFSTRUCT cleanup:
+       ** made inlining DEFUN inside MACROLET work again
+       ** (also, while working on INLINE anyway, it might be easy
+               to flush the old MAYBE-INLINE cruft entirely, 
+               including e.g. on the man page)
+* test file reworking
+       ** non-x86 ports now pass irrat.pure.lisp
+       ** sparc and ppc now pass bit-vector.impure-cload.lisp
 * faster bootstrapping (both make.sh and slam.sh)
        ** added mechanisms for automatically finding dead code, and
                used them to remove dead code
 * faster bootstrapping (both make.sh and slam.sh)
        ** added mechanisms for automatically finding dead code, and
                used them to remove dead code
@@ -45,13 +15,16 @@ for early 0.7.x:
                (so that slam.sh will run faster and also just because
                ideally everything would be in cold init)
        ** profiled and tweaked
                (so that slam.sh will run faster and also just because
                ideally everything would be in cold init)
        ** profiled and tweaked
+* fixed (TRACE :REPORT PROFILE ...) interface to profiling
 * more EVAL/EVAL-WHEN/%COMPILE/DEFUN/DEFSTRUCT cleanup:
        ** made %COMPILE understand magicality of DEFUN FOO
                w.r.t. e.g. preexisting inlineness of FOO
        ** used %COMPILE where COMPILE-TOP-LEVEL used to be used
        ** removed now-redundant COMPILE-TOP-LEVEL and 
                FUNCTIONAL-KIND=:TOP-LEVEL stuff from the compiler
 * more EVAL/EVAL-WHEN/%COMPILE/DEFUN/DEFSTRUCT cleanup:
        ** made %COMPILE understand magicality of DEFUN FOO
                w.r.t. e.g. preexisting inlineness of FOO
        ** used %COMPILE where COMPILE-TOP-LEVEL used to be used
        ** removed now-redundant COMPILE-TOP-LEVEL and 
                FUNCTIONAL-KIND=:TOP-LEVEL stuff from the compiler
-       ** made FUNCTION-NAME logic work on closures, so that
+       ** (ideally, but perhaps too hard, given what I've discovered
+               about the godawful internals of function debug names):
+               made FUNCTION-NAME logic work on closures, so that
                various public functions like CL:PACKAGEP which
                are now implemented as closures (because
                they're structure slot accessors) won't be so
                various public functions like CL:PACKAGEP which
                are now implemented as closures (because
                they're structure slot accessors) won't be so
@@ -60,9 +33,13 @@ for early 0.7.x:
        DEFSTRUCTs
 * outstanding embarrassments
        ** cut-and-pasted DEF-BOOLEAN-ATTRIBUTE (maybe easier to fix
        DEFSTRUCTs
 * outstanding embarrassments
        ** cut-and-pasted DEF-BOOLEAN-ATTRIBUTE (maybe easier to fix
-               now that EVAL-WHEN does what it should..)
-       ** incomplete manual
-       ** :IGNORE-ERRORS-P cruft in stems-and-flags.lisp-expr
+               now that EVAL-WHEN works correctly..)
+       ** :IGNORE-ERRORS-P cruft in stems-and-flags.lisp-expr. (It's
+               reasonable to support this as a crutch when initially
+               bootstrapping from balky xc hosts with their own
+               idiosyncratic ideas of what merits FAILURE-P, but it's
+               embarrassing to have to use it when bootstrapping 
+               under SBCL!),
        ** weird double-loading (first in GENESIS, then in warm init)
                of src/assembly/target/*.lisp stuff, and the associated
                weirdness of the half-baked state (compiler almost but
        ** weird double-loading (first in GENESIS, then in warm init)
                of src/assembly/target/*.lisp stuff, and the associated
                weirdness of the half-baked state (compiler almost but
@@ -81,14 +58,18 @@ for early 0.7.x:
                        os_trunc_foo(), os_round_up_foo()
                ** removed various avoid-evaluating-C-macro-arg-twice
                        cruft
                        os_trunc_foo(), os_round_up_foo()
                ** removed various avoid-evaluating-C-macro-arg-twice
                        cruft
-* added mechanisms for automatically finding dead symbols is
+* added mechanisms for automatically finding dead symbols in
        package-data.lisp-expr (i.e. those symbols not bound,
        fbound, defined as types, or whatever), and used them
        to remove dead symbols
        package-data.lisp-expr (i.e. those symbols not bound,
        fbound, defined as types, or whatever), and used them
        to remove dead symbols
-* made system handle stack overflow safely unless SAFETY is dominated
-       by SPEED or SPACE
+* Either get rid of or at least rework the fdefinition/encapsulation
+       system so that (SYMBOL-FUNCTION 'FOO) is identically equal to
+       (FDEFINITION 'FOO).
+* building using CLISP (since building under OpenMCL works, this is
+       reduced to "it would be nice" rather than "as proof of concept")
+
 =======================================================================
 =======================================================================
-for 1.0:
+for 0.9:
 
 * refactored in preparation for moving CLOS into cold init and merging
        SB-PCL:FOO with CL:FOO (for FOO=CLASS, FOO=CLASS-OF, etc.)
 
 * refactored in preparation for moving CLOS into cold init and merging
        SB-PCL:FOO with CL:FOO (for FOO=CLASS, FOO=CLASS-OF, etc.)
@@ -133,6 +114,10 @@ for 1.0:
        between minor maintenance releases on the stable branch (but no
        promises, sorry, since I've never tried to do this before, and 
        have no idea how much of a pain this'll be)
        between minor maintenance releases on the stable branch (but no
        promises, sorry, since I've never tried to do this before, and 
        have no idea how much of a pain this'll be)
+========================================================================
+for 1.0 (fixes of lower priority which I'd nonetheless be embarrassed
+to leave unfixed in 1.0):
+* all too many BUGS entries and FIXMEs
 =======================================================================
 other priorities, no particular time:
 
 =======================================================================
 other priorities, no particular time:
 
@@ -159,7 +144,7 @@ are still welcome!) until after 1.0:
                out of scope. (However, it still might be possible to
                determine that some or all of them are hopelessly stale
                and delete them.)
                out of scope. (However, it still might be possible to
                determine that some or all of them are hopelessly stale
                and delete them.)
-===============================================================================
+=======================================================================
 other known issues with no particular target date:
 
 bugs listed on the man page
 other known issues with no particular target date:
 
 bugs listed on the man page