<commit_before><?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:include href="to_latex.xsl"/>
<xsl:output method="text" indent="no"/>

<xsl:template match="/">
\documentclass{article}
\usepackage{fullpage}
\usepackage{html}

\title{Soot phase options}
\author{<NAME> (\htmladdnormallink{<EMAIL>}{mailto:<EMAIL>})\\
<NAME> (\htmladdnormallink{<EMAIL>}{mailto:<EMAIL>})\\
Ond\v{r}<NAME> (\htmladdnormallink{<EMAIL>}{mailto:<EMAIL>})\\
}

\begin{document}

\maketitle

Soot supports the powerful, but initially confusing, notion of ``phase
options''.  This document aims to clear up the confusion so you can
exploit the power of phase options.

Soot's execution is divided into a number of phases.  For example,
{\tt JimpleBody}s are built by a phase called {\tt jb}, which is
itself comprised of subphases, such as the aggregation of stack
variables ({\tt jb.asv}).

Phase options provide a way for you to
change the behaviour of a phase from the Soot command-line.  They take
the form {\tt -p {\em phase}.{\em name} 
{\em option}:{\em value}}.  For instance,
to instruct Soot to use original names in Jimple, we would invoke Soot
like this:
\begin{verbatim}
java soot.Main foo -p jb use-original-names:true
\end{verbatim}
Multiple option-value pairs may be specified in a single {\tt -p} option
separated by commas. For example,
\begin{verbatim}
java soot.Main foo -p cg.spark verbose:true,on-fly-cg:true
\end{verbatim}

There are five types of phase options. Boolean options take the values
``true'' and ``false''; if no value is specified, ``true'' is assumed.
Multi-valued options have a set of valid values. Integer options
take a value that is an integer. Floating point options take a 
floating point number as their value. String options take an arbitrary<commit_msg>Changed appearance of jb.asv back to jb.a1 (reinstating a correction that I undid in my previous commit), and removed the not necessarily accurate reference to stack variables.<commit_after><?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:include href="to_latex.xsl"/>
<xsl:output method="text" indent="no"/>

<xsl:template match="/">
\documentclass{article}
\usepackage{fullpage}
\usepackage{html}

\title{Soot phase options}
\author{<NAME> (\htmladdnormallink{<EMAIL>}{mailto:<EMAIL>})\\
<NAME> (\htmladdnormallink{<EMAIL>}{mailto:<EMAIL>})\\
Ond\v{r}<NAME> (\htmladdnormallink{<EMAIL>}{mailto:<EMAIL>})\\
}

\begin{document}

\maketitle

Soot supports the powerful, but initially confusing, notion of ``phase
options''.  This document aims to clear up the confusion so you can
exploit the power of phase options.

Soot's execution is divided into a number of phases.  For example,
{\tt JimpleBody}s are built by a phase called {\tt jb}, which is
itself comprised of subphases, such as the aggregation of local
variables ({\tt jb.a1}).

Phase options provide a way for you to
change the behaviour of a phase from the Soot command-line.  They take
the form {\tt -p {\em phase}.{\em name} 
{\em option}:{\em value}}.  For instance,
to instruct Soot to use original names in Jimple, we would invoke Soot
like this:
\begin{verbatim}
java soot.Main foo -p jb use-original-names:true
\end{verbatim}
Multiple option-value pairs may be specified in a single {\tt -p} option
separated by commas. For example,
\begin{verbatim}
java soot.Main foo -p cg.spark verbose:true,on-fly-cg:true
\end{verbatim}

There are five types of phase options. Boolean options take the values
``true'' and ``false''; if no value is specified, ``true'' is assumed.
Multi-valued options have a set of valid values. Integer options
take a value that is an integer. Floating point options take a 
floating point number as their value. String options take an arbitrary
{'fraction_non_alphanumeric': 0.12150982419855222, 'fraction_numerical': 0.0077559462254395035, 'mean_word_length': 4.879939209726444, 'pattern_counts': {'":': 0, '<': 31, '<?xml version=': 2, '>': 31, 'https://': 0, 'lorem ipsum': 0, 'www.': 2, 'xml': 4}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '4794885', 'n_tokens_mistral': 1266, 'n_tokens_neox': 1199, 'n_words': 479}