[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]


The method PARSE-CLASS-SLOT in defclass.lisp initializes the type and
initfunction slots of a standard-slot-description object to 
*slotd-unsupplied*. This is OK, except *slotd-unsupplied* is not
a valid type specifier nor is it a valid function. As a result,
when, for example, initialize-from-defaults in slots.lisp checks
to see if the initfunction is NIL, it is not, but it is not
a valid function either. Result: initialize-from-defaults trys
to funcall *slotd-unsupplied*. Something similar happens in 
COMPUTE-EFFECTIVE-SLOTD, where an eq test of (slotd-type slotd)
against *slotd-unsupplied* fails, presumably because
the slot contents is initialized to a copy somewhere. 

Anyway, I'd suggest making the initfunction something like:

(function (lambda () *slotd-unsupplied*)

and the type be nil. 

This is all happening in the St. Patrick's Day release, in Sun
Common Lisp 2.1.