[armedbear-ticket] [armedbear] #67: initarg checking performance
armedbear
armedbear-devel at common-lisp.net
Sun Jan 23 21:16:21 UTC 2011
#67: initarg checking performance
--------------------------+-------------------------------------------------
Reporter: ehuelsmann | Owner: somebody
Type: enhancement | Status: new
Priority: major | Milestone: unscheduled
Component: CLOS | Version:
Resolution: | Keywords: performance
--------------------------+-------------------------------------------------
Comment(by ehuelsmann):
I was confused for a moment, so recording the outcome here now that I'm
not confused anymore:
Even though the computation of the applicable methods for SHARED-
INITIALIZE and INITIALIZE-INSTANCE takes the values of the initargs,
there's only a single parameter to be dispatched on in the latter case
(the instance itself) and two parameters in the former case (the instance
itself and the slot-names parameter).
This means INITIALIZE-INSTANCE and SHARED-INITIALIZE can have a shared
cache of valid initargs, keyed on the class of the instance and the value
of slot-names being (EQ NIL)/(EQ T)/CONS. The cache is invalidated by
redefinition of any one of the superclasses of the instance-class (or of
the class itself) or a defgeneric/defmethod on INITIALIZE-INSTANCE or
SHARED-INITIALIZE concerning any one of those classes.
--
Ticket URL: <http://trac.common-lisp.net/armedbear/ticket/67#comment:3>
armedbear <http://common-lisp.net/project/armedbear>
armedbear
More information about the armedbear-ticket
mailing list