[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug in all AAAI PCLs
- To: CommonLoops.pa@Xerox.COM
- Subject: bug in all AAAI PCLs
- From: Gregor.pa@Xerox.COM
- Date: Mon, 12 Sep 88 16:56 PDT
- Fcc: BD:>Gregor>mail>outgoing-mail-4.text.newest
- Line-fold: no
There is a nasty little bug affecting :ACCESSORs and :WRITERs in all the
AAAI PCLs. Anyone using a AAAI pcl should make this patch.
* To save yourself some time, you can patch your running image simply by
loading a compiled version of this function.
* You can fix your compiled PCL simply by editing the dcode.lisp file
and then using compile-file to compile that file. compile-pcl will
work too of course, but will compile more files than really need be.
;from dcode.lisp
(defun all-std-class-writers-miss
(new-value arg wrapper .cache. cache-size offset generic-function)
(setq offset (cache-key-from-wrappers-2 cache-size arg))
(let ((class (wrapper-class wrapper))
(method (lookup-method-1 generic-function t arg)))
(if (null method)
(no-applicable-method generic-function new-value arg)
(let* ((slot-name (reader/writer-method-slot-name method))
(slot-pos (all-std-class-readers-miss-1 class
wrapper
slot-name)))
(if (not (null slot-pos))
(progn
(without-interrupts
(setf (r/w-cache-key) wrapper)
(setf (r/w-cache-val) slot-pos))
(setf (%svref (iwmc-class-static-slots arg) slot-pos)
new-value))
(setf (slot-value-using-class class arg slot-name)
new-value))))))
-------