Parent Directory | Revision Log
|Links to HEAD:||(view) (annotate)|
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.5: removed ^M line terminators from all source files (thanks to Attila Lendvai).
rucksack 0.1.4 * add new parameter *collect-garbage-on-commit* * add (:inhibit-gc nil) keyword arg to with-transaction * add without-rucksack-gcing macro * only collect garbage on transaction-commit when *collect-garbage-on-commit* is not nil
Take care of some differences between the MOP implementations of Lispworks and SBCL. Lispworks doesn call (SETF SLOT-VALUE-USING-CLASS) in SHARED-INITIALIZE, but SBCL does. Lispworks calls FINALIZE-INHERITANCE after a class is redefined and a new instance is created, but SBCL doesn't. All tests now work for Lispworks (5.0) and SBCL (0.9.16). Some work on a copying GC.
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).
Add a SERIAL-TRANSACTION-RUCKSACK-CLASS that allows for only one transaction at a time (by using a transaction lock). Don't do any GC at all while a transaction is writing objects to disk. Instead we keep track of the amount of disk space allocated by the committing transaction. Then we do a (partial) GC immediately after committing the transaction.
Add a flag to MARK-AND-SWEEP-HEAP to prevent recursive GC calls.
Fix bugs in BTREE-DELETE and SPLIT-BTREE-NODE. Rename BTREE-DELETE to BTREE-DELETE-KEY and implement BTREE-DELETE for btrees with non-unique keys. Add stress test for btrees. Implement the :MIN, :MAX, :INCLUDE-MIN, :INCLUDE-MAX and :ORDER arguments for BTREE-MAP. Add some more CL mirror functions like P-MAPCAR, P-MAPC, P-DELETE-IF, etcetera.
Let SETF functions give correct return values. (From Edi Weitz.)
Let heap grow more slowly after a garbage collection (from Edi Weitz).
Make sure that MAX-HEAP-END is always an integer (from Edi Weitz).
Replace free-list-full by free-list-empty. Fix bug in find-block. (From Edi Weitz)
Fixed enough garbage collector bugs to get the TEST-CREATE, TEST-LOAD and TEST-UPDATE functions running.
Some more garbage collector fixes.
Remove wrong comment.
Some more work towards getting a working GC. Also removed some dead code.
Fix an obsolete comment.
Added a WITH-TRANSACTION to TEST-LOAD and TEST-UPDATE. Changed BLOCK-ALIVE-P: it's now too conservative instead of not conservative enough. This still needs fixing.
Adapt SWEEP-SOME-HEAP-BLOCKS to new object layout (fix from Edi Weitz).
Fix bug in garbage collector where max-heap-size sometimes isn't initialized (from Edi Weitz).
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|