[cells-devel] Re: [cello-devel] Constructor syntax

Kenny Tilton ktilton at nyc.rr.com
Wed May 12 15:12:20 UTC 2004

Thomas F. Burdick wrote:

>  (defmodel adder ()
>    ((x :accessor adder-x :initform (cv))
>     (y :accessor adder-y :initform (cv))
>     (sum :accessor adder-sum :initform (c? (+ (^adder-x) (^adder-y))))))
>  (defparameter >>adder (to-be (make-instance 'adder)))
>  (setf (adder-x >>adder) 0)
>The above happily works.  It doesn't trigger the rule until I do:
>  (adder-sum >>adder)
>    => <unbound-cell error>

Add: (def-c-echo sum ()  (print (list self new-value old-value)))

...and you'll get the error when to-be runs.

I added your code. My c-install had evolved a little, so I just added 
the make-unbound. I see you /had/ handle things on the read side, so I 
am trying to remember what we had talked about on the propagation side:

>need to be made: cells doesn't currently catch the unbound-cell
>errors, because I wasn't sure where in the propagation code to put it.
The above is confusing. Cells (with your additions) certainly does catch 
reads of unbound cells, as you noted once you accessed adder-sum.


More information about the cello-devel mailing list