Home My Page Projects Code Snippets Project Openings SML/NJ
Summary Activity Forums Tracker Lists Tasks Docs Surveys News SCM Files

SCM Repository

[smlnj] Diff of /sml/trunk/src/cm/Doc/05-classes.tex
ViewVC logotype

Diff of /sml/trunk/src/cm/Doc/05-classes.tex

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 756, Thu Dec 14 16:01:33 2000 UTC revision 838, Tue Jun 5 19:10:21 2001 UTC
# Line 77  Line 77 
77    
78  \subsubsection{Parameters for class {\tt sml}}  \subsubsection{Parameters for class {\tt sml}}
79    
80  The {\tt sml} class accepts two optional parameters.  One is the {\em  The {\tt sml} class accepts three optional parameters.  One is the {\em
81  sharing annotation} that was explained earlier (see  sharing annotation} that was explained earlier (see
82  Section~\ref{sec:sharing}).  The sharing annotation must be one of the  Section~\ref{sec:sharing}).  The sharing annotation must be one of the
83  two strings {\tt shared} and {\tt private}.  If {\tt shared} is  two strings {\tt shared} and {\tt private}.  If {\tt shared} is
# Line 87  Line 87 
87  that dynamic state cannot be shared across such calls to {\tt CM.make}  that dynamic state cannot be shared across such calls to {\tt CM.make}
88  or {\tt CM.autoload}.  or {\tt CM.autoload}.
89    
90  The other possible parameter for class {\tt sml} is a sub-option  The second possible parameter for class {\tt sml} is a sub-option
91  list labeled {\tt setup} and can be used to specify code that will be  list labeled {\tt setup} and can be used to specify code that will be
92  executed just before and just after the compiler is invoked for the  executed just before and just after the compiler is invoked for the
93  ML source file.  Code to be executed before compilation is labeled  ML source file.  Code to be executed before compilation is labeled
# Line 119  Line 119 
119  to them, and neither can code that in the future might be entered at  to them, and neither can code that in the future might be entered at
120  top level.  top level.
121    
122    Finally, the third possible parameter for class {\tt sml} is a
123    sub-option labelled {\tt lambdasplit}.  It controls the cross-module
124    inlining mechanism of SML/NJ.\footnote{The label is named after the
125    technique (``$\lambda$-splitting''~\cite{blume97:lsplit}) used to
126    achieve the effect of cross-module inlining.}  The value of the option
127    can either be a non-negative decimal integer or one of the following
128    words: {\tt default}, {\tt on}, {\tt off}, or {\tt infinity}.  The
129    effect of this parameter also depends on a system-wide setting
130    (accessible via structure {\tt Compiler.Control.LambdaSplitting}).
131    In the following table, the per-file {\tt lambdasplit} parameter is
132    shown at the top and the system-wide default is shown on the left
133    side.  Table entries show the combined effect of the two: -1
134    means ``no inlinable exports from this file'', $\infty$ means
135    ``as many inlinable exports as possible'', and a non-negative numeric
136    value specifies some intermediate ``aggressiveness'' of the splitting
137    engine.
138    
139    \begin{center}
140    \begin{tabular}{r||l|l|l|l|l}
141                 & {\tt default} & {\tt on} & {\tt off} & {\tt infinity} & $n$ \\
142    \hline \hline
143    {\tt Off}    & $-1$          & $-1$     & $-1$      & $-1$           & $-1$ \\
144    \hline
145    {\tt Default NONE } & $-1$   & $0$      & $-1$      & $\infty$       & $n$ \\
146    \hline
147    {\tt Default (SOME $m$)} & $m$ & $m$    & $-1$      & $\infty$       & $n$
148    \end{tabular}
149    \end{center}
150    
151  \subsubsection{Parameters for class {\tt cm}}  \subsubsection{Parameters for class {\tt cm}}
152  \label{sec:toolparam:cm}  \label{sec:toolparam:cm}
153    

Legend:
Removed from v.756  
changed lines
  Added in v.838

root@smlnj-gforge.cs.uchicago.edu
ViewVC Help
Powered by ViewVC 1.0.0