[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