Alex Mizrahi writes: > LPP> I should have added that I'm talking about a schema evolution thing > LPP> here, i.e. the situation concerns slots *added* to a class. > > LPP> The slots of instances of such a class are unbound instead of being > LPP> assigned their initform, if any. > > i agree with you -- this unbound thing is totally weird. > > or it's not relevant anymore with fancy stuff Ian is working on?
I do not really know if this is related but I just started using elephant and had to apply the following patch to follow the description in 7.5.1 Introduction to Slots.
diff -rN -u old-elephant/src/contrib/eslick/db-acache/acache-controller.lisp new-elephant/src/contrib/eslick/db-acache/acache-controller.lisp --- old-elephant/src/contrib/eslick/db-acache/acache-controller.lisp 2008-02-29 17:02:22.000000000 +0100 +++ new-elephant/src/contrib/eslick/db-acache/acache-controller.lisp 2008-03-03 15:07:26.000000000 +0100 @@ -78,7 +78,7 @@ (multiple-value-bind (val valid?) (map-value (controller-slots sc) (fast-key (oid instance) name)) (if valid? val - (error "Slot ~A unbound in ~A" name instance)))) + (slot-unbound (class-of instance) instance name)))) (defmethod persistent-slot-writer ((sc acache-store-controller) value instance name) (declare (optimize (speed 3) (safety 1))) diff -rN -u old-elephant/src/contrib/eslick/db-prevalence/prev-slots.lisp new-elephant/src/contrib/eslick/db-prevalence/prev-slots.lisp --- old-elephant/src/contrib/eslick/db-prevalence/prev-slots.lisp 2008-02-29 17:02:22.000000000 +0100 +++ new-elephant/src/contrib/eslick/db-prevalence/prev-slots.lisp 2008-03-03 15:07:57.000000000 +0100 @@ -26,7 +26,7 @@ (multiple-value-bind (value exists?) (read-controller-slot (oid instance) name sc) (if exists? value - (error 'unbound-slot :instance instance :name name)))) + (slot-unbound (class-of instance) instance name)))) (defmethod persistent-slot-writer ((sc prev-store-controller) value instance name) (write-controller-slot value (oid instance) name sc)) diff -rN -u old-elephant/src/db-bdb/bdb-slots.lisp new-elephant/src/db-bdb/bdb-slots.lisp --- old-elephant/src/db-bdb/bdb-slots.lisp 2008-02-29 17:02:22.000000000 +0100 +++ new-elephant/src/db-bdb/bdb-slots.lisp 2008-03-03 15:01:41.000000000 +0100 @@ -36,10 +36,7 @@ key-buf value-buf :transaction (my-current-transaction sc)))) (if buf (deserialize buf sc) - #+cmu - (error 'unbound-slot :instance instance :slot name) - #-cmu - (error 'unbound-slot :instance instance :name name))))) + (slot-unbound (class-of instance) instance name))))) (defmethod persistent-slot-writer ((sc bdb-store-controller) new-value instance name) (with-buffer-streams (key-buf value-buf) diff -rN -u old-elephant/src/db-clsql/sql-controller.lisp new-elephant/src/db-clsql/sql-controller.lisp --- old-elephant/src/db-clsql/sql-controller.lisp 2008-02-29 17:02:22.000000000 +0100 +++ new-elephant/src/db-clsql/sql-controller.lisp 2008-03-03 15:06:13.000000000 +0100 @@ -772,7 +772,7 @@ sc) (if existsp v - (error 'unbound-slot :instance instance :name name)))) + (slot-unbound (class-of instance) instance name)))) (defmethod persistent-slot-boundp ((sc sql-store-controller) instance name) (if (sql-from-root-existsp diff -rN -u old-elephant/src/db-postmodern/pm-controller.lisp new-elephant/src/db-postmodern/pm-controller.lisp --- old-elephant/src/db-postmodern/pm-controller.lisp 2008-03-03 11:28:20.000000000 +0100 +++ new-elephant/src/db-postmodern/pm-controller.lisp 2008-03-03 15:09:19.000000000 +0100 @@ -265,7 +265,7 @@ (persistent-slot-collection-of sc)) (if existsp v - (error 'unbound-slot :instance instance :name name))))) + (slot-unbound (class-of instance) instance name))))) (defmethod persistent-slot-boundp ((sc postmodern-store-controller) instance name) (with-controller-for-btree (sc)
_______________________________________________ elephant-devel site list elephant-devel@common-lisp.net http://common-lisp.net/mailman/listinfo/elephant-devel