(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>
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
use the <option>-H</option> option, see below).</para>
</listitem>
</varlistentry>
-
+
<VarListEntry>
<term><option>-H</option><replaceable>size</replaceable></term>
<indexterm><primary><option>-H</option></primary><secondary>RTS option</secondary></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>
</listitem>
</varlistentry>
</variablelist>
-
+
</sect2>
-
+
<sect2 id="rts-hooks">
<title>“Hooks” to change RTS behaviour</title>
<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>
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