The type declarations in controller.lisp in the following
(defun add-index-from-index (iname v dstibt dstsc)
(declare (type btree-index v)
(type indexed-btree dstibt))
(let ((kf (key-form v)))
(format t " kf ~A ~%" kf)
(let ((index
(build-btree-index dstsc :primary dstibt
:key-form kf)))
;; Why do I have to do this here?
(setf (indices dstibt) (make-hash-table))
(setf (indices-cache dstibt) (make-hash-table))
(setf (gethash iname (indices-cache dstibt)) index)
(setf (gethash iname (indices dstibt)) index)
)
)
)
apparently are seen before the type is visible in ACL:
; While compiling ADD-INDEX-FROM-INDEX:
Warning: Ignoring declaration of unrecognized type: BTREE-INDEX
Warning: Ignoring declaration of unrecognized type: INDEXED-BTREE
I still have migration/*test-path-secondary* turned off
In acl6.2
5 out of 106 total tests failed: ELEPHANT-TESTS::MIGRATE1,
ELEPHANT-TESTS::MIGRATE2, ELEPHANT-TESTS::MIGRATE3,
ELEPHANT-TESTS::MIGRATE4, ELEPHANT-TESTS::MIGRATE5.
In acl7.0
6 out of 106 total tests failed: ELEPHANT-TESTS::ARRAYS-1, ELEPHANT-TESTS::MIGRATE1,
ELEPHANT-TESTS::MIGRATE2, ELEPHANT-TESTS::MIGRATE3, ELEPHANT-TESTS::MIGRATE4,
ELEPHANT-TESTS::MIGRATE5.
The difference is in serializing that funny array with element-type
(UNSIGNED-BYTE 20)
ELE-TESTS(30): (in-out-value (make-array '(3 4 5)
:element-type
'(unsigned-byte 20)))
0[1]: (SERIALIZE #<Array of rank 3 @ #x71e874c2>
#S(SLEEPYCAT:BUFFER-STREAM :BUFFER 2684465168 :SIZE 0 :POSITION 0 :LENGTH 5184))
Error: #<unknown object of type number 56 @ #x71b0dc22> fell through a ETYPECASE form. The valid
cases were FIXNUM, NULL, SYMBOL, STRING, PERSISTENT, SINGLE-FLOAT, DOUBLE-FLOAT, CHARACTER,
PATHNAME, INTEGER, RATIONAL, CONS, HASH-TABLE, STANDARD-OBJECT, and ARRAY.
[condition type: CASE-FAILURE]
Restart actions (select using :continue):
0: Return to Top Level (an "abort" restart).
1: Abort entirely from this (lisp) process.
[1] ELE-TESTS(31): :reset
0[1]: returned-by-throwing NIL
ELE-TESTS(32):
#Andrew
|
|
|