Wow, OK, great work! I suspect Ian will beat me to incorporating this, but he and I will continue working on it.
On Wed, 2007-03-07 at 10:38 +0100, Frank Schorr wrote: > Robert, > > trying the first steps from the tutorial was a good hint. > > open store returned #<DB-CLSQL::SQL-STORE-CONTROLLER @ #x211395ba> > which looked good, with all slots initialized. > > (add-to-root "my key" "my value") > produced this error in ACL trial > > Error: Attempt to call #<Vector @ #x20d98c8a> for which the definition has > not yet been (or is no longer) loaded. > [condition type: SIMPLE-ERROR] > in function serialize-to-utf8 > > and this error in Lispworks: > Foreign function ELEPHANT-MEMUTIL::WRITE-INT32 trying to call to > unresolved external function "write_int32". > > (interesting: ACL did allow me to find out that write_int32... Usually the > ACL > debugger provides *much* more information than LW) > > This is the content of libmemutil.def: > > ; dlltool -z libmeutil.def --export-all-symbols -e exports.o -l > libmemutil.lib libmemutil.o > EXPORTS > write_uint64_t @ 1 > offset_charp @ 2 > read_double @ 3 > read_float @ 4 > read_int32_t @ 5 > read_int64_t @ 6 > read_uint32_t @ 7 > read_uint64_t @ 8 > write_double @ 9 > write_float @ 10 > write_int32_t @ 11 > write_int64_t @ 12 > write_uint32_t @ 13 > copy_buf @ 14 > > I then amended the def-function in memutil.lisp to have the "_t" > (not really knowing what I am doing) > > #-(or cmu sbcl) > (def-function ("write_int32_t" write-int32) ;; FS > ((buf array-or-pointer-char) > (num :int) > (offset :int)) > :returning :void) > > after eveluating the form in the ACL IDE > > (add-to-root "my key" "my value") > (get-from-root "my key") > > work OK. > I received this test result > .... > 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 > Test INDEXING-CLASS-OPT failed > Form: (PROGN (WHEN (CLASS-INDEXEDP-BY-NAME 'IDX-CSLOT) > (DISABLE-CLASS-INDEXING 'IDX-CSLOT :ERRORP NIL) (SETF (FIND-CLASS 'IDX-CSLOT) > NIL)) > (DEFCLASS IDX-CSLOT NIL ((SLOT1 :INITARG :SLOT1 :INITFORM 0 > :ACCESSOR SLOT1)) (:METACLASS PERSISTENT-METACLASS :INDEX T)) > (VALUES (CLASS-INDEXEDP-BY-NAME 'IDX-CSLOT))) > Expected value: T > Actual value: NIL. > 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 > Ranged get of 10/700 objects = Linear: 14.15 sec Indexed: 1.462 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-IPCLASS > 1 out of 121 total tests failed: INDEXING-CLASS-OPT. > NIL > > Looks good !? > > However, when I load elephant in a fresh lisp, > (add-to-root "my key" "my value") > is ok, but > > (get-from-root "my key") > Error: Attempt to call #<Vector @ #x20db2a0a> for which the definition has > not yet been (or is no longer) loaded. > [condition type: SIMPLE-ERROR] > in (method deserialize-string ((eql utf8) t)) > > So it is more complicated ... > > I think you will be able to improve it, the write_int32 is a hint. > > Best rgards Frank. > > > > _______________________________________________________________________ > Viren-Scan für Ihren PC! Jetzt für jeden. Sofort, online und kostenlos. > Gleich testen! http://www.pc-sicherheit.web.de/freescan/?mc=022222 > > _______________________________________________ > elephant-devel site list > elephant-devel@common-lisp.net > http://common-lisp.net/mailman/listinfo/elephant-devel
_______________________________________________ elephant-devel site list elephant-devel@common-lisp.net http://common-lisp.net/mailman/listinfo/elephant-devel