js/src/devtools/rootAnalysis/README.txt

changeset 0
6474c204b198
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/js/src/devtools/rootAnalysis/README.txt	Wed Dec 31 06:09:35 2014 +0100
     1.3 @@ -0,0 +1,39 @@
     1.4 +This directory contains scripts and a makefile for running Brian Hackett's
     1.5 +static GC rooting analysis on a JS source directory.
     1.6 +
     1.7 +To use it:
     1.8 +
     1.9 +1. Download and compile sixgill. Make sure the gcc plugin is enabled. (The
    1.10 +   configure output will tell you.)
    1.11 +
    1.12 +  - [sfink] I needed a couple of patches to get it work on Fedora 16/17/18.
    1.13 +    Ask me if you need them.
    1.14 +
    1.15 +2. Compile an optimized JS shell that includes the patch at
    1.16 +   <http://people.mozilla.org/~sfink/data/bug-835552-cwd-snarf>. This does not
    1.17 +   need to be in the same source tree as you are running these scripts from.
    1.18 +   Remember the full path to the resulting JS binary; we'll call it $JS_SHELL
    1.19 +   below.
    1.20 +
    1.21 +3. |make clean| in the objdir of the JS source tree that you're going to be
    1.22 +   analyzing. (These analysis scripts will default to the tree they are within,
    1.23 +   but you can point them at another tree.)
    1.24 +
    1.25 +4. in $objdir/js/src/devtools/analysis, |make JS=$JS_SHELL
    1.26 +   SIXGILL=.../path/to/sixgill...|. You may need one or more of the following
    1.27 +   additional settings in addition to the |JS| already given:
    1.28 +
    1.29 +   - JSOBJDIR: if you are analyzing a different source tree, set this to the
    1.30 +     objdir of the tree you want to analyze.
    1.31 +
    1.32 +   - ANALYSIS_SCRIPT_DIR: by default, the *.js files within the directory
    1.33 +     containing this README will be used, but you can point to a different
    1.34 +     directory full. At the time of this writing, there are some changes not in
    1.35 +     bhackett's git repo that are necessary, and you'll also need the
    1.36 +     gen-hazards.sh shell script.
    1.37 +
    1.38 +   - JOBS: set this to the number of parallel jobs you'd like to run the final
    1.39 +     analysis pass with. This defaults to 6, somewhat randomly, which gave me a
    1.40 +     large speedup even on a machine with only 2 cores.
    1.41 +
    1.42 +The results will be in rootingHazards.txt

mercurial