[elephant-devel] trouble getting going (with open-store, ...)
Ian Eslick
eslick at csail.mit.edu
Thu Oct 5 22:39:22 UTC 2006
Could be some odd case in asdf. When you open a store, the appropriate
asdf file is called to load the backend code if it isn't loaded. Try
loading the :elephant system instead of :ele-bdb, then doing open-store
and see what happens.
I'll test this on SBCL later tonight.
Ian
Red Daly wrote:
> Thank you for the quick and helpful response :).
>
> With your corrections, all tests passed and I seem to be able to open a
> functioning store! However, life is not perfect yet. The main problem
> I seem to be facing right now is when I attempt to load elephant using
> my slime environment (when calling (asdf:operate
> 'asdf:load-op :ele-bdb)). For some reason, I lose my lisp connection.
> A sample transcript of a common slime session can be found here:
> http://paste.lisp.org/display/27406
>
> This is the point of failure of a similar session:
> (let ((store-spec '(:BDB "store")))
> (ele:open-store store-spec))
> ; loading system definition from
> ; /home/red/code/edufacebook/elephant-0.6.0/ele-bdb.asd into
> ; #<PACKAGE "ASDF1189">
> ; registering #<SYSTEM ELE-BDB {B6DF6B9}> as ELE-BDB
> ---
> Lisp connection closed unexpectedly: exited abnormally with code 256
>
> This is perhaps a slime/sbcl/other bug, but so far I haven't seen
> anything like it, and since slime is so popular (and useful) perhaps
> others have seen this bug or know what to do about it.
>
> In the raw sbcl REPL I do not seem to have a problem, but only when I
> attempt to load ele-bdb.
>
> If you would like, I can post the problems I had with CMUCL when I have
> more time. (off the top of my head, I remember package locking problems
> and also a problem loading cl-base64). at the moment I am more
> concerned with getting a working system in SBCL with Slime, but I would
> like to help make elephant better however I can.
>
> -red daly
>
>
> On Thu, 2006-10-05 at 09:01 -0400, Ian Eslick wrote:
>
>> I'm sorry if the website hasn't been updated (Robert, can you check
>> this?), but the tutorial should be updated to reflect the new (as of
>> 0.6.0) open-store protocol, which requires specification of the type of
>> backend you'll be using. A specification is a list of two elements; a
>> backend type specification [:bdb, :clsql] and backend-specific store
>> information:
>>
>> (open-store '(:bdb "/home/user/db/testdb"))
>> (open-store '(:clsql (:sqlite3 "sqlite3-test.db"))
>> (open-store '(:clsql (:postgresql "localhost.localdomain" "test"
>> "postgres" "")))
>>
>> The tests should print a long list of test names, then return T.
>> To run the tests you need to follow the comments in elephant-tests.lisp:
>>
>> ;;
>> ;; GUIDE TO TESTING
>> ;;
>> ;; 1) Set *default-spec* to the above spec of your choice
>> ;; 2) Call (do-backend-tests) to test the standard API
>> ;; 3) To test migration: (do-migration-tests *default-spec*
>> <second-spec>) inserting a second
>> ;; spec, typically a bdb spec or create another instance of a sql db
>> depending on
>> ;; your configuration
>> ;; 4) A backend is green if it passes do-backend-tests and can
>> succesfully be
>> ;; used as spec1 or spec2 argument in the migration test
>> ;;
>>
>> To set *default-spec* you need to do something like:
>>
>> (setq *default-spec* *testbdb-spec*)
>>
>> or
>>
>> (setq *default-spec* *testsqlite3-spec*)
>>
>> Can you list the various problems you had trying to get the system to
>> run? We're working on useability for the next release and want to fix
>> as many of the inconveniences as possible.
>>
>> Thank you,
>> Ian
>>
>> Red Daly wrote:
>>
>>> I have been trying to get Elephant up and running for a few days with
>>> little luck. I have tried CMUCL and SBCL, with different unsuccessful
>>> outcomes. During my latest attempt on SBCL, I seem to be able to call
>>> the following two lines without errors:
>>> (asdf:operate 'asdf:load-op :elephant)
>>> (asdf:operate 'asdf:load-op :ele-bdb)
>>>
>>> I then run the tests...
>>> (asdf:operate 'asdf:load-op :elephant-tests)
>>> (in-package :ele-tests)
>>> (setf *default-spec* "bdb")
>>> (do-backend-tests)
>>>
>>> do-backend-tests returns NIL.. which I interpret to be success?
>>>
>>>
>>> however, I am unable to open a store according to the instructions in
>>> the two tutorials on the common-lisp.net project site. Here is an
>>> example attempt:
>>>
>>> * (open-store "store")
>>>
>>> debugger invoked on a SIMPLE-ERROR in thread
>>> #<THREAD "initial thread" {A7B93E1}>:
>>> The assertion (CONSP ELEPHANT::SPEC) failed.
>>>
>>> Type HELP for debugger help, or (SB-EXT:QUIT) to exit from SBCL.
>>>
>>> restarts (invokable by number or by possibly-abbreviated name):
>>> 0: [CONTINUE] Retry assertion.
>>> 1: [ABORT ] Exit debugger, returning to top level.
>>>
>>> (SB-KERNEL:ASSERT-ERROR (CONSP ELEPHANT::SPEC) NIL NIL)
>>> 0] backtrace
>>>
>>> 0: (SB-KERNEL:ASSERT-ERROR (CONSP ELEPHANT::SPEC) NIL NIL)
>>> 1: (OPEN-STORE "store" :RECOVER NIL :RECOVER-FATAL NIL :THREAD T)
>>> 2: (SB-INT:EVAL-IN-LEXENV (OPEN-STORE "store") #<NULL-LEXENV>)
>>> 3: (SB-EXT:INTERACTIVE-EVAL (OPEN-STORE "store"))
>>> 4: (SB-IMPL::REPL-FUN NIL)
>>> 5: ((LAMBDA ()))
>>> 6: ((LAMBDA ()))
>>> 7: (SB-IMPL::%WITH-REBOUND-IO-SYNTAX #<CLOSURE (LAMBDA #) {A7F28FD}>)
>>> 8: (SB-IMPL::TOPLEVEL-REPL NIL)
>>> 9: (SB-IMPL::TOPLEVEL-INIT)
>>> 10: ((LABELS SB-IMPL::RESTART-LISP))
>>>
>>>
>>> I would appreciate any help in getting elephant up and running. I am
>>> running SBCL 0.9.8, ubuntu dapper, and bdb 4.3 (apt-installable
>>> version). I will gladly supply more information to help determine the
>>> error of my ways. I can't wait to try out elephant!
>>>
>>> Thanks sincerely,
>>> red daly
>>>
>>> _______________________________________________
>>> elephant-devel site list
>>> elephant-devel at common-lisp.net
>>> http://common-lisp.net/mailman/listinfo/elephant-devel
>>>
>>>
>
> _______________________________________________
> elephant-devel site list
> elephant-devel at common-lisp.net
> http://common-lisp.net/mailman/listinfo/elephant-devel
>
More information about the elephant-devel
mailing list