You shouldn't be using any of the controllers in contrib/eslick, those are in-progress experiments. Which version of the source tree are you using? This code shouldn't be loaded unless you are doing it explicitly. You should just be loading elephant.asd.

Ian

On Mar 6, 2008, at 12:12 PM, [EMAIL PROTECTED] wrote:

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

_______________________________________________
elephant-devel site list
elephant-devel@common-lisp.net
http://common-lisp.net/mailman/listinfo/elephant-devel

Reply via email to