[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: specializer metaobjects
- To: Cyphers@JASPER.SCRC.Symbolics.COM, gregor@parc.xerox.com
- Subject: Re: specializer metaobjects
- From: Scott Cyphers <Cyphers@JASPER.SCRC.Symbolics.COM>
- Date: Mon, 5 Nov 1990 15:01:00 PST
- Cc: mop.PARC@xerox.com
- In-reply-to: <19901105213733.6.CYPHERS@SEAR.SCRC.Symbolics.COM>
Date: Mon, 5 Nov 1990 16:37 EST
From: Scott Cyphers <Cyphers@JASPER.SCRC.Symbolics.COM>
Date: Mon, 5 Nov 1990 14:25 EST
From: Gregor Kiczales <Gregor@parc.xerox.com>
Date: Mon, 5 Nov 1990 07:39:00 PST
From: Scott Cyphers <Cyphers@JASPER.SCRC.Symbolics.COM>
Is there any reason for this other than to conserve space?
Yes. Without this concept of `interning', SPECIALIZER-DIRECT-METHODS is
a shaky concept.
That's a good reason.
Actually, it isn't a good reason. Consider:
(DEFMETHOD SPECIALIZER-DIRECT-METHODS ((SPECIALIZER EQL-SPECIALIZER))
(LET ((RESULT NIL))
(MAP-OVER-GENERIC-FUNCTIONS
#'(LAMBDA (GF)
(DOLIST (METHOD (GENERIC-FUNCTION-METHODS GF))
(WHEN (FIND (SPECIALIZER-EQL-OBJECT SPECIALIZER)
(METHOD-SPECIALIZERS METHOD))
(PUSH METHOD RESULT)))))
RESULT))
where MAP-OVER-GENERIC-FUNCTIONS does the obvious thing.