Update of /project/elephant/cvsroot/elephant In directory clnet:/tmp/cvs-serv26319
Modified Files: TODO Log Message: Fix to slot-makunbound handling for indexed slots and a regression test to validate
--- /project/elephant/cvsroot/elephant/TODO 2007/02/21 04:47:41 1.56 +++ /project/elephant/cvsroot/elephant/TODO 2007/02/21 06:29:31 1.57 @@ -37,8 +37,7 @@ - Unicode tests - Test with UTF-16 and UTF-32 strings (construct with char-code?) - Ensure that variable length UTF-8 is automatically stored as UTF-16 -- Map tests -- Class index sychronization tests +- Class / DB sychronization tests
TASKS TO GET TO FINAL RELEASE:
@@ -61,6 +60,8 @@ Major Bugs: x Derived indices fail to re-connect after reopening a database under :class synchronization policy (Ian) x Package translation to properly upgrade databases where packages were renamed (Robert) +x Fix a bug where slot-makunbound on a persistent object failed to remove secondary index references + for class and slot indices. Made a test to validate this.
Minor Bugs: x Enable with-transactions to properly process forms returning multiple values (Ian) @@ -71,6 +72,9 @@
Feature tweaking: x Orthogonal feature addition: map-index, map-class and map-instances to avoid consing (Ian) +x Tests to validate new map interfaces on top of existing tests + +DEVELOPMENT CHECKINS:
February 13-17th, 2007: x Allow checkpoint of BDB via db-bdb::checkpoint @@ -157,6 +161,10 @@ Storage and Indexing: - 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? +- If a class inherits an indexed slot, is it also indexed for that class? This means a + proliferation of indexes, or requires user to explicitly add an index as a derived slot. +- What if we want an index to index into a range of different subclasses or objects sharing + a generic function? (roll your own?) - Reclaim table storage on index drop? It's nice to be able to reconnect sometimes! Perhaps an API command that allows explicit dropping of tables for a class and a policy parameter that determines if this is the default? @@ -177,16 +185,18 @@ global remove/add in order to maintain consistency (Ian)
Design: + - Move secondary index maintenance to backend; decison on how to call update fn's + Will make lisp backend cheaper due to ability to life tree manipulation ops - Use SWIG and CFFI to better track changes in defconstant? (too expensive to be useful) - Evaluate porting elephant to closer-to-MOP to make it easier to support additional lisps and to seriously clean up metaclasses.lisp and classes.lisp protocols (no love on first attempt) - (log these in Track; not part of 0.6.2) - - Serious work to integrate a proper condition system and potential restarts + - Work to integrate a proper condition system and potential restarts for various errors (especially recoverable ones) while accessing db data - deserialize fubar / diagnose & return value - missing package / add package/symbol translation - others? + (log these in Track; not part of 0.6.2?)
Features: - Backup function: allow users to specify a backup function to archive the database contents