Update of /project/elephant/cvsroot/elephant In directory common-lisp.net:/tmp/cvs-serv7408
Modified Files: INSTALL Log Message: updates
Date: Sun Aug 29 22:31:27 2004 Author: blee
Index: elephant/INSTALL diff -u elephant/INSTALL:1.3 elephant/INSTALL:1.4 --- elephant/INSTALL:1.3 Sun Aug 29 09:52:34 2004 +++ elephant/INSTALL Sun Aug 29 22:31:26 2004 @@ -3,9 +3,9 @@ Requirements ------------
-CMUCL 19a, Allegro CL 6.2 or OpenMCL 0.14.2. Recent -versions of SBCL and Lispworks should be supported / easy to -make work. +CMUCL 19a, SBCL 0.8.13, or Allegro CL 6.2. I've tested +under FreeBSD and Linux. OpenMCL and Lispworks versions +will come soon.
ASDF - http://www.cliki.net/asdf
@@ -14,7 +14,7 @@ I've patched src/functions.lisp to support some kinds of :out arguments. it is backwards-compatible so shouldn't interfere with your existing work. I've contacted Kevin -Rosenberg about this. +Rosenberg about this, it will appear in a future release.
Sleepycat Berkeley DB 4.2 - http://www.sleepycat.com
@@ -25,7 +25,13 @@ Instructions ------------
-1) Install your lisp, asdf, and UFFI. Replace +I assume you have a supported lisp with asdf. + +0) Unpack Elephant. I put mine in the directory + +/usr/local/share/common-lisp/elephant/ + +1) Install UFFI 1.4.24. Replace
path-to-uffi/src/functions.lisp
@@ -34,25 +40,25 @@ 2) Install Berkeley DB 4.2. FreeBSD has a port for this, as I'm sure other BSDs (including Darwin.) Take note of where libdb.so and db.h are installed (usually +/usr/local/BerekleyDB.4.2/lib/libdb.so and +/usr/local/BerekleyDB.4.2/include/db.h, or /usr/local/lib/db42/libdb.so and /usr/local/include/db42/db.h.)
-3) Compile src/libsleepycat.c. I'm no gcc master but under -FreeBSD this worked for me: +3) Edit Makefile and run (using GNU make, gmake on BSD)
-gcc -L/usr/local/lib/db42 -I/usr/local/include/db42 -fPIC -shared -O3 -o libsleepycat.so src/libsleepycat.c -ldb +make install
-you may or may not need a trailing -ldb at the end. Put -libsleepycat.so somewhere you can get at it, like in your -common-lisp elephant system dir +This compiles src/libsleepycat.c and installs it into
/usr/local/share/common-lisp/elephant/
-4) Compile and load Elephant. +or where you specified.
-First, edit src/sleepycat.lisp so that +path-to-sleepycat+ -and +path-to-libsleepycat+ are correct. (If I were better -at ASDF there'd be a better way of doing this....) +4) Compile and load Elephant: + +First, edit src/sleepycat.lisp so that it points to the +correct libraries.
Symlink elephant.asd to your asdf systems directory (mine is /usr/local/share/common-lisp/systems). Fire up lisp and @@ -61,22 +67,20 @@ (asdf:operate 'asdf:load-op :elephant)
This will load and compile Elephant. This will also -automatically load UFFI. You will get some errors about -redefining constants probably. Go ahead and redefine them, -they are safe to bash, and won't happen again once you've -compiled. - -At this point I advise quitting lisp before using Elephant. -I get symbol conflicts otherwise. (Help?) I also (under -CMUCL) get strange behavior which indicates you might get -better performance if you compile everything again with -everything loaded. +automatically load UFFI. You may get "constant redefinition +errors", especially on SBCL. They are not issues, go ahead +and redefine the constants. + +Under CMUCL I sporadically get strange behavior which +indicates you might get better performance if you compile +everything again with everything loaded.
----------- Quick Start -----------
-A REPL session is worth a thousand words, so ... +For more complete documentation see TUTORIAL and NOTES. But +a REPL session is worth a thousand words, so ...
-bash-2.05b$ pwd /home/ben @@ -104,17 +108,14 @@ CL-USER> (open-store "/home/ben/testdb") #<STORE-CONTROLLER {489C1EDD}>
-CL-USER> (setq *auto-commit* T) -T - -CL-USER> (add-to-root *store-controller* "my key" "my string") +CL-USER> (add-to-root "my key" "my string") NIL
-CL-USER> (get-from-root *store-controller* "my key") +CL-USER> (get-from-root "my key") "my string" T
-CL-USER> (get-from-root *store-controller* "my key2") +CL-USER> (get-from-root "my key2") NIL NIL
@@ -144,7 +145,7 @@
CL-USER> (open-store "/home/ben/testdb")
-CL-USER> (get-from-root *store-controller* "my key") +CL-USER> (get-from-root "my key") "my string" T