[cells-devel] A thing that does not work well with Cells...

Ramarren ramarren at gmail.com
Wed May 20 21:02:14 UTC 2009


Hello,

I can hardly be considered to have an in depth knowledge of Cells, so
I might be completely wrong, but the problem seems to be with the
print-object for model class:
from family.lisp:
(defmethod print-object ((self model) s)
  #+shhh (format s "~a" (type-of self))
  (format s "~a~a" (if (mdead self) "DEAD!" "")
    (or (md-name self) (type-of self))))

I have no idea why this would even be called when accessing
class-allocated slots, but it is, and fails because slots needed to
print the prototype object are unbound. This can be worked around by
setting them, adding:

(setf (slot-value (sb-mop:class-prototype (find-class 'my-model))
'cells::.md-state) :prototype
      (slot-value (sb-mop:class-prototype (find-class 'my-model))
'cells::.md-name) :prototype)

To your file after finalize-inheritance makes the example work. I have
no idea if this doesn't break something, I know about PCL even less
than about Cells.

Regards,
Jakub Higersberger




More information about the cells-devel mailing list