0.7.5.15:
[sbcl.git] / TODO
diff --git a/TODO b/TODO
index 3c6e526..437746f 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:
 
-* 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
@@ -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
+* 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
-       ** 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
@@ -60,9 +33,14 @@ for early 0.7.x:
        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
-       ** :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
@@ -81,14 +59,18 @@ for early 0.7.x:
                        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
-* 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.)
@@ -133,6 +115,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)
+========================================================================
+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:
 
@@ -159,7 +145,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.)
-===============================================================================
+=======================================================================
 other known issues with no particular target date:
 
 bugs listed on the man page