Exact stack rooting is now enabled by default on desktop builds of firefox.

What this Means
===============
SpiderMonkey will no longer scan the stack for live roots; you must now
wrap all GC thing pointers that live on the stack across a GC in the
JS::Rooted template for SpiderMonkey to see them. See the comments in
js/public/RootingAPI.h and the guide on the developer wiki[1] for
further details. All currently existing instances in the browser build
have been updated; the hazard analysis build on TBPL, SM(Hf), will catch
any future pushes that break this invariant.

Why Do We Need This
===================
Exact rooting is required for us to use GC algorithms that relocate
objects in memory. It will allow us to implement compacting GC to save
memory and generational GC to push our performance to the next level.

Fixing SM(Hf) Failures
======================
If you do happen to introduce a rooting issue, the SM(Hf) build will
help you track it down and fix it. SM(Hf) runs on all pushes that feed
into m-c and is available in the default set that is run on try. It is
also available individually through the Try Chooser as "browser rooting
analysis" (-p linux64-br-haz).

Once the build is complete and has reported a failure, click on the
|results| link in the lower right pane of tbpl, then click on
hazards.txt.gz to get the list. Each hazard report includes the name of
the problematic variable, the call that might GC, including the file and
line number, and the live range of the unrooted variable in question.
Please read the wiki guide[2] or ask in #jsapi if you have any questions.


Thanks to everyone who helped the project get to this point! In the next
few weeks we'll be getting the hazard analysis running on mobile and b2g
and deploying exact rooting on our remaining platforms.

Cheers,
Terrence

1- https://developer.mozilla.org/en-US/docs/SpiderMonkey/GC_Rooting_Guide
2- https://wiki.mozilla.org/Javascript:SpiderMonkey:ExactStackRooting
_______________________________________________
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform

Reply via email to