0.7.12.38:
authorChristophe Rhodes <csr21@cam.ac.uk>
Sat, 15 Feb 2003 11:16:33 +0000 (11:16 +0000)
committerChristophe Rhodes <csr21@cam.ac.uk>
Sat, 15 Feb 2003 11:16:33 +0000 (11:16 +0000)
commit2217cdb364e8b48c187b085895bb2a5cbdbd9622
treec16db0aef93e95219fa740095a3ef795f627f056
parent583e68ba34023bf5f1fdce3aa7e643fb097cc9ae
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.
19 files changed:
NEWS
src/code/early-extensions.lisp
src/cold/warm.lisp
src/compiler/ir1-translators.lisp
src/compiler/ir2tran.lisp
src/pcl/boot.lisp
src/pcl/braid.lisp
src/pcl/defclass.lisp
src/pcl/dfun.lisp
src/pcl/dlisp.lisp
src/pcl/dlisp2.lisp
src/pcl/early-low.lisp
src/pcl/slot-name.lisp
src/pcl/slots-boot.lisp
src/pcl/std-class.lisp
src/pcl/vector.lisp
src/pcl/walk.lisp
tests/clos.impure.lisp
version.lisp-expr