JavaScript:ActionMonkey: Difference between revisions
Jump to navigation
Jump to search
(link problems page) |
(→Stage 0: add real plans) |
||
Line 13: | Line 13: | ||
== Stage 0 == | == Stage 0 == | ||
Replace SpiderMonkey's GC with Tamarin's GC (MMgc). | |||
* | * Use MMgc in non-incremental mode to start with. (It's easier. Avoid premature optimization.) | ||
* Either get SpiderMonkey to build as C++, or write a C wrapper for MMgc. | |||
* Convince the SpiderMonkey and Tamarin build systems to cooperate. | |||
* Examine the few places where SpiderMonkey is directly using malloc() and free(). | |||
* Align SpiderMonkey's jsval type and related macros with MMgc's Atom type. | |||
* Align SpiderMonkey's notion of GC roots with MMgc's GCRoots. | |||
* Replace SpiderMonkey's memory management routines with MMgc's. | |||
At the end of this stage, the work will show up somewhere on hg.mozilla.org (TBD); for now jorendorff is working in a fork of hg.mozilla.org/mozilla-central. | |||
[[JavaScript:ActionMonkey problems|potential problems]] | |||
== Stage 1 == | == Stage 1 == | ||
== Stage 2 == | == Stage 2 == |
Revision as of 14:12, 23 June 2007
Intro
ActionMonkey is the code-name for the project to integrate Tamarin and SpiderMonkey as part of Mozilla 2. The goals are:
- Preservation (with necessary additions and as few deletions as possible) of jsapi.h.
- SpiderMonkey's thread safety and property tree integrated/reimplemented in Tamarin.
- Replacement of SpiderMonkey's decompiler with a better decompiler that can work with ABC.
- Replacement of SpiderMonkey's GC with Tamarin:MMgc, evolved as needed.
- Replacement of SpiderMonkey's interpreter by an evolved version of Tamarin's.
- Advanced JIT optimization for hot paths and untyped code, inspired by Trace Trees.
- Information flow VM support for better security models.
Stage 0
Replace SpiderMonkey's GC with Tamarin's GC (MMgc).
- Use MMgc in non-incremental mode to start with. (It's easier. Avoid premature optimization.)
- Either get SpiderMonkey to build as C++, or write a C wrapper for MMgc.
- Convince the SpiderMonkey and Tamarin build systems to cooperate.
- Examine the few places where SpiderMonkey is directly using malloc() and free().
- Align SpiderMonkey's jsval type and related macros with MMgc's Atom type.
- Align SpiderMonkey's notion of GC roots with MMgc's GCRoots.
- Replace SpiderMonkey's memory management routines with MMgc's.
At the end of this stage, the work will show up somewhere on hg.mozilla.org (TBD); for now jorendorff is working in a fork of hg.mozilla.org/mozilla-central.