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

change to instance structure protocol



re: >From p.13 of the July 30, 1990 metaobject protocol specification draft:

    "Any method, defined by a portable program on a specified generic
    function, must have at least one specializer which is not a specified
    class."

    So "the standard metaclass" implies "no user-defined methods" (except
    for the bug with EQL specialized methods that Cyphers pointed out, which
    I imagine is one of the banes of Gregor's existence too).


(defclass  moons-loophole () (some-slot))
(defmethod slot-value-using-class ((meta standard-class) 
				   (x moons-loophole)
				   slot-name)
   (squosh-it-around  (call-next-method)))



However, I'm still in the dark as to what you mean by "the standard 
metaclass"?  Are you simply referring to STANDARD-CLASS, or to 
STANDARD-CLASS and all possible subclasses thereof (whose methods 
for SLOT-VALUE-USING-CLASS might inherit, override, or extend the 
"specified" ones)?

Now, regarding the quoted section of "Chap 3, draft 11" -- it isn't 
clear to me just what it is trying to accomplish.  Does it imply that it
is illegal to define an :AFTER method on ALLOCATE-INSTANCE specialized 
to, say, FUNCALLABLE-STANDARD-CLASS?  If so, then I don't see the point 
of it; but if not, then just what is it trying to say?


By the bye, is it a bug in draft 11, page 3-115, that the specified
methods don't specialize the second argument the same way as the other
SLOT-<mumble>-USING-CLASS functions do?



-- JonL --