From: Bruno Haible <bruno@cl...> - 2004-09-28 10:38:01
ANSI CL's description of DEFCLASS says:
"The options to defclass can be extended. It is required that all
implementations signal an error if they observe a class option or a
slot option that is not implemented locally."
But sbcl 0.8.13 doesn't signal an error when the slot options :NAME,
:READERS, :WRITERS, :INITARGS, :INITFUNCTION are used:
* (defclass foo ()
((x :name bar
:initform 17 :initfunction (lambda () 42))))
* (let ((slot (first (sb-mop:class-direct-slots (find-class 'foo)))))
(list (sb-mop:slot-definition-name slot)
(funcall (sb-mop:slot-definition-initfunction slot))))
(X NIL NIL NIL 17)
As you can see, these options were accepted but had no effect.