Parent Directory | Revision Log
|Links to HEAD:||(view) (annotate)|
* 2009-05-27 - version 0.1.20 Fix a bug in the creation of transaction-ids (bug reported by Klaus Harbo).
Version 0.1.16: improved performance by decreasing persistent consing for btrees and using a lazy-cache. Fixed some small bugs. Added a few handy functions and macros. In detail: Added P-PUSH and P-POP. Improved btree efficiency by switching to a different data structure for the bindings. Instead of using a persistent cons for each key/ value pair, we now put the keys and values directly into the bnode vector. This speeds up most btree operations because it reduces persistent consing when adding new values and it reduces indirections when searching for keys. Renamed BTREE-NODE to BNODE, BTREE-NODE-INDEX to BNODE-BINDINGS, BTREE-NODE-INDEX-COUNT to BNODE-NR-BINDINGS, FIND-BINDING-IN-NODE to FIND-KEY-IN-NODE. Fix a missing argument bug in REMOVE-CLASS-INDEX. Added a LAZY-CACHE which just clears the entire hash table whenever the cache gets full. This improves memory usage, because the normal cache queue kept track of a lot of objects that for some reason couldn't be cleaned up by the implementation's garbage collector. Added the convenience macros RUCKSACK-DO-CLASS and RUCKSACK-DO-SLOT. Made RUCKSACK-DELETE-OBJECT an exported symbol of the RUCKSACK package. Fix a bug in TEST-NON-UNIQUE-BTREE: it should call CHECK-NON-UNIQUE-CONTENTS instead of CHECK-CONTENTS.
Version 0.1.15. Fixed a garbage collector bug reported by Sean Ross. When the garbage collector deletes object ids from the object table (because the objects are dead and we may want to reuse their ids later for other objects), it should also remove that object from the cache. If it doesn't, there's a possibility that the object id will be reused later for a new object and the cache wil still refer to the old in-memory object.
Version 0.1.14. Class and slot indexes now map directly to objects instead of object-ids. This fixes a bug where the garbage collector forgot to add all indexed objects to the root set. (Suggested by Sean Ross.) Increased default cache size to 100,000 objects.
Version 0.1.5: removed ^M line terminators from all source files (thanks to Attila Lendvai).
Get rid of the Lispworks specific PROCESS-A-SLOT-OPTION stuff and handle the slot options in a way that's compatible with AMOP. Remove INITARGS argument for UPDATE-PERSISTENT-INSTANCE-FOR-REDEFINED-CLASS, because it turns out to be unnecessary (see details in notes.txt) Add explanation to test-index-1a.lisp about the use of (eval-when (:compile-toplevel :load-toplevel :execute) ...) Replace *RUCKSACK* by RS in the test-*.lisp files.
The class and slot indexes were normal hash tables, but they should be persistent objects like everything else: I replaced them by btrees. Get PROCESS-LOCK and PROCESS-UNLOCK working on SBCL (thanks to Geoff Cant).
Do a FINISH-OUTPUT at the end of a transaction commit (suggested by Marco Baringer). Add :KEY-KEY and :VALUE-KEY initargs to btrees. Add some standard slot indexes. Add :UNIQUE initarg for persistent slots (not finished yet).
Use Erik Naggum's SANS function instead of REMF. (From Edi Weitz.)
Ensure unique transaction IDs (from Edi Weitz).
Replace free-list-full by free-list-empty. Fix bug in find-block. (From Edi Weitz)
Some more work towards getting a working GC. Also removed some dead code.
Finish CACHE-TOUCH-OBJECT patch (hopefully for real this time).
Let CACHE-TOUCH-OBJECT have an object instead of an object-id as parameter. (From Nikodemus Siivola.)
Some trivial CVS header changes.
Created Rucksack CVS repository on common-lisp.net.
This form allows you to request diffs between any two revisions of this file. For each of the two "sides" of the diff, select a symbolic revision name using the selection box, or choose 'Use Text Field' and enter a numeric revision.
|Powered by ViewVC 1.1.5|