[elephant-devel] Re: elephant on ACL 6.2 using BDB

Robert L. Read read at robertlread.net
Thu Dec 22 15:15:09 UTC 2005


Deare Elephant Users and Developers,
    Andrew Philpot has discovered a major bug in the 0.3.0 version of
Elephant used on Allegro.
As his (attached) debugging code shows, there is apparently a difference
in the way Allegro and SBCL 
behave in terms of the MOP.

    This means that at present, 0.3.0 doesn't work with Allegro and
there is no simple workaround.
I can't work on this much until after X-mas.  Fixing this is the highest
priority for the project,
in my opinion; I will work on it then.  However, I don't have a copy of
Allegro and don't have 
much experience with the MOP.  If someone knows why Allegro "unsets" the
slot values after
they have been set and knows how to fix it, please tell me.

    I will eventually solve this problem but it would be even better if
a user could submit a patch
for me.
    
    Many thanks to Andrew for solving this problem; I will update the
project home page
to reflect this today.
    As far as I know, 0.2.0 continues to work with Allegro.



On Wed, 2005-12-21 at 17:44 -0800, Andrew Philpot wrote:

> I agree that it seems to be some kind of ACL MOP difference.
> 
> I metered various bits of initialization code I could find to see who
> is setting slot DBCONNECTION-SPEC-PST of the persistent object.
> 
> It looks like it gets set by all the specializations and then unset by
> STANDARD-OBJECT's INITIALIZE-INSTANCE method.  I can't test that
> directly, since I can't advice or specialize that CL-provided method.
> If this is indeed what is happening, I think you will have an idea of
> what to do, or perhaps we can formulate a question to Franz.
> 
> Sorry for the messiness of the transcript, as I've run out of time.
> 
> Thanks for taking a look.
> 
> Andrew


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mailman.common-lisp.net/pipermail/elephant-devel/attachments/20051222/15dc1b35/attachment.html>
-------------- next part --------------
(in-package :elephant)

(defun %%accessor (instance)
  (:dbcn-spc-pst instance))

(defun %%sluc (instance)
  (slot-value-using-class (class-of instance)
			  instance 
			  (find 'elephant::dbconnection-spec-pst 
				(class-slots (find-class 'elephant-tests::pfoo))
				:key #'clos::slot-definition-name)))

(defmethod initialize-instance :before  ((instance persistent)
					 &rest initargs
					 &key from-oid
					      spec 
					      ;; Putting the default use
					      ;; of the global variable here 
					      ;; is very bad for testing and multi-repository
					      ;; use; it is, however, good for making
					      ;; things work exactly the way they originally did!
					      (sc *store-controller*))
  "Sets the OID."
  (declare (ignore initargs))
  ;; This lines are fundamentally valuable in making sure that 
  ;; we have completely specified things.
  ;;  (if (null sc)
  ;;      (break))
  (if (not from-oid)
      (setf (oid instance) (next-oid sc))
    (setf (oid instance) from-oid))
  (if (not spec)
      (if (not (typep sc 'bdb-store-controller))
	  (setf (:dbcn-spc-pst instance) (:dbcn-spc sc))
	(setf (:dbcn-spc-pst instance) (controller-path sc))
	)
    (setf (:dbcn-spc-pst instance) spec))
  (format *debug-io* "~&* Exiting INITIALIZE-INSTANCE :BEFORE
Using accessor DBCONNECTION-SPEC-PST of instance is ~S
Using SLUC DBCONNECTION-SPEC-PST of instance is ~S"
	  (%%accessor instance)
	  (%%sluc instance))
  (cache-instance sc instance))

(defmethod shared-initialize :around ((instance persistent-object) slot-names &rest initargs &key &allow-other-keys)
  "Initializes the persistent slots via initargs or forms.
This seems to be necessary because it is typical for
implementations to optimize setting the slots via initforms
and initargs in such a way that slot-value-using-class et al
aren't used.  Calls the next method for the transient slots."
  (format *debug-io* "~&* Entering SHARED-INITIALIZE :AROUND.
Using accessor DBCONNECTION-SPEC-PST of instance is ~S
Using SLUC DBCONNECTION-SPEC-PST of instance is ~S"
	  (%%accessor instance)
	  (%%sluc instance))
  (let* ((class (class-of instance))
	 (persistent-slot-names (persistent-slot-names class)))
    (flet ((persistent-slot-p (item) 
	     (member item persistent-slot-names :test #'eq)))
      (let ((transient-slot-inits 
	     (if (eq slot-names t)	; t means all slots
		 (transient-slot-names class)
		 (remove-if #'persistent-slot-p slot-names)))
	    (persistent-slot-inits
	     (if (eq slot-names t) persistent-slot-names
		 (remove-if-not #'persistent-slot-p slot-names))))
	;; initialize the persistent slots
	(flet ((initialize-from-initarg (slot-def)
		 (loop for initarg in initargs
		    with slot-initargs = (slot-definition-initargs slot-def)
		    when (member initarg slot-initargs :test #'eq)
		    do 
		    (setf (slot-value-using-class class instance slot-def) 
			  (getf initargs initarg))
		    (return t))))
	  (loop for slot-def in (class-slots class)
	     unless (initialize-from-initarg slot-def)
	     when (member (slot-definition-name slot-def) persistent-slot-inits :test #'eq)
	     unless (slot-boundp-using-class class instance slot-def)
	     do
	     (let ((initfun (slot-definition-initfunction slot-def)))
	       (when initfun
		 (setf (slot-value-using-class class instance slot-def)
		       (funcall initfun))))
	    )
	  ;; let the implementation initialize the transient slots
	  (format *debug-io* "~&* Exiting SHARED-INITIALIZE :AROUND.
Using accessor DBCONNECTION-SPEC-PST of instance is ~S
Using SLUC DBCONNECTION-SPEC-PST of instance is ~S"
		  (%%accessor instance)
		  (%%sluc instance))
	  (apply #'call-next-method instance transient-slot-inits initargs))))))

#+HANGS_ACL
(excl::defadvice (METHOD INITIALIZE-INSTANCE (standard-object)) :around
  (when (typep instance 'elephant-tests::pfoo)
    (format *debug-io* "~&* Entering INITIALIZE-INSTANCE :AROUND for STANDARD-OBJECT.
Using accessor DBCONNECTION-SPEC-PST of instance is ~S
Using SLUC DBCONNECTION-SPEC-PST of instance is ~S"
	    (%%accessor instance)
	    (%%sluc instance)))
  (multiple-value-prog1 :do-it
    (when (typep instance 'elephant-tests::pfoo)
      (format *debug-io* "~&* Exiting INITIALIZE-INSTANCE :AROUND for STANDARD-OBJECT.
Using accessor DBCONNECTION-SPEC-PST of instance is ~S
Using SLUC DBCONNECTION-SPEC-PST of instance is ~S"
	      (%%accessor instance)
	      (%%sluc instance)))))

(defmethod initialize-instance :around ((instance persistent)
					&rest initargs
					&key from-oid
					     spec 
					     ;; Putting the default use
					     ;; of the global variable here 
					     ;; is very bad for testing and multi-repository
					     ;; use; it is, however, good for making
					     ;; things work exactly the way they originally did!
					     (sc *store-controller*))
  (multiple-value-prog1 (call-next-method)
    (format *debug-io* "~&* Exiting INITIALIZE-INSTANCE :AROUND.
Using accessor DBCONNECTION-SPEC-PST of instance is ~S
Using SLUC DBCONNECTION-SPEC-PST of instance is ~S"
	  (%%accessor instance)
	  (%%sluc instance))))
-------------- next part --------------
(in-package :elephant)

(defun %%accessor (instance)
  (:dbcn-spc-pst instance))

(defun %%sluc (instance)
  (slot-value-using-class (class-of instance)
			  instance 
			  (find 'elephant::dbconnection-spec-pst 
				(class-slots (find-class 'elephant-tests::pfoo))
				:key #'clos::slot-definition-name)))

(defmethod initialize-instance :before  ((instance persistent)
					 &rest initargs
					 &key from-oid
					      spec 
					      ;; Putting the default use
					      ;; of the global variable here 
					      ;; is very bad for testing and multi-repository
					      ;; use; it is, however, good for making
					      ;; things work exactly the way they originally did!
					      (sc *store-controller*))
  "Sets the OID."
  (declare (ignore initargs))
  ;; This lines are fundamentally valuable in making sure that 
  ;; we have completely specified things.
  ;;  (if (null sc)
  ;;      (break))
  (if (not from-oid)
      (setf (oid instance) (next-oid sc))
    (setf (oid instance) from-oid))
  (if (not spec)
      (if (not (typep sc 'bdb-store-controller))
	  (setf (:dbcn-spc-pst instance) (:dbcn-spc sc))
	(setf (:dbcn-spc-pst instance) (controller-path sc))
	)
    (setf (:dbcn-spc-pst instance) spec))
  (format *debug-io* "~&* Exiting INITIALIZE-INSTANCE :BEFORE
Using accessor DBCONNECTION-SPEC-PST of instance is ~S
Using SLUC DBCONNECTION-SPEC-PST of instance is ~S"
	  (%%accessor instance)
	  (%%sluc instance))
  (cache-instance sc instance))

(defmethod shared-initialize :around ((instance persistent-object) slot-names &rest initargs &key &allow-other-keys)
  "Initializes the persistent slots via initargs or forms.
This seems to be necessary because it is typical for
implementations to optimize setting the slots via initforms
and initargs in such a way that slot-value-using-class et al
aren't used.  Calls the next method for the transient slots."
  (format *debug-io* "~&* Entering SHARED-INITIALIZE :AROUND.
Using accessor DBCONNECTION-SPEC-PST of instance is ~S
Using SLUC DBCONNECTION-SPEC-PST of instance is ~S"
	  (%%accessor instance)
	  (%%sluc instance))
  (let* ((class (class-of instance))
	 (persistent-slot-names (persistent-slot-names class)))
    (flet ((persistent-slot-p (item) 
	     (member item persistent-slot-names :test #'eq)))
      (let ((transient-slot-inits 
	     (if (eq slot-names t)	; t means all slots
		 (transient-slot-names class)
		 (remove-if #'persistent-slot-p slot-names)))
	    (persistent-slot-inits
	     (if (eq slot-names t) persistent-slot-names
		 (remove-if-not #'persistent-slot-p slot-names))))
	;; initialize the persistent slots
	(flet ((initialize-from-initarg (slot-def)
		 (loop for initarg in initargs
		    with slot-initargs = (slot-definition-initargs slot-def)
		    when (member initarg slot-initargs :test #'eq)
		    do 
		    (setf (slot-value-using-class class instance slot-def) 
			  (getf initargs initarg))
		    (return t))))
	  (loop for slot-def in (class-slots class)
	     unless (initialize-from-initarg slot-def)
	     when (member (slot-definition-name slot-def) persistent-slot-inits :test #'eq)
	     unless (slot-boundp-using-class class instance slot-def)
	     do
	     (let ((initfun (slot-definition-initfunction slot-def)))
	       (when initfun
		 (setf (slot-value-using-class class instance slot-def)
		       (funcall initfun))))
	    )
	  ;; let the implementation initialize the transient slots
	  (format *debug-io* "~&* Exiting SHARED-INITIALIZE :AROUND.
Using accessor DBCONNECTION-SPEC-PST of instance is ~S
Using SLUC DBCONNECTION-SPEC-PST of instance is ~S"
		  (%%accessor instance)
		  (%%sluc instance))
	  (apply #'call-next-method instance transient-slot-inits initargs))))))

#+HANGS_ACL
(excl::defadvice (METHOD INITIALIZE-INSTANCE (standard-object)) :around
  (when (typep instance 'elephant-tests::pfoo)
    (format *debug-io* "~&* Entering INITIALIZE-INSTANCE :AROUND for STANDARD-OBJECT.
Using accessor DBCONNECTION-SPEC-PST of instance is ~S
Using SLUC DBCONNECTION-SPEC-PST of instance is ~S"
	    (%%accessor instance)
	    (%%sluc instance)))
  (multiple-value-prog1 :do-it
    (when (typep instance 'elephant-tests::pfoo)
      (format *debug-io* "~&* Exiting INITIALIZE-INSTANCE :AROUND for STANDARD-OBJECT.
Using accessor DBCONNECTION-SPEC-PST of instance is ~S
Using SLUC DBCONNECTION-SPEC-PST of instance is ~S"
	      (%%accessor instance)
	      (%%sluc instance)))))

(defmethod initialize-instance :around ((instance persistent)
					&rest initargs
					&key from-oid
					     spec 
					     ;; Putting the default use
					     ;; of the global variable here 
					     ;; is very bad for testing and multi-repository
					     ;; use; it is, however, good for making
					     ;; things work exactly the way they originally did!
					     (sc *store-controller*))
  (multiple-value-prog1 (call-next-method)
    (format *debug-io* "~&* Exiting INITIALIZE-INSTANCE :AROUND.
Using accessor DBCONNECTION-SPEC-PST of instance is ~S
Using SLUC DBCONNECTION-SPEC-PST of instance is ~S"
	  (%%accessor instance)
	  (%%sluc instance))))
-------------- next part --------------
==============================================================
Starting image `alisp'
  with image (dxl) file `/nfs/isd3/sims-bands/linux/acl6.2/std.dxl'
  with no arguments
  in directory `/nfs/isd3/philpot/lisp/system/elephant/elephant/src/'
  on machine `blombos.isi.edu'.

International Allegro CL Enterprise Edition
6.2 [Linux (x86)] (Aug 6, 2004 8:03)
Copyright (C) 1985-2002, Franz Inc., Berkeley, CA, USA.  All Rights Reserved.

This development copy of Allegro CL is licensed to:
   [TC7569] USC-ISI

; Loading /opt/acl62/siteinit.cl
;   Loading /nfs/isd3/philpot/lisp/init/clinit.cl

;;; Starting Lisp (PID:27793)
;     Loading /nfs/isd3/philpot/lisp/init/lp.lisp
;     Loading LH:init;std-config.lisp (/nfs/isd3/philpot/lisp/init/std-config.lisp)

;;; alias :MAKE defined for USER::MAKE
;       Fast loading LH:bootstrap;defsystem;patch1.xfasl
;          (/nfs/isd3/philpot/lisp/bootstrap/defsystem/patch1.xfasl)
;       Fast loading LH:bootstrap;defsystem;patch2.xfasl
;          (/nfs/isd3/philpot/lisp/bootstrap/defsystem/patch2.xfasl)

Defined MK language #<LISP: lisp xfasl>
Warning: UPDATE DIR UNKNOWN
;   Fast loading /nfs/isd3/philpot/lisp/system/asdf/asdf.xfasl
;   Fast loading /nfs/isd3/philpot/lisp/bootstrap/asdf-config.xfasl
;   Fast loading /nfs/isd3/philpot/lisp/bootstrap/asdf-require.xfasl
;; Optimization settings: safety 1, space 1, speed 1, debug 2.
;; For a complete description of all compiler switches given the current optimization settings
;; evaluate (EXPLAIN-COMPILER-SETTINGS).
CL-USER(1): (build-elephant)
; loading system definition from /nfs/isd3/philpot/lisp/defsys/uffi157.asd into
; #<The ASDF455 package>
; Loading /nfs/isd3/philpot/lisp/defsys/uffi157.asd
; registering #<SYSTEM UFFI157 @ #x717db7da> as UFFI157
; Fast loading /nfs/isd3/philpot/lisp/system/uffi/uffi157/src/package.xfasl
; Fast loading /nfs/isd3/philpot/lisp/system/uffi/uffi157/src/primitives.xfasl
; Fast loading /nfs/isd3/philpot/lisp/system/uffi/uffi157/src/objects.xfasl
; Fast loading /nfs/isd3/philpot/lisp/system/uffi/uffi157/src/aggregates.xfasl
; Fast loading /nfs/isd3/philpot/lisp/system/uffi/uffi157/src/functions.xfasl
; Fast loading /nfs/isd3/philpot/lisp/system/uffi/uffi157/src/strings.xfasl
; Fast loading /nfs/isd3/philpot/lisp/system/uffi/uffi157/src/libraries.xfasl
; Fast loading /nfs/isd3/philpot/lisp/system/uffi/uffi157/src/os.xfasl
; loading system definition from /nfs/isd3/philpot/lisp/defsys/elephant.asd into
; #<The ASDF457 package>
; Loading /nfs/isd3/philpot/lisp/defsys/elephant.asd
; registering #<SYSTEM ELEPHANT @ #x71894aca> as ELEPHANT
; Fast loading /nfs/isd3/philpot/lisp/system/elephant/elephant-0.3.0/src/sleepycat.xfasl
;   Foreign loading /nfs/isd3/philpot/lisp/system/elephant/elephant-0.3.0/libmemutil.so.
; Fast loading /nfs/isd3/philpot/lisp/system/elephant/elephant-0.3.0/src/berkeley-db.xfasl
; Fast loading /nfs/isd3/philpot/lisp/system/elephant/elephant-0.3.0/src/elephant.xfasl
; Fast loading /nfs/isd3/philpot/lisp/system/elephant/elephant-0.3.0/src/utils.xfasl
; Fast loading /nfs/isd3/philpot/lisp/system/elephant/elephant-0.3.0/src/metaclasses.xfasl
; Fast loading /nfs/isd3/philpot/lisp/system/elephant/elephant-0.3.0/src/classes.xfasl
; Fast loading /nfs/isd3/philpot/lisp/system/elephant/elephant-0.3.0/src/controller.xfasl
; Fast loading /nfs/isd3/philpot/lisp/system/elephant/elephant-0.3.0/src/collections.xfasl
Error: No package exists of name CLSQL-SYS.
  [condition type: PACKAGE-ERROR]

Restart actions (select using :continue):
 0: retry the load of /nfs/isd3/philpot/lisp/system/elephant/elephant-0.3.0/src/collections.xfasl
 1: skip loading /nfs/isd3/philpot/lisp/system/elephant/elephant-0.3.0/src/collections.xfasl
 2: recompile /nfs/isd3/philpot/lisp/system/elephant/elephant-0.3.0/src/collections.lisp
 3: Retry performing #<ASDF:LOAD-OP NIL @ #x71b5ff62> on
    #<ASDF:CL-SOURCE-FILE "collections" @ #x71b949fa>.
 4: Continue, treating #<ASDF:LOAD-OP NIL @ #x71b5ff62> on
    #<ASDF:CL-SOURCE-FILE "collections" @ #x71b949fa> as having been successful.
 5: Return to Top Level (an "abort" restart).
 6: Abort entirely from this process.

[changing package from "COMMON-LISP-USER" to "ELEPHANT"]
[1] ELE(2): :cont 4
; Fast loading /nfs/isd3/philpot/lisp/system/elephant/elephant-0.3.0/src/serializer.xfasl
; loading system definition from /nfs/isd3/philpot/lisp/defsys/cl-base64.asd into
; #<The ASDF464 package>
;   Loading /nfs/isd3/philpot/lisp/defsys/cl-base64.asd
; registering #<SYSTEM CL-BASE64 @ #x71d058aa> as CL-BASE64
; registering #<SYSTEM CL-BASE64-TESTS @ #x71d0be3a> as CL-BASE64-TESTS
; loading system definition from /nfs/isd3/philpot/lisp/defsys/kmrcl.asd into
; #<The ASDF467 package>
;   Loading /nfs/isd3/philpot/lisp/defsys/kmrcl.asd
; registering #<SYSTEM KMRCL @ #x71d1dd3a> as KMRCL
;   Fast loading /nfs/isd3/philpot/lisp/system/kmrcl-1.75/package.xfasl
;   Fast loading /nfs/isd3/philpot/lisp/system/kmrcl-1.75/ifstar.xfasl
;   Fast loading /nfs/isd3/philpot/lisp/system/kmrcl-1.75/byte-stream.xfasl
;   Fast loading /nfs/isd3/philpot/lisp/system/kmrcl-1.75/macros.xfasl
;   Fast loading /nfs/isd3/philpot/lisp/system/kmrcl-1.75/functions.xfasl
;   Fast loading /nfs/isd3/philpot/lisp/system/kmrcl-1.75/lists.xfasl
;   Fast loading /nfs/isd3/philpot/lisp/system/kmrcl-1.75/seqs.xfasl
;   Fast loading /nfs/isd3/philpot/lisp/system/kmrcl-1.75/impl.xfasl
;   Autoloading for package "EXCL.OSI":
;     Fast loading /opt/acl62/code/osi.016
;;; Installing osi patch, version 16
;       Fast loading /opt/acl62/code/fileutil.006
;;; Installing fileutil patch, version 6
;   Fast loading /nfs/isd3/philpot/lisp/system/kmrcl-1.75/io.xfasl
;   Fast loading /nfs/isd3/philpot/lisp/system/kmrcl-1.75/console.xfasl
;   Fast loading /nfs/isd3/philpot/lisp/system/kmrcl-1.75/strings.xfasl
Warning: +CHAR-CODE-LOWER-A+ is defined more than once as `variable' in file
         /nfs/isd3/philpot/lisp/system/kmrcl-1.75/strings.lisp.
Warning: +CHAR-CODE-UPPER-A+ is defined more than once as `variable' in file
         /nfs/isd3/philpot/lisp/system/kmrcl-1.75/strings.lisp.
Warning: +CHAR-CODE-0+ is defined more than once as `variable' in file
         /nfs/isd3/philpot/lisp/system/kmrcl-1.75/strings.lisp.
;   Fast loading /nfs/isd3/philpot/lisp/system/kmrcl-1.75/strmatch.xfasl
;   Fast loading /nfs/isd3/philpot/lisp/system/kmrcl-1.75/buff-input.xfasl
;   Fast loading /nfs/isd3/philpot/lisp/system/kmrcl-1.75/random.xfasl
;   Fast loading /nfs/isd3/philpot/lisp/system/kmrcl-1.75/symbols.xfasl
;   Fast loading /nfs/isd3/philpot/lisp/system/kmrcl-1.75/datetime.xfasl
;   Fast loading /nfs/isd3/philpot/lisp/system/kmrcl-1.75/math.xfasl
;   Fast loading /nfs/isd3/philpot/lisp/system/kmrcl-1.75/color.xfasl
;   Fast loading /nfs/isd3/philpot/lisp/system/kmrcl-1.75/mop.xfasl
;   Fast loading /nfs/isd3/philpot/lisp/system/kmrcl-1.75/equal.xfasl
;   Fast loading /nfs/isd3/philpot/lisp/system/kmrcl-1.75/web-utils.xfasl
;   Fast loading /nfs/isd3/philpot/lisp/system/kmrcl-1.75/xml-utils.xfasl
;   Fast loading /nfs/isd3/philpot/lisp/system/kmrcl-1.75/sockets.xfasl
;   Fast loading /nfs/isd3/philpot/lisp/system/kmrcl-1.75/processes.xfasl
;   Fast loading /nfs/isd3/philpot/lisp/system/kmrcl-1.75/listener.xfasl
;   Fast loading /nfs/isd3/philpot/lisp/system/kmrcl-1.75/repl.xfasl
;   Fast loading /nfs/isd3/philpot/lisp/system/kmrcl-1.75/os.xfasl
;   Fast loading /nfs/isd3/philpot/lisp/system/cl-base64-3.3.1/package.xfasl
;   Fast loading /nfs/isd3/philpot/lisp/system/cl-base64-3.3.1/encode.xfasl
;   Fast loading /nfs/isd3/philpot/lisp/system/cl-base64-3.3.1/decode.xfasl
; loading system definition from /nfs/isd3/philpot/lisp/defsys/ele-bdb.asd into
; #<The ASDF469 package>
; Loading /nfs/isd3/philpot/lisp/defsys/ele-bdb.asd
; registering #<SYSTEM ELE-BDB @ #x71db8aba> as ELE-BDB
; Fast loading /nfs/isd3/philpot/lisp/system/elephant/elephant-0.3.0/src/bdb-enable.xfasl
;   Foreign loading /lib/libpthread-0.10.so.
;   Foreign loading /opt/lib/libdb-4.3.so.
;   Foreign loading /nfs/isd3/philpot/lisp/system/elephant/elephant-0.3.0/libsleepycat.so.
; loading system definition from /nfs/isd3/philpot/lisp/defsys/ele-clsql.asd into
; #<The ASDF470 package>
; Loading /nfs/isd3/philpot/lisp/defsys/ele-clsql.asd
; registering #<SYSTEM ELE-CLSQL @ #x71e021da> as ELE-CLSQL
; loading system definition from /nfs/isd3/philpot/lisp/defsys/clsql.asd into
; #<The ASDF471 package>
; Loading /nfs/isd3/philpot/lisp/defsys/clsql.asd
; registering #<SYSTEM CLSQL @ #x71e27742> as CLSQL
; Fast loading /nfs/isd3/philpot/lisp/system/clsql/clsql-3.5.0/sql/cmucl-compat.xfasl
; Fast loading /nfs/isd3/philpot/lisp/system/clsql/clsql-3.5.0/sql/package.xfasl
; Fast loading /nfs/isd3/philpot/lisp/system/clsql/clsql-3.5.0/sql/kmr-mop.xfasl
; Fast loading /nfs/isd3/philpot/lisp/system/clsql/clsql-3.5.0/sql/base-classes.xfasl
; Fast loading /nfs/isd3/philpot/lisp/system/clsql/clsql-3.5.0/sql/conditions.xfasl
; Fast loading /nfs/isd3/philpot/lisp/system/clsql/clsql-3.5.0/sql/db-interface.xfasl
; Fast loading /nfs/isd3/philpot/lisp/system/clsql/clsql-3.5.0/sql/time.xfasl
; Fast loading /nfs/isd3/philpot/lisp/system/clsql/clsql-3.5.0/sql/utils.xfasl
; Fast loading /nfs/isd3/philpot/lisp/system/clsql/clsql-3.5.0/sql/generics.xfasl
; Fast loading /nfs/isd3/philpot/lisp/system/clsql/clsql-3.5.0/sql/initialize.xfasl
; Fast loading /nfs/isd3/philpot/lisp/system/clsql/clsql-3.5.0/sql/database.xfasl
; Fast loading /nfs/isd3/philpot/lisp/system/clsql/clsql-3.5.0/sql/recording.xfasl
; Fast loading /nfs/isd3/philpot/lisp/system/clsql/clsql-3.5.0/sql/pool.xfasl
; Fast loading /nfs/isd3/philpot/lisp/system/clsql/clsql-3.5.0/sql/expressions.xfasl
; Fast loading /nfs/isd3/philpot/lisp/system/clsql/clsql-3.5.0/sql/operations.xfasl
; Fast loading /nfs/isd3/philpot/lisp/system/clsql/clsql-3.5.0/sql/syntax.xfasl
; Fast loading /nfs/isd3/philpot/lisp/system/clsql/clsql-3.5.0/sql/fdml.xfasl
; Fast loading /nfs/isd3/philpot/lisp/system/clsql/clsql-3.5.0/sql/transaction.xfasl
; Fast loading /nfs/isd3/philpot/lisp/system/clsql/clsql-3.5.0/sql/loop-extension.xfasl
; Fast loading /nfs/isd3/philpot/lisp/system/clsql/clsql-3.5.0/sql/fddl.xfasl
; Fast loading /nfs/isd3/philpot/lisp/system/clsql/clsql-3.5.0/sql/metaclasses.xfasl
; Fast loading /nfs/isd3/philpot/lisp/system/clsql/clsql-3.5.0/sql/ooddl.xfasl
; Fast loading /nfs/isd3/philpot/lisp/system/clsql/clsql-3.5.0/sql/oodml.xfasl
; Fast loading /nfs/isd3/philpot/lisp/system/clsql/clsql-3.5.0/sql/generic-postgresql.xfasl
; Fast loading /nfs/isd3/philpot/lisp/system/clsql/clsql-3.5.0/sql/generic-odbc.xfasl
; Fast loading /nfs/isd3/philpot/lisp/system/clsql/clsql-3.5.0/sql/sequences.xfasl
; Fast loading /nfs/isd3/philpot/lisp/system/elephant/elephant-0.3.0/src/sql-controller.xfasl
; Fast loading /nfs/isd3/philpot/lisp/system/elephant/elephant-0.3.0/src/sql-collections.xfasl
Warning: SQL-BTREE-INDEX, :TYPE was defined in
         /nfs/isd3/philpot/lisp/system/elephant/elephant-0.3.0/src/sql-controller.lisp and is
         now being defined in
         /nfs/isd3/philpot/lisp/system/elephant/elephant-0.3.0/src/sql-collections.lisp
; loading system definition from /nfs/isd3/philpot/lisp/defsys/elephant-tests.asd into
; #<The ASDF480 package>
; Loading /nfs/isd3/philpot/lisp/defsys/elephant-tests.asd
; registering #<SYSTEM ELEPHANT-TESTS @ #x71a82bda> as ELEPHANT-TESTS
; loading system definition from /nfs/isd3/philpot/lisp/defsys/rt.asd into
; #<The ASDF481 package>
; Loading /nfs/isd3/philpot/lisp/defsys/rt.asd
; registering #<SYSTEM :RT @ #x71a959aa> as RT
; Fast loading /nfs/isd3/philpot/lisp/system/rt/rt-20040621/rt.xfasl
; Fast loading /nfs/isd3/philpot/lisp/system/elephant/elephant-0.3.0/tests/elephant-tests.xfasl
Warning: *TESTDB-PATH* is defined more than once as `variable' in file
         /nfs/isd3/philpot/lisp/system/elephant/elephant-0.3.0/tests/elephant-tests.lisp.
; Fast loading /nfs/isd3/philpot/lisp/system/elephant/elephant-0.3.0/tests/testserializer.xfasl
Warning: Redefining test MINIPERSISTENT
; Fast loading /nfs/isd3/philpot/lisp/system/elephant/elephant-0.3.0/tests/mop-tests.xfasl
; Fast loading
;    /nfs/isd3/philpot/lisp/system/elephant/elephant-0.3.0/tests/testcollections.xfasl
; Fast loading /nfs/isd3/philpot/lisp/system/elephant/elephant-0.3.0/tests/testsleepycat.xfasl
; Fast loading /nfs/isd3/philpot/lisp/system/elephant/elephant-0.3.0/tests/testmigration.xfasl
(ERROR REGRESSION-TEST:DO-TEST SLEEPYCAT::%DB-TXN-BEGIN SLEEPYCAT:DB-TRANSACTION-BEGIN)
CL-USER(3): (asdf:operate 'asdf:load-op :elephant :force t)
;;; Compiling file /nfs/isd3/philpot/lisp/system/uffi/uffi157/src/package.lisp
;;; Writing fasl file /nfs/isd3/philpot/lisp/system/uffi/uffi157/src/package.xfasl
;;; Fasl write complete
; Fast loading /nfs/isd3/philpot/lisp/system/uffi/uffi157/src/package.xfasl
;;; Compiling file /nfs/isd3/philpot/lisp/system/uffi/uffi157/src/primitives.lisp
;;; Writing fasl file /nfs/isd3/philpot/lisp/system/uffi/uffi157/src/primitives.xfasl
;;; Fasl write complete
; Fast loading /nfs/isd3/philpot/lisp/system/uffi/uffi157/src/primitives.xfasl
;;; Compiling file /nfs/isd3/philpot/lisp/system/uffi/uffi157/src/objects.lisp
;;; Writing fasl file /nfs/isd3/philpot/lisp/system/uffi/uffi157/src/objects.xfasl
;;; Fasl write complete
;;; Compiling file /nfs/isd3/philpot/lisp/system/uffi/uffi157/src/aggregates.lisp
;;; Writing fasl file /nfs/isd3/philpot/lisp/system/uffi/uffi157/src/aggregates.xfasl
;;; Fasl write complete
;;; Compiling file /nfs/isd3/philpot/lisp/system/uffi/uffi157/src/functions.lisp
;;; Writing fasl file /nfs/isd3/philpot/lisp/system/uffi/uffi157/src/functions.xfasl
;;; Fasl write complete
; Fast loading /nfs/isd3/philpot/lisp/system/uffi/uffi157/src/functions.xfasl
; Fast loading /nfs/isd3/philpot/lisp/system/uffi/uffi157/src/aggregates.xfasl
; Fast loading /nfs/isd3/philpot/lisp/system/uffi/uffi157/src/objects.xfasl
;;; Compiling file /nfs/isd3/philpot/lisp/system/uffi/uffi157/src/strings.lisp
;;; Writing fasl file /nfs/isd3/philpot/lisp/system/uffi/uffi157/src/strings.xfasl
;;; Fasl write complete
;;; Compiling file /nfs/isd3/philpot/lisp/system/uffi/uffi157/src/libraries.lisp
;;; Writing fasl file /nfs/isd3/philpot/lisp/system/uffi/uffi157/src/libraries.xfasl
;;; Fasl write complete
;;; Compiling file /nfs/isd3/philpot/lisp/system/uffi/uffi157/src/os.lisp
;;; Writing fasl file /nfs/isd3/philpot/lisp/system/uffi/uffi157/src/os.xfasl
;;; Fasl write complete
; Fast loading /nfs/isd3/philpot/lisp/system/uffi/uffi157/src/strings.xfasl
; Fast loading /nfs/isd3/philpot/lisp/system/uffi/uffi157/src/libraries.xfasl
; Fast loading /nfs/isd3/philpot/lisp/system/uffi/uffi157/src/os.xfasl
;;; Compiling file /nfs/isd3/philpot/lisp/system/elephant/elephant-0.3.0/src/sleepycat.lisp
;;; Writing fasl file /nfs/isd3/philpot/lisp/system/elephant/elephant-0.3.0/src/sleepycat.xfasl
;;; Fasl write complete
; Fast loading /nfs/isd3/philpot/lisp/system/elephant/elephant-0.3.0/src/sleepycat.xfasl
;;; Compiling file /nfs/isd3/philpot/lisp/system/elephant/elephant-0.3.0/src/berkeley-db.lisp
;;; Writing fasl file
;;;   /nfs/isd3/philpot/lisp/system/elephant/elephant-0.3.0/src/berkeley-db.xfasl
;;; Fasl write complete
; Fast loading /nfs/isd3/philpot/lisp/system/elephant/elephant-0.3.0/src/berkeley-db.xfasl
;;; Compiling file /nfs/isd3/philpot/lisp/system/elephant/elephant-0.3.0/src/elephant.lisp
;;; Writing fasl file /nfs/isd3/philpot/lisp/system/elephant/elephant-0.3.0/src/elephant.xfasl
;;; Fasl write complete
; Fast loading /nfs/isd3/philpot/lisp/system/elephant/elephant-0.3.0/src/elephant.xfasl
;;; Compiling file /nfs/isd3/philpot/lisp/system/elephant/elephant-0.3.0/src/utils.lisp
;;; Writing fasl file /nfs/isd3/philpot/lisp/system/elephant/elephant-0.3.0/src/utils.xfasl
;;; Fasl write complete
; Fast loading /nfs/isd3/philpot/lisp/system/elephant/elephant-0.3.0/src/utils.xfasl
;;; Compiling file /nfs/isd3/philpot/lisp/system/elephant/elephant-0.3.0/src/metaclasses.lisp
;;; Writing fasl file
;;;   /nfs/isd3/philpot/lisp/system/elephant/elephant-0.3.0/src/metaclasses.xfasl
;;; Fasl write complete
; Fast loading /nfs/isd3/philpot/lisp/system/elephant/elephant-0.3.0/src/metaclasses.xfasl
;;; Compiling file /nfs/isd3/philpot/lisp/system/elephant/elephant-0.3.0/src/classes.lisp
;;; Writing fasl file /nfs/isd3/philpot/lisp/system/elephant/elephant-0.3.0/src/classes.xfasl
;;; Fasl write complete
; Fast loading /nfs/isd3/philpot/lisp/system/elephant/elephant-0.3.0/src/classes.xfasl
;;; Compiling file /nfs/isd3/philpot/lisp/system/elephant/elephant-0.3.0/src/controller.lisp
;;; Writing fasl file
;;;   /nfs/isd3/philpot/lisp/system/elephant/elephant-0.3.0/src/controller.xfasl
;;; Fasl write complete
; Fast loading /nfs/isd3/philpot/lisp/system/elephant/elephant-0.3.0/src/controller.xfasl
;;; Compiling file /nfs/isd3/philpot/lisp/system/elephant/elephant-0.3.0/src/collections.lisp
;;; Writing fasl file
;;;   /nfs/isd3/philpot/lisp/system/elephant/elephant-0.3.0/src/collections.xfasl
;;; Fasl write complete
; Fast loading /nfs/isd3/philpot/lisp/system/elephant/elephant-0.3.0/src/collections.xfasl
;;; Compiling file /nfs/isd3/philpot/lisp/system/elephant/elephant-0.3.0/src/serializer.lisp
;;; Writing fasl file
;;;   /nfs/isd3/philpot/lisp/system/elephant/elephant-0.3.0/src/serializer.xfasl
;;; Fasl write complete
; Fast loading /nfs/isd3/philpot/lisp/system/elephant/elephant-0.3.0/src/serializer.xfasl
Warning: While compiling these undefined functions were referenced:
         #:G3716 from position 51906 in
           /nfs/isd3/philpot/lisp/system/elephant/elephant-0.3.0/src/berkeley-db.lisp
         #:G3643 from position 50872 in
           /nfs/isd3/philpot/lisp/system/elephant/elephant-0.3.0/src/berkeley-db.lisp
         #:G3560 from position 48926 in
           /nfs/isd3/philpot/lisp/system/elephant/elephant-0.3.0/src/berkeley-db.lisp
         #:G3546 from position 47942 in
           /nfs/isd3/philpot/lisp/system/elephant/elephant-0.3.0/src/berkeley-db.lisp
         #:G3286 from position 44384 in
           /nfs/isd3/philpot/lisp/system/elephant/elephant-0.3.0/src/berkeley-db.lisp
         #:G3256 from position 44114 in
           /nfs/isd3/philpot/lisp/system/elephant/elephant-0.3.0/src/berkeley-db.lisp
         #:G3196 from position 43507 in
           /nfs/isd3/philpot/lisp/system/elephant/elephant-0.3.0/src/berkeley-db.lisp
         #:G3025 from position 41263 in
           /nfs/isd3/philpot/lisp/system/elephant/elephant-0.3.0/src/berkeley-db.lisp
         #:G2861...
         ...
         ...
         ...
         ...
         ...
         ...
         ...
         ...
NIL
CL-USER(4): (open-store *testdb-path*)
Error: attempt to call `OPEN-STORE' which is an undefined function.
  [condition type: UNDEFINED-FUNCTION]

Restart actions (select using :continue):
 0: Try calling OPEN-STORE again.
 1: Try calling ELEPHANT:OPEN-STORE instead.
 2: Return a value instead of calling OPEN-STORE.
 3: Try calling a function other than OPEN-STORE.
 4: Setf the symbol-function of OPEN-STORE and call it again.
 5: Return to Top Level (an "abort" restart).
 6: Abort entirely from this process.
[1] CL-USER(5): :cont 1
Error: Attempt to take the value of the unbound variable `*TESTDB-PATH*'.
  [condition type: UNBOUND-VARIABLE]

Restart actions (select using :continue):
 0: Try evaluating *TESTDB-PATH* again.
 1: Use the value of ELEPHANT-TESTS::*TESTDB-PATH* instead.
 2: Set the symbol-value of *TESTDB-PATH* and use its value.
 3: Use a value without setting *TESTDB-PATH*.
 4: Return to Top Level (an "abort" restart).
 5: Abort entirely from this process.
[1] CL-USER(6): :reset
CL-USER(7): :package :elephant
ELE(8): (open-store *testdb-path*)
Error: Attempt to take the value of the unbound variable `*TESTDB-PATH*'.
  [condition type: UNBOUND-VARIABLE]

Restart actions (select using :continue):
 0: Try evaluating *TESTDB-PATH* again.
 1: Use the value of ELEPHANT-TESTS::*TESTDB-PATH* instead.
 2: Set the symbol-value of *TESTDB-PATH* and use its value.
 3: Use a value without setting *TESTDB-PATH*.
 4: Return to Top Level (an "abort" restart).
 5: Abort entirely from this process.
[1] ELE(9): :reset
ELE(10): :package :elephant-tests
ELE-TESTS(11): (open-store *testdb-path*)
#<BDB-STORE-CONTROLLER @ #x721a2e82>
ELE-TESTS(12): :cl /tmp/metering
Error: No file found with any of the names "/tmp/metering.cl", "/tmp/metering.lsp",
       "/tmp/metering.lisp", "/tmp/metering".
  [condition type: FILE-ERROR]

Restart actions (select using :continue):
 0: Prompt for a different filename to compile
 1: Abort entirely from this process.
[1] ELE-TESTS(13): :reset
ELE-TESTS(14): :cl /tmp/metered
; Fast loading /tmp/metered.xfasl
Warning: (METHOD INITIALIZE-INSTANCE :BEFORE (PERSISTENT)), :OPERATOR was defined in
         /nfs/isd3/philpot/lisp/system/elephant/elephant-0.3.0/src/classes.lisp and is now
         being defined in /tmp/metered.lisp
Warning: (METHOD SHARED-INITIALIZE :AROUND (PERSISTENT-OBJECT T)), :OPERATOR was defined in
         /nfs/isd3/philpot/lisp/system/elephant/elephant-0.3.0/src/classes.lisp and is now
         being defined in /tmp/metered.lisp
ELE-TESTS(15): *store-controller*
#<BDB-STORE-CONTROLLER @ #x721a2e82>
ELE-TESTS(16): (make-instance 'pfoo :sc *store-controller*)
* Exiting INITIALIZE-INSTANCE :BEFORE
Using accessor DBCONNECTION-SPEC-PST of instance is "/opt/elephant/tests/testdb"
Using SLUC DBCONNECTION-SPEC-PST of instance is "/opt/elephant/tests/testdb"
* Entering SHARED-INITIALIZE :AROUND.
Using accessor DBCONNECTION-SPEC-PST of instance is "/opt/elephant/tests/testdb"
Using SLUC DBCONNECTION-SPEC-PST of instance is "/opt/elephant/tests/testdb"
* Exiting SHARED-INITIALIZE :AROUND.
Using accessor DBCONNECTION-SPEC-PST of instance is "/opt/elephant/tests/testdb"
Using SLUC DBCONNECTION-SPEC-PST of instance is "/opt/elephant/tests/testdb"
* Exiting INITIALIZE-INSTANCE :AROUND.
Using accessor DBCONNECTION-SPEC-PST of instance is NIL
Using SLUC DBCONNECTION-SPEC-PST of instance is NIL
#<PFOO @ #x721ebaea>
ELE-TESTS(17): 


More information about the elephant-devel mailing list