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

Reply via email to