0.7.2.7:
[sbcl.git] / TODO
diff --git a/TODO b/TODO
index 07a0194..fb776be 100644 (file)
--- a/TODO
+++ b/TODO
@@ -1,35 +1,12 @@
-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:
-       ** 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/TOP-LEVEL/TOPLEVEL/
-* global style systematization:
-       ** s/#'(lambda/(lambda/
-       ** four-space indentation in C
-=======================================================================
 for early 0.7.x:
 
 * building with CLISP (or explaining why not)
 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)
+       ** fixed bug 137 (more)
 * 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
@@ -37,28 +14,32 @@ 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
                nasty in the debugger
                various public functions like CL:PACKAGEP which
                are now implemented as closures (because
                they're structure slot accessors) won't be so
                nasty in the debugger
-       ** %SLOT-ACCESSOR/%SLOT-ACCESSOR stuff can probably go away,
-               since we inline expand all slot accessors into 
-               %INSTANCE-REF and the optimizer knows all it needs
-               to know about that.
 * rewrote long-standing confusing error restarts for redefining
        DEFSTRUCTs
 * outstanding embarrassments
        ** cut-and-pasted DEF-BOOLEAN-ATTRIBUTE (maybe easier to fix
 * rewrote long-standing confusing error restarts for redefining
        DEFSTRUCTs
 * outstanding embarrassments
        ** cut-and-pasted DEF-BOOLEAN-ATTRIBUTE (maybe easier to fix
-               now that EVAL-WHEN does what it should..)
+               now that EVAL-WHEN works correctly..)
        ** incomplete manual
        ** incomplete manual
-       ** :IGNORE-ERRORS-P cruft in stems-and-flags.lisp-expr
+       ** :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
@@ -77,16 +58,15 @@ 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
-* Probably get rid of or at least rework the fdefinition/encapsulation
-       system so that (SYMBOL-FUNCTION 'FOO) = (FDEFINITION 'FOO).
+* Either get rid of or at least rework the fdefinition/encapsulation
+       system so that (SYMBOL-FUNCTION 'FOO) is identically equal to
+       (FDEFINITION 'FOO).
 =======================================================================
 =======================================================================
-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.)
@@ -131,6 +111,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:
 
@@ -157,7 +141,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