FWIW, I tried to build Elephant (current CVS) with LWW 5.0.1. I understand that Windows is currently not supported, but maybe you're interested anyway. Here's a summary:
I have Cygwin installed. I had to make a few changes to make the build succeed for which a patch is attached. This includes a proposal to change "Programme" to "Program Files" in the example configuration as probably most users will have an English and not a German version of Windows. The tests with SQLite3 succeed only on every second attempt (with one failure - see below). On every other attempt (including the first one) I got this: Error: While accessing database #<CLSQL-SQLITE3:SQLITE3-DATABASE c:\home\lisp\elephant\tests\sqlite3-test.db OPEN 21D862D3> with expression "SELECT name FROM sqlite_master WHERE type='table' UNION ALL SELECT name FROM sqlite_temp_master WHERE type='table' ORDER BY name": Error 17 / database schema has changed has occurred. When I try the PostgreSQL tests, I immediately get this error: ELE-TESTS 3 > (do-backend-tests '(:clsql (:postgresql nil "elephant" nil nil))) Error: Argument NIL is not of type PATHNAME, STRING, or FILE-STREAM. 1 (abort) Return to level 0. 2 Return to top loop level 0. A full backtrace is attached below. I didn't try the BerkeleyDB tests. I do have Visual Studio, but I rarely use it and I couldn't figure out from Bill Clementson's instructions how to build the DLL. HTH, Edi. 1. SQLite3 test results ----------------------- ELE-TESTS 6 > (do-backend-tests *testsqlite3-spec*) Doing 122 pending tests of 122 tests total. FIXNUMS FIXNUM-TYPE-1 READ-32-BIT-FIXNUM READ-64-BIT-FIXNUM WRITE-32-BIT-FIXNUM WRITE-64-BIT-FIXNUM BIGNUMS FLOATS RATIONALS BASE-STRINGS STRINGS HARD-STRINGS SYMBOLS CHARS PATHNAMES CONSES HASH-TABLES-1 HASH-TABLES-2 ARRAYS-1 ARRAYS-2 TEST-DEEP-EQUALP OBJECTS STRUCTS STRUCT-NON-STD-CONSTRUCT 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 UPDATE-CLASS CHANGE-CLASS CHANGE-CLASS3 BASICPERSISTENCE TESTOID BTREE-MAKE BTREE-PUT BTREE-GET REMOVE-KV REMOVED MAP-BTREE INDEXED-BTREE-MAKE ADD-INDICES TEST-INDICES INDEXED-PUT INDEXED-GET SIMPLE-SLOT-GET INDEXED-GET-FROM-SLOT1 INDEXED-GET-FROM-SLOT2 REMOVE-KV-INDEXED 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 Test MAP-INDEXED-INDEX failed Form: (LET ((SUM 0)) (FLET ((COLLECTOR (KEY VALUE PKEY) (INCF SUM (SLOT1 VALUE)))) (MAP-INDEX (FUNCTION COLLECTOR) INDEX1 :START NIL :END 10) (MAP-INDEX (FUNCTION COLLECTOR) INDEX1 :START 990 :END NIL) (MAP-INDEX (FUNCTION COLLECTOR) INDEX1 :START 400 :END 410)) SUM) Expected value: 15449 Actual value: #<SIMPLE-ERROR 2009CA0F>. REM-KV REM-IDEXKV MAKE-INDEXED2 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 ADD-GET-REMOVE ADD-GET-REMOVE-SYMBOL EXISTSP Warning: Manually finalizing class IDX-ONE DISABLE-CLASS-INDEXING-TEST INDEXING-BASIC-TRIVIAL INDEXING-BASIC INDEXING-CLASS-OPT INDEXING-INHERIT INDEXING-RANGE INDEXING-SLOT-MAKUNBOUND Warning: Manually finalizing class IDX-FIVE-DEL INDEXING-WIPE-INDEX INDEXING-RECONNECT-DB INDEXING-CHANGE-CLASS INDEXING-REDEF-CLASS Warning: Manually finalizing class STRESS-INDEX Ranged get of 10/700 objects = Linear: 8.052 sec Indexed: 0.921 sec INDEXING-TIMING Single store mode: ignoring REMOVE-ELEMENT Single store mode: ignoring MIGRATE-BASIC Single store mode: ignoring MIGRATE-BTREE Single store mode: ignoring MIGRATE-IDX-BTREE Single store mode: ignoring MIGRATE-PCLASS Single store mode: ignoring MIGRATE-MULT-PCLASS Single store mode: ignoring MIGRATE-IPCLASS 1 out of 122 total tests failed: MAP-INDEXED-INDEX. NIL 2. Backtrace from PostgreSQL test --------------------------------- Backtrace: #<The ELEPHANT-TESTS package, 451/1024 internal, 0/16 external> #<MP:PROCESS Name "CAPI Execution Listener 1" Priority 70000000 State "Running"> Condition: Argument NIL is not of type PATHNAME, STRING, or FILE-STREAM. Call to SYSTEM::IN-TRUENAME (offset 465) SYSTEM::P : NIL Call to PROBE-FILE (offset 28) SYSTEM::FILE : NIL Call to (METHOD ELEPHANT::OPEN-CONTROLLER (DB-CLSQL::SQL-STORE-CONTROLLER)) (offset 554) DB-CLSQL::SC : #<DB-CLSQL::SQL-STORE-CONTROLLER 200E0963> DBG::G : :DONT-KNOW DB-CLSQL::RECOVER : :DONT-KNOW DB-CLSQL::RECOVER-FATAL : :DONT-KNOW DB-CLSQL::THREAD : :DONT-KNOW CLOS::.ISL. : #(#(#(1597 (ELEPHANT::SPEC ELEPHANT::ROOT ELEPHANT::CLASS-ROOT ELEPHANT::INSTANCE-CACHE ELEPHANT::INSTANCE-CACHE-LOCK ELEPHANT::SERIALIZER-VERSION SERIALIZE DESERIALIZE DB-CLSQL::DBCONS DB-CLSQL::USES-PK) NIL #<STANDARD-CLASS DB-CLSQL::SQL-STORE-CONTROLLER 21FE3AFB>) #(2 1 8) NIL NIL) #(ELEPHANT::CLASS-ROOT ELEPHANT::ROOT DB-CLSQL::DBCONS) 2 0) CLOS::.PV. : #(2 1 8) DB-CLSQL::DBTYPE : :POSTGRESQL DB-CLSQL::PATH : NIL Call to CLOS::GENERIC-FUNCTION-DISCRIMINATOR (offset 263) Call to OPEN-STORE (offset 58) ELEPHANT::SPEC : (:CLSQL (:POSTGRESQL NIL "elephant" NIL NIL)) ELEPHANT::ARGS : NIL ELEPHANT::CONTROLLER : #<DB-CLSQL::SQL-STORE-CONTROLLER 200E0963> Binding frame: *STORE-CONTROLLER* : NIL Call to DO-BACKEND-TESTS (offset 106) SPEC : (:CLSQL (:POSTGRESQL NIL "elephant" NIL NIL)) *STORE-CONTROLLER* : NIL Call to SYSTEM::%INVOKE (offset 400) Call to SYSTEM::%EVAL (offset 217) EXP : (DO-BACKEND-TESTS (QUOTE (:CLSQL (:POSTGRESQL NIL "elephant" NIL NIL)))) SYSTEM::%EVAL <- EVAL <- SYSTEM::DO-EVALUATION <- SYSTEM::%TOP-LEVEL-INTERNAL <- SYSTEM::%TOP-LEVEL <- SYSTEM::LISTENER-TOP-LEVEL <- CAPI::CAPI-TOP-LEVEL-FUNCTION <- CAPI::INTERACTIVE-PANE-TOP-LOOP <- (HARLEQUIN-COMMON-LISP:SUBFUNCTION MP::PROCESS-SG-FUNCTION MP::INITIALIZE-PROCESS-STACK) <- SYSTEM::%%FIRST-CALL-TO-STACK
Index: config.sexp =================================================================== RCS file: /project/elephant/cvsroot/elephant/config.sexp,v retrieving revision 1.8 diff -u -r1.8 config.sexp --- config.sexp 19 Mar 2007 20:35:30 -0000 1.8 +++ config.sexp 23 Mar 2007 09:12:01 -0000 @@ -15,7 +15,7 @@ (:clsql-lib . nil) (:compiler . :gcc)) -#+(and lispworks (not windows)) +#+(and lispworks (not mswindows)) ((:berkeley-db-include-dir . "/opt/local/include/db45/") (:berkeley-db-lib-dir . "/opt/local/lib/db45/") (:berkeley-db-lib . "/opt/local/lib/db45/libdb-4.5.dylib") @@ -25,10 +25,10 @@ (:compiler . :gcc)) #+(or mswindows windows) -((:berkeley-db-include-dir . "C:/Programme/Oracle/Berkeley DB 4.5.20/include/") - (:berkeley-db-lib-dir . "C:/Programme/Oracle/Berkeley DB 4.5.20/bin/") - (:berkeley-db-lib . "C:/Programme/Oracle/Berkeley DB 4.5.20/bin/libdb45.dll") - (:berkeley-db-deadlock . "C:/Programme/Oracle/Berkeley DB 4.5.20/bin/db_deadlock.exe") +((:berkeley-db-include-dir . "C:/Program Files/Oracle/Berkeley DB 4.5.20/include/") + (:berkeley-db-lib-dir . "C:/Program Files/Oracle/Berkeley DB 4.5.20/bin/") + (:berkeley-db-lib . "C:/Program Files/Oracle/Berkeley DB 4.5.20/bin/libdb45.dll") + (:berkeley-db-deadlock . "C:/Program Files/Oracle/Berkeley DB 4.5.20/bin/db_deadlock.exe") (:pthread-lib . nil) (:clsql-lib . nil) (:compiler . :cygwin)) Index: elephant.asd =================================================================== RCS file: /project/elephant/cvsroot/elephant/elephant.asd,v retrieving revision 1.38 diff -u -r1.38 elephant.asd --- elephant.asd 19 Mar 2007 20:35:30 -0000 1.38 +++ elephant.asd 23 Mar 2007 09:12:01 -0000 @@ -127,7 +127,7 @@ (compiler-options (c-compiler c) c :input-file (list (format nil "\"~A\"" (namestring - (make-pathname :type "o" :defaults patohname))) + (make-pathname :type "o" :defaults pathname))) "exports.o") :output-file (format nil "\"~A\"" (first (output-files o c))) :library t)))) Index: src/elephant/classes.lisp =================================================================== RCS file: /project/elephant/cvsroot/elephant/src/elephant/classes.lisp,v retrieving revision 1.23 diff -u -r1.23 classes.lisp --- src/elephant/classes.lisp 21 Mar 2007 14:29:30 -0000 1.23 +++ src/elephant/classes.lisp 23 Mar 2007 09:12:02 -0000 @@ -47,6 +47,10 @@ ;; METACLASS INITIALIZATION AND CHANGES ;; ================================================ +#+:lispworks +(eval-when (:compile-toplevel :load-toplevel :execute) + (setq lw:*handle-warn-on-redefinition* :quiet)) + (defmethod ensure-class-using-class :around ((class null) name &rest args &key index) "Support the :index class option" (let ((result (apply #'call-next-method class name (remove-keywords '(:index) args)))) @@ -54,6 +58,10 @@ (update-indexed-record result nil :class-indexed t)) result)) +#+:lispworks +(eval-when (:compile-toplevel :load-toplevel :execute) + (setq lw:*handle-warn-on-redefinition* :error)) + (defmethod ensure-class-using-class ((class persistent-metaclass) name &rest args &key index) "Support the :index class option on redefinition" (let ((result (apply #'call-next-method class name (remove-keywords '(:index) args))))
_______________________________________________ elephant-devel site list elephant-devel@common-lisp.net http://common-lisp.net/mailman/listinfo/elephant-devel