[elephant-devel] Problem compiling the head of the CVS repository under SBCL 0.8.18

Robert L. Read read at robertlread.net
Mon Oct 10 20:07:24 UTC 2005


This change:

(defmethod update-persistent-slots ((class persistent-metaclass) new-
slot-list)
;;  (setf (%persistent-slots class) (cons new-slot-list (car (%
persistent-slots class)))))
  (setf (%persistent-slots class) (cons new-slot-list 
					(if (slot-boundp class '%persistent-slots)
					    (car (%persistent-slots class))
					    nil))))

Let's me build and get just 4 out 91 failures:

Expected value: T
Actual value: NIL.
4 out of 91 total tests failed: PREPARES-SLEEPYCAT, TEST-SEQ1, TEST-
SEQ2, 
   CLEANSUP-SLEEPYCAT.

I don't know if that's to be expected or not on SBCL.

The change above seems sensible to me but I can't pretend that I
understand it well enough 
to know if it is creating these failures, or will create some horrible
bug somewhere else.

Perhaps you have an opinion, Andrew?


On Mon, 2005-10-10 at 03:59 -0500, Andrew Blumberg wrote:

> hi robert,
> 
>  	i wrote the clos metaclass stuff for elephant, and although i 
> don't really have time to do much further development work i'd be happy to 
> help you try and debug this.  i'll try and take a look at it tomorrow 
> evening (unless someone chimes in with a concise answer sooner).
> 
>  								- andrew
> 
> On Sun, 9 Oct 2005, Robert L. Read wrote:
> 
> > In my ongoing attempt to implement a CL-SQL based backend, I have
> > checked out
> > the latest version of the CVS repository and attempted to install it
> > before merging
> > my (extremely large) patch from the Elephant 0.2.1 version where I have
> > been developing
> > previously.  I am running SBCL 0.8.18.
> >
> > When I attempt to do: (asdf:operate 'asdf:load-op :elephant),  (after
> > properly compiling
> > and installing in the correct places the berkeleydb 4.3 library and the
> > libsleepycat C library)
> > I get the error pasted in below.
> >
> > I understand CLOS, but just barely.  It is not obvious why this is
> > happening; I assume it
> > is some SBCL specific feature, and the the head of the repository build
> > successfully
> > on some other system?  Or am I just confused?
> >
> > If anyone has any idea or can help, please post immediately; I have been
> > working on
> > this full-time for over a month now and would really like to put a
> > ribbon around it
> > and publish it rather than abandon it.
> >
> >
> >
> > The slot %PERSISTENT-SLOTS is unbound in the object #<PERSISTENT-
> > METACLASS INDEXED-BTREE>.
> >   [Condition of type UNBOUND-SLOT]
> >
> >
> >   [Condition of type UNBOUND-SLOT]
> >
> > Restarts:
> >  0: [ABORT] Abort handling SLIME request.
> >  1: [ABORT] Reduce debugger level (leaving debugger, returning to toplevel).
> >  2: [TOPLEVEL] Restart at toplevel READ/EVAL/PRINT loop.
> >
> > Backtrace:
> >  0: ((SLOT-UNBOUND (T T T)) #<unavailable argument> #<unavailable argument> #<unavailable argument> #<PERSISTENT-METACLASS INDEXED-BTREE> %PERSISTENT-SLOTS)
> >  1: ("XEP for (SLOT-UNBOUND (T T T))" 5 #<unavailable argument> #<unavailable argument> #<unavailable argument> #<PERSISTENT-METACLASS INDEXED-BTREE> %PERSISTENT-SLOTS)[:EXTERNAL]
> >      Locals:
> >        SB-DEBUG::ARG-0 = 5
> >        SB-DEBUG::ARG-1 = :<NOT-AVAILABLE>
> >        SB-DEBUG::ARG-2 = :<NOT-AVAILABLE>
> >        SB-DEBUG::ARG-3 = :<NOT-AVAILABLE>
> >        SB-DEBUG::ARG-4 = #<PERSISTENT-METACLASS INDEXED-BTREE>
> >        SB-DEBUG::ARG-5 = %PERSISTENT-SLOTS
> >      [No catch-tags]
> >  2: (SB-PCL::SLOT-UNBOUND-INTERNAL #<PERSISTENT-METACLASS INDEXED-BTREE> 19)
> >      Locals:
> >        SB-DEBUG::ARG-0 = #<PERSISTENT-METACLASS INDEXED-BTREE>
> >        SB-DEBUG::ARG-1 = 19
> >      [No catch-tags]
> >  3: ((UPDATE-PERSISTENT-SLOTS (PERSISTENT-METACLASS T)) #<unavailable argument> #<unavailable argument> #<PERSISTENT-METACLASS INDEXED-BTREE> (INDICES))
> >      Locals:
> >        SB-DEBUG::ARG-0 = :<NOT-AVAILABLE>
> >        SB-DEBUG::ARG-1 = :<NOT-AVAILABLE>
> >        SB-DEBUG::ARG-2 = #<PERSISTENT-METACLASS INDEXED-BTREE>
> >        SB-DEBUG::ARG-3 = (INDICES)
> >      [No catch-tags]
> >  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."))
> >  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."))
> >  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))
> >  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]
> >  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]
> >  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]
> >  10: ("#'(LAMBDA NIL (LET # # ...))")
> >  11: ((SWANK-BACKEND:CALL-WITH-SYNTAX-HOOKS (T)) #<unused argument> #<unused argument> #<FUNCTION "CLOSURE" {99B893D}>)
> >  12: (SWANK:INTERACTIVE-EVAL "(defclass indexed-btree (btree)
> >  ((indices :accessor indices :initform (make-hash-table))
> >   (indices-cache :accessor indices-cache :initform (make-hash-table)
> > 		  :transient t))
> >  (:metaclass persistent-metaclass)
> >  (:documentation \"A BTree which supports secondary indices.\"))
> > ")
> >  13: (SB-INT:EVAL-IN-LEXENV 2 (SWANK:INTERACTIVE-EVAL "(defclass indexed-btree (btree)
> >  ((indices :accessor indices :initform (make-hash-table))
> >   (indices-cache :accessor indices-cache :initform (make-hash-table)
> > 		  :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]
> >  14: (SWANK::EVAL-FOR-EMACS (SWANK:INTERACTIVE-EVAL "(defclass indexed-btree (btree)
> >  ((indices :accessor indices :initform (make-hash-table))
> >   (indices-cache :accessor indices-cache :initform (make-hash-table)
> > 		  :transient t))
> >  (:metaclass persistent-metaclass)
> >  (:documentation \"A BTree which supports secondary indices.\"))
> > ") "\"ELEPHANT\"" 125)
> >  15: ("#'(LAMBDA NIL (LET # #))")
> >  16: (SWANK::CALL-WITH-REDIRECTED-IO #<SWANK::CONNECTION {9A9E831}> #<FUNCTION "#'(LAMBDA NIL (LET # #))" {977829D}>)
> >  17: (SWANK::HANDLE-REQUEST #<SWANK::CONNECTION {9A9E831}>)
> >  18: (SWANK::PROCESS-AVAILABLE-INPUT #<FILE-STREAM for "a constant string" {9A98B89}> #<FUNCTION "CLOSURE" {99B82D5}>)
> >  19: ("FLET SWANK::HANDLER")
> >  20: ("#'(LAMBDA (SWANK-BACKEND::_) SWANK-BACKEND::_ ...)" #<unused argument>)
> >
> _______________________________________________
> elephant-devel site list
> elephant-devel at common-lisp.net
> http://common-lisp.net/mailman/listinfo/elephant-devel
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mailman.common-lisp.net/pipermail/elephant-devel/attachments/20051010/a9786123/attachment.html>


More information about the elephant-devel mailing list