X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=TODO;h=ab13f0c01636ea7905da9dfd7f87d3f4e7d19111;hb=40bf78b47ea89b15698adb9c550efa4cbacafeb7;hp=859f9071eb49277b1400993ddd2c564aa767b968;hpb=58a0e578e00abcb85940021d5ef3051c0b4c2082;p=sbcl.git diff --git a/TODO b/TODO index 859f907..ab13f0c 100644 --- a/TODO +++ b/TODO @@ -1,43 +1,9 @@ -for 0.7.0: +for late 0.7.x: -* 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) +* test file reworking + ** non-x86 ports now pass irrat.pure.lisp + ** ports with less than 256Mb of heap (sparc, ppc and mips) + now don't fail 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,38 +11,37 @@ 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 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 - now that EVAL-WHEN does what it should..) - ** incomplete manual - ** :IGNORE-ERRORS-P cruft in stems-and-flags.lisp-expr - ** 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 - not quite ready for prime time..) of the system after - cold init + ** :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!), * fixups now feasible because of pre7 changes - ** ANSIfied DECLAIM INLINE stuff (deprecating MAYBE-INLINE) + ** ANSIfied DECLAIM INLINE stuff (deprecating MAYBE-INLINE, + including e.g. on the man page) * miscellaneous simple refactoring * belated renaming: ** renamed %PRIMITIVE to %VOP + ** A few hundred things named FN and FCN should be + named FUN (but maybe not while dan_b is + working on a threads branch and drichards is + working on a Windows port). * These days ANSI C has inline functions, so.. ** redid many cpp macros as inline functions: HeaderValue, Pointerp, CEILING, ALIGNED_SIZE, @@ -85,14 +50,11 @@ 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 - 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). ======================================================================= -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.) @@ -137,6 +99,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: @@ -163,7 +129,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