Mozilla 2/2008Q2 Goals

From MozillaWiki
Jump to: navigation, search

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