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 <esl...@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@common-lisp.net >>> http://common-lisp.net/mailman/listinfo/elephant-devel >> >> >> _______________________________________________ >> elephant-devel site list >> elephant-devel@common-lisp.net >> http://common-lisp.net/mailman/listinfo/elephant-devel >> > > _______________________________________________ > elephant-devel site list > elephant-devel@common-lisp.net > http://common-lisp.net/mailman/listinfo/elephant-devel _______________________________________________ elephant-devel site list elephant-devel@common-lisp.net http://common-lisp.net/mailman/listinfo/elephant-devel