From eslick at media.mit.edu Sun Jun 1 15:16:32 2008 From: eslick at media.mit.edu (Ian Eslick) Date: Sun, 1 Jun 2008 11:16:32 -0400 Subject: [elephant-devel] Clbuild In-Reply-To: <200805111422.06254.bryan.emrys@gmail.com> References: <11ACB1FC-8B1B-43A3-9C32-4051AC5BE3E2@media.mit.edu> <3EB34F54-754A-47B0-96FD-F0F7FB2ED924@umich.edu> <200805111422.06254.bryan.emrys@gmail.com> Message-ID: <826BDA20-34DE-460B-AAEF-DAE32FFB1799@media.mit.edu> Bryan, Did we address these issues to your satisfaction for clbuild? I just promoted a patch to our elephant-unstable branch (soon to be the main release) that provides a restart to create a my-config.sexp file. If the user isn't warned explicitly, the consequences of a default my-config may be hard to track down, but this way we don't have to stop the build/load process until you load cl-sql or bdb backends. Regards, Ian On May 11, 2008, at 5:22 PM, Bryan Emrys wrote: > At one point the clbuild maintainers looked at elephant but had some > problems that prevented inclusion. > > Specifically: > > # - needs sb-posix, but doesn't declare that dependency, meaning that > # it doesn't build even with a config file > # - ele-clsql loads clsql from the .asd file, not using :depends-on, > # which is completely unacceptable > # (we blacklist ele-clsql in clbuild.lisp because of that) > > Did anyone ever respond? > _______________________________________________ > elephant-devel site list > elephant-devel at common-lisp.net > http://common-lisp.net/mailman/listinfo/elephant-devel From killerstorm at newmail.ru Sun Jun 1 19:48:20 2008 From: killerstorm at newmail.ru (Alex Mizrahi) Date: Sun, 1 Jun 2008 22:48:20 +0300 Subject: [elephant-devel] unstable postmodern troubled.. Message-ID: i can't say i'm completely stuck with it, but i'm getting pretty weird errors -- it's different if i run it first time or second time (on second time there are more errors), and, if i run whole test suite i get: SIMPLE-SLOT-ASSOC-SETUP []: Unexpected Error: # There is no applicable method for the generic function # when called with arguments (NIL)... but when i run test individually, it works: ELE-TESTS> (do-test-spec 'SIMPLE-SLOT-ASSOC-SETUP) . Did 1 check. Pass: 1 (100%) Skip: 0 ( 0%) Fail: 0 ( 0%) NIL so i thought maybe i'll post half-backed patches and someone could help debugging it -- with such weird bugs more eyeballs is always better. also, few questions to Ian: * cursor-delete on dup-btree -- should it delete only current pair or all pairs on some key? * why dup-btree has persistent-metaclass? (and so do some other btree flavours) if it don't use persistent-metaclass, drop-pobject fails for dup-btree, but other than that i can't see any reasons.. why should dup-btree be different from normal btree? this might introduce some bloat, so if drop-pobject is the only reason, it might be easier to just add method specialization From eslick at media.mit.edu Mon Jun 2 01:28:00 2008 From: eslick at media.mit.edu (Ian Eslick) Date: Sun, 1 Jun 2008 21:28:00 -0400 Subject: [elephant-devel] unstable postmodern troubled.. In-Reply-To: References: Message-ID: Sounds like there is an issue with schema coherence (the class object cache out of sync with the db in some way? I had some of these tuning the BDB implementation). I'd be happy to look at the patches. I think the semantics of cursor-delete are the current 'element'. If I can do cursor-next to get to the next element of a duplicate set, I wouldn't expect it to have been deleted when I deleted the last one - so just the specific key-value pair that would be returned by cursor- current. The indexed-btree is the only class that requires it due to the indices slot. It would take quite a bit of work to handle all the issues that persistent-metaclass takes care of. However, the btree, dup-btree, and btree-index don't need it. I'll pull it out of the BDB implementation and test it. Ian On Jun 1, 2008, at 3:48 PM, Alex Mizrahi wrote: > i can't say i'm completely stuck with it, > but i'm getting pretty weird errors -- it's > different if i run it first time or second time > (on second time there are more errors), and, if i run > whole test suite i get: > > SIMPLE-SLOT-ASSOC-SETUP []: > Unexpected Error: # > There is no applicable method for the generic function > # > when called with arguments > (NIL)... > > but when i run test individually, it works: > > ELE-TESTS> (do-test-spec 'SIMPLE-SLOT-ASSOC-SETUP) > . > Did 1 check. > Pass: 1 (100%) > Skip: 0 ( 0%) > Fail: 0 ( 0%) > > NIL > > so i thought maybe i'll post half-backed patches and someone > could help debugging it -- with such weird bugs more eyeballs > is always better. > > also, few questions to Ian: > > * cursor-delete on dup-btree -- should it delete only current > pair or all pairs on some key? > * why dup-btree has persistent-metaclass? (and so do some other btree > flavours) > if it don't use persistent-metaclass, drop-pobject fails for > dup-btree, but other than that i can't see any reasons.. > why should dup-btree be different from normal btree? > this might introduce some bloat, so if drop-pobject is the only > reason, it might be easier to just add method specialization > > > > _______________________________________________ > elephant-devel site list > elephant-devel at common-lisp.net > http://common-lisp.net/mailman/listinfo/elephant-devel From eslick at media.mit.edu Mon Jun 2 01:51:18 2008 From: eslick at media.mit.edu (Ian Eslick) Date: Sun, 1 Jun 2008 21:51:18 -0400 Subject: [elephant-devel] unstable postmodern troubled.. In-Reply-To: References: Message-ID: <06C2F9A6-9CD8-4A6F-838D-053E93D8FDF5@media.mit.edu> Actually btree-index also needs to be persistent-metaclass because of its use of slot values. However, dup-btree does not if that makes your life easier. I pushed a patch to remove that from bdb- collections. All tests pass under SBCL / Linux / BDB (my new primary dev platform). Ian On Jun 1, 2008, at 9:28 PM, Ian Eslick wrote: > Sounds like there is an issue with schema coherence (the class > object cache out of sync with the db in some way? I had some of > these tuning the BDB implementation). I'd be happy to look at the > patches. > > I think the semantics of cursor-delete are the current 'element'. > If I can do cursor-next to get to the next element of a duplicate > set, I wouldn't expect it to have been deleted when I deleted the > last one - so just the specific key-value pair that would be > returned by cursor-current. > > The indexed-btree is the only class that requires it due to the > indices slot. It would take quite a bit of work to handle all the > issues that persistent-metaclass takes care of. However, the btree, > dup-btree, and btree-index don't need it. I'll pull it out of the > BDB implementation and test it. > > Ian > > On Jun 1, 2008, at 3:48 PM, Alex Mizrahi wrote: > >> i can't say i'm completely stuck with it, >> but i'm getting pretty weird errors -- it's >> different if i run it first time or second time >> (on second time there are more errors), and, if i run >> whole test suite i get: >> >> SIMPLE-SLOT-ASSOC-SETUP []: >> Unexpected Error: # >> There is no applicable method for the generic function >> # >> when called with arguments >> (NIL)... >> >> but when i run test individually, it works: >> >> ELE-TESTS> (do-test-spec 'SIMPLE-SLOT-ASSOC-SETUP) >> . >> Did 1 check. >> Pass: 1 (100%) >> Skip: 0 ( 0%) >> Fail: 0 ( 0%) >> >> NIL >> >> so i thought maybe i'll post half-backed patches and someone >> could help debugging it -- with such weird bugs more eyeballs >> is always better. >> >> also, few questions to Ian: >> >> * cursor-delete on dup-btree -- should it delete only current >> pair or all pairs on some key? >> * why dup-btree has persistent-metaclass? (and so do some other btree >> flavours) >> if it don't use persistent-metaclass, drop-pobject fails for >> dup-btree, but other than that i can't see any reasons.. >> why should dup-btree be different from normal btree? >> this might introduce some bloat, so if drop-pobject is the only >> reason, it might be easier to just add method specialization >> >> >> >> _______________________________________________ >> 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 From varuzza at gmail.com Mon Jun 2 03:44:27 2008 From: varuzza at gmail.com (Leonardo Varuzza) Date: Mon, 2 Jun 2008 00:44:27 -0300 Subject: [elephant-devel] Problem with errno in %DB-ENV-CREATE Message-ID: <5d9c2e640806012044t26c88aecs24bd421b50ce857f@mail.gmail.com> Hello, If I change the declaim in the top of berkeley-db.lisp to (safety 3) (debug 3), I got this error from SBCL 1.0.17 on AMD64: invalid number of arguments: 1 [Condition of type SB-INT:SIMPLE-PROGRAM-ERROR] Restarts: 0: [ABORT-REQUEST] Abort handling SLIME request. 1: [TERMINATE-THREAD] Terminate this thread (#) Backtrace: 0: (DB-BDB::%DB-ENV-CREATE 0)[:EXTERNAL] 1: (DB-BDB::DB-ENV-CREATE) Using the normal optimization settings I got the error: Unhandled memory fault at #x4020002. Which is exactly the address of the variable errno in the C-function db_env_cr. Maybe the error is caused by 64 C code. Anybody is using elephant in a 64 machine? -- The most fundamental particles in this product are held together by a "gluing" force about which little is currently known and whose adhesive power can therefore not be permanently guaranteed. From leslie.polzer at gmx.net Mon Jun 2 09:04:00 2008 From: leslie.polzer at gmx.net (Leslie P. Polzer) Date: Mon, 2 Jun 2008 11:04:00 +0200 (CEST) Subject: [elephant-devel] Dropping objects Message-ID: <64877.88.73.241.88.1212397440.squirrel@mail.stardawn.org> Err, any specific reason why we have DROP-POBJECT and DROP-INSTANCES? It would be more orthogonal to have one function for deleting objects. Leslie From eslick at media.mit.edu Mon Jun 2 12:48:57 2008 From: eslick at media.mit.edu (Ian Eslick) Date: Mon, 2 Jun 2008 08:48:57 -0400 Subject: [elephant-devel] Dropping objects In-Reply-To: <64877.88.73.241.88.1212397440.squirrel@mail.stardawn.org> References: <64877.88.73.241.88.1212397440.squirrel@mail.stardawn.org> Message-ID: <894FC583-FC46-4C1E-B668-32259EFDA67A@media.mit.edu> I'm not sure of the history of this distinction - but I updated the API to use drop-instance and drop-instances. I also exported drop- instance-slots to delete persistent storage without dropping/ invalidating the instance itself. Ian On Jun 2, 2008, at 5:04 AM, Leslie P. Polzer wrote:i > > Err, any specific reason why we have DROP-POBJECT and DROP-INSTANCES? > It would be more orthogonal to have one function for deleting objects. > > Leslie > > > _______________________________________________ > elephant-devel site list > elephant-devel at common-lisp.net > http://common-lisp.net/mailman/listinfo/elephant-devel From eslick at media.mit.edu Mon Jun 2 13:18:21 2008 From: eslick at media.mit.edu (Ian Eslick) Date: Mon, 2 Jun 2008 09:18:21 -0400 Subject: [elephant-devel] Problem with errno in %DB-ENV-CREATE In-Reply-To: <5d9c2e640806012044t26c88aecs24bd421b50ce857f@mail.gmail.com> References: <5d9c2e640806012044t26c88aecs24bd421b50ce857f@mail.gmail.com> Message-ID: <6C191992-AC8F-4A4E-B135-DE7173B62860@media.mit.edu> Just to ask the basic questions. Which BDB are you using and does your my-config.sexp match that version? Ian On Jun 1, 2008, at 11:44 PM, Leonardo Varuzza wrote: > Hello, > > If I change the declaim in the top of berkeley-db.lisp to (safety 3) > (debug 3), I got this error from SBCL 1.0.17 on AMD64: > > invalid number of arguments: 1 > [Condition of type SB-INT:SIMPLE-PROGRAM-ERROR] > > Restarts: > 0: [ABORT-REQUEST] Abort handling SLIME request. > 1: [TERMINATE-THREAD] Terminate this thread (# {10033483B1}>) > > Backtrace: > 0: (DB-BDB::%DB-ENV-CREATE 0)[:EXTERNAL] > 1: (DB-BDB::DB-ENV-CREATE) > > > Using the normal optimization settings I got the error: > > Unhandled memory fault at #x4020002. > > Which is exactly the address of the variable errno in the C-function > db_env_cr. Maybe the error is caused by 64 C code. > > Anybody is using elephant in a 64 machine? > > -- > The most fundamental particles in this product are held together by a > "gluing" force about which little is currently known and whose > adhesive power can therefore not be permanently guaranteed. > _______________________________________________ > elephant-devel site list > elephant-devel at common-lisp.net > http://common-lisp.net/mailman/listinfo/elephant-devel From killerstorm at newmail.ru Mon Jun 2 20:47:36 2008 From: killerstorm at newmail.ru (Alex Mizrahi) Date: Mon, 2 Jun 2008 23:47:36 +0300 Subject: [elephant-devel] Re: unstable postmodern troubled.. References: Message-ID: IE> Sounds like there is an issue with schema coherence (the class object IE> cache out of sync with the db in some way? I had some of these tuning IE> the BDB implementation). i've found the issue -- postmodern backend creates its "system" btrees (like root, schema-table etc) in "fancy" way, so it cannot simply deserialize them if something in DB refers to it, so it depends on object cache. but some tests call flush-instance-cache, so db-postmodern gets broken. i'm not sure what is the idea behind "special" btrees.. probably it will work fine without this special stuff, but i'd prefer not to touch them :), so i'll better specialize flush-instance-cache to ensure system btrees are cached after flush. seems to be passing all tests now, ha! From eslick at media.mit.edu Mon Jun 2 21:43:05 2008 From: eslick at media.mit.edu (Ian Eslick) Date: Mon, 2 Jun 2008 17:43:05 -0400 Subject: [elephant-devel] Re: unstable postmodern troubled.. In-Reply-To: References: Message-ID: Fantastic! Thanks for all the work on this. Now I have no excuse to start the long list of little items necessary to get to a release... The big areas are: - Thread safety for all schema-related operations - Test coverage - Docs coverage Some bugs I've seen and haven't been able to fix: - Leslie's BDB bug on unstable - BDB on AMD 64 Anything else? I think Glenn was going to help us out with a little organization of this list vis-a-vis documentation? The missing tests are roughly the same as the missing doc sections, so we can come up with a list of tests from that. Anyone want to do a thread-safety review of the schema code? A fresh pair of eyes is usually much better for this than the developer as recent e-mails have shown. However, I'll take a first pass before too long. Thanks, Ian On Jun 2, 2008, at 4:47 PM, Alex Mizrahi wrote: > IE> Sounds like there is an issue with schema coherence (the class > object > IE> cache out of sync with the db in some way? I had some of these > tuning > IE> the BDB implementation). > > i've found the issue -- postmodern backend creates its "system" btrees > (like root, schema-table etc) in "fancy" way, so it cannot simply > deserialize > them if something in DB refers to it, so it depends on object cache. > > but some tests call flush-instance-cache, so db-postmodern gets > broken. > > i'm not sure what is the idea behind "special" btrees.. probably it > will > work fine without this special stuff, but i'd prefer not to touch > them :), > so i'll better specialize flush-instance-cache to ensure system btrees > are cached after flush. > > seems to be passing all tests now, ha! > > > > _______________________________________________ > elephant-devel site list > elephant-devel at common-lisp.net > http://common-lisp.net/mailman/listinfo/elephant-devel From eslick at media.mit.edu Mon Jun 2 21:45:06 2008 From: eslick at media.mit.edu (Ian Eslick) Date: Mon, 2 Jun 2008 17:45:06 -0400 Subject: [elephant-devel] Re: unstable postmodern troubled.. In-Reply-To: References: Message-ID: <1E9CD088-7FE3-467A-B410-771A4E7FE354@media.mit.edu> When the Trac web interface is back online, we can keep a list of todo's there as part of the bug tracking system. We also need to test upgrade from 0.9.1. I forget if we had figured out what to call this release. Opinions? Ian On Jun 2, 2008, at 5:43 PM, Ian Eslick wrote: > Fantastic! Thanks for all the work on this. Now I have no excuse > to start the long list of little items necessary to get to a > release... > > The big areas are: > - Thread safety for all schema-related operations > - Test coverage > - Docs coverage > > Some bugs I've seen and haven't been able to fix: > - Leslie's BDB bug on unstable > - BDB on AMD 64 > > Anything else? > > I think Glenn was going to help us out with a little organization of > this list vis-a-vis documentation? The missing tests are roughly > the same as the missing doc sections, so we can come up with a list > of tests from that. > > Anyone want to do a thread-safety review of the schema code? A > fresh pair of eyes is usually much better for this than the > developer as recent e-mails have shown. However, I'll take a first > pass before too long. > > Thanks, > Ian > > On Jun 2, 2008, at 4:47 PM, Alex Mizrahi wrote: > >> IE> Sounds like there is an issue with schema coherence (the class >> object >> IE> cache out of sync with the db in some way? I had some of these >> tuning >> IE> the BDB implementation). >> >> i've found the issue -- postmodern backend creates its "system" >> btrees >> (like root, schema-table etc) in "fancy" way, so it cannot simply >> deserialize >> them if something in DB refers to it, so it depends on object cache. >> >> but some tests call flush-instance-cache, so db-postmodern gets >> broken. >> >> i'm not sure what is the idea behind "special" btrees.. probably it >> will >> work fine without this special stuff, but i'd prefer not to touch >> them :), >> so i'll better specialize flush-instance-cache to ensure system >> btrees >> are cached after flush. >> >> seems to be passing all tests now, ha! >> >> >> >> _______________________________________________ >> 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 From varuzza at gmail.com Mon Jun 2 22:43:55 2008 From: varuzza at gmail.com (Leonardo Varuzza) Date: Mon, 2 Jun 2008 19:43:55 -0300 Subject: [elephant-devel] Problem with errno in %DB-ENV-CREATE In-Reply-To: <6C191992-AC8F-4A4E-B135-DE7173B62860@media.mit.edu> References: <5d9c2e640806012044t26c88aecs24bd421b50ce857f@mail.gmail.com> <6C191992-AC8F-4A4E-B135-DE7173B62860@media.mit.edu> Message-ID: <5d9c2e640806021543r5d54c818xe57c0c4472ae1905@mail.gmail.com> I'm using BDB 4.6 with this my-config.sexp ;; Linux defaults #+(and (or sbcl allegro openmcl lispworks) (not (or mswindows windows)) (not (or macosx darwin))) ((:compiler . :gcc) (:berkeley-db-version . "4.6") (:berkeley-db-include-dir . "/usr/include/") (:berkeley-db-lib-dir . "/usr/lib/") (:berkeley-db-lib . "/usr/lib/libdb-4.6.so") (:berkeley-db-deadlock . "/usr/bin/db4.6_deadlock") (:berkeley-db-cachesize . 20971520) (:berkeley-db-map-degree2 . t) (:clsql-lib-paths . nil) (:prebuilt-libraries . nil)) On Mon, Jun 2, 2008 at 10:18 AM, Ian Eslick wrote: > Just to ask the basic questions. Which BDB are you using and does your > my-config.sexp match that version? > > Ian > > On Jun 1, 2008, at 11:44 PM, Leonardo Varuzza wrote: > >> Hello, >> >> If I change the declaim in the top of berkeley-db.lisp to (safety 3) >> (debug 3), I got this error from SBCL 1.0.17 on AMD64: >> >> invalid number of arguments: 1 >> [Condition of type SB-INT:SIMPLE-PROGRAM-ERROR] >> >> Restarts: >> 0: [ABORT-REQUEST] Abort handling SLIME request. >> 1: [TERMINATE-THREAD] Terminate this thread (#> {10033483B1}>) >> >> Backtrace: >> 0: (DB-BDB::%DB-ENV-CREATE 0)[:EXTERNAL] >> 1: (DB-BDB::DB-ENV-CREATE) >> >> >> Using the normal optimization settings I got the error: >> >> Unhandled memory fault at #x4020002. >> >> Which is exactly the address of the variable errno in the C-function >> db_env_cr. Maybe the error is caused by 64 C code. >> >> Anybody is using elephant in a 64 machine? >> >> -- >> The most fundamental particles in this product are held together by a >> "gluing" force about which little is currently known and whose >> adhesive power can therefore not be permanently guaranteed. >> _______________________________________________ >> 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 > -- The most fundamental particles in this product are held together by a "gluing" force about which little is currently known and whose adhesive power can therefore not be permanently guaranteed. From eslick at media.mit.edu Tue Jun 3 01:57:37 2008 From: eslick at media.mit.edu (Ian Eslick) Date: Mon, 2 Jun 2008 21:57:37 -0400 Subject: [elephant-devel] (FIXED) Bug where btree/dup-btrees are "oid: nil" in SBCL/BDB Message-ID: <95B226DC-693B-4BA6-AD23-0ED0BB50BD71@media.mit.edu> Alex's recent question about why dup-btrees were persistent-metaclass along with a project of my own led me to the previously reported bug about deserializing btrees that had a nil in the oid slot. This is related to the reason that dup-btrees were originally persistent- metaclass. The class recreation protocol involves a generic function that dispatches on the class, not the instance, of the object to be recreated. This means that 'persistent' vs. non-persistent isn't the easiest distinction to make. The recreation function calls a special initialization for persistent-metaclass instances (i.e. oid & spec) which wasn't getting called for btree and dup-btree. For now, I've added a call to initialize persistent in the controller recreation protocol to handle persistent-collections properly. (for indexes and indexed-btrees this will get called twice). I probably need to think through how to make this protocol cleaner since we really want to dispatch on (subtypep class 'persistent) at recreation time. Anyway, this case is what led to the bug about oid:nil in btrees reported by Leslie and others earlier and the fix I just pushed should take care of that bug (which means Leslie should be able to start his testing of elephant-unstable again). Ian From leslie.polzer at gmx.net Tue Jun 3 07:30:45 2008 From: leslie.polzer at gmx.net (Leslie P. Polzer) Date: Tue, 3 Jun 2008 09:30:45 +0200 (CEST) Subject: [elephant-devel] Re: unstable postmodern troubled.. In-Reply-To: <1E9CD088-7FE3-467A-B410-771A4E7FE354@media.mit.edu> References: <1E9CD088-7FE3-467A-B410-771A4E7FE354@media.mit.edu> Message-ID: <63965.88.73.237.179.1212478245.squirrel@mail.stardawn.org> > I forget if we had figured out what to call this release. Opinions? Didn't we agree to have this as 1.0? Or are there still other issues that need to be solved until then? Leslie From gtarcea at umich.edu Tue Jun 3 13:19:06 2008 From: gtarcea at umich.edu (V. Glenn Tarcea) Date: Tue, 3 Jun 2008 09:19:06 -0400 Subject: [elephant-devel] Re: unstable postmodern troubled.. In-Reply-To: References: Message-ID: <009301c8c57c$669b27c0$4212a8c0@mimi2> Yup, I'll be helping on the docs. I'm running silent but watching the emails. I'll have more time to help out with things in about 2 weeks (end of spring semester) Is there a goal date for the next release? Glenn -----Original Message----- From: elephant-devel-bounces at common-lisp.net [mailto:elephant-devel-bounces at common-lisp.net] On Behalf Of Ian Eslick Sent: Monday, June 02, 2008 5:43 PM To: Elephant bugs and development Subject: Re: [elephant-devel] Re: unstable postmodern troubled.. Fantastic! Thanks for all the work on this. Now I have no excuse to start the long list of little items necessary to get to a release... The big areas are: - Thread safety for all schema-related operations - Test coverage - Docs coverage Some bugs I've seen and haven't been able to fix: - Leslie's BDB bug on unstable - BDB on AMD 64 Anything else? I think Glenn was going to help us out with a little organization of this list vis-a-vis documentation? The missing tests are roughly the same as the missing doc sections, so we can come up with a list of tests from that. Anyone want to do a thread-safety review of the schema code? A fresh pair of eyes is usually much better for this than the developer as recent e-mails have shown. However, I'll take a first pass before too long. Thanks, Ian On Jun 2, 2008, at 4:47 PM, Alex Mizrahi wrote: > IE> Sounds like there is an issue with schema coherence (the class > object > IE> cache out of sync with the db in some way? I had some of these > tuning > IE> the BDB implementation). > > i've found the issue -- postmodern backend creates its "system" btrees > (like root, schema-table etc) in "fancy" way, so it cannot simply > deserialize > them if something in DB refers to it, so it depends on object cache. > > but some tests call flush-instance-cache, so db-postmodern gets > broken. > > i'm not sure what is the idea behind "special" btrees.. probably it > will > work fine without this special stuff, but i'd prefer not to touch > them :), > so i'll better specialize flush-instance-cache to ensure system btrees > are cached after flush. > > seems to be passing all tests now, ha! > > > > _______________________________________________ > 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 From eslick at media.mit.edu Tue Jun 3 13:40:44 2008 From: eslick at media.mit.edu (Ian Eslick) Date: Tue, 3 Jun 2008 09:40:44 -0400 Subject: [elephant-devel] Re: unstable postmodern troubled.. In-Reply-To: <009301c8c57c$669b27c0$4212a8c0@mimi2> References: <009301c8c57c$669b27c0$4212a8c0@mimi2> Message-ID: <52038A6E-0303-45FF-BB53-20F683822792@media.mit.edu> End of June would be great - I think it's a bit of a stretch since I'm sure there are likely to be various issues cropping up. I think that feature-wise we're ready for a 1.0, but in terms of documentation, use-cases, stability, etc. I'm inclining towards an intermediate release or two indicating that we're close so perhaps 1.0beta1 or 0.9.9? Major feature development should be moved to a separate branch at release time. I'm also not inclined to promise a query system for 1.0. To do a proper job I believe will require some additional changes to core functionality (although hopefully not the data stores or DB) such as keeping rough statistics over btree accesses for a query planner, etc. I don't want to rush it. So here's a proposal: - Feature-freeze the current branch - Focus entirely on testing and documentation through the end of June. - Ensure that we've field tested the 0.9.1->1.0beta1 upgrade - At the end of June, subject to Robert and I agreeing, we release a 1.0beta1 and fork a branch for post 1.0 features - We'll keep pushing on testing, etc and do monthly 1.0betaX releases until we're happy. Ian On Jun 3, 2008, at 9:19 AM, V. Glenn Tarcea wrote: > Yup, I'll be helping on the docs. I'm running silent but watching the > emails. I'll have more time to help out with things in about 2 weeks > (end of > spring semester) > > Is there a goal date for the next release? > > Glenn > > -----Original Message----- > From: elephant-devel-bounces at common-lisp.net > [mailto:elephant-devel-bounces at common-lisp.net] On Behalf Of Ian > Eslick > Sent: Monday, June 02, 2008 5:43 PM > To: Elephant bugs and development > Subject: Re: [elephant-devel] Re: unstable postmodern troubled.. > > Fantastic! Thanks for all the work on this. Now I have no excuse to > start the long list of little items necessary to get to a release... > > The big areas are: > - Thread safety for all schema-related operations > - Test coverage > - Docs coverage > > Some bugs I've seen and haven't been able to fix: > - Leslie's BDB bug on unstable > - BDB on AMD 64 > > Anything else? > > I think Glenn was going to help us out with a little organization of > this list vis-a-vis documentation? The missing tests are roughly the > same as the missing doc sections, so we can come up with a list of > tests from that. > > Anyone want to do a thread-safety review of the schema code? A fresh > pair of eyes is usually much better for this than the developer as > recent e-mails have shown. However, I'll take a first pass before too > long. > > Thanks, > Ian > > On Jun 2, 2008, at 4:47 PM, Alex Mizrahi wrote: > >> IE> Sounds like there is an issue with schema coherence (the class >> object >> IE> cache out of sync with the db in some way? I had some of these >> tuning >> IE> the BDB implementation). >> >> i've found the issue -- postmodern backend creates its "system" >> btrees >> (like root, schema-table etc) in "fancy" way, so it cannot simply >> deserialize >> them if something in DB refers to it, so it depends on object cache. >> >> but some tests call flush-instance-cache, so db-postmodern gets >> broken. >> >> i'm not sure what is the idea behind "special" btrees.. probably it >> will >> work fine without this special stuff, but i'd prefer not to touch >> them :), >> so i'll better specialize flush-instance-cache to ensure system >> btrees >> are cached after flush. >> >> seems to be passing all tests now, ha! >> >> >> >> _______________________________________________ >> 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 From killerstorm at newmail.ru Wed Jun 4 11:53:41 2008 From: killerstorm at newmail.ru (Alex Mizrahi) Date: Wed, 4 Jun 2008 14:53:41 +0300 Subject: [elephant-devel] Re: unstable postmodern troubled.. References: Message-ID: here are patches for elephant-unstable. it still doesn't work perfectly, errors are quite weird: odd test runs (1, 3..) work fine, but even ones (2, 4..) complete with two errors, iirc UPDATE-CLASS and INDEX-REDEFINE, something like that. i hope that are minor errors. also some minor fixes are pending -- i.e. cursor-delete on dup-btree to delete only one row. IE> Anything else? well, postmodern techinically supports (or is close to that) association and stuff, but default-pset implementation for it is a joke -- it creates a new database table for each pset. so it needs specialized pset implementation to be actually usable. begin 666 pm-patch01.hunks M"DYE=R!P871C:&5S. at H*6W!OG)A:&E 9VUA:6PN8V]M*BHR,# X,#8P-#$Q-#0Q-5T@>PIH=6YK("XO"YL M:7-P(#@*+2AD969M971H;V0 at 9'5P;&EC871E2UA M;F0M=F%L=64M<&%I2!V86QU92 H8G0@<&TM8G1R M964M:6YD97 at I*0HM(" H=VAE;B H86YD('-E8V]N9&%R>2UK97D@*&EN:71I M86QI>F5D+7 @8G0I*2 [.U1/1$\Z(&-H96-K(&9O#\*+2 @(" H=VET:"UT2 H:V5Y+71Y<&4M;V8 at 8G0I*0HM(" @(" @ M(" @(" @(" @(" @(" @(" @(" @(" @(" @*'!O7!E+6]F M(&)T*2DI"BL@(" @(" @(" @(" @(" @(" @(" @(" @(" G8VPM<&]S=&=R M97,Z:6=N;W)E+7)O=RUR96%D97(I*2DI"FAU;FL at +B]S6YA;64@*"AC M=7)S;W(@<&TM9'5P8BUC=7)S;W(I*0HK(" @("AU;FQE'0I"BLH9&5F+6-UF5D+7 @8W5R'0M9G)O;2UC M86-H90HK(" H8W5R2UO2UC;VUP87)E(&YI;" Z=F%L=64M8V]M M<&%R92 G/CTI"BL)"2 @(" @*"AL:7-T("AK97DM<&%R86UE=&5R(&ME>2!B M=')E92D**PD)"2 @(" H=F%L=64M<&%R86UE=&5R('9A;"!B=')E92DI(#IR M97-E="UC86-H92!T*2D**R @*&-U2!V86PI"BL@("AM=6QT:7!L92UV M86QU92UB:6YD("AF;W5N9"!K('8I"BL@(" @(" H8W5R2UK97D@:V5Y M(&EN9&5X*2DI*2D**R @(" @(" @(" @(" @(" @(" @*')E;6]V92UK=BUP M86ER('-E8V]N9&%R>2UK97D@:V5Y(&EN9&5X*2DI*2D*:'5N:R N+W-R8R]D M8BUP;W-T;6]D97)N+W!M+7-E8V]N9&%R>2YL:7-P(#,*+2AD969C;&%S2UC=7)S;W(@*'!M+61U<&(M8W5R2YL:7-P(#D*+2 @*&UA:V4M M:6YS=&%N8V4@)W!M+7-E8V]N9&%R>2UC=7)S;W(@"BL@("AM86ME+6EN2YL:7-P(#,W"BTH9&5F;6%C2!G;V]D+"!B=70N+ at HM("!@*&1E9FUE M=&AO9" L;7EN86UE("@H8W5R2UC=7)S;W(I*0HM M(" @("AU;FQE'0I"BTH9&5F+6-UF5D+7 @8W5R'0M9G)O;2UC86-H90HM(" H8W5R2UO'0M9G)O;2UC86-H92!C=7)S;W(I M*0HM"BTH9&5F;65T:&]D(&-U2D*+2 @*&UU;'1I<&QE+79A;'5E M+6)I;F0@*&9O=6YD(&L@=BD*+2 @(" @("AC=7)S;W(M9V5T+6)O=&@M2!P:V5Y*0HM(" @("AI9B H86YD(&9O=6YD("AE;&4Z M.FQI2!H97)E+ at HK(" @("AL970@*"AC M=" H"UT86)L M92DI*2DI"BL**PHK"FAU;FL at +B]S2UT>7!E M+6]F("AS;&]T+79A;'5E('-C("=R;V]T*2D@*&1A=&$M='EP92!T*2D*+2 @ M(" @(" @(" @*'-E=&8@*'-L;W0M=F%L=64@&5D+6)T7-T96TM8G1R964@,2 B:6YS=&%N M8V5S(B G<&TM:6YD97AE9"UB=')E92 Q*0HK"0D@(" H7-T96TM8G1R964@,R B7-T96TM8G1R964 at -" B:6YD:6-E2UT>7!E+6]F("AP97)S:7-T96YT+7-L;W0M M8V]L;&5C=&EO;BUO9B!S8RDI("AD871A+71Y<&4@*&9O'0@)V-L87-S M7VED7W-E<2DI*2D**PIH=6YK("XO&5D+6)T" T*2DI"BL**RAD969M971H;V0 at 9&5F875L="UC;&%S7!E("AC:60@*'-C('!O&5D+6)T2!W:&5N(&1E9FEN:6YG('!R:6UA"!B=')E92]D=7 M8G1R964 at 87,@;FEL(&-R96%T M:6]N('!R;V)L96T*97-L:6-K0&-O;6UO;BUL:7-P+FYE="HJ,C P.# V,#(R M,# X,#==( I;0VAA;F=E9"!D"!C;VYF:6<@7!O+"!A9&0@='EP92!S<&5C:69I97)S('1O(&-O;&QE8W1I;VX@=&5S="P@ MF5R('!A=&-H.R!U;FEC;V1E('!E&EN9F\M:6YF97)R960M8F]D>2!W87,@;6]D M:69I960@=&\@:6YC;'5D92!A(&-A;&P@=&\@9FEN86QI>F4M:6YH97)I=&%N M8V4N"ET@"EM#3"U344P at 8VAA;F=E0IR96%D0')O8F5R=&QR96%D+FYE="HJ,C P.# U,3"!F;W(@;F]N+6%C;"!L:7-P M&5D+7-L;W1S+FQI2!S>6YC"F5S;&EC:T!C;VUM;VXM;&ES<"YN970J*C(P M,#@P-3$V,3DR,S V72 *6T%D9&5D('!EF5S"F5S;&EC:T!C;VUM;VXM;&ES<"YN970J*C(P M,#@P-3$V,3DQ-S0W72 *6T%D9"!M87@@;&]C:R!C;VYF:6=UF]P82 \F%R9"YS>F]P84!G;6%I;"YC;VT^*BTR,# X,#4Q,S$S,S,U-ET@"EMO<&5N M(&-O;G1R;VQL97(@9F]R(&)D8B!A8V-E<'1S(&$@<&%T:&YA;64@7-Z87)D(%-Z;W!A(#QR>7-Z87)D+G-Z;W!A0&=M86EL+F-O;3XJ*C(P,#@P M-3$S,3,S,S4V72 *6V5L97!H86YT+61B+7!A=&@M=&5S= I2>7-Z87)D(%-Z M;W!A(#QR>7-Z87)D+G-Z;W!A0&=M86EL+F-O;3XJ*C(P,#@P-3$S,C$S,C(R M72 *6TUA:VEN9T-,0E5)3$1296%D>0IR96%D(&%T(')O8F5R=&QR96%D+FYE M="HJ,C P.# U,30P-#,W-# *(%1H:7,@:7, at 86X@871T96UP="!T;R!M86ME M($5L97!H86YT(')E861Y(&9O2P at 22!F;W)G;W0@=VAO('-U8FUI='1E9"!T:&ES(&)U9R!F:7 at N M"ET@"EM-86MI;F=%;&5P:&%N=$-,0E5)3$1296%D>0IR96%D(&%T(')O8F5R M=&QR96%D+FYE="HJ,C P.# U,30P,S$Y,C)=( I;1FEX960 at 8G5G(&EN('!E M&X*97-L:6-K M0&-O;6UO;BUL:7-P+FYE="HJ,C P.# U,3,Q,3 U,SE=( I;1FEX(&UA<"UB M=')E92!F86EL=7)E('1O(&-H96-K(&EI9B!F:7)S="!V86QU92!I;B!A(')A M;F=E(&UA<"!I7,L M('1H;W5G:"!I;B!H:6YD"!T:')E861S('1O(&5L97!H86YT+71EG)A:&E 9VUA:6PN M8V]M*BHR,# X,#0Q,# W,#@P-5T@"EMD8BUP;W-T;6]D97)N.B!S>6YC+6-A M8VAE('1Y<&4@:&%N9&QI;F<@9FEX"F%L97 at N;6EZ"YM:7IR86AI0&=M86EL+F-O;2HJ,C P.# S,C8R,#,Q-#==( I;=')A M;G-A8W1I;VX@"YM:7IR86AI0&=M86EL+F-O;2HJ M,C P.# S,3 at Q-34T-#1=( I;9&(M<&]S=&UO9&5R;CH@"YM:7IR86AI0&=M86EL+F-O;2HJ,C P.# S,3 at Q-34Q M,CD*(&-A8VAE('=A2!F=6YC=&EO;G,[(&%D M9"!W87)N:6YGF5R0&=N=2YOF5R0&=N=2YO M&5S.R!M:6=R871I;VX at 9FEX97,[('-M86QL(&)U9R!F:7AE MF%T:6]N(&]F('9A;'5E3L at 8G5G(&9I>&5S"F5S;&EC:T!C;VUM;VXM;&ES M<"YN970J*C(P,#@P,S$Q,#,T,S$W"B *($9E871U&5D('-O;64@;&ET=&QE(&)U9W,@:&ED:6YG(&EN(&)D8 at H@ M061D960@=&5S=', at 9F]R(&1U<"UB=')E97, at 86YD('1O('1E&5S('1O(&EN9&5X M:6YG+"!S970M=F%L=65D('-L;W1S+"!E=&, at 86YD(&9I>&5S('1O(&EN9&5X M:6YG('1E"!S97)I86QI>F5R M(&)U9W, at 9F]R(&QE>&EC86P at 97$[(&)D8B!D969A=6QT(&-I9"!B=6<*97-L M:6-K0&-O;6UO;BUL:7-P+FYE="HJ,C P.# S,#&5D(&-L87-S97,[(&1R;W M:6YS=&%N8V5S M"F5S;&EC:T!C;VUM;VXM;&ES<"YN970J*C(P,#@P,S V,C$S.34R72 *6T9I M>"!D96QE=&4@:6X at 9'5P(&)T"!B9&(M8V]N=')O;&QE"!T97-T(&1E<&5N9&5N8V4 at 9F]R M(&9F+6EN9&5X+71E2!$0B!V97)S:6]N(&%G;F]S M=&EC(&-O9&4*97-L:6-K0&-O;6UO;BUL:7-P+FYE="HJ,C P.# R,C8Q-3$T M-3,*( H at 061D960@86X at 97)R;W(@;65S' @86YD(&UA9&4@2!FF5N;FEK;W9 9VUA:6PN8V]M*BHR,# W,3(S,#$T,#&-E MG)A M:&E 9VUA:6PN8V]M*BHR,# X,#$R,#$T,C0S- at H@8F5C875S92!I="!W87,@ M8GEP87-S960 at 8GD@G)A:&E 9VUA M:6PN8V]M*BHR,# X,#$Q-C(R,C0P-5T@"EMD8BUP;W-T;6]D97)N.B!P;2UB M=')E92!I;FET:6%L:7IA=&EO;B!F:7AE9 IA;&5X+FUI>G)A:&E 9VUA:6PN M8V]M*BHR,# X,#$Q-C(R,C,Q-ET@"EMR96-R96%T92UI;G-T86YC92!S='5F M9B!I;7!R;W9E9 IA;&5X+FUI>G)A:&E 9VUA:6PN8V]M*BHR,# X,#$Q-C(R M,#$S.%T@"EMD8BUP;W-T;6]D97)N.B!R96UO=F5D('-P96-I86QI>F5D(&UA M<"UI;F1E> IA;&5X+FUI>G)A:&E 9VUA:6PN8V]M*BHR,# X,#$P-S$S-# Q M, at H@8F5C875S92!P=7)E(&-U"!M87 M:6YD97@@;W!T:6UI>F%T:6]N(&)U9PI(96YR:6L at 2&IE;'1E(#QH M96YR:6LN:&IE;'1E0'-T:7 at N=&\^*BHR,# X,#$P-#$U,38T-%T@"EMD8BUP M;W-T;6]D97)N.B!C=7)S;W)S(')E+6EM<&QE;65N=&5D"F%L97 at N;6EZ7=O7-T M96TM87)E82P@=VAI8V@*(&%R96XG="!E>'!O"!I;G-T86YC92!D97-EF%T:6]N('!R;W1O8V]L"G-R;W-S0&-O;6UO;BUL:7-P M+FYE="HM,C P-S$R,30Q-#$Y,SA=( I;9&(M<&]S=&UO9&5R;CH@;W!T:6UI M>F5D(&UA<"UI;F1E>"!F;W(@+6)Y+79A;'5E(&-A"YM:7IR86AI M0&=M86EL+F-O;2HJ,C P-S$R,#F5D(&9OF5D+ at I=( I;9&(M M<&]S=&UO9&5R;CH@"YM:7IR86AI M0&=M86EL+F-O;2HJ,C P-S$R,#G)A:&E 9VUA:6PN M8V]M*BHR,# W,#DR,# Y-3 at P-ET@"EMD8BUP;W-T;6]D97)N(')E;6]V960@ M<&]S2!O9B!U2!A(&-O;6EN M9R!F96%T=7)E(&9R;VT at 26%N+"!B=70*(')I9VAT(&YO=R!I="!BF%T:6]N('1O(&)Y<&%S"!T;R!F IE References: Message-ID: <87655A2F-57E8-439F-9003-B18798C29830@media.mit.edu> Ok, I'll try to integrate this in the next day or two and promote it. Ian On Jun 4, 2008, at 7:53 AM, Alex Mizrahi wrote: > here are patches for elephant-unstable. > it still doesn't work perfectly, errors are quite weird: > odd test runs (1, 3..) work fine, but even ones (2, 4..) complete > with two > errors, iirc UPDATE-CLASS > and INDEX-REDEFINE, something like that. i hope that are minor errors. > also some minor fixes are pending -- i.e. cursor-delete on dup-btree > to > delete only one row. > > IE> Anything else? > > well, postmodern techinically supports (or is close to that) > association and > stuff, > but default-pset implementation for it is a joke -- it creates a new > database table > for each pset. so it needs specialized pset implementation to be > actually > usable. > > > From killerstorm at newmail.ru Wed Jun 4 14:30:02 2008 From: killerstorm at newmail.ru (Alex Mizrahi) Date: Wed, 4 Jun 2008 17:30:02 +0300 Subject: [elephant-devel] pending patches Message-ID: <6DD5902D5886480799FE8708E984B445@killer> pending patches for stable branch: [fix for initialize-user-parameters alex.mizrahi at gmail.com**20080413131102] ;; initialize-user-parameters was totally broken.. [serializer thread safety (temp) alex.mizrahi at gmail.com**20080528152446] ;; fix for serializer2 race conditions [race condition in memutil alex.mizrahi at gmail.com**20080530141323] ;; same kind of race condition in memutil [Fix MAKE-LOCAL-NAME so it produces keywords instead of randomly package-scoped reader-interned symbols. polzer at gnu.org**20080430121024] [MAP-INVERTED-INDEX-1 test fixed alex.mizrahi at gmail.com**20080604140448] ;; test was a bit broken, opening BDB store itself ;;;;;;;;;;;;;; and these patches bundled for unstable: [race condition in memutil alex.mizrahi at gmail.com**20080530141323] [Fix MAKE-LOCAL-NAME so it produces keywords instead of randomly package-scoped reader-interned symbols. polzer at gnu.org**20080430121024] [one more race condition in serializer2 alex.mizrahi at gmail.com**20080604142449] -------------- next part -------------- A non-text attachment was scrubbed... Name: unstable01.patch Type: application/octet-stream Size: 15300 bytes Desc: not available URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: stable01.patch Type: application/octet-stream Size: 24006 bytes Desc: not available URL: From killerstorm at newmail.ru Wed Jun 4 14:44:55 2008 From: killerstorm at newmail.ru (Alex Mizrahi) Date: Wed, 4 Jun 2008 17:44:55 +0300 Subject: [elephant-devel] remove-current-kv does not work as advertised! Message-ID: (defvar *current-cursor* nil "This dynamic variable is referenced only when deleting elements using the following function. This allows mapping functions to delete elements as they map. This is safe as we don't revisit values during maps") (defun remove-current-kv () (unless *current-cursor* (error "Cannot call remove-current-kv outside of a map-btree or map-index function argument")) (cursor-delete *current-cursor*)) it's supposed that while cursor is iterated in map-btree, we can remove current element and then jump to next. but cursor-delete leaves cursor unitialized, so cursor-next will instead jump to first item, and iteration will be restarted. so, finally it will work (i think), but it's damn slow and painful procedure. i think it's better to remove this functionality, or fix this. if we are not going to change cursor-delete semantics, a way to delete item without making cursor unintialized is something like: (defun remove-current-kv () (unless *current-cursor* (error "Cannot call remove-current-kv outside of a map-btree or map-index function argument")) (let ((c (cursor-duplicate *current-cursor*))) (cursor-delete c))) but i dunno if it will work in BDB From killerstorm at newmail.ru Wed Jun 4 14:44:55 2008 From: killerstorm at newmail.ru (Alex Mizrahi) Date: Wed, 4 Jun 2008 17:44:55 +0300 Subject: [elephant-devel] remove-current-kv does not work as advertised! Message-ID: (defvar *current-cursor* nil "This dynamic variable is referenced only when deleting elements using the following function. This allows mapping functions to delete elements as they map. This is safe as we don't revisit values during maps") (defun remove-current-kv () (unless *current-cursor* (error "Cannot call remove-current-kv outside of a map-btree or map-index function argument")) (cursor-delete *current-cursor*)) it's supposed that while cursor is iterated in map-btree, we can remove current element and then jump to next. but cursor-delete leaves cursor unitialized, so cursor-next will instead jump to first item, and iteration will be restarted. so, finally it will work (i think), but it's damn slow and painful procedure. i think it's better to remove this functionality, or fix this. if we are not going to change cursor-delete semantics, a way to delete item without making cursor unintialized is something like: (defun remove-current-kv () (unless *current-cursor* (error "Cannot call remove-current-kv outside of a map-btree or map-index function argument")) (let ((c (cursor-duplicate *current-cursor*))) (cursor-delete c))) but i dunno if it will work in BDB From eslick at media.mit.edu Wed Jun 4 15:18:56 2008 From: eslick at media.mit.edu (Ian Eslick) Date: Wed, 4 Jun 2008 11:18:56 -0400 Subject: [elephant-devel] remove-current-kv does not work as advertised! In-Reply-To: References: Message-ID: remove-current-kv assumes a fix to cursor-delete that robert and I talked about that I forgot to do. My proposal for this was to change the semantics so that the consequences of cursor operations that assume the data is valid (i.e. other than next/prev, etc) are undefined. In this way the cursor is still valid after a delete, but only certain operations are guaranteed to work. In a normal map operation, the map function would exit and be called on the next item in the sequence. Will these semantics work for postmodern? Ian On Jun 4, 2008, at 10:44 AM, Alex Mizrahi wrote: > (defvar *current-cursor* nil > "This dynamic variable is referenced only when deleting elements > using the following function. This allows mapping functions to > delete elements as they map. This is safe as we don't revisit > values during maps") > > (defun remove-current-kv () > (unless *current-cursor* > (error "Cannot call remove-current-kv outside of a map-btree or > map-index function argument")) > (cursor-delete *current-cursor*)) > > it's supposed that while cursor is iterated in map-btree, we can > remove current element and then jump to next. > > but cursor-delete leaves cursor unitialized, so cursor-next will > instead jump to first item, and iteration will be restarted. > > so, finally it will work (i think), but it's damn slow and painful > procedure. > > i think it's better to remove this functionality, or fix this. if we > are not going to change cursor-delete > semantics, a way to delete item without making cursor unintialized > is something like: > > (defun remove-current-kv () > (unless *current-cursor* (error "Cannot call remove-current-kv > outside of a map-btree or map-index function argument")) > (let ((c (cursor-duplicate *current-cursor*))) > (cursor-delete c))) > > but i dunno if it will work in BDB > _______________________________________________ > elephant-devel site list > elephant-devel at common-lisp.net > http://common-lisp.net/mailman/listinfo/elephant-devel From killerstorm at newmail.ru Wed Jun 4 20:38:17 2008 From: killerstorm at newmail.ru (Alex Mizrahi) Date: Wed, 4 Jun 2008 23:38:17 +0300 Subject: [elephant-devel] remove-current-kv does not work as advertised! References: Message-ID: <05475D1C7021499185501CDCA198CC9B@killer> IE> Will these semantics work for postmodern? sure, to add this feature i just need to remove one line of code :) -- that closes cursor on delete. pm-cursor caches current value, so even cursor-current will return something. From killerstorm at newmail.ru Wed Jun 4 20:38:17 2008 From: killerstorm at newmail.ru (Alex Mizrahi) Date: Wed, 4 Jun 2008 23:38:17 +0300 Subject: [elephant-devel] remove-current-kv does not work as advertised! References: Message-ID: <05475D1C7021499185501CDCA198CC9B@killer> IE> Will these semantics work for postmodern? sure, to add this feature i just need to remove one line of code :) -- that closes cursor on delete. pm-cursor caches current value, so even cursor-current will return something. From gtarcea at umich.edu Fri Jun 6 11:18:06 2008 From: gtarcea at umich.edu (Glenn Tarcea) Date: Fri, 6 Jun 2008 07:18:06 -0400 Subject: [elephant-devel] BDB Constants generation Message-ID: <10AE9D06-D559-455C-9638-3724EE9A176C@umich.edu> I this will work to remove the dependency on hand generating the berkeley-constants.lisp file constants (but not the structures). As long as the structures don't change between BDB releases, it should remove the explicit dependency on a version of BDB. ======================= asdf file: (defvar *gcc* "gcc") (defclass grovel-file (cl-source-file) ()) (defmethod perform ((o compile-op) (c grovel-file)) (let* ((output-file (car (output-files o c))) (filename (component-pathname c)) (c-source (merge-pathnames "tmp.c" output-file)) (a-dot-out (merge-pathnames "a.out" output-file)) (constants (merge-pathnames "grovel.lisp-temp" output-file)) (*grovel*)) (declare (special *grovel*)) (load filename) (and (funcall (the function *grovel*) c-source a-dot-out constants) (compile-file constants :output-file output-file)))) (defsystem xxxx ... :components ((:file "defpackage" (:grovel-file "grovel-constants" ....)) :depends-on (:uffi ....)) ======================= grovel-constants.lisp: (defun write-groveler (file constants) (with-open-file (f file :direction :output :if-exists :supersede) (let ((*print-case* :upcase)) (format f " #include <...> void defconstant(char *lisp_name, long unix_number) { printf(\"(defconstant %s %ld); #x%lx\\n\", lisp_name, unix_number); } int main() { printf(\"(in-package : THE PACKAGE WE ARE DEFINING)\\n\") ;") (dolist (c constants) (format f "~& defconstant(\"~A\", ~A);~%" (car c) (cdr c))) (format f " return 0 ; }")))) (unless (boundp *grovel*) (error "No GROVEL hook!")) (defvar *grovel*) (setf *grovel* (lambda (c obj lisp) (write-groveler c '(;; BDB Constants (db_create . DB_CREATE) ...))) (and (zerop (run-shell-command "~A ~A -o ~A" *gcc* (namestring c) (namestring obj))) (zerop (run-shell-command "~A > ~A" (namestring obj) (namestring lisp)))))) ====================== This will create a c file and corresponding binary for generating the lisp defining the constants. I am using this to generate all the constant declarations I need for System V IPC access (eg, IPC_STAT, IPC_RMID, etc...). I got much of the structure for this from OSICAT with some cleanup and changes on my part. Glenn From arnaudpourseb at gmail.com Mon Jun 9 22:03:15 2008 From: arnaudpourseb at gmail.com (Sebastian Georges) Date: Mon, 9 Jun 2008 17:03:15 -0500 Subject: [elephant-devel] Opening new database in unstable Message-ID: <9f8fd8120806091503s663e45f9q7b6a4b93f57dc143@mail.gmail.com> I tried to install elephant-unstable this morning (as drop-instance and some keyword arguments are not available in 0.9.1 i guess you are testing weblocks against unstable now), but i get this error when creating (elephant:open-store '(:clsql (:sqlite3 "/tmp/blog.db"))): "When attempting to set the slot's value to # (SETF of SLOT-VALUE), the slot DB-CLSQL::CLASS-ROOT is missing from the object #" Thank you for you help -------------- next part -------------- An HTML attachment was scrubbed... URL: From read at robertlread.net Tue Jun 10 02:35:03 2008 From: read at robertlread.net (Robert L. Read) Date: Mon, 09 Jun 2008 21:35:03 -0500 Subject: [elephant-devel] Opening new database in unstable In-Reply-To: <9f8fd8120806091503s663e45f9q7b6a4b93f57dc143@mail.gmail.com> References: <9f8fd8120806091503s663e45f9q7b6a4b93f57dc143@mail.gmail.com> Message-ID: <1213065303.29423.1667.camel@penguin.yourdomain.com> I'll try this and report back. I haven't tested with sqlite3 since I switched to a 64-bit computer. On Mon, 2008-06-09 at 17:03 -0500, Sebastian Georges wrote: > I tried to install elephant-unstable this morning (as drop-instance > and some keyword arguments are not available in 0.9.1 i guess you are > testing weblocks against unstable now), but i get this error when > creating (elephant:open-store '(:clsql (:sqlite3 "/tmp/blog.db"))): > > "When attempting to set the slot's value to # (SETF > of SLOT-VALUE), the slot DB-CLSQL::CLASS-ROOT is missing from the > object #" > > Thank you for you help > _______________________________________________ > elephant-devel site list > elephant-devel at common-lisp.net > http://common-lisp.net/mailman/listinfo/elephant-devel From read at robertlread.net Tue Jun 10 03:40:05 2008 From: read at robertlread.net (Robert L. Read) Date: Mon, 09 Jun 2008 22:40:05 -0500 Subject: [elephant-devel] Opening new database in unstable In-Reply-To: <1213065303.29423.1667.camel@penguin.yourdomain.com> References: <9f8fd8120806091503s663e45f9q7b6a4b93f57dc143@mail.gmail.com> <1213065303.29423.1667.camel@penguin.yourdomain.com> Message-ID: <1213069205.29423.1677.camel@penguin.yourdomain.com> This is working for me with the idiom from tests/RUNTESTS: (setq *default-spec* `(:clsql (:sqlite3 ,(namestring (merge-pathnames #p"tests/bogus.db" (asdf:component-pathname (asdf:find-system 'elephant-tests)))))) ) Does /temp/blog.db already exist? Is it possible that this is a problem in an "upgrade" from a previous format? On Mon, 2008-06-09 at 21:35 -0500, Robert L. Read wrote: > I'll try this and report back. I haven't tested with sqlite3 since I > switched to a 64-bit computer. > > > On Mon, 2008-06-09 at 17:03 -0500, Sebastian Georges wrote: > > I tried to install elephant-unstable this morning (as drop-instance > > and some keyword arguments are not available in 0.9.1 i guess you are > > testing weblocks against unstable now), but i get this error when > > creating (elephant:open-store '(:clsql (:sqlite3 "/tmp/blog.db"))): > > > > "When attempting to set the slot's value to # (SETF > > of SLOT-VALUE), the slot DB-CLSQL::CLASS-ROOT is missing from the > > object #" > > > > Thank you for you help > > _______________________________________________ > > 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 From arnaudpourseb at gmail.com Tue Jun 10 09:24:58 2008 From: arnaudpourseb at gmail.com (Sebastian Georges) Date: Tue, 10 Jun 2008 04:24:58 -0500 Subject: [elephant-devel] Opening new database in unstable In-Reply-To: <1213069205.29423.1677.camel@penguin.yourdomain.com> References: <9f8fd8120806091503s663e45f9q7b6a4b93f57dc143@mail.gmail.com> <1213065303.29423.1667.camel@penguin.yourdomain.com> <1213069205.29423.1677.camel@penguin.yourdomain.com> Message-ID: <9f8fd8120806100224k2c7281a2kd7c56386ec5b2cbd@mail.gmail.com> Thank you for your answer. This particular test doesn't work either, for the same reason. The bases I intended to open are new. Elephant unstable and clsql are freshly installed; SBCL version is 1:1.0.11.0-1. -------------- next part -------------- An HTML attachment was scrubbed... URL: From eslick at media.mit.edu Tue Jun 10 16:44:52 2008 From: eslick at media.mit.edu (Ian Eslick) Date: Tue, 10 Jun 2008 12:44:52 -0400 Subject: [elephant-devel] CL-SQL and Postmodern & dup-btree Message-ID: Enabling many dup-btrees to be created/destroyed is an important performance issue for all the new features of elephant. I know Alex mentioned this should be possible but he hadn't done it yet. I'm not sure if CL-SQL has sufficient support yet (I think so based on what I remember of the design - this should fall out naturally). We should definitely ensure that this is the case for 1.0. Thanks, Ian From killerstorm at newmail.ru Tue Jun 10 18:24:26 2008 From: killerstorm at newmail.ru (Alex Mizrahi) Date: Tue, 10 Jun 2008 21:24:26 +0300 Subject: [elephant-devel] Re: CL-SQL and Postmodern & dup-btree References: Message-ID: IE> Enabling many dup-btrees to be created/destroyed is an important IE> performance issue for all the new features of elephant. dup-btrees? i thought it's about psets.. pset is created for each instance of object with set-value slot, so there could be tons of them. but dup-btrees are created only one per slot definition, so it's not critical. or i've missed something and dup-btrees are created for each instance in some case? btw, i haven't found any tests related to set-valued slots. do they exist? IE> I know Alex mentioned this should be possible but he hadn't done it yet. if we want to improve allocation of psets, that should be fairly easy with single dup-btree for all of them, and perhaps code will even be portable between cl-sql and postmodern. but improving allocation of dup-btrees will be sort of challenging.. From liori at exroot.org Wed Jun 11 12:41:54 2008 From: liori at exroot.org (Tomasz Melcer) Date: Wed, 11 Jun 2008 14:41:54 +0200 Subject: [elephant-devel] illegal flag specified to DB_ENV->set_timeout Message-ID: <484FC812.6080302@exroot.org> The testcase that reproduces this every time on my machine: #v+ #!/bin/sh mkdir -p database sbcl --eval '(require :elephant)' \ --eval '(elephant:open-store (list :BDB "'"$(pwd)"'/database/"))' #v- Full output is attached. I am a lisp newbie, so I am not sure if I am doing everything correctly. Thank you for help, Tomasz Melcer --------------010403030407090506010409 Content-Type: text/plain; name="typescript" Content-Transfer-Encoding: base64 Content-Disposition: inline; filename="typescript" U2NyaXB0IHN0YXJ0ZWQgb24gtnJvLCAxMSBjemUgMjAwOCwgMTQ6Mzg6NTUKc2gtMy4yJCAu L3Rlc3RjYXNlLnNoIA0KVGhpcyBpcyBTQkNMIDEuMC4xNy5kZWJpYW4sIGFuIGltcGxlbWVu dGF0aW9uIG9mIEFOU0kgQ29tbW9uIExpc3AuDQpNb3JlIGluZm9ybWF0aW9uIGFib3V0IFNC Q0wgaXMgYXZhaWxhYmxlIGF0IDxodHRwOi8vd3d3LnNiY2wub3JnLz4uDQoNClNCQ0wgaXMg ZnJlZSBzb2Z0d2FyZSwgcHJvdmlkZWQgYXMgaXMsIHdpdGggYWJzb2x1dGVseSBubyB3YXJy YW50eS4NCkl0IGlzIG1vc3RseSBpbiB0aGUgcHVibGljIGRvbWFpbjsgc29tZSBwb3J0aW9u cyBhcmUgcHJvdmlkZWQgdW5kZXINCkJTRC1zdHlsZSBsaWNlbnNlcy4gIFNlZSB0aGUgQ1JF RElUUyBhbmQgQ09QWUlORyBmaWxlcyBpbiB0aGUNCmRpc3RyaWJ1dGlvbiBmb3IgbW9yZSBp bmZvcm1hdGlvbi4NCjsgbG9hZGluZyBzeXN0ZW0gZGVmaW5pdGlvbiBmcm9tIC9ob21lL2xp b3JpLy5zYmNsL3N5c3RlbXMvY2wtYmFzZTY0LmFzZCBpbnRvDQo7ICM8UEFDS0FHRSAiQVNE RjAiPg0KOyByZWdpc3RlcmluZyAjPFNZU1RFTSBDTC1CQVNFNjQge0FFNTIzMzl9PiBhcyBD TC1CQVNFNjQNCjsgcmVnaXN0ZXJpbmcgIzxTWVNURU0gQ0wtQkFTRTY0LVRFU1RTIHtBRkEw RjMxfT4gYXMgQ0wtQkFTRTY0LVRFU1RTDQo7IGxvYWRpbmcgc3lzdGVtIGRlZmluaXRpb24g ZnJvbSAvaG9tZS9saW9yaS8uc2JjbC9zeXN0ZW1zL3VmZmkuYXNkIGludG8NCjsgIzxQQUNL QUdFICJBU0RGMCI+DQo7IHJlZ2lzdGVyaW5nICM8U1lTVEVNIFVGRkkge0IyMzI0Nzl9PiBh cyBVRkZJDQpBdHRlbXB0aW5nIHRvIGxvYWQgbGlibWVtdXRpbC5zby4uLg0KTG9hZGVkIC92 YXIvY2FjaGUvY29tbW9uLWxpc3AtY29udHJvbGxlci8xMDAwL3NiY2wvbG9jYWwvaG9tZS9s aW9yaS8uc2JjbC9zaXRlL2VsZXBoYW50L3NyYy9tZW11dGlsL2xpYm1lbXV0aWwuc28NCjsg bG9hZGluZyBzeXN0ZW0gZGVmaW5pdGlvbiBmcm9tIC9ob21lL2xpb3JpLy5zYmNsL3N5c3Rl bXMvZWxlLWJkYi5hc2QgaW50bw0KOyAjPFBBQ0tBR0UgIkFTREYwIj4NCg0KOyBpbjogTEFN QkRBIE5JTA0KOyAgICAgKEVMRS1CREItU1lTVEVNOjpHRVQtREItTkFNRSBFTEUtQkRCLVNZ U1RFTTo6QykNCjsgDQo7IGNhdWdodCBTVFlMRS1XQVJOSU5HOg0KOyAgIHVuZGVmaW5lZCBm dW5jdGlvbjogR0VULURCLU5BTUUNCg0KOyAgICAgKEVMRS1CREItU1lTVEVNOjpMSUJSQVJZ LURJUkVDVE9SSUVTIEVMRS1CREItU1lTVEVNOjpDKQ0KOyANCjsgY2F1Z2h0IFNUWUxFLVdB Uk5JTkc6DQo7ICAgdW5kZWZpbmVkIGZ1bmN0aW9uOiBMSUJSQVJZLURJUkVDVE9SSUVTDQoN CjsgDQo7IGNhdWdodCBTVFlMRS1XQVJOSU5HOg0KOyAgIFRoZXNlIGZ1bmN0aW9ucyBhcmUg dW5kZWZpbmVkOg0KOyAgICAgR0VULURCLU5BTUUgTElCUkFSWS1ESVJFQ1RPUklFUw0KOyAN CjsgY29tcGlsYXRpb24gdW5pdCBmaW5pc2hlZA0KOyAgIGNhdWdodCAzIFNUWUxFLVdBUk5J TkcgY29uZGl0aW9ucw0KDQo7IGluOiBMQU1CREEgTklMDQo7ICAgICAoRUxFLUJEQi1TWVNU RU06OkxJQlJBUlktRElSRUNUT1JJRVMgRUxFLUJEQi1TWVNURU06OkMpDQo7IA0KOyBjYXVn aHQgU1RZTEUtV0FSTklORzoNCjsgICB1bmRlZmluZWQgZnVuY3Rpb246IExJQlJBUlktRElS RUNUT1JJRVMNCg0KOyANCjsgY2F1Z2h0IFNUWUxFLVdBUk5JTkc6DQo7ICAgVGhpcyBmdW5j dGlvbiBpcyB1bmRlZmluZWQ6DQo7ICAgICBMSUJSQVJZLURJUkVDVE9SSUVTDQo7IA0KOyBj b21waWxhdGlvbiB1bml0IGZpbmlzaGVkDQo7ICAgY2F1Z2h0IDIgU1RZTEUtV0FSTklORyBj b25kaXRpb25zDQo7IHJlZ2lzdGVyaW5nICM8U1lTVEVNIEVMRS1CREIge0E5RjQzNTF9PiBh cyBFTEUtQkRCDQpBdHRlbXB0aW5nIHRvIGxvYWQgbGlibWVtdXRpbC5zby4uLg0KTG9hZGVk IC92YXIvY2FjaGUvY29tbW9uLWxpc3AtY29udHJvbGxlci8xMDAwL3NiY2wvbG9jYWwvaG9t ZS9saW9yaS8uc2JjbC9zaXRlL2VsZXBoYW50L3NyYy9tZW11dGlsL2xpYm1lbXV0aWwuc28N ClNUWUxFLVdBUk5JTkc6IHJlZGVmaW5pbmcgQ09QWS1CVUZTIGluIERFRlVODQpTVFlMRS1X QVJOSU5HOiByZWRlZmluaW5nIE1BS0UtQlVGRkVSLVNUUkVBTSBpbiBERUZVTg0KU1RZTEUt V0FSTklORzogcmVkZWZpbmluZyBHUkFCLUJVRkZFUi1TVFJFQU0gaW4gREVGVU4NClNUWUxF LVdBUk5JTkc6IHJlZGVmaW5pbmcgUkVUVVJOLUJVRkZFUi1TVFJFQU0gaW4gREVGVU4NClNU WUxFLVdBUk5JTkc6IHJlZGVmaW5pbmcgUkVBRC1JTlQzMiBpbiBERUZVTg0KU1RZTEUtV0FS TklORzogcmVkZWZpbmluZyBSRUFELUlOVDY0IGluIERFRlVODQpTVFlMRS1XQVJOSU5HOiBy ZWRlZmluaW5nIFJFQUQtVUlOVDMyIGluIERFRlVODQpTVFlMRS1XQVJOSU5HOiByZWRlZmlu aW5nIFJFQUQtVUlOVDY0IGluIERFRlVODQpTVFlMRS1XQVJOSU5HOiByZWRlZmluaW5nIFJF QUQtRkxPQVQgaW4gREVGVU4NClNUWUxFLVdBUk5JTkc6IHJlZGVmaW5pbmcgUkVBRC1ET1VC TEUgaW4gREVGVU4NClNUWUxFLVdBUk5JTkc6IHJlZGVmaW5pbmcgV1JJVEUtSU5UMzIgaW4g REVGVU4NClNUWUxFLVdBUk5JTkc6IHJlZGVmaW5pbmcgV1JJVEUtSU5UNjQgaW4gREVGVU4N ClNUWUxFLVdBUk5JTkc6IHJlZGVmaW5pbmcgV1JJVEUtVUlOVDMyIGluIERFRlVODQpTVFlM RS1XQVJOSU5HOiByZWRlZmluaW5nIFdSSVRFLVVJTlQ2NCBpbiBERUZVTg0KU1RZTEUtV0FS TklORzogcmVkZWZpbmluZyBXUklURS1GTE9BVCBpbiBERUZVTg0KU1RZTEUtV0FSTklORzog cmVkZWZpbmluZyBXUklURS1ET1VCTEUgaW4gREVGVU4NClNUWUxFLVdBUk5JTkc6IHJlZGVm aW5pbmcgT0ZGU0VULUNIQVItUE9JTlRFUiBpbiBERUZVTg0KU1RZTEUtV0FSTklORzogcmVk ZWZpbmluZyAlQ09QWS1TVFItVE8tQlVGIGluIERFRlVODQpTVFlMRS1XQVJOSU5HOiByZWRl ZmluaW5nIENPUFktU1RSLVRPLUJVRiBpbiBERUZVTg0KU1RZTEUtV0FSTklORzogcmVkZWZp bmluZyBQUk9DRVNTLVNUUlVDVC1TTE9ULURFRlMgaW4gREVGVU4NClNUWUxFLVdBUk5JTkc6 IHJlZGVmaW5pbmcgUkVTSVpFLUJVRkZFUi1TVFJFQU0gaW4gREVGVU4NClNUWUxFLVdBUk5J Tkc6IHJlZGVmaW5pbmcgUkVTSVpFLUJVRkZFUi1TVFJFQU0tTk8tQ09QWSBpbiBERUZVTg0K U1RZTEUtV0FSTklORzogcmVkZWZpbmluZyBSRVNFVC1CVUZGRVItU1RSRUFNIGluIERFRlVO DQpTVFlMRS1XQVJOSU5HOiByZWRlZmluaW5nIEJVRkZFUi1XUklURS1CWVRFIGluIERFRlVO DQpTVFlMRS1XQVJOSU5HOiByZWRlZmluaW5nIEJVRkZFUi1XUklURS1JTlQzMiBpbiBERUZV Tg0KU1RZTEUtV0FSTklORzogcmVkZWZpbmluZyBCVUZGRVItV1JJVEUtVUlOVDMyIGluIERF RlVODQpTVFlMRS1XQVJOSU5HOiByZWRlZmluaW5nIEJVRkZFUi1XUklURS1JTlQ2NCBpbiBE RUZVTg0KU1RZTEUtV0FSTklORzogcmVkZWZpbmluZyBCVUZGRVItV1JJVEUtVUlOVDY0IGlu IERFRlVODQpTVFlMRS1XQVJOSU5HOiByZWRlZmluaW5nIEJVRkZFUi1XUklURS1GTE9BVCBp biBERUZVTg0KU1RZTEUtV0FSTklORzogcmVkZWZpbmluZyBCVUZGRVItV1JJVEUtRE9VQkxF IGluIERFRlVODQpTVFlMRS1XQVJOSU5HOiByZWRlZmluaW5nIEJVRkZFUi1XUklURS1TVFJJ TkcgaW4gREVGVU4NClNUWUxFLVdBUk5JTkc6IHJlZGVmaW5pbmcgQlVGRkVSLVJFQUQtQllU RSBpbiBERUZVTg0KU1RZTEUtV0FSTklORzogcmVkZWZpbmluZyBCVUZGRVItUkVBRC1CWVRF LVZFQ1RPUiBpbiBERUZVTg0KU1RZTEUtV0FSTklORzogcmVkZWZpbmluZyBCVUZGRVItV1JJ VEUtQllURS1WRUNUT1IgaW4gREVGVU4NClNUWUxFLVdBUk5JTkc6IHJlZGVmaW5pbmcgQlVG RkVSLVJFQUQtVE8tQVJSQVktT0ZGU0VUIGluIERFRlVODQpTVFlMRS1XQVJOSU5HOiByZWRl ZmluaW5nIEJVRkZFUi1XUklURS1GUk9NLUFSUkFZLU9GRlNFVCBpbiBERUZVTg0KU1RZTEUt V0FSTklORzogcmVkZWZpbmluZyBCVUZGRVItV1JJVEUtT0lEIGluIERFRlVODQpTVFlMRS1X QVJOSU5HOiByZWRlZmluaW5nIEJVRkZFUi1SRUFELU9JRCBpbiBERUZVTg0KU1RZTEUtV0FS TklORzogcmVkZWZpbmluZyBCVUZGRVItUkVBRC1JTlQgaW4gREVGVU4NClNUWUxFLVdBUk5J Tkc6IHJlZGVmaW5pbmcgQlVGRkVSLVJFQUQtRklYTlVNIGluIERFRlVODQpTVFlMRS1XQVJO SU5HOiByZWRlZmluaW5nIEJVRkZFUi1XUklURS1JTlQgaW4gREVGVU4NClNUWUxFLVdBUk5J Tkc6IHJlZGVmaW5pbmcgQlVGRkVSLVJFQUQtVUlOVCBpbiBERUZVTg0KU1RZTEUtV0FSTklO RzogcmVkZWZpbmluZyBCVUZGRVItV1JJVEUtVUlOVCBpbiBERUZVTg0KU1RZTEUtV0FSTklO RzogcmVkZWZpbmluZyBCVUZGRVItUkVBRC1GSVhOVU0zMiBpbiBERUZVTg0KU1RZTEUtV0FS TklORzogcmVkZWZpbmluZyBCVUZGRVItUkVBRC1JTlQzMiBpbiBERUZVTg0KU1RZTEUtV0FS TklORzogcmVkZWZpbmluZyBCVUZGRVItUkVBRC1VSU5UMzIgaW4gREVGVU4NClNUWUxFLVdB Uk5JTkc6IHJlZGVmaW5pbmcgQlVGRkVSLVJFQUQtRklYTlVNNjQgaW4gREVGVU4NClNUWUxF LVdBUk5JTkc6IHJlZGVmaW5pbmcgQlVGRkVSLVJFQUQtSU5UNjQgaW4gREVGVU4NClNUWUxF LVdBUk5JTkc6IHJlZGVmaW5pbmcgQlVGRkVSLVJFQUQtVUlOVDY0IGluIERFRlVODQpTVFlM RS1XQVJOSU5HOiByZWRlZmluaW5nIEJVRkZFUi1SRUFELUZMT0FUIGluIERFRlVODQpTVFlM RS1XQVJOSU5HOiByZWRlZmluaW5nIEJVRkZFUi1SRUFELURPVUJMRSBpbiBERUZVTg0KU1RZ TEUtV0FSTklORzogcmVkZWZpbmluZyBCVUZGRVItUkVBRC1VQ1MxLVNUUklORyBpbiBERUZV Tg0KU1RZTEUtV0FSTklORzogcmVkZWZpbmluZyBCVUZGRVItUkVBRC1VQ1M0LVNUUklORyBp biBERUZVTg0KU1RZTEUtV0FSTklORzogcmVkZWZpbmluZyBMSVRUTEUtRU5ESUFOLVAgaW4g REVGVU4NCkxvYWRpbmcgL3Vzci9saWIvbGliZGItNC41LnNvDQpBdHRlbXB0aW5nIHRvIGxv YWQgbGliYmVya2VsZXktZGIuc28uLi4NCkxvYWRlZCAvdmFyL2NhY2hlL2NvbW1vbi1saXNw LWNvbnRyb2xsZXIvMTAwMC9zYmNsL2xvY2FsL2hvbWUvbGlvcmkvLnNiY2wvc2l0ZS9lbGVw aGFudC9zcmMvZGItYmRiL2xpYmJlcmtlbGV5LWRiLnNvDQpTVFlMRS1XQVJOSU5HOiBJbXBs aWNpdGx5IGNyZWF0aW5nIG5ldyBnZW5lcmljIGZ1bmN0aW9uIFNUQVJULURFQURMT0NLLURF VEVDVE9SLg0KU1RZTEUtV0FSTklORzogSW1wbGljaXRseSBjcmVhdGluZyBuZXcgZ2VuZXJp YyBmdW5jdGlvbiBTVE9QLURFQURMT0NLLURFVEVDVE9SLg0KU1RZTEUtV0FSTklORzogSW1w bGljaXRseSBjcmVhdGluZyBuZXcgZ2VuZXJpYyBmdW5jdGlvbiBDSEVDS1BPSU5ULg0KU1RZ TEUtV0FSTklORzogSW1wbGljaXRseSBjcmVhdGluZyBuZXcgZ2VuZXJpYyBmdW5jdGlvbiBC VUlMRC1CVFJFRS1JTkRFWC4NClNUWUxFLVdBUk5JTkc6IEltcGxpY2l0bHkgY3JlYXRpbmcg bmV3IGdlbmVyaWMgZnVuY3Rpb24gUE9QVUxBVEUuDQppbGxlZ2FsIGZsYWcgc3BlY2lmaWVk IHRvIERCX0VOVi0+c2V0X3RpbWVvdXQNCg0KZGVidWdnZXIgaW52b2tlZCBvbiBhIFNJTVBM RS1FUlJPUiBpbiB0aHJlYWQgIzxUSFJFQUQgImluaXRpYWwgdGhyZWFkIiB7QTg3NDkxOX0+ Og0KICBFcnJvciBkdXJpbmcgcHJvY2Vzc2luZyBvZiAtLWV2YWwgb3B0aW9uICIoZWxlcGhh bnQ6b3Blbi1zdG9yZSAobGlzdCA6QkRCIFwiL2hvbWUvbGlvcmkvdG1wL3Rlc3RjYXNlL2Rh dGFiYXNlL1wiKSkiOg0KDQooQSBTQi1JTlQ6Qy1TVFJJTkctREVDT0RJTkctRVJST1Igd2Fz IGNhdWdodCB3aGVuIHRyeWluZyB0byBwcmludA0KKkRFQlVHLUNPTkRJVElPTiogd2hlbiBl bnRlcmluZyB0aGUgZGVidWdnZXIuIFByaW50aW5nIHdhcyBhYm9ydGVkIGFuZCB0aGUNClNC LUlOVDpDLVNUUklORy1ERUNPRElORy1FUlJPUiB3YXMgc3RvcmVkIGluDQpTQi1ERUJVRzo6 Kk5FU1RFRC1ERUJVRy1DT05ESVRJT04qLikNCg0KVHlwZSBIRUxQIGZvciBkZWJ1Z2dlciBo ZWxwLCBvciAoU0ItRVhUOlFVSVQpIHRvIGV4aXQgZnJvbSBTQkNMLg0KDQpyZXN0YXJ0cyAo aW52b2thYmxlIGJ5IG51bWJlciBvciBieSBwb3NzaWJseS1hYmJyZXZpYXRlZCBuYW1lKToN CiAgMDogW0NPTlRJTlVFXSBJZ25vcmUgYW5kIGNvbnRpbnVlIHdpdGggbmV4dCAtLWV2YWwg b3B0aW9uLg0KICAxOiBbQUJPUlQgICBdIFNraXAgcmVzdCBvZiAtLWV2YWwgb3B0aW9ucy4N CiAgMjogICAgICAgICAgICBTa2lwIHRvIHRvcGxldmVsIFJFQUQvRVZBTC9QUklOVCBsb29w Lg0KICAzOiBbUVVJVCAgICBdIFF1aXQgU0JDTCAoY2FsbGluZyAjJ1FVSVQsIGtpbGxpbmcg dGhlIHByb2Nlc3MpLg0KDQooKExBTUJEQSAoU0ItSU1QTDo6RSkpICM8REItQkRCOjpEQi1F UlJPUiB7QjJDRjAwOX0+KQ0KMF0gKiBzaC0zLjIkIGV4aXQNCgpTY3JpcHQgZG9uZSBvbiC2 cm8sIDExIGN6ZSAyMDA4LCAxNDozOTowNwo= --------------010403030407090506010409-- -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 260 bytes Desc: OpenPGP digital signature URL: From eslick at media.mit.edu Wed Jun 11 13:06:04 2008 From: eslick at media.mit.edu (Ian Eslick) Date: Wed, 11 Jun 2008 09:06:04 -0400 Subject: [elephant-devel] illegal flag specified to DB_ENV->set_timeout In-Reply-To: <484FC812.6080302@exroot.org> References: <484FC812.6080302@exroot.org> Message-ID: Which darcs tree and BDB version are you using? What are the contents of your my-config.sexp file? Ian On Jun 11, 2008, at 8:41 AM, Tomasz Melcer wrote: > The testcase that reproduces this every time on my machine: > > #v+ > #!/bin/sh > mkdir -p database > sbcl --eval '(require :elephant)' \ > --eval '(elephant:open-store (list :BDB "'"$(pwd)"'/database/"))' > #v- > > Full output is attached. > > I am a lisp newbie, so I am not sure if I am doing everything > correctly. > > Thank you for help, > Tomasz Melcer > > --------------010403030407090506010409 > Content-Type: text/plain; > name="typescript" > Content-Transfer-Encoding: base64 > Content-Disposition: inline; > filename="typescript" > > U2NyaXB0IHN0YXJ0ZWQgb24gtnJvLCAxMSBjemUgMjAwOCwgMTQ6Mzg6NTUKc2gtMy4yJCAu > L3Rlc3RjYXNlLnNoIA0KVGhpcyBpcyBTQkNMIDEuMC4xNy5kZWJpYW4sIGFuIGltcGxlbWVu > dGF0aW9uIG9mIEFOU0kgQ29tbW9uIExpc3AuDQpNb3JlIGluZm9ybWF0aW9uIGFib3V0IFNC > Q0wgaXMgYXZhaWxhYmxlIGF0IDxodHRwOi8vd3d3LnNiY2wub3JnLz4uDQoNClNCQ0wgaXMg > ZnJlZSBzb2Z0d2FyZSwgcHJvdmlkZWQgYXMgaXMsIHdpdGggYWJzb2x1dGVseSBubyB3YXJy > YW50eS4NCkl0IGlzIG1vc3RseSBpbiB0aGUgcHVibGljIGRvbWFpbjsgc29tZSBwb3J0aW9u > cyBhcmUgcHJvdmlkZWQgdW5kZXINCkJTRC1zdHlsZSBsaWNlbnNlcy4gIFNlZSB0aGUgQ1JF > RElUUyBhbmQgQ09QWUlORyBmaWxlcyBpbiB0aGUNCmRpc3RyaWJ1dGlvbiBmb3IgbW9yZSBp > bmZvcm1hdGlvbi4NCjsgbG9hZGluZyBzeXN0ZW0gZGVmaW5pdGlvbiBmcm9tIC9ob21lL2xp > b3JpLy5zYmNsL3N5c3RlbXMvY2wtYmFzZTY0LmFzZCBpbnRvDQo7ICM8UEFDS0FHRSAiQVNE > RjAiPg0KOyByZWdpc3RlcmluZyAjPFNZU1RFTSBDTC1CQVNFNjQge0FFNTIzMzl9PiBhcyBD > TC1CQVNFNjQNCjsgcmVnaXN0ZXJpbmcgIzxTWVNURU0gQ0wtQkFTRTY0LVRFU1RTIHtBRkEw > RjMxfT4gYXMgQ0wtQkFTRTY0LVRFU1RTDQo7IGxvYWRpbmcgc3lzdGVtIGRlZmluaXRpb24g > ZnJvbSAvaG9tZS9saW9yaS8uc2JjbC9zeXN0ZW1zL3VmZmkuYXNkIGludG8NCjsgIzxQQUNL > QUdFICJBU0RGMCI > +DQo7IHJlZ2lzdGVyaW5nICM8U1lTVEVNIFVGRkkge0IyMzI0Nzl9PiBh > cyBVRkZJDQpBdHRlbXB0aW5nIHRvIGxvYWQgbGlibWVtdXRpbC5zby4uLg0KTG9hZGVkIC92 > YXIvY2FjaGUvY29tbW9uLWxpc3AtY29udHJvbGxlci8xMDAwL3NiY2wvbG9jYWwvaG9tZS9s > aW9yaS8uc2JjbC9zaXRlL2VsZXBoYW50L3NyYy9tZW11dGlsL2xpYm1lbXV0aWwuc28NCjsg > bG9hZGluZyBzeXN0ZW0gZGVmaW5pdGlvbiBmcm9tIC9ob21lL2xpb3JpLy5zYmNsL3N5c3Rl > bXMvZWxlLWJkYi5hc2QgaW50bw0KOyAjPFBBQ0tBR0UgIkFTREYwIj4NCg0KOyBpbjogTEFN > QkRBIE5JTA0KOyAgICAgKEVMRS1CREItU1lTVEVNOjpHRVQtREItTkFNRSBFTEUtQkRCLVNZ > U1RFTTo6QykNCjsgDQo7IGNhdWdodCBTVFlMRS1XQVJOSU5HOg0KOyAgIHVuZGVmaW5lZCBm > dW5jdGlvbjogR0VULURCLU5BTUUNCg0KOyAgICAgKEVMRS1CREItU1lTVEVNOjpMSUJSQVJZ > LURJUkVDVE9SSUVTIEVMRS1CREItU1lTVEVNOjpDKQ0KOyANCjsgY2F1Z2h0IFNUWUxFLVdB > Uk5JTkc6DQo7ICAgdW5kZWZpbmVkIGZ1bmN0aW9uOiBMSUJSQVJZLURJUkVDVE9SSUVTDQoN > CjsgDQo7IGNhdWdodCBTVFlMRS1XQVJOSU5HOg0KOyAgIFRoZXNlIGZ1bmN0aW9ucyBhcmUg > dW5kZWZpbmVkOg0KOyAgICAgR0VULURCLU5BTUUgTElCUkFSWS1ESVJFQ1RPUklFUw0KOyAN > CjsgY29tcGlsYXRpb24gdW5pdCBmaW5pc2hlZA0KOyAgIGNhdWdodCAzIFNUWUxFLVdBUk5J > TkcgY29uZGl0aW9ucw0KDQo7IGluOiBMQU1CREEgTklMDQo7ICAgICAoRUxFLUJEQi1TWVNU > RU06OkxJQlJBUlktRElSRUNUT1JJRVMgRUxFLUJEQi1TWVNURU06OkMpDQo7IA0KOyBjYXVn > aHQgU1RZTEUtV0FSTklORzoNCjsgICB1bmRlZmluZWQgZnVuY3Rpb246IExJQlJBUlktRElS > RUNUT1JJRVMNCg0KOyANCjsgY2F1Z2h0IFNUWUxFLVdBUk5JTkc6DQo7ICAgVGhpcyBmdW5j > dGlvbiBpcyB1bmRlZmluZWQ6DQo7ICAgICBMSUJSQVJZLURJUkVDVE9SSUVTDQo7IA0KOyBj > b21waWxhdGlvbiB1bml0IGZpbmlzaGVkDQo7ICAgY2F1Z2h0IDIgU1RZTEUtV0FSTklORyBj > b25kaXRpb25zDQo7IHJlZ2lzdGVyaW5nICM8U1lTVEVNIEVMRS1CREIge0E5RjQzNTF9PiBh > cyBFTEUtQkRCDQpBdHRlbXB0aW5nIHRvIGxvYWQgbGlibWVtdXRpbC5zby4uLg0KTG9hZGVk > IC92YXIvY2FjaGUvY29tbW9uLWxpc3AtY29udHJvbGxlci8xMDAwL3NiY2wvbG9jYWwvaG9t > ZS9saW9yaS8uc2JjbC9zaXRlL2VsZXBoYW50L3NyYy9tZW11dGlsL2xpYm1lbXV0aWwuc28N > ClNUWUxFLVdBUk5JTkc6IHJlZGVmaW5pbmcgQ09QWS1CVUZTIGluIERFRlVODQpTVFlMRS1X > QVJOSU5HOiByZWRlZmluaW5nIE1BS0UtQlVGRkVSLVNUUkVBTSBpbiBERUZVTg0KU1RZTEUt > V0FSTklORzogcmVkZWZpbmluZyBHUkFCLUJVRkZFUi1TVFJFQU0gaW4gREVGVU4NClNUWUxF > LVdBUk5JTkc6IHJlZGVmaW5pbmcgUkVUVVJOLUJVRkZFUi1TVFJFQU0gaW4gREVGVU4NClNU > WUxFLVdBUk5JTkc6IHJlZGVmaW5pbmcgUkVBRC1JTlQzMiBpbiBERUZVTg0KU1RZTEUtV0FS > TklORzogcmVkZWZpbmluZyBSRUFELUlOVDY0IGluIERFRlVODQpTVFlMRS1XQVJOSU5HOiBy > ZWRlZmluaW5nIFJFQUQtVUlOVDMyIGluIERFRlVODQpTVFlMRS1XQVJOSU5HOiByZWRlZmlu > aW5nIFJFQUQtVUlOVDY0IGluIERFRlVODQpTVFlMRS1XQVJOSU5HOiByZWRlZmluaW5nIFJF > QUQtRkxPQVQgaW4gREVGVU4NClNUWUxFLVdBUk5JTkc6IHJlZGVmaW5pbmcgUkVBRC1ET1VC > TEUgaW4gREVGVU4NClNUWUxFLVdBUk5JTkc6IHJlZGVmaW5pbmcgV1JJVEUtSU5UMzIgaW4g > REVGVU4NClNUWUxFLVdBUk5JTkc6IHJlZGVmaW5pbmcgV1JJVEUtSU5UNjQgaW4gREVGVU4N > ClNUWUxFLVdBUk5JTkc6IHJlZGVmaW5pbmcgV1JJVEUtVUlOVDMyIGluIERFRlVODQpTVFlM > RS1XQVJOSU5HOiByZWRlZmluaW5nIFdSSVRFLVVJTlQ2NCBpbiBERUZVTg0KU1RZTEUtV0FS > TklORzogcmVkZWZpbmluZyBXUklURS1GTE9BVCBpbiBERUZVTg0KU1RZTEUtV0FSTklORzog > cmVkZWZpbmluZyBXUklURS1ET1VCTEUgaW4gREVGVU4NClNUWUxFLVdBUk5JTkc6IHJlZGVm > aW5pbmcgT0ZGU0VULUNIQVItUE9JTlRFUiBpbiBERUZVTg0KU1RZTEUtV0FSTklORzogcmVk > ZWZpbmluZyAlQ09QWS1TVFItVE8tQlVGIGluIERFRlVODQpTVFlMRS1XQVJOSU5HOiByZWRl > ZmluaW5nIENPUFktU1RSLVRPLUJVRiBpbiBERUZVTg0KU1RZTEUtV0FSTklORzogcmVkZWZp > bmluZyBQUk9DRVNTLVNUUlVDVC1TTE9ULURFRlMgaW4gREVGVU4NClNUWUxFLVdBUk5JTkc6 > IHJlZGVmaW5pbmcgUkVTSVpFLUJVRkZFUi1TVFJFQU0gaW4gREVGVU4NClNUWUxFLVdBUk5J > Tkc6IHJlZGVmaW5pbmcgUkVTSVpFLUJVRkZFUi1TVFJFQU0tTk8tQ09QWSBpbiBERUZVTg0K > U1RZTEUtV0FSTklORzogcmVkZWZpbmluZyBSRVNFVC1CVUZGRVItU1RSRUFNIGluIERFRlVO > DQpTVFlMRS1XQVJOSU5HOiByZWRlZmluaW5nIEJVRkZFUi1XUklURS1CWVRFIGluIERFRlVO > DQpTVFlMRS1XQVJOSU5HOiByZWRlZmluaW5nIEJVRkZFUi1XUklURS1JTlQzMiBpbiBERUZV > Tg0KU1RZTEUtV0FSTklORzogcmVkZWZpbmluZyBCVUZGRVItV1JJVEUtVUlOVDMyIGluIERF > RlVODQpTVFlMRS1XQVJOSU5HOiByZWRlZmluaW5nIEJVRkZFUi1XUklURS1JTlQ2NCBpbiBE > RUZVTg0KU1RZTEUtV0FSTklORzogcmVkZWZpbmluZyBCVUZGRVItV1JJVEUtVUlOVDY0IGlu > IERFRlVODQpTVFlMRS1XQVJOSU5HOiByZWRlZmluaW5nIEJVRkZFUi1XUklURS1GTE9BVCBp > biBERUZVTg0KU1RZTEUtV0FSTklORzogcmVkZWZpbmluZyBCVUZGRVItV1JJVEUtRE9VQkxF > IGluIERFRlVODQpTVFlMRS1XQVJOSU5HOiByZWRlZmluaW5nIEJVRkZFUi1XUklURS1TVFJJ > TkcgaW4gREVGVU4NClNUWUxFLVdBUk5JTkc6IHJlZGVmaW5pbmcgQlVGRkVSLVJFQUQtQllU > RSBpbiBERUZVTg0KU1RZTEUtV0FSTklORzogcmVkZWZpbmluZyBCVUZGRVItUkVBRC1CWVRF > LVZFQ1RPUiBpbiBERUZVTg0KU1RZTEUtV0FSTklORzogcmVkZWZpbmluZyBCVUZGRVItV1JJ > VEUtQllURS1WRUNUT1IgaW4gREVGVU4NClNUWUxFLVdBUk5JTkc6IHJlZGVmaW5pbmcgQlVG > RkVSLVJFQUQtVE8tQVJSQVktT0ZGU0VUIGluIERFRlVODQpTVFlMRS1XQVJOSU5HOiByZWRl > ZmluaW5nIEJVRkZFUi1XUklURS1GUk9NLUFSUkFZLU9GRlNFVCBpbiBERUZVTg0KU1RZTEUt > V0FSTklORzogcmVkZWZpbmluZyBCVUZGRVItV1JJVEUtT0lEIGluIERFRlVODQpTVFlMRS1X > QVJOSU5HOiByZWRlZmluaW5nIEJVRkZFUi1SRUFELU9JRCBpbiBERUZVTg0KU1RZTEUtV0FS > TklORzogcmVkZWZpbmluZyBCVUZGRVItUkVBRC1JTlQgaW4gREVGVU4NClNUWUxFLVdBUk5J > Tkc6IHJlZGVmaW5pbmcgQlVGRkVSLVJFQUQtRklYTlVNIGluIERFRlVODQpTVFlMRS1XQVJO > SU5HOiByZWRlZmluaW5nIEJVRkZFUi1XUklURS1JTlQgaW4gREVGVU4NClNUWUxFLVdBUk5J > Tkc6IHJlZGVmaW5pbmcgQlVGRkVSLVJFQUQtVUlOVCBpbiBERUZVTg0KU1RZTEUtV0FSTklO > RzogcmVkZWZpbmluZyBCVUZGRVItV1JJVEUtVUlOVCBpbiBERUZVTg0KU1RZTEUtV0FSTklO > RzogcmVkZWZpbmluZyBCVUZGRVItUkVBRC1GSVhOVU0zMiBpbiBERUZVTg0KU1RZTEUtV0FS > TklORzogcmVkZWZpbmluZyBCVUZGRVItUkVBRC1JTlQzMiBpbiBERUZVTg0KU1RZTEUtV0FS > TklORzogcmVkZWZpbmluZyBCVUZGRVItUkVBRC1VSU5UMzIgaW4gREVGVU4NClNUWUxFLVdB > Uk5JTkc6IHJlZGVmaW5pbmcgQlVGRkVSLVJFQUQtRklYTlVNNjQgaW4gREVGVU4NClNUWUxF > LVdBUk5JTkc6IHJlZGVmaW5pbmcgQlVGRkVSLVJFQUQtSU5UNjQgaW4gREVGVU4NClNUWUxF > LVdBUk5JTkc6IHJlZGVmaW5pbmcgQlVGRkVSLVJFQUQtVUlOVDY0IGluIERFRlVODQpTVFlM > RS1XQVJOSU5HOiByZWRlZmluaW5nIEJVRkZFUi1SRUFELUZMT0FUIGluIERFRlVODQpTVFlM > RS1XQVJOSU5HOiByZWRlZmluaW5nIEJVRkZFUi1SRUFELURPVUJMRSBpbiBERUZVTg0KU1RZ > TEUtV0FSTklORzogcmVkZWZpbmluZyBCVUZGRVItUkVBRC1VQ1MxLVNUUklORyBpbiBERUZV > Tg0KU1RZTEUtV0FSTklORzogcmVkZWZpbmluZyBCVUZGRVItUkVBRC1VQ1M0LVNUUklORyBp > biBERUZVTg0KU1RZTEUtV0FSTklORzogcmVkZWZpbmluZyBMSVRUTEUtRU5ESUFOLVAgaW4g > REVGVU4NCkxvYWRpbmcgL3Vzci9saWIvbGliZGItNC41LnNvDQpBdHRlbXB0aW5nIHRvIGxv > YWQgbGliYmVya2VsZXktZGIuc28uLi4NCkxvYWRlZCAvdmFyL2NhY2hlL2NvbW1vbi1saXNw > LWNvbnRyb2xsZXIvMTAwMC9zYmNsL2xvY2FsL2hvbWUvbGlvcmkvLnNiY2wvc2l0ZS9lbGVw > aGFudC9zcmMvZGItYmRiL2xpYmJlcmtlbGV5LWRiLnNvDQpTVFlMRS1XQVJOSU5HOiBJbXBs > aWNpdGx5IGNyZWF0aW5nIG5ldyBnZW5lcmljIGZ1bmN0aW9uIFNUQVJULURFQURMT0NLLURF > VEVDVE9SLg0KU1RZTEUtV0FSTklORzogSW1wbGljaXRseSBjcmVhdGluZyBuZXcgZ2VuZXJp > YyBmdW5jdGlvbiBTVE9QLURFQURMT0NLLURFVEVDVE9SLg0KU1RZTEUtV0FSTklORzogSW1w > bGljaXRseSBjcmVhdGluZyBuZXcgZ2VuZXJpYyBmdW5jdGlvbiBDSEVDS1BPSU5ULg0KU1RZ > TEUtV0FSTklORzogSW1wbGljaXRseSBjcmVhdGluZyBuZXcgZ2VuZXJpYyBmdW5jdGlvbiBC > VUlMRC1CVFJFRS1JTkRFWC4NClNUWUxFLVdBUk5JTkc6IEltcGxpY2l0bHkgY3JlYXRpbmcg > bmV3IGdlbmVyaWMgZnVuY3Rpb24gUE9QVUxBVEUuDQppbGxlZ2FsIGZsYWcgc3BlY2lmaWVk > IHRvIERCX0VOVi0 > +c2V0X3RpbWVvdXQNCg0KZGVidWdnZXIgaW52b2tlZCBvbiBhIFNJTVBM > RS1FUlJPUiBpbiB0aHJlYWQgIzxUSFJFQUQgImluaXRpYWwgdGhyZWFkIiB7QTg3NDkxOX0 > + > Og0KICBFcnJvciBkdXJpbmcgcHJvY2Vzc2luZyBvZiAtLWV2YWwgb3B0aW9uICIoZWxlcGhh > bnQ6b3Blbi1zdG9yZSAobGlzdCA6QkRCIFwiL2hvbWUvbGlvcmkvdG1wL3Rlc3RjYXNlL2Rh > dGFiYXNlL1wiKSkiOg0KDQooQSBTQi1JTlQ6Qy1TVFJJTkctREVDT0RJTkctRVJST1Igd2Fz > IGNhdWdodCB3aGVuIHRyeWluZyB0byBwcmludA0KKkRFQlVHLUNPTkRJVElPTiogd2hlbiBl > bnRlcmluZyB0aGUgZGVidWdnZXIuIFByaW50aW5nIHdhcyBhYm9ydGVkIGFuZCB0aGUNClNC > LUlOVDpDLVNUUklORy1ERUNPRElORy1FUlJPUiB3YXMgc3RvcmVkIGluDQpTQi1ERUJVRzo6 > Kk5FU1RFRC1ERUJVRy1DT05ESVRJT04qLikNCg0KVHlwZSBIRUxQIGZvciBkZWJ1Z2dlciBo > ZWxwLCBvciAoU0ItRVhUOlFVSVQpIHRvIGV4aXQgZnJvbSBTQkNMLg0KDQpyZXN0YXJ0cyAo > aW52b2thYmxlIGJ5IG51bWJlciBvciBieSBwb3NzaWJseS1hYmJyZXZpYXRlZCBuYW1lKToN > CiAgMDogW0NPTlRJTlVFXSBJZ25vcmUgYW5kIGNvbnRpbnVlIHdpdGggbmV4dCAtLWV2YWwg > b3B0aW9uLg0KICAxOiBbQUJPUlQgICBdIFNraXAgcmVzdCBvZiAtLWV2YWwgb3B0aW9ucy4N > CiAgMjogICAgICAgICAgICBTa2lwIHRvIHRvcGxldmVsIFJFQUQvRVZBTC9QUklOVCBsb29w > Lg0KICAzOiBbUVVJVCAgICBdIFF1aXQgU0JDTCAoY2FsbGluZyAjJ1FVSVQsIGtpbGxpbmcg > dGhlIHByb2Nlc3MpLg0KDQooKExBTUJEQSAoU0ItSU1QTDo6RSkpICM8REItQkRCOjpEQi1F > UlJPUiB7QjJDRjAwOX0 > +KQ0KMF0gKiBzaC0zLjIkIGV4aXQNCgpTY3JpcHQgZG9uZSBvbiC2 > cm8sIDExIGN6ZSAyMDA4LCAxNDozOTowNwo= > --------------010403030407090506010409-- > _______________________________________________ > elephant-devel site list > elephant-devel at common-lisp.net > http://common-lisp.net/mailman/listinfo/elephant-devel From liori at exroot.org Wed Jun 11 13:37:55 2008 From: liori at exroot.org (Tomasz Melcer) Date: Wed, 11 Jun 2008 15:37:55 +0200 Subject: [elephant-devel] illegal flag specified to DB_ENV->set_timeout In-Reply-To: References: <484FC812.6080302@exroot.org> Message-ID: <484FD533.6040300@exroot.org> Ian Eslick pisze: > Which darcs tree and BDB version are you using? What are the contents > of your my-config.sexp file? Oh, I'm sorry, somehow beginning of the message is missing. SBCL 1:1.0.17.0-1 (debian/sid package) libdb4.5 4.5.20-12 (debian/sid package), 4.6 gives the same result elephant installed automagically using (asdf-install:install :elephant) today, I don't see any version information in the source tree. I see cvs directories inside the source tree and no darcs directories, so it is possible that I've got 0.9. 0.9.1 works ok. Thank you. Tomasz Melcer From eslick at media.mit.edu Wed Jun 11 13:58:00 2008 From: eslick at media.mit.edu (Ian Eslick) Date: Wed, 11 Jun 2008 09:58:00 -0400 Subject: [elephant-devel] illegal flag specified to DB_ENV->set_timeout In-Reply-To: <484FD533.6040300@exroot.org> References: <484FC812.6080302@exroot.org> <484FD533.6040300@exroot.org> Message-ID: <9A52E9EE-298C-4ABC-96A2-55137B41F972@media.mit.edu> You are saying that release 0.9.1 via darcs does not exhibit this error, but the asdf-installable release (0.9) does? On Jun 11, 2008, at 9:37 AM, Tomasz Melcer wrote: > Ian Eslick pisze: >> Which darcs tree and BDB version are you using? What are the >> contents >> of your my-config.sexp file? > Oh, I'm sorry, somehow beginning of the message is missing. > > SBCL 1:1.0.17.0-1 (debian/sid package) > libdb4.5 4.5.20-12 (debian/sid package), 4.6 gives the same result > elephant installed automagically using (asdf- > install:install :elephant) > today, I don't see any version information in the source tree. > > I see cvs directories inside the source tree and no darcs directories, > so it is possible that I've got 0.9. > > 0.9.1 works ok. > > Thank you. > > Tomasz Melcer > _______________________________________________ > elephant-devel site list > elephant-devel at common-lisp.net > http://common-lisp.net/mailman/listinfo/elephant-devel From liori at exroot.org Wed Jun 11 14:16:42 2008 From: liori at exroot.org (Tomasz Melcer) Date: Wed, 11 Jun 2008 16:16:42 +0200 Subject: [elephant-devel] illegal flag specified to DB_ENV->set_timeout In-Reply-To: <9A52E9EE-298C-4ABC-96A2-55137B41F972@media.mit.edu> References: <484FC812.6080302@exroot.org> <484FD533.6040300@exroot.org> <9A52E9EE-298C-4ABC-96A2-55137B41F972@media.mit.edu> Message-ID: <484FDE4A.8030209@exroot.org> Ian Eslick pisze: > You are saying that release 0.9.1 via darcs does not exhibit this error, > but the asdf-installable release (0.9) does? Yes. Is there any reason that 0.9.1 is not in asdf-install? Tomasz Melcer From eslick at media.mit.edu Wed Jun 11 16:02:31 2008 From: eslick at media.mit.edu (Ian Eslick) Date: Wed, 11 Jun 2008 12:02:31 -0400 Subject: [elephant-devel] Referential Integrity Message-ID: <0FC9AB33-2C31-4B09-915E-79FD037C8260@media.mit.edu> While Elephant currently has a reasonable method for lazy handling of broken dependencies (pointers from an object slot to an object that no longer exists), it doesn't provide any reasonable method for computing the set of broken dependancies when an object is dropped. I'm finding for my current application that this would be very useful (if I delete a person's account, I need to delete all objects created by that refer to that user or that the user refers to that aren't linked to anything else. Ideally this would be handled by a garbage collector, but think about this in the context of indexing. For example, imagine a User instance references a Profile instance and a set of SurveyAnswer instance (with indexed slots user and name) point back to the User instance. When I delete the User all SurveyAnswer and the Profile instance should also be deleted, otherwise when I go through all SurveyAnswers of a given name, I get an answer instance that reference a user that doesn't exist. Those dangling entries need to be removed from the indices. I'd like to extend the current drop API along the lines of: - related-instances - a collection of all objects that would be rendered invalid on a drop - drop-instance - add a :drop-related t keyword to walk the graph and delete all related insts There are several approaches to gathering the information necessary to compute this: - Manual code to perform cleanup (Today) - Explicit declarations of object dependencies For example a constraint class argument in defpclass? Or a more direct method of telling the database about dependencies between class/ slot values and instances of classes. This would be automatically maintained for associations?) - Implicit declarations via type information in slots - Fully automated This last one is probably too much overhead. Dynamic types mean we'd have to check types at runtime which involves far more overhead to the slot access functions than I'd like. We're already a bit heavy on checks in slot access dispatch. Does anyone have experience implementing something like this? Any suggestions or recommendations? Thank you, Ian From eslick at media.mit.edu Wed Jun 11 16:02:54 2008 From: eslick at media.mit.edu (Ian Eslick) Date: Wed, 11 Jun 2008 12:02:54 -0400 Subject: [elephant-devel] illegal flag specified to DB_ENV->set_timeout In-Reply-To: <484FDE4A.8030209@exroot.org> References: <484FC812.6080302@exroot.org> <484FD533.6040300@exroot.org> <9A52E9EE-298C-4ABC-96A2-55137B41F972@media.mit.edu> <484FDE4A.8030209@exroot.org> Message-ID: <6879DEBC-CD86-4F4F-8CDB-DA3BC07C9C0B@media.mit.edu> No good reason that I know of - no one has made a tarball yet and posted the link on cliki.net. There was one issue that I recall which was that all root .asd files are run, some of which are almost guaranteed to fail during load. I don't know if this is still an issue... Ian On Jun 11, 2008, at 10:16 AM, Tomasz Melcer wrote: > Ian Eslick pisze: >> You are saying that release 0.9.1 via darcs does not exhibit this >> error, >> but the asdf-installable release (0.9) does? > Yes. Is there any reason that 0.9.1 is not in asdf-install? > > Tomasz Melcer > _______________________________________________ > elephant-devel site list > elephant-devel at common-lisp.net > http://common-lisp.net/mailman/listinfo/elephant-devel From eslick at media.mit.edu Wed Jun 11 16:35:59 2008 From: eslick at media.mit.edu (Ian Eslick) Date: Wed, 11 Jun 2008 12:35:59 -0400 Subject: [elephant-devel] Object caching Message-ID: <721600A5-0785-4397-AE7D-9A88D0AA68CE@media.mit.edu> I'm dissatisfied with the current approach to object caching in elephant-unstable. Issues: - Not thread safe - Break most transactional guarantees - Adds per-instance slot overhead to maintain the cache mode - Incompatible with indexing API - No standard usage model with well understood implications This leads me to some strong statements about the features: - The :cache option simply reserves space during instance allocation to cache values. - Cached objects can never be considered thread safe or transactional (isolated/atomic) - Directly setting the cache mode of an object is an advanced feature intended to be used by a higher level API I think that something lightweight along the lines of Robert's DCM or my snapshot-set model might provide guidance on a higher level model that exploits caching. (i.e. caching is used in some larger context like a 'with-cached-objects' macro or a check-in/check-out protocol with some guard object as in DCM). I can think of a couple of primary usage models: 1) Check-in/check-out a set of objects on which a thread will perform repeated operations. This checkout should be guarded and implicitly turns on a caching policy. (save oncheck-in, write-through for state durability, etc) 2) A read-only pool of objects shared by many threads (in-memory objects w/ on-disk indices) 3) There is a variation on #2 which allows for updates to the pool via a single-writer. The user is responsible for using the single-writer API to avoid conflicts. This requires that updates to cached objects not be atomic; or that caching is turned off during updates so that it is (there may still be race conditions that violate isolation/ atomicity here). To support either case we need something beyond what is already there; for example a model that provides cheap mutexes via the DB instead of just in-memory? For example, a web session is rendering a set of objects to a client and updating the client on each request. Rather than hitting the DB on every web transaction, we want to allow the session to run for awhile, keeping that state in memory, then commit the changes when a 'commit' button is clicked, or perhaps we want a write-through policy that keeps track of changes by only hitting the DB when the user has changed something. In my application a user might be editing a questionnaire and the UI provides an explicit indication that the questionnaire is being edited. A session 'checks out' the questionnaire. The questionnaire has an association with its root questions, which have an association with their sub-questions, etc. Ideally this whole tree would be checked out; either based on a user-provided function or some declaration that defines the checkout set. I'd use a write-through policy so work was never lost and have the application layer implement any needed undo/reset functionality. Any other use cases? In short, there are alot of ways to get into trouble with this mechanism, so I think it behooves us to spec out an API for using this facility that is reasonably robust and can give people canned ways to gain the performance benefits without putting too many holes in their feet. Thanks, Ian From read at robertlread.net Thu Jun 12 03:20:42 2008 From: read at robertlread.net (Robert L. Read) Date: Wed, 11 Jun 2008 22:20:42 -0500 Subject: [elephant-devel] Referential Integrity In-Reply-To: <0FC9AB33-2C31-4B09-915E-79FD037C8260@media.mit.edu> References: <0FC9AB33-2C31-4B09-915E-79FD037C8260@media.mit.edu> Message-ID: <1213240842.29423.1796.camel@penguin.yourdomain.com> If one could operate under the assumption that most of the database fits into memory, I would say the act of dealing with references that would be left dangling is definitely better handled at the "business object" layer. This would mean that in the "delete" method for each class, it would know who might refer to it and take appropriate action, such as querying the managers of the referrers to find referrers and then deleting them. Writing such code is similar to establishing a cascading delete constraint (or a "cascading finalizer" or "cascading :after method", which would be more general.) If we had a constraint system, it would probably be easier, but less general, than a coded approach. However, if you don't assume this, then I think that you are correct in that it essentially becomes equivalent to the garbage collection problem. Personally, I rather the like the idea of being able to do: (apply #'function to-my-whole-gigantic-database), where #'function could be a garbage collector, or a "delete-if-null" function. Make it fast might be another matter. I personally don't want to compete against other constraint-based systems, so if I were going to implement a constraint like "this slot must point to a valid persistent object", then I would try to write as a simple lisp function, and then try to figure out how to apply it efficiently in two relevant cases: Write before a transaction is committed, so that we can guarantee universal constraint obedience, and two the entire database (for the same reason.) It is at least in theory possible for a transaction to know what it might have modified, and therefore to implement the first efficiently. On Wed, 2008-06-11 at 12:02 -0400, Ian Eslick wrote: > While Elephant currently has a reasonable method for lazy handling of > broken dependencies (pointers from an object slot to an object that no > longer exists), it doesn't provide any reasonable method for computing > the set of broken dependancies when an object is dropped. > > I'm finding for my current application that this would be very useful > (if I delete a person's account, I need to delete all objects created > by that refer to that user or that the user refers to that aren't > linked to anything else. Ideally this would be handled by a garbage > collector, but think about this in the context of indexing. > > For example, imagine a User instance references a Profile instance and > a set of SurveyAnswer instance (with indexed slots user and name) > point back to the User instance. > > When I delete the User all SurveyAnswer and the Profile instance > should also be deleted, otherwise when I go through all SurveyAnswers > of a given name, I get an answer instance that reference a user that > doesn't exist. Those dangling entries need to be removed from the > indices. > > I'd like to extend the current drop API along the lines of: > > - related-instances - a collection of all objects that would be > rendered invalid on a drop > - drop-instance - add a :drop-related t keyword to walk the graph and > delete all related insts > > > There are several approaches to gathering the information necessary to > compute this: > > - Manual code to perform cleanup (Today) > > - Explicit declarations of object dependencies > For example a constraint class argument in defpclass? Or a more > direct method of telling the database about dependencies between class/ > slot values and instances of classes. This would be automatically > maintained for associations?) > > - Implicit declarations via type information in slots > > - Fully automated > > This last one is probably too much overhead. Dynamic types mean we'd > have to check types at runtime which involves far more overhead to the > slot access functions than I'd like. We're already a bit heavy on > checks in slot access dispatch. > > > Does anyone have experience implementing something like this? Any > suggestions or recommendations? > > Thank you, > Ian > _______________________________________________ > elephant-devel site list > elephant-devel at common-lisp.net > http://common-lisp.net/mailman/listinfo/elephant-devel From read at robertlread.net Thu Jun 12 03:32:57 2008 From: read at robertlread.net (Robert L. Read) Date: Wed, 11 Jun 2008 22:32:57 -0500 Subject: [elephant-devel] Object caching In-Reply-To: <721600A5-0785-4397-AE7D-9A88D0AA68CE@media.mit.edu> References: <721600A5-0785-4397-AE7D-9A88D0AA68CE@media.mit.edu> Message-ID: <1213241577.29423.1806.camel@penguin.yourdomain.com> Obviously, I am biased, not by self-conceit but by familiarity with DCM. I think something like DCM, in which you use a write-through in-memory cache, is very workable. To my mind, an ideal system would allow cache policy to be set separately from the concurrency control and elephant usage. To me, a simple hash-table is the starting point for a cache, but you almost always want to be able to control the size of the cache, and that decision will typically vary with the particular persistent class in question. DCM provides an understandable example , and even provides generational strategies. However, DCM uses btrees directly; I think you would want something that would work with the persistent class machinery that you wrote. Whether these things would be extensions of persistent-class or more loosely coupled outside of them, I'm not sure. For example, if we are building a reusable caching system that really could be independent of Elephant, that would have value independently, just as a serializer for lisp objects is value independent of Elephant (though of course Elephant must use one.) On Wed, 2008-06-11 at 12:35 -0400, Ian Eslick wrote: > I'm dissatisfied with the current approach to object caching in > elephant-unstable. > > Issues: > - Not thread safe > - Break most transactional guarantees > - Adds per-instance slot overhead to maintain the cache mode > - Incompatible with indexing API > - No standard usage model with well understood implications > > This leads me to some strong statements about the features: > > - The :cache option simply reserves space during instance allocation > to cache values. > - Cached objects can never be considered thread safe or transactional > (isolated/atomic) > - Directly setting the cache mode of an object is an advanced feature > intended to be used by a higher level API > > I think that something lightweight along the lines of Robert's DCM or > my snapshot-set model might provide guidance on a higher level model > that exploits caching. (i.e. caching is used in some larger context > like a 'with-cached-objects' macro or a check-in/check-out protocol > with some guard object as in DCM). > > I can think of a couple of primary usage models: > > 1) Check-in/check-out a set of objects on which a thread will perform > repeated operations. > > This checkout should be guarded and implicitly turns on a caching > policy. (save oncheck-in, write-through for state durability, etc) > > 2) A read-only pool of objects shared by many threads (in-memory > objects w/ on-disk indices) > > 3) There is a variation on #2 which allows for updates to the pool via > a single-writer. The user is responsible for using the single-writer > API to avoid conflicts. This requires that updates to cached objects > not be atomic; or that caching is turned off during updates so that it > is (there may still be race conditions that violate isolation/ > atomicity here). > > To support either case we need something beyond what is already there; > for example a model that provides cheap mutexes via the DB instead of > just in-memory? > > > For example, a web session is rendering a set of objects to a client > and updating the client on each request. Rather than hitting the DB > on every web transaction, we want to allow the session to run for > awhile, keeping that state in memory, then commit the changes when a > 'commit' button is clicked, or perhaps we want a write-through policy > that keeps track of changes by only hitting the DB when the user has > changed something. > > In my application a user might be editing a questionnaire and the UI > provides an explicit indication that the questionnaire is being > edited. A session 'checks out' the questionnaire. The questionnaire > has an association with its root questions, which have an association > with their sub-questions, etc. Ideally this whole tree would be > checked out; either based on a user-provided function or some > declaration that defines the checkout set. I'd use a write-through > policy so work was never lost and have the application layer implement > any needed undo/reset functionality. > > Any other use cases? > > In short, there are alot of ways to get into trouble with this > mechanism, so I think it behooves us to spec out an API for using this > facility that is reasonably robust and can give people canned ways to > gain the performance benefits without putting too many holes in their > feet. > > Thanks, > Ian > > _______________________________________________ > elephant-devel site list > elephant-devel at common-lisp.net > http://common-lisp.net/mailman/listinfo/elephant-devel From FIM at common-lisp.net Fri Jun 13 17:46:36 2008 From: FIM at common-lisp.net (FIM at common-lisp.net) Date: Fri, 13 Jun 2008 17:46:36 GMT Subject: [elephant-devel] [SPAM] FIM DO DRAMA. Message-ID: <20080613174631.58F3871123@common-lisp.net> An embedded and charset-unspecified text was scrubbed... Name: not available URL: -------------- next part -------------- An embedded message was scrubbed... From: FIM at common-lisp.net, DO at common-lisp.net, DRAMA at common-lisp.net, CASO ISABELLA NARDONI CHEGOU AO FIM! Subject: FIM DO DRAMA. Date: Fri, 13 Jun 2008 17:46:36 GMT Size: 2118 URL: From gtarcea at umich.edu Fri Jun 13 18:34:25 2008 From: gtarcea at umich.edu (V. Glenn Tarcea) Date: Fri, 13 Jun 2008 14:34:25 -0400 Subject: [elephant-devel] Kicking off the documentation Message-ID: <025201c8cd84$1bdfad40$4212a8c0@mimi2> After this weekend I'll have time to start working on the documentation. I'll post a list of items I've collected this Sunday. Is the goal still to try and release at the end of June? Thanks, Glenn -------------- next part -------------- An HTML attachment was scrubbed... URL: From eslick at media.mit.edu Fri Jun 13 19:24:40 2008 From: eslick at media.mit.edu (Ian Eslick) Date: Fri, 13 Jun 2008 15:24:40 -0400 Subject: [elephant-devel] Kicking off the documentation In-Reply-To: <025201c8cd84$1bdfad40$4212a8c0@mimi2> References: <025201c8cd84$1bdfad40$4212a8c0@mimi2> Message-ID: That's great Glenn! End of June is definitely a goal, but I don't know how realistic it is yet. Ian On Jun 13, 2008, at 2:34 PM, V. Glenn Tarcea wrote: > After this weekend I?ll have time to start working on the > documentation. I?ll post a list of items I?ve collected this Sunday. > Is the goal still to try and release at the end of June? > > Thanks, > > Glenn > _______________________________________________ > elephant-devel site list > elephant-devel at common-lisp.net > http://common-lisp.net/mailman/listinfo/elephant-devel From arnaudpourseb at gmail.com Fri Jun 13 22:36:37 2008 From: arnaudpourseb at gmail.com (Sebastian Georges) Date: Fri, 13 Jun 2008 17:36:37 -0500 Subject: [elephant-devel] Opening new database in unstable In-Reply-To: <9f8fd8120806100224k2c7281a2kd7c56386ec5b2cbd@mail.gmail.com> References: <9f8fd8120806091503s663e45f9q7b6a4b93f57dc143@mail.gmail.com> <1213065303.29423.1667.camel@penguin.yourdomain.com> <1213069205.29423.1677.camel@penguin.yourdomain.com> <9f8fd8120806100224k2c7281a2kd7c56386ec5b2cbd@mail.gmail.com> Message-ID: <9f8fd8120806131536p35865decp29318950c15dc5ac@mail.gmail.com> Nobody? -------------- next part -------------- An HTML attachment was scrubbed... URL: From read at robertlread.net Sat Jun 14 00:40:16 2008 From: read at robertlread.net (Robert L. Read) Date: Fri, 13 Jun 2008 19:40:16 -0500 Subject: [elephant-devel] Opening new database in unstable In-Reply-To: <9f8fd8120806131536p35865decp29318950c15dc5ac@mail.gmail.com> References: <9f8fd8120806091503s663e45f9q7b6a4b93f57dc143@mail.gmail.com> <1213065303.29423.1667.camel@penguin.yourdomain.com> <1213069205.29423.1677.camel@penguin.yourdomain.com> <9f8fd8120806100224k2c7281a2kd7c56386ec5b2cbd@mail.gmail.com> <9f8fd8120806131536p35865decp29318950c15dc5ac@mail.gmail.com> Message-ID: <1213404016.9275.148.camel@penguin.yourdomain.com> On Fri, 2008-06-13 at 17:36 -0500, Sebastian Georges wrote: > Nobody? You may have to ask more explicit questions than this to get help. As I mentioned, I can't reproduce the problem, although it seems to work on sqlite3 for me. Can you do something to generate a stack trace, and post that? From arnaudpourseb at gmail.com Sat Jun 14 00:58:45 2008 From: arnaudpourseb at gmail.com (Sebastian Georges) Date: Fri, 13 Jun 2008 19:58:45 -0500 Subject: [elephant-devel] Opening new database in unstable In-Reply-To: <1213404016.9275.148.camel@penguin.yourdomain.com> References: <9f8fd8120806091503s663e45f9q7b6a4b93f57dc143@mail.gmail.com> <1213065303.29423.1667.camel@penguin.yourdomain.com> <1213069205.29423.1677.camel@penguin.yourdomain.com> <9f8fd8120806100224k2c7281a2kd7c56386ec5b2cbd@mail.gmail.com> <9f8fd8120806131536p35865decp29318950c15dc5ac@mail.gmail.com> <1213404016.9275.148.camel@penguin.yourdomain.com> Message-ID: <9f8fd8120806131758m4e673fa6p262084f2d8d9d1f0@mail.gmail.com> With pleasure! The file store2328.db gets created with open-store, and I run SBCL 1.0.11.debian under ubuntu. (require 'elephant) (defparameter *CONNECTION-SPEC*'(:clsql (:sqlite3 "/home/seb/projects/timetracker-all/store2328.db"))) (elephant:open-store *CONNECTION-SPEC*) When attempting to set the slot's value to # (SETF of SLOT-VALUE), the slot DB-CLSQL::CLASS-ROOT is missing from the object #. [Condition of type SIMPLE-ERROR] Restarts: 0: [ABORT] Return to SLIME's top level. 1: [TERMINATE-THREAD] Terminate this thread (#) Backtrace: 0: ((SB-PCL::FAST-METHOD SLOT-MISSING (T #1="#<...>" . #1#)) # # # # DB-CLSQL::CLASS-ROOT SETF #) 1: ((SB-PCL::FAST-METHOD SLOT-MISSING (T #1="#<...>" . #1#)) # # # # DB-CLSQL::CLASS-ROOT SETF #) 2: (SB-PCL::SET-SLOT-VALUE # DB-CLSQL::CLASS-ROOT #) 3: ((SB-PCL::FAST-METHOD ELEPHANT::OPEN-CONTROLLER (DB-CLSQL::SQL-STORE-CONTROLLER)) #(NIL NIL 1 NIL) # #) 4: ((LAMBDA (SB-PCL::.PV. SB-PCL::.NEXT-METHOD-CALL. #1="#<...>" . #1#)) # # # -309242147 0) 5: (ELEPHANT:OPEN-STORE (:CLSQL (:SQLITE3 "/home/seb/projects/timetracker-all/store2328.db"))) 6: (SB-INT:SIMPLE-EVAL-IN-LEXENV (ELEPHANT:OPEN-STORE *CONNECTION-SPEC*) #) Locals: SB-DEBUG::ARG-0 = (ELEPHANT:OPEN-STORE *CONNECTION-SPEC*) SB-DEBUG::ARG-1 = # 7: (SWANK::EVAL-REGION "(elephant:open-store *CONNECTION-SPEC*) ") 8: ((LAMBDA ())) 9: (SWANK::TRACK-PACKAGE #) 10: ((LAMBDA (SWANK-BACKEND::FN)) #) 11: (SWANK::CALL-WITH-BUFFER-SYNTAX #) 12: (SWANK::REPL-EVAL "(elephant:open-store *CONNECTION-SPEC*) ") 13: (SB-INT:SIMPLE-EVAL-IN-LEXENV (SWANK:LISTENER-EVAL "(elephant:open-store *CONNECTION-SPEC*) ") #) 14: ((LAMBDA ())) 15: ((LAMBDA (SWANK-BACKEND::HOOK SWANK-BACKEND::FUN)) # #) 16: ((LAMBDA ())) 17: ((LAMBDA (SWANK-BACKEND::HOOK SWANK-BACKEND::FUN)) # #) 18: (SWANK::CALL-WITH-REDIRECTED-IO # #) 19: (SWANK::CALL-WITH-CONNECTION # #) 20: (SWANK::HANDLE-REQUEST #) 21: (SWANK::REPL-LOOP #) 22: (SWANK::REPL-LOOP #) 23: (SWANK::CALL-WITH-BINDINGS NIL #) 24: ((FLET SB-THREAD::WITH-MUTEX-THUNK)) 25: (SB-UNIX::CALL-WITH-LOCAL-INTERRUPTS # T) 26: ((FLET SB-UNIX::WITHOUT-INTERRUPTS-THUNK) T) 27: ((FLET SB-UNIX::RUN-WITHOUT-INTERRUPTS)) 28: (SB-UNIX::CALL-WITHOUT-INTERRUPTS #) 29: (SB-THREAD::CALL-WITH-MUTEX # #S(SB-THREAD:MUTEX :NAME "thread result lock" :%OWNER # :STATE 1) # T) 30: ((LAMBDA ())) 31: ("foreign function: #x806398C") 32: ("foreign function: #x8051E61") 33: ("foreign function: #x805B44D") 34: ("foreign function: #xB7FB94FB") Hope this helps. -------------- next part -------------- An HTML attachment was scrubbed... URL: From read at robertlread.net Sat Jun 14 20:24:36 2008 From: read at robertlread.net (Robert L. Read) Date: Sat, 14 Jun 2008 15:24:36 -0500 Subject: [elephant-devel] Opening new database in unstable In-Reply-To: <9f8fd8120806131758m4e673fa6p262084f2d8d9d1f0@mail.gmail.com> References: <9f8fd8120806091503s663e45f9q7b6a4b93f57dc143@mail.gmail.com> <1213065303.29423.1667.camel@penguin.yourdomain.com> <1213069205.29423.1677.camel@penguin.yourdomain.com> <9f8fd8120806100224k2c7281a2kd7c56386ec5b2cbd@mail.gmail.com> <9f8fd8120806131536p35865decp29318950c15dc5ac@mail.gmail.com> <1213404016.9275.148.camel@penguin.yourdomain.com> <9f8fd8120806131758m4e673fa6p262084f2d8d9d1f0@mail.gmail.com> Message-ID: <1213475076.9275.246.camel@penguin.yourdomain.com> The Elephant-unstable branch is currently broken for all non-bdb builds. I suspect this is some confusion in the way things have been checked in. I am trying to reconstruct what happened. I find it a lot harder to figure things like this out in darcs than in subversion or cvs. In all probability, Ian or I made relatively simple error that should be easy to fix once we have identified it. Since it is broken for postmodern, I suspect that when we fix it, we will have fixed it for SQLite3, but I have not actually run those tests in a while --- my previous statement that it worked for me was with an erroneous version. On Fri, 2008-06-13 at 19:58 -0500, Sebastian Georges wrote: > With pleasure! > The file store2328.db gets created with open-store, and I run SBCL > 1.0.11.debian under ubuntu. > > (require 'elephant) > (defparameter *CONNECTION-SPEC*'(:clsql (:sqlite3 > "/home/seb/projects/timetracker-all/store2328.db"))) > (elephant:open-store *CONNECTION-SPEC*) > > > When attempting to > set the slot's value to # (SETF of SLOT-VALUE), the > slot DB-CLSQL::CLASS-ROOT is missing from the object > # /home/seb/projects/timetracker-all/store2328.db)>. > [Condition of type SIMPLE-ERROR] > > Restarts: > 0: [ABORT] Return to SLIME's top level. > 1: [TERMINATE-THREAD] Terminate this thread (# "repl-thread" {B025FA1}>) > > Backtrace: > 0: ((SB-PCL::FAST-METHOD SLOT-MISSING (T #1="#<...>" . #1#)) > # > # > # > # /home/seb/projects/timetracker-all/store2328.db)> > DB-CLSQL::CLASS-ROOT > SETF > #) > 1: ((SB-PCL::FAST-METHOD SLOT-MISSING (T #1="#<...>" . #1#)) > # > # > # > # /home/seb/projects/timetracker-all/store2328.db)> > DB-CLSQL::CLASS-ROOT > SETF > #) > 2: (SB-PCL::SET-SLOT-VALUE > # /home/seb/projects/timetracker-all/store2328.db)> > DB-CLSQL::CLASS-ROOT > #) > 3: ((SB-PCL::FAST-METHOD ELEPHANT::OPEN-CONTROLLER > (DB-CLSQL::SQL-STORE-CONTROLLER)) > #(NIL NIL 1 NIL) > # > # /home/seb/projects/timetracker-all/store2328.db)>) > 4: ((LAMBDA (SB-PCL::.PV. SB-PCL::.NEXT-METHOD-CALL. #1="#<...>" . > #1#)) > # > # > # /home/seb/projects/timetracker-all/store2328.db)> > -309242147 > 0) > 5: (ELEPHANT:OPEN-STORE > (:CLSQL > (:SQLITE3 "/home/seb/projects/timetracker-all/store2328.db"))) > 6: (SB-INT:SIMPLE-EVAL-IN-LEXENV > (ELEPHANT:OPEN-STORE *CONNECTION-SPEC*) > #) > Locals: > SB-DEBUG::ARG-0 = (ELEPHANT:OPEN-STORE *CONNECTION-SPEC*) > SB-DEBUG::ARG-1 = # > 7: (SWANK::EVAL-REGION > "(elephant:open-store *CONNECTION-SPEC*) > ") > 8: ((LAMBDA ())) > 9: (SWANK::TRACK-PACKAGE #) > 10: ((LAMBDA (SWANK-BACKEND::FN)) #) > 11: (SWANK::CALL-WITH-BUFFER-SYNTAX #) > 12: (SWANK::REPL-EVAL > "(elephant:open-store *CONNECTION-SPEC*) > ") > 13: (SB-INT:SIMPLE-EVAL-IN-LEXENV > (SWANK:LISTENER-EVAL "(elephant:open-store *CONNECTION-SPEC*) > ") > #) > 14: ((LAMBDA ())) > 15: ((LAMBDA (SWANK-BACKEND::HOOK SWANK-BACKEND::FUN)) > # > #) > 16: ((LAMBDA ())) > 17: ((LAMBDA (SWANK-BACKEND::HOOK SWANK-BACKEND::FUN)) > # > #) > 18: (SWANK::CALL-WITH-REDIRECTED-IO > # > #) > 19: (SWANK::CALL-WITH-CONNECTION > # > #) > 20: (SWANK::HANDLE-REQUEST #) > 21: (SWANK::REPL-LOOP #) > 22: (SWANK::REPL-LOOP #) > 23: (SWANK::CALL-WITH-BINDINGS NIL #) > 24: ((FLET SB-THREAD::WITH-MUTEX-THUNK)) > 25: (SB-UNIX::CALL-WITH-LOCAL-INTERRUPTS > # {B645609D}> > T) > 26: ((FLET SB-UNIX::WITHOUT-INTERRUPTS-THUNK) T) > 27: ((FLET SB-UNIX::RUN-WITHOUT-INTERRUPTS)) > 28: (SB-UNIX::CALL-WITHOUT-INTERRUPTS > #) > 29: (SB-THREAD::CALL-WITH-MUTEX > # > #S(SB-THREAD:MUTEX > :NAME "thread result lock" > :%OWNER # > :STATE 1) > # > T) > 30: ((LAMBDA ())) > 31: ("foreign function: #x806398C") > 32: ("foreign function: #x8051E61") > 33: ("foreign function: #x805B44D") > 34: ("foreign function: #xB7FB94FB") > > Hope this helps. From arnaudpourseb at gmail.com Sun Jun 15 01:15:14 2008 From: arnaudpourseb at gmail.com (Sebastian Georges) Date: Sat, 14 Jun 2008 20:15:14 -0500 Subject: [elephant-devel] Opening new database in unstable In-Reply-To: <1213475076.9275.246.camel@penguin.yourdomain.com> References: <9f8fd8120806091503s663e45f9q7b6a4b93f57dc143@mail.gmail.com> <1213065303.29423.1667.camel@penguin.yourdomain.com> <1213069205.29423.1677.camel@penguin.yourdomain.com> <9f8fd8120806100224k2c7281a2kd7c56386ec5b2cbd@mail.gmail.com> <9f8fd8120806131536p35865decp29318950c15dc5ac@mail.gmail.com> <1213404016.9275.148.camel@penguin.yourdomain.com> <9f8fd8120806131758m4e673fa6p262084f2d8d9d1f0@mail.gmail.com> <1213475076.9275.246.camel@penguin.yourdomain.com> Message-ID: <9f8fd8120806141815w1914fbecpe5ba985e3d08733d@mail.gmail.com> Fine, i will give it a try with bdb until next release. Thank you for checking -------------- next part -------------- An HTML attachment was scrubbed... URL: From eslick at media.mit.edu Sun Jun 15 04:39:39 2008 From: eslick at media.mit.edu (Ian Eslick) Date: Sun, 15 Jun 2008 00:39:39 -0400 Subject: [elephant-devel] Opening new database in unstable In-Reply-To: <1213475076.9275.246.camel@penguin.yourdomain.com> References: <9f8fd8120806091503s663e45f9q7b6a4b93f57dc143@mail.gmail.com> <1213065303.29423.1667.camel@penguin.yourdomain.com> <1213069205.29423.1677.camel@penguin.yourdomain.com> <9f8fd8120806100224k2c7281a2kd7c56386ec5b2cbd@mail.gmail.com> <9f8fd8120806131536p35865decp29318950c15dc5ac@mail.gmail.com> <1213404016.9275.148.camel@penguin.yourdomain.com> <9f8fd8120806131758m4e673fa6p262084f2d8d9d1f0@mail.gmail.com> <1213475076.9275.246.camel@penguin.yourdomain.com> Message-ID: Hi all, There was a darcs snafu that reverted some or all of the CL-SQL upgrades. Also the postmodern patch has not yet been applied to elephant-unstable. We will try to resolve this over the next few days and send a message when we feel it's worth looking at elephant- unstable again for the non-BDB data stores. Cheers, Ian On Jun 14, 2008, at 4:24 PM, Robert L. Read wrote: > The Elephant-unstable branch is currently broken for all non-bdb > builds. > > I suspect this is some confusion in the way things have been checked > in. > > I am trying to reconstruct what happened. I find it a lot harder to > figure things like this out in darcs than in subversion or cvs. > > In all probability, Ian or I made relatively simple error that > should be > easy to fix once we have identified it. > > Since it is broken for postmodern, I suspect that when we fix it, we > will have fixed it for SQLite3, but I have not actually run those > tests > in a while --- my previous statement that it worked for me was with an > erroneous version. > > > > On Fri, 2008-06-13 at 19:58 -0500, Sebastian Georges wrote: >> With pleasure! >> The file store2328.db gets created with open-store, and I run SBCL >> 1.0.11.debian under ubuntu. >> >> (require 'elephant) >> (defparameter *CONNECTION-SPEC*'(:clsql (:sqlite3 >> "/home/seb/projects/timetracker-all/store2328.db"))) >> (elephant:open-store *CONNECTION-SPEC*) >> >> >> When attempting to >> set the slot's value to # (SETF of SLOT-VALUE), the >> slot DB-CLSQL::CLASS-ROOT is missing from the object >> #> /home/seb/projects/timetracker-all/ >> store2328.db)>. >> [Condition of type SIMPLE-ERROR] >> >> Restarts: >> 0: [ABORT] Return to SLIME's top level. >> 1: [TERMINATE-THREAD] Terminate this thread (#> "repl-thread" {B025FA1}>) >> >> Backtrace: >> 0: ((SB-PCL::FAST-METHOD SLOT-MISSING (T #1="#<...>" . #1#)) >> # >> # >> # >> #> /home/seb/projects/timetracker-all/ >> store2328.db)> >> DB-CLSQL::CLASS-ROOT >> SETF >> #) >> 1: ((SB-PCL::FAST-METHOD SLOT-MISSING (T #1="#<...>" . #1#)) >> # >> # >> # >> #> /home/seb/projects/timetracker-all/ >> store2328.db)> >> DB-CLSQL::CLASS-ROOT >> SETF >> #) >> 2: (SB-PCL::SET-SLOT-VALUE >> #> /home/seb/projects/timetracker-all/ >> store2328.db)> >> DB-CLSQL::CLASS-ROOT >> #) >> 3: ((SB-PCL::FAST-METHOD ELEPHANT::OPEN-CONTROLLER >> (DB-CLSQL::SQL-STORE-CONTROLLER)) >> #(NIL NIL 1 NIL) >> # >> #> /home/seb/projects/timetracker-all/ >> store2328.db)>) >> 4: ((LAMBDA (SB-PCL::.PV. SB-PCL::.NEXT-METHOD-CALL. #1="#<...>" . >> #1#)) >> # >> # >> #> /home/seb/projects/timetracker-all/ >> store2328.db)> >> -309242147 >> 0) >> 5: (ELEPHANT:OPEN-STORE >> (:CLSQL >> (:SQLITE3 "/home/seb/projects/timetracker-all/store2328.db"))) >> 6: (SB-INT:SIMPLE-EVAL-IN-LEXENV >> (ELEPHANT:OPEN-STORE *CONNECTION-SPEC*) >> #) >> Locals: >> SB-DEBUG::ARG-0 = (ELEPHANT:OPEN-STORE *CONNECTION-SPEC*) >> SB-DEBUG::ARG-1 = # >> 7: (SWANK::EVAL-REGION >> "(elephant:open-store *CONNECTION-SPEC*) >> ") >> 8: ((LAMBDA ())) >> 9: (SWANK::TRACK-PACKAGE #) >> 10: ((LAMBDA (SWANK-BACKEND::FN)) #) >> 11: (SWANK::CALL-WITH-BUFFER-SYNTAX #) >> 12: (SWANK::REPL-EVAL >> "(elephant:open-store *CONNECTION-SPEC*) >> ") >> 13: (SB-INT:SIMPLE-EVAL-IN-LEXENV >> (SWANK:LISTENER-EVAL "(elephant:open-store *CONNECTION-SPEC*) >> ") >> #) >> 14: ((LAMBDA ())) >> 15: ((LAMBDA (SWANK-BACKEND::HOOK SWANK-BACKEND::FUN)) >> # >> #) >> 16: ((LAMBDA ())) >> 17: ((LAMBDA (SWANK-BACKEND::HOOK SWANK-BACKEND::FUN)) >> # >> #) >> 18: (SWANK::CALL-WITH-REDIRECTED-IO >> # >> #) >> 19: (SWANK::CALL-WITH-CONNECTION >> # >> #) >> 20: (SWANK::HANDLE-REQUEST #) >> 21: (SWANK::REPL-LOOP #) >> 22: (SWANK::REPL-LOOP #) >> 23: (SWANK::CALL-WITH-BINDINGS NIL #) >> 24: ((FLET SB-THREAD::WITH-MUTEX-THUNK)) >> 25: (SB-UNIX::CALL-WITH-LOCAL-INTERRUPTS >> #> {B645609D}> >> T) >> 26: ((FLET SB-UNIX::WITHOUT-INTERRUPTS-THUNK) T) >> 27: ((FLET SB-UNIX::RUN-WITHOUT-INTERRUPTS)) >> 28: (SB-UNIX::CALL-WITHOUT-INTERRUPTS >> #) >> 29: (SB-THREAD::CALL-WITH-MUTEX >> # >> #S(SB-THREAD:MUTEX >> :NAME "thread result lock" >> :%OWNER # >> :STATE 1) >> # >> T) >> 30: ((LAMBDA ())) >> 31: ("foreign function: #x806398C") >> 32: ("foreign function: #x8051E61") >> 33: ("foreign function: #x805B44D") >> 34: ("foreign function: #xB7FB94FB") >> >> Hope this helps. > > _______________________________________________ > elephant-devel site list > elephant-devel at common-lisp.net > http://common-lisp.net/mailman/listinfo/elephant-devel From gtarcea at umich.edu Sun Jun 15 16:55:01 2008 From: gtarcea at umich.edu (Glenn Tarcea) Date: Sun, 15 Jun 2008 12:55:01 -0400 Subject: [elephant-devel] persistent vs persistent-object Message-ID: Hey guys, I'm trying to understand why user classes inherit from persistent-object, rather than persistent (that is why is there a distinction and separation of functionality). I can see that the initialization for persistent-object uses more of the elephant classes (eg, all the different kinds of slot), and it kind of looks like internal Elephant classes that need access to the underlying infrastructure but don't need transient slots, etc... use persistent and then have greater control over the rest. Am I on the right track? Thanks, Glenn From eslick at media.mit.edu Sun Jun 15 17:10:50 2008 From: eslick at media.mit.edu (Ian Eslick) Date: Sun, 15 Jun 2008 13:10:50 -0400 Subject: [elephant-devel] persistent vs persistent-object In-Reply-To: References: Message-ID: <995794E9-58F7-4805-B8F5-EA3E4F6F4A1E@media.mit.edu> I'd have to go back and review the details, but originally persistent- objects had additional functionality for user-generated slots and the slot access protocol that differed from persistent-collection. persistent - provides functionality for anything which is resident in the data store - basically oid and controller references. persistent-object (persistent) - provides a base class for anything using the persistent object protocol for slot accesses. persistent-collection (persistent) - inherits directly from persistent and is a placeholder for methods or data common to all collections (for now that's basically nothing). Ian On Jun 15, 2008, at 12:55 PM, Glenn Tarcea wrote: > > Hey guys, I'm trying to understand why user classes inherit from > persistent-object, rather than persistent (that is why is there a > distinction and separation of functionality). I can see that the > initialization for persistent-object uses more of the elephant > classes (eg, all the different kinds of slot), and it kind of looks > like internal Elephant classes that need access to the underlying > infrastructure but don't need transient slots, etc... use persistent > and then have greater control over the rest. Am I on the right track? > > Thanks, > > Glenn > _______________________________________________ > elephant-devel site list > elephant-devel at common-lisp.net > http://common-lisp.net/mailman/listinfo/elephant-devel From gtarcea at umich.edu Mon Jun 16 13:29:16 2008 From: gtarcea at umich.edu (V. Glenn Tarcea) Date: Mon, 16 Jun 2008 09:29:16 -0400 Subject: [elephant-devel] Documentation Updates List Message-ID: <032501c8cfb4$fa0ae4e0$4212a8c0@mimi2> I started this from Ian's posted list and added my own. Please add to, delete from or change as appropriate. 1) Update all class indexing docs, especially derived indices (dropped explicit API, hierarchical indexed slots) 2) Document new slot options in defpclass 3) Document associations 4) Document cached operation 5) Revamp database synchronization 6) Discussion of upgrade and schemas 7) Add section for postmodern backend 8) section on multi-threaded testing and update testing section in general 9) Update 'multi-threading' considerations 10) How to build the documentation (including dependencies such as sbcl) 11) Document new options for BDB db open 12) If appropriate - Document new options for PostModern 13) Should we have a section on migrating from CL-SQL to PostModern? 14) Document ASDF registry additions to support two separate instances of Elephant (for testing purposes) 15) Updated BDB section to include a reference to DB_CONFIG 16) Examples using derived indexes (and migration from old way). 17) wishlist: More documentation on design of Elephant 18) wishlist: When/why you would use straight b-trees 19) wishlist: More pointers to projects using Elephant I'll start with the BDB documentation (since that is what I have some familiarity with). If someone can send me some bulleted items to get me started on other things such as associations I'm happy to play around with what you send to learn it well enough to write up documentation on that part. I'll start on the BDB docs Tuesday evening. Thanks, Glenn -------------- next part -------------- An HTML attachment was scrubbed... URL: From inf1045 at fh-worms.de Tue Jun 17 19:23:02 2008 From: inf1045 at fh-worms.de (LukasGiessmann) Date: Tue, 17 Jun 2008 21:23:02 +0200 (CEST) Subject: [elephant-devel] using association slots Message-ID: <507f2d711f835411a6f341a5e6592daa.squirrel@webmailer.fh-worms.de> hello, just in case you're wondering why i'm coming up with questions concerning marc's topic "associations in the elephant system", i'm trying to assist him with this topic, so there might be several questions coming up in the next time - hope you don't mind. to get straight to the point: 1) i tried to work with the last person/job example and the new association slots, so i made the following example: --- (defpclass job() ((title :initarg :title :accessor title-of :index t) (company :initarg :company :accessor company-of :index t))) (defpclass person() ((name :initarg :name :accessor name-of :index t) (job :initarg :job :accessor job-of :associate t))) (defvar *max-persons* 500) (defvar *max-jobs* 100) (defun make-instances () (with-transaction () (dotimes (i *max-jobs*) (let ((current-job (make-instance 'job :title (string (gensym)) :company (string (gensym))))) (dotimes (j (/ *max-persons* *max-jobs*)) (make-instance 'person :name (string (gensym)) :job current-job)))))) --- after the call of make-instances there are 100 jobs and for every job there exist 5 persons. but i have still the following problem: how can i get all persons which associate a certain job by using the instance of the job which should be associated by the persons. i thought on something like: --- (defvar *obj* (first (get-instances-by-class 'job))) (get-instance-by-value 'person 'job *obj*) --- 2) what is the better way for using association slots in your opinion, the one of the example above or a special class which contains only associations of jobs and persons? --- (defpclass p-j-assoc() ((job :initarg :job :accessor job-of :associate t) (person :initarg :person :accessor person-of :associate t))) --- 3) how do i work with many-to-many association slots, since it is not possible for me to assign a value to the slot. thank you in advance. best regards lukas From eslick at media.mit.edu Tue Jun 17 21:31:36 2008 From: eslick at media.mit.edu (Ian Eslick) Date: Tue, 17 Jun 2008 17:31:36 -0400 Subject: [elephant-devel] using association slots In-Reply-To: <507f2d711f835411a6f341a5e6592daa.squirrel@webmailer.fh-worms.de> References: <507f2d711f835411a6f341a5e6592daa.squirrel@webmailer.fh-worms.de> Message-ID: <9FE61471-A960-4284-9C7F-AACA3A3229BD@media.mit.edu> On Jun 17, 2008, at 3:23 PM, LukasGiessmann wrote: > hello, > > just in case you're wondering why i'm coming up with questions > concerning > marc's topic "associations in the elephant system", i'm trying to > assist > him with this topic, so there might be several questions coming up > in the > next time - hope you don't mind. > to get straight to the point: > > 1) > i tried to work with the last person/job example and the new > association > slots, so i made the following example: I apologize for not documenting or providing better examples for the final association design. Hopefully this will help in the meantime. > --- > (defpclass job() > ((title :initarg :title :accessor title-of :index t) > (company :initarg :company :accessor company-of :index t))) > (defpclass job() ((title :initarg :title :accessor title-of :index t) (company :initarg :company :accessor company-of :index t) (people :accessor job-holders :associate (person job)))) Associations are restricted to mappings between classes. Here we indicate that a virtual slot people (accessor is job-holders) is associated with all objects of class 'person that contain this instances in slot 'job. > (defpclass person() > ((name :initarg :name :accessor name-of :index t) > (job :initarg :job :accessor job-of :associate t))) > (defpclass person() ((name :initarg :name :accessor name-of :index t) (job :initarg :job :accessor job-of :associate job))) Providing :associate job tells the person class that the slot 'job contains instances of type job and to maintain an association to job instances (each person has 1 job, each job may have many people). The initarg for job here requires a patch that I'll submit shortly. > > (defvar *max-persons* 500) > (defvar *max-jobs* 100) > > (defun make-instances () > (with-transaction () > (dotimes (i *max-jobs*) > (let ((current-job (make-instance 'job :title (string (gensym)) > :company (string (gensym))))) > (dotimes (j (/ *max-persons* *max-jobs*)) > (make-instance 'person :name (string (gensym)) :job current- > job)))))) > --- > > after the call of make-instances there are 100 jobs and for every job > there exist 5 persons. > but i have still the following problem: > how can i get all persons which associate a certain job by using the > instance of the job which should be associated by the persons. > i thought on something like: > > --- > (defvar *obj* (first (get-instances-by-class 'job))) > (get-instance-by-value 'person 'job *obj*) > --- (job-holders *obj*) => < list of five people > (setf (job-holders *obj*) (sixth (get-instances-by-class 'person))) (job-holders *obj*) => < list of six people > I made two small enhancements while exploring this example which I will checkin shortly: 1) Can treat a slot associated with another class as an indexed slot: (get-instances-by-value 'person 'job *obj*) 2) Now allows :initargs to set the slot value for association slots that contain a single object. (I may allow this for other types later) > > 2) > what is the better way for using association slots in your opinion, > the one of the example above or a special class which contains only > associations of jobs and persons? > --- > (defpclass p-j-assoc() > ((job :initarg :job :accessor job-of :associate t) > (person :initarg :person :accessor person-of :associate t))) > --- > > 3) > how do i work with many-to-many association slots, since it is not > possible for me to assign a value to the slot. This is what associations are an effective shorthand for; so you don't have to create an explicit object. (defpclass job() ((title :initarg :title :accessor title-of :index t) (company :initarg :company :accessor company-of :index t) (people :accessor job-holders :associate (person job) :many-to-many t))) (defpclass person() ((name :initarg :name :accessor name-of :index t) (jobs :accessor jobs-of :associate (job people) :many-to-many t)) This defines a many-to-many relationship between job and person. Unfortunately currently initargs don't work here. You can add elements by (setf (jobs-of joe) janitor) and get access to all associated elements via (job-holders janitor) => joe. I need to add insert/delete operations (there are stubs in association.lisp) so you can work with the association more directly. I also fixed a bug or two as well. I'll let you know when I've checked in the fixes. Thanks for prompting the exercise! > > thank you in advance. > > > best regards > > lukas > > _______________________________________________ > elephant-devel site list > elephant-devel at common-lisp.net > http://common-lisp.net/mailman/listinfo/elephant-devel From eslick at media.mit.edu Wed Jun 18 01:42:55 2008 From: eslick at media.mit.edu (Ian Eslick) Date: Tue, 17 Jun 2008 21:42:55 -0400 Subject: [elephant-devel] Many patches pushed Message-ID: I just pushed the promised fixes to associations. I also have pushed Alex's Postmodern update and some of his small patches, some fixes to the schema evolution mechanism as well as a partial repair for the cl-sql dup-btree darcs snafu. The CLSQL data store isn't ready yet and there are a couple of known problems in schema evolution that crop up in both postmodern and bdb, but they shouldn't be a big deal if you are experimenting/developing with unstable. I'll fix these shortly. Please let me know if there are any obvious problems out there in the field with postmodern or bdb. Thank you, Ian From eslick at media.mit.edu Thu Jun 19 13:01:28 2008 From: eslick at media.mit.edu (Ian Eslick) Date: Thu, 19 Jun 2008 09:01:28 -0400 Subject: [elephant-devel] using association slots In-Reply-To: <507f2d711f835411a6f341a5e6592daa.squirrel@webmailer.fh-worms.de> References: <507f2d711f835411a6f341a5e6592daa.squirrel@webmailer.fh-worms.de> Message-ID: Hi Lukas, Were you able to try this example again using the latest checkin? Early feedback is better than later! Thanks, Ian On Jun 17, 2008, at 3:23 PM, LukasGiessmann wrote: > hello, > > just in case you're wondering why i'm coming up with questions > concerning > marc's topic "associations in the elephant system", i'm trying to > assist > him with this topic, so there might be several questions coming up > in the > next time - hope you don't mind. > to get straight to the point: > > 1) > i tried to work with the last person/job example and the new > association > slots, so i made the following example: > > --- > (defpclass job() > ((title :initarg :title :accessor title-of :index t) > (company :initarg :company :accessor company-of :index t))) > > (defpclass person() > ((name :initarg :name :accessor name-of :index t) > (job :initarg :job :accessor job-of :associate t))) > > > (defvar *max-persons* 500) > (defvar *max-jobs* 100) > > (defun make-instances () > (with-transaction () > (dotimes (i *max-jobs*) > (let ((current-job (make-instance 'job :title (string (gensym)) > :company (string (gensym))))) > (dotimes (j (/ *max-persons* *max-jobs*)) > (make-instance 'person :name (string (gensym)) :job current- > job)))))) > --- > > after the call of make-instances there are 100 jobs and for every job > there exist 5 persons. > but i have still the following problem: > how can i get all persons which associate a certain job by using the > instance of the job which should be associated by the persons. > i thought on something like: > > --- > (defvar *obj* (first (get-instances-by-class 'job))) > (get-instance-by-value 'person 'job *obj*) > --- > > > 2) > what is the better way for using association slots in your opinion, > the one of the example above or a special class which contains only > associations of jobs and persons? > > --- > (defpclass p-j-assoc() > ((job :initarg :job :accessor job-of :associate t) > (person :initarg :person :accessor person-of :associate t))) > --- > > > 3) > how do i work with many-to-many association slots, since it is not > possible for me to assign a value to the slot. > > thank you in advance. > > > best regards > > lukas > > _______________________________________________ > elephant-devel site list > elephant-devel at common-lisp.net > http://common-lisp.net/mailman/listinfo/elephant-devel From gtarcea at umich.edu Fri Jun 20 12:19:58 2008 From: gtarcea at umich.edu (Glenn Tarcea) Date: Fri, 20 Jun 2008 08:19:58 -0400 Subject: [elephant-devel] Small patch for documentation builds Message-ID: The attached patch fixes a compilation error when trying to build the documentation. Now that elephant includes sb-posix for sbcl, it is no longer required in the make-ref.lisp. Including it causes sbcl to error out when loading elephant (specifically,: (asdf:operate 'asdf:load-op 'elephant :force t) for some reason causes sbcl to rebuild sb-posix and it runs into symbols being defined twice). Thanks, Glenn -------------- next part -------------- A non-text attachment was scrubbed... Name: make-ref.patch Type: application/octet-stream Size: 15457 bytes Desc: not available URL: From gtarcea at umich.edu Fri Jun 20 13:51:34 2008 From: gtarcea at umich.edu (Glenn Tarcea) Date: Fri, 20 Jun 2008 09:51:34 -0400 Subject: [elephant-devel] README for building the documentation in elephant-unstable Message-ID: Attached is a README that describes building the documentation for elephant-unstable. It describes the current set of changes that need to be made to the texinfo files, the changes requires for MacOSX (the strange issue with not finding the .png files), and the make commands to generate the documentation. This file should probably go in the doc directory. Thanks, Glenn -------------- next part -------------- A non-text attachment was scrubbed... Name: README Type: application/octet-stream Size: 1755 bytes Desc: not available URL: From gtarcea at umich.edu Fri Jun 20 15:17:46 2008 From: gtarcea at umich.edu (Glenn Tarcea) Date: Fri, 20 Jun 2008 11:17:46 -0400 Subject: [elephant-devel] Documentation Updates Message-ID: <5B8CCB3C-BBD4-4131-A2D1-C93E01A2ECDF@umich.edu> Attached are updates to the documentation. Specifically I updated: 1. Section: Setting Up Berkeley DB - to include the additional flags (:berkeley-db-max-locks and :berkeley-db-max-objects) along with their descriptions and updated the list of of parameters in the my- config.sexp 2. Added a new section under Installation titled "Using Multiple Versions Of Elephant" that describes how to use ASDF to allow multiple versions of Elephant to be installed on a single system 3. Made a change to one of the Scenarios where the class was system- object, but the methods were referring to system-state (Section: Persistent System Objects) 4. Put placeholders in for the different slot types, titled: Using Cached Slots Using Indexed Slots Using Derived Indexed Slots Using Set Valued Slots 5. Added a write up based on Ian's email on Association Slots titled "Using Association Slots" 6. Updated the Section (4) titled "Berkeley DB Data Store": a. to include references to the new my-config.sexp parameters b. Updated the open-store parameters to include :max- locks :cachesize and :max-objects c. Updated performance tuning to quickly describe what berkeley- db-max-locks, and objects do d. Show an example call to open-store using :max-locks and :max- objects e. Updated performance tuning to include a reference to the Berkeley-DB parameters that max-locks and max-objects refer to and to point the user at DB_CONFIG for additional information. Can someone send me a quick example or jot down a few notes on using Cached and Set Valued slots? Are Derived Indexed Slots still pertinent (I recall a lot of discussion regarding them but don't recall what the outcome was). More documentation updates later. Thanks, Glenn -------------- next part -------------- A non-text attachment was scrubbed... Name: doc-patch-1.patch Type: application/octet-stream Size: 24005 bytes Desc: not available URL: From eslick at media.mit.edu Fri Jun 20 18:42:38 2008 From: eslick at media.mit.edu (Ian Eslick) Date: Fri, 20 Jun 2008 14:42:38 -0400 Subject: [elephant-devel] Documentation Updates In-Reply-To: <5B8CCB3C-BBD4-4131-A2D1-C93E01A2ECDF@umich.edu> References: <5B8CCB3C-BBD4-4131-A2D1-C93E01A2ECDF@umich.edu> Message-ID: <5EF621BA-E912-414B-A69F-869DC8A3278B@media.mit.edu> Great stuff! To answer a couple of questions: - Cached slots aren't ready yet; I'll document when I can work out the kinks: - Indexed slots are the same as the existing indexed-slots descriptions, except for the :inherit slot option so you should be able to copy & paste existing content for these slots and for derived index slots - Derived index slots are still pertinent and will remain ----------------------- Set-valued Slots src/elephant/set-valued-slots.lisp Set-valued slots are a convenient shorthand to using PSETs as slot values to get persistent collections as slot values. (slot-value object 'set-slot) returns a SLOT-SET which implements the PSET interface as well as: map-slot-set - maps over the elements of the set drop-slot-set - drops the set from the DB slot-set-list - returns a list of the elements in the set (setf (slot-value object 'slotname) foo) adds foo to the SLOT-SET in slot named 'slotname however, if foo is a slot-set object, it drops and replaces the existing slot-set (slot-makunbound object 'slotname) Make the slot unbound and drops the SLOT-SET from the DB. Of course these work for accessors too (setf (accessor object) foo) => adds foo to slot set There are a couple of helper macros to simplify expressions like: (slot-set-list (slot-value object 'set-slot)) (set-list object 'slotname) (set-insert foo object 'slotname) (set-remove foo object 'slotname) I'm happy to rename these operators if anyone has opinions on better names... Regards, Ian On Jun 20, 2008, at 11:17 AM, Glenn Tarcea wrote: > Attached are updates to the documentation. Specifically I updated: > > 1. Section: Setting Up Berkeley DB - to include the additional flags > (:berkeley-db-max-locks and :berkeley-db-max-objects) along with > their descriptions and updated the list of of parameters in the my- > config.sexp > > 2. Added a new section under Installation titled "Using Multiple > Versions Of Elephant" that describes how to use ASDF to allow > multiple versions of Elephant to be installed on a single system > > 3. Made a change to one of the Scenarios where the class was system- > object, but the methods were referring to system-state (Section: > Persistent System Objects) > > 4. Put placeholders in for the different slot types, titled: > Using Cached Slots > Using Indexed Slots > Using Derived Indexed Slots > Using Set Valued Slots > > 5. Added a write up based on Ian's email on Association Slots titled > "Using Association Slots" > > 6. Updated the Section (4) titled "Berkeley DB Data Store": > a. to include references to the new my-config.sexp parameters > b. Updated the open-store parameters to include :max- > locks :cachesize and :max-objects > c. Updated performance tuning to quickly describe what berkeley- > db-max-locks, and objects do > d. Show an example call to open-store using :max-locks and :max- > objects > e. Updated performance tuning to include a reference to the > Berkeley-DB parameters that max-locks and max-objects refer to and > to point the user at DB_CONFIG for additional information. > > Can someone send me a quick example or jot down a few notes on using > Cached and Set Valued slots? > > Are Derived Indexed Slots still pertinent (I recall a lot of > discussion regarding them but don't recall what the outcome was). > > More documentation updates later. > > Thanks, > > Glenn > > _______________________________________________ > elephant-devel site list > elephant-devel at common-lisp.net > http://common-lisp.net/mailman/listinfo/elephant-devel From leslie.polzer at gmx.net Fri Jun 20 19:00:34 2008 From: leslie.polzer at gmx.net (Leslie P. Polzer) Date: Fri, 20 Jun 2008 21:00:34 +0200 (CEST) Subject: [elephant-devel] Documentation Updates In-Reply-To: <5EF621BA-E912-414B-A69F-869DC8A3278B@media.mit.edu> References: <5B8CCB3C-BBD4-4131-A2D1-C93E01A2ECDF@umich.edu> <5EF621BA-E912-414B-A69F-869DC8A3278B@media.mit.edu> Message-ID: <63096.88.73.221.247.1213988434.squirrel@mail.stardawn.org> > (set-list object 'slotname) I'd call it set->list, but that's probably a matter of personal preference... From inf1045 at fh-worms.de Fri Jun 20 20:33:49 2008 From: inf1045 at fh-worms.de (LukasGiessmann) Date: Fri, 20 Jun 2008 22:33:49 +0200 (CEST) Subject: [elephant-devel] using association slots In-Reply-To: References: <507f2d711f835411a6f341a5e6592daa.squirrel@webmailer.fh-worms.de> Message-ID: <4321417c4bceee039b2216d10e93b5b2.squirrel@webmailer.fh-worms.de> hello, thank you for the fast answer everything worked out perfectly. i was busy with writing exams, so it took me some time to figure everything out. but as i said before the associations are all performing well now thanks to you. take care lukas > Hi Lukas, > > Were you able to try this example again using the latest checkin? > Early feedback is better than later! > > Thanks, > Ian > > On Jun 17, 2008, at 3:23 PM, LukasGiessmann wrote: > >> hello, >> >> just in case you're wondering why i'm coming up with questions >> concerning >> marc's topic "associations in the elephant system", i'm trying to >> assist >> him with this topic, so there might be several questions coming up >> in the >> next time - hope you don't mind. >> to get straight to the point: >> >> 1) >> i tried to work with the last person/job example and the new >> association >> slots, so i made the following example: >> >> --- >> (defpclass job() >> ((title :initarg :title :accessor title-of :index t) >> (company :initarg :company :accessor company-of :index t))) >> >> (defpclass person() >> ((name :initarg :name :accessor name-of :index t) >> (job :initarg :job :accessor job-of :associate t))) >> >> >> (defvar *max-persons* 500) >> (defvar *max-jobs* 100) >> >> (defun make-instances () >> (with-transaction () >> (dotimes (i *max-jobs*) >> (let ((current-job (make-instance 'job :title (string (gensym)) >> :company (string (gensym))))) >> (dotimes (j (/ *max-persons* *max-jobs*)) >> (make-instance 'person :name (string (gensym)) :job current- >> job)))))) >> --- >> >> after the call of make-instances there are 100 jobs and for every job >> there exist 5 persons. >> but i have still the following problem: >> how can i get all persons which associate a certain job by using the >> instance of the job which should be associated by the persons. >> i thought on something like: >> >> --- >> (defvar *obj* (first (get-instances-by-class 'job))) >> (get-instance-by-value 'person 'job *obj*) >> --- >> >> >> 2) >> what is the better way for using association slots in your opinion, >> the one of the example above or a special class which contains only >> associations of jobs and persons? >> >> --- >> (defpclass p-j-assoc() >> ((job :initarg :job :accessor job-of :associate t) >> (person :initarg :person :accessor person-of :associate t))) >> --- >> >> >> 3) >> how do i work with many-to-many association slots, since it is not >> possible for me to assign a value to the slot. >> >> thank you in advance. >> >> >> best regards >> >> lukas >> >> _______________________________________________ >> 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 > From leslie.polzer at gmx.net Mon Jun 23 12:16:27 2008 From: leslie.polzer at gmx.net (Leslie P. Polzer) Date: Mon, 23 Jun 2008 14:16:27 +0200 (CEST) Subject: [elephant-devel] Duplicate values in PM-BTREE-INDEX Message-ID: <63272.88.73.214.207.1214223387.squirrel@mail.stardawn.org> I don't understand this snippet in pm-btree.lisp (MAKE-TABLE): (when (duplicates-allowed-p bt) (cl-postgres:exec-query (active-connection) (format nil "create unique index ~a_idx on ~a(qi,value);" (table-of bt) (table-of bt)))) Why make the index unique when the btree allows duplicates? This breaks inverted indices with duplicate values. Removing the 'unique' qualifier lets it still pass all tests plus making duplicate values work like they should. I work with stable, but I guess the new code still has this. Leslie From leslie.polzer at gmx.net Mon Jun 23 12:30:45 2008 From: leslie.polzer at gmx.net (Leslie P. Polzer) Date: Mon, 23 Jun 2008 14:30:45 +0200 (CEST) Subject: [elephant-devel] Duplicate values in PM-BTREE-INDEX In-Reply-To: <63272.88.73.214.207.1214223387.squirrel@mail.stardawn.org> References: <63272.88.73.214.207.1214223387.squirrel@mail.stardawn.org> Message-ID: <61274.88.73.214.207.1214224245.squirrel@mail.stardawn.org> > This breaks inverted indices with duplicate values. I retract this statement, I think the problem was caused by some other thing. But I still don't understand it. :) Leslie From tjg at pentaside.org Mon Jun 23 15:20:30 2008 From: tjg at pentaside.org (Tayssir John Gabbour) Date: Mon, 23 Jun 2008 17:20:30 +0200 Subject: [elephant-devel] Btree-index-cursor issues Message-ID: <485FBF3E.2080604@pentaside.org> Hi! Is there something like WITH-INDEX-CURSOR or WITH-BTREE-INDEX-CURSOR? Also, btree-index-cursors (under Postmodern) can't print, signalling an unbound-slot error: (open-store *my-spec*) (add-to-root :blah (make-indexed-btree)) (add-index (get-from-root :blah) :index-name :ind :key-form '(lambda (secondary-db primary-key value) (declare (ignore secondary-db primary-key)) (if (evenp value) (values t 0) (values t 1)))) (setf (get-value :test1 (get-from-root :blah)) 1 (get-value :test2 (get-from-root :blah)) 2 (get-value :test3 (get-from-root :blah)) 3) (defparameter *blah* (make-cursor (get-index (get-from-root :blah) :ind))) *blah* ;; debugger invoked on a UNBOUND-SLOT in thread ;; #: ;; (A UNBOUND-SLOT was caught when trying to print ;; SB-DEBUG:*DEBUG-CONDITION* when entering the debugger. ;; Printing was aborted and the UNBOUND-SLOT was stored in ;; SB-DEBUG::*NESTED-DEBUG-CONDITION*.) ;; (CELL-ERROR-NAME SB-DEBUG::*NESTED-DEBUG-CONDITION*) = ;; DB-POSTMODERN::NAME (I'm running Elephant 0.9, Postmodern 1.12, SBCL 1.0.12 and Debian Linux.) Thanks, Tayssir From eslick at media.mit.edu Mon Jun 23 15:30:41 2008 From: eslick at media.mit.edu (Ian Eslick) Date: Mon, 23 Jun 2008 11:30:41 -0400 Subject: [elephant-devel] Btree-index-cursor issues In-Reply-To: <485FBF3E.2080604@pentaside.org> References: <485FBF3E.2080604@pentaside.org> Message-ID: <725CA0C2-42A5-4674-AFFD-5DE601A79328@media.mit.edu> Nope, easy enough to add one if you want to provide a patch to elephant-unstable in the file src/elephant/collections.lisp. There is with-class-cursor and with-inverted-cursor which deals with class and slot indices. Ian On Jun 23, 2008, at 11:20 AM, Tayssir John Gabbour wrote: > Hi! > > Is there something like WITH-INDEX-CURSOR or WITH-BTREE-INDEX-CURSOR? > > > > Also, btree-index-cursors (under Postmodern) can't print, signalling > an unbound-slot error: > > > (open-store *my-spec*) > (add-to-root :blah (make-indexed-btree)) > (add-index (get-from-root :blah) > :index-name :ind > :key-form '(lambda (secondary-db primary-key value) > (declare (ignore secondary-db primary-key)) > (if (evenp value) > (values t 0) > (values t 1)))) > (setf (get-value :test1 (get-from-root :blah)) > 1 > (get-value :test2 (get-from-root :blah)) > 2 > (get-value :test3 (get-from-root :blah)) > 3) > (defparameter *blah* (make-cursor (get-index (get-from- > root :blah) :ind))) > > > *blah* > > ;; debugger invoked on a UNBOUND-SLOT in thread > ;; #: > ;; (A UNBOUND-SLOT was caught when trying to print > ;; SB-DEBUG:*DEBUG-CONDITION* when entering the debugger. > ;; Printing was aborted and the UNBOUND-SLOT was stored in > ;; SB-DEBUG::*NESTED-DEBUG-CONDITION*.) > ;; (CELL-ERROR-NAME SB-DEBUG::*NESTED-DEBUG-CONDITION*) = > ;; DB-POSTMODERN::NAME > > > > > (I'm running Elephant 0.9, Postmodern 1.12, SBCL 1.0.12 and Debian > Linux.) > > > Thanks, > Tayssir > _______________________________________________ > elephant-devel site list > elephant-devel at common-lisp.net > http://common-lisp.net/mailman/listinfo/elephant-devel From arnaudpourseb at gmail.com Tue Jun 24 18:26:42 2008 From: arnaudpourseb at gmail.com (Sebastian Georges) Date: Tue, 24 Jun 2008 13:26:42 -0500 Subject: [elephant-devel] Bug in get-instances-by-value Message-ID: <9f8fd8120806241126n71a81bc1y9aba1b7059e58d02@mail.gmail.com> Hi everybody, (elephant:defpclass messout () ((message :accessor messout-message :initarg :message :initform nil :index t) (creation-date :accessor messout-creation-date :initarg :creation-date :initform nil :index t) (sent :accessor messout-sent :initarg :sent :initform "false" :index t)) (:index t)) (defun queue-messout (message) "Add a message in the sending queue." (format t "Queue message for sercen: ~a~&" message) (make-instance 'messout :message message :creation-date (local-time:local-time) :sent "false")) (defun send-sercen-messout () "Send a consecutive serie of messages to sercen" (elephant:ensure-transaction () (let* ((messages (elephant:get-instances-by-value 'messout 'sent "false")) (sorted-message (sort messages #'local-time:local-time< :key 'messout-creation-date))) (dolist (messout sorted-message) (format t "Send message to sercen: ~a~&" (messout-message messout)) (setf (messout-sent messout) "true"))))) Using this class definition over a fresh bdb base with unstable, and executing the following shows the normal behaviour. (queue-messout "USERORG|1111|2802") (queue-messout "USERORG|2222|2802") (queue-messout "USERORG|3333|2802") (queue-messout "USERORG|4444|2802") (elephant:get-instances-by-value 'messout 'sent "false") -> (# # # #) (elephant:get-instances-by-value 'messout 'sent "true") -> NIL (send-sercen-messout) -> NIL (elephant:get-instances-by-value 'messout 'sent "false") -> NIL (elephant:get-instances-by-value 'messout 'sent "true") -> (# # # #) But if you replace "true" and "false" by t and nil, the two last get-instances-by-value return exactly the same result (the whole 4 objects). (elephant:get-instances-by-value 'messout 'sent nil) (# # # #) (elephant:get-instances-by-value 'messout 'sent t) (# # # #) Hope this is descriptive enough. -------------- next part -------------- An HTML attachment was scrubbed... URL: From pjm at spe.com Wed Jun 25 23:30:27 2008 From: pjm at spe.com (Patrick May) Date: Wed, 25 Jun 2008 19:30:27 -0400 Subject: [elephant-devel] Problem installing with latest Clozure Message-ID: <72A138AC-671B-459C-88D5-A03A7B214BDF@spe.com> Hi, I'm trying to build Elephant with the latest Clozure and BDB on a PPC Mac. My my-config.sexp looks like this: #+(and (or sbcl allegro openmcl lispworks) (not (or mswindows windows)) (or macosx darwin)) ((:compiler . :gcc) (:berkeley-db-include-dir . "/usr/local/BerkeleyDB.4.7/include/") (:berkeley-db-lib-dir . "/usr/local/BerkeleyDB.4.7/lib/") (:berkeley-db-lib . "/usr/local/BerkeleyDB.4.7/lib/libdb-4.7.dylib") (:berkeley-db-deadlock . "/usr/local/BerkeleyDB.4.7/bin/db_deadlock") (:berkeley-db-cachesize . 5242880) ; default = 20971520 (:berkeley-db-map-degree2 . t) (:clsql-lib-paths . nil) (:prebuilt-libraries . nil)) When I try to load Elephant, I get this output: Welcome to Clozure Common Lisp Version 1.2-r9226-RC1 (DarwinPPC32)! ? (asdf:operate 'asdf:load-op :elephant) ; loading system definition from elephant.asd into # ; registering # as ELEPHANT ; loading system definition from /usr/local/asdf-install/site-systems/ cl-base64.asd into # ; registering # as CL-BASE64 ; registering # as CL-BASE64-TESTS ; loading system definition from /usr/local/asdf-install/site-systems/ uffi.asd into # ; registering # as UFFI ; $ gcc -bundle -fPIC -Wall -O2 -g /Users/Patrick/src/lisp/elephant/ src/memutil/libmemutil.c -o /Users/Patrick/src/lisp/elephant/src/ memutil/libmemutil.dylib -lm Attempting to load libmemutil.dylib... Loaded /Users/Patrick/src/lisp/elephant/src/memutil/libmemutil.dylib ;Compiler warnings for "/Users/Patrick/src/lisp/elephant/src/elephant/ controller.lisp" : ; In INITIALIZE-USER-PARAMETERS: Unused lexical variable VARIABLE ; In (CONTROLLER-PROPERTIES (STORE-CONTROLLER)): In the call to GET- FROM-ROOT with arguments (*ELEPHANT-PROPERTIES-LABEL* :STORE- CONTROLLER SC), ; the keyword argument :STORE-CONTROLLER is not one of (:SC), which are recognized ; by the definition of GET-FROM-ROOT visible in the current compilation unit. ; In (SET-ELE-PROPERTY (T T)): In the call to GET-FROM-ROOT with arguments (*ELEPHANT-PROPERTIES-LABEL* :STORE-CONTROLLER SC), ; the keyword argument :STORE-CONTROLLER is not one of (:SC), which are recognized ; by the definition of GET-FROM-ROOT visible in the current compilation unit. ; In (GET-ELE-PROPERTY (T)): In the call to GET-FROM-ROOT with arguments (*ELEPHANT-PROPERTIES-LABEL* :STORE-CONTROLLER SC), ; the keyword argument :STORE-CONTROLLER is not one of (:SC), which are recognized ; by the definition of GET-FROM-ROOT visible in the current compilation unit. ; Warning: COMPILE-FILE warned while performing # on #. ; While executing: #, in process listener(1). ;Compiler warnings for "/Users/Patrick/src/lisp/elephant/src/elephant/ collections.lisp" : ; In (MAP-BTREE (T BTREE)): Unused lexical variable ARGS ; In (MAP-INDEX (T BTREE-INDEX)): Unused lexical variable ARGS ; Warning: COMPILE-FILE warned while performing # on #. ; While executing: #, in process listener(1). ;Compiler warnings for "/Users/Patrick/src/lisp/elephant/src/elephant/ unicode2.lisp" : ; In (DESERIALIZE-STRING :AROUND (T T)): Unused lexical variable TEMP-STRING ; In (DESERIALIZE-STRING :AROUND (T T)): Unused lexical variable BSTREAM ; Warning: COMPILE-FILE warned while performing # on #. ; While executing: #, in process listener(1). ;Compiler warnings for "/Users/Patrick/src/lisp/elephant/src/elephant/ classindex-utils.lisp" : ; In ELEPHANT::APPLY-SYNCH-RULE: In the call to ELEPHANT:ADD-CLASS- DERIVED-INDEX with arguments (CLASS ELEPHANT::NAME :UPDATE-CLASS NIL), ; the variable portion of the argument list (NIL) contains an odd number ; of arguments and so can't be used to initialize keyword parameters ; for the definition of ELEPHANT:ADD-CLASS-DERIVED-INDEX visible in the current compilation unit. ;Compiler warnings for "/Users/Patrick/src/lisp/elephant/src/elephant/ classes.lisp" : ; In (REINITIALIZE-INSTANCE :AROUND (ELEPHANT:PERSISTENT- METACLASS)): In the call to ELEPHANT::WIPE-CLASS-INDEXING with arguments (ELEPHANT::INSTANCE ELEPHANT::CLASS-IDX), ; the variable portion of the argument list (ELEPHANT::CLASS-IDX) contains an odd number ; of arguments and so can't be used to initialize keyword parameters ; for the definition of ELEPHANT::WIPE-CLASS-INDEXING visible in the current compilation unit. NIL Has anyone managed to build successfully with this combination? Thanks, Patrick From eslick at media.mit.edu Thu Jun 26 13:01:09 2008 From: eslick at media.mit.edu (Ian Eslick) Date: Thu, 26 Jun 2008 09:01:09 -0400 Subject: [elephant-devel] Problem installing with latest Clozure In-Reply-To: <72A138AC-671B-459C-88D5-A03A7B214BDF@spe.com> References: <72A138AC-671B-459C-88D5-A03A7B214BDF@spe.com> Message-ID: <06A7F5B2-17FD-4E33-8485-670B39DE3875@media.mit.edu> Those errors seem to indicate a pretty messed up installation. Can you pull a fresh version of Elephant from the elphant-unstable darcs repository (http://www.common-lisp.net/project/elephant/darcs/elephant-unstable ) and try again. The build did once work on Clozure as recent as 0.9 - but I'd rather put debugging time into unstable as we're hoping to release a 1.0beta1 as soon as we can. Thank you, Ian On Jun 25, 2008, at 7:30 PM, Patrick May wrote: > Hi, > > I'm trying to build Elephant with the latest Clozure and BDB on a > PPC Mac. My my-config.sexp looks like this: > > #+(and (or sbcl allegro openmcl lispworks) (not (or mswindows > windows)) (or macosx darwin)) > ((:compiler . :gcc) > (:berkeley-db-include-dir . "/usr/local/BerkeleyDB.4.7/include/") > (:berkeley-db-lib-dir . "/usr/local/BerkeleyDB.4.7/lib/") > (:berkeley-db-lib . "/usr/local/BerkeleyDB.4.7/lib/libdb-4.7.dylib") > (:berkeley-db-deadlock . "/usr/local/BerkeleyDB.4.7/bin/db_deadlock") > (:berkeley-db-cachesize . 5242880) ; default = 20971520 > (:berkeley-db-map-degree2 . t) > (:clsql-lib-paths . nil) > (:prebuilt-libraries . nil)) > > When I try to load Elephant, I get this output: > > Welcome to Clozure Common Lisp Version 1.2-r9226-RC1 (DarwinPPC32)! > ? (asdf:operate 'asdf:load-op :elephant) > ; loading system definition from elephant.asd into # > ; registering # as ELEPHANT > ; loading system definition from /usr/local/asdf-install/site- > systems/cl-base64.asd into # > ; registering # as CL-BASE64 > ; registering # as CL-BASE64-TESTS > ; loading system definition from /usr/local/asdf-install/site- > systems/uffi.asd into # > ; registering # as UFFI > ; $ gcc -bundle -fPIC -Wall -O2 -g /Users/Patrick/src/lisp/elephant/ > src/memutil/libmemutil.c -o /Users/Patrick/src/lisp/elephant/src/ > memutil/libmemutil.dylib -lm > Attempting to load libmemutil.dylib... > Loaded /Users/Patrick/src/lisp/elephant/src/memutil/libmemutil.dylib > ;Compiler warnings for "/Users/Patrick/src/lisp/elephant/src/ > elephant/controller.lisp" : > ; In INITIALIZE-USER-PARAMETERS: Unused lexical variable VARIABLE > ; In (CONTROLLER-PROPERTIES (STORE-CONTROLLER)): In the call to > GET-FROM-ROOT with arguments (*ELEPHANT-PROPERTIES-LABEL* :STORE- > CONTROLLER SC), > ; the keyword argument :STORE-CONTROLLER is not one of (:SC), > which are recognized > ; by the definition of GET-FROM-ROOT visible in the current > compilation unit. > ; In (SET-ELE-PROPERTY (T T)): In the call to GET-FROM-ROOT with > arguments (*ELEPHANT-PROPERTIES-LABEL* :STORE-CONTROLLER SC), > ; the keyword argument :STORE-CONTROLLER is not one of (:SC), > which are recognized > ; by the definition of GET-FROM-ROOT visible in the current > compilation unit. > ; In (GET-ELE-PROPERTY (T)): In the call to GET-FROM-ROOT with > arguments (*ELEPHANT-PROPERTIES-LABEL* :STORE-CONTROLLER SC), > ; the keyword argument :STORE-CONTROLLER is not one of (:SC), > which are recognized > ; by the definition of GET-FROM-ROOT visible in the current > compilation unit. > ; Warning: COMPILE-FILE warned while performing # #x8485A96> on #. > ; While executing: # ASDF:CL-SOURCE-FILE)>, in process listener(1). > ;Compiler warnings for "/Users/Patrick/src/lisp/elephant/src/ > elephant/collections.lisp" : > ; In (MAP-BTREE (T BTREE)): Unused lexical variable ARGS > ; In (MAP-INDEX (T BTREE-INDEX)): Unused lexical variable ARGS > ; Warning: COMPILE-FILE warned while performing # #x8485A96> on #. > ; While executing: # ASDF:CL-SOURCE-FILE)>, in process listener(1). > ;Compiler warnings for "/Users/Patrick/src/lisp/elephant/src/ > elephant/unicode2.lisp" : > ; In (DESERIALIZE-STRING :AROUND (T T)): Unused lexical variable > TEMP-STRING > ; In (DESERIALIZE-STRING :AROUND (T T)): Unused lexical variable > BSTREAM > ; Warning: COMPILE-FILE warned while performing # #x8485A96> on #. > ; While executing: # ASDF:CL-SOURCE-FILE)>, in process listener(1). > ;Compiler warnings for "/Users/Patrick/src/lisp/elephant/src/ > elephant/classindex-utils.lisp" : > ; In ELEPHANT::APPLY-SYNCH-RULE: In the call to ELEPHANT:ADD-CLASS- > DERIVED-INDEX with arguments (CLASS ELEPHANT::NAME :UPDATE-CLASS NIL), > ; the variable portion of the argument list (NIL) contains an > odd number > ; of arguments and so can't be used to initialize keyword > parameters > ; for the definition of ELEPHANT:ADD-CLASS-DERIVED-INDEX visible > in the current compilation unit. > ;Compiler warnings for "/Users/Patrick/src/lisp/elephant/src/ > elephant/classes.lisp" : > ; In (REINITIALIZE-INSTANCE :AROUND (ELEPHANT:PERSISTENT- > METACLASS)): In the call to ELEPHANT::WIPE-CLASS-INDEXING with > arguments (ELEPHANT::INSTANCE ELEPHANT::CLASS-IDX), > ; the variable portion of the argument list (ELEPHANT::CLASS- > IDX) contains an odd number > ; of arguments and so can't be used to initialize keyword > parameters > ; for the definition of ELEPHANT::WIPE-CLASS-INDEXING visible in > the current compilation unit. > NIL > > Has anyone managed to build successfully with this combination? > > Thanks, > > Patrick > > _______________________________________________ > elephant-devel site list > elephant-devel at common-lisp.net > http://common-lisp.net/mailman/listinfo/elephant-devel From pjm at spe.com Thu Jun 26 20:57:23 2008 From: pjm at spe.com (Patrick May) Date: Thu, 26 Jun 2008 16:57:23 -0400 Subject: [elephant-devel] Problem installing with latest Clozure In-Reply-To: <06A7F5B2-17FD-4E33-8485-670B39DE3875@media.mit.edu> References: <72A138AC-671B-459C-88D5-A03A7B214BDF@spe.com> <06A7F5B2-17FD-4E33-8485-670B39DE3875@media.mit.edu> Message-ID: <7A9AA753-5174-4A6E-8BD5-130D8EE792FE@spe.com> On 26 Jun 2008, at 09:01, Ian Eslick wrote: > Those errors seem to indicate a pretty messed up installation. Can > you pull a fresh version of Elephant from the elphant-unstable darcs > repository (http://www.common-lisp.net/project/elephant/darcs/elephant-unstable > ) and try again. The build did once work on Clozure as recent as > 0.9 - but I'd rather put debugging time into unstable as we're > hoping to release a 1.0beta1 as soon as we can. > > Thank you, > Ian Will do, as soon as I have a chance. Thanks, Regards, Patrick ---- pjm at spe.com S P Engineering, Inc. Large scale, mission-critical, distributed OO systems design and implementation. (C++, Java, Common Lisp, Jini, middleware, SOA) From alex.mizrahi at gmail.com Thu Jun 26 13:21:02 2008 From: alex.mizrahi at gmail.com (Alex Mizrahi) Date: Thu, 26 Jun 2008 13:21:02 +0000 (UTC) Subject: [elephant-devel] Re: Duplicate values in PM-BTREE-INDEX References: <63272.88.73.214.207.1214223387.squirrel@mail.stardawn.org> Message-ID: > Why make the index unique when the btree allows duplicates? in normal btrees keys are unique. in btrees-with-duplicates key+value pairs are unique. that's the idea. for normal btrees we create index on keys only, for dup-btrees -- index on pairs. allowing duplicated key+value pairs will totally break the way cursor works, because they assume that key+value pair identifies current row. (and perhaps it will break some other things, like remove-kv-pair). it's possible to implement duplicated pairs support, but that's pretty hard, and i don't see any practical reason for this. > This breaks inverted indices with duplicate values. it does not. value->oid pairs are always unique. From alex.mizrahi at gmail.com Thu Jun 26 13:39:51 2008 From: alex.mizrahi at gmail.com (Alex Mizrahi) Date: Thu, 26 Jun 2008 13:39:51 +0000 (UTC) Subject: [elephant-devel] Re: Btree-index-cursor issues References: <485FBF3E.2080604@pentaside.org> Message-ID: > (defparameter *blah* (make-cursor (get-index (get-from-root :blah) :ind))) > > *blah* works for me: ELE> (defparameter *blah* (make-cursor (get-index (get-from-root :blah) :ind))) *BLAH* ELE> *blah* # > ;; Printing was aborted and the UNBOUND-SLOT was stored in > ;; SB-DEBUG::*NESTED-DEBUG-CONDITION*.) > ;; (CELL-ERROR-NAME SB-DEBUG::*NESTED-DEBUG-CONDITION*) = > ;; DB-POSTMODERN::NAME there is no NAME slot to my knowledge > (I'm running Elephant 0.9, Postmodern 1.12, SBCL 1.0.12 and Debian Linux.) you mean a release version? try out one from darcs, that's what i'm using here From eslick at media.mit.edu Fri Jun 27 00:12:46 2008 From: eslick at media.mit.edu (=?utf-8?B?SWFuIEVzbGljaw==?=) Date: Fri, 27 Jun 2008 00:12:46 +0000 Subject: [elephant-devel] Re: Duplicate values in PM-BTREE-INDEX In-Reply-To: References: <63272.88.73.214.207.1214223387.squirrel@mail.stardawn.org> Message-ID: <1820284179-1214525621-cardhu_decombobulator_blackberry.rim.net-1828990326-@bxe123.bisx.prod.on.blackberry> We don't declare secondary indicies on dup-btrees, in case that wasn't clear... Sent from my BlackBerry -----Original Message----- From: Alex Mizrahi Date: Thu, 26 Jun 2008 13:21:02 To:elephant-devel at common-lisp.net Subject: [elephant-devel] Re: Duplicate values in PM-BTREE-INDEX > Why make the index unique when the btree allows duplicates? in normal btrees keys are unique. in btrees-with-duplicates key+value pairs are unique. that's the idea. for normal btrees we create index on keys only, for dup-btrees -- index on pairs. allowing duplicated key+value pairs will totally break the way cursor works, because they assume that key+value pair identifies current row. (and perhaps it will break some other things, like remove-kv-pair). it's possible to implement duplicated pairs support, but that's pretty hard, and i don't see any practical reason for this. > This breaks inverted indices with duplicate values. it does not. value->oid pairs are always unique. _______________________________________________ elephant-devel site list elephant-devel at common-lisp.net http://common-lisp.net/mailman/listinfo/elephant-devel From pjm at spe.com Fri Jun 27 02:16:00 2008 From: pjm at spe.com (Patrick May) Date: Thu, 26 Jun 2008 22:16:00 -0400 Subject: [elephant-devel] Problem installing with latest Clozure In-Reply-To: <06A7F5B2-17FD-4E33-8485-670B39DE3875@media.mit.edu> References: <72A138AC-671B-459C-88D5-A03A7B214BDF@spe.com> <06A7F5B2-17FD-4E33-8485-670B39DE3875@media.mit.edu> Message-ID: <6457A671-BF86-42F9-8605-C08D2DBF1EB6@spe.com> On 26 Jun 2008, at 09:01, Ian Eslick wrote: > Those errors seem to indicate a pretty messed up installation. Can > you pull a fresh version of Elephant from the elphant-unstable darcs > repository (http://www.common-lisp.net/project/elephant/darcs/elephant-unstable > ) and try again. The build did once work on Clozure as recent as > 0.9 - but I'd rather put debugging time into unstable as we're > hoping to release a 1.0beta1 as soon as we can. > > Thank you, > Ian I used darcs to grab elephant-unstable and got the following results: Welcome to Clozure Common Lisp Version 1.2-r9226-RC1 (DarwinPPC32)! ? (asdf:operate 'asdf:load-op :elephant) ; loading system definition from elephant.asd into # ; registering # as ELEPHANT ; loading system definition from /usr/local/asdf-install/site-systems/ cl-base64.asd into # ; registering # as CL-BASE64 ; registering # as CL-BASE64-TESTS ; $ gcc -bundle -fPIC -Wall -g -O2 -g /Users/Patrick/src/lisp/elephant- unstable/src/memutil/libmemutil.c -o /Users/Patrick/src/lisp/elephant- unstable/src/memutil/libmemutil.dylib -lm Attempting to load libmemutil.dylib... Loaded /Users/Patrick/src/lisp/elephant-unstable/src/memutil/ libmemutil.dylib ;Compiler warnings for "/Users/Patrick/src/lisp/elephant-unstable/src/ elephant/classes.lisp" : ; In (SHARED-INITIALIZE :AROUND (PERSISTENT-METACLASS T)): Unused lexical variable INDEX ; In (REINITIALIZE-INSTANCE :AROUND (PERSISTENT-METACLASS)): Unused lexical variable INITARGS ; In (INITIALIZE-INSTANCE :AROUND (PERSISTENT-OBJECT)): Unused lexical variable INITARGS ; In (RECREATE-INSTANCE (PERSISTENT-OBJECT)) inside an anonymous lambda form: Unused lexical variable ARGS ; Warning: COMPILE-FILE warned while performing # on #. ; While executing: #, in process listener(1). ;Compiler warnings for "/Users/Patrick/src/lisp/elephant-unstable/src/ elephant/controller.lisp" : ; In (OPEN-CONTROLLER :AFTER (STORE-CONTROLLER)): Unused lexical variable ARGS ; In (CONTROLLER-PROPERTIES (STORE-CONTROLLER)): In the call to GET- FROM-ROOT with arguments (*ELEPHANT-PROPERTIES-LABEL* :STORE- CONTROLLER SC), ; the keyword argument :STORE-CONTROLLER is not one of (:SC), which are recognized ; by the definition of GET-FROM-ROOT visible in the current compilation unit. ; In (SET-ELE-PROPERTY (T T)): In the call to GET-FROM-ROOT with arguments (*ELEPHANT-PROPERTIES-LABEL* :STORE-CONTROLLER SC), ; the keyword argument :STORE-CONTROLLER is not one of (:SC), which are recognized ; by the definition of GET-FROM-ROOT visible in the current compilation unit. ; In (GET-ELE-PROPERTY (T)): In the call to GET-FROM-ROOT with arguments (*ELEPHANT-PROPERTIES-LABEL* :STORE-CONTROLLER SC), ; the keyword argument :STORE-CONTROLLER is not one of (:SC), which are recognized ; by the definition of GET-FROM-ROOT visible in the current compilation unit. ; Warning: COMPILE-FILE warned while performing # on #. ; While executing: #, in process listener(1). ;Compiler warnings for "/Users/Patrick/src/lisp/elephant-unstable/src/ elephant/schema-evolution.lisp" : ; In (UPGRADE-ALL-MEMORY-INSTANCES (STORE-CONTROLLER)): Undeclared free variable VALUE ; Warning: COMPILE-FILE warned while performing # on #. ; While executing: #, in process listener(1). ; Warning: COMPILE-FILE failed while performing # on #. ; While executing: #, in process listener(1). ;Compiler warnings for "/Users/Patrick/src/lisp/elephant-unstable/src/ elephant/collections.lisp" : ; In (MAP-BTREE (T BTREE)): Unused lexical variable ARGS ; In (MAP-INDEX (T BTREE-INDEX)): Unused lexical variable ARGS ; Warning: COMPILE-FILE warned while performing # on #. ; While executing: #, in process listener(1). ;Compiler warnings for "/Users/Patrick/src/lisp/elephant-unstable/src/ elephant/query.lisp" : ; In SORT-TUPLES: Unused lexical variable KEY-FN ; Warning: COMPILE-FILE warned while performing # on #. ; While executing: #, in process listener(1). NIL ? (use-package :elephant) T ? (open-store :bdb "/Users/Patrick/src/lisp/elephant-dbb/") > Error: Failed assertion: (CONSP ELEPHANT::SPEC) > While executing: CCL::%ASSERTION-FAILURE, in process listener(1). > Type :GO to continue, :POP to abort, :R for a list of available restarts. > If continued: test the assertion again. > Type :? for other options. 1 > Any ideas? Thanks, Patrick From cavandusen at gmail.com Fri Jun 27 02:21:33 2008 From: cavandusen at gmail.com (Chris Van Dusen) Date: Thu, 26 Jun 2008 21:21:33 -0500 Subject: [elephant-devel] Problem installing with latest Clozure In-Reply-To: <7A9AA753-5174-4A6E-8BD5-130D8EE792FE@spe.com> References: <72A138AC-671B-459C-88D5-A03A7B214BDF@spe.com> <06A7F5B2-17FD-4E33-8485-670B39DE3875@media.mit.edu> <7A9AA753-5174-4A6E-8BD5-130D8EE792FE@spe.com> Message-ID: I'm having a problem on PPC Mac with CCL, as well, although the error that I'm getting is: Berkeley DB error #22: Invalid argument [Condition of type BDB-DB-ERROR] In the Slime buffer, it shows: ; loading system definition from /Users/chrisvandusen/.asdf-install- dir/systems/ele-bdb.asd into # ; registering # as ELE-BDB Attempting to load libmemutil.dylib... Loaded /Users/chrisvandusen/.asdf-install-dir/site/elephant-unstable/ src/memutil/libmemutil.dylib ; $ gcc -L/usr/local/BerkeleyDB.4.7/lib/ -I/usr/local/BerkeleyDB.4.7/ include/ -bundle -fPIC -Wall -g -O2 -g /Users/chrisvandusen/.asdf- install-dir/site/elephant-unstable/src/db-bdb/libberkeley-db.c -o / Users/chrisvandusen/.asdf-install-dir/site/elephant-unstable/src/db- bdb/libberkeley-db.dylib -lm -ldb-4.7 Loading /usr/local/BerkeleyDB.4.7/lib/libdb-4.7.dylib Attempting to load libberkeley-db.dylib... Loaded /Users/chrisvandusen/.asdf-install-dir/site/elephant-unstable/ src/db-bdb/libberkeley-db.dylib ; Warning: Redefining STRUCT DB-LOCK fields to be: ; (# OFF 32 at 0> # # # MODE 32 at 96>) ; were ; (# # # #) ; While executing: CCL::PARSE-FOREIGN-RECORD-TYPE, in process repl- thread(5). ; Warning: Redefining STRUCT DB-LOCKREQ fields to be: ; (# OP 32 at 0> # # TIMEOUT 32 at 64> # OBJ 8 at 96> # LOCK 32 at 128>) ; were ; (# # # # #) ; While executing: CCL::PARSE-FOREIGN-RECORD-TYPE, in process repl- thread(5). ; Warning: Redefining STRUCT DB-LOCK fields to be: ; (# OFF 32 at 0> # # # MODE 32 at 96>) ; were ; (# # # #) ; While executing: CCL::PARSE-FOREIGN-RECORD-TYPE, in process repl- thread(5). ; Warning: Redefining STRUCT DB-LOCKREQ fields to be: ; (# OP 32 at 0> # # TIMEOUT 32 at 64> # OBJ 8 at 96> # LOCK 32 at 128>) ; were ; (# # # # #) ; While executing: CCL::PARSE-FOREIGN-RECORD-TYPE, in process repl- thread(5). ;Compiler warnings for "/Users/chrisvandusen/.asdf-install-dir/site/ elephant-unstable/src/db-bdb/bdb-controller.lisp" : ; In (DEFAULT-CLASS-ID (T BDB-STORE-CONTROLLER)): Duplicate keyform QUOTE in ECASE statement. ; In (DEFAULT-CLASS-ID (T BDB-STORE-CONTROLLER)): Duplicate keyform QUOTE in ECASE statement. ; In (DEFAULT-CLASS-ID (T BDB-STORE-CONTROLLER)): Duplicate keyform QUOTE in ECASE statement. ; Warning: COMPILE-FILE warned while performing # on #. ; While executing: #, in process repl-thread(5). ; Warning: COMPILE-FILE failed while performing # on #. ; While executing: #, in process repl-thread(5). Let me know if there is any more information that I can provide. Thanks, Chris. On Jun 26, 2008, at 3:57 PM, Patrick May wrote: > On 26 Jun 2008, at 09:01, Ian Eslick wrote: >> Those errors seem to indicate a pretty messed up installation. >> Can you pull a fresh version of Elephant from the elphant-unstable >> darcs repository (http://www.common-lisp.net/project/elephant/ >> darcs/elephant-unstable) and try again. The build did once work >> on Clozure as recent as 0.9 - but I'd rather put debugging time >> into unstable as we're hoping to release a 1.0beta1 as soon as we >> can. >> >> Thank you, >> Ian > > Will do, as soon as I have a chance. Thanks, > > Regards, > > Patrick > > ---- > pjm at spe.com > S P Engineering, Inc. > Large scale, mission-critical, distributed OO systems design and > implementation. > (C++, Java, Common Lisp, Jini, middleware, SOA) > > > > _______________________________________________ > elephant-devel site list > elephant-devel at common-lisp.net > http://common-lisp.net/mailman/listinfo/elephant-devel From henrik at evahjelte.com Fri Jun 27 07:38:37 2008 From: henrik at evahjelte.com (Henrik Hjelte) Date: Fri, 27 Jun 2008 09:38:37 +0200 Subject: [elephant-devel] Problem installing with latest Clozure In-Reply-To: References: <72A138AC-671B-459C-88D5-A03A7B214BDF@spe.com> <06A7F5B2-17FD-4E33-8485-670B39DE3875@media.mit.edu> <7A9AA753-5174-4A6E-8BD5-130D8EE792FE@spe.com> Message-ID: <50e8e4f60806270038w88fb464pe863d109d7c7bfae@mail.gmail.com> On Fri, Jun 27, 2008 at 4:21 AM, Chris Van Dusen wrote: > I'm having a problem on PPC Mac with CCL, as well, although the error that I'm getting is > It seems like you are compiling against BerkeleyDB 4.7, is that version really working? I think it is 4.5 and 4.6 that is supported. /Henrik -------------- next part -------------- An HTML attachment was scrubbed... URL: From alex.mizrahi at gmail.com Fri Jun 27 10:31:41 2008 From: alex.mizrahi at gmail.com (Alex Mizrahi) Date: Fri, 27 Jun 2008 10:31:41 +0000 (UTC) Subject: [elephant-devel] Re: Many patches pushed References: Message-ID: > Please let me know if there are any obvious problems out there in the > field with postmodern or bdb. does postmodern work for you if you run tests 2-3 times in a row? (and does bdb work in such case?) iirc it was popping up errors about class redefinitions or something. i'm not sure how it works at all, so i did not bother to debug. could be also a bug of SBCL which i was using. also, iirc i have some postmodern patches pending, but unfortunately i cannot access them now :(. i'll get to it in a week or so maybe. and, by the way, what's with "CL-SQL and Postmodern & dup-btree", you did not reply, so i don't know if i was confused or you were. should we have better pset implementation for 1.0beta release? also, just to note, db-postmodern won't automatically upgrade 0.9.1 storage to 1.0 format -- i just did not bother with it, as PostgreSQL style of upgrades is to use dump/restore into intermediate format, so recommended way of upgrading db-postmodern repositories is to use gp-export or similar util to make a dump of database, and restore it into a fresh one. with best regards, Alex 'killer_storm' Mizrahi. From alex.mizrahi at gmail.com Fri Jun 27 10:38:19 2008 From: alex.mizrahi at gmail.com (Alex Mizrahi) Date: Fri, 27 Jun 2008 10:38:19 +0000 (UTC) Subject: [elephant-devel] Re: Duplicate values in PM-BTREE-INDEX References: <63272.88.73.214.207.1214223387.squirrel@mail.stardawn.org> <1820284179-1214525621-cardhu_decombobulator_blackberry.rim.net-1828990326-@bxe123.bisx.prod.on.blackberry> Message-ID: > We don't declare secondary indicies on dup-btrees, > in case that wasn't clear... if we did, semantics would be pretty strange, i think.. but what's not clear (perhaps i was not attentive) is if dup-btree in bdb supports duplicated pairs, or only duplicated keys with different values. if it supports duplicated pairs, it's worth documenting that db- postmodern does not. From eslick at media.mit.edu Fri Jun 27 11:08:36 2008 From: eslick at media.mit.edu (=?utf-8?B?SWFuIEVzbGljaw==?=) Date: Fri, 27 Jun 2008 11:08:36 +0000 Subject: [elephant-devel] Problem installing with latest Clozure In-Reply-To: <6457A671-BF86-42F9-8605-C08D2DBF1EB6@spe.com> References: <72A138AC-671B-459C-88D5-A03A7B214BDF@spe.com><06A7F5B2-17FD-4E33-8485-670B39DE3875@media.mit.edu><6457A671-BF86-42F9-8605-C08D2DBF1EB6@spe.com> Message-ID: <250994741-1214564971-cardhu_decombobulator_blackberry.rim.net-1469284678-@bxe123.bisx.prod.on.blackberry> The right command is (open-store '(:BDB "dirname")) Sent from my BlackBerry -----Original Message----- From: Patrick May Date: Thu, 26 Jun 2008 22:16:00 To:Elephant bugs and development Subject: Re: [elephant-devel] Problem installing with latest Clozure On 26 Jun 2008, at 09:01, Ian Eslick wrote: > Those errors seem to indicate a pretty messed up installation. Can > you pull a fresh version of Elephant from the elphant-unstable darcs > repository (http://www.common-lisp.net/project/elephant/darcs/elephant-unstable > ) and try again. The build did once work on Clozure as recent as > 0.9 - but I'd rather put debugging time into unstable as we're > hoping to release a 1.0beta1 as soon as we can. > > Thank you, > Ian I used darcs to grab elephant-unstable and got the following results: Welcome to Clozure Common Lisp Version 1.2-r9226-RC1 (DarwinPPC32)! ? (asdf:operate 'asdf:load-op :elephant) ; loading system definition from elephant.asd into # ; registering # as ELEPHANT ; loading system definition from /usr/local/asdf-install/site-systems/ cl-base64.asd into # ; registering # as CL-BASE64 ; registering # as CL-BASE64-TESTS ; $ gcc -bundle -fPIC -Wall -g -O2 -g /Users/Patrick/src/lisp/elephant- unstable/src/memutil/libmemutil.c -o /Users/Patrick/src/lisp/elephant- unstable/src/memutil/libmemutil.dylib -lm Attempting to load libmemutil.dylib... Loaded /Users/Patrick/src/lisp/elephant-unstable/src/memutil/ libmemutil.dylib ;Compiler warnings for "/Users/Patrick/src/lisp/elephant-unstable/src/ elephant/classes.lisp" : ; In (SHARED-INITIALIZE :AROUND (PERSISTENT-METACLASS T)): Unused lexical variable INDEX ; In (REINITIALIZE-INSTANCE :AROUND (PERSISTENT-METACLASS)): Unused lexical variable INITARGS ; In (INITIALIZE-INSTANCE :AROUND (PERSISTENT-OBJECT)): Unused lexical variable INITARGS ; In (RECREATE-INSTANCE (PERSISTENT-OBJECT)) inside an anonymous lambda form: Unused lexical variable ARGS ; Warning: COMPILE-FILE warned while performing # on #. ; While executing: #, in process listener(1). ;Compiler warnings for "/Users/Patrick/src/lisp/elephant-unstable/src/ elephant/controller.lisp" : ; In (OPEN-CONTROLLER :AFTER (STORE-CONTROLLER)): Unused lexical variable ARGS ; In (CONTROLLER-PROPERTIES (STORE-CONTROLLER)): In the call to GET- FROM-ROOT with arguments (*ELEPHANT-PROPERTIES-LABEL* :STORE- CONTROLLER SC), ; the keyword argument :STORE-CONTROLLER is not one of (:SC), which are recognized ; by the definition of GET-FROM-ROOT visible in the current compilation unit. ; In (SET-ELE-PROPERTY (T T)): In the call to GET-FROM-ROOT with arguments (*ELEPHANT-PROPERTIES-LABEL* :STORE-CONTROLLER SC), ; the keyword argument :STORE-CONTROLLER is not one of (:SC), which are recognized ; by the definition of GET-FROM-ROOT visible in the current compilation unit. ; In (GET-ELE-PROPERTY (T)): In the call to GET-FROM-ROOT with arguments (*ELEPHANT-PROPERTIES-LABEL* :STORE-CONTROLLER SC), ; the keyword argument :STORE-CONTROLLER is not one of (:SC), which are recognized ; by the definition of GET-FROM-ROOT visible in the current compilation unit. ; Warning: COMPILE-FILE warned while performing # on #. ; While executing: #, in process listener(1). ;Compiler warnings for "/Users/Patrick/src/lisp/elephant-unstable/src/ elephant/schema-evolution.lisp" : ; In (UPGRADE-ALL-MEMORY-INSTANCES (STORE-CONTROLLER)): Undeclared free variable VALUE ; Warning: COMPILE-FILE warned while performing # on #. ; While executing: #, in process listener(1). ; Warning: COMPILE-FILE failed while performing # on #. ; While executing: #, in process listener(1). ;Compiler warnings for "/Users/Patrick/src/lisp/elephant-unstable/src/ elephant/collections.lisp" : ; In (MAP-BTREE (T BTREE)): Unused lexical variable ARGS ; In (MAP-INDEX (T BTREE-INDEX)): Unused lexical variable ARGS ; Warning: COMPILE-FILE warned while performing # on #. ; While executing: #, in process listener(1). ;Compiler warnings for "/Users/Patrick/src/lisp/elephant-unstable/src/ elephant/query.lisp" : ; In SORT-TUPLES: Unused lexical variable KEY-FN ; Warning: COMPILE-FILE warned while performing # on #. ; While executing: #, in process listener(1). NIL ? (use-package :elephant) T ? (open-store :bdb "/Users/Patrick/src/lisp/elephant-dbb/") > Error: Failed assertion: (CONSP ELEPHANT::SPEC) > While executing: CCL::%ASSERTION-FAILURE, in process listener(1). > Type :GO to continue, :POP to abort, :R for a list of available restarts. > If continued: test the assertion again. > Type :? for other options. 1 > Any ideas? Thanks, Patrick _______________________________________________ elephant-devel site list elephant-devel at common-lisp.net http://common-lisp.net/mailman/listinfo/elephant-devel From eslick at media.mit.edu Fri Jun 27 11:09:27 2008 From: eslick at media.mit.edu (=?utf-8?B?SWFuIEVzbGljaw==?=) Date: Fri, 27 Jun 2008 11:09:27 +0000 Subject: [elephant-devel] Problem installing with latest Clozure In-Reply-To: References: <72A138AC-671B-459C-88D5-A03A7B214BDF@spe.com><06A7F5B2-17FD-4E33-8485-670B39DE3875@media.mit.edu><7A9AA753-5174-4A6E-8BD5-130D8EE792FE@spe.com> Message-ID: <457116780-1214565022-cardhu_decombobulator_blackberry.rim.net-1356591095-@bxe123.bisx.prod.on.blackberry> We don't support BDB 4.7 yet (4.5 and 4.6 only) Sent from my BlackBerry -----Original Message----- From: Chris Van Dusen Date: Thu, 26 Jun 2008 21:21:33 To:Elephant bugs and development Subject: Re: [elephant-devel] Problem installing with latest Clozure I'm having a problem on PPC Mac with CCL, as well, although the error that I'm getting is: Berkeley DB error #22: Invalid argument [Condition of type BDB-DB-ERROR] In the Slime buffer, it shows: ; loading system definition from /Users/chrisvandusen/.asdf-install- dir/systems/ele-bdb.asd into # ; registering # as ELE-BDB Attempting to load libmemutil.dylib... Loaded /Users/chrisvandusen/.asdf-install-dir/site/elephant-unstable/ src/memutil/libmemutil.dylib ; $ gcc -L/usr/local/BerkeleyDB.4.7/lib/ -I/usr/local/BerkeleyDB.4.7/ include/ -bundle -fPIC -Wall -g -O2 -g /Users/chrisvandusen/.asdf- install-dir/site/elephant-unstable/src/db-bdb/libberkeley-db.c -o / Users/chrisvandusen/.asdf-install-dir/site/elephant-unstable/src/db- bdb/libberkeley-db.dylib -lm -ldb-4.7 Loading /usr/local/BerkeleyDB.4.7/lib/libdb-4.7.dylib Attempting to load libberkeley-db.dylib... Loaded /Users/chrisvandusen/.asdf-install-dir/site/elephant-unstable/ src/db-bdb/libberkeley-db.dylib ; Warning: Redefining STRUCT DB-LOCK fields to be: ; (# OFF 32 at 0> # # # MODE 32 at 96>) ; were ; (# # # #) ; While executing: CCL::PARSE-FOREIGN-RECORD-TYPE, in process repl- thread(5). ; Warning: Redefining STRUCT DB-LOCKREQ fields to be: ; (# OP 32 at 0> # # TIMEOUT 32 at 64> # OBJ 8 at 96> # LOCK 32 at 128>) ; were ; (# # # # #) ; While executing: CCL::PARSE-FOREIGN-RECORD-TYPE, in process repl- thread(5). ; Warning: Redefining STRUCT DB-LOCK fields to be: ; (# OFF 32 at 0> # # # MODE 32 at 96>) ; were ; (# # # #) ; While executing: CCL::PARSE-FOREIGN-RECORD-TYPE, in process repl- thread(5). ; Warning: Redefining STRUCT DB-LOCKREQ fields to be: ; (# OP 32 at 0> # # TIMEOUT 32 at 64> # OBJ 8 at 96> # LOCK 32 at 128>) ; were ; (# # # # #) ; While executing: CCL::PARSE-FOREIGN-RECORD-TYPE, in process repl- thread(5). ;Compiler warnings for "/Users/chrisvandusen/.asdf-install-dir/site/ elephant-unstable/src/db-bdb/bdb-controller.lisp" : ; In (DEFAULT-CLASS-ID (T BDB-STORE-CONTROLLER)): Duplicate keyform QUOTE in ECASE statement. ; In (DEFAULT-CLASS-ID (T BDB-STORE-CONTROLLER)): Duplicate keyform QUOTE in ECASE statement. ; In (DEFAULT-CLASS-ID (T BDB-STORE-CONTROLLER)): Duplicate keyform QUOTE in ECASE statement. ; Warning: COMPILE-FILE warned while performing # on #. ; While executing: #, in process repl-thread(5). ; Warning: COMPILE-FILE failed while performing # on #. ; While executing: #, in process repl-thread(5). Let me know if there is any more information that I can provide. Thanks, Chris. On Jun 26, 2008, at 3:57 PM, Patrick May wrote: > On 26 Jun 2008, at 09:01, Ian Eslick wrote: >> Those errors seem to indicate a pretty messed up installation. >> Can you pull a fresh version of Elephant from the elphant-unstable >> darcs repository (http://www.common-lisp.net/project/elephant/ >> darcs/elephant-unstable) and try again. The build did once work >> on Clozure as recent as 0.9 - but I'd rather put debugging time >> into unstable as we're hoping to release a 1.0beta1 as soon as we >> can. >> >> Thank you, >> Ian > > Will do, as soon as I have a chance. Thanks, > > Regards, > > Patrick > > ---- > pjm at spe.com > S P Engineering, Inc. > Large scale, mission-critical, distributed OO systems design and > implementation. > (C++, Java, Common Lisp, Jini, middleware, SOA) > > > > _______________________________________________ > 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 From pjm at spe.com Fri Jun 27 11:14:12 2008 From: pjm at spe.com (Patrick May) Date: Fri, 27 Jun 2008 07:14:12 -0400 Subject: [elephant-devel] Problem installing with latest Clozure In-Reply-To: <457116780-1214565022-cardhu_decombobulator_blackberry.rim.net-1356591095-@bxe123.bisx.prod.on.blackberry> References: <72A138AC-671B-459C-88D5-A03A7B214BDF@spe.com><06A7F5B2-17FD-4E33-8485-670B39DE3875@media.mit.edu><7A9AA753-5174-4A6E-8BD5-130D8EE792FE@spe.com> <457116780-1214565022-cardhu_decombobulator_blackberry.rim.net-1356591095-@bxe123.bisx.prod.on.blackberry> Message-ID: <054BA863-56B7-4CB0-BB34-3720274360B0@spe.com> On 27 Jun 2008, at 07:09, Ian Eslick wrote: > We don't support BDB 4.7 yet (4.5 and 4.6 only) Thanks, I'll install 4.5. Regards, Patrick ---- pjm at spe.com S P Engineering, Inc. Large scale, mission-critical, distributed OO systems design and implementation. (C++, Java, Common Lisp, Jini, middleware, SOA) From pjm at spe.com Fri Jun 27 13:00:40 2008 From: pjm at spe.com (Patrick May) Date: Fri, 27 Jun 2008 09:00:40 -0400 Subject: [elephant-devel] Problem installing with latest Clozure In-Reply-To: <250994741-1214564971-cardhu_decombobulator_blackberry.rim.net-1469284678-@bxe123.bisx.prod.on.blackberry> References: <72A138AC-671B-459C-88D5-A03A7B214BDF@spe.com><06A7F5B2-17FD-4E33-8485-670B39DE3875@media.mit.edu><6457A671-BF86-42F9-8605-C08D2DBF1EB6@spe.com> <250994741-1214564971-cardhu_decombobulator_blackberry.rim.net-1469284678-@bxe123.bisx.prod.on.blackberry> Message-ID: On 27 Jun 2008, at 07:08, Ian Eslick wrote: > The right command is > > (open-store '(:BDB "dirname")) Thanks for the help. I installed BDB 4.5 and used the above form. This is the result: ? (open-store '(:BDB "/Users/Patrick/src/lisp/elephant-bdb/")) ; loading system definition from ele-bdb.asd into # ; registering # as ELE-BDB Attempting to load libmemutil.dylib... Loaded /Users/Patrick/src/lisp/elephant-unstable/src/memutil/ libmemutil.dylib Loading /usr/local/BerkeleyDB.4.5/lib/libdb-4.5.dylib Attempting to load libberkeley-db.dylib... Loaded /Users/Patrick/src/lisp/elephant-unstable/src/db-bdb/ libberkeley-db.dylib > Error: There is no package named "DB-BDB-C47" . > While executing: CCL::%FASL-NVPACKAGE, in process listener(1). > Type :GO to continue, :POP to abort, :R for a list of available restarts. > If continued: Retry finding package with name "DB-BDB-C47". > Type :? for other options. 1 > Is my install misconfigured or is this something to do with using the bleeding edge release? Thanks, Patrick ---- pjm at spe.com S P Engineering, Inc. Large scale, mission-critical, distributed OO systems design and implementation. (C++, Java, Common Lisp, Jini, middleware, SOA) From eslick at media.mit.edu Fri Jun 27 13:24:26 2008 From: eslick at media.mit.edu (Ian Eslick) Date: Fri, 27 Jun 2008 09:24:26 -0400 Subject: [elephant-devel] Problem installing with latest Clozure In-Reply-To: References: <72A138AC-671B-459C-88D5-A03A7B214BDF@spe.com><06A7F5B2-17FD-4E33-8485-670B39DE3875@media.mit.edu><6457A671-BF86-42F9-8605-C08D2DBF1EB6@spe.com> <250994741-1214564971-cardhu_decombobulator_blackberry.rim.net-1469284678-@bxe123.bisx.prod.on.blackberry> Message-ID: Check your my-config.sexp Ian On Jun 27, 2008, at 9:00 AM, Patrick May wrote: > On 27 Jun 2008, at 07:08, Ian Eslick wrote: >> The right command is >> >> (open-store '(:BDB "dirname")) > > Thanks for the help. I installed BDB 4.5 and used the above form. > This is the result: > > ? (open-store '(:BDB "/Users/Patrick/src/lisp/elephant-bdb/")) > ; loading system definition from ele-bdb.asd into # > ; registering # as ELE-BDB > Attempting to load libmemutil.dylib... > Loaded /Users/Patrick/src/lisp/elephant-unstable/src/memutil/ > libmemutil.dylib > Loading /usr/local/BerkeleyDB.4.5/lib/libdb-4.5.dylib > Attempting to load libberkeley-db.dylib... > Loaded /Users/Patrick/src/lisp/elephant-unstable/src/db-bdb/ > libberkeley-db.dylib > > Error: There is no package named "DB-BDB-C47" . > > While executing: CCL::%FASL-NVPACKAGE, in process listener(1). > > Type :GO to continue, :POP to abort, :R for a list of available > restarts. > > If continued: Retry finding package with name "DB-BDB-C47". > > Type :? for other options. > 1 > > > Is my install misconfigured or is this something to do with using > the bleeding edge release? > > Thanks, > > Patrick > > ---- > pjm at spe.com > S P Engineering, Inc. > Large scale, mission-critical, distributed OO systems design and > implementation. > (C++, Java, Common Lisp, Jini, middleware, SOA) > > > > _______________________________________________ > elephant-devel site list > elephant-devel at common-lisp.net > http://common-lisp.net/mailman/listinfo/elephant-devel From pjm at spe.com Fri Jun 27 13:38:07 2008 From: pjm at spe.com (Patrick May) Date: Fri, 27 Jun 2008 09:38:07 -0400 Subject: [elephant-devel] Problem installing with latest Clozure In-Reply-To: References: <72A138AC-671B-459C-88D5-A03A7B214BDF@spe.com><06A7F5B2-17FD-4E33-8485-670B39DE3875@media.mit.edu><6457A671-BF86-42F9-8605-C08D2DBF1EB6@spe.com> <250994741-1214564971-cardhu_decombobulator_blackberry.rim.net-1469284678-@bxe123.bisx.prod.on.blackberry> Message-ID: <8724B86A-3DA2-41FE-8839-C3E29A720E4D@spe.com> It's a copy of the OSX Defaults section of config.sexp with only the :berkeley-db-cachesize changed. Thanks, Patrick On 27 Jun 2008, at 09:24, Ian Eslick wrote: > Check your my-config.sexp > > Ian > > On Jun 27, 2008, at 9:00 AM, Patrick May wrote: > >> On 27 Jun 2008, at 07:08, Ian Eslick wrote: >>> The right command is >>> >>> (open-store '(:BDB "dirname")) >> >> Thanks for the help. I installed BDB 4.5 and used the above >> form. This is the result: >> >> ? (open-store '(:BDB "/Users/Patrick/src/lisp/elephant-bdb/")) >> ; loading system definition from ele-bdb.asd into # >> ; registering # as ELE-BDB >> Attempting to load libmemutil.dylib... >> Loaded /Users/Patrick/src/lisp/elephant-unstable/src/memutil/ >> libmemutil.dylib >> Loading /usr/local/BerkeleyDB.4.5/lib/libdb-4.5.dylib >> Attempting to load libberkeley-db.dylib... >> Loaded /Users/Patrick/src/lisp/elephant-unstable/src/db-bdb/ >> libberkeley-db.dylib >> > Error: There is no package named "DB-BDB-C47" . >> > While executing: CCL::%FASL-NVPACKAGE, in process listener(1). >> > Type :GO to continue, :POP to abort, :R for a list of available >> restarts. >> > If continued: Retry finding package with name "DB-BDB-C47". >> > Type :? for other options. >> 1 > >> >> Is my install misconfigured or is this something to do with using >> the bleeding edge release? >> >> Thanks, >> >> Patrick >> >> ---- >> pjm at spe.com >> S P Engineering, Inc. >> Large scale, mission-critical, distributed OO systems design and >> implementation. >> (C++, Java, Common Lisp, Jini, middleware, SOA) >> >> >> >> _______________________________________________ >> 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 ---- pjm at spe.com S P Engineering, Inc. Large scale, mission-critical, distributed OO systems design and implementation. (C++, Java, Common Lisp, Jini, middleware, SOA) From henrik at evahjelte.com Fri Jun 27 14:20:57 2008 From: henrik at evahjelte.com (Henrik Hjelte) Date: Fri, 27 Jun 2008 16:20:57 +0200 Subject: [elephant-devel] Problem installing with latest Clozure In-Reply-To: <8724B86A-3DA2-41FE-8839-C3E29A720E4D@spe.com> References: <72A138AC-671B-459C-88D5-A03A7B214BDF@spe.com> <06A7F5B2-17FD-4E33-8485-670B39DE3875@media.mit.edu> <6457A671-BF86-42F9-8605-C08D2DBF1EB6@spe.com> <250994741-1214564971-cardhu_decombobulator_blackberry.rim.net-1469284678-@bxe123.bisx.prod.on.blackberry> <8724B86A-3DA2-41FE-8839-C3E29A720E4D@spe.com> Message-ID: <50e8e4f60806270720m33adf3c0ra70e1bed2f3ec7b5@mail.gmail.com> >>no package named "DB-BDB-C47" The C47 here looks to me like there is something remaining from your old attempt with 4.7 Delete all fasls, and isn't libberkeley-db.dylib created when you compile for the first time? Try removing it, or just download a fresh copy of elephant. /Henrik On Fri, Jun 27, 2008 at 3:38 PM, Patrick May wrote: > It's a copy of the OSX Defaults section of config.sexp with only the > :berkeley-db-cachesize changed. > > Thanks, > > Patrick > > > On 27 Jun 2008, at 09:24, Ian Eslick wrote: > > Check your my-config.sexp >> >> Ian >> >> On Jun 27, 2008, at 9:00 AM, Patrick May wrote: >> >> On 27 Jun 2008, at 07:08, Ian Eslick wrote: >>> >>>> The right command is >>>> >>>> (open-store '(:BDB "dirname")) >>>> >>> >>> Thanks for the help. I installed BDB 4.5 and used the above form. >>> This is the result: >>> >>> ? (open-store '(:BDB "/Users/Patrick/src/lisp/elephant-bdb/")) >>> ; loading system definition from ele-bdb.asd into # >>> ; registering # as ELE-BDB >>> Attempting to load libmemutil.dylib... >>> Loaded >>> /Users/Patrick/src/lisp/elephant-unstable/src/memutil/libmemutil.dylib >>> Loading /usr/local/BerkeleyDB.4.5/lib/libdb-4.5.dylib >>> Attempting to load libberkeley-db.dylib... >>> Loaded >>> /Users/Patrick/src/lisp/elephant-unstable/src/db-bdb/libberkeley-db.dylib >>> > Error: There is no package named "DB-BDB-C47" . >>> > While executing: CCL::%FASL-NVPACKAGE, in process listener(1). >>> > Type :GO to continue, :POP to abort, :R for a list of available >>> restarts. >>> > If continued: Retry finding package with name "DB-BDB-C47". >>> > Type :? for other options. >>> 1 > >>> >>> Is my install misconfigured or is this something to do with using >>> the bleeding edge release? >>> >>> Thanks, >>> >>> Patrick >>> >>> ---- >>> pjm at spe.com >>> S P Engineering, Inc. >>> Large scale, mission-critical, distributed OO systems design and >>> implementation. >>> (C++, Java, Common Lisp, Jini, middleware, SOA) >>> >>> >>> >>> _______________________________________________ >>> 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 >> > > ---- > pjm at spe.com > S P Engineering, Inc. > Large scale, mission-critical, distributed OO systems design and > implementation. > (C++, Java, Common Lisp, Jini, middleware, SOA) > > > > _______________________________________________ > elephant-devel site list > elephant-devel at common-lisp.net > http://common-lisp.net/mailman/listinfo/elephant-devel > > -- Henrik Hjelte henrik.hjelte at stix.to +46703993945 http://stix.to L?stmakarg 18-20 (IQube) Box 7438 S-103 91 Stockholm Sweden -------------- next part -------------- An HTML attachment was scrubbed... URL: From pjm at spe.com Fri Jun 27 14:28:17 2008 From: pjm at spe.com (Patrick May) Date: Fri, 27 Jun 2008 10:28:17 -0400 Subject: [elephant-devel] Problem installing with latest Clozure In-Reply-To: <50e8e4f60806270720m33adf3c0ra70e1bed2f3ec7b5@mail.gmail.com> References: <72A138AC-671B-459C-88D5-A03A7B214BDF@spe.com> <06A7F5B2-17FD-4E33-8485-670B39DE3875@media.mit.edu> <6457A671-BF86-42F9-8605-C08D2DBF1EB6@spe.com> <250994741-1214564971-cardhu_decombobulator_blackberry.rim.net-1469284678-@bxe123.bisx.prod.on.blackberry> <8724B86A-3DA2-41FE-8839-C3E29A720E4D@spe.com> <50e8e4f60806270720m33adf3c0ra70e1bed2f3ec7b5@mail.gmail.com> Message-ID: On 27 Jun 2008, at 10:20, Henrik Hjelte wrote: > >>no package named "DB-BDB-C47" > > The C47 here looks to me like there is something remaining from your > old attempt with 4.7 > Delete all fasls, and isn't libberkeley-db.dylib created when you > compile for the first time? > Try removing it, or just download a fresh copy of elephant. Removing the .dfsl files got me further. I'm going to start from a clean install tonight. Thanks for the assistance. Regards, Patrick ---- pjm at spe.com S P Engineering, Inc. Large scale, mission-critical, distributed OO systems design and implementation. (C++, Java, Common Lisp, Jini, middleware, SOA) -------------- next part -------------- An HTML attachment was scrubbed... URL: From pjm at spe.com Fri Jun 27 15:41:45 2008 From: pjm at spe.com (Patrick May) Date: Fri, 27 Jun 2008 11:41:45 -0400 Subject: [elephant-devel] Problem installing with latest Clozure In-Reply-To: <50e8e4f60806270720m33adf3c0ra70e1bed2f3ec7b5@mail.gmail.com> References: <72A138AC-671B-459C-88D5-A03A7B214BDF@spe.com> <06A7F5B2-17FD-4E33-8485-670B39DE3875@media.mit.edu> <6457A671-BF86-42F9-8605-C08D2DBF1EB6@spe.com> <250994741-1214564971-cardhu_decombobulator_blackberry.rim.net-1469284678-@bxe123.bisx.prod.on.blackberry> <8724B86A-3DA2-41FE-8839-C3E29A720E4D@spe.com> <50e8e4f60806270720m33adf3c0ra70e1bed2f3ec7b5@mail.gmail.com> Message-ID: <38A1845C-23C9-473C-9340-D4EAB545AB27@spe.com> On 27 Jun 2008, at 10:20, Henrik Hjelte wrote: > >>no package named "DB-BDB-C47" > > The C47 here looks to me like there is something remaining from your > old attempt with 4.7 > Delete all fasls, and isn't libberkeley-db.dylib created when you > compile for the first time? > Try removing it, or just download a fresh copy of elephant. With a fresh download of elephant-unstable I get this error when running (open-store '(:BDB "/Users/Patrick/src/lisp/elephant-bdb")): ; Warning: COMPILE-FILE failed while performing # on #. ; While executing: #, in process listener(1). > Error: Undefined function #:G2120 called with arguments (# # # 2 # 10 0 #) . > While executing: #, in process listener(1). > Type :GO to continue, :POP to abort, :R for a list of available restarts. > If continued: Retry applying #:G2120 to (# # # 2 # 10 0 #). > Type :? for other options. 1 > I'll try with the stable release tonight. Thanks, Patrick ---- pjm at spe.com S P Engineering, Inc. Large scale, mission-critical, distributed OO systems design and implementation. (C++, Java, Common Lisp, Jini, middleware, SOA) -------------- next part -------------- An HTML attachment was scrubbed... URL: From pjm at spe.com Fri Jun 27 19:31:21 2008 From: pjm at spe.com (Patrick May) Date: Fri, 27 Jun 2008 15:31:21 -0400 Subject: [elephant-devel] Problem installing with latest Clozure In-Reply-To: <50e8e4f60806270720m33adf3c0ra70e1bed2f3ec7b5@mail.gmail.com> References: <72A138AC-671B-459C-88D5-A03A7B214BDF@spe.com> <06A7F5B2-17FD-4E33-8485-670B39DE3875@media.mit.edu> <6457A671-BF86-42F9-8605-C08D2DBF1EB6@spe.com> <250994741-1214564971-cardhu_decombobulator_blackberry.rim.net-1469284678-@bxe123.bisx.prod.on.blackberry> <8724B86A-3DA2-41FE-8839-C3E29A720E4D@spe.com> <50e8e4f60806270720m33adf3c0ra70e1bed2f3ec7b5@mail.gmail.com> Message-ID: <153DC919-DE51-4006-BFCE-3767753F5FD7@spe.com> On 27 Jun 2008, at 10:20, Henrik Hjelte wrote: > >>no package named "DB-BDB-C47" > > The C47 here looks to me like there is something remaining from your > old attempt with 4.7 > Delete all fasls, and isn't libberkeley-db.dylib created when you > compile for the first time? > Try removing it, or just download a fresh copy of elephant. I tried both the 0.9.1 and unstable releases. My my-config.sexp uses the OSX defaults from config.sexp. This is the output I get: Welcome to Clozure Common Lisp Version 1.2-r9226-RC1 (DarwinPPC32)! ? (asdf:operate 'asdf:load-op :elephant) ; loading system definition from elephant.asd into # ; registering # as ELEPHANT ; loading system definition from /usr/local/asdf-install/site-systems/ cl-base64.asd into # ; registering # as CL-BASE64 ; registering # as CL-BASE64-TESTS ; $ gcc -bundle -fPIC -Wall -g -O2 -g /Users/Patrick/src/lisp/elephant- unstable/src/memutil/libmemutil.c -o /Users/Patrick/src/lisp/elephant- unstable/src/memutil/libmemutil.dylib -lm Attempting to load libmemutil.dylib... Loaded /Users/Patrick/src/lisp/elephant-unstable/src/memutil/ libmemutil.dylib ;Compiler warnings for "/Users/Patrick/src/lisp/elephant-unstable/src/ elephant/classes.lisp" : ; In (SHARED-INITIALIZE :AROUND (PERSISTENT-METACLASS T)): Unused lexical variable INDEX ; In (REINITIALIZE-INSTANCE :AROUND (PERSISTENT-METACLASS)): Unused lexical variable INITARGS ; In (INITIALIZE-INSTANCE :AROUND (PERSISTENT-OBJECT)): Unused lexical variable INITARGS ; In (RECREATE-INSTANCE (PERSISTENT-OBJECT)) inside an anonymous lambda form: Unused lexical variable ARGS ; Warning: COMPILE-FILE warned while performing # on #. ; While executing: #, in process listener(1). ;Compiler warnings for "/Users/Patrick/src/lisp/elephant-unstable/src/ elephant/controller.lisp" : ; In (OPEN-CONTROLLER :AFTER (STORE-CONTROLLER)): Unused lexical variable ARGS ; In (CONTROLLER-PROPERTIES (STORE-CONTROLLER)): In the call to GET- FROM-ROOT with arguments (*ELEPHANT-PROPERTIES-LABEL* :STORE- CONTROLLER SC), ; the keyword argument :STORE-CONTROLLER is not one of (:SC), which are recognized ; by the definition of GET-FROM-ROOT visible in the current compilation unit. ; In (SET-ELE-PROPERTY (T T)): In the call to GET-FROM-ROOT with arguments (*ELEPHANT-PROPERTIES-LABEL* :STORE-CONTROLLER SC), ; the keyword argument :STORE-CONTROLLER is not one of (:SC), which are recognized ; by the definition of GET-FROM-ROOT visible in the current compilation unit. ; In (GET-ELE-PROPERTY (T)): In the call to GET-FROM-ROOT with arguments (*ELEPHANT-PROPERTIES-LABEL* :STORE-CONTROLLER SC), ; the keyword argument :STORE-CONTROLLER is not one of (:SC), which are recognized ; by the definition of GET-FROM-ROOT visible in the current compilation unit. ; Warning: COMPILE-FILE warned while performing # on #. ; While executing: #, in process listener(1). ;Compiler warnings for "/Users/Patrick/src/lisp/elephant-unstable/src/ elephant/schema-evolution.lisp" : ; In (UPGRADE-ALL-MEMORY-INSTANCES (STORE-CONTROLLER)): Undeclared free variable VALUE ; Warning: COMPILE-FILE warned while performing # on #. ; While executing: #, in process listener(1). ; Warning: COMPILE-FILE failed while performing # on #. ; While executing: #, in process listener(1). ;Compiler warnings for "/Users/Patrick/src/lisp/elephant-unstable/src/ elephant/collections.lisp" : ; In (MAP-BTREE (T BTREE)): Unused lexical variable ARGS ; In (MAP-INDEX (T BTREE-INDEX)): Unused lexical variable ARGS ; Warning: COMPILE-FILE warned while performing # on #. ; While executing: #, in process listener(1). ;Compiler warnings for "/Users/Patrick/src/lisp/elephant-unstable/src/ elephant/query.lisp" : ; In SORT-TUPLES: Unused lexical variable KEY-FN ; Warning: COMPILE-FILE warned while performing # on #. ; While executing: #, in process listener(1). NIL ? (use-package :elephant) T ? (open-store '(:BDB "/Users/Patrick/src/lisp/elephant-bdb/")) ; loading system definition from ele-bdb.asd into # ; registering # as ELE-BDB Attempting to load libmemutil.dylib... Loaded /Users/Patrick/src/lisp/elephant-unstable/src/memutil/ libmemutil.dylib ; $ gcc -L/usr/local/BerkeleyDB.4.5/lib/ -I/usr/local/BerkeleyDB.4.5/ include/ -bundle -fPIC -Wall -g -O2 -g /Users/Patrick/src/lisp/ elephant-unstable/src/db-bdb/libberkeley-db.c -o /Users/Patrick/src/ lisp/elephant-unstable/src/db-bdb/libberkeley-db.dylib -lm -ldb-4.5 Loading /usr/local/BerkeleyDB.4.5/lib/libdb-4.5.dylib Attempting to load libberkeley-db.dylib... Loaded /Users/Patrick/src/lisp/elephant-unstable/src/db-bdb/ libberkeley-db.dylib ; Warning: Redefining STRUCT DB-LOCK fields to be: ; (# OFF 32 at 0> # # # MODE 32 at 96>) ; were ; (# # # #) ; While executing: CCL::PARSE-FOREIGN-RECORD-TYPE, in process listener(1). ; Warning: Redefining STRUCT DB-LOCKREQ fields to be: ; (# OP 32 at 0> # # TIMEOUT 32 at 64> # OBJ 8 at 96> # LOCK 32 at 128>) ; were ; (# # # # #) ; While executing: CCL::PARSE-FOREIGN-RECORD-TYPE, in process listener(1). ; Warning: Redefining STRUCT DB-LOCK fields to be: ; (# OFF 32 at 0> # # # MODE 32 at 96>) ; were ; (# # # #) ; While executing: CCL::PARSE-FOREIGN-RECORD-TYPE, in process listener(1). ; Warning: Redefining STRUCT DB-LOCKREQ fields to be: ; (# OP 32 at 0> # # TIMEOUT 32 at 64> # OBJ 8 at 96> # LOCK 32 at 128>) ; were ; (# # # # #) ; While executing: CCL::PARSE-FOREIGN-RECORD-TYPE, in process listener(1). ;Compiler warnings for "/Users/Patrick/src/lisp/elephant-unstable/src/ db-bdb/bdb-controller.lisp" : ; In (DEFAULT-CLASS-ID (T BDB-STORE-CONTROLLER)): Duplicate keyform QUOTE in ECASE statement. ; In (DEFAULT-CLASS-ID (T BDB-STORE-CONTROLLER)): Duplicate keyform QUOTE in ECASE statement. ; In (DEFAULT-CLASS-ID (T BDB-STORE-CONTROLLER)): Duplicate keyform QUOTE in ECASE statement. ; Warning: COMPILE-FILE warned while performing # on #. ; While executing: #, in process listener(1). ; Warning: COMPILE-FILE failed while performing # on #. ; While executing: #, in process listener(1). > Error: Undefined function #:G2120 called with arguments (# # # 2 # 10 0 #) . > While executing: #, in process listener(1). > Type :GO to continue, :POP to abort, :R for a list of available restarts. > If continued: Retry applying #:G2120 to (# # # 2 # 10 0 #). > Type :? for other options. 1 > Any thoughts? Thanks, Patrick ---- pjm at spe.com S P Engineering, Inc. Large scale, mission-critical, distributed OO systems design and implementation. (C++, Java, Common Lisp, Jini, middleware, SOA) -------------- next part -------------- An HTML attachment was scrubbed... URL: From cavandusen at gmail.com Sat Jun 28 22:58:23 2008 From: cavandusen at gmail.com (Chris Van Dusen) Date: Sat, 28 Jun 2008 17:58:23 -0500 Subject: [elephant-devel] Problem installing with latest Clozure In-Reply-To: <457116780-1214565022-cardhu_decombobulator_blackberry.rim.net-1356591095-@bxe123.bisx.prod.on.blackberry> References: <72A138AC-671B-459C-88D5-A03A7B214BDF@spe.com> <06A7F5B2-17FD-4E33-8485-670B39DE3875@media.mit.edu> <7A9AA753-5174-4A6E-8BD5-130D8EE792FE@spe.com> <457116780-1214565022-cardhu_decombobulator_blackberry.rim.net-1356591095-@bxe123.bisx.prod.on.blackberry> Message-ID: ok. Pointing my-config to 4.6, clearing out the dfsl's and libberkely-db.dylib as mentioned in this thread got me going. Now, time to play. Thanks, Chris. 2008/6/27 Ian Eslick : > We don't support BDB 4.7 yet (4.5 and 4.6 only) > Sent from my BlackBerry > > -----Original Message----- > From: Chris Van Dusen > > Date: Thu, 26 Jun 2008 21:21:33 > To:Elephant bugs and development > Subject: Re: [elephant-devel] Problem installing with latest Clozure > > > I'm having a problem on PPC Mac with CCL, as well, although the error > that I'm getting is: > > Berkeley DB error #22: Invalid argument > [Condition of type BDB-DB-ERROR] > > In the Slime buffer, it shows: > > ; loading system definition from /Users/chrisvandusen/.asdf-install- > dir/systems/ele-bdb.asd into # > ; registering # as ELE-BDB > Attempting to load libmemutil.dylib... > Loaded /Users/chrisvandusen/.asdf-install-dir/site/elephant-unstable/ > src/memutil/libmemutil.dylib > ; $ gcc -L/usr/local/BerkeleyDB.4.7/lib/ -I/usr/local/BerkeleyDB.4.7/ > include/ -bundle -fPIC -Wall -g -O2 -g /Users/chrisvandusen/.asdf- > install-dir/site/elephant-unstable/src/db-bdb/libberkeley-db.c -o / > Users/chrisvandusen/.asdf-install-dir/site/elephant-unstable/src/db- > bdb/libberkeley-db.dylib -lm -ldb-4.7 > Loading /usr/local/BerkeleyDB.4.7/lib/libdb-4.7.dylib > Attempting to load libberkeley-db.dylib... > Loaded /Users/chrisvandusen/.asdf-install-dir/site/elephant-unstable/ > src/db-bdb/libberkeley-db.dylib > ; Warning: Redefining STRUCT DB-LOCK fields to be: > ; (# (:UNSIGNED 32) #x8346F76> OFF 32 at 0> # 32 at 32> # # #2=# MODE 32 at 96>) > ; were > ; (# > # # FIELD #1# DB-BDB-C45::GEN 32 at 64> # C45::MODE 32 at 96>) > ; While executing: CCL::PARSE-FOREIGN-RECORD-TYPE, in process repl- > thread(5). > ; Warning: Redefining STRUCT DB-LOCKREQ fields to be: > ; (# 32) #x8347136> OP 32 at 0> # > # #x8346F76> TIMEOUT 32 at 64> # TYPE (ARRAY (:SIGNED 8)) #x894DCE6> OBJ 8 at 96> # #4=# (:UNSIGNED 32) 32) (NDX (:UNSIGNED 32) 32) (GEN (:UNSIGNED 32) 32) > (MODE (:SIGNED 32) 32))) #x894DCA6> LOCK 32 at 128>) > ; were > ; (# # RECORD-FIELD #1# DB-BDB-C45::MODE 32 at 32> # DB-BDB-C45::TIMEOUT 32 at 64> # 8 at 96> #) > ; While executing: CCL::PARSE-FOREIGN-RECORD-TYPE, in process repl- > thread(5). > ; Warning: Redefining STRUCT DB-LOCK fields to be: > ; (# (:UNSIGNED 32) #x8346F76> OFF 32 at 0> # 32 at 32> # # #2=# MODE 32 at 96>) > ; were > ; (# > # # FIELD #1# DB-BDB-C46::GEN 32 at 64> # C46::MODE 32 at 96>) > ; While executing: CCL::PARSE-FOREIGN-RECORD-TYPE, in process repl- > thread(5). > ; Warning: Redefining STRUCT DB-LOCKREQ fields to be: > ; (# 32) #x8347136> OP 32 at 0> # > # #x8346F76> TIMEOUT 32 at 64> # TYPE (ARRAY (:SIGNED 8)) #x894DCE6> OBJ 8 at 96> # #4=# (:UNSIGNED 32) 32) (NDX (:UNSIGNED 32) 32) (GEN (:UNSIGNED 32) 32) > (MODE (:SIGNED 32) 32))) #x894DCA6> LOCK 32 at 128>) > ; were > ; (# # RECORD-FIELD #1# DB-BDB-C46::MODE 32 at 32> # DB-BDB-C46::TIMEOUT 32 at 64> # 8 at 96> #) > ; While executing: CCL::PARSE-FOREIGN-RECORD-TYPE, in process repl- > thread(5). > ;Compiler warnings for "/Users/chrisvandusen/.asdf-install-dir/site/ > elephant-unstable/src/db-bdb/bdb-controller.lisp" : > ; In (DEFAULT-CLASS-ID (T BDB-STORE-CONTROLLER)): Duplicate keyform > QUOTE in ECASE statement. > ; In (DEFAULT-CLASS-ID (T BDB-STORE-CONTROLLER)): Duplicate keyform > QUOTE in ECASE statement. > ; In (DEFAULT-CLASS-ID (T BDB-STORE-CONTROLLER)): Duplicate keyform > QUOTE in ECASE statement. > ; Warning: COMPILE-FILE warned while performing # #x890209E> on #. > ; While executing: # ASDF:CL-SOURCE-FILE)>, in process repl-thread(5). > ; Warning: COMPILE-FILE failed while performing # #x890209E> on #. > ; While executing: # ASDF:CL-SOURCE-FILE)>, in process repl-thread(5). > > Let me know if there is any more information that I can provide. > > Thanks, > Chris. > On Jun 26, 2008, at 3:57 PM, Patrick May wrote: > > > On 26 Jun 2008, at 09:01, Ian Eslick wrote: > >> Those errors seem to indicate a pretty messed up installation. > >> Can you pull a fresh version of Elephant from the elphant-unstable > >> darcs repository (http://www.common-lisp.net/project/elephant/ > >> darcs/elephant-unstable) and try again. The build did once work > >> on Clozure as recent as 0.9 - but I'd rather put debugging time > >> into unstable as we're hoping to release a 1.0beta1 as soon as we > >> can. > >> > >> Thank you, > >> Ian > > > > Will do, as soon as I have a chance. Thanks, > > > > Regards, > > > > Patrick > > > > ---- > > pjm at spe.com > > S P Engineering, Inc. > > Large scale, mission-critical, distributed OO systems design and > > implementation. > > (C++, Java, Common Lisp, Jini, middleware, SOA) > > > > > > > > _______________________________________________ > > 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 > -------------- next part -------------- An HTML attachment was scrubbed... URL: From eslick at media.mit.edu Sun Jun 29 01:23:50 2008 From: eslick at media.mit.edu (Ian Eslick) Date: Sat, 28 Jun 2008 21:23:50 -0400 Subject: [elephant-devel] Problem installing with latest Clozure In-Reply-To: <153DC919-DE51-4006-BFCE-3767753F5FD7@spe.com> References: <72A138AC-671B-459C-88D5-A03A7B214BDF@spe.com> <06A7F5B2-17FD-4E33-8485-670B39DE3875@media.mit.edu> <6457A671-BF86-42F9-8605-C08D2DBF1EB6@spe.com> <250994741-1214564971-cardhu_decombobulator_blackberry.rim.net-1469284678-@bxe123.bisx.prod.on.blackberry> <8724B86A-3DA2-41FE-8839-C3E29A720E4D@spe.com> <50e8e4f60806270720m33adf3c0ra70e1bed2f3ec7b5@mail.gmail.com> <153DC919-DE51-4006-BFCE-3767753F5FD7@spe.com> Message-ID: Patrick, Can you send the contents of your my-config.sexp? Also, what version of uffi are you using? The big hint here is that the BDB constants your are loading are coming from the C46 constants package and not the C45 package that you should be loading to match the BDB 4.5 that you're compiling. I'm not sure why this is the case; but can you confirm that :berkeley-db- version in your my-config.sexp is "4.5". Ian PS - In looking at your compiler output I've corrected and pushed a patch for a couple of odd typos that probably don't effect this. On Jun 27, 2008, at 3:31 PM, Patrick May wrote: > On 27 Jun 2008, at 10:20, Henrik Hjelte wrote: >> >>no package named "DB-BDB-C47" >> >> The C47 here looks to me like there is something remaining from >> your old attempt with 4.7 >> Delete all fasls, and isn't libberkeley-db.dylib created when you >> compile for the first time? >> Try removing it, or just download a fresh copy of elephant. > > I tried both the 0.9.1 and unstable releases. My my-config.sexp > uses the OSX defaults from config.sexp. This is the output I get: > > Welcome to Clozure Common Lisp Version 1.2-r9226-RC1 (DarwinPPC32)! > ? (asdf:operate 'asdf:load-op :elephant) > ; loading system definition from elephant.asd into # > ; registering # as ELEPHANT > ; loading system definition from /usr/local/asdf-install/site- > systems/cl-base64.asd into # > ; registering # as CL-BASE64 > ; registering # as CL-BASE64-TESTS > ; $ gcc -bundle -fPIC -Wall -g -O2 -g /Users/Patrick/src/lisp/ > elephant-unstable/src/memutil/libmemutil.c -o /Users/Patrick/src/ > lisp/elephant-unstable/src/memutil/libmemutil.dylib -lm > Attempting to load libmemutil.dylib... > Loaded /Users/Patrick/src/lisp/elephant-unstable/src/memutil/ > libmemutil.dylib > ;Compiler warnings for "/Users/Patrick/src/lisp/elephant-unstable/ > src/elephant/classes.lisp" : > ; In (SHARED-INITIALIZE :AROUND (PERSISTENT-METACLASS T)): Unused > lexical variable INDEX > ; In (REINITIALIZE-INSTANCE :AROUND (PERSISTENT-METACLASS)): > Unused lexical variable INITARGS > ; In (INITIALIZE-INSTANCE :AROUND (PERSISTENT-OBJECT)): Unused > lexical variable INITARGS > ; In (RECREATE-INSTANCE (PERSISTENT-OBJECT)) inside an anonymous > lambda form: Unused lexical variable ARGS > ; Warning: COMPILE-FILE warned while performing # #x8596F26> on #. > ; While executing: # ASDF:CL-SOURCE-FILE)>, in process listener(1). > ;Compiler warnings for "/Users/Patrick/src/lisp/elephant-unstable/ > src/elephant/controller.lisp" : > ; In (OPEN-CONTROLLER :AFTER (STORE-CONTROLLER)): Unused lexical > variable ARGS > ; In (CONTROLLER-PROPERTIES (STORE-CONTROLLER)): In the call to > GET-FROM-ROOT with arguments (*ELEPHANT-PROPERTIES-LABEL* :STORE- > CONTROLLER SC), > ; the keyword argument :STORE-CONTROLLER is not one of (:SC), > which are recognized > ; by the definition of GET-FROM-ROOT visible in the current > compilation unit. > ; In (SET-ELE-PROPERTY (T T)): In the call to GET-FROM-ROOT with > arguments (*ELEPHANT-PROPERTIES-LABEL* :STORE-CONTROLLER SC), > ; the keyword argument :STORE-CONTROLLER is not one of (:SC), > which are recognized > ; by the definition of GET-FROM-ROOT visible in the current > compilation unit. > ; In (GET-ELE-PROPERTY (T)): In the call to GET-FROM-ROOT with > arguments (*ELEPHANT-PROPERTIES-LABEL* :STORE-CONTROLLER SC), > ; the keyword argument :STORE-CONTROLLER is not one of (:SC), > which are recognized > ; by the definition of GET-FROM-ROOT visible in the current > compilation unit. > ; Warning: COMPILE-FILE warned while performing # #x8596F26> on #. > ; While executing: # ASDF:CL-SOURCE-FILE)>, in process listener(1). > ;Compiler warnings for "/Users/Patrick/src/lisp/elephant-unstable/ > src/elephant/schema-evolution.lisp" : > ; In (UPGRADE-ALL-MEMORY-INSTANCES (STORE-CONTROLLER)): Undeclared > free variable VALUE > ; Warning: COMPILE-FILE warned while performing # #x8596F26> on #. > ; While executing: # ASDF:CL-SOURCE-FILE)>, in process listener(1). > ; Warning: COMPILE-FILE failed while performing # #x8596F26> on #. > ; While executing: # ASDF:CL-SOURCE-FILE)>, in process listener(1). > ;Compiler warnings for "/Users/Patrick/src/lisp/elephant-unstable/ > src/elephant/collections.lisp" : > ; In (MAP-BTREE (T BTREE)): Unused lexical variable ARGS > ; In (MAP-INDEX (T BTREE-INDEX)): Unused lexical variable ARGS > ; Warning: COMPILE-FILE warned while performing # #x8596F26> on #. > ; While executing: # ASDF:CL-SOURCE-FILE)>, in process listener(1). > ;Compiler warnings for "/Users/Patrick/src/lisp/elephant-unstable/ > src/elephant/query.lisp" : > ; In SORT-TUPLES: Unused lexical variable KEY-FN > ; Warning: COMPILE-FILE warned while performing # #x8594DA6> on #. > ; While executing: # ASDF:CL-SOURCE-FILE)>, in process listener(1). > NIL > ? (use-package :elephant) > T > ? (open-store '(:BDB "/Users/Patrick/src/lisp/elephant-bdb/")) > ; loading system definition from ele-bdb.asd into # > ; registering # as ELE-BDB > Attempting to load libmemutil.dylib... > Loaded /Users/Patrick/src/lisp/elephant-unstable/src/memutil/ > libmemutil.dylib > ; $ gcc -L/usr/local/BerkeleyDB.4.5/lib/ -I/usr/local/BerkeleyDB.4.5/ > include/ -bundle -fPIC -Wall -g -O2 -g /Users/Patrick/src/lisp/ > elephant-unstable/src/db-bdb/libberkeley-db.c -o /Users/Patrick/src/ > lisp/elephant-unstable/src/db-bdb/libberkeley-db.dylib -lm -ldb-4.5 > Loading /usr/local/BerkeleyDB.4.5/lib/libdb-4.5.dylib > Attempting to load libberkeley-db.dylib... > Loaded /Users/Patrick/src/lisp/elephant-unstable/src/db-bdb/ > libberkeley-db.dylib > ; Warning: Redefining STRUCT DB-LOCK fields to be: > ; (# (:UNSIGNED 32) #x834783E> OFF 32 at 0> # 32 at 32> # # #2=# MODE 32 at 96>) > ; were > ; (# > # # FIELD #1# DB-BDB-C45::GEN 32 at 64> # C45::MODE 32 at 96>) > ; While executing: CCL::PARSE-FOREIGN-RECORD-TYPE, in process > listener(1). > ; Warning: Redefining STRUCT DB-LOCKREQ fields to be: > ; (# (:SIGNED 32) #x83479FE> OP 32 at 0> # 32 at 32> # 32) #x834783E> TIMEOUT 32 at 64> # ARRAY-TYPE (ARRAY (:SIGNED 8)) #x875E93E> OBJ 8 at 96> # FIELD #4=# (OFF (:UNSIGNED 32) 32) (NDX (:UNSIGNED 32) 32) (GEN (:UNSIGNED 32) > 32) (MODE (:SIGNED 32) 32))) #x875E8EE> LOCK 32 at 128>) > ; were > ; (# > # # FIELD #2# DB-BDB-C45::TIMEOUT 32 at 64> # BDB-C45::OBJ 8 at 96> # 32 at 128>) > ; While executing: CCL::PARSE-FOREIGN-RECORD-TYPE, in process > listener(1). > ; Warning: Redefining STRUCT DB-LOCK fields to be: > ; (# (:UNSIGNED 32) #x834783E> OFF 32 at 0> # 32 at 32> # # #2=# MODE 32 at 96>) > ; were > ; (# > # # FIELD #1# DB-BDB-C46::GEN 32 at 64> # C46::MODE 32 at 96>) > ; While executing: CCL::PARSE-FOREIGN-RECORD-TYPE, in process > listener(1). > ; Warning: Redefining STRUCT DB-LOCKREQ fields to be: > ; (# (:SIGNED 32) #x83479FE> OP 32 at 0> # 32 at 32> # 32) #x834783E> TIMEOUT 32 at 64> # ARRAY-TYPE (ARRAY (:SIGNED 8)) #x875E93E> OBJ 8 at 96> # FIELD #4=# (OFF (:UNSIGNED 32) 32) (NDX (:UNSIGNED 32) 32) (GEN (:UNSIGNED 32) > 32) (MODE (:SIGNED 32) 32))) #x875E8EE> LOCK 32 at 128>) > ; were > ; (# > # # FIELD #2# DB-BDB-C46::TIMEOUT 32 at 64> # BDB-C46::OBJ 8 at 96> # 32 at 128>) > ; While executing: CCL::PARSE-FOREIGN-RECORD-TYPE, in process > listener(1). > ;Compiler warnings for "/Users/Patrick/src/lisp/elephant-unstable/ > src/db-bdb/bdb-controller.lisp" : > ; In (DEFAULT-CLASS-ID (T BDB-STORE-CONTROLLER)): Duplicate > keyform QUOTE in ECASE statement. > ; In (DEFAULT-CLASS-ID (T BDB-STORE-CONTROLLER)): Duplicate > keyform QUOTE in ECASE statement. > ; In (DEFAULT-CLASS-ID (T BDB-STORE-CONTROLLER)): Duplicate > keyform QUOTE in ECASE statement. > ; Warning: COMPILE-FILE warned while performing # #x870CBAE> on #. > ; While executing: # ASDF:CL-SOURCE-FILE)>, in process listener(1). > ; Warning: COMPILE-FILE failed while performing # #x870CBAE> on #. > ; While executing: # ASDF:CL-SOURCE-FILE)>, in process listener(1). > > Error: Undefined function #:G2120 called with arguments (# Foreign Pointer #x805800> # # Pointer #x107A60> 2 # 10 0 # Pointer [stack-allocated] #x565900>) . > > While executing: # BDB::BDB-STORE-CONTROLLER)>, in process listener(1). > > Type :GO to continue, :POP to abort, :R for a list of available > restarts. > > If continued: Retry applying #:G2120 to (# #x805800> # # 2 > # 10 0 # allocated] #x565900>). > > Type :? for other options. > 1 > > > Any thoughts? > > Thanks, > > Patrick > > ---- > pjm at spe.com > S P Engineering, Inc. > Large scale, mission-critical, distributed OO systems design and > implementation. > (C++, Java, Common Lisp, Jini, middleware, SOA) > > > > _______________________________________________ > elephant-devel site list > elephant-devel at common-lisp.net > http://common-lisp.net/mailman/listinfo/elephant-devel From eslick at media.mit.edu Sun Jun 29 01:31:32 2008 From: eslick at media.mit.edu (Ian Eslick) Date: Sat, 28 Jun 2008 21:31:32 -0400 Subject: [elephant-devel] Caching and 1.0 Message-ID: <9A332B47-C710-4FF3-A45B-E07061A922F0@media.mit.edu> FYI - After due consideration I've decided to exclude object caching as a supported feature in the upcoming Elephant 1.0 beta 1 release. The good ideas I come up with for resolving some of the issues brought up earlier, particularly by Alex, involve enough delicate work in the slot access protocol and transaction macros that I won't have time to focus on verifying and debugging more essential features. Caching can be a cool feature in the roadmap that I may do sooner rather than later to satisfy my own needs... Ian From pjm at spe.com Sun Jun 29 13:44:42 2008 From: pjm at spe.com (Patrick May) Date: Sun, 29 Jun 2008 09:44:42 -0400 Subject: [elephant-devel] Problem installing with latest Clozure In-Reply-To: References: <72A138AC-671B-459C-88D5-A03A7B214BDF@spe.com> <06A7F5B2-17FD-4E33-8485-670B39DE3875@media.mit.edu> <6457A671-BF86-42F9-8605-C08D2DBF1EB6@spe.com> <250994741-1214564971-cardhu_decombobulator_blackberry.rim.net-1469284678-@bxe123.bisx.prod.on.blackberry> <8724B86A-3DA2-41FE-8839-C3E29A720E4D@spe.com> <50e8e4f60806270720m33adf3c0ra70e1bed2f3ec7b5@mail.gmail.com> <153DC919-DE51-4006-BFCE-3767753F5FD7@spe.com> Message-ID: <6FD92050-7E07-4958-A07C-982816BEFDAD@spe.com> On 28 Jun 2008, at 21:23, Ian Eslick wrote: > Patrick, > > Can you send the contents of your my-config.sexp? Also, what > version of uffi are you using? > > The big hint here is that the BDB constants your are loading are > coming from the C46 constants package and not the C45 package that > you should be loading to match the BDB 4.5 that you're compiling. > I'm not sure why this is the case; but can you confirm > that :berkeley-db-version in your my-config.sexp is "4.5". > > Ian > > PS - In looking at your compiler output I've corrected and pushed a > patch for a couple of odd typos that probably don't effect this. Ian, Thanks for the help. My my-config.sexp in elephant-unstable is: #+(and (or sbcl allegro openmcl lispworks) (not (or mswindows windows)) (or macosx darwin)) ((:compiler . :gcc) (:berkeley-db-version . "4.5") (:berkeley-db-include-dir . "/usr/local/BerkeleyDB.4.5/include/") (:berkeley-db-lib-dir . "/usr/local/BerkeleyDB.4.5/lib/") (:berkeley-db-lib . "/usr/local/BerkeleyDB.4.5/lib/libdb-4.5.dylib") (:berkeley-db-deadlock . "/usr/local/BerkeleyDB.4.5/bin/db_deadlock") (:berkeley-db-cachesize . 5242880) (:berkeley-db-max-locks . 2000) (:berkeley-db-max-objects . 2000) (:berkeley-db-map-degree2 . t) (:clsql-lib-paths . nil) (:prebuilt-libraries . nil)) Regards, Patrick ---- pjm at spe.com S P Engineering, Inc. Large scale, mission-critical, distributed OO systems design and implementation. (C++, Java, Common Lisp, Jini, middleware, SOA) From eslick at media.mit.edu Sun Jun 29 14:17:33 2008 From: eslick at media.mit.edu (Ian Eslick) Date: Sun, 29 Jun 2008 10:17:33 -0400 Subject: [elephant-devel] Problem installing with latest Clozure In-Reply-To: <6FD92050-7E07-4958-A07C-982816BEFDAD@spe.com> References: <72A138AC-671B-459C-88D5-A03A7B214BDF@spe.com> <06A7F5B2-17FD-4E33-8485-670B39DE3875@media.mit.edu> <6457A671-BF86-42F9-8605-C08D2DBF1EB6@spe.com> <250994741-1214564971-cardhu_decombobulator_blackberry.rim.net-1469284678-@bxe123.bisx.prod.on.blackberry> <8724B86A-3DA2-41FE-8839-C3E29A720E4D@spe.com> <50e8e4f60806270720m33adf3c0ra70e1bed2f3ec7b5@mail.gmail.com> <153DC919-DE51-4006-BFCE-3767753F5FD7@spe.com> <6FD92050-7E07-4958-A07C-982816BEFDAD@spe.com> Message-ID: <2DEE8D5B-0287-4DA1-A1A4-EBCED62AB9E8@media.mit.edu> Chris got unstable to work on ccl, so my best guess is that there are stale fasls. Try :force t on asdf:load-op or ensuring that all fasls are deleted in the src/db-bdb directory. The error your forwarded refers to constants in DB-BDB-C46 when they should be referring to DB-BDB-C45. If you get the wrong constants, then the BDB library is going to complain loudly... (# OP 32 at 0> # # TIMEOUT 32 at 64> # OBJ 8 at 96> # LOCK 32 at 128>) ; were ; (# # # # #) ; While executing: CCL::PARSE-FOREIGN-RECORD-TYPE, in process listener(1). On Jun 29, 2008, at 9:44 AM, Patrick May wrote: > On 28 Jun 2008, at 21:23, Ian Eslick wrote: >> Patrick, >> >> Can you send the contents of your my-config.sexp? Also, what >> version of uffi are you using? >> >> The big hint here is that the BDB constants your are loading are >> coming from the C46 constants package and not the C45 package that >> you should be loading to match the BDB 4.5 that you're compiling. >> I'm not sure why this is the case; but can you confirm >> that :berkeley-db-version in your my-config.sexp is "4.5". >> >> Ian >> >> PS - In looking at your compiler output I've corrected and pushed a >> patch for a couple of odd typos that probably don't effect this. > > > Ian, > > Thanks for the help. My my-config.sexp in elephant-unstable is: > > #+(and (or sbcl allegro openmcl lispworks) (not (or mswindows > windows)) (or macosx darwin)) > ((:compiler . :gcc) > (:berkeley-db-version . "4.5") > (:berkeley-db-include-dir . "/usr/local/BerkeleyDB.4.5/include/") > (:berkeley-db-lib-dir . "/usr/local/BerkeleyDB.4.5/lib/") > (:berkeley-db-lib . "/usr/local/BerkeleyDB.4.5/lib/libdb-4.5.dylib") > (:berkeley-db-deadlock . "/usr/local/BerkeleyDB.4.5/bin/db_deadlock") > (:berkeley-db-cachesize . 5242880) > (:berkeley-db-max-locks . 2000) > (:berkeley-db-max-objects . 2000) > (:berkeley-db-map-degree2 . t) > (:clsql-lib-paths . nil) > (:prebuilt-libraries . nil)) > > Regards, > > Patrick > > ---- > pjm at spe.com > S P Engineering, Inc. > Large scale, mission-critical, distributed OO systems design and > implementation. > (C++, Java, Common Lisp, Jini, middleware, SOA) > > > > _______________________________________________ > elephant-devel site list > elephant-devel at common-lisp.net > http://common-lisp.net/mailman/listinfo/elephant-devel From gtarcea at umich.edu Sun Jun 29 14:22:09 2008 From: gtarcea at umich.edu (Glenn Tarcea) Date: Sun, 29 Jun 2008 10:22:09 -0400 Subject: [elephant-devel] Documentation Updates In-Reply-To: <5EF621BA-E912-414B-A69F-869DC8A3278B@media.mit.edu> References: <5B8CCB3C-BBD4-4131-A2D1-C93E01A2ECDF@umich.edu> <5EF621BA-E912-414B-A69F-869DC8A3278B@media.mit.edu> Message-ID: Ian, The set-valued-slots are very nice. I've been playing around with them to write the documentation and have found they will cleanup some code I had written using make-pset. One question: Should the write up on PSETs remain in the documentation, or should there be a write up to migrate people over to using the slot-valued-sets instead? Thanks, Glenn On Jun 20, 2008, at 2:42 PM, Ian Eslick wrote: > Great stuff! > > To answer a couple of questions: > - Cached slots aren't ready yet; I'll document when I can work out > the kinks: > - Indexed slots are the same as the existing indexed-slots > descriptions, except for > the :inherit slot option so you should be able to copy & paste > existing content > for these slots and for derived index slots > - Derived index slots are still pertinent and will remain > > ----------------------- > Set-valued Slots > > src/elephant/set-valued-slots.lisp > > Set-valued slots are a convenient shorthand to using PSETs as slot > values to get persistent collections as slot values. > > (slot-value object 'set-slot) > returns a SLOT-SET which implements the PSET interface as well as: > map-slot-set - maps over the elements of the set > drop-slot-set - drops the set from the DB > slot-set-list - returns a list of the elements in the set > > (setf (slot-value object 'slotname) foo) > adds foo to the SLOT-SET in slot named 'slotname > however, if foo is a slot-set object, it drops and replaces the > existing slot-set > > (slot-makunbound object 'slotname) > Make the slot unbound and drops the SLOT-SET from the DB. > > Of course these work for accessors too (setf (accessor object) foo) > => adds foo to slot set > > There are a couple of helper macros to simplify expressions like: > (slot-set-list (slot-value object 'set-slot)) > > (set-list object 'slotname) > (set-insert foo object 'slotname) > (set-remove foo object 'slotname) > > I'm happy to rename these operators if anyone has opinions on > better names... > > Regards, > Ian > > > On Jun 20, 2008, at 11:17 AM, Glenn Tarcea wrote: > >> Attached are updates to the documentation. Specifically I updated: >> >> 1. Section: Setting Up Berkeley DB - to include the additional >> flags (:berkeley-db-max-locks and :berkeley-db-max-objects) along >> with their descriptions and updated the list of of parameters in >> the my-config.sexp >> >> 2. Added a new section under Installation titled "Using Multiple >> Versions Of Elephant" that describes how to use ASDF to allow >> multiple versions of Elephant to be installed on a single system >> >> 3. Made a change to one of the Scenarios where the class was >> system-object, but the methods were referring to system-state >> (Section: Persistent System Objects) >> >> 4. Put placeholders in for the different slot types, titled: >> Using Cached Slots >> Using Indexed Slots >> Using Derived Indexed Slots >> Using Set Valued Slots >> >> 5. Added a write up based on Ian's email on Association Slots >> titled "Using Association Slots" >> >> 6. Updated the Section (4) titled "Berkeley DB Data Store": >> a. to include references to the new my-config.sexp parameters >> b. Updated the open-store parameters to include :max- >> locks :cachesize and :max-objects >> c. Updated performance tuning to quickly describe what berkeley- >> db-max-locks, and objects do >> d. Show an example call to open-store using :max-locks and :max- >> objects >> e. Updated performance tuning to include a reference to the >> Berkeley-DB parameters that max-locks and max-objects refer to and >> to point the user at DB_CONFIG for additional information. >> >> Can someone send me a quick example or jot down a few notes on >> using Cached and Set Valued slots? >> >> Are Derived Indexed Slots still pertinent (I recall a lot of >> discussion regarding them but don't recall what the outcome was). >> >> More documentation updates later. >> >> Thanks, >> >> Glenn >> >> _______________________________________________ >> 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 > > From pjm at spe.com Sun Jun 29 14:48:19 2008 From: pjm at spe.com (Patrick May) Date: Sun, 29 Jun 2008 10:48:19 -0400 Subject: [elephant-devel] Problem installing with latest Clozure In-Reply-To: <2DEE8D5B-0287-4DA1-A1A4-EBCED62AB9E8@media.mit.edu> References: <72A138AC-671B-459C-88D5-A03A7B214BDF@spe.com> <06A7F5B2-17FD-4E33-8485-670B39DE3875@media.mit.edu> <6457A671-BF86-42F9-8605-C08D2DBF1EB6@spe.com> <250994741-1214564971-cardhu_decombobulator_blackberry.rim.net-1469284678-@bxe123.bisx.prod.on.blackberry> <8724B86A-3DA2-41FE-8839-C3E29A720E4D@spe.com> <50e8e4f60806270720m33adf3c0ra70e1bed2f3ec7b5@mail.gmail.com> <153DC919-DE51-4006-BFCE-3767753F5FD7@spe.com> <6FD92050-7E07-4958-A07C-982816BEFDAD@spe.com> <2DEE8D5B-0287-4DA1-A1A4-EBCED62AB9E8@media.mit.edu> Message-ID: <076967FC-E8CD-4DD0-AE18-F52644093A26@spe.com> On 29 Jun 2008, at 10:17, Ian Eslick wrote: > Chris got unstable to work on ccl, so my best guess is that there > are stale fasls. Try :force t on asdf:load-op or ensuring that all > fasls are deleted in the src/db-bdb directory. > > The error your forwarded refers to constants in DB-BDB-C46 when they > should be referring to DB-BDB-C45. If you get the wrong constants, > then the BDB library is going to complain loudly... I had removed 0.9.1 and unstable and retrieved them again via darcs before running that test. As a second test, I cleaned and re- retrieved them again, installed BDB 4.6, changed my-config.sexp appropriately, and got this error: ; While executing: CCL::PARSE-FOREIGN-RECORD-TYPE, in process listener(1). > Error: Undefined function #:G2122 called with arguments (# # # 2 # 10 0 #) . > While executing: #, in process listener(1). > Type :GO to continue, :POP to abort, :R for a list of available restarts. > If continued: Retry applying #:G2122 to (# # # 2 # 10 0 #). > Type :? for other options. 1 > I've put the full output below my sig. Thanks, Patrick ---- pjm at spe.com S P Engineering, Inc. Large scale, mission-critical, distributed OO systems design and implementation. (C++, Java, Common Lisp, Jini, middleware, SOA) Dagny:Patrick:~/src/lisp/elephant-unstable> ccl ; loading system definition from /usr/local/ccl/tools/asdf-install/ asdf-install.asd into # ; registering # as ASDF-INSTALL ;;; ASDF-Install version 0.6.10 ; loading system definition from /Users/Patrick/src/lisp/clsql-4.0.3/ clsql.asd into # ; loading system definition from /usr/local/asdf-install/site-systems/ uffi.asd into # ; registering # as UFFI ; registering # as CLSQL Welcome to Clozure Common Lisp Version 1.2-r9226-RC1 (DarwinPPC32)! ? (asdf:operate 'asdf:load-op :elephant) ; loading system definition from elephant.asd into # ; registering # as ELEPHANT ; loading system definition from /usr/local/asdf-install/site-systems/ cl-base64.asd into # ; registering # as CL-BASE64 ; registering # as CL-BASE64-TESTS ; $ gcc -bundle -fPIC -Wall -g -O2 -g /Users/Patrick/src/lisp/elephant- unstable/src/memutil/libmemutil.c -o /Users/Patrick/src/lisp/elephant- unstable/src/memutil/libmemutil.dylib -lm Attempting to load libmemutil.dylib... Loaded /Users/Patrick/src/lisp/elephant-unstable/src/memutil/ libmemutil.dylib ;Compiler warnings for "/Users/Patrick/src/lisp/elephant-unstable/src/ elephant/classes.lisp" : ; In (SHARED-INITIALIZE :AROUND (PERSISTENT-METACLASS T)): Unused lexical variable INDEX ; In (REINITIALIZE-INSTANCE :AROUND (PERSISTENT-METACLASS)): Unused lexical variable INITARGS ; In (INITIALIZE-INSTANCE :AROUND (PERSISTENT-OBJECT)): Unused lexical variable INITARGS ; In (RECREATE-INSTANCE (PERSISTENT-OBJECT)) inside an anonymous lambda form: Unused lexical variable ARGS ; Warning: COMPILE-FILE warned while performing # on #. ; While executing: #, in process listener(1). ;Compiler warnings for "/Users/Patrick/src/lisp/elephant-unstable/src/ elephant/schema-evolution.lisp" : ; In (UPGRADE-ALL-MEMORY-INSTANCES (STORE-CONTROLLER)): Undeclared free variable VALUE ; Warning: COMPILE-FILE warned while performing # on #. ; While executing: #, in process listener(1). ; Warning: COMPILE-FILE failed while performing # on #. ; While executing: #, in process listener(1). ;Compiler warnings for "/Users/Patrick/src/lisp/elephant-unstable/src/ elephant/collections.lisp" : ; In (MAP-BTREE (T BTREE)): Unused lexical variable ARGS ; In (MAP-INDEX (T BTREE-INDEX)): Unused lexical variable ARGS ; Warning: COMPILE-FILE warned while performing # on #. ; While executing: #, in process listener(1). ;Compiler warnings for "/Users/Patrick/src/lisp/elephant-unstable/src/ elephant/query.lisp" : ; In SORT-TUPLES: Unused lexical variable KEY-FN ; Warning: COMPILE-FILE warned while performing # on #. ; While executing: #, in process listener(1). NIL ? (use-package :elephant) T ? (open-store '(:BDB "/Users/Patrick/src/lisp/elephant-bdb/")) ; loading system definition from ele-bdb.asd into # ; registering # as ELE-BDB Attempting to load libmemutil.dylib... Loaded /Users/Patrick/src/lisp/elephant-unstable/src/memutil/ libmemutil.dylib ; $ gcc -L/usr/local/BerkeleyDB.4.6/lib/ -I/usr/local/BerkeleyDB.4.6/ include/ -bundle -fPIC -Wall -g -O2 -g /Users/Patrick/src/lisp/ elephant-unstable/src/db-bdb/libberkeley-db.c -o /Users/Patrick/src/ lisp/elephant-unstable/src/db-bdb/libberkeley-db.dylib -lm -ldb-4.6 Loading /usr/local/BerkeleyDB.4.6/lib/libdb-4.6.dylib Attempting to load libberkeley-db.dylib... Loaded /Users/Patrick/src/lisp/elephant-unstable/src/db-bdb/ libberkeley-db.dylib ; Warning: Redefining STRUCT DB-LOCK fields to be: ; (# OFF 32 at 0> # # # MODE 32 at 96>) ; were ; (# # # #) ; While executing: CCL::PARSE-FOREIGN-RECORD-TYPE, in process listener(1). ; Warning: Redefining STRUCT DB-LOCKREQ fields to be: ; (# OP 32 at 0> # # TIMEOUT 32 at 64> # OBJ 8 at 96> # LOCK 32 at 128>) ; were ; (# # # # #) ; While executing: CCL::PARSE-FOREIGN-RECORD-TYPE, in process listener(1). ; Warning: Redefining STRUCT DB-LOCK fields to be: ; (# OFF 32 at 0> # # # MODE 32 at 96>) ; were ; (# # # #) ; While executing: CCL::PARSE-FOREIGN-RECORD-TYPE, in process listener(1). ; Warning: Redefining STRUCT DB-LOCKREQ fields to be: ; (# OP 32 at 0> # # TIMEOUT 32 at 64> # OBJ 8 at 96> # LOCK 32 at 128>) ; were ; (# # # # #) ; While executing: CCL::PARSE-FOREIGN-RECORD-TYPE, in process listener(1). > Error: Undefined function #:G2122 called with arguments (# # # 2 # 10 0 #) . > While executing: #, in process listener(1). > Type :GO to continue, :POP to abort, :R for a list of available restarts. > If continued: Retry applying #:G2122 to (# # # 2 # 10 0 #). > Type :? for other options. 1 > From eslick at media.mit.edu Sun Jun 29 15:54:06 2008 From: eslick at media.mit.edu (Ian Eslick) Date: Sun, 29 Jun 2008 11:54:06 -0400 Subject: [elephant-devel] Documentation Updates In-Reply-To: References: <5B8CCB3C-BBD4-4131-A2D1-C93E01A2ECDF@umich.edu> <5EF621BA-E912-414B-A69F-869DC8A3278B@media.mit.edu> Message-ID: <4263BEE4-AC88-4DE8-9E78-74E704C7599D@media.mit.edu> They should both stay, people may want access to the primitives (for example a set of sets) and there is no reason not to provide it. Ian On Jun 29, 2008, at 10:22 AM, Glenn Tarcea wrote: > Ian, > > The set-valued-slots are very nice. I've been playing around with > them to write the documentation and have found they will cleanup > some code I had written using make-pset. One question: Should the > write up on PSETs remain in the documentation, or should there be a > write up to migrate people over to using the slot-valued-sets instead? > > Thanks, > > Glenn > > On Jun 20, 2008, at 2:42 PM, Ian Eslick wrote: > >> Great stuff! >> >> To answer a couple of questions: >> - Cached slots aren't ready yet; I'll document when I can work out >> the kinks: >> - Indexed slots are the same as the existing indexed-slots >> descriptions, except for >> the :inherit slot option so you should be able to copy & paste >> existing content >> for these slots and for derived index slots >> - Derived index slots are still pertinent and will remain >> >> ----------------------- >> Set-valued Slots >> >> src/elephant/set-valued-slots.lisp >> >> Set-valued slots are a convenient shorthand to using PSETs as slot >> values to get persistent collections as slot values. >> >> (slot-value object 'set-slot) >> returns a SLOT-SET which implements the PSET interface as well as: >> map-slot-set - maps over the elements of the set >> drop-slot-set - drops the set from the DB >> slot-set-list - returns a list of the elements in the set >> >> (setf (slot-value object 'slotname) foo) >> adds foo to the SLOT-SET in slot named 'slotname >> however, if foo is a slot-set object, it drops and replaces the >> existing slot-set >> >> (slot-makunbound object 'slotname) >> Make the slot unbound and drops the SLOT-SET from the DB. >> >> Of course these work for accessors too (setf (accessor object) foo) >> => adds foo to slot set >> >> There are a couple of helper macros to simplify expressions like: >> (slot-set-list (slot-value object 'set-slot)) >> >> (set-list object 'slotname) >> (set-insert foo object 'slotname) >> (set-remove foo object 'slotname) >> >> I'm happy to rename these operators if anyone has opinions on >> better names... >> >> Regards, >> Ian >> >> >> On Jun 20, 2008, at 11:17 AM, Glenn Tarcea wrote: >> >>> Attached are updates to the documentation. Specifically I updated: >>> >>> 1. Section: Setting Up Berkeley DB - to include the additional >>> flags (:berkeley-db-max-locks and :berkeley-db-max-objects) along >>> with their descriptions and updated the list of of parameters in >>> the my-config.sexp >>> >>> 2. Added a new section under Installation titled "Using Multiple >>> Versions Of Elephant" that describes how to use ASDF to allow >>> multiple versions of Elephant to be installed on a single system >>> >>> 3. Made a change to one of the Scenarios where the class was >>> system-object, but the methods were referring to system-state >>> (Section: Persistent System Objects) >>> >>> 4. Put placeholders in for the different slot types, titled: >>> Using Cached Slots >>> Using Indexed Slots >>> Using Derived Indexed Slots >>> Using Set Valued Slots >>> >>> 5. Added a write up based on Ian's email on Association Slots >>> titled "Using Association Slots" >>> >>> 6. Updated the Section (4) titled "Berkeley DB Data Store": >>> a. to include references to the new my-config.sexp parameters >>> b. Updated the open-store parameters to include :max- >>> locks :cachesize and :max-objects >>> c. Updated performance tuning to quickly describe what berkeley- >>> db-max-locks, and objects do >>> d. Show an example call to open-store using :max-locks and :max- >>> objects >>> e. Updated performance tuning to include a reference to the >>> Berkeley-DB parameters that max-locks and max-objects refer to and >>> to point the user at DB_CONFIG for additional information. >>> >>> Can someone send me a quick example or jot down a few notes on >>> using Cached and Set Valued slots? >>> >>> Are Derived Indexed Slots still pertinent (I recall a lot of >>> discussion regarding them but don't recall what the outcome was). >>> >>> More documentation updates later. >>> >>> Thanks, >>> >>> Glenn >>> >>> _______________________________________________ >>> 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 From eslick at media.mit.edu Sun Jun 29 16:00:53 2008 From: eslick at media.mit.edu (Ian Eslick) Date: Sun, 29 Jun 2008 12:00:53 -0400 Subject: [elephant-devel] Problem installing with latest Clozure In-Reply-To: <076967FC-E8CD-4DD0-AE18-F52644093A26@spe.com> References: <72A138AC-671B-459C-88D5-A03A7B214BDF@spe.com> <06A7F5B2-17FD-4E33-8485-670B39DE3875@media.mit.edu> <6457A671-BF86-42F9-8605-C08D2DBF1EB6@spe.com> <250994741-1214564971-cardhu_decombobulator_blackberry.rim.net-1469284678-@bxe123.bisx.prod.on.blackberry> <8724B86A-3DA2-41FE-8839-C3E29A720E4D@spe.com> <50e8e4f60806270720m33adf3c0ra70e1bed2f3ec7b5@mail.gmail.com> <153DC919-DE51-4006-BFCE-3767753F5FD7@spe.com> <6FD92050-7E07-4958-A07C-982816BEFDAD@spe.com> <2DEE8D5B-0287-4DA1-A1A4-EBCED62AB9E8@media.mit.edu> <076967FC-E8CD-4DD0-AE18-F52644093A26@spe.com> Message-ID: Well Patrick, I'm sorry to say that I'm stumped. I no longer have access to a 32-bit PPC system to debug this locally. I remember having problems with the 64-bit CCL on Intel the last time I tried to run CCL and was waiting for them to go to production before running it again. Have you tried to build & run elephant on any other platform? Has anyone else out there run Elephant successfully with ccl under PPC-32? Patrick, can you build elephant using SBCL on your platform? Ian On Jun 29, 2008, at 10:48 AM, Patrick May wrote: > On 29 Jun 2008, at 10:17, Ian Eslick wrote: >> Chris got unstable to work on ccl, so my best guess is that there >> are stale fasls. Try :force t on asdf:load-op or ensuring that all >> fasls are deleted in the src/db-bdb directory. >> >> The error your forwarded refers to constants in DB-BDB-C46 when >> they should be referring to DB-BDB-C45. If you get the wrong >> constants, then the BDB library is going to complain loudly... > > > I had removed 0.9.1 and unstable and retrieved them again via darcs > before running that test. As a second test, I cleaned and re- > retrieved them again, installed BDB 4.6, changed my-config.sexp > appropriately, and got this error: > > ; While executing: CCL::PARSE-FOREIGN-RECORD-TYPE, in process > listener(1). > > Error: Undefined function #:G2122 called with arguments (# Foreign Pointer #x805A00> # # Pointer #x1084A0> 2 # 10 0 # Pointer [stack-allocated] #x565900>) . > > While executing: # BDB::BDB-STORE-CONTROLLER)>, in process listener(1). > > Type :GO to continue, :POP to abort, :R for a list of available > restarts. > > If continued: Retry applying #:G2122 to (# #x805A00> # # 2 > # 10 0 # allocated] #x565900>). > > Type :? for other options. > 1 > > > I've put the full output below my sig. > > Thanks, > > Patrick > > ---- > pjm at spe.com > S P Engineering, Inc. > Large scale, mission-critical, distributed OO systems design and > implementation. > (C++, Java, Common Lisp, Jini, middleware, SOA) > > > Dagny:Patrick:~/src/lisp/elephant-unstable> ccl > ; loading system definition from /usr/local/ccl/tools/asdf-install/ > asdf-install.asd into # > ; registering # as ASDF-INSTALL > ;;; ASDF-Install version 0.6.10 > ; loading system definition from /Users/Patrick/src/lisp/clsql-4.0.3/ > clsql.asd into # > ; loading system definition from /usr/local/asdf-install/site- > systems/uffi.asd into # > ; registering # as UFFI > ; registering # as CLSQL > Welcome to Clozure Common Lisp Version 1.2-r9226-RC1 (DarwinPPC32)! > ? (asdf:operate 'asdf:load-op :elephant) > ; loading system definition from elephant.asd into # > ; registering # as ELEPHANT > ; loading system definition from /usr/local/asdf-install/site- > systems/cl-base64.asd into # > ; registering # as CL-BASE64 > ; registering # as CL-BASE64-TESTS > ; $ gcc -bundle -fPIC -Wall -g -O2 -g /Users/Patrick/src/lisp/ > elephant-unstable/src/memutil/libmemutil.c -o /Users/Patrick/src/ > lisp/elephant-unstable/src/memutil/libmemutil.dylib -lm > Attempting to load libmemutil.dylib... > Loaded /Users/Patrick/src/lisp/elephant-unstable/src/memutil/ > libmemutil.dylib > ;Compiler warnings for "/Users/Patrick/src/lisp/elephant-unstable/ > src/elephant/classes.lisp" : > ; In (SHARED-INITIALIZE :AROUND (PERSISTENT-METACLASS T)): Unused > lexical variable INDEX > ; In (REINITIALIZE-INSTANCE :AROUND (PERSISTENT-METACLASS)): > Unused lexical variable INITARGS > ; In (INITIALIZE-INSTANCE :AROUND (PERSISTENT-OBJECT)): Unused > lexical variable INITARGS > ; In (RECREATE-INSTANCE (PERSISTENT-OBJECT)) inside an anonymous > lambda form: Unused lexical variable ARGS > ; Warning: COMPILE-FILE warned while performing # #x8598B56> on #. > ; While executing: # ASDF:CL-SOURCE-FILE)>, in process listener(1). > ;Compiler warnings for "/Users/Patrick/src/lisp/elephant-unstable/ > src/elephant/schema-evolution.lisp" : > ; In (UPGRADE-ALL-MEMORY-INSTANCES (STORE-CONTROLLER)): Undeclared > free variable VALUE > ; Warning: COMPILE-FILE warned while performing # #x8598B56> on #. > ; While executing: # ASDF:CL-SOURCE-FILE)>, in process listener(1). > ; Warning: COMPILE-FILE failed while performing # #x8598B56> on #. > ; While executing: # ASDF:CL-SOURCE-FILE)>, in process listener(1). > ;Compiler warnings for "/Users/Patrick/src/lisp/elephant-unstable/ > src/elephant/collections.lisp" : > ; In (MAP-BTREE (T BTREE)): Unused lexical variable ARGS > ; In (MAP-INDEX (T BTREE-INDEX)): Unused lexical variable ARGS > ; Warning: COMPILE-FILE warned while performing # #x8598B56> on #. > ; While executing: # ASDF:CL-SOURCE-FILE)>, in process listener(1). > ;Compiler warnings for "/Users/Patrick/src/lisp/elephant-unstable/ > src/elephant/query.lisp" : > ; In SORT-TUPLES: Unused lexical variable KEY-FN > ; Warning: COMPILE-FILE warned while performing # #x8596A46> on #. > ; While executing: # ASDF:CL-SOURCE-FILE)>, in process listener(1). > NIL > ? (use-package :elephant) > T > ? (open-store '(:BDB "/Users/Patrick/src/lisp/elephant-bdb/")) > ; loading system definition from ele-bdb.asd into # > ; registering # as ELE-BDB > Attempting to load libmemutil.dylib... > Loaded /Users/Patrick/src/lisp/elephant-unstable/src/memutil/ > libmemutil.dylib > ; $ gcc -L/usr/local/BerkeleyDB.4.6/lib/ -I/usr/local/BerkeleyDB.4.6/ > include/ -bundle -fPIC -Wall -g -O2 -g /Users/Patrick/src/lisp/ > elephant-unstable/src/db-bdb/libberkeley-db.c -o /Users/Patrick/src/ > lisp/elephant-unstable/src/db-bdb/libberkeley-db.dylib -lm -ldb-4.6 > Loading /usr/local/BerkeleyDB.4.6/lib/libdb-4.6.dylib > Attempting to load libberkeley-db.dylib... > Loaded /Users/Patrick/src/lisp/elephant-unstable/src/db-bdb/ > libberkeley-db.dylib > ; Warning: Redefining STRUCT DB-LOCK fields to be: > ; (# (:UNSIGNED 32) #x834783E> OFF 32 at 0> # 32 at 32> # # #2=# MODE 32 at 96>) > ; were > ; (# > # # FIELD #1# DB-BDB-C45::GEN 32 at 64> # C45::MODE 32 at 96>) > ; While executing: CCL::PARSE-FOREIGN-RECORD-TYPE, in process > listener(1). > ; Warning: Redefining STRUCT DB-LOCKREQ fields to be: > ; (# (:SIGNED 32) #x83479FE> OP 32 at 0> # 32 at 32> # 32) #x834783E> TIMEOUT 32 at 64> # ARRAY-TYPE (ARRAY (:SIGNED 8)) #x876531E> OBJ 8 at 96> # FIELD #4=# (OFF (:UNSIGNED 32) 32) (NDX (:UNSIGNED 32) 32) (GEN (:UNSIGNED 32) > 32) (MODE (:SIGNED 32) 32))) #x87652CE> LOCK 32 at 128>) > ; were > ; (# > # # FIELD #2# DB-BDB-C45::TIMEOUT 32 at 64> # BDB-C45::OBJ 8 at 96> # 32 at 128>) > ; While executing: CCL::PARSE-FOREIGN-RECORD-TYPE, in process > listener(1). > ; Warning: Redefining STRUCT DB-LOCK fields to be: > ; (# (:UNSIGNED 32) #x834783E> OFF 32 at 0> # 32 at 32> # # #2=# MODE 32 at 96>) > ; were > ; (# > # # FIELD #1# DB-BDB-C46::GEN 32 at 64> # C46::MODE 32 at 96>) > ; While executing: CCL::PARSE-FOREIGN-RECORD-TYPE, in process > listener(1). > ; Warning: Redefining STRUCT DB-LOCKREQ fields to be: > ; (# (:SIGNED 32) #x83479FE> OP 32 at 0> # 32 at 32> # 32) #x834783E> TIMEOUT 32 at 64> # ARRAY-TYPE (ARRAY (:SIGNED 8)) #x876531E> OBJ 8 at 96> # FIELD #4=# (OFF (:UNSIGNED 32) 32) (NDX (:UNSIGNED 32) 32) (GEN (:UNSIGNED 32) > 32) (MODE (:SIGNED 32) 32))) #x87652CE> LOCK 32 at 128>) > ; were > ; (# > # # FIELD #2# DB-BDB-C46::TIMEOUT 32 at 64> # BDB-C46::OBJ 8 at 96> # 32 at 128>) > ; While executing: CCL::PARSE-FOREIGN-RECORD-TYPE, in process > listener(1). > > Error: Undefined function #:G2122 called with arguments (# Foreign Pointer #x805A00> # # Pointer #x1084A0> 2 # 10 0 # Pointer [stack-allocated] #x565900>) . > > While executing: # BDB::BDB-STORE-CONTROLLER)>, in process listener(1). > > Type :GO to continue, :POP to abort, :R for a list of available > restarts. > > If continued: Retry applying #:G2122 to (# #x805A00> # # 2 > # 10 0 # allocated] #x565900>). > > Type :? for other options. > 1 > > > > _______________________________________________ > elephant-devel site list > elephant-devel at common-lisp.net > http://common-lisp.net/mailman/listinfo/elephant-devel From gtarcea at umich.edu Sun Jun 29 16:11:03 2008 From: gtarcea at umich.edu (Glenn Tarcea) Date: Sun, 29 Jun 2008 12:11:03 -0400 Subject: [elephant-devel] Set-Valued-Slots Documentation Update In-Reply-To: <4263BEE4-AC88-4DE8-9E78-74E704C7599D@media.mit.edu> References: <5B8CCB3C-BBD4-4131-A2D1-C93E01A2ECDF@umich.edu> <5EF621BA-E912-414B-A69F-869DC8A3278B@media.mit.edu> <4263BEE4-AC88-4DE8-9E78-74E704C7599D@media.mit.edu> Message-ID: Attached is a set of patches for the Set-Valued-Slots. This patch also includes the changes from the last set of documentation patches (I had to do this to get the new set of changes included). On top of the last set of document changes this new patch set includes the following 3 changes: 1. I removed the subsection on Cached Slots 2. I corrected the spelling for the Set-Valued slots sections (Valued was spelled Valed). 3. I included a write up on using set-valued-slots. All the examples in the section should work I have not updated the API documentation to include the new calls and macros. I also did not include a write up on how to remove the sets from the DB. At the moment I'm pondering documentation layout and will post some thoughts on some small changes to the layout (and didn't want to include these changes only to move them around). Also I'm trying to keep my patches small (which I assume will make it easier to review). If there is a better/easier way for me to post the documentation changes let me know. Thanks, Glenn -------------- next part -------------- A non-text attachment was scrubbed... Name: doc-update-june29v1.patch Type: application/octet-stream Size: 28285 bytes Desc: not available URL: -------------- next part -------------- On Jun 29, 2008, at 11:54 AM, Ian Eslick wrote: > They should both stay, people may want access to the primitives > (for example a set of sets) and there is no reason not to provide it. > > Ian > > On Jun 29, 2008, at 10:22 AM, Glenn Tarcea wrote: > >> Ian, >> >> The set-valued-slots are very nice. I've been playing around with >> them to write the documentation and have found they will cleanup >> some code I had written using make-pset. One question: Should the >> write up on PSETs remain in the documentation, or should there be >> a write up to migrate people over to using the slot-valued-sets >> instead? >> >> Thanks, >> >> Glenn >> >> On Jun 20, 2008, at 2:42 PM, Ian Eslick wrote: >> >>> Great stuff! >>> >>> To answer a couple of questions: >>> - Cached slots aren't ready yet; I'll document when I can work >>> out the kinks: >>> - Indexed slots are the same as the existing indexed-slots >>> descriptions, except for >>> the :inherit slot option so you should be able to copy & paste >>> existing content >>> for these slots and for derived index slots >>> - Derived index slots are still pertinent and will remain >>> >>> ----------------------- >>> Set-valued Slots >>> >>> src/elephant/set-valued-slots.lisp >>> >>> Set-valued slots are a convenient shorthand to using PSETs as >>> slot values to get persistent collections as slot values. >>> >>> (slot-value object 'set-slot) >>> returns a SLOT-SET which implements the PSET interface as well as: >>> map-slot-set - maps over the elements of the set >>> drop-slot-set - drops the set from the DB >>> slot-set-list - returns a list of the elements in the set >>> >>> (setf (slot-value object 'slotname) foo) >>> adds foo to the SLOT-SET in slot named 'slotname >>> however, if foo is a slot-set object, it drops and replaces the >>> existing slot-set >>> >>> (slot-makunbound object 'slotname) >>> Make the slot unbound and drops the SLOT-SET from the DB. >>> >>> Of course these work for accessors too (setf (accessor object) >>> foo) => adds foo to slot set >>> >>> There are a couple of helper macros to simplify expressions like: >>> (slot-set-list (slot-value object 'set-slot)) >>> >>> (set-list object 'slotname) >>> (set-insert foo object 'slotname) >>> (set-remove foo object 'slotname) >>> >>> I'm happy to rename these operators if anyone has opinions on >>> better names... >>> >>> Regards, >>> Ian >>> >>> >>> On Jun 20, 2008, at 11:17 AM, Glenn Tarcea wrote: >>> >>>> Attached are updates to the documentation. Specifically I updated: >>>> >>>> 1. Section: Setting Up Berkeley DB - to include the additional >>>> flags (:berkeley-db-max-locks and :berkeley-db-max-objects) >>>> along with their descriptions and updated the list of of >>>> parameters in the my-config.sexp >>>> >>>> 2. Added a new section under Installation titled "Using Multiple >>>> Versions Of Elephant" that describes how to use ASDF to allow >>>> multiple versions of Elephant to be installed on a single system >>>> >>>> 3. Made a change to one of the Scenarios where the class was >>>> system-object, but the methods were referring to system-state >>>> (Section: Persistent System Objects) >>>> >>>> 4. Put placeholders in for the different slot types, titled: >>>> Using Cached Slots >>>> Using Indexed Slots >>>> Using Derived Indexed Slots >>>> Using Set Valued Slots >>>> >>>> 5. Added a write up based on Ian's email on Association Slots >>>> titled "Using Association Slots" >>>> >>>> 6. Updated the Section (4) titled "Berkeley DB Data Store": >>>> a. to include references to the new my-config.sexp parameters >>>> b. Updated the open-store parameters to include :max- >>>> locks :cachesize and :max-objects >>>> c. Updated performance tuning to quickly describe what >>>> berkeley-db-max-locks, and objects do >>>> d. Show an example call to open-store using :max-locks >>>> and :max-objects >>>> e. Updated performance tuning to include a reference to the >>>> Berkeley-DB parameters that max-locks and max-objects refer to >>>> and to point the user at DB_CONFIG for additional information. >>>> >>>> Can someone send me a quick example or jot down a few notes on >>>> using Cached and Set Valued slots? >>>> >>>> Are Derived Indexed Slots still pertinent (I recall a lot of >>>> discussion regarding them but don't recall what the outcome was). >>>> >>>> More documentation updates later. >>>> >>>> Thanks, >>>> >>>> Glenn >>>> >>>> _______________________________________________ >>>> 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 > > _______________________________________________ > elephant-devel site list > elephant-devel at common-lisp.net > http://common-lisp.net/mailman/listinfo/elephant-devel > > From pjm at spe.com Sun Jun 29 18:58:23 2008 From: pjm at spe.com (Patrick May) Date: Sun, 29 Jun 2008 14:58:23 -0400 Subject: [elephant-devel] Problem installing with latest Clozure In-Reply-To: References: <72A138AC-671B-459C-88D5-A03A7B214BDF@spe.com> <06A7F5B2-17FD-4E33-8485-670B39DE3875@media.mit.edu> <6457A671-BF86-42F9-8605-C08D2DBF1EB6@spe.com> <250994741-1214564971-cardhu_decombobulator_blackberry.rim.net-1469284678-@bxe123.bisx.prod.on.blackberry> <8724B86A-3DA2-41FE-8839-C3E29A720E4D@spe.com> <50e8e4f60806270720m33adf3c0ra70e1bed2f3ec7b5@mail.gmail.com> <153DC919-DE51-4006-BFCE-3767753F5FD7@spe.com> <6FD92050-7E07-4958-A07C-982816BEFDAD@spe.com> <2DEE8D5B-0287-4DA1-A1A4-EBCED62AB9E8@media.mit.edu> <076967FC-E8CD-4DD0-AE18-F52644093A26@spe.com> Message-ID: <381DCBD3-9DF9-4899-AE1D-1F8874787AD7@spe.com> On 29 Jun 2008, at 12:00, Ian Eslick wrote: > Well Patrick, I'm sorry to say that I'm stumped. I no longer have > access to a 32-bit PPC system to debug this locally. I remember > having problems with the 64-bit CCL on Intel the last time I tried > to run CCL and was waiting for them to go to production before > running it again. > > Have you tried to build & run elephant on any other platform? Has > anyone else out there run Elephant successfully with ccl under PPC-32? > > Patrick, can you build elephant using SBCL on your platform? I just tried SBCL 1.0.2, elephant-unstable, and Berkeley DB 4.5. It worked. Regards, Patrick ---- pjm at spe.com S P Engineering, Inc. Large scale, mission-critical, distributed OO systems design and implementation. (C++, Java, Common Lisp, Jini, middleware, SOA) From eslick at media.mit.edu Mon Jun 30 00:56:21 2008 From: eslick at media.mit.edu (Ian Eslick) Date: Sun, 29 Jun 2008 20:56:21 -0400 Subject: [elephant-devel] Problem installing with latest Clozure In-Reply-To: <381DCBD3-9DF9-4899-AE1D-1F8874787AD7@spe.com> References: <72A138AC-671B-459C-88D5-A03A7B214BDF@spe.com> <06A7F5B2-17FD-4E33-8485-670B39DE3875@media.mit.edu> <6457A671-BF86-42F9-8605-C08D2DBF1EB6@spe.com> <250994741-1214564971-cardhu_decombobulator_blackberry.rim.net-1469284678-@bxe123.bisx.prod.on.blackberry> <8724B86A-3DA2-41FE-8839-C3E29A720E4D@spe.com> <50e8e4f60806270720m33adf3c0ra70e1bed2f3ec7b5@mail.gmail.com> <153DC919-DE51-4006-BFCE-3767753F5FD7@spe.com> <6FD92050-7E07-4958-A07C-982816BEFDAD@spe.com> <2DEE8D5B-0287-4DA1-A1A4-EBCED62AB9E8@media.mit.edu> <076967FC-E8CD-4DD0-AE18-F52644093A26@spe.com> <381DCBD3-9DF9-4899-AE1D-1F8874787AD7@spe.com> Message-ID: <9DF2A294-5F91-4700-8F58-EF449F2A8926@media.mit.edu> I'll talk to the Clozure developers when I get a chance; it's possible one of them will have an easier time figuring out what's causing this problem. Cheers, Ian On Jun 29, 2008, at 2:58 PM, Patrick May wrote: > On 29 Jun 2008, at 12:00, Ian Eslick wrote: >> Well Patrick, I'm sorry to say that I'm stumped. I no longer have >> access to a 32-bit PPC system to debug this locally. I remember >> having problems with the 64-bit CCL on Intel the last time I tried >> to run CCL and was waiting for them to go to production before >> running it again. >> >> Have you tried to build & run elephant on any other platform? Has >> anyone else out there run Elephant successfully with ccl under >> PPC-32? >> >> Patrick, can you build elephant using SBCL on your platform? > > > I just tried SBCL 1.0.2, elephant-unstable, and Berkeley DB 4.5. > It worked. > > Regards, > > Patrick > > ---- > pjm at spe.com > S P Engineering, Inc. > Large scale, mission-critical, distributed OO systems design and > implementation. > (C++, Java, Common Lisp, Jini, middleware, SOA) > > > > _______________________________________________ > elephant-devel site list > elephant-devel at common-lisp.net > http://common-lisp.net/mailman/listinfo/elephant-devel From pjm at spe.com Mon Jun 30 03:16:01 2008 From: pjm at spe.com (Patrick May) Date: Sun, 29 Jun 2008 23:16:01 -0400 Subject: [elephant-devel] Problem installing with latest Clozure In-Reply-To: <9DF2A294-5F91-4700-8F58-EF449F2A8926@media.mit.edu> References: <72A138AC-671B-459C-88D5-A03A7B214BDF@spe.com> <06A7F5B2-17FD-4E33-8485-670B39DE3875@media.mit.edu> <6457A671-BF86-42F9-8605-C08D2DBF1EB6@spe.com> <250994741-1214564971-cardhu_decombobulator_blackberry.rim.net-1469284678-@bxe123.bisx.prod.on.blackberry> <8724B86A-3DA2-41FE-8839-C3E29A720E4D@spe.com> <50e8e4f60806270720m33adf3c0ra70e1bed2f3ec7b5@mail.gmail.com> <153DC919-DE51-4006-BFCE-3767753F5FD7@spe.com> <6FD92050-7E07-4958-A07C-982816BEFDAD@spe.com> <2DEE8D5B-0287-4DA1-A1A4-EBCED62AB9E8@media.mit.edu> <076967FC-E8CD-4DD0-AE18-F52644093A26@spe.com> <381DCBD3-9DF9-4899-AE1D-1F8874787AD7@spe.com> <9DF2A294-5F91-4700-8F58-EF449F2A8926@media.mit.edu> Message-ID: <8C2032A7-64B8-4165-B8AD-1FCB266852D5@spe.com> On 29 Jun 2008, at 20:56, Ian Eslick wrote: > I'll talk to the Clozure developers when I get a chance; it's > possible one of them will have an easier time figuring out what's > causing this problem. > > Cheers, > Ian Ian, Thanks. Let me know if you'd like me to run any other tests. Regards, Patrick ---- pjm at spe.com S P Engineering, Inc. Large scale, mission-critical, distributed OO systems design and implementation. (C++, Java, Common Lisp, Jini, middleware, SOA)