[project @ 2004-08-08 17:26:26 by krasimir]
[ghc-hetmet.git] / ghc / docs / users_guide / runtime_control.sgml
index 8d7c895..b7668a0 100644 (file)
   (which vary, depending on how you compiled).</para>
 
   <para>NOTE: since GHC is itself compiled by GHC, you can change RTS
-  options in the compiler using the normal 
-  <literal>+RTS ... -RTS</literal> 
+  options in the compiler using the normal
+  <literal>+RTS ... -RTS</literal>
   combination.  eg. to increase the maximum heap
-  size for a compilation to 128M, you would add 
+  size for a compilation to 128M, you would add
   <literal>+RTS -M128m -RTS</literal>
   to the command line.</para>
 
@@ -98,7 +98,7 @@
     <variablelist>
 
       <varlistentry>
-       <term><option>-A</option><replaceable>size</replaceable></Term>
+       <term><option>-A</option><replaceable>size</replaceable></term>
        <indexterm><primary><option>-A</option></primary><secondary>RTS option</secondary></indexterm>
        <indexterm><primary>allocation area, size</primary></indexterm>
        <listitem>
           used by the garbage collector.  The allocation area
           (actually generation 0 step 0) is fixed and is never resized
           (unless you use <option>-H</option>, below).</para>
-         
+
          <para>Increasing the allocation area size may or may not
           give better performance (a bigger allocation area means
           worse cache behaviour but fewer garbage collections and less
       </varlistentry>
 
       <varlistentry>
-       <term><option>-F</option><replaceable>factor</replaceable></Term>
+       <term><option>-F</option><replaceable>factor</replaceable></term>
        <listitem>
          <indexterm><primary><option>-F</option></primary><secondary>RTS option</secondary></indexterm>
          <indexterm><primary>heap size, factor</primary></indexterm>
       </varlistentry>
 
       <varlistentry>
-       <term><option>-G</option><replaceable>generations</replaceable></Term>
+       <term><option>-G</option><replaceable>generations</replaceable></term>
        <indexterm><primary><option>-G</option></primary><secondary>RTS option</secondary></indexterm>
        <indexterm><primary>generations, number
        of</primary></indexterm>
          <para>Specifying 1 generation with <option>+RTS -G1</option>
           gives you a simple 2-space collector, as you would expect.
           In a 2-space collector, the <option>-A</option> option (see
-          above) specifies the <Emphasis>minimum</Emphasis> allocation
+          above) specifies the <emphasis>minimum</emphasis> allocation
           area size, since the allocation area will grow with the
           amount of live data in the heap.  In a multi-generational
           collector the allocation area is a fixed size (unless you
           use the <option>-H</option> option, see below).</para>
        </listitem>
       </varlistentry>
-      
-      <VarListEntry>
+
+      <varlistentry>
        <term><option>-H</option><replaceable>size</replaceable></term>
        <indexterm><primary><option>-H</option></primary><secondary>RTS option</secondary></indexterm>
        <indexterm><primary>heap size, suggested</primary></indexterm>
           <option>-A</option><replaceable>size</replaceable>.</para>
        </listitem>
       </varlistentry>
-      
+
       <varlistentry>
        <term><option>-k</option><replaceable>size</replaceable></term>
        <indexterm><primary><option>-k</option></primary><secondary>RTS option</secondary></indexterm>
        <indexterm><primary><option>-K</option></primary><secondary>RTS option</secondary></indexterm>
        <indexterm><primary>stack, maximum size</primary></indexterm>
        <listitem>
-         <para>&lsqb;Default: 1M&rsqb; Set the maximum stack size for
+         <para>&lsqb;Default: 8M&rsqb; Set the maximum stack size for
           an individual thread to <replaceable>size</replaceable>
           bytes.  This option is there purely to stop the program
           eating up all the available memory in the machine if it gets
 
       <varlistentry>
        <term><option>-s</option><replaceable>file</replaceable></term>
-       <term><option>-S</option><replaceable>file</replaceable></Term>
+       <term><option>-S</option><replaceable>file</replaceable></term>
        <indexterm><primary><option>-S</option></primary><secondary>RTS option</secondary></indexterm>
        <indexterm><primary><option>-s</option></primary><secondary>RTS option</secondary></indexterm>
        <listitem>
           (<option>-S</option>) garbage-collector statistics into file
           <replaceable>file</replaceable>. The default
           <replaceable>file</replaceable> is
-          <Filename><replaceable>program</replaceable>.stat</Filename>. The
+          <filename><replaceable>program</replaceable>.stat</filename>. The
           <replaceable>file</replaceable> <constant>stderr</constant>
           is treated specially, with the output really being sent to
           <constant>stderr</constant>.</para>
 
   </sect2>
 
-<!-- ---------------------------------------------------------------------- -->
   <sect2>
     <title>RTS options for profiling and Concurrent/Parallel Haskell</title>
 
-    <para>The RTS options related to profiling are described in <XRef
-    LinkEnd="prof-rts-options">; and those for concurrent/parallel
-    stuff, in <XRef LinkEnd="parallel-rts-opts">.</para>
+    <para>The RTS options related to profiling are described in <xref
+    linkend="rts-options-heap-prof"/>; and those for concurrent/parallel
+    stuff, in <xref linkend="parallel-rts-opts"/>.</para>
   </sect2>
 
-<!-- ---------------------------------------------------------------------- -->
   <sect2 id="rts-options-debugging">
     <title>RTS options for hackers, debuggers, and over-interested
     souls</title>
           be really useful, linked with suitable system libraries.
           Not a trivial undertaking: consult the installation guide on
           how to set things up for easy &ldquo;ticky-ticky&rdquo;
-          profiling.  For more information, see <XRef
-          LinkEnd="ticky-ticky">.</para>
+          profiling.  For more information, see <xref
+          linkend="ticky-ticky"/>.</para>
        </listitem>
       </varlistentry>
 
 </screen>
          <para>each <literal>cc</literal><subscript>i</subscript> is
          a cost centre in the program (see <xref
-         linkend="cost-centres">), and the sequence represents the
+         linkend="cost-centres"/>), and the sequence represents the
          &ldquo;call stack&rdquo; at the point the exception was
          raised.  The leftmost item is the innermost function in the
          call stack, and the rightmost item is the outermost
        </listitem>
       </varlistentry>
     </variablelist>
-    
+
   </sect2>
-  
+
   <sect2 id="rts-hooks">
     <title>&ldquo;Hooks&rdquo; to change RTS behaviour</title>
 
@@ -509,18 +507,9 @@ char *ghc_rts_opts = "-H128m -K1m";
     <variablelist>
 
       <varlistentry>
-       <term><Function>void ErrorHdrHook (FILE *)</function></term>
-       <indexterm><primary><function>ErrorHdrHook</function></primary></indexterm>
-       <listitem>
-         <para>What's printed out before the message from
-         <function>error</function>.</para>
-       </listitem>
-      </varlistentry>
-
-      <varlistentry>
        <term><function>void OutOfHeapHook (unsigned long, unsigned long)</function></term>
        <indexterm><primary><function>OutOfHeapHook</function></primary></indexterm>
-       <ListItem>
+       <listitem>
          <para>The heap-overflow message.</para>
        </listitem>
       </varlistentry>
@@ -537,38 +526,10 @@ char *ghc_rts_opts = "-H128m -K1m";
        <term><function>void MallocFailHook (long int)</function></term>
        <indexterm><primary><function>MallocFailHook</function></primary></indexterm>
        <listitem>
-         <para>The message printed if <Function>malloc</Function>
+         <para>The message printed if <function>malloc</function>
          fails.</para>
        </listitem>
       </varlistentry>
-
-      <varlistentry>
-       <term><function>void PatErrorHdrHook (FILE *)</function></term>
-       <indexterm><primary><function>PatErrorHdrHook</function></primary></indexterm>
-       <listitem>
-         <para>The message printed if a pattern-match fails (the
-          failures that were not handled by the Haskell
-          programmer).</para>
-       </listitem>
-      </varlistentry>
-
-      <varlistentry>
-       <term><function>void PreTraceHook (FILE *)</function></term>
-       <indexterm><primary><function>PreTraceHook</function></primary></indexterm>
-       <listitem>
-         <para>What's printed out before a <Function>trace</Function>
-         message.</para>
-       </listitem>
-      </varlistentry>
-
-      <varlistentry>
-       <term><function>void PostTraceHook (FILE *)</function></term>
-       <indexterm><primary><function>PostTraceHook</function></primary></indexterm>
-       <listitem>
-         <para>What's printed out after a <Function>trace</Function>
-         message.</para>
-       </listitem>
-      </varlistentry>
     </variablelist>
 
     <para>For examples of the use of these hooks, see GHC's own