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

Re: Initialize-instance and Franz



Regarding Francois-Xavier's message of Oct 25:

    From fxtv@zeta.ibp.FR Thu Oct 25 14:28:25 1990
    Subject: Initialize-instance and Franz
    To: Gregor Kiczales <gregor@parc.xerox.com>
    Cc: commonloops.PARC@xerox.com, bsmith@postgres.Berkeley.EDU
    
    
    Here is a short session of Picasso (Allegro+clx+pcl+picasso). It
    seems that this works with lucid but not there. Why?
    Francois-Xavier
    
    ----
    
    <picasso> (defclass foo ()
		 ((bar :reader get-bar
		       :writer set-bar)))
    
    NIL
    <picasso> (defmethod initialize-instance :after ((self foo) &rest args)
		 (format T "Initializing foo...~%"))
    
    NIL
    <picasso> (make-instance 'foo)
    
    <FOO 71342326>
    <picasso>
    
    ----
    
    ;using lucid 3.0 + pcl
    
    > (defclass foo ()
		 ((bar :reader get-bar
		       :writer set-bar)))
    #<Standard-Class FOO 34420763>
    > (defmethod initialize-instance :after ((self foo) &rest args)
		 (format T "Initializing foo...~%"))
    #<Standard-Method INITIALIZE-INSTANCE :AFTER (FOO) 34745033>
    > (make-instance 'foo)
    Initializing foo...
    #<FOO 34761633>
    >

======================================================================

The problem is that picasso is based on the 12/88 pcl, which doesn't use
the CLOS initialization protocol.   Hence, initialize-instance :after
method is never called.

Francois -- I'll mail you a seperate message how to get around this
problem.  It'll be fixed in the next version of picasso, which will use the
newest pcl.

-----
Brian C. Smith				arpa:  bsmith@postgres.Berkeley.EDU
University of California, Berkeley	uucp: uunet!ucbarpa!postgres!bsmith
Computer Sciences Department		phone: (415)642-9585