[elephant-devel] windows + postgres-socket
Frank Schorr
franks-muc at web.de
Wed Mar 7 09:38:45 UTC 2007
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
More information about the elephant-devel
mailing list