Mozilla 2/2008Q2 Goals
From MozillaWiki
These are the Mozilla 2 team goals for Q2 2008:
Memory
- In jemalloc, implement no-fail OOM by default and a separate can-fail allocator API: see Mozilla 2/Memory
- Implement the automatic-rewriting pass to get rid of null-checks for OOM. NOTE: this doesn't mean we will actually land the patch this quarter; that depends on identifying "large allocations" and exempting them from the normal rules
- jemalloc+GC API design complete, see GC_API
- In jemalloc, implement data structures and algorithms needed by the GC (bug 427231).
Automatic Rewriting/Analysis
- Extend dehydra to all C dialects (bug 421097).
- Finish dehydra and deploy on debug+leak tinderboxes, linux and mac (bug 425215, bug 421095, et al)
- See OOM goal above
- GCC summit presentation and continuing GCC community involvement
- Release Dehydra 1.0 and Pork
ActionMonkey
- Finish ActionMonkey Stage 2 by the end of April bug 411563. (The big wild card is the "no speed regression" requirement.)
- Get the ActionMonkey tinderboxen green, and the browser functional in actionmonkey branch, and keep them that way.
- Merge Tamarin Central's GC into Tamarin Tracing (bug 409021).
- Replace Tamarin Central with Tamarin Tracing in ActionMonkey (bug 425818).
- Understand both SpiderMonkey and Tamarin-tracing object representation, including consequences for speed, memory usage, security, and host objects (embedding-defined object types—how they are defined, how they interact with the VM). This is a tall order but seems like a prerequisite to the rest.
- Merge SpiderMonkey's string optimizations into Tamarin Tracing (bug 427154).
- stretch goal: Merge SpiderMonkey's property tree optimization into Tamarin Tracing (bug 427151).
XPCOMGC
- Finish analysis passes
- Finalizer safety
- pointer/storage annotations
- Browser running mostly-correctly, and gather performance/memory statistics
ES4 RI and Spec
These should be marked with ES4 ticket links as tickets are entered.
- RI: Merge new type normalizer to trunk, track any changes to valleyscript
- RI: Teach trunk to memoize type calculations, recovering some of the speed lost in previous step
- RI: Complete and merge all feature-cut branches to trunk, tracking spec changes
- RI: Transfer project hosting to hg
- Spec/RI: key remainder task from Q1, determine and codify package/namespace relationship
- Spec: reach consensus on the fate of decimal arithmetic
- RI: Implement new concept of runtime strict mode
- RI: Implement changes to const and object literals
- RI: Implement changes to array/tuple types