[armedbear-ticket] [armedbear] #119: Unexpected CLOS shared slot initialization order

armedbear armedbear-devel at common-lisp.net
Wed Jan 5 11:55:37 UTC 2011


#119: Unexpected CLOS shared slot initialization order
--------------------------------------+-------------------------------------
 Reporter:  mevenson                  |       Owner:  analysis   
     Type:  defect                    |      Status:  new        
 Priority:  major                     |   Milestone:  unscheduled
Component:  CLOS                      |     Version:  1.0        
 Keywords:  clos unexpected-behavior  |  
--------------------------------------+-------------------------------------
 Didier Verner writes:

 {{{

 it seems that until now, I've been relying on a non-standard behavior,
 namely the fact that shared slots with an :initform are initialized
 before the first actual class instance is created:

 (defclass test () ((slot :allocation :class :initform t)))

 (defmethod initialize-instance :before ((test test) &key)
    (format t "Slot boundp: ~A~%" (slot-boundp test 'slot)))


 CL-USER> (make-instance 'test)
 Slot boundp: NIL
 #<TEST {C5D3B8}>
 CL-USER> (make-instance 'test)
 Slot boundp: T
 #<TEST {14563D4}>
 CL-USER>


 I just fell on this because every other Common Lisp implementation I've
 tried gives T and T here. Is it due to the way CLOS is implemented in
 ABCL, and is there a chance that this can be improved?

 }}}

-- 
Ticket URL: <http://trac.common-lisp.net/armedbear/ticket/119>
armedbear <http://common-lisp.net/project/armedbear>
armedbear


More information about the armedbear-ticket mailing list