X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=TODO;h=28e5af26d65c31d0da5b42e0d6e281b8154f255a;hb=1a6c2275ab21acc79d3a6866d4749dda8f02f7d7;hp=5dc47f1bffd7319f19ce69cdfbcf50205c536548;hpb=09d7974601df2aaaa820ca576026b9b4f03e6ab1;p=sbcl.git diff --git a/TODO b/TODO index 5dc47f1..28e5af2 100644 --- a/TODO +++ b/TODO @@ -1,10 +1,9 @@ -for late 0.7.x: +for early 0.8.x: * test file reworking - ** *.pure.lisp tests run with assertoid.lisp loaded; assertoid - is moved to its own package, for use in *.impure.lisp. ** non-x86 ports now pass irrat.pure.lisp - ** sparc and ppc now pass bit-vector.impure-cload.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 @@ -33,17 +32,17 @@ for late 0.7.x: 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 - not quite ready for prime time..) of the system after - cold init * fixups now feasible because of pre7 changes ** ANSIfied DECLAIM INLINE stuff (deprecating MAYBE-INLINE, including e.g. on the man page) + ** (maybe) allow INLINE of a recursive function, so that the + body is inlined once * 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 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, @@ -55,16 +54,33 @@ for late 0.7.x: * Either get rid of or at least rework the fdefinition/encapsulation system so that (SYMBOL-FUNCTION 'FOO) is identically equal to (FDEFINITION 'FOO). +* Make the system sources understandable to the system, so that + searching for sources doesn't error out quite so often + (e.g. in error handlers) + ** provided a location-independent way of referring to source + files in the target image, maybe a SYS: logical + pathname, and made the build system respect this. + ** provided a suitable readtable for reading in the source + files when necessary, and a mechanism for activating + this readtable rather than the standard one. + ======================================================================= for 0.9: +[ note: much of the below refers to preparation for merging SB-PCL:FOO + and CL:FOO. However, it turned out to be surprisingly + straightforward to do this notional end goal without doing many of + the preparatory operations. That doesn't mean that plenty of the + goals below aren't worthwhile, but the motivation is somewhat + different. ] + * refactored in preparation for moving CLOS into cold init and merging SB-PCL:FOO with CL:FOO (for FOO=CLASS, FOO=CLASS-OF, etc.) - ** systematized support for MOP (new regression tests, maybe - new SB-MOP package..) to try to make sure things don't - get mislaid in the upcoming CLOS restructuring - ** extracted type system from SB-KERNEL into new SB-TYPE - package + ** systematized support for MOP (more regression tests, maybe) + to try to make sure things don't get mislaid in the + upcoming CLOS restructuring + ** extracted type system (and maybe CLASSOIDs) from SB-KERNEL + into new SB-TYPE package ** reimplemented GENERIC-FUNCTION as a primitive object (or maybe made SB-MOP:FUNCALLABLE-STANDARD-OBJECT the primitive object, and then let GENERIC-FUNCTIONs @@ -95,7 +111,6 @@ for 0.9: * (maybe) more refactoring in preparation for merging SB-PCL:FOO into CL:FOO: reimplemented type system OO dispatch (!DEFINE-TYPE-METHOD, etc.) in terms of CLOS OO dispatch -* merged SB-PCL:FOO into CL:FOO (and similarly CLASS-OF, etc.) * added some automatic tests for basic binary compatibility, in hopes that it might be practical to maintain binary compatibility between minor maintenance releases on the stable branch (but no @@ -115,6 +130,10 @@ other priorities, no particular time: personal itch): I don't want socket-level stuff so much as I want RPC-level or higher (CORBA?) interfaces and (possibly through RPC or CORBA) GUI support +* Especially when ldb is not compiled in, the default "assertion failed" + behaviour in many parts of the runtime is unfriendly. It may + be appropriate to look at some of these and see if they can be + handled in some less abrupt way than aborting ======================================================================= important but out of scope (for WHN, anyway: Patches from other people are still welcome!) until after 1.0: