<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 TRANSITIONAL//EN">
<HTML>
<HEAD>
  <META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=UTF-8">
  <META NAME="GENERATOR" CONTENT="GtkHTML/3.3.2">
</HEAD>
<BODY>
Wow, OK, great work!  I suspect Ian will beat me to incorporating this, but he and I will continue working on it.<BR>
<BR>
On Wed, 2007-03-07 at 10:38 +0100, Frank Schorr wrote:
<BLOCKQUOTE TYPE=CITE>
<PRE>
<FONT COLOR="#000000">Robert, </FONT>

<FONT COLOR="#000000">trying the first steps from the tutorial was a good hint.</FONT>

<FONT COLOR="#000000">open store returned #<DB-CLSQL::SQL-STORE-CONTROLLER @ #x211395ba></FONT>
<FONT COLOR="#000000">which looked good, with all slots initialized.</FONT>

<FONT COLOR="#000000">(add-to-root "my key" "my value")</FONT>
<FONT COLOR="#000000">produced this error in ACL trial</FONT>

<FONT COLOR="#000000">Error: Attempt to call #<Vector @ #x20d98c8a> for which the definition has not yet been (or is no longer) loaded.</FONT>
<FONT COLOR="#000000">[condition type: SIMPLE-ERROR]</FONT>
<FONT COLOR="#000000">in function serialize-to-utf8 </FONT>

<FONT COLOR="#000000">and this error in Lispworks:</FONT>
<FONT COLOR="#000000">Foreign function ELEPHANT-MEMUTIL::WRITE-INT32 trying to call to</FONT>
<FONT COLOR="#000000">unresolved external function "write_int32".</FONT>

<FONT COLOR="#000000">(interesting: ACL did allow me to find out that write_int32... Usually the ACL </FONT>
<FONT COLOR="#000000">debugger provides *much* more information than LW)</FONT>

<FONT COLOR="#000000">This is the content of libmemutil.def:</FONT>

<FONT COLOR="#000000">; dlltool -z libmeutil.def --export-all-symbols -e exports.o -l libmemutil.lib libmemutil.o</FONT>
<FONT COLOR="#000000">EXPORTS</FONT>
<FONT COLOR="#000000">  write_uint64_t @ 1</FONT>
<FONT COLOR="#000000">  offset_charp @ 2</FONT>
<FONT COLOR="#000000">  read_double @ 3</FONT>
<FONT COLOR="#000000">  read_float @ 4</FONT>
<FONT COLOR="#000000">  read_int32_t @ 5</FONT>
<FONT COLOR="#000000">  read_int64_t @ 6</FONT>
<FONT COLOR="#000000">  read_uint32_t @ 7</FONT>
<FONT COLOR="#000000">  read_uint64_t @ 8</FONT>
<FONT COLOR="#000000">  write_double @ 9</FONT>
<FONT COLOR="#000000">  write_float @ 10</FONT>
<FONT COLOR="#000000">  write_int32_t @ 11</FONT>
<FONT COLOR="#000000">  write_int64_t @ 12</FONT>
<FONT COLOR="#000000">  write_uint32_t @ 13</FONT>
<FONT COLOR="#000000">  copy_buf @ 14 </FONT>

<FONT COLOR="#000000">I then amended the def-function in memutil.lisp to have the "_t"</FONT>
<FONT COLOR="#000000">(not really knowing what I am doing)</FONT>

<FONT COLOR="#000000">#-(or cmu sbcl)</FONT>
<FONT COLOR="#000000">(def-function ("write_int32_t" write-int32)  ;; FS</FONT>
<FONT COLOR="#000000">    ((buf array-or-pointer-char)</FONT>
<FONT COLOR="#000000">     (num :int)</FONT>
<FONT COLOR="#000000">     (offset :int))</FONT>
<FONT COLOR="#000000">  :returning :void)</FONT>

<FONT COLOR="#000000">after eveluating the form in the ACL IDE</FONT>

<FONT COLOR="#000000">(add-to-root "my key" "my value")</FONT>
<FONT COLOR="#000000">(get-from-root "my key")</FONT>

<FONT COLOR="#000000">work OK. </FONT>
<FONT COLOR="#000000">I received this test result </FONT>
<FONT COLOR="#000000">....</FONT>
<FONT COLOR="#000000">PGET-BOTH PGET-BOTH-RANGE PCURSOR NEWINDEX PCURSOR2 ADD-GET-REMOVE ADD-GET-REMOVE-SYMBOL EXISTSP</FONT>
<FONT COLOR="#000000">Warning: Manually finalizing class IDX-ONE</FONT>
<FONT COLOR="#000000"> DISABLE-CLASS-INDEXING-TEST INDEXING-BASIC-TRIVIAL INDEXING-BASIC</FONT>
<FONT COLOR="#000000">Test INDEXING-CLASS-OPT failed</FONT>
<FONT COLOR="#000000">Form: (PROGN (WHEN (CLASS-INDEXEDP-BY-NAME 'IDX-CSLOT) (DISABLE-CLASS-INDEXING 'IDX-CSLOT :ERRORP NIL) (SETF (FIND-CLASS 'IDX-CSLOT) NIL))</FONT>
<FONT COLOR="#000000">             (DEFCLASS IDX-CSLOT NIL ((SLOT1 :INITARG :SLOT1 :INITFORM 0 :ACCESSOR SLOT1)) (:METACLASS PERSISTENT-METACLASS :INDEX T))</FONT>
<FONT COLOR="#000000">             (VALUES (CLASS-INDEXEDP-BY-NAME 'IDX-CSLOT)))</FONT>
<FONT COLOR="#000000">Expected value: T</FONT>
<FONT COLOR="#000000">Actual value: NIL.</FONT>
<FONT COLOR="#000000"> INDEXING-INHERIT INDEXING-RANGE INDEXING-SLOT-MAKUNBOUND</FONT>
<FONT COLOR="#000000">Warning: Manually finalizing class IDX-FIVE-DEL</FONT>
<FONT COLOR="#000000"> INDEXING-WIPE-INDEX INDEXING-RECONNECT-DB INDEXING-CHANGE-CLASS INDEXING-REDEF-CLASS</FONT>
<FONT COLOR="#000000">Ranged get of 10/700 objects = Linear: 14.15 sec Indexed: 1.462 sec</FONT>
<FONT COLOR="#000000"> INDEXING-TIMING</FONT>
<FONT COLOR="#000000">Single store mode: ignoring REMOVE-ELEMENT</FONT>
<FONT COLOR="#000000">Single store mode: ignoring MIGRATE-BASIC</FONT>
<FONT COLOR="#000000">Single store mode: ignoring MIGRATE-BTREE</FONT>
<FONT COLOR="#000000">Single store mode: ignoring MIGRATE-IDX-BTREE</FONT>
<FONT COLOR="#000000">Single store mode: ignoring MIGRATE-PCLASS</FONT>
<FONT COLOR="#000000">Single store mode: ignoring  MIGRATE-IPCLASS</FONT>
<FONT COLOR="#000000">1 out of 121 total tests failed: INDEXING-CLASS-OPT.</FONT>
<FONT COLOR="#000000">NIL</FONT>

<FONT COLOR="#000000">Looks good !?</FONT>

<FONT COLOR="#000000">However, when I load elephant in a fresh lisp, </FONT>
<FONT COLOR="#000000">(add-to-root "my key" "my value")</FONT>
<FONT COLOR="#000000">is ok, but </FONT>

<FONT COLOR="#000000">(get-from-root "my key")</FONT>
<FONT COLOR="#000000">Error: Attempt to call #<Vector @ #x20db2a0a> for which the definition has not yet been (or is no longer) loaded.</FONT>
<FONT COLOR="#000000">[condition type: SIMPLE-ERROR]</FONT>
<FONT COLOR="#000000">in (method deserialize-string ((eql utf8) t))</FONT>

<FONT COLOR="#000000">So it is more complicated ... </FONT>

<FONT COLOR="#000000">I think you will be able to improve it, the write_int32 is a hint.</FONT>

<FONT COLOR="#000000">Best rgards Frank.</FONT>



<FONT COLOR="#000000">_______________________________________________________________________</FONT>
<FONT COLOR="#000000">Viren-Scan für Ihren PC! Jetzt für jeden. Sofort, online und kostenlos.</FONT>
<FONT COLOR="#000000">Gleich testen! <A HREF="http://www.pc-sicherheit.web.de/freescan/?mc=022222">http://www.pc-sicherheit.web.de/freescan/?mc=022222</A></FONT>

<FONT COLOR="#000000">_______________________________________________</FONT>
<FONT COLOR="#000000">elephant-devel site list</FONT>
<FONT COLOR="#000000"><A HREF="mailto:elephant-devel@common-lisp.net">elephant-devel@common-lisp.net</A></FONT>
<FONT COLOR="#000000"><A HREF="http://common-lisp.net/mailman/listinfo/elephant-devel">http://common-lisp.net/mailman/listinfo/elephant-devel</A></FONT>
</PRE>
</BLOCKQUOTE>
</BODY>
</HTML>