SportModel To-Do List - Make page manager initialize pages to all zeros - remove fancy object initialization from alloc routines - java needs all fields to be zeroed, not just pointers - need to zero objects when copying occurs too - Implement weak ref support - new types - weak array - weak (open) hashtable - stack of objects with weak refs - on stack overflow, mark weak fields instead - if mark stack also overflows... ! - routine to drain weak ref stack (done at end of gc) - if object, use weak ref field descriptors - if array, null out unmarked objects - need heuristic for disposing them - wait for java 1.2 spec for sun.misc.WeakRef - Implement open hash-tables - needed? - must be primitive (with custom scavenge routine) because keys & values are intermixed in same object - Sort out public vs. private info in header files - Add ability to explicitly lock and unlock objects for JS - Make Mac deal with multiple segments - i.e. grow page and card tables - need to stop app threads at safe points (non write barrier boundaries) - need to not be in a piece of code holding the address of a page desc (a lock in gc) - Unix page manager - 16 and 64 bit support - Add splay trees to page manager to find clusters faster - profile for large-object intensive allocations - Add blacklist support to page manager - blacklist bit already set for pages - Figure out locking strategy - currently Collect0 is not protected! - need notion of "processor"? - VirtualAlloc/Free on a per-page basis is too frequent - institute large blocks in the page manager? - add a better caching strategy - add a memory pressure api - Change SMPage* to SMPageNum throughout - conservative references are being found to pages - these look like refs to the first object on the page - Implement demographic feedback mediated tenuring policy - Implement segmented arrays for win16 - not needed anymore with Greg's 32-bit win3.1? - Profiling - always more to do - Memory visualization tools - Add multi-processor support - introduce multiple youngest generations - need nspr notion of a "processor" to associate a youngest generation with (gating factor) - change allocation apis to specify a generation to allocate in - add allocation lock per youngest generation for concurrent allocation/collection - add lock for promotion to second generation during copying - fix write-barrier code to scan other youngest generation spaces for incoming pointers - Integration with EF - on gcbranch2 of ns/electricalfire - need build-time flag to determine whether class objects are scavenged or not - yes for EF - need union type for pointer/non-pointer? - low-order tag bit for pointers - only 31 bits of data! - unify with dereference operation - ambiguous field descriptors in class