JavaScript:ActionMonkey: Difference between revisions

Jump to navigation Jump to search
update
(update)
Line 43: Line 43:
== Stage 0 ==
== Stage 0 ==


Replace SpiderMonkey's GC with Tamarin's GC (MMgc).  See [[JavaScript:ActionMonkey:Stage 0 Whiteboard]].
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 and Mozilla DOM more closely with MMgc.  See the ActionMonkey Stage 1 tracking bug, {{bug|393023}}.  (Under "Depends on", you can see a list of bugs slated for stage 1.)
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|388622}} and {{bug|391676}} - Drop weak roots, newborns, and local root scopes (if they're not already gone in stage 0).  These will be replaced by MMgc's conservative stack scanning.
* {{bug|397239}} - Remove "extra" parameter to JS_FN
 
* {{bug|397041}} - Make MMgc thread-safe (as a compile-time option)
* {{bug|393034}} - Start allocating Mozilla DOM objects using MMgc.
* {{bug|392883}} - Implement a new heuristic for JS_MaybeGC
638

edits

Navigation menu