From: Christophe R. <cr...@us...> - 2003-02-15 11:16:36
|
Update of /cvsroot/sbcl/sbcl/src/cold In directory sc8-pr-cvs1:/tmp/cvs-serv13913/src/cold Modified Files: warm.lisp Log Message: 0.7.12.38: PCL accessors/SLOT-MISSING fixes: Remove some package fragility of generated accessor functions ... define a new generalized function name class: SB-PCL::SLOT-ACCESSOR ... s/SLOT-READER-SYMBOL/SLOT-READER-NAME/, and use the new generalized function names ... now SB-SLOT-ACCESSOR-NAME and *SLOT-ACCESSOR-NAME-PACKAGE* can go away Ensure that SLOT-MISSING is called in all required situations. The easy way would just have been to adjust ASV-FUNCALL slightly, but that would have been no fun, so include an optimization due to Gerd Moellmann: ... new LOAD-TIME-VALUE logic that ensures that the relevant accessor name is always FBOUNDP, so the FBOUNDP check can be elided at runtime By this stage, it's all working, but ... while we're at it, also include the ASV-FUNCALL-as-was/ENSURE-ACCESSOR optimization for SLOT-BOUNDP, which was not included in historical PCL. ... also, ensure that fast discriminating functions are constructed, conditional on *OPTIMIZE-CACHE-FUNCTIONS-P*: eventually, this can probably be made either unconditional or conditional on the compilation policy when a generic function is compiled. Include a simple test for SLOT-MISSING behaviour. ... this version has also been tested against Gerd Moellmann's test suite, with no regressions found. Index: warm.lisp =================================================================== RCS file: /cvsroot/sbcl/sbcl/src/cold/warm.lisp,v retrieving revision 1.31 retrieving revision 1.32 diff -u -d -r1.31 -r1.32 --- warm.lisp 5 Feb 2003 17:12:34 -0000 1.31 +++ warm.lisp 15 Feb 2003 11:16:33 -0000 1.32 @@ -59,20 +59,6 @@ (rename-package package (package-name package) (cons "SB-C-CALL" (package-nicknames package)))) - -;;; KLUDGE: This is created here (instead of in package-data-list.lisp-expr) -;;; because it doesn't have any symbols in it, so even if it's -;;; present at cold load time, genesis thinks it's unimportant -;;; and doesn't dump it. There's gotta be a better way, but for now -;;; I'll just do it here. (As noted below, I'd just as soon have this -;;; go away entirely, so I'm disinclined to fiddle with it too much.) -;;; -- WHN 19991206 -;;; -;;; FIXME: Why do slot accessor names need to be interned anywhere? For -;;; low-level debugging? Perhaps this should go away, or at least -;;; be optional, controlled by SB-SHOW or something. -(defpackage "SB-SLOT-ACCESSOR-NAME" - (:use)) ;;;; compiling and loading more of the system |