On 6/23/06, Ken Tilton kentilton@gmail.com wrote:
Oh, yeah. I finally fixed defclass. There is now an abbreviated defmodel, DEFMD:
(defmd defmd-test (md-test-super) (aaa :cell nil :initform nil :initarg :aaa :accessor aaa) ;; defmd would have written the same on just "aaa"
FIXED?!?!
Aren't a lot of problems with Cells traceable to using :cell nil, because either someone thought "okay this one is an exception" or as an efficiency hack? Certainly accidentally non-Cell slots have caused me no end of grief when I run into them.
I've gotten to the point of viewing :cell nil as a hack that's occasionally necessary when either (a) I'm not able to fit some behavior into the Cells model, or (b) the Cells model turns out to have a shortcomming that needs to be fixed, but in the meantime we have a work-around. Given that, I'm not supporting :cell nil at all in C4 (and C4-other-lisps); you can get the same effect by putting the slots in a defclass and using it as a mixin, and that way you won't be under any illusions that what you're doing is generally a good idea.