[elephant-devel] secondary indices

Andrew Blumberg blumberg at math.uchicago.edu
Wed Jan 11 07:38:55 UTC 2006


the failure of update-class and change-class(N) are my responsibility, so 
i'll try and debug the problems there.

 								- andrew

On Tue, 10 Jan 2006, Waldo Rubinstein wrote:

> I ran the tests and here is what I got (Note: I never ran this before, so not 
> sure what I'm looking for):
>
> Welcome to OpenMCL Version 1.0 (DarwinPPC32)!
> ? (time (do-all-tests-spec *test-path-primary*))
> Doing 106 pending tests of 106 tests total.
> FIXNUMS FIXNUM-TYPE-1 BIGNUMS FLOATS RATIONALS BASE-STRINGS STRINGS SYMBOLS
> CHARS PATHNAMES CONSES HASH-TABLES-1 HASH-TABLES-2 ARRAYS-1 ARRAYS-2
> TEST-DEEP-EQUALP OBJECTS CIRCULAR PERSISTENT NON-TRANSIENT-CLASS-SLOT-1
> NON-TRANSIENT-CLASS-SLOT-2 TRANSIENT-CLASS-SLOT CLASS-DEFINERS BAD- 
> INHERITENCE
> MIXES MIXES-RIGHT-SLOTS INHERIT INHERIT-RIGHT-SLOTS INITFORM-CLASSES
> INITFORM-TEST INITARG-TEST NO-EVAL-INITFORM REDEFCLASS MAKUNBOUND
> Test UPDATE-CLASS failed
> Form: (PROGN (DEFCLASS UPDATE-CLASS NIL ((SLOT1 :INITFORM 1 :ACCESSOR SLOT1)) 
> (:METACLASS PERSISTENT-METACLASS)) (LET* ((*AUTO-COMMIT* T) (FOO 
> (MAKE-INSTANCE 'UPDATE-CLASS :SC *STORE-CONTROLLER*))) (DEFCLASS UPDATE-CLASS 
> NIL ((SLOT2 :INITFORM 2 :ACCESSOR SLOT2)) (:METACLASS PERSISTENT-METACLASS)) 
> (VALUES (SLOT2 FOO) (SIGNALS-CONDITION (SLOT1 FOO)))))
> Expected values: 2
>                 T
> Actual value: #<UNBOUND-SLOT #x8570FF6>.
> Test CHANGE-CLASS failed
> Form: (PROGN (DEFCLASS CLASS-ONE NIL ((SLOT1 :INITFORM 1 :ACCESSOR SLOT1)) 
> (:METACLASS PERSISTENT-METACLASS)) (DEFCLASS CLASS-TWO NIL ((SLOT1 :INITFORM 
> 0 :ACCESSOR SLOT1) (SLOT2 :INITFORM 2 :ACCESSOR SLOT2)) (:METACLASS 
> PERSISTENT-METACLASS)) (LET* ((*AUTO-COMMIT* T) (FOO (MAKE-INSTANCE 
> 'CLASS-ONE :SC *STORE-CONTROLLER*))) (CHANGE-CLASS FOO (FIND-CLASS 
> 'CLASS-TWO)) (VALUES (SLOT1 FOO) (SLOT2 FOO))))
> Expected values: 1
>                 2
> Actual value: #<UNBOUND-SLOT #x858BBAE>.
> Test CHANGE-CLASS2 failed
> Form: (WITH-TRANSACTION (:STORE-CONTROLLER *STORE-CONTROLLER*) (LET ((FOO 
> (BUILD-BTREE *STORE-CONTROLLER*))) (CHANGE-CLASS FOO (FIND-CLASS (IF (TYPEP 
> *STORE-CONTROLLER* 'BDB-STORE-CONTROLLER) 'BDB-INDEXED-BTREE 
> 'SQL-INDEXED-BTREE))) (IS-NOT-NULL (INDICES FOO))))
> Expected value: T
> Actual value: #<UNBOUND-SLOT #x859B756>.
> Test CHANGE-CLASS3 failed
> Form: (PROGN (DEFCLASS CLASS-ONE NIL ((SLOT1 :ACCESSOR SLOT1)) (:METACLASS 
> PERSISTENT-METACLASS)) (DEFCLASS CLASS-TWO NIL ((SLOT1 :INITFORM 0 :ACCESSOR 
> SLOT1) (SLOT2 :INITFORM 2 :ACCESSOR SLOT2)) (:METACLASS 
> PERSISTENT-METACLASS)) (LET* ((*AUTO-COMMIT* T) (FOO (MAKE-INSTANCE 
> 'CLASS-ONE :SC *STORE-CONTROLLER*))) (CHANGE-CLASS FOO (FIND-CLASS 
> 'CLASS-TWO)) (VALUES (SLOT1 FOO) (SLOT2 FOO))))
> Expected values: 0
>                 2
> Actual value: #<UNBOUND-SLOT #x8596516>.
> BASICPERSISTENCE TESTOID BTREE-MAKE BTREE-PUT BTREE-GET REMOVE-KV REMOVED
> MAP-BTREE INDEXED-BTREE-MAKE
> Test ADD-INDICES failed
> Form: (FINISHES (WITH-TRANSACTION (:STORE-CONTROLLER *STORE-CONTROLLER*) 
> (SETF INDEX1 (ADD-INDEX INDEXED :INDEX-NAME 'SLOT1 :KEY-FORM 'KEY-MAKER)) 
> (SETF INDEX2 (ADD-INDEX INDEXED :INDEX-NAME 'SLOT2 :KEY-FORM '(LAMBDA (S KEY 
> VALUE) (DECLARE (IGNORE S KEY)) (VALUES T (SLOT2 VALUE)))))))
> Expected value: T
> Actual value: NIL.
> Test TEST-INDICES failed
> Form: (VALUES (= (HASH-TABLE-COUNT (INDICES INDEXED)) 2) (EQ INDEX1 (GETHASH 
> 'SLOT1 (INDICES INDEXED))) (EQ INDEX2 (GETHASH 'SLOT2 (INDICES INDEXED))))
> Expected values: T
>                 T
>                 T
> Actual value: #<UNBOUND-VARIABLE #x8628626>.
> Test INDEXED-PUT failed
> Form: (FINISHES (WITH-TRANSACTION (:STORE-CONTROLLER *STORE-CONTROLLER*) 
> (LOOP FOR OBJ IN OBJS FOR KEY IN KEYS DO (SETF (GET-VALUE KEY INDEXED) 
> OBJ))))
> Expected value: T
> Actual value: NIL.
> Test INDEXED-GET failed
> Form: (LOOP FOR KEY IN KEYS FOR I FROM 1 TO 1000 FOR OBJ = (GET-VALUE KEY 
> INDEXED) ALWAYS (AND (= (SLOT1 OBJ) I) (= (SLOT2 OBJ) (* I 100))))
> Expected value: T
> Actual value: #<SIMPLE-ERROR #x864A6A6>.
> Test SIMPLE-SLOT-GET failed
> Form: (PROGN (SETF (GET-VALUE (NTH 0 KEYS) INDEXED) (NTH 0 OBJS)) (LET ((OBJ 
> (GET-VALUE 1 INDEX1))) (AND (= (SLOT1 OBJ) 1) (= (SLOT2 OBJ) (* 1 100)))))
> Expected value: T
> Actual value: #<SIMPLE-ERROR #x8648FCE>.
> Test INDEXED-GET-FROM-SLOT1 failed
> Form: (LOOP WITH INDEX = (GET-INDEX INDEXED 'SLOT1) FOR I FROM 1 TO 1000 FOR 
> OBJ = (GET-VALUE I INDEX) ALWAYS (= (SLOT1 OBJ) I))
> Expected value: T
> Actual value: #<SIMPLE-ERROR #x8645B76>.
> Test INDEXED-GET-FROM-SLOT2 failed
> Form: (LOOP WITH INDEX = (GET-INDEX INDEXED 'SLOT2) FOR I FROM 1 TO 1000 FOR 
> OBJ = (GET-VALUE (* I 100) INDEX) ALWAYS (= (SLOT2 OBJ) (* I 100)))
> Expected value: T
> Actual value: #<SIMPLE-ERROR #x8641FBE>.
> REMOVE-KV-INDEXED
> Test NO-KEY-NOR-INDICES failed
> Form: (VALUES (GET-VALUE FIRST-KEY INDEXED) (GET-PRIMARY-KEY 1 INDEX1) 
> (GET-PRIMARY-KEY 100 INDEX2))
> Expected values: NIL
>                 NIL
>                 NIL
> Actual value: #<UNBOUND-VARIABLE #x855DEAE>.
> Test REMOVE-KV-FROM-SLOT1 failed
> Form: (FINISHES (REMOVE-KV 2 INDEX1))
> Expected value: T
> Actual value: NIL.
> Test NO-KEY-NOR-INDICES-SLOT1 failed
> Form: (VALUES (GET-VALUE (SECOND KEYS) INDEXED) (GET-PRIMARY-KEY 2 INDEX1) 
> (GET-PRIMARY-KEY 200 INDEX2))
> Expected values: NIL
>                 NIL
>                 NIL
> Actual value: #<UNBOUND-VARIABLE #x8559DAE>.
> Test REMOVE-KV-FROM-SLOT2 failed
> Form: (FINISHES (REMOVE-KV 300 INDEX2))
> Expected value: T
> Actual value: NIL.
> Test NO-KEY-NOR-INDICES-SLOT2 failed
> Form: (VALUES (GET-VALUE (THIRD KEYS) INDEXED) (GET-PRIMARY-KEY 3 INDEX1) 
> (GET-PRIMARY-KEY 300 INDEX2))
> Expected values: NIL
>                 NIL
>                 NIL
> Actual value: #<UNBOUND-VARIABLE #x8555CA6>.
> Test MAP-INDEXED failed
> Form: (LET ((KS NIL) (VS NIL)) (FLET ((MAPPER (K V) (PUSH K KS) (PUSH V VS))) 
> (MAP-BTREE #'MAPPER INDEXED)) (VALUES (AND (SUBSETP KS (CDDDR KEYS) :TEST 
> #'EQUALP) (SUBSETP (CDDDR KEYS) KS :TEST #'EQUALP))))
> Expected value: T
> Actual value: NIL.
> Test GET-FIRST failed
> Form: (WITH-TRANSACTION (:STORE-CONTROLLER *STORE-CONTROLLER*) (WITH- 
> BTREE-CURSOR (C INDEX1) (MULTIPLE-VALUE-BIND (HAS K V) (CURSOR-FIRST C) 
> (DECLARE (IGNORE HAS V)) (= K 4))))
> Expected value: T
> Actual value: #<UNBOUND-VARIABLE #x85728C6>.
> Test GET-FIRST2 failed
> Form: (WITH-TRANSACTION (:STORE-CONTROLLER *STORE-CONTROLLER*) (WITH- 
> BTREE-CURSOR (C INDEX2) (MULTIPLE-VALUE-BIND (HAS K V) (CURSOR-FIRST C) 
> (DECLARE (IGNORE HAS V)) (= K 400))))
> Expected value: T
> Actual value: #<UNBOUND-VARIABLE #x8582076>.
> Test GET-LAST failed
> Form: (WITH-TRANSACTION (:STORE-CONTROLLER *STORE-CONTROLLER*) (WITH- 
> BTREE-CURSOR (C INDEX1) (MULTIPLE-VALUE-BIND (HAS K V) (CURSOR-LAST C) 
> (DECLARE (IGNORE HAS V)) (= K 1000))))
> Expected value: T
> Actual value: #<UNBOUND-VARIABLE #x8591826>.
> Test GET-LAST2 failed
> Form: (WITH-TRANSACTION (:STORE-CONTROLLER *STORE-CONTROLLER*) (WITH- 
> BTREE-CURSOR (C INDEX2) (MULTIPLE-VALUE-BIND (HAS K V) (CURSOR-LAST C) 
> (DECLARE (IGNORE HAS V)) (= K 100000))))
> Expected value: T
> Actual value: #<UNBOUND-VARIABLE #x85A0D76>.
> Test SET failed
> Form: (WITH-TRANSACTION (:STORE-CONTROLLER *STORE-CONTROLLER*) (WITH- 
> BTREE-CURSOR (C INDEX1) (MULTIPLE-VALUE-BIND (HAS K V) (CURSOR-SET C 200) 
> (DECLARE (IGNORE HAS K)) (= (SLOT1 V) 200))))
> Expected value: T
> Actual value: #<UNBOUND-VARIABLE #x85CFE4E>.
> Test SET2 failed
> Form: (WITH-TRANSACTION (:STORE-CONTROLLER *STORE-CONTROLLER*) (WITH- 
> BTREE-CURSOR (C INDEX2) (MULTIPLE-VALUE-BIND (HAS K V) (CURSOR-SET C 500) 
> (DECLARE (IGNORE HAS K)) (= (SLOT2 V) 500))))
> Expected value: T
> Actual value: #<UNBOUND-VARIABLE #x85DF0BE>.
> Test SET-RANGE failed
> Form: (WITH-TRANSACTION (:STORE-CONTROLLER *STORE-CONTROLLER*) (WITH- 
> BTREE-CURSOR (C INDEX1) (MULTIPLE-VALUE-BIND (HAS K V) (CURSOR-SET-RANGE C 
> 199.5) (DECLARE (IGNORE HAS K)) (= (SLOT1 V) 200))))
> Expected value: T
> Actual value: #<UNBOUND-VARIABLE #x85EE326>.
> Test SET-RANGE2 failed
> Form: (WITH-TRANSACTION (:STORE-CONTROLLER *STORE-CONTROLLER*) (WITH- 
> BTREE-CURSOR (C INDEX2) (MULTIPLE-VALUE-BIND (HAS K V) (CURSOR-SET-RANGE C 
> 501) (DECLARE (IGNORE HAS K)) (= (SLOT2 V) 600))))
> Expected value: T
> Actual value: #<UNBOUND-VARIABLE #x85FD54E>.
> Test REM-KV failed
> Form: (WITH-TRANSACTION (:STORE-CONTROLLER *STORE-CONTROLLER*) (LET ((IBT 
> (BUILD-INDEXED-BTREE *STORE-CONTROLLER*))) (LOOP FOR I FROM 0 TO 10 DO (SETF 
> (GET-VALUE I IBT) (* I I))) (REMOVE-KV 0 IBT) (REMOVE-KV 1 IBT) (REMOVE-KV 10 
> IBT) (EQUAL (LIST (GET-VALUE 0 IBT) (GET-VALUE 1 IBT) (GET-VALUE 10 IBT) 
> (GET-VALUE 5 IBT)) '(NIL NIL NIL 25))))
> Expected value: T
> Actual value: #<SIMPLE-ERROR #x8609BAE>.
> Test REM-IDEXKV failed
> Form: (WITH-TRANSACTION (:STORE-CONTROLLER *STORE-CONTROLLER*) (LET* ((IBT 
> (BUILD-INDEXED-BTREE *STORE-CONTROLLER*)) (ID1 (ADD-INDEX IBT :INDEX-NAME 
> 'IDX1 :KEY-FORM 'ODD))) (LOOP FOR I FROM 0 TO 10 DO (SETF (GET-VALUE I IBT) 
> (* I I))) (WITH-BTREE-CURSOR (C ID1) (CURSOR-FIRST C) (DOTIMES (I 10) 
> (MULTIPLE-VALUE-BIND (HAS KEY VALUE) (CURSOR-NEXT C)))) (REMOVE-KV 4 IBT) 
> (REMOVE-KV 5 IBT) (EQUAL (LIST (GET-VALUE 4 IBT) (GET-VALUE 5 IBT) (GET-VALUE 
> 6 IBT) (WITH-BTREE-CURSOR (C IBT) (CURSOR-FIRST C) (DOTIMES (I 4) 
> (MULTIPLE-VALUE-BIND (HAS KEY VALUE) (CURSOR-NEXT C) VALUE)) 
> (MULTIPLE-VALUE-BIND (HAS KEY VALUE) (CURSOR-NEXT C) VALUE))) '(NIL NIL 36 
> 49))))
> Expected value: T
> Actual value: #<SIMPLE-ERROR #x862FAB6>.
> MAKE-INDEXED2
> Test ADD-INDICES2 failed
> Form: (FINISHES (WITH-TRANSACTION (:STORE-CONTROLLER *STORE-CONTROLLER*) 
> (SETQ INDEX3 (ADD-INDEX INDEXED2 :INDEX-NAME 'CRUNCH :KEY-FORM 'CRUNCH))))
> Expected value: T
> Actual value: NIL.
> Test PUT-INDEXED2 failed
> Form: (FINISHES (WITH-TRANSACTION (:STORE-CONTROLLER *STORE-CONTROLLER*) 
> (LOOP FOR I FROM 0 TO 10000 DO (SETF (GET-VALUE I INDEXED2) (- I)))))
> Expected value: T
> Actual value: NIL.
> Test GET-INDEXED2 failed
> Form: (LOOP FOR I FROM 0 TO 10000 ALWAYS (= (- I) (GET-VALUE I INDEXED2)))
> Expected value: T
> Actual value: #<TYPE-ERROR #x856D096>.
> Test GET-FROM-INDEX3 failed
> Form: (LOOP FOR I FROM 0 TO 1000 ALWAYS (= (* I -10) (GET-VALUE I INDEX3)))
> Expected value: T
> Actual value: #<UNBOUND-VARIABLE #x856A34E>.
> Test DUP-TEST failed
> Form: (WITH-TRANSACTION (:STORE-CONTROLLER *STORE-CONTROLLER*) (WITH- 
> BTREE-CURSOR (CURS INDEX3) (LOOP FOR (MORE K V) = (MULTIPLE-VALUE-LIST 
> (CURSOR-FIRST CURS)) THEN (MULTIPLE-VALUE-LIST (CURSOR-NEXT-DUP CURS)) WHILE 
> MORE COLLECT V)))
> Expected value: (0 -1 -2 -3 -4 -5 -6 -7 -8 -9)
> Actual value: #<UNBOUND-VARIABLE #x859571E>.
> Test NODUP-TEST failed
> Form: (WITH-TRANSACTION (:STORE-CONTROLLER *STORE-CONTROLLER*) (WITH- 
> BTREE-CURSOR (CURS INDEX3) (LOOP FOR (M K V) = (MULTIPLE-VALUE-LIST 
> (CURSOR-NEXT-NODUP CURS)) FOR I FROM 0 DOWNTO -9990 BY 10 WHILE M ALWAYS (= V 
> I))))
> Expected value: T
> Actual value: #<UNBOUND-VARIABLE #x85A16AE>.
> Test PREV-NODUP-TEST failed
> Form: (WITH-TRANSACTION (:STORE-CONTROLLER *STORE-CONTROLLER*) (WITH- 
> BTREE-CURSOR (CURS INDEX3) (CURSOR-LAST CURS) (LOOP FOR (M K V) = 
> (MULTIPLE-VALUE-LIST (CURSOR-PREV-NODUP CURS)) FOR I FROM -9999 TO -9 BY 10 
> WHILE M ALWAYS (= V I))))
> Expected value: T
> Actual value: #<UNBOUND-VARIABLE #x85CD1AE>.
> Test PNODUP-TEST failed
> Form: (WITH-TRANSACTION (:STORE-CONTROLLER *STORE-CONTROLLER*) (WITH- 
> BTREE-CURSOR (CURS INDEX3) (LOOP FOR (M K V P) = (MULTIPLE-VALUE-LIST 
> (CURSOR-PNEXT-NODUP CURS)) FOR I FROM 0 TO 9990 BY 10 WHILE M ALWAYS (= P 
> I))))
> Expected value: T
> Actual value: #<UNBOUND-VARIABLE #x85D86DE>.
> Test PPREV-NODUP-TEST failed
> Form: (WITH-TRANSACTION (:STORE-CONTROLLER *STORE-CONTROLLER*) (WITH- 
> BTREE-CURSOR (CURS INDEX3) (CURSOR-LAST CURS) (LOOP FOR (M K V P) = 
> (MULTIPLE-VALUE-LIST (CURSOR-PPREV-NODUP CURS)) FOR I FROM 9999 DOWNTO 9 BY 
> 10 WHILE M ALWAYS (= P I))))
> Expected value: T
> Actual value: #<UNBOUND-VARIABLE #x85E3BE6>.
> Test CUR-DEL1 failed
> Form: (WITH-TRANSACTION (:STORE-CONTROLLER *STORE-CONTROLLER*) (LET* ((IBT 
> (BUILD-INDEXED-BTREE *STORE-CONTROLLER*)) (ID1 (ADD-INDEX IBT :INDEX-NAME 
> 'IDX1 :KEY-FORM 'ODD))) (LOOP FOR I FROM 0 TO 10 DO (SETF (GET-VALUE I IBT) 
> (* I I))) (WITH-BTREE-CURSOR (C ID1) (CURSOR-LAST C) (CURSOR-DELETE C)) 
> (EQUAL (LIST (GET-VALUE 4 IBT) (GET-VALUE 5 IBT) (GET-VALUE 9 IBT) (GET-VALUE 
> 10 IBT)) '(16 25 NIL 100))))
> Expected value: T
> Actual value: #<SIMPLE-ERROR #x860F77E>.
> Test INDEXED-DELETE failed
> Form: (FINISHES (WITH-TRANSACTION (:STORE-CONTROLLER *STORE-CONTROLLER*) 
> (WITH-BTREE-CURSOR (CURS INDEX3) (CURSOR-LAST CURS) (CURSOR-DELETE CURS))))
> Expected value: T
> Actual value: NIL.
> Test TEST-DELETED failed
> Form: (VALUES (GET-VALUE 10000 INDEXED2) (GET-VALUE 1000 INDEX3))
> Expected values: NIL
>                 NIL
> Actual value: #<UNBOUND-VARIABLE #x8619B2E>.
> Test INDEXED-DELETE2 failed
> Form: (FINISHES (WITH-TRANSACTION (:STORE-CONTROLLER *STORE-CONTROLLER*) 
> (WITH-BTREE-CURSOR (CURS INDEX3) (CURSOR-FIRST CURS) (CURSOR-NEXT-DUP CURS) 
> (CURSOR-DELETE CURS))))
> Expected value: T
> Actual value: NIL.
> Test TEST-DELETED2 failed
> Form: (VALUES (GET-VALUE 0 INDEXED2) (GET-VALUE 0 INDEX3) (GET-VALUE 1 
> INDEXED2) (WITH-BTREE-CURSOR (C INDEX3) (CURSOR-FIRST C) (MULTIPLE-VALUE-BIND 
> (M K V) (CURSOR-NEXT C) V)))
> Expected values: 0
>                 0
>                 NIL
>                 -2
> Actual value: #<UNBOUND-VARIABLE #x86245D6>.
> Test CUR-DEL2 failed
> Form: (WITH-TRANSACTION (:STORE-CONTROLLER *STORE-CONTROLLER*) (LET* ((IBT 
> (BUILD-INDEXED-BTREE *STORE-CONTROLLER*)) (ID1 (ADD-INDEX IBT :INDEX-NAME 
> 'IDX1 :KEY-FORM 'ODD))) (LOOP FOR I FROM 0 TO 10 DO (SETF (GET-VALUE I IBT) 
> (* I I))) (WITH-BTREE-CURSOR (C ID1) (CURSOR-FIRST C) (CURSOR-NEXT-DUP C) 
> (CURSOR-DELETE C)) (EQUAL (LIST (GET-VALUE 1 ID1) (GET-VALUE 0 ID1)) '(1 
> 0))))
> Expected value: T
> Actual value: #<SIMPLE-ERROR #x863093E>.
> Test GET-BOTH failed
> Form: (WITH-BTREE-CURSOR (C INDEXED2) (CURSOR-GET-BOTH C 200 -200))
> Expected values: T
>                 200
>                 -200
> Actual value: NIL.
> Test PGET-BOTH failed
> Form: (WITH-BTREE-CURSOR (C INDEX3) (MULTIPLE-VALUE-BIND (M K V P) 
> (CURSOR-PGET-BOTH C 10 107) (VALUES K V P)))
> Expected values: 10
>                 -107
>                 107
> Actual value: #<UNBOUND-VARIABLE #x864D7B6>.
> Test PGET-BOTH-RANGE failed
> Form: (WITH-BTREE-CURSOR (C INDEX3) (MULTIPLE-VALUE-BIND (M K V P) 
> (CURSOR-PGET-BOTH-RANGE C 10 106.5) (VALUES K V P)))
> Expected values: 10
>                 -107
>                 107
> Actual value: #<UNBOUND-VARIABLE #x864B9FE>.
> Test PCURSOR failed
> Form: (WITH-BTREE-CURSOR (C INDEX3) (VALUES (PCURSOR-PKEY (CURSOR-PFIRST C)) 
> (PCURSOR-PKEY (CURSOR-PNEXT C)) (PCURSOR-PKEY (CURSOR-PNEXT-NODUP C)) 
> (PCURSOR-PKEY (CURSOR-PNEXT-DUP C)) (PCURSOR-PKEY (CURSOR-PPREV C)) 
> (PCURSOR-PKEY (CURSOR-PPREV-NODUP C)) (PCURSOR-PKEY (CURSOR-PLAST C)) 
> (PCURSOR-PKEY (CURSOR-PSET C 300)) (PCURSOR-PKEY (CURSOR-PSET-RANGE C 199.5)) 
> (PCURSOR-PKEY (CURSOR-PGET-BOTH C 10 101)) (PCURSOR-PKEY 
> (CURSOR-PGET-BOTH-RANGE C 11 111.4))))
> Expected values: 0
>                 2
>                 10
>                 11
>                 10
>                 9
>                 9999
>                 3000
>                 2000
>                 101
>                 112
> Actual value: #<UNBOUND-VARIABLE #x8643776>.
> Test NEWINDEX failed
> Form: (FINISHES (WITH-TRANSACTION (:STORE-CONTROLLER *STORE-CONTROLLER*) 
> (SETQ INDEX4 (ADD-INDEX INDEXED2 :INDEX-NAME 'CRUNCH :KEY-FORM 'CRUNCH 
> :POPULATE T))))
> Expected value: T
> Actual value: NIL.
> Test PCURSOR2 failed
> Form: (WITH-BTREE-CURSOR (C INDEX4) (VALUES (PCURSOR-PKEY (CURSOR-PFIRST C)) 
> (PCURSOR-PKEY (CURSOR-PNEXT C)) (PCURSOR-PKEY (CURSOR-PNEXT-NODUP C)) 
> (PCURSOR-PKEY (CURSOR-PNEXT-DUP C)) (PCURSOR-PKEY (CURSOR-PPREV C)) 
> (PCURSOR-PKEY (CURSOR-PPREV-NODUP C)) (PCURSOR-PKEY (CURSOR-PLAST C)) 
> (PCURSOR-PKEY (CURSOR-PSET C 300)) (PCURSOR-PKEY (CURSOR-PSET-RANGE C 199.5)) 
> (PCURSOR-PKEY (CURSOR-PGET-BOTH C 10 101)) (PCURSOR-PKEY 
> (CURSOR-PGET-BOTH-RANGE C 11 111.4))))
> Expected values: 0
>                 2
>                 10
>                 11
>                 10
>                 9
>                 9999
>                 3000
>                 2000
>                 101
>                 112
> Actual value: #<UNBOUND-VARIABLE #x8666A06>.
> ADD-GET-REMOVE ADD-GET-REMOVE-SYMBOL EXISTSP PREPARES-SLEEPYCAT TEST-SEQ1
> TEST-SEQ2 CLEANSUP-SLEEPYCAT REMOVE-ELEMENT
> Test MIGRATE1 failed
> Form: (LET ((OLD-STORE *STORE-CONTROLLER*) (*PREV-COMMIT* *AUTO-COMMIT*) 
> (*AUTO-COMMIT* T) (RV NIL)) (UNWIND-PROTECT (LET ((SC1 (OPEN-STORE 
> *TEST-PATH-PRIMARY*)) (SC2 (OPEN-STORE *TEST-PATH-SECONDARY*))) (ADD-TO-ROOT 
> "x" "y" :STORE-CONTROLLER SC1) (COPY-FROM-KEY "x" SC1 SC2) (SETF RV (EQUAL 
> (GET-FROM-ROOT "x" :STORE-CONTROLLER SC1) (GET-FROM-ROOT "x" 
> :STORE-CONTROLLER SC2)))) (PROGN (SETQ *STORE-CONTROLLER* OLD-STORE) (SETQ 
> *AUTO-COMMIT* *PREV-COMMIT*))) RV)
> Expected value: T
> Actual value: #<SIMPLE-ERROR #x85779EE>.
> Test MIGRATE2 failed
> Form: (LET ((OLD-STORE *STORE-CONTROLLER*) (*PREV-COMMIT* *AUTO-COMMIT*) 
> (*AUTO-COMMIT* T) (RV NIL)) (UNWIND-PROTECT (LET ((SC1 (OPEN-STORE 
> *TEST-PATH-PRIMARY*)) (SC2 (OPEN-STORE *TEST-PATH-SECONDARY*))) (LET ((IBT 
> (BUILD-BTREE SC1))) (LOOP FOR I FROM 0 TO 10 DO (SETF (GET-VALUE I IBT) (* I 
> I))) (LET ((MIG (MIGRATE SC2 IBT))) (BTREE-DIFFER IBT MIG)))) (PROGN (SETQ 
> *STORE-CONTROLLER* OLD-STORE) (SETQ *AUTO-COMMIT* *PREV-COMMIT*))))
> Expected value: NIL
> Actual value: #<SIMPLE-ERROR #x85ACC46>.
> Test MIGRATE3 failed
> Form: (LET ((OLD-STORE *STORE-CONTROLLER*) (*PREV-COMMIT* *AUTO-COMMIT*) 
> (*AUTO-COMMIT* T) (RV NIL)) (UNWIND-PROTECT (LET ((SC1 (OPEN-STORE 
> *TEST-PATH-PRIMARY*)) (SC2 (OPEN-STORE *TEST-PATH-SECONDARY*))) (LET* ((IBT 
> (BUILD-INDEXED-BTREE SC1))) (LET ((INDEX (ADD-INDEX IBT :INDEX-NAME 'CRUNCH 
> :KEY-FORM 'CRUNCH :POPULATE T))) (LOOP FOR I FROM 0 TO 10 DO (SETF (GET-VALUE 
> I IBT) (* I I))) (LET* ((MIG (MIGRATE SC2 IBT)) (NINDEX (GETHASH 'CRUNCH 
> (INDICES IBT)))) (LOOP FOR I FROM 0 TO 10 DO (IF (NOT (EQUAL (GET-VALUE I 
> INDEX) (GET-VALUE I NINDEX))) (PROGN (FORMAT T "YIKES ~A ~%" I)))) (SETF RV 
> (NOT (BTREE-DIFFER IBT MIG))))))) (PROGN (SETQ *STORE-CONTROLLER* OLD-STORE) 
> (SETQ *AUTO-COMMIT* *PREV-COMMIT*))) RV)
> Expected value: T
> Actual value: #<SIMPLE-ERROR #x85A511E>.
> Test MIGRATE4 failed
> Form: (FINISHES (LET ((OLD-STORE *STORE-CONTROLLER*) (*PREV-COMMIT* 
> *AUTO-COMMIT*) (*AUTO-COMMIT* T) (RV NIL)) (UNWIND-PROTECT (LET* ((SC1 
> (OPEN-STORE *TEST-PATH-PRIMARY*)) (SC2 (OPEN-STORE *TEST-PATH-SECONDARY*))) 
> (LET* ((IBT (BUILD-INDEXED-BTREE SC1))) (LET ((INDEX (ADD-INDEX IBT 
> :INDEX-NAME 'CRUNCH :KEY-FORM 'CRUNCH :POPULATE T)) (X 0)) (LOOP FOR I FROM 0 
> TO 10 DO (SETF (GET-VALUE I IBT) (* I I)))))) (PROGN (SETQ *STORE-CONTROLLER* 
> OLD-STORE) (SETQ *AUTO-COMMIT* *PREV-COMMIT*)))))
> Expected value: T
> Actual value: NIL.
> MIGRATE5
> 52 out of 106 total tests failed: UPDATE-CLASS, CHANGE-CLASS, CHANGE-CLASS2, 
> CHANGE-CLASS3, ADD-INDICES,
>   TEST-INDICES, INDEXED-PUT, INDEXED-GET, SIMPLE-SLOT-GET,
>   INDEXED-GET-FROM-SLOT1, INDEXED-GET-FROM-SLOT2, NO-KEY-NOR-INDICES,
>   REMOVE-KV-FROM-SLOT1, NO-KEY-NOR-INDICES-SLOT1, REMOVE-KV-FROM-SLOT2,
>   NO-KEY-NOR-INDICES-SLOT2, MAP-INDEXED, GET-FIRST, GET-FIRST2, GET-LAST,
>   GET-LAST2, SET, SET2, SET-RANGE, SET-RANGE2, REM-KV, REM-IDEXKV,
>   ADD-INDICES2, PUT-INDEXED2, GET-INDEXED2, GET-FROM-INDEX3, DUP-TEST,
>   NODUP-TEST, PREV-NODUP-TEST, PNODUP-TEST, PPREV-NODUP-TEST, CUR-DEL1,
>   INDEXED-DELETE, TEST-DELETED, INDEXED-DELETE2, TEST-DELETED2, CUR-DEL2,
>   GET-BOTH, PGET-BOTH, PGET-BOTH-RANGE, PCURSOR, NEWINDEX, PCURSOR2, 
> MIGRATE1,
>   MIGRATE2, MIGRATE3, MIGRATE4.
> (DO-ALL-TESTS-SPEC *TEST-PATH-PRIMARY*) took 8,681 milliseconds (8.681 
> seconds) to run.
> Of that, 6,746 milliseconds (6.746 seconds) were spent in user mode
>         706 milliseconds (0.706 seconds) were spent in system mode
>         1,229 milliseconds (1.229 seconds) were spent executing other OS 
> processes.
> 738 milliseconds (0.738 seconds) was spent in GC.
> 372,045,168 bytes of memory allocated.
> NIL
>
> - Waldo
>
> On Jan 10, 2006, at 5:06 PM, Robert L. Read wrote:
>
>> Dear Kilian,
>> 
>>     Thanks for trying this on openmcl.  This code works for me under SBCL 
>> 9.5.  As we
>> all know, CLOS-related stuff like this tends to be more dissimilar between 
>> list implementations
>> than other parts of LISP.  Since this works under SBCL and has not been 
>> reported under
>> any other implementation, it might be an implementation-specific problem. 
>> Unfortunately,
>> I don't have a PPC machine on which to attempt to duplicate this problem.
>> 
>>     I will be happy to help you debug this, if you are interested (Waldo 
>> Rubinstein maybe
>> even more interested!)
>>     As a first step, we need to establish what the test regime does under 
>> your OpenMCL.
>> As you may know, Elephant comes with 106 tests (some of which involve data 
>> migration).
>> I wouldn't claim they are exhaustive but they are far better than nothing. 
>> If you are
>> willing to take a few extra minutes, please execute this and send me the 
>> transcript:
>> 
>> (asdf:operate 'asdf:load-op :elephant)
>> (asdf:operate 'asdf:load-op :ele-bdb)
>> (asdf:operate 'asdf:load-op :elephant-tests)
>> (in-package "ELEPHANT-TESTS")
>> (setq *test-path-primary* *testdb-path*)
>> (setq *test-path-secondary* nil)
>> (do-all-tests-spec *test-path-primary*)
>> 
>> (on my computer, the actual test execution takes 31 seconds.)
> _______________________________________________
> elephant-devel site list
> elephant-devel at common-lisp.net
> http://common-lisp.net/mailman/listinfo/elephant-devel
>



More information about the elephant-devel mailing list