[elephant-devel] Problem with LWW 5.1.2, BDB-backend
Ian Eslick
eslick at media.mit.edu
Mon Dec 7 18:21:10 UTC 2009
Elliott said he was going to give this a shot. You might correspond with him directly. -Ian
On Dec 7, 2009, at 12:09 AM, Plamen . wrote:
> Hello Ian,
>
> thank you for the quick response!
>
> On Sun, Dec 6, 2009 at 5:44 PM, Ian Eslick <eslick at media.mit.edu> wrote:
>> Hey, quick answers:
>>
>> 1) In the online FAQ you'll notice that you have to ensure that you are using uffi and not the uffi compatibility package from cffi.
>
> Ok, had missed that...
>
>> 2) The prebuilt DLLs are not up to date (sorry!), they need to be made current against BDB 4.7 which Elephant 1.0 depends on.
>
> Ok, had no idea from the doc or source that 4.7 is the current target,
> but that's even better.
>
>> 3) We have one or two lispworks users that I'm aware of, so it should work, but I can't rule out a lispworks specific problem, although I think #1 and #2 above explain what you're seeing.
>>
>> Are you a position to build the DLLs yourself?
>
> Haven't touched C for years now and never had the pleasure with cygwin
> but now I'll try it :)
>
>>
>> Ian
>>
>> On Dec 5, 2009, at 5:28 AM, Plamen . wrote:
>>
>>> Hello,
>>> I need to use BDB for my current application and from what I see on
>>> the net, elephant seems to be the most mature and functional solution.
>>> After following the installation instructions (I use LispWorks 5.1.2
>>> for Windows - yes - I need that configuration at the moment, with
>>> Berkeley DB 4.5.20, with prebuild DLLs (libberkeley-db.dll and
>>> libmemutil.dll) in the elephant-root and from what I see a correct
>>> my-config.sexp also in the elephant-root directory), after loading
>>> Elephant I get the following error :
>>> ELE-USER 13 > (open-store '(:bdb "/temp/db2/"))
>>> Error: The call (#<Function DB-BDB::%DB-ENV-CREATE 22053092> 0) does
>>> not match definition (#<Function DB-BDB::%DB-ENV-CREATE 22053092>
>>> DB-BDB::FLAGS DB-BDB::ERRNO).
>>> From what I see in the sources - there are 3 relevant definitions :
>>> 1. the BDB one :
>>>
>>> db_env_create
>>>
>>> ________________________________
>>>
>>> #include <db.h>
>>>
>>> int
>>> db_env_create(DB_ENV **dbenvp, u_int32_t flags);
>>>
>>> 2. then the libberkeley-db one :
>>>
>>> DB_ENV *db_env_cr(u_int32_t flags, int *errno) {
>>> DB_ENV *envp;
>>> *errno = db_env_create(&envp, flags);
>>> return envp;
>>> }
>>>
>>> 3. and finally the Lisp definitions :
>>>
>>> (def-function ("db_env_cr" %db-env-create)
>>> ((flags :unsigned-int)
>>> (errno :int :out))
>>> :returning :pointer-void)
>>>
>>> (defun db-env-create ()
>>> "Create an environment handle."
>>> (multiple-value-bind (env errno)
>>> (%db-env-create 0)
>>> (declare (type fixnum errno))
>>> (if (= errno 0)
>>> env
>>> (error 'db-error :errno errno))))
>>>
>>> I have cffi_0.10.5 and uffi-1.6.2 (which are currently the newest
>>> versions of that libraries).
>>>
>>> The call (%db-env-create 0) in the db-env-create function looks of
>>> course weird for me, but if people use these lines of source on all
>>> other Lisp-implementations, obviously I miss something. I know the LW
>>> FFI, but I'm not really proficient in the CFFI/UFFI-conversion to see
>>> the missing parts, but if there is someone outside in the WWW who runs
>>> LWW & BDB and/or knows how to help, I would be very gratefull.
>>>
>>> Regards
>>> Plamen
>>>
>>> _______________________________________________
>>> 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
>>
>
> _______________________________________________
> 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