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

Re: specializer metaobjects



    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.