From killerstorm at newmail.ru Thu Feb 4 11:53:46 2010 From: killerstorm at newmail.ru (Alex Mizrahi) Date: Thu, 4 Feb 2010 13:53:46 +0200 Subject: [elephant-devel] gp-export strikes back Message-ID: hi Previous discussion of gp-export did not cover its design in details. I think if we're going to bundle gp-export with elephant, it is better to dicuss its features and shortcomings, so we can either try to fix them or document them. Basic idea how it works -- it goes through objects in database feeding them to serializer one by one. Serializer writes objects to the stream. Serializer here is a somewhat modified version of s-serialization from cl-prevalence -- it was made more flexible, allowing changing how objects are serialized via hooks. Deserialization just works in reverse -- reads forms from file and creates structures/instantiates objects. Problems with this approach: 1) To deal with circular references or just objects being referenced from multiple places, it keeps track of objects it already visited, and in case it is encountered again, it writes object reference instead. That is, there is a hash-table which references all objects and structures you're exporting. This might be a bad idea if database is large and does not fit into memory. Particularly, it needs to track references to all objects, structures, vectors and conses. It does not need to track object slots and string, though. So, if database is large because of large pieces of text, it is not a problem. But if database is large because there are lots of objects, it is a problem. 2) Import works by reading objects one by one via CL:READ and then going through s-expressions instantiating stuff. So, obviously, each individual object with everything it references should fit in memory in its s-expression form. It might be a problem if you have some huuge btree. Particularly, root is (going to be) exported as a single object, so all data stored in root must fit in memory. 3) Serialization has its limitations. That is, if you're using some clever objects, it might not work. Basically, it is about as good as cl-prevalence, plus it should be able to handle elephant objects without a problem. These are quite fundamental limitations of this approach. I don't think we are going to deal with them in this release, in some future version -- maybe. However, there might be some workarounds for the issue number 1: a) there could be an option to disable reference tracking altogether b) another option is to allow feeding serializer manually. If you know you have a large database, you can feed serializer with a small batches, resetting its state between them, so object references do not accumulate. But then you're responsible for data integrity -- if something is exported more than once, it is your own problem. Also, doing it manually, you might forget to export something. I'm planning to include only option b) just to increase flexibility. So it you think you need option a) badly, drop me a note. Current version has even more problems (and I'm going to fix some of them): I) It does rather weird thing -- first writes data to a string, then reads this string into s-expressions, and then writes them into a file. It's because initial design did customizations on s-expression level. I've identified this as not flexible enough (and rather cumbersome too) and added hooks to serializer. But there is still a hook which allows modifications on s-expression level. I'm going to remove it before release, so it will write directly to a file. II) Import and export were very dependent on elephant backend, to the point you need to write a piece of code for each backend pair. Now I'm using different approach -- all recognized elephant objects (descendants of persistent-collection, basically) are serialized in a special way, using a general elephant API rather than backend-specific stuff. Later you can import it to a database of any type, as importer will use only general elephant API rather than backend-specific one. III) Approach described above has a consequence -- if you have some clever object which is of class persistent-collection but doesn't work like standard persistent collections, probably it won't work unless you explicitly add support for it. IV) Transient slots are exported. I think they should not be and I'm going to fix this. V) Instances are created with make-instance. This works fine for simple objects, but some clever objects might suffer. We've already implemented this stuff in elephant, I hope I can make it working with same semantics as it has in elephant. VI) This is not really a problem, but a design decision -- objects of type btree-index won't be exported but instead would be recreated from indexed-btree objects. VII) Internal structure is rather cumbersome because of the layered approach -- serialization part works mostly independently from the rest, with only a few hooks in parts where I needed those hooks. I think if it was designed as a whole it could be more flexible and elegant, but who knows... I'm going to keep it as it is for a current release. If we're going to deal with memory usage problems in future, it might make sense to redesign architecture... But I'm not going to look that far. And one more thing, Henrik says it is a good idea to rename gp-export to something else. I dunno, gp-export is not that bad, as for me. Maybe it is hard to say what it does from the name, but at least this name is recognizable. Henrik's ideas from README.md: ---- gp-export, lob-dump clob-dump # lob-dump Name? gp-export, lob-dump clob-dump lob-dump is lisp objects dump, a way to export lisp objects to a file and restore. ---- I don't like any of these particularly, but if we're going to make more accurate name, my suggestion is "clod-exim". It is supposed to mean "Commom Lisp object database export and import". It is important to mention both export and import, as some people might think it does only export. (Dictionary says that "clod" is "a big clumsy often slow-witted person", this kind of reflects issues I've mentioned above :) From henrik at evahjelte.com Thu Feb 4 15:59:19 2010 From: henrik at evahjelte.com (Henrik Hjelte) Date: Thu, 4 Feb 2010 16:59:19 +0100 Subject: [elephant-devel] gp-export strikes back In-Reply-To: References: Message-ID: <50e8e4f61002040759yd02088g798f5dadb58f39ca@mail.gmail.com> On Thu, Feb 4, 2010 at 12:53 PM, Alex Mizrahi wrote: > ?hi > Problems with this approach: > ?1) To deal with circular references or just objects being referenced from > multiple places, it keeps track of objects it already visited, and in case > it is encountered again, it writes object reference instead. That is, there > is a hash-table which references all objects and structures you're > exporting. This might be a bad idea if database is large and does not fit > into memory. > > Particularly, it needs to track references to all objects, structures, > vectors and conses. It does not need to track object slots and string, > though. So, if database is large because of large pieces of text, it is not > a problem. But if database is large because there are lots of objects, it is > a problem. I have an idea: we could have a second elephant database used only for reference tracking. It does not have to have the same backend, bdb will probably be the best choice at all time. This should be easy to implement and avoid the problem completely? Make we can make its use an option, after all if a hashtable works for you there should be no need to configure a "backup-helper-db". > I don't like any of these particularly, but if we're going to make more > accurate name, > my suggestion is "clod-exim". It is supposed to mean "Commom Lisp object > database export and import". > It is important to mention both export and import, as some people might > think it does only export. > (Dictionary says that "clod" is "a big clumsy often slow-witted person", > this kind of reflects issues I've mentioned above :) This is a perfect name, the dictionary meaning also makes me think of the original author. /Henrik From eslick at media.mit.edu Thu Feb 4 16:59:42 2010 From: eslick at media.mit.edu (Ian Eslick) Date: Thu, 4 Feb 2010 08:59:42 -0800 Subject: [elephant-devel] gp-export strikes back In-Reply-To: <50e8e4f61002040759yd02088g798f5dadb58f39ca@mail.gmail.com> References: <50e8e4f61002040759yd02088g798f5dadb58f39ca@mail.gmail.com> Message-ID: <530678BB-65B7-4768-8BD4-6EA4456A0FBA@media.mit.edu> > I have an idea: we could have a second elephant database used only for > reference tracking. It does not have to have the same backend, > bdb will probably be the best choice at all time. This should be easy > to implement and avoid the problem completely? > Make we can make its use an option, after all if a hashtable works for > you there should be no need to configure a "backup-helper-db". > Migration already supports the 'DB as object pointer' strategy for very large migrations for the same reason. I think it's an easy and totally reasonable approach. From killerstorm at newmail.ru Fri Feb 5 11:48:13 2010 From: killerstorm at newmail.ru (Alex Mizrahi) Date: Fri, 5 Feb 2010 13:48:13 +0200 Subject: [elephant-devel] gp-export strikes back References: <50e8e4f61002040759yd02088g798f5dadb58f39ca@mail.gmail.com> Message-ID: HH> I have an idea: we could have a second elephant database used only for HH> reference tracking. It does not have to have the same backend, HH> bdb will probably be the best choice at all time. This should be easy HH> to implement and avoid the problem completely? There is a catch -- s-serialization uses reference tracking both for conses/structures/arrays and for objects. But database will only work for persistent objects -- their identity is preserved because they have unique oids. So to do this, we need to separate persistent object references tracking from the rest of reference tracking. Reference tracking for non-persistent objects will have to use different semantics -- instead of tracking them globally tracking should be done individually for each piece of information, like each slot or btree entry. Then it will follow Elephant's serialization semantics. It is possible to implement this, and, perhaps, it is the only way how it can work, but I can't say it is particularly easy to implement. I think it is better to focus on getting it to work correctly in this release. It is pretty complex as it is now, and if some additional facilities are added to support large databases, reliability might suffer. So I'm asking here -- are there Elephant users who absolutely need this feature? RAM have become really cheap in the last years, for example, it is hard to find laptop with less than 2 GB of RAM. And gigabyte is quite a lot of data. So I think a problem with databases-not-fitting-in-RAM is much less relevant than it was, say, 10 years ago. HH> Make we can make its use an option, after all if a hashtable works for HH> you there should be no need to configure a "backup-helper-db". Another option would be to use the very same store you're backing up -- then it needs no configuration at all. I don't know, however, if database will tolerate creating a huge btree/table without commiting a transaction. From lukas.giessmann at hotmail.de Sun Feb 7 11:30:08 2010 From: lukas.giessmann at hotmail.de (=?iso-8859-1?Q?Lukas_Gie=DFmann?=) Date: Sun, 7 Feb 2010 12:30:08 +0100 Subject: [elephant-devel] sb-mop:finalize-inheritance Message-ID: Hello, I am using elephant with sbcl. I found a strange behavior in a more or less complex scenario but I am not sure if it is a bug or a fault caused by myself? So I am posting here in hope that someone has a similar experience: After starting our system via (asdf:operate 'asdf:load-op ...) and creating some objects of the defined classes I closed the sbcl interpreter/slime. When I restarted the system and tried to read some data I got the following error: SB-MOP:CLASS-SLOTS called on #, which is not yet finalized. [Condition of type SB-INT:SIMPLE-REFERENCE-ERROR] After this message I called the function (sb-mop:finalize-inheritance (find-class 'd:ItemIdentifierC)) with the effect that it was possible to read the data (an object of the type 'd:ItemIdentifierC). The actual error is caused in src/elephant/metaclasse.lisp by the function find-slot-def-by-name. When I called the function (sb-mop:class-finalized-p (find-class 'd:ItemIdentifierC)) after loading our system and before creating any data - in this case objects of the type 'd:ItemIdentifierC - the result was always nil. When I created an object of this type the result was t. Is it necessary to call sb-mop:finalize-inheritance explecitely? Maybe the class-hierarchy can help a little bit: (elephant:defpclass TopicMapConstructC () ((versions :associate (VersionInfoC versioned-construct) :accessor versions :initarg :versions))) (elephant:defpclass PointerC (TopicMapConstructC) ((uri :accessor uri :initarg :uri :type string :initform (error "The uri must be set for a pointer") :index t) (identified-construct :accessor identified-construct :initarg :identified-construct :associate ReifiableConstructC))) (elephant:defpclass IdentifierC (PointerC) ()) (elephant:defpclass ItemIdentifierC (IdentifierC) () (:index t)) Best regards Lukas -------------- next part -------------- An HTML attachment was scrubbed... URL: From killerstorm at newmail.ru Sun Feb 7 20:22:37 2010 From: killerstorm at newmail.ru (Alex Mizrahi) Date: Sun, 7 Feb 2010 22:22:37 +0200 Subject: [elephant-devel] sb-mop:finalize-inheritance References: Message-ID: LG> Is it necessary to call sb-mop:finalize-inheritance explecitely? Elephant should call this function itself before trying to get class-slots. I guess it calls it too late or too early... LG> Maybe the class-hierarchy can help a little bit: Do you load your source files in this order? I'm not sure it would work correctly if you define PointerC before defining TopicMapConstructC. From lukas.giessmann at hotmail.de Sun Feb 7 21:14:59 2010 From: lukas.giessmann at hotmail.de (=?iso-8859-1?Q?Lukas_Gie=DFmann?=) Date: Sun, 7 Feb 2010 22:14:59 +0100 Subject: [elephant-devel] sb-mop:finalize-inheritance In-Reply-To: References: Message-ID: Hi, > LG> Is it necessary to call sb-mop:finalize-inheritance explecitely? > > Elephant should call this function itself before trying to get > class-slots. I guess it calls it too late or too early... > > LG> Maybe the class-hierarchy can help a little bit: > > Do you load your source files in this order? There is one file which includes the entire data model. And the definitions are ordered as mentioned before. > I'm not sure it would work correctly if you define PointerC before > defining TopicMapConstructC. A first update based on your suggestion works correctly ( - but at the moment I am not sure if the entire data model does). Could you just explain your change in one or two sentences? Thanks for your fast answer. Best regards Lukas From eslick at media.mit.edu Mon Feb 8 21:08:16 2010 From: eslick at media.mit.edu (Ian Eslick) Date: Mon, 8 Feb 2010 13:08:16 -0800 Subject: [elephant-devel] sb-mop:finalize-inheritance In-Reply-To: References: Message-ID: The Elephant MOP overloads class objects to store a variety of data. The MOP only guarantees to call finalize-inheritance at the latest when an instance is created, so if you call get-instances-by-class, the Elephant MOP has to make sure to call finalize-inheritance. Sounds like we need to do the same thing during persistent class initialization or change the way in which the Elephant MOP creates new classes (so finalization isn't needed until the first instance creation time or other operation over the classes). Ian On Feb 7, 2010, at 1:14 PM, Lukas Gie?mann wrote: > Hi, > >> LG> Is it necessary to call sb-mop:finalize-inheritance explecitely? >> >> Elephant should call this function itself before trying to get >> class-slots. I guess it calls it too late or too early... >> >> LG> Maybe the class-hierarchy can help a little bit: >> >> Do you load your source files in this order? > > There is one file which includes the entire data model. And the definitions > are ordered as mentioned before. > >> I'm not sure it would work correctly if you define PointerC before >> defining TopicMapConstructC. > > A first update based on your suggestion works correctly ( - but at the > moment I am not sure if the entire data model does). > Could you just explain your change in one or two sentences? > > Thanks for your fast answer. > > > Best regards > > Lukas > > > _______________________________________________ > elephant-devel site list > elephant-devel at common-lisp.net > http://common-lisp.net/mailman/listinfo/elephant-devel From lukas.giessmann at hotmail.de Mon Feb 8 21:15:06 2010 From: lukas.giessmann at hotmail.de (=?iso-8859-1?Q?Lukas_Gie=DFmann?=) Date: Mon, 8 Feb 2010 22:15:06 +0100 Subject: [elephant-devel] sb-mop:finalize-inheritance In-Reply-To: References: Message-ID: Hi, thank you, Ian and Alex, for your answers. Now, I changed the entire data model as mentioned - and it works :-) Best Regards Lukas > The Elephant MOP overloads class objects to store a variety of data. The > MOP only guarantees to call finalize-inheritance at the latest when an > instance is created, so if you call get-instances-by-class, the Elephant > MOP has to make sure to call finalize-inheritance. > > Sounds like we need to do the same thing during persistent class > initialization or change the way in which the Elephant MOP creates new > classes (so finalization isn't needed until the first instance creation > time or other operation over the classes). > > Ian > > > On Feb 7, 2010, at 1:14 PM, Lukas Gie?mann wrote: > >> Hi, >> >>> LG> Is it necessary to call sb-mop:finalize-inheritance explecitely? >>> >>> Elephant should call this function itself before trying to get >>> class-slots. I guess it calls it too late or too early... >>> >>> LG> Maybe the class-hierarchy can help a little bit: >>> >>> Do you load your source files in this order? >> >> There is one file which includes the entire data model. And the >> definitions >> are ordered as mentioned before. >> >>> I'm not sure it would work correctly if you define PointerC before >>> defining TopicMapConstructC. >> >> A first update based on your suggestion works correctly ( - but at the >> moment I am not sure if the entire data model does). >> Could you just explain your change in one or two sentences? >> >> Thanks for your fast answer. >> >> >> 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 thomas.karolski at googlemail.com Wed Feb 10 23:45:36 2010 From: thomas.karolski at googlemail.com (Thomas Karolski) Date: Thu, 11 Feb 2010 00:45:36 +0100 Subject: [elephant-devel] Elephant Test Suite Failed Message-ID: <2757b8a11002101545m5732a7d3l1f206762394897e4@mail.gmail.com> Anyone knows what went wrong here? ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ELE-TESTS> (progn (loop for p in '(:elephant :ele-bdb :elephant-tests) do (asdf:oos 'asdf:load-op p)) (in-package :elephant-tests) (setq elephant-tests::*default-spec* elephant-tests::*testbdb-spec*) (do-backend-tests)) Attempting to load libmemutil.so... Loaded /home/thomas/sources/clbuild/source/elephant/src/memutil/libmemutil.so Attempting to load libmemutil.so... Loaded /home/thomas/sources/clbuild/source/elephant/src/memutil/libmemutil.so Loading /usr/local/BerkeleyDB.4.7/lib/libdb-4.7.so Attempting to load libberkeley-db.so... Loaded /home/thomas/sources/clbuild/source/elephant/src/db-bdb/libberkeley-db.so Attempting to load libmemutil.so... Loaded /home/thomas/sources/clbuild/source/elephant/src/memutil/libmemutil.so Attempting to load libmemutil.so... Loaded /home/thomas/sources/clbuild/source/elephant/src/memutil/libmemutil.so .............................................................................................................................; in: LAMBDA NIL ; (LET* ((ELEPHANT-TESTS::HT ; (MAKE-HASH-TABLE :TEST 'EQUALP :SIZE 333 :REHASH-SIZE 1.2 ; :REHASH-THRESHOLD 0.8)) ; (ELEPHANT-TESTS::REHASH-SIZE ; (HASH-TABLE-REHASH-SIZE ELEPHANT-TESTS::HT)) ; (ELEPHANT-TESTS::REHASH-THRESHOLD ; (HASH-TABLE-REHASH-THRESHOLD ELEPHANT-TESTS::HT)) ; (ELEPHANT-TESTS::OUT ; (ELEPHANT-TESTS::IN-OUT-VALUE ELEPHANT-TESTS::HT))) ; (ELEPHANT-TESTS::ARE-NOT-NULL ; (EQ (HASH-TABLE-TEST ELEPHANT-TESTS::OUT) 'EQUALP) ; (EQ (HASH-TABLE-TEST (ELEPHANT-TESTS::IN-OUT-VALUE #)) 'EQ) ; (EQ (HASH-TABLE-TEST (ELEPHANT-TESTS::IN-OUT-VALUE #)) 'EQL) ; (EQ (HASH-TABLE-TEST (ELEPHANT-TESTS::IN-OUT-VALUE #)) 'EQUAL) ; (EQ (HASH-TABLE-TEST (ELEPHANT-TESTS::IN-OUT-VALUE #)) 'EQUALP))) ; ; caught STYLE-WARNING: ; The variable REHASH-SIZE is defined but never used. ; ; caught STYLE-WARNING: ; The variable REHASH-THRESHOLD is defined but never used. ; ; compilation unit finished ; caught 2 STYLE-WARNING conditions ....................................; in: LAMBDA NIL ; (LET ((#:RESULT541 ; (MULTIPLE-VALUE-LIST ; (LET # ; #)))) ; ) ; ; caught STYLE-WARNING: ; The variable #:RESULT541 is defined but never used. ; ; compilation unit finished ; caught 1 STYLE-WARNING condition ........ Second store spec missing: ignoring....; in: LAMBDA NIL ; (ERROR) ; ; caught STYLE-WARNING: ; The function was called with zero arguments, but wants at least one. ; ; compilation unit finished ; caught 1 STYLE-WARNING condition ................................... Synchronizing PINEAPPLE in (BDB /home/thomas/sources/clbuild/source/elephant/tests/testdb/) Synchronizing PINEAPPLE in (BDB /home/thomas/sources/clbuild/source/elephant/tests/testdb/) ...... STYLE-WARNING: redefining SLOT-UNBOUND (# # #) in DEFMETHOD ... Synchronizing UPDATE-CLASS in (BDB /home/thomas/sources/clbuild/source/elephant/tests/testdb/) .. Synchronizing CLASS-ONE in (BDB /home/thomas/sources/clbuild/source/elephant/tests/testdb/) ....persistent -> indexed Synchronizing UISUV in (BDB /home/thomas/sources/clbuild/source/elephant/tests/testdb/) indexed -> persistent Synchronizing UISUV in (BDB /home/thomas/sources/clbuild/source/elephant/tests/testdb/) .persistent -> indexed indexed -> indexed indexed -> persistent ................................................................................................................................................................ ; (SETQ ELEPHANT-TESTS::RV ; (EQUAL (FORMAT NIL "~A" ELEPHANT-TESTS::KEY) ; (FORMAT NIL "~A" ; (ELEPHANT:GET-FROM-ROOT ELEPHANT-TESTS::KEY)))) ; ; caught WARNING: ; undefined variable: RV ; ; compilation unit finished ; Undefined variable: ; RV ; caught 1 WARNING condition Testing length = 163840 ....................................; in: LAMBDA NIL ; (MULTIPLE-VALUE-BIND ; (ELEPHANT-TESTS::HAS ELEPHANT-TESTS::K ELEPHANT-TESTS::V) ; (ELEPHANT:CURSOR-FIRST ELEPHANT-TESTS::CUR) ; (WHEN ELEPHANT-TESTS::HAS (PUSH ELEPHANT-TESTS::V ELEPHANT-TESTS::RESULTS))) ; --> MULTIPLE-VALUE-CALL ; ==> ; #'(LAMBDA ; (&OPTIONAL (ELEPHANT-TESTS::HAS) (ELEPHANT-TESTS::K) ; (ELEPHANT-TESTS::V) ; &REST #:G51) ; (DECLARE (IGNORE #:G51)) ; (WHEN ELEPHANT-TESTS::HAS ; (PUSH ELEPHANT-TESTS::V ELEPHANT-TESTS::RESULTS))) ; ; caught STYLE-WARNING: ; The variable K is defined but never used. ; (MULTIPLE-VALUE-BIND ; (ELEPHANT-TESTS::HAS ELEPHANT-TESTS::K ELEPHANT-TESTS::V) ; (ELEPHANT:CURSOR-NEXT ELEPHANT-TESTS::CUR) ; (WHEN ELEPHANT-TESTS::HAS (PUSH ELEPHANT-TESTS::V ELEPHANT-TESTS::RESULTS))) ; --> MULTIPLE-VALUE-CALL ; ==> ; #'(LAMBDA ; (&OPTIONAL (ELEPHANT-TESTS::HAS) (ELEPHANT-TESTS::K) ; (ELEPHANT-TESTS::V) ; &REST #:G56) ; (DECLARE (IGNORE #:G56)) ; (WHEN ELEPHANT-TESTS::HAS ; (PUSH ELEPHANT-TESTS::V ELEPHANT-TESTS::RESULTS))) ; ; caught STYLE-WARNING: ; The variable K is defined but never used. ; ==> ; #'(LAMBDA ; (&OPTIONAL (ELEPHANT-TESTS::HAS) (ELEPHANT-TESTS::K) ; (ELEPHANT-TESTS::V) ; &REST #:G61) ; (DECLARE (IGNORE #:G61)) ; (WHEN ELEPHANT-TESTS::HAS ; (PUSH ELEPHANT-TESTS::V ELEPHANT-TESTS::RESULTS))) ; ; caught STYLE-WARNING: ; The variable K is defined but never used. ; ==> ; #'(LAMBDA ; (&OPTIONAL (ELEPHANT-TESTS::HAS) (ELEPHANT-TESTS::K) ; (ELEPHANT-TESTS::V) ; &REST #:G66) ; (DECLARE (IGNORE #:G66)) ; (WHEN ELEPHANT-TESTS::HAS ; (PUSH ELEPHANT-TESTS::V ELEPHANT-TESTS::RESULTS))) ; ; caught STYLE-WARNING: ; The variable K is defined but never used. ; ; note: cannot stack allocate value cell for CUR ; ; compilation unit finished ; caught 4 STYLE-WARNING conditions ; printed 1 note ....; in: LAMBDA NIL ; (MULTIPLE-VALUE-BIND ; (ELEPHANT-TESTS::HAS ELEPHANT-TESTS::K ELEPHANT-TESTS::V) ; (ELEPHANT:CURSOR-CURRENT ELEPHANT-TESTS::CUR) ; (IT.BESE.FIVEAM:IS-TRUE ; (AND ELEPHANT-TESTS::HAS ; (= (ELEPHANT-TESTS::SLOT1 ELEPHANT-TESTS::V) 100)))) ; --> MULTIPLE-VALUE-CALL ; ==> ; #'(LAMBDA ; (&OPTIONAL (ELEPHANT-TESTS::HAS) (ELEPHANT-TESTS::K) ; (ELEPHANT-TESTS::V) ; &REST #:G45) ; (DECLARE (IGNORE #:G45)) ; (IT.BESE.FIVEAM:IS-TRUE ; (AND ELEPHANT-TESTS::HAS ; (= (ELEPHANT-TESTS::SLOT1 ELEPHANT-TESTS::V) 100)))) ; ; caught STYLE-WARNING: ; The variable K is defined but never used. ; (MULTIPLE-VALUE-BIND ; (ELEPHANT-TESTS::HAS ELEPHANT-TESTS::K ELEPHANT-TESTS::V) ; (ELEPHANT:CURSOR-PREV ELEPHANT-TESTS::CUR) ; (IT.BESE.FIVEAM:IS-TRUE ; (AND ELEPHANT-TESTS::HAS ; (= (ELEPHANT-TESTS::SLOT1 ELEPHANT-TESTS::V) 100)))) ; --> MULTIPLE-VALUE-CALL ; ==> ; #'(LAMBDA ; (&OPTIONAL (ELEPHANT-TESTS::HAS) (ELEPHANT-TESTS::K) ; (ELEPHANT-TESTS::V) ; &REST #:G65) ; (DECLARE (IGNORE #:G65)) ; (IT.BESE.FIVEAM:IS-TRUE ; (AND ELEPHANT-TESTS::HAS ; (= (ELEPHANT-TESTS::SLOT1 ELEPHANT-TESTS::V) 100)))) ; ; caught STYLE-WARNING: ; The variable K is defined but never used. ; ; note: cannot stack allocate value cell for CUR ; ; compilation unit finished ; caught 2 STYLE-WARNING conditions ; printed 1 note ..........; in: LAMBDA NIL ; (LET ((#:RESULT189 ; (MULTIPLE-VALUE-LIST ; (IT.BESE.FIVEAM:FINISHES ; #)))) ; ) ; ; caught STYLE-WARNING: ; The variable #:RESULT189 is defined but never used. ; ; compilation unit finished ; caught 1 STYLE-WARNING condition .................. ; ; note: cannot stack allocate value cell for C ; ; compilation unit finished ; printed 1 note . ; ; note: cannot stack allocate value cell for C ; ; compilation unit finished ; printed 1 note . ; ; note: cannot stack allocate value cell for C ; ; compilation unit finished ; printed 1 note . ; ; note: cannot stack allocate value cell for C ; ; compilation unit finished ; printed 1 note . ; ; note: cannot stack allocate value cell for C ; ; compilation unit finished ; printed 1 note . ; ; note: cannot stack allocate value cell for C ; ; compilation unit finished ; printed 1 note . ; ; note: cannot stack allocate value cell for C ; ; compilation unit finished ; printed 1 note . ; ; note: cannot stack allocate value cell for C ; ; compilation unit finished ; printed 1 note ....; in: LAMBDA NIL ; (FLET ((ELEPHANT-TESTS::RETURNER ; (ELEPHANT-TESTS::KEY ELEPHANT-TESTS::VALUE ELEPHANT-TESTS::PKEY) ; (ELEPHANT-TESTS::SLOT1 ELEPHANT-TESTS::VALUE))) ; (IT.BESE.FIVEAM:IS ; (EQUAL ; (ELEPHANT:MAP-INDEX #'ELEPHANT-TESTS::RETURNER ELEPHANT-TESTS::INDEX1 ; :VALUE 990 :COLLECT T) ; (LIST 990)))) ; ; caught STYLE-WARNING: ; The variable KEY is defined but never used. ; ; caught STYLE-WARNING: ; The variable PKEY is defined but never used. ; ; compilation unit finished ; caught 2 STYLE-WARNING conditions ...............; in: LAMBDA NIL ; (MULTIPLE-VALUE-BIND ; (ELEPHANT-TESTS::HAS ELEPHANT-TESTS::KEY ELEPHANT-TESTS::VALUE) ; (ELEPHANT:CURSOR-NEXT ELEPHANT-TESTS::C) ; ELEPHANT-TESTS::VALUE) ; --> MULTIPLE-VALUE-CALL ; ==> ; #'(LAMBDA ; (&OPTIONAL (ELEPHANT-TESTS::HAS) (ELEPHANT-TESTS::KEY) ; (ELEPHANT-TESTS::VALUE) ; &REST #:G115) ; (DECLARE (IGNORE #:G115)) ; ELEPHANT-TESTS::VALUE) ; ; caught STYLE-WARNING: ; The variable HAS is defined but never used. ; ; caught STYLE-WARNING: ; The variable KEY is defined but never used. ; ==> ; #'(LAMBDA ; (&OPTIONAL (ELEPHANT-TESTS::HAS) (ELEPHANT-TESTS::KEY) ; (ELEPHANT-TESTS::VALUE) ; &REST #:G111) ; (DECLARE (IGNORE #:G111)) ; ELEPHANT-TESTS::VALUE) ; ; caught STYLE-WARNING: ; The variable HAS is defined but never used. ; ; caught STYLE-WARNING: ; The variable KEY is defined but never used. ; (MULTIPLE-VALUE-BIND ; (ELEPHANT-TESTS::HAS ELEPHANT-TESTS::KEY ELEPHANT-TESTS::VALUE) ; (ELEPHANT:CURSOR-NEXT ELEPHANT-TESTS::C)) ; --> MULTIPLE-VALUE-CALL ; ==> ; #'(LAMBDA ; (&OPTIONAL (ELEPHANT-TESTS::HAS) (ELEPHANT-TESTS::KEY) ; (ELEPHANT-TESTS::VALUE) ; &REST #:G62) ; (DECLARE (IGNORE #:G62))) ; ; caught STYLE-WARNING: ; The variable HAS is defined but never used. ; ; caught STYLE-WARNING: ; The variable KEY is defined but never used. ; ; caught STYLE-WARNING: ; The variable VALUE is defined but never used. ; ; note: cannot stack allocate value cell for C ; ; note: cannot stack allocate value cell for C ; ; compilation unit finished ; caught 7 STYLE-WARNING conditions ; printed 2 notes ......; in: LAMBDA NIL ; (MULTIPLE-VALUE-BIND (ELEPHANT-TESTS::BOOL ELEPHANT-TESTS::RES) ; (ELEPHANT-TESTS::CRUNCH NIL NIL ; (ELEPHANT:GET-VALUE ELEPHANT-TESTS::I ; ELEPHANT-TESTS::INDEX3)) ; (= ELEPHANT-TESTS::RES ELEPHANT-TESTS::I)) ; --> MULTIPLE-VALUE-CALL ; ==> ; #'(LAMBDA ; (&OPTIONAL (ELEPHANT-TESTS::BOOL) (ELEPHANT-TESTS::RES) &REST #:G21) ; (DECLARE (IGNORE #:G21)) ; (= ELEPHANT-TESTS::RES ELEPHANT-TESTS::I)) ; ; caught STYLE-WARNING: ; The variable BOOL is defined but never used. ; ; compilation unit finished ; caught 1 STYLE-WARNING condition . ; ; note: cannot stack allocate value cell for CURS ; ; compilation unit finished ; printed 1 note . ; ; note: cannot stack allocate value cell for CURS ; ; compilation unit finished ; printed 1 note . ; ; note: cannot stack allocate value cell for CURS ; ; compilation unit finished ; printed 1 note . ; ; note: cannot stack allocate value cell for CURS ; ; compilation unit finished ; printed 1 note . ; ; note: cannot stack allocate value cell for CURS ; ; compilation unit finished ; printed 1 note . ; ; note: cannot stack allocate value cell for C ; ; compilation unit finished ; printed 1 note . ; ; note: cannot stack allocate value cell for CURS ; ; compilation unit finished ; printed 1 note ... ; ; note: cannot stack allocate value cell for CURS ; ; compilation unit finished ; printed 1 note .; in: LAMBDA NIL ; (MULTIPLE-VALUE-BIND (ELEPHANT-TESTS::M ELEPHANT-TESTS::K ELEPHANT-TESTS::V) ; (ELEPHANT:CURSOR-NEXT ELEPHANT-TESTS::C) ; ELEPHANT-TESTS::V) ; --> MULTIPLE-VALUE-CALL ; ==> ; #'(LAMBDA ; (&OPTIONAL (ELEPHANT-TESTS::M) (ELEPHANT-TESTS::K) (ELEPHANT-TESTS::V) ; &REST #:G91) ; (DECLARE (IGNORE #:G91)) ; ELEPHANT-TESTS::V) ; ; caught STYLE-WARNING: ; The variable M is defined but never used. ; ; caught STYLE-WARNING: ; The variable K is defined but never used. ; ; note: cannot stack allocate value cell for C ; ; compilation unit finished ; caught 2 STYLE-WARNING conditions ; printed 1 note .... ; ; note: cannot stack allocate value cell for C ; ; compilation unit finished ; printed 1 note . ; ; note: cannot stack allocate value cell for C ; ; compilation unit finished ; printed 1 note ...; in: LAMBDA NIL ; (MULTIPLE-VALUE-BIND ; (ELEPHANT-TESTS::M ELEPHANT-TESTS::K ELEPHANT-TESTS::V ELEPHANT-TESTS::P) ; (ELEPHANT:CURSOR-PGET-BOTH ELEPHANT-TESTS::C 10 107) ; (VALUES ELEPHANT-TESTS::K ELEPHANT-TESTS::V ELEPHANT-TESTS::P)) ; --> MULTIPLE-VALUE-CALL ; ==> ; #'(LAMBDA ; (&OPTIONAL (ELEPHANT-TESTS::M) (ELEPHANT-TESTS::K) (ELEPHANT-TESTS::V) ; (ELEPHANT-TESTS::P) ; &REST #:G79) ; (DECLARE (IGNORE #:G79)) ; (VALUES ELEPHANT-TESTS::K ELEPHANT-TESTS::V ELEPHANT-TESTS::P)) ; ; caught STYLE-WARNING: ; The variable M is defined but never used. ; ; note: cannot stack allocate value cell for C ; ; compilation unit finished ; caught 1 STYLE-WARNING condition ; printed 1 note ...; in: LAMBDA NIL ; (MULTIPLE-VALUE-BIND ; (ELEPHANT-TESTS::M ELEPHANT-TESTS::K ELEPHANT-TESTS::V ELEPHANT-TESTS::P) ; (ELEPHANT:CURSOR-PGET-BOTH-RANGE ELEPHANT-TESTS::C 10 106.5) ; (VALUES ELEPHANT-TESTS::K ELEPHANT-TESTS::V ELEPHANT-TESTS::P)) ; --> MULTIPLE-VALUE-CALL ; ==> ; #'(LAMBDA ; (&OPTIONAL (ELEPHANT-TESTS::M) (ELEPHANT-TESTS::K) (ELEPHANT-TESTS::V) ; (ELEPHANT-TESTS::P) ; &REST #:G79) ; (DECLARE (IGNORE #:G79)) ; (VALUES ELEPHANT-TESTS::K ELEPHANT-TESTS::V ELEPHANT-TESTS::P)) ; ; caught STYLE-WARNING: ; The variable M is defined but never used. ; ; note: cannot stack allocate value cell for C ; ; compilation unit finished ; caught 1 STYLE-WARNING condition ; printed 1 note ... ; ; note: cannot stack allocate value cell for C ; ; compilation unit finished ; printed 1 note ............ ; ; note: cannot stack allocate value cell for C ; ; compilation unit finished ; printed 1 note .............; in: LAMBDA NIL ; (LAMBDA (ELEPHANT-TESTS::K ELEPHANT-TESTS::V ELEPHANT-TESTS::PK) ; (UNLESS (ZEROP (MOD ELEPHANT-TESTS::K 33)) (RETURN NIL))) ; ==> ; #'(LAMBDA (ELEPHANT-TESTS::K ELEPHANT-TESTS::V ELEPHANT-TESTS::PK) ; (UNLESS (ZEROP (MOD ELEPHANT-TESTS::K 33)) (RETURN NIL))) ; ; caught STYLE-WARNING: ; The variable V is defined but never used. ; ; caught STYLE-WARNING: ; The variable PK is defined but never used. ; ; compilation unit finished ; caught 2 STYLE-WARNING conditions . ; ; note: cannot stack allocate value cell for C ; ; compilation unit finished ; printed 1 note ...............; in: LAMBDA NIL ; (LET ((LIST (ELEPHANT:PSET-LIST ELEPHANT-TESTS::PSET1))) ; (VALUES (= (LENGTH (ELEPHANT:PSET-LIST ELEPHANT-TESTS::PSET1)) 5) ; (NOT ; (ELEPHANT:FIND-ITEM 'ELEPHANT-TESTS::TEST2 ELEPHANT-TESTS::PSET1)) ; (ELEPHANT-TESTS::IS-NOT-NULL ; (ELEPHANT:FIND-ITEM 'ELEPHANT-TESTS::TEST1 ; ELEPHANT-TESTS::PSET1)) ; (ELEPHANT-TESTS::IS-NOT-NULL ; (ELEPHANT:FIND-ITEM 1 ELEPHANT-TESTS::PSET1 :KEY (LAMBDA # #) ; :TEST #'EQ)))) ; ; caught STYLE-WARNING: ; The variable LIST is defined but never used. ; ; compilation unit finished ; caught 1 STYLE-WARNING condition ..... Synchronizing IDX-ONE-B in (BDB /home/thomas/sources/clbuild/source/elephant/tests/testdb/) Synchronizing IDX-ONE-C in (BDB /home/thomas/sources/clbuild/source/elephant/tests/testdb/) Synchronizing IDX-ONE-D in (BDB /home/thomas/sources/clbuild/source/elephant/tests/testdb/) Synchronizing IDX-ONE-E in (BDB /home/thomas/sources/clbuild/source/elephant/tests/testdb/) Synchronizing IDX-ONE-F in (BDB /home/thomas/sources/clbuild/source/elephant/tests/testdb/) Synchronizing IDX-TWO in (BDB /home/thomas/sources/clbuild/source/elephant/tests/testdb/) Synchronizing IDX-CSLOT in (BDB /home/thomas/sources/clbuild/source/elephant/tests/testdb/) Synchronizing IDX-THREE in (BDB /home/thomas/sources/clbuild/source/elephant/tests/testdb/) Synchronizing IDX-FOUR in (BDB /home/thomas/sources/clbuild/source/elephant/tests/testdb/) Synchronizing IDX-UNBOUND-DEL in (BDB /home/thomas/sources/clbuild/source/elephant/tests/testdb/) Synchronizing IDX-FIVE-DEL in (BDB /home/thomas/sources/clbuild/source/elephant/tests/testdb/) Synchronizing IDX-SEVEN in (BDB /home/thomas/sources/clbuild/source/elephant/tests/testdb/) Synchronizing IDX-EIGHT in (BDB /home/thomas/sources/clbuild/source/elephant/tests/testdb/) ....READY FOR ACTION f..f Synchronizing IDX-ONE-F in (BDB /home/thomas/sources/clbuild/source/elephant/tests/testdb/) .READY FOR ACTION ... ; (SETQ ELEPHANT-TESTS::INST4 ; (MAKE-INSTANCE 'ELEPHANT-TESTS::IDX-ONE-B :SLOT1 "onethousand" :SC ; ELEPHANT:*STORE-CONTROLLER*)) ; ; caught WARNING: ; undefined variable: INST4 ; (SETQ ELEPHANT-TESTS::INST5 ; (MAKE-INSTANCE 'ELEPHANT-TESTS::IDX-ONE-B :SLOT1 "only" :SC ; ELEPHANT:*STORE-CONTROLLER*)) ; ; caught WARNING: ; undefined variable: INST5 ; (SETQ ELEPHANT-TESTS::INST6 ; (MAKE-INSTANCE 'ELEPHANT-TESTS::IDX-ONE-B :SLOT1 "twothousand" :SC ; ELEPHANT:*STORE-CONTROLLER*)) ; ; caught WARNING: ; undefined variable: INST6 ; ; compilation unit finished ; Undefined variables: ; INST4 INST5 INST6 ; caught 3 WARNING conditions Synchronizing IDX-ONE-B in (BDB /home/thomas/sources/clbuild/source/elephant/tests/testdb/) ... Synchronizing IDX-ONE-C in (BDB /home/thomas/sources/clbuild/source/elephant/tests/testdb/) ...... Synchronizing IDX-ONE-D in (BDB /home/thomas/sources/clbuild/source/elephant/tests/testdb/) ...... Synchronizing IDX-ONE-E in (BDB /home/thomas/sources/clbuild/source/elephant/tests/testdb/) ............... Synchronizing IDX-TWO-BASE in (BDB /home/thomas/sources/clbuild/source/elephant/tests/testdb/) Synchronizing IDX-TWO-SUB1 in (BDB /home/thomas/sources/clbuild/source/elephant/tests/testdb/) Synchronizing IDX-TWO-SUB1-1 in (BDB /home/thomas/sources/clbuild/source/elephant/tests/testdb/) Synchronizing IDX-TWO-SUB2 in (BDB /home/thomas/sources/clbuild/source/elephant/tests/testdb/) Synchronizing IDX-TWO-BASE in (BDB /home/thomas/sources/clbuild/source/elephant/tests/testdb/) Synchronizing IDX-TWO-SUB1 in (BDB /home/thomas/sources/clbuild/source/elephant/tests/testdb/) Synchronizing IDX-TWO-SUB1-1 in (BDB /home/thomas/sources/clbuild/source/elephant/tests/testdb/) Synchronizing IDX-TWO-SUB2 in (BDB /home/thomas/sources/clbuild/source/elephant/tests/testdb/) .....; in: LAMBDA NIL ; (LET ((#:RESULT154 (MULTIPLE-VALUE-LIST (PROGN # # # # #)))) ; ) ; ; caught STYLE-WARNING: ; The variable #:RESULT154 is defined but never used. ; ; compilation unit finished ; caught 1 STYLE-WARNING condition Synchronizing IDX-FOUR in (BDB /home/thomas/sources/clbuild/source/elephant/tests/testdb/) .. STYLE-WARNING: redefining MAKE-IDX-FOUR in DEFUN .................f ; (ELEPHANT-TESTS::SLOT6 ELEPHANT-TESTS::O1) ; ; caught STYLE-WARNING: ; undefined function: SLOT6 ; ; compilation unit finished ; Undefined function: ; SLOT6 ; caught 1 STYLE-WARNING condition Synchronizing IDX-EIGHT in (BDB /home/thomas/sources/clbuild/source/elephant/tests/testdb/) Synchronizing IDX-EIGHT in (BDB /home/thomas/sources/clbuild/source/elephant/tests/testdb/) indexing redef-class d ........ Ranged get of 10/700 objects = Linear: 0.24 sec Indexed: 0.0 sec ....... ; (SETF (ELEPHANT-TESTS::JOBS ELEPHANT-TESTS::P) ELEPHANT-TESTS::J) ; --> LET* MULTIPLE-VALUE-BIND LET FUNCALL ; ==> ; (SB-C::%FUNCALL #'(SETF ELEPHANT-TESTS::JOBS) #:NEW29 #:TMP30) ; ; caught STYLE-WARNING: ; undefined function: (SETF JOBS) ; ; compilation unit finished ; Undefined function: ; (SETF JOBS) ; caught 1 STYLE-WARNING condition Synchronizing PERSON in (BDB /home/thomas/sources/clbuild/source/elephant/tests/testdb/) Synchronizing JOB in (BDB /home/thomas/sources/clbuild/source/elephant/tests/testdb/) .. Synchronizing PERSON in (BDB /home/thomas/sources/clbuild/source/elephant/tests/testdb/) Synchronizing JOB in (BDB /home/thomas/sources/clbuild/source/elephant/tests/testdb/) Synchronizing PJASSOC in (BDB /home/thomas/sources/clbuild/source/elephant/tests/testdb/) .. Single store mode: ignoring. Single store mode: ignoring. Single store mode: ignoring.; in: LAMBDA NIL ; (LET ((ELEPHANT-TESTS::OLD-STORE ELEPHANT:*STORE-CONTROLLER*) ; (ELEPHANT:*STORE-CONTROLLER* NIL) ; (ELEPHANT-TESTS::RV NIL) ; (ELEPHANT-TESTS::SC1 ; (ELEPHANT:OPEN-STORE ELEPHANT-TESTS::*TEST-SPEC-PRIMARY* :RECOVER T)) ; (ELEPHANT-TESTS::SC2 ; (ELEPHANT:OPEN-STORE ELEPHANT-TESTS::*TEST-SPEC-SECONDARY* :RECOVER ; T))) ; (UNWIND-PROTECT ; (LET* ((ELEPHANT-TESTS::IBT #)) ; (ELEPHANT::INITIALIZE-MIGRATE-DUPLICATE-DETECTION) ; (LET (#) ; (ELEPHANT:WITH-TRANSACTION # ; #) ; (LET* # ; # ; #))) ; (PROGN ; (ELEPHANT::CLEAR-MIGRATE-DUPLICATE-DETECTION) ; (SETQ ELEPHANT:*STORE-CONTROLLER* ELEPHANT-TESTS::OLD-STORE) ; (ELEPHANT:CLOSE-STORE ELEPHANT-TESTS::SC1) ; (ELEPHANT:CLOSE-STORE ELEPHANT-TESTS::SC2)))) ; ; caught STYLE-WARNING: ; The variable RV is defined but never used. ; ; compilation unit finished ; caught 1 STYLE-WARNING condition Single store mode: ignoring. Single store mode: ignoring. Single store mode: ignoring...... Single store mode: ignoring ....... Single store mode: ignoring. Did 508 checks. Pass: 505 (99%) Skip: 0 ( 0%) Fail: 3 ( 0%) Failure Details: -------------------------------- INDEXING-CHANGE-CLASS []: 1 evaluated to 1, which is not = to 2.. -------------------------------- -------------------------------- INDEXING-BASIC []: (LENGTH (GET-INSTANCES-BY-VALUE 'IDX-ONE-F 'SLOT1 N)) evaluated to 4, which is not = to 2.. -------------------------------- -------------------------------- INDEXING-BASIC []: (LENGTH (GET-INSTANCES-BY-RANGE 'IDX-ONE-F 'SLOT1 N (+ 1 N))) evaluated to 5, which is not = to 3.. -------------------------------- NIL ELE-TESTS> ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- From eslick at media.mit.edu Fri Feb 12 17:29:54 2010 From: eslick at media.mit.edu (Ian Eslick) Date: Fri, 12 Feb 2010 09:29:54 -0800 Subject: [elephant-devel] Elephant Test Suite Failed In-Reply-To: <2757b8a11002101545m5732a7d3l1f206762394897e4@mail.gmail.com> References: <2757b8a11002101545m5732a7d3l1f206762394897e4@mail.gmail.com> Message-ID: <5396B582-F337-4988-A39F-18261E1CC4C4@media.mit.edu> Sounds like an idempotence problem. Sometimes prior runs of the test leave data in the test DB that fouls up other tests. Are you running on a clean DB? You can run tests/delscript.sh to ensure databases are fresh)? Also, which lisp are you running? Thanks, Ian On Feb 10, 2010, at 3:45 PM, Thomas Karolski wrote: > Anyone knows what went wrong here? > > ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- > ELE-TESTS> (progn (loop for p in '(:elephant :ele-bdb :elephant-tests) > do (asdf:oos 'asdf:load-op p)) > (in-package :elephant-tests) > (setq elephant-tests::*default-spec* > elephant-tests::*testbdb-spec*) > (do-backend-tests)) > Attempting to load libmemutil.so... > Loaded /home/thomas/sources/clbuild/source/elephant/src/memutil/libmemutil.so > Attempting to load libmemutil.so... > Loaded /home/thomas/sources/clbuild/source/elephant/src/memutil/libmemutil.so > Loading /usr/local/BerkeleyDB.4.7/lib/libdb-4.7.so > Attempting to load libberkeley-db.so... > Loaded /home/thomas/sources/clbuild/source/elephant/src/db-bdb/libberkeley-db.so > Attempting to load libmemutil.so... > Loaded /home/thomas/sources/clbuild/source/elephant/src/memutil/libmemutil.so > Attempting to load libmemutil.so... > Loaded /home/thomas/sources/clbuild/source/elephant/src/memutil/libmemutil.so > .............................................................................................................................; > in: LAMBDA NIL > ; (LET* ((ELEPHANT-TESTS::HT > ; (MAKE-HASH-TABLE :TEST 'EQUALP :SIZE 333 :REHASH-SIZE 1.2 > ; :REHASH-THRESHOLD 0.8)) > ; (ELEPHANT-TESTS::REHASH-SIZE > ; (HASH-TABLE-REHASH-SIZE ELEPHANT-TESTS::HT)) > ; (ELEPHANT-TESTS::REHASH-THRESHOLD > ; (HASH-TABLE-REHASH-THRESHOLD ELEPHANT-TESTS::HT)) > ; (ELEPHANT-TESTS::OUT > ; (ELEPHANT-TESTS::IN-OUT-VALUE ELEPHANT-TESTS::HT))) > ; (ELEPHANT-TESTS::ARE-NOT-NULL > ; (EQ (HASH-TABLE-TEST ELEPHANT-TESTS::OUT) 'EQUALP) > ; (EQ (HASH-TABLE-TEST (ELEPHANT-TESTS::IN-OUT-VALUE #)) 'EQ) > ; (EQ (HASH-TABLE-TEST (ELEPHANT-TESTS::IN-OUT-VALUE #)) 'EQL) > ; (EQ (HASH-TABLE-TEST (ELEPHANT-TESTS::IN-OUT-VALUE #)) 'EQUAL) > ; (EQ (HASH-TABLE-TEST (ELEPHANT-TESTS::IN-OUT-VALUE #)) 'EQUALP))) > ; > ; caught STYLE-WARNING: > ; The variable REHASH-SIZE is defined but never used. > ; > ; caught STYLE-WARNING: > ; The variable REHASH-THRESHOLD is defined but never used. > ; > ; compilation unit finished > ; caught 2 STYLE-WARNING conditions > ....................................; in: LAMBDA NIL > ; (LET ((#:RESULT541 > ; (MULTIPLE-VALUE-LIST > ; (LET # > ; #)))) > ; ) > ; > ; caught STYLE-WARNING: > ; The variable #:RESULT541 is defined but never used. > ; > ; compilation unit finished > ; caught 1 STYLE-WARNING condition > ........ > Second store spec missing: ignoring....; in: LAMBDA NIL > ; (ERROR) > ; > ; caught STYLE-WARNING: > ; The function was called with zero arguments, but wants at least one. > ; > ; compilation unit finished > ; caught 1 STYLE-WARNING condition > ................................... > Synchronizing PINEAPPLE in (BDB > > /home/thomas/sources/clbuild/source/elephant/tests/testdb/) > Synchronizing PINEAPPLE in (BDB > > /home/thomas/sources/clbuild/source/elephant/tests/testdb/) > ...... > STYLE-WARNING: > redefining SLOT-UNBOUND (# > # > # {1005C29681}>) in DEFMETHOD > ... > Synchronizing UPDATE-CLASS in (BDB > > /home/thomas/sources/clbuild/source/elephant/tests/testdb/) > .. > Synchronizing CLASS-ONE in (BDB > > /home/thomas/sources/clbuild/source/elephant/tests/testdb/) > ....persistent -> indexed > Synchronizing UISUV in (BDB > > /home/thomas/sources/clbuild/source/elephant/tests/testdb/) > indexed -> persistent > Synchronizing UISUV in (BDB > > /home/thomas/sources/clbuild/source/elephant/tests/testdb/) > .persistent -> indexed > indexed -> indexed > indexed -> persistent > ................................................................................................................................................................ > ; (SETQ ELEPHANT-TESTS::RV > ; (EQUAL (FORMAT NIL "~A" ELEPHANT-TESTS::KEY) > ; (FORMAT NIL "~A" > ; (ELEPHANT:GET-FROM-ROOT ELEPHANT-TESTS::KEY)))) > ; > ; caught WARNING: > ; undefined variable: RV > ; > ; compilation unit finished > ; Undefined variable: > ; RV > ; caught 1 WARNING condition > Testing length = 163840 > ....................................; in: LAMBDA NIL > ; (MULTIPLE-VALUE-BIND > ; (ELEPHANT-TESTS::HAS ELEPHANT-TESTS::K ELEPHANT-TESTS::V) > ; (ELEPHANT:CURSOR-FIRST ELEPHANT-TESTS::CUR) > ; (WHEN ELEPHANT-TESTS::HAS (PUSH ELEPHANT-TESTS::V > ELEPHANT-TESTS::RESULTS))) > ; --> MULTIPLE-VALUE-CALL > ; ==> > ; #'(LAMBDA > ; (&OPTIONAL (ELEPHANT-TESTS::HAS) (ELEPHANT-TESTS::K) > ; (ELEPHANT-TESTS::V) > ; &REST #:G51) > ; (DECLARE (IGNORE #:G51)) > ; (WHEN ELEPHANT-TESTS::HAS > ; (PUSH ELEPHANT-TESTS::V ELEPHANT-TESTS::RESULTS))) > ; > ; caught STYLE-WARNING: > ; The variable K is defined but never used. > > ; (MULTIPLE-VALUE-BIND > ; (ELEPHANT-TESTS::HAS ELEPHANT-TESTS::K ELEPHANT-TESTS::V) > ; (ELEPHANT:CURSOR-NEXT ELEPHANT-TESTS::CUR) > ; (WHEN ELEPHANT-TESTS::HAS (PUSH ELEPHANT-TESTS::V > ELEPHANT-TESTS::RESULTS))) > ; --> MULTIPLE-VALUE-CALL > ; ==> > ; #'(LAMBDA > ; (&OPTIONAL (ELEPHANT-TESTS::HAS) (ELEPHANT-TESTS::K) > ; (ELEPHANT-TESTS::V) > ; &REST #:G56) > ; (DECLARE (IGNORE #:G56)) > ; (WHEN ELEPHANT-TESTS::HAS > ; (PUSH ELEPHANT-TESTS::V ELEPHANT-TESTS::RESULTS))) > ; > ; caught STYLE-WARNING: > ; The variable K is defined but never used. > > ; ==> > ; #'(LAMBDA > ; (&OPTIONAL (ELEPHANT-TESTS::HAS) (ELEPHANT-TESTS::K) > ; (ELEPHANT-TESTS::V) > ; &REST #:G61) > ; (DECLARE (IGNORE #:G61)) > ; (WHEN ELEPHANT-TESTS::HAS > ; (PUSH ELEPHANT-TESTS::V ELEPHANT-TESTS::RESULTS))) > ; > ; caught STYLE-WARNING: > ; The variable K is defined but never used. > > ; ==> > ; #'(LAMBDA > ; (&OPTIONAL (ELEPHANT-TESTS::HAS) (ELEPHANT-TESTS::K) > ; (ELEPHANT-TESTS::V) > ; &REST #:G66) > ; (DECLARE (IGNORE #:G66)) > ; (WHEN ELEPHANT-TESTS::HAS > ; (PUSH ELEPHANT-TESTS::V ELEPHANT-TESTS::RESULTS))) > ; > ; caught STYLE-WARNING: > ; The variable K is defined but never used. > > ; > ; note: cannot stack allocate value cell for CUR > ; > ; compilation unit finished > ; caught 4 STYLE-WARNING conditions > ; printed 1 note > ....; in: LAMBDA NIL > ; (MULTIPLE-VALUE-BIND > ; (ELEPHANT-TESTS::HAS ELEPHANT-TESTS::K ELEPHANT-TESTS::V) > ; (ELEPHANT:CURSOR-CURRENT ELEPHANT-TESTS::CUR) > ; (IT.BESE.FIVEAM:IS-TRUE > ; (AND ELEPHANT-TESTS::HAS > ; (= (ELEPHANT-TESTS::SLOT1 ELEPHANT-TESTS::V) 100)))) > ; --> MULTIPLE-VALUE-CALL > ; ==> > ; #'(LAMBDA > ; (&OPTIONAL (ELEPHANT-TESTS::HAS) (ELEPHANT-TESTS::K) > ; (ELEPHANT-TESTS::V) > ; &REST #:G45) > ; (DECLARE (IGNORE #:G45)) > ; (IT.BESE.FIVEAM:IS-TRUE > ; (AND ELEPHANT-TESTS::HAS > ; (= (ELEPHANT-TESTS::SLOT1 ELEPHANT-TESTS::V) 100)))) > ; > ; caught STYLE-WARNING: > ; The variable K is defined but never used. > > ; (MULTIPLE-VALUE-BIND > ; (ELEPHANT-TESTS::HAS ELEPHANT-TESTS::K ELEPHANT-TESTS::V) > ; (ELEPHANT:CURSOR-PREV ELEPHANT-TESTS::CUR) > ; (IT.BESE.FIVEAM:IS-TRUE > ; (AND ELEPHANT-TESTS::HAS > ; (= (ELEPHANT-TESTS::SLOT1 ELEPHANT-TESTS::V) 100)))) > ; --> MULTIPLE-VALUE-CALL > ; ==> > ; #'(LAMBDA > ; (&OPTIONAL (ELEPHANT-TESTS::HAS) (ELEPHANT-TESTS::K) > ; (ELEPHANT-TESTS::V) > ; &REST #:G65) > ; (DECLARE (IGNORE #:G65)) > ; (IT.BESE.FIVEAM:IS-TRUE > ; (AND ELEPHANT-TESTS::HAS > ; (= (ELEPHANT-TESTS::SLOT1 ELEPHANT-TESTS::V) 100)))) > ; > ; caught STYLE-WARNING: > ; The variable K is defined but never used. > > ; > ; note: cannot stack allocate value cell for CUR > ; > ; compilation unit finished > ; caught 2 STYLE-WARNING conditions > ; printed 1 note > ..........; in: LAMBDA NIL > ; (LET ((#:RESULT189 > ; (MULTIPLE-VALUE-LIST > ; (IT.BESE.FIVEAM:FINISHES > ; #)))) > ; ) > ; > ; caught STYLE-WARNING: > ; The variable #:RESULT189 is defined but never used. > ; > ; compilation unit finished > ; caught 1 STYLE-WARNING condition > .................. > ; > ; note: cannot stack allocate value cell for C > ; > ; compilation unit finished > ; printed 1 note > . > ; > ; note: cannot stack allocate value cell for C > ; > ; compilation unit finished > ; printed 1 note > . > ; > ; note: cannot stack allocate value cell for C > ; > ; compilation unit finished > ; printed 1 note > . > ; > ; note: cannot stack allocate value cell for C > ; > ; compilation unit finished > ; printed 1 note > . > ; > ; note: cannot stack allocate value cell for C > ; > ; compilation unit finished > ; printed 1 note > . > ; > ; note: cannot stack allocate value cell for C > ; > ; compilation unit finished > ; printed 1 note > . > ; > ; note: cannot stack allocate value cell for C > ; > ; compilation unit finished > ; printed 1 note > . > ; > ; note: cannot stack allocate value cell for C > ; > ; compilation unit finished > ; printed 1 note > ....; in: LAMBDA NIL > ; (FLET ((ELEPHANT-TESTS::RETURNER > ; (ELEPHANT-TESTS::KEY ELEPHANT-TESTS::VALUE > ELEPHANT-TESTS::PKEY) > ; (ELEPHANT-TESTS::SLOT1 ELEPHANT-TESTS::VALUE))) > ; (IT.BESE.FIVEAM:IS > ; (EQUAL > ; (ELEPHANT:MAP-INDEX #'ELEPHANT-TESTS::RETURNER ELEPHANT-TESTS::INDEX1 > ; :VALUE 990 :COLLECT T) > ; (LIST 990)))) > ; > ; caught STYLE-WARNING: > ; The variable KEY is defined but never used. > ; > ; caught STYLE-WARNING: > ; The variable PKEY is defined but never used. > ; > ; compilation unit finished > ; caught 2 STYLE-WARNING conditions > ...............; in: LAMBDA NIL > ; (MULTIPLE-VALUE-BIND > ; (ELEPHANT-TESTS::HAS ELEPHANT-TESTS::KEY ELEPHANT-TESTS::VALUE) > ; (ELEPHANT:CURSOR-NEXT ELEPHANT-TESTS::C) > ; ELEPHANT-TESTS::VALUE) > ; --> MULTIPLE-VALUE-CALL > ; ==> > ; #'(LAMBDA > ; (&OPTIONAL (ELEPHANT-TESTS::HAS) (ELEPHANT-TESTS::KEY) > ; (ELEPHANT-TESTS::VALUE) > ; &REST #:G115) > ; (DECLARE (IGNORE #:G115)) > ; ELEPHANT-TESTS::VALUE) > ; > ; caught STYLE-WARNING: > ; The variable HAS is defined but never used. > ; > ; caught STYLE-WARNING: > ; The variable KEY is defined but never used. > > ; ==> > ; #'(LAMBDA > ; (&OPTIONAL (ELEPHANT-TESTS::HAS) (ELEPHANT-TESTS::KEY) > ; (ELEPHANT-TESTS::VALUE) > ; &REST #:G111) > ; (DECLARE (IGNORE #:G111)) > ; ELEPHANT-TESTS::VALUE) > ; > ; caught STYLE-WARNING: > ; The variable HAS is defined but never used. > ; > ; caught STYLE-WARNING: > ; The variable KEY is defined but never used. > > ; (MULTIPLE-VALUE-BIND > ; (ELEPHANT-TESTS::HAS ELEPHANT-TESTS::KEY ELEPHANT-TESTS::VALUE) > ; (ELEPHANT:CURSOR-NEXT ELEPHANT-TESTS::C)) > ; --> MULTIPLE-VALUE-CALL > ; ==> > ; #'(LAMBDA > ; (&OPTIONAL (ELEPHANT-TESTS::HAS) (ELEPHANT-TESTS::KEY) > ; (ELEPHANT-TESTS::VALUE) > ; &REST #:G62) > ; (DECLARE (IGNORE #:G62))) > ; > ; caught STYLE-WARNING: > ; The variable HAS is defined but never used. > ; > ; caught STYLE-WARNING: > ; The variable KEY is defined but never used. > ; > ; caught STYLE-WARNING: > ; The variable VALUE is defined but never used. > > ; > ; note: cannot stack allocate value cell for C > > ; > ; note: cannot stack allocate value cell for C > ; > ; compilation unit finished > ; caught 7 STYLE-WARNING conditions > ; printed 2 notes > ......; in: LAMBDA NIL > ; (MULTIPLE-VALUE-BIND (ELEPHANT-TESTS::BOOL ELEPHANT-TESTS::RES) > ; (ELEPHANT-TESTS::CRUNCH NIL NIL > ; (ELEPHANT:GET-VALUE ELEPHANT-TESTS::I > ; ELEPHANT-TESTS::INDEX3)) > ; (= ELEPHANT-TESTS::RES ELEPHANT-TESTS::I)) > ; --> MULTIPLE-VALUE-CALL > ; ==> > ; #'(LAMBDA > ; (&OPTIONAL (ELEPHANT-TESTS::BOOL) (ELEPHANT-TESTS::RES) &REST #:G21) > ; (DECLARE (IGNORE #:G21)) > ; (= ELEPHANT-TESTS::RES ELEPHANT-TESTS::I)) > ; > ; caught STYLE-WARNING: > ; The variable BOOL is defined but never used. > ; > ; compilation unit finished > ; caught 1 STYLE-WARNING condition > . > ; > ; note: cannot stack allocate value cell for CURS > ; > ; compilation unit finished > ; printed 1 note > . > ; > ; note: cannot stack allocate value cell for CURS > ; > ; compilation unit finished > ; printed 1 note > . > ; > ; note: cannot stack allocate value cell for CURS > ; > ; compilation unit finished > ; printed 1 note > . > ; > ; note: cannot stack allocate value cell for CURS > ; > ; compilation unit finished > ; printed 1 note > . > ; > ; note: cannot stack allocate value cell for CURS > ; > ; compilation unit finished > ; printed 1 note > . > ; > ; note: cannot stack allocate value cell for C > ; > ; compilation unit finished > ; printed 1 note > . > ; > ; note: cannot stack allocate value cell for CURS > ; > ; compilation unit finished > ; printed 1 note > ... > ; > ; note: cannot stack allocate value cell for CURS > ; > ; compilation unit finished > ; printed 1 note > .; in: LAMBDA NIL > ; (MULTIPLE-VALUE-BIND (ELEPHANT-TESTS::M ELEPHANT-TESTS::K > ELEPHANT-TESTS::V) > ; (ELEPHANT:CURSOR-NEXT ELEPHANT-TESTS::C) > ; ELEPHANT-TESTS::V) > ; --> MULTIPLE-VALUE-CALL > ; ==> > ; #'(LAMBDA > ; (&OPTIONAL (ELEPHANT-TESTS::M) (ELEPHANT-TESTS::K) (ELEPHANT-TESTS::V) > ; &REST #:G91) > ; (DECLARE (IGNORE #:G91)) > ; ELEPHANT-TESTS::V) > ; > ; caught STYLE-WARNING: > ; The variable M is defined but never used. > ; > ; caught STYLE-WARNING: > ; The variable K is defined but never used. > > ; > ; note: cannot stack allocate value cell for C > ; > ; compilation unit finished > ; caught 2 STYLE-WARNING conditions > ; printed 1 note > .... > ; > ; note: cannot stack allocate value cell for C > ; > ; compilation unit finished > ; printed 1 note > . > ; > ; note: cannot stack allocate value cell for C > ; > ; compilation unit finished > ; printed 1 note > ...; in: LAMBDA NIL > ; (MULTIPLE-VALUE-BIND > ; (ELEPHANT-TESTS::M ELEPHANT-TESTS::K ELEPHANT-TESTS::V > ELEPHANT-TESTS::P) > ; (ELEPHANT:CURSOR-PGET-BOTH ELEPHANT-TESTS::C 10 107) > ; (VALUES ELEPHANT-TESTS::K ELEPHANT-TESTS::V ELEPHANT-TESTS::P)) > ; --> MULTIPLE-VALUE-CALL > ; ==> > ; #'(LAMBDA > ; (&OPTIONAL (ELEPHANT-TESTS::M) (ELEPHANT-TESTS::K) (ELEPHANT-TESTS::V) > ; (ELEPHANT-TESTS::P) > ; &REST #:G79) > ; (DECLARE (IGNORE #:G79)) > ; (VALUES ELEPHANT-TESTS::K ELEPHANT-TESTS::V ELEPHANT-TESTS::P)) > ; > ; caught STYLE-WARNING: > ; The variable M is defined but never used. > > ; > ; note: cannot stack allocate value cell for C > ; > ; compilation unit finished > ; caught 1 STYLE-WARNING condition > ; printed 1 note > ...; in: LAMBDA NIL > ; (MULTIPLE-VALUE-BIND > ; (ELEPHANT-TESTS::M ELEPHANT-TESTS::K ELEPHANT-TESTS::V > ELEPHANT-TESTS::P) > ; (ELEPHANT:CURSOR-PGET-BOTH-RANGE ELEPHANT-TESTS::C 10 106.5) > ; (VALUES ELEPHANT-TESTS::K ELEPHANT-TESTS::V ELEPHANT-TESTS::P)) > ; --> MULTIPLE-VALUE-CALL > ; ==> > ; #'(LAMBDA > ; (&OPTIONAL (ELEPHANT-TESTS::M) (ELEPHANT-TESTS::K) (ELEPHANT-TESTS::V) > ; (ELEPHANT-TESTS::P) > ; &REST #:G79) > ; (DECLARE (IGNORE #:G79)) > ; (VALUES ELEPHANT-TESTS::K ELEPHANT-TESTS::V ELEPHANT-TESTS::P)) > ; > ; caught STYLE-WARNING: > ; The variable M is defined but never used. > > ; > ; note: cannot stack allocate value cell for C > ; > ; compilation unit finished > ; caught 1 STYLE-WARNING condition > ; printed 1 note > ... > ; > ; note: cannot stack allocate value cell for C > ; > ; compilation unit finished > ; printed 1 note > ............ > ; > ; note: cannot stack allocate value cell for C > ; > ; compilation unit finished > ; printed 1 note > .............; in: LAMBDA NIL > ; (LAMBDA (ELEPHANT-TESTS::K ELEPHANT-TESTS::V ELEPHANT-TESTS::PK) > ; (UNLESS (ZEROP (MOD ELEPHANT-TESTS::K 33)) (RETURN NIL))) > ; ==> > ; #'(LAMBDA (ELEPHANT-TESTS::K ELEPHANT-TESTS::V ELEPHANT-TESTS::PK) > ; (UNLESS (ZEROP (MOD ELEPHANT-TESTS::K 33)) (RETURN NIL))) > ; > ; caught STYLE-WARNING: > ; The variable V is defined but never used. > ; > ; caught STYLE-WARNING: > ; The variable PK is defined but never used. > ; > ; compilation unit finished > ; caught 2 STYLE-WARNING conditions > . > ; > ; note: cannot stack allocate value cell for C > ; > ; compilation unit finished > ; printed 1 note > ...............; in: LAMBDA NIL > ; (LET ((LIST (ELEPHANT:PSET-LIST ELEPHANT-TESTS::PSET1))) > ; (VALUES (= (LENGTH (ELEPHANT:PSET-LIST ELEPHANT-TESTS::PSET1)) 5) > ; (NOT > ; (ELEPHANT:FIND-ITEM 'ELEPHANT-TESTS::TEST2 > ELEPHANT-TESTS::PSET1)) > ; (ELEPHANT-TESTS::IS-NOT-NULL > ; (ELEPHANT:FIND-ITEM 'ELEPHANT-TESTS::TEST1 > ; ELEPHANT-TESTS::PSET1)) > ; (ELEPHANT-TESTS::IS-NOT-NULL > ; (ELEPHANT:FIND-ITEM 1 ELEPHANT-TESTS::PSET1 :KEY (LAMBDA # #) > ; :TEST #'EQ)))) > ; > ; caught STYLE-WARNING: > ; The variable LIST is defined but never used. > ; > ; compilation unit finished > ; caught 1 STYLE-WARNING condition > ..... > Synchronizing IDX-ONE-B in (BDB > > /home/thomas/sources/clbuild/source/elephant/tests/testdb/) > Synchronizing IDX-ONE-C in (BDB > > /home/thomas/sources/clbuild/source/elephant/tests/testdb/) > Synchronizing IDX-ONE-D in (BDB > > /home/thomas/sources/clbuild/source/elephant/tests/testdb/) > Synchronizing IDX-ONE-E in (BDB > > /home/thomas/sources/clbuild/source/elephant/tests/testdb/) > Synchronizing IDX-ONE-F in (BDB > > /home/thomas/sources/clbuild/source/elephant/tests/testdb/) > Synchronizing IDX-TWO in (BDB > > /home/thomas/sources/clbuild/source/elephant/tests/testdb/) > Synchronizing IDX-CSLOT in (BDB > > /home/thomas/sources/clbuild/source/elephant/tests/testdb/) > Synchronizing IDX-THREE in (BDB > > /home/thomas/sources/clbuild/source/elephant/tests/testdb/) > Synchronizing IDX-FOUR in (BDB > > /home/thomas/sources/clbuild/source/elephant/tests/testdb/) > Synchronizing IDX-UNBOUND-DEL in (BDB > > /home/thomas/sources/clbuild/source/elephant/tests/testdb/) > Synchronizing IDX-FIVE-DEL in (BDB > > /home/thomas/sources/clbuild/source/elephant/tests/testdb/) > Synchronizing IDX-SEVEN in (BDB > > /home/thomas/sources/clbuild/source/elephant/tests/testdb/) > Synchronizing IDX-EIGHT in (BDB > > /home/thomas/sources/clbuild/source/elephant/tests/testdb/) > ....READY FOR ACTION > f..f > Synchronizing IDX-ONE-F in (BDB > > /home/thomas/sources/clbuild/source/elephant/tests/testdb/) > .READY FOR ACTION > ... > ; (SETQ ELEPHANT-TESTS::INST4 > ; (MAKE-INSTANCE 'ELEPHANT-TESTS::IDX-ONE-B :SLOT1 "onethousand" :SC > ; ELEPHANT:*STORE-CONTROLLER*)) > ; > ; caught WARNING: > ; undefined variable: INST4 > > ; (SETQ ELEPHANT-TESTS::INST5 > ; (MAKE-INSTANCE 'ELEPHANT-TESTS::IDX-ONE-B :SLOT1 "only" :SC > ; ELEPHANT:*STORE-CONTROLLER*)) > ; > ; caught WARNING: > ; undefined variable: INST5 > > ; (SETQ ELEPHANT-TESTS::INST6 > ; (MAKE-INSTANCE 'ELEPHANT-TESTS::IDX-ONE-B :SLOT1 "twothousand" :SC > ; ELEPHANT:*STORE-CONTROLLER*)) > ; > ; caught WARNING: > ; undefined variable: INST6 > ; > ; compilation unit finished > ; Undefined variables: > ; INST4 INST5 INST6 > ; caught 3 WARNING conditions > Synchronizing IDX-ONE-B in (BDB > > /home/thomas/sources/clbuild/source/elephant/tests/testdb/) > ... > Synchronizing IDX-ONE-C in (BDB > > /home/thomas/sources/clbuild/source/elephant/tests/testdb/) > ...... > Synchronizing IDX-ONE-D in (BDB > > /home/thomas/sources/clbuild/source/elephant/tests/testdb/) > ...... > Synchronizing IDX-ONE-E in (BDB > > /home/thomas/sources/clbuild/source/elephant/tests/testdb/) > ............... > Synchronizing IDX-TWO-BASE in (BDB > > /home/thomas/sources/clbuild/source/elephant/tests/testdb/) > Synchronizing IDX-TWO-SUB1 in (BDB > > /home/thomas/sources/clbuild/source/elephant/tests/testdb/) > Synchronizing IDX-TWO-SUB1-1 in (BDB > > /home/thomas/sources/clbuild/source/elephant/tests/testdb/) > Synchronizing IDX-TWO-SUB2 in (BDB > > /home/thomas/sources/clbuild/source/elephant/tests/testdb/) > Synchronizing IDX-TWO-BASE in (BDB > > /home/thomas/sources/clbuild/source/elephant/tests/testdb/) > Synchronizing IDX-TWO-SUB1 in (BDB > > /home/thomas/sources/clbuild/source/elephant/tests/testdb/) > Synchronizing IDX-TWO-SUB1-1 in (BDB > > /home/thomas/sources/clbuild/source/elephant/tests/testdb/) > Synchronizing IDX-TWO-SUB2 in (BDB > > /home/thomas/sources/clbuild/source/elephant/tests/testdb/) > .....; in: LAMBDA NIL > ; (LET ((#:RESULT154 (MULTIPLE-VALUE-LIST (PROGN # # # # #)))) > ; ) > ; > ; caught STYLE-WARNING: > ; The variable #:RESULT154 is defined but never used. > ; > ; compilation unit finished > ; caught 1 STYLE-WARNING condition > Synchronizing IDX-FOUR in (BDB > > /home/thomas/sources/clbuild/source/elephant/tests/testdb/) > .. > STYLE-WARNING: redefining MAKE-IDX-FOUR in DEFUN > .................f > ; (ELEPHANT-TESTS::SLOT6 ELEPHANT-TESTS::O1) > ; > ; caught STYLE-WARNING: > ; undefined function: SLOT6 > ; > ; compilation unit finished > ; Undefined function: > ; SLOT6 > ; caught 1 STYLE-WARNING condition > Synchronizing IDX-EIGHT in (BDB > > /home/thomas/sources/clbuild/source/elephant/tests/testdb/) > Synchronizing IDX-EIGHT in (BDB > > /home/thomas/sources/clbuild/source/elephant/tests/testdb/) > indexing redef-class d > ........ > Ranged get of 10/700 objects = Linear: 0.24 sec Indexed: 0.0 sec > ....... > ; (SETF (ELEPHANT-TESTS::JOBS ELEPHANT-TESTS::P) ELEPHANT-TESTS::J) > ; --> LET* MULTIPLE-VALUE-BIND LET FUNCALL > ; ==> > ; (SB-C::%FUNCALL #'(SETF ELEPHANT-TESTS::JOBS) #:NEW29 #:TMP30) > ; > ; caught STYLE-WARNING: > ; undefined function: (SETF JOBS) > ; > ; compilation unit finished > ; Undefined function: > ; (SETF JOBS) > ; caught 1 STYLE-WARNING condition > Synchronizing PERSON in (BDB > > /home/thomas/sources/clbuild/source/elephant/tests/testdb/) > Synchronizing JOB in (BDB > > /home/thomas/sources/clbuild/source/elephant/tests/testdb/) > .. > Synchronizing PERSON in (BDB > > /home/thomas/sources/clbuild/source/elephant/tests/testdb/) > Synchronizing JOB in (BDB > > /home/thomas/sources/clbuild/source/elephant/tests/testdb/) > Synchronizing PJASSOC in (BDB > > /home/thomas/sources/clbuild/source/elephant/tests/testdb/) > .. > Single store mode: ignoring. > Single store mode: ignoring. > Single store mode: ignoring.; in: LAMBDA NIL > ; (LET ((ELEPHANT-TESTS::OLD-STORE ELEPHANT:*STORE-CONTROLLER*) > ; (ELEPHANT:*STORE-CONTROLLER* NIL) > ; (ELEPHANT-TESTS::RV NIL) > ; (ELEPHANT-TESTS::SC1 > ; (ELEPHANT:OPEN-STORE ELEPHANT-TESTS::*TEST-SPEC-PRIMARY* > :RECOVER T)) > ; (ELEPHANT-TESTS::SC2 > ; (ELEPHANT:OPEN-STORE ELEPHANT-TESTS::*TEST-SPEC-SECONDARY* :RECOVER > ; T))) > ; (UNWIND-PROTECT > ; (LET* ((ELEPHANT-TESTS::IBT #)) > ; (ELEPHANT::INITIALIZE-MIGRATE-DUPLICATE-DETECTION) > ; (LET (#) > ; (ELEPHANT:WITH-TRANSACTION # > ; #) > ; (LET* # > ; # > ; #))) > ; (PROGN > ; (ELEPHANT::CLEAR-MIGRATE-DUPLICATE-DETECTION) > ; (SETQ ELEPHANT:*STORE-CONTROLLER* ELEPHANT-TESTS::OLD-STORE) > ; (ELEPHANT:CLOSE-STORE ELEPHANT-TESTS::SC1) > ; (ELEPHANT:CLOSE-STORE ELEPHANT-TESTS::SC2)))) > ; > ; caught STYLE-WARNING: > ; The variable RV is defined but never used. > ; > ; compilation unit finished > ; caught 1 STYLE-WARNING condition > > Single store mode: ignoring. > Single store mode: ignoring. > Single store mode: ignoring...... > Single store mode: ignoring ....... > Single store mode: ignoring. > Did 508 checks. > Pass: 505 (99%) > Skip: 0 ( 0%) > Fail: 3 ( 0%) > > Failure Details: > -------------------------------- > INDEXING-CHANGE-CLASS []: > 1 evaluated to 1, which is not = to 2.. > -------------------------------- > -------------------------------- > INDEXING-BASIC []: > (LENGTH (GET-INSTANCES-BY-VALUE 'IDX-ONE-F 'SLOT1 N)) evaluated > to 4, which is not = to 2.. > -------------------------------- > -------------------------------- > INDEXING-BASIC []: > (LENGTH (GET-INSTANCES-BY-RANGE 'IDX-ONE-F 'SLOT1 N (+ 1 N))) > evaluated to 5, which is not = to 3.. > -------------------------------- > > NIL > ELE-TESTS> > ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- > > _______________________________________________ > elephant-devel site list > elephant-devel at common-lisp.net > http://common-lisp.net/mailman/listinfo/elephant-devel From spacebat at ubermonkey.net Sat Feb 13 01:18:23 2010 From: spacebat at ubermonkey.net (Andrew Kirkpatrick) Date: Sat, 13 Feb 2010 11:48:23 +1030 Subject: [elephant-devel] Memory corruption in open-store Message-ID: <4B75FDDF.1070401@ubermonkey.net> Hi, I'm trying to use elephant but with limited success. Running on Ubuntu 9.04, with clbuild installed SBCL 1.0.35.1 and current Elephant and dependencies. I tried using contrib/henrik/install-bdb.sh to install Berkeley DB 4.5 and set up my-config.sexp as it suggested, but when I evaluate this form, referring to a directory that does exist: (open-store '(:BDB "/tmp/my-db/")) I get a the usual compilation and loading noise terminated with: Help! 11 nested errors. SB-KERNEL:*MAXIMUM-ERROR-DEPTH* exceeded. 0: ; Evaluation aborted. I've also tried configuring my-config.sexp to use libdb-4.6.so and related files installed from the Ubuntu repo, but the effect is the same. In both cases its loading the correct shared lib, and when I switch to the *inferior-lisp* buffer, the 11 nested errors all look similar to this: CORRUPTION WARNING in SBCL pid 3239(tid 3039865744): Memory fault at 100020 (pc=0x9c77963, sp=0xb52f6110) The integrity of this image is possibly compromised. Continuing with fingers crossed. Indeed at that point my lisp image is somewhat hosed. I started trying to use the :BDB store because of similar errors when the cl-sql backend tried to use sqlite. I realize this it probably CFFI related, but perhaps others have run into it and know of a fix? Thanks, -- Andrew Kirkpatrick "The first rule of Perl Club... has subscript 0. Unless you changed $[. But don't!" -- blazar on perlmonks.org From sky at viridian-project.de Sat Feb 13 16:02:13 2010 From: sky at viridian-project.de (Leslie P. Polzer) Date: Sat, 13 Feb 2010 17:02:13 +0100 (CET) Subject: [elephant-devel] Memory corruption in open-store In-Reply-To: <4B75FDDF.1070401@ubermonkey.net> References: <4B75FDDF.1070401@ubermonkey.net> Message-ID: Andrew Kirkpatrick wrote: > Hi, I'm trying to use elephant but with limited success. Running on > Ubuntu 9.04, with clbuild installed SBCL 1.0.35.1 and current Elephant > and dependencies. I tried using contrib/henrik/install-bdb.sh to install > Berkeley DB 4.5 and set up my-config.sexp as it suggested, but when I > evaluate this form, referring to a directory that does exist: > > (open-store '(:BDB "/tmp/my-db/")) > > I get a the usual compilation and loading noise terminated with: > > Help! 11 nested errors. SB-KERNEL:*MAXIMUM-ERROR-DEPTH* exceeded. > 0: ; Evaluation aborted. Try the latest version of CFFI and BDB 4.7. From eslick at media.mit.edu Sat Feb 13 17:14:44 2010 From: eslick at media.mit.edu (Ian Eslick) Date: Sat, 13 Feb 2010 09:14:44 -0800 Subject: [elephant-devel] Memory corruption in open-store In-Reply-To: References: <4B75FDDF.1070401@ubermonkey.net> Message-ID: <7032F7A4-69F7-4460-83F5-DABD221D2103@media.mit.edu> I don't believe elephant is compatible with CFFI yet, or did I miss an update? The latest UFFI is probably more appropriate? On Feb 13, 2010, at 8:02 AM, Leslie P. Polzer wrote: > > Andrew Kirkpatrick wrote: >> Hi, I'm trying to use elephant but with limited success. Running on >> Ubuntu 9.04, with clbuild installed SBCL 1.0.35.1 and current Elephant >> and dependencies. I tried using contrib/henrik/install-bdb.sh to install >> Berkeley DB 4.5 and set up my-config.sexp as it suggested, but when I >> evaluate this form, referring to a directory that does exist: >> >> (open-store '(:BDB "/tmp/my-db/")) >> >> I get a the usual compilation and loading noise terminated with: >> >> Help! 11 nested errors. SB-KERNEL:*MAXIMUM-ERROR-DEPTH* exceeded. >> 0: ; Evaluation aborted. > > Try the latest version of CFFI and BDB 4.7. > > > _______________________________________________ > elephant-devel site list > elephant-devel at common-lisp.net > http://common-lisp.net/mailman/listinfo/elephant-devel From sky at viridian-project.de Sat Feb 13 17:42:10 2010 From: sky at viridian-project.de (Leslie P. Polzer) Date: Sat, 13 Feb 2010 18:42:10 +0100 Subject: [elephant-devel] Memory corruption in open-store In-Reply-To: <7032F7A4-69F7-4460-83F5-DABD221D2103@media.mit.edu> References: <4B75FDDF.1070401@ubermonkey.net> <7032F7A4-69F7-4460-83F5-DABD221D2103@media.mit.edu> Message-ID: <20100213174210.GA23451@viridian-project.de> On Sat, Feb 13, 2010 at 09:14:44AM -0800, Ian Eslick wrote: > I don't believe elephant is compatible with CFFI yet, or did I miss an update? The latest UFFI is probably more appropriate? Oh yes, that's what I meant of course. From sebyte at smolny.plus.com Thu Feb 18 11:03:25 2010 From: sebyte at smolny.plus.com (Sebastian Tennant) Date: Thu, 18 Feb 2010 11:03:25 +0000 Subject: [elephant-devel] Memory corruption in open-store References: <4B75FDDF.1070401@ubermonkey.net> Message-ID: <4oleq002.fsf@vps203.linuxvps.org> Quoth Andrew Kirkpatrick : > Hi, I'm trying to use elephant but with limited success. Running on > Ubuntu 9.04, with clbuild installed SBCL 1.0.35.1 and current Elephant > and dependencies. I tried using contrib/henrik/install-bdb.sh to install > Berkeley DB 4.5 and set up my-config.sexp as it suggested http://common-lisp.net/project/elephant/faq10a2.html Hope this helps, Sebastian -- Emacs' AlsaPlayer - Music Without Jolts Lightweight, full-featured and mindful of your idyllic happiness. http://home.gna.org/eap From sky at viridian-project.de Thu Feb 18 11:24:15 2010 From: sky at viridian-project.de (Leslie P. Polzer) Date: Thu, 18 Feb 2010 12:24:15 +0100 (CET) Subject: [elephant-devel] [Fwd: [weblocks] Overriding persistent slot :allocation argument leads to errors] Message-ID: ----------------------------------- Original Message ----------------------------------- Subject: [weblocks] Overriding persistent slot :allocation argument leads to errors From: "MHOOO" Date: Thu, February 18, 2010 11:53 am To: "weblocks" ---------------------------------------------------------------------------------------- Is there a reason why class-visible-slots-impl iterates over all parent classes in order to determine the slots of a proxy class (in case elephant-bdb is used as a backend) instead of simply using closer- mop:class-slots to yield the effective slots of a class? Consider the following (both persistent classes) (defpclass nameable () ((name "Unknown" :allocation :class))) (defpclass user (nameable) ((name :allocation :instance))) class-visible-slots-impl would now return two direct-slot-definitions (once for nameable and once for user). The user class however only overrides the :allocation argument of the 'name' slot. Effective slots of user is thus only 'name' with an :allocation of :instance (instead of :class). However, I cannot use the user class with any quickform - as these try to generate a proxy using return-proxy-classname, which in turn uses class-visible-slots-impl. Latter however yields two direct-slot- definitions which confuses the proxy generation algorithm (which 'name' slot definition to use?). Is this intended behavior? -- You received this message because you are subscribed to the Google Groups "weblocks" group. To post to this group, send email to weblocks at googlegroups.com. To unsubscribe from this group, send email to weblocks+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/weblocks?hl=en. -- From lukas.giessmann at hotmail.de Wed Feb 24 08:58:07 2010 From: lukas.giessmann at hotmail.de (=?iso-8859-1?Q?Lukas_Gie=DFmann?=) Date: Wed, 24 Feb 2010 09:58:07 +0100 Subject: [elephant-devel] make-instance with :from-oid Message-ID: Hi list, I need to create some objects from their oid. But I noticed that there is always created an object of the given type even if there is no object stored with the passed oid or if there is stored another object (another class) with the passed oid. Here is a simple example of this problem: CL-USER> (elephant:defpclass TopicC () ((id :accessor id :initarg :id :index t) (name :accessor name :initarg :name :index t)) (:index t)) # CL-USER> (elephant:defpclass OccurrenceC () ((id :accessor id :initarg :id :index t) (value :accessor value :initarg :value :index t)) (:index t)) # CL-USER> (make-instance 'TopicC :id "top-1" :name "name-1") # CL-USER> (make-instance 'OccurrenceC :id "occ-1" :value "value-1") # CL-USER> (make-instance 'TopicC :from-oid 5) # CL-USER> (type-of (make-instance 'TopicC :from-oid 5)) TOPICC CL-USER> (id (make-instance 'TopicC :from-oid 5)) "occ-1" CL-USER> (name (make-instance 'TopicC :from-oid 5)) ;causes the following error: ;The slot NAME is unbound in the object #. ; [Condition of type UNBOUND-SLOT] CL-USER> (value (make-instance 'TopicC :from-oid 5)) ;causes the following error: ;There is no applicable method for the generic function ; # ;when called with arguments ; (#). ; [Condition of type SIMPLE-ERROR] CL-USER> (make-instance 'TopicC :from-oid 999) ;works even if the passed oid does not exist # So when I use an oid that stores an object that is not of the given class, there is no error thrown or no warning. Is there any possibility to be sure that the given oid stores an object of the given class? Best regards Lukas -------------- next part -------------- An HTML attachment was scrubbed... URL: From killerstorm at newmail.ru Wed Feb 24 15:38:57 2010 From: killerstorm at newmail.ru (Alex Mizrahi) Date: Wed, 24 Feb 2010 17:38:57 +0200 Subject: [elephant-devel] make-instance with :from-oid References: Message-ID: LG> So when I use an oid that stores an object that is not of the given class, there is no error thrown or no warning. LG> Is there any possibility to be sure that the given oid stores an object of the given class? You shouldn't use make-instance with :from-oid initarg to recreate instances -- it won't work correctly. Use controller-recreate-instance function. It needs only oid and finds class automatically, so you just won't have problems with mismatches. From lukas.giessmann at hotmail.de Wed Feb 24 16:05:12 2010 From: lukas.giessmann at hotmail.de (=?iso-8859-1?Q?Lukas_Gie=DFmann?=) Date: Wed, 24 Feb 2010 17:05:12 +0100 Subject: [elephant-devel] make-instance with :from-oid In-Reply-To: References: Message-ID: fantastic, this was exactly what I was looking for. thanks lukas -------------------------------------------------- From: "Alex Mizrahi" Sent: Wednesday, February 24, 2010 4:38 PM To: Subject: Re: [elephant-devel] make-instance with :from-oid > LG> So when I use an oid that stores an object that is not of the given > class, there is no error thrown or no warning. > LG> Is there any possibility to be sure that the given oid stores an > object > of the given class? > > You shouldn't use make-instance with :from-oid initarg to recreate > instances -- it won't work correctly. > > Use controller-recreate-instance function. It needs only oid and finds > class > automatically, so you just won't have problems with mismatches. > > > > _______________________________________________ > elephant-devel site list > elephant-devel at common-lisp.net > http://common-lisp.net/mailman/listinfo/elephant-devel >