<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 TRANSITIONAL//EN">
<HTML>
<HEAD>
  <META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=UTF-8">
  <META NAME="GENERATOR" CONTENT="GtkHTML/3.3.2">
</HEAD>
<BODY>
This change:<BR>
<BR>
(defmethod update-persistent-slots ((class persistent-metaclass) new-slot-list)<BR>
;;  (setf (%persistent-slots class) (cons new-slot-list (car (%persistent-slots class)))))<BR>
  (setf (%persistent-slots class) (cons new-slot-list <BR>
                                        (if (slot-boundp class '%persistent-slots)<BR>
                                            (car (%persistent-slots class))<BR>
                                            nil))))<BR>
<BR>
Let's me build and get just 4 out 91 failures:<BR>
<BR>
Expected value: T<BR>
Actual value: NIL.<BR>
4 out of 91 total tests failed: PREPARES-SLEEPYCAT, TEST-SEQ1, TEST-SEQ2, <BR>
   CLEANSUP-SLEEPYCAT.<BR>
<BR>
I don't know if that's to be expected or not on SBCL.<BR>
<BR>
The change above seems sensible to me but I can't pretend that I understand it well enough <BR>
to know if it is creating these failures, or will create some horrible bug somewhere else.<BR>
<BR>
Perhaps you have an opinion, Andrew?<BR>
<BR>
<BR>
On Mon, 2005-10-10 at 03:59 -0500, Andrew Blumberg wrote:
<BLOCKQUOTE TYPE=CITE>
<PRE>
<FONT COLOR="#000000">hi robert,</FONT>

<FONT COLOR="#000000">  i wrote the clos metaclass stuff for elephant, and although i </FONT>
<FONT COLOR="#000000">don't really have time to do much further development work i'd be happy to </FONT>
<FONT COLOR="#000000">help you try and debug this.  i'll try and take a look at it tomorrow </FONT>
<FONT COLOR="#000000">evening (unless someone chimes in with a concise answer sooner).</FONT>

<FONT COLOR="#000000">                                                          - andrew</FONT>

<FONT COLOR="#000000">On Sun, 9 Oct 2005, Robert L. Read wrote:</FONT>

<FONT COLOR="#000000">> In my ongoing attempt to implement a CL-SQL based backend, I have</FONT>
<FONT COLOR="#000000">> checked out</FONT>
<FONT COLOR="#000000">> the latest version of the CVS repository and attempted to install it</FONT>
<FONT COLOR="#000000">> before merging</FONT>
<FONT COLOR="#000000">> my (extremely large) patch from the Elephant 0.2.1 version where I have</FONT>
<FONT COLOR="#000000">> been developing</FONT>
<FONT COLOR="#000000">> previously.  I am running SBCL 0.8.18.</FONT>
<FONT COLOR="#000000">></FONT>
<FONT COLOR="#000000">> When I attempt to do: (asdf:operate 'asdf:load-op :elephant),  (after</FONT>
<FONT COLOR="#000000">> properly compiling</FONT>
<FONT COLOR="#000000">> and installing in the correct places the berkeleydb 4.3 library and the</FONT>
<FONT COLOR="#000000">> libsleepycat C library)</FONT>
<FONT COLOR="#000000">> I get the error pasted in below.</FONT>
<FONT COLOR="#000000">></FONT>
<FONT COLOR="#000000">> I understand CLOS, but just barely.  It is not obvious why this is</FONT>
<FONT COLOR="#000000">> happening; I assume it</FONT>
<FONT COLOR="#000000">> is some SBCL specific feature, and the the head of the repository build</FONT>
<FONT COLOR="#000000">> successfully</FONT>
<FONT COLOR="#000000">> on some other system?  Or am I just confused?</FONT>
<FONT COLOR="#000000">></FONT>
<FONT COLOR="#000000">> If anyone has any idea or can help, please post immediately; I have been</FONT>
<FONT COLOR="#000000">> working on</FONT>
<FONT COLOR="#000000">> this full-time for over a month now and would really like to put a</FONT>
<FONT COLOR="#000000">> ribbon around it</FONT>
<FONT COLOR="#000000">> and publish it rather than abandon it.</FONT>
<FONT COLOR="#000000">></FONT>
<FONT COLOR="#000000">></FONT>
<FONT COLOR="#000000">></FONT>
<FONT COLOR="#000000">> The slot %PERSISTENT-SLOTS is unbound in the object #<PERSISTENT-</FONT>
<FONT COLOR="#000000">> METACLASS INDEXED-BTREE>.</FONT>
<FONT COLOR="#000000">>   [Condition of type UNBOUND-SLOT]</FONT>
<FONT COLOR="#000000">></FONT>
<FONT COLOR="#000000">></FONT>
<FONT COLOR="#000000">>   [Condition of type UNBOUND-SLOT]</FONT>
<FONT COLOR="#000000">></FONT>
<FONT COLOR="#000000">> Restarts:</FONT>
<FONT COLOR="#000000">>  0: [ABORT] Abort handling SLIME request.</FONT>
<FONT COLOR="#000000">>  1: [ABORT] Reduce debugger level (leaving debugger, returning to toplevel).</FONT>
<FONT COLOR="#000000">>  2: [TOPLEVEL] Restart at toplevel READ/EVAL/PRINT loop.</FONT>
<FONT COLOR="#000000">></FONT>
<FONT COLOR="#000000">> Backtrace:</FONT>
<FONT COLOR="#000000">>  0: ((SLOT-UNBOUND (T T T)) #<unavailable argument> #<unavailable argument> #<unavailable argument> #<PERSISTENT-METACLASS INDEXED-BTREE> %PERSISTENT-SLOTS)</FONT>
<FONT COLOR="#000000">>  1: ("XEP for (SLOT-UNBOUND (T T T))" 5 #<unavailable argument> #<unavailable argument> #<unavailable argument> #<PERSISTENT-METACLASS INDEXED-BTREE> %PERSISTENT-SLOTS)[:EXTERNAL]</FONT>
<FONT COLOR="#000000">>      Locals:</FONT>
<FONT COLOR="#000000">>        SB-DEBUG::ARG-0 = 5</FONT>
<FONT COLOR="#000000">>        SB-DEBUG::ARG-1 = :<NOT-AVAILABLE></FONT>
<FONT COLOR="#000000">>        SB-DEBUG::ARG-2 = :<NOT-AVAILABLE></FONT>
<FONT COLOR="#000000">>        SB-DEBUG::ARG-3 = :<NOT-AVAILABLE></FONT>
<FONT COLOR="#000000">>        SB-DEBUG::ARG-4 = #<PERSISTENT-METACLASS INDEXED-BTREE></FONT>
<FONT COLOR="#000000">>        SB-DEBUG::ARG-5 = %PERSISTENT-SLOTS</FONT>
<FONT COLOR="#000000">>      [No catch-tags]</FONT>
<FONT COLOR="#000000">>  2: (SB-PCL::SLOT-UNBOUND-INTERNAL #<PERSISTENT-METACLASS INDEXED-BTREE> 19)</FONT>
<FONT COLOR="#000000">>      Locals:</FONT>
<FONT COLOR="#000000">>        SB-DEBUG::ARG-0 = #<PERSISTENT-METACLASS INDEXED-BTREE></FONT>
<FONT COLOR="#000000">>        SB-DEBUG::ARG-1 = 19</FONT>
<FONT COLOR="#000000">>      [No catch-tags]</FONT>
<FONT COLOR="#000000">>  3: ((UPDATE-PERSISTENT-SLOTS (PERSISTENT-METACLASS T)) #<unavailable argument> #<unavailable argument> #<PERSISTENT-METACLASS INDEXED-BTREE> (INDICES))</FONT>
<FONT COLOR="#000000">>      Locals:</FONT>
<FONT COLOR="#000000">>        SB-DEBUG::ARG-0 = :<NOT-AVAILABLE></FONT>
<FONT COLOR="#000000">>        SB-DEBUG::ARG-1 = :<NOT-AVAILABLE></FONT>
<FONT COLOR="#000000">>        SB-DEBUG::ARG-2 = #<PERSISTENT-METACLASS INDEXED-BTREE></FONT>
<FONT COLOR="#000000">>        SB-DEBUG::ARG-3 = (INDICES)</FONT>
<FONT COLOR="#000000">>      [No catch-tags]</FONT>
<FONT COLOR="#000000">>  4: ((REINITIALIZE-INSTANCE :AROUND (PERSISTENT-METACLASS)) #<unavailable argument> #S(SB-PCL::FAST-METHOD-CALL :FUNCTION #<FUNCTION "CLOSURE" {932DB4D}> :PV-CELL NIL :NEXT-METHOD-CALL NIL :ARG-INFO (1 . T)) #<PERSISTENT-METACLASS INDEXED-BTREE> (:DIRECT-SUPERCLASSES (#<STANDARD-CLASS BTREE>) :DIRECT-SLOTS ((:INITFUNCTION #1=#<FUNCTION "#'(LAMBDA NIL (MAKE-HASH-TABLE))" {9B7FCB5}> :NAME INDICES :READERS # :WRITERS # :INITARGS NIL ...) (:INITFUNCTION #1# :NAME INDICES-CACHE :READERS # :WRITERS # :INITARGS NIL ...)) :DEFINITION-SOURCE ((DEFCLASS INDEXED-BTREE) NIL) :DOCUMENTATION "A BTree which supports secondary indices."))</FONT>
<FONT COLOR="#000000">>  5: ((SB-MOP:ENSURE-CLASS-USING-CLASS (SB-PCL::PCL-CLASS T)) #<unavailable argument> #<unavailable argument> #<PERSISTENT-METACLASS INDEXED-BTREE> INDEXED-BTREE (:METACLASS PERSISTENT-METACLASS :DIRECT-SUPERCLASSES (BTREE) :DIRECT-SLOTS ((:INITFUNCTION #1=#<FUNCTION "#'(LAMBDA NIL (MAKE-HASH-TABLE))" {9B7FCB5}> :NAME INDICES :READERS # :WRITERS # :INITARGS NIL ...) (:INITFUNCTION #1# :NAME INDICES-CACHE :READERS # :WRITERS # :INITARGS NIL ...)) :DEFINITION-SOURCE ((DEFCLASS INDEXED-BTREE) NIL) :DOCUMENTATION "A BTree which supports secondary indices."))</FONT>
<FONT COLOR="#000000">>  6: (SB-PCL::REAL-LOAD-DEFCLASS INDEXED-BTREE PERSISTENT-METACLASS (BTREE) ((:INITFUNCTION #1=#<FUNCTION "#'(LAMBDA NIL (MAKE-HASH-TABLE))" {9B7FCB5}> :NAME INDICES :READERS (INDICES) :WRITERS (#) :INITARGS NIL ...) (:INITFUNCTION #1# :NAME INDICES-CACHE :READERS (INDICES-CACHE) :WRITERS (#) :INITARGS NIL ...)) (:DOCUMENTATION "A BTree which supports secondary indices.") (INDICES-CACHE INDICES) ((SETF INDICES-CACHE) (SETF INDICES)) (INDICES-CACHE INDICES))</FONT>
<FONT COLOR="#000000">>  7: (SB-INT:EVAL-IN-LEXENV 2 (LET ((#:G5805 #)) (SB-PCL::LOAD-DEFCLASS (QUOTE INDEXED-BTREE) (QUOTE PERSISTENT-METACLASS) (QUOTE #) (LIST # #) (LIST :DOCUMENTATION "A BTree which supports secondary indices.") (QUOTE #) (QUOTE #) (QUOTE #))) #S(SB-KERNEL:LEXENV :FUNS NIL :VARS NIL :BLOCKS NIL :TAGS NIL :TYPE-RESTRICTIONS NIL :LAMBDA NIL :CLEANUP NIL :HANDLED-CONDITIONS NIL :DISABLED-PACKAGE-LOCKS NIL :POLICY ((SPEED . 1) (SPACE . 1) (SAFETY . 1) (SB-EXT:INHIBIT-WARNINGS . 1) (DEBUG . 1) (COMPILATION-SPEED . 1))))[:EXTERNAL]</FONT>
<FONT COLOR="#000000">>  8: (SB-INT:EVAL-IN-LEXENV 2 (EVAL-WHEN (:LOAD-TOPLEVEL :EXECUTE) (LET (#) (SB-PCL::LOAD-DEFCLASS # # # # # # # #))) #S(SB-KERNEL:LEXENV :FUNS NIL :VARS NIL :BLOCKS NIL :TAGS NIL :TYPE-RESTRICTIONS NIL :LAMBDA NIL :CLEANUP NIL :HANDLED-CONDITIONS NIL :DISABLED-PACKAGE-LOCKS NIL :POLICY ((SPEED . 1) (SPACE . 1) (SAFETY . 1) (SB-EXT:INHIBIT-WARNINGS . 1) (DEBUG . 1) (COMPILATION-SPEED . 1))))[:EXTERNAL]</FONT>
<FONT COLOR="#000000">>  9: (SB-INT:EVAL-IN-LEXENV 2 (DEFCLASS INDEXED-BTREE (BTREE) ((INDICES :ACCESSOR INDICES :INITFORM #) (INDICES-CACHE :ACCESSOR INDICES-CACHE :INITFORM # :TRANSIENT T)) (:METACLASS PERSISTENT-METACLASS) (:DOCUMENTATION "A BTree which supports secondary indices.")) #S(SB-KERNEL:LEXENV :FUNS NIL :VARS NIL :BLOCKS NIL :TAGS NIL :TYPE-RESTRICTIONS NIL :LAMBDA NIL :CLEANUP NIL :HANDLED-CONDITIONS NIL :DISABLED-PACKAGE-LOCKS NIL :POLICY ((SPEED . 1) (SPACE . 1) (SAFETY . 1) (SB-EXT:INHIBIT-WARNINGS . 1) (DEBUG . 1) (COMPILATION-SPEED . 1))))[:EXTERNAL]</FONT>
<FONT COLOR="#000000">>  10: ("#'(LAMBDA NIL (LET # # ...))")</FONT>
<FONT COLOR="#000000">>  11: ((SWANK-BACKEND:CALL-WITH-SYNTAX-HOOKS (T)) #<unused argument> #<unused argument> #<FUNCTION "CLOSURE" {99B893D}>)</FONT>
<FONT COLOR="#000000">>  12: (SWANK:INTERACTIVE-EVAL "(defclass indexed-btree (btree)</FONT>
<FONT COLOR="#000000">>  ((indices :accessor indices :initform (make-hash-table))</FONT>
<FONT COLOR="#000000">>   (indices-cache :accessor indices-cache :initform (make-hash-table)</FONT>
<FONT COLOR="#000000">>                :transient t))</FONT>
<FONT COLOR="#000000">>  (:metaclass persistent-metaclass)</FONT>
<FONT COLOR="#000000">>  (:documentation \"A BTree which supports secondary indices.\"))</FONT>
<FONT COLOR="#000000">> ")</FONT>
<FONT COLOR="#000000">>  13: (SB-INT:EVAL-IN-LEXENV 2 (SWANK:INTERACTIVE-EVAL "(defclass indexed-btree (btree)</FONT>
<FONT COLOR="#000000">>  ((indices :accessor indices :initform (make-hash-table))</FONT>
<FONT COLOR="#000000">>   (indices-cache :accessor indices-cache :initform (make-hash-table)</FONT>
<FONT COLOR="#000000">>                :transient t))</FONT>
<FONT COLOR="#000000">>  (:metaclass persistent-metaclass)</FONT>
<FONT COLOR="#000000">>  (:documentation \"A BTree which supports secondary indices.\"))</FONT>
<FONT COLOR="#000000">> ") #S(SB-KERNEL:LEXENV :FUNS NIL :VARS NIL :BLOCKS NIL :TAGS NIL :TYPE-RESTRICTIONS NIL :LAMBDA NIL :CLEANUP NIL :HANDLED-CONDITIONS NIL :DISABLED-PACKAGE-LOCKS NIL :POLICY ((SPEED . 1) (SPACE . 1) (SAFETY . 1) (SB-EXT:INHIBIT-WARNINGS . 1) (DEBUG . 1) (COMPILATION-SPEED . 1))))[:EXTERNAL]</FONT>
<FONT COLOR="#000000">>  14: (SWANK::EVAL-FOR-EMACS (SWANK:INTERACTIVE-EVAL "(defclass indexed-btree (btree)</FONT>
<FONT COLOR="#000000">>  ((indices :accessor indices :initform (make-hash-table))</FONT>
<FONT COLOR="#000000">>   (indices-cache :accessor indices-cache :initform (make-hash-table)</FONT>
<FONT COLOR="#000000">>                :transient t))</FONT>
<FONT COLOR="#000000">>  (:metaclass persistent-metaclass)</FONT>
<FONT COLOR="#000000">>  (:documentation \"A BTree which supports secondary indices.\"))</FONT>
<FONT COLOR="#000000">> ") "\"ELEPHANT\"" 125)</FONT>
<FONT COLOR="#000000">>  15: ("#'(LAMBDA NIL (LET # #))")</FONT>
<FONT COLOR="#000000">>  16: (SWANK::CALL-WITH-REDIRECTED-IO #<SWANK::CONNECTION {9A9E831}> #<FUNCTION "#'(LAMBDA NIL (LET # #))" {977829D}>)</FONT>
<FONT COLOR="#000000">>  17: (SWANK::HANDLE-REQUEST #<SWANK::CONNECTION {9A9E831}>)</FONT>
<FONT COLOR="#000000">>  18: (SWANK::PROCESS-AVAILABLE-INPUT #<FILE-STREAM for "a constant string" {9A98B89}> #<FUNCTION "CLOSURE" {99B82D5}>)</FONT>
<FONT COLOR="#000000">>  19: ("FLET SWANK::HANDLER")</FONT>
<FONT COLOR="#000000">>  20: ("#'(LAMBDA (SWANK-BACKEND::_) SWANK-BACKEND::_ ...)" #<unused argument>)</FONT>
<FONT COLOR="#000000">></FONT>
<FONT COLOR="#000000">_______________________________________________</FONT>
<FONT COLOR="#000000">elephant-devel site list</FONT>
<FONT COLOR="#000000"><A HREF="mailto:elephant-devel@common-lisp.net">elephant-devel@common-lisp.net</A></FONT>
<FONT COLOR="#000000"><A HREF="http://common-lisp.net/mailman/listinfo/elephant-devel">http://common-lisp.net/mailman/listinfo/elephant-devel</A></FONT>
</PRE>
</BLOCKQUOTE>
</BODY>
</HTML>