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
        
