Update of /project/elephant/cvsroot/elephant In directory common-lisp:/tmp/cvs-serv1832
Modified Files: TODO Log Message:
Updated TODO list. Minor tweak in indexing.
--- /project/elephant/cvsroot/elephant/TODO 2006/02/10 01:39:12 1.11 +++ /project/elephant/cvsroot/elephant/TODO 2006/02/14 15:31:09 1.12 @@ -7,16 +7,11 @@ 0.6.0 - Adding default class/slot indexing - Finish indexing tests (Ian) - Documentation update (Robert) -- Add a class-indexing class option to the metaclass so we can maintain class instances - index without any secondary indices or indexed slots (Ian) -- Add :inverse-reader to slot options to create a named method that indexes into objects - based on slot values. Is this a GF or defun? Do we dispatch on class name or bake it in?
0.6.1 - performance, safety and portability
Stability: - Add clsql like support for building .so/.dylib from asdf loader on most systems -- Port elephant to closer-to-MOP to make it easier to support additional lisps (Both) - Cleanup multi-repository operation (ensure that conflicts between an object's registry and *store-controller* does not leed to lockup, especially with BDB (Both) - Think through default vs. explicit store referencing all over the APIs (Both) @@ -28,19 +23,32 @@ in user code. (Both) - BDB: determine how to detect deadlock conditions as an optional run-safe mode? (?) Does BDB have timeouts enabled on select? (Ian) +- Fix backend dependency problems (missing functions with-transaction-sql, etc) + caused by not having clsql loaded. Backends should not cause such failures + and should use asdf to load their deps when the backends are instantiated; much + like clsql does now +- Remove build gensym warnings +- Port elephant to closer-to-MOP to make it easier to support additional lisps (Both) - (From Ben's e-mail) We are storing persistent objects incorrectly. They should be stored only as OIDs, and we should have a separate OID->class table. This way - change-class can be handled correctly (Ian) + change-class can be handled correctly (Ian) ???
Performance: - Metering and understanding locking issues. Large transactions seem to use a lot of locks. In general understanding how to use Sleepycat - efficiently seems like a good thing. (Both) + efficiently seems like a good thing. (From Ben) - Reclaim table storage on index drop (Ian) - Higher performance fix for allegro unicode serialization workaround than my current one (Ian) +- Add dependency information into secondary index callback functions so that + we can more easily compute which indices need to be updated to avoid the + global remove/add in order to maintain consistency (Ian)
Indexing features: +- Add a class-indexing class option to the metaclass so we can maintain class instances + index without any secondary indices or indexed slots (Ian) +- Add :inverse-reader to slot options to create a named method that indexes into objects + based on slot values. Is this a GF or defun? Do we dispatch on class name or bake it in? - On class change, new slots should have their initform values pushed into the slot value as if the slot was being created the first time (currently this doesn't happen) (Ian) @@ -50,9 +58,6 @@
0.6.3 - Query & indexing expansion - simple object query language (Ian - orthogonal, on main branch) - - Add dependency information into secondary index callback functions so that - we can more easily compute which indices need to be updated to avoid the - global remove/add in order to maintain consistency (Ian) - Add needed support (if any) for persistent graph structures & queries (Ian on a branch)
0.6.4 - Compliance & Documentation @@ -69,8 +74,9 @@ (a simple REPL tool to see what classes are in a repository and what state they're in...useful for long-lived repositories)
-0.6.4 - Additional datastructures? - - Support for cheap persistent sets (ala ACache) +0.6.5 - Additional datastructures? + - Native BDB persistent hashes (easy; can do on SQL backends?) + - Support for cheap persistent sets (medium? can do on SQL?)
Some placeholders & dreams features below... :)