638
edits
(update) |
|||
| Line 43: | Line 43: | ||
== Stage 0 == | == Stage 0 == | ||
Replace SpiderMonkey's GC with Tamarin's GC (MMgc). See | Replace SpiderMonkey's GC with Tamarin's GC (MMgc). This part is done at last! See the ActionMonkey Stage 0 tracking bug, {{bug|387012}}. | ||
With MMgc's conservative stack scanning, a whole lot of SpiderMonkey's weirder "features" have become unnecessary. Weak roots and newborn roots ({{bug|388622}}), local root scopes ({{bug|397041}}), and "extra" args ({{bug|391676}}; see also {{bug|397239}}) are no longer used in SpiderMonkey. Most uses of <code>TempValueRooter</code> have also been deleted ({{bug|391676}}). Some of these features will stick around, because they are public via the JSAPI, and legacy code is using them. Others, like newborn roots, weak roots, and certain <code>TempValueRooter</code> features, are completely gone. | |||
== Stage 1 == | == Stage 1 == | ||
Integrate SpiderMonkey | Integrate SpiderMonkey more closely with MMgc, and get MMgc ready for XPCOM work. See the ActionMonkey Stage 1 tracking bug, {{bug|393023}}. (Under "Depends on", you can see a list of bugs slated for stage 1.) | ||
Stage 1 work includes: | Stage 1 work includes: | ||
* {{bug|391676}} - Remove stack TempValueRooters - ''Done.'' | |||
* {{bug|392602}} - Fix ActionMonkey Firefox build - ''Done.'' | |||
* {{bug|392882}} - Disable OJI (LiveConnect) in mozilla-central - ''Done.'' | |||
* {{bug|397080}} - Remove unnecessary local scope roots - ''Done.'' | |||
* {{bug|392883}} - Get rid of js_GetGCThingFlags. | * {{bug|392883}} - Get rid of js_GetGCThingFlags. | ||
** The type bits: use the C++ vtable, maybe. (Note: The cycle collector sneakily uses these, in <tt>nsXPConnect.cpp</tt>; it will be changed.) | ** The type bits: use the C++ vtable, maybe. (Note: The cycle collector sneakily uses these, in <tt>nsXPConnect.cpp</tt>; it will be changed.) | ||
| Line 57: | Line 63: | ||
** The <code>GCF_MUTABLE</code> bit: move into <code>JSString</code>. Already done in CVS trunk. | ** The <code>GCF_MUTABLE</code> bit: move into <code>JSString</code>. Already done in CVS trunk. | ||
** The <code>GCF_SYSTEM</code> bit: To be determined. | ** The <code>GCF_SYSTEM</code> bit: To be determined. | ||
* {{bug|394297}} - Remove gcThingFlags | |||
* {{bug| | * {{bug|397239}} - Remove "extra" parameter to JS_FN | ||
* {{bug|397041}} - Make MMgc thread-safe (as a compile-time option) | |||
* {{bug| | * {{bug|392883}} - Implement a new heuristic for JS_MaybeGC | ||
edits