<variablelist>
<varlistentry>
- <term><option>-ddump-</option><replaceable>pass</replaceable></term>
- <indexterm><primary><option>-ddump</option> options</primary></indexterm>
+ <term>
+ <option>-ddump-</option><replaceable>pass</replaceable>
+ <indexterm><primary><option>-ddump</option> options</primary></indexterm>
+ </term>
<listitem>
<para>Make a debugging dump after pass
<literal><pass></literal> (may be common enough to need
<variablelist>
<varlistentry>
- <term><option>-ddump-parsed</option>:</term>
+ <term>
+ <option>-ddump-parsed</option>:
+ <indexterm><primary><option>-ddump-parsed</option></primary></indexterm>
+ </term>
<listitem>
<para>parser output</para>
</listitem>
</varlistentry>
<varlistentry>
- <term><option>-ddump-rn</option>:</term>
+ <term>
+ <option>-ddump-rn</option>:
+ <indexterm><primary><option>-ddump-rn</option></primary></indexterm>
+ </term>
<listitem>
<para>renamer output</para>
</listitem>
</varlistentry>
<varlistentry>
- <term><option>-ddump-tc</option>:</term>
+ <term>
+ <option>-ddump-tc</option>:
+ <indexterm><primary><option>-ddump-tc</option></primary></indexterm>
+ </term>
<listitem>
<para>typechecker output</para>
</listitem>
</varlistentry>
<varlistentry>
- <term><option>-ddump-types</option>:</term>
+ <term>
+ <option>-ddump-types</option>:
+ <indexterm><primary><option>-ddump-types</option></primary></indexterm>
+ </term>
<listitem>
<para>Dump a type signature for each value defined at
the top level of the module. The list is sorted
</varlistentry>
<varlistentry>
- <term><option>-ddump-deriv</option>:</term>
+ <term>
+ <option>-ddump-deriv</option>:
+ <indexterm><primary><option>-ddump-deriv</option></primary></indexterm>
+ </term>
<listitem>
<para>derived instances</para>
</listitem>
</varlistentry>
<varlistentry>
- <term><option>-ddump-ds</option>:</term>
+ <term>
+ <option>-ddump-ds</option>:
+ <indexterm><primary><option>-ddump-ds</option></primary></indexterm>
+ </term>
<listitem>
<para>desugarer output</para>
</listitem>
</varlistentry>
<varlistentry>
- <term><option>-ddump-spec</option>:</term>
+ <term>
+ <option>-ddump-spec</option>:
+ <indexterm><primary><option>-ddump-spec</option></primary></indexterm>
+ </term>
<listitem>
<para>output of specialisation pass</para>
</listitem>
</varlistentry>
<varlistentry>
- <term><option>-ddump-rules</option>:</term>
+ <term>
+ <option>-ddump-rules</option>:
+ <indexterm><primary><option>-ddump-rules</option></primary></indexterm>
+ </term>
<listitem>
<para>dumps all rewrite rules (including those generated
by the specialisation pass)</para>
</varlistentry>
<varlistentry>
- <term><option>-ddump-simpl</option>:</term>
+ <term>
+ <option>-ddump-simpl</option>:
+ <indexterm><primary><option>-ddump-simpl</option></primary></indexterm>
+ </term>
<listitem>
<para>simplifer output (Core-to-Core passes)</para>
</listitem>
</varlistentry>
<varlistentry>
- <term><option>-ddump-inlinings</option>:</term>
+ <term>
+ <option>-ddump-inlinings</option>:
+ <indexterm><primary><option>-ddump-inlinings</option></primary></indexterm>
+ </term>
<listitem>
<para>inlining info from the simplifier</para>
</listitem>
</varlistentry>
<varlistentry>
- <term><option>-ddump-usagesp</option>:</term>
+ <term>
+ <option>-ddump-usagesp</option>:
+ <indexterm><primary><option>-ddump-usagesp</option></primary></indexterm>
+ </term>
<listitem>
<para>UsageSP inference pre-inf and output</para>
</listitem>
</varlistentry>
<varlistentry>
- <term><option>-ddump-cpranal</option>:</term>
+ <term>
+ <option>-ddump-cpranal</option>:
+ <indexterm><primary><option>-ddump-cpranal</option></primary></indexterm>
+ </term>
<listitem>
<para>CPR analyser output</para>
</listitem>
</varlistentry>
<varlistentry>
- <term><option>-ddump-stranal</option>:</term>
+ <term>
+ <option>-ddump-stranal</option>:
+ <indexterm><primary><option>-ddump-stranal</option></primary></indexterm>
+ </term>
<listitem>
<para>strictness analyser output</para>
</listitem>
</varlistentry>
<varlistentry>
- <term><option>-ddump-cse</option>:</term>
+ <term>
+ <option>-ddump-cse</option>:
+ <indexterm><primary><option>-ddump-cse</option></primary></indexterm>
+ </term>
<listitem>
<para>CSE pass output</para>
</listitem>
</varlistentry>
<varlistentry>
- <term><option>-ddump-workwrap</option>:</term>
+ <term>
+ <option>-ddump-workwrap</option>:
+ <indexterm><primary><option>-ddump-workwrap</option></primary></indexterm>
+ </term>
<listitem>
<para>worker/wrapper split output</para>
</listitem>
</varlistentry>
<varlistentry>
- <term><option>-ddump-occur-anal</option>:</term>
+ <term>
+ <option>-ddump-occur-anal</option>:
+ <indexterm><primary><option>-ddump-occur-anal</option></primary></indexterm>
+ </term>
<listitem>
<para>`occurrence analysis' output</para>
</listitem>
</varlistentry>
<varlistentry>
- <term><option>-ddump-sat</option>:</term>
+ <term>
+ <option>-ddump-sat</option>:
+ <indexterm><primary><option>-ddump-sat</option></primary></indexterm>
+ </term>
<listitem>
<para>output of “saturate” pass</para>
</listitem>
</varlistentry>
<varlistentry>
- <term><option>-ddump-stg</option>:</term>
+ <term>
+ <option>-ddump-stg</option>:
+ <indexterm><primary><option>-ddump-stg</option></primary></indexterm>
+ </term>
<listitem>
<para>output of STG-to-STG passes</para>
</listitem>
</varlistentry>
<varlistentry>
- <term><option>-ddump-absC</option>:</term>
+ <term>
+ <option>-ddump-absC</option>:
+ <indexterm><primary><option>-ddump-absC</option></primary></indexterm>
+ </term>
<listitem>
<para><emphasis>un</emphasis>flattened Abstract C</para>
</listitem>
</varlistentry>
<varlistentry>
- <term><option>-ddump-flatC</option>:</term>
+ <term>
+ <option>-ddump-flatC</option>:
+ <indexterm><primary><option>-ddump-flatC</option></primary></indexterm>
+ </term>
<listitem>
<para><emphasis>flattened</emphasis> Abstract C</para>
</listitem>
</varlistentry>
<varlistentry>
- <term><option>-ddump-realC</option>:</term>
+ <term>
+ <option>-ddump-realC</option>:
+ <indexterm><primary><option>-ddump-realC</option></primary></indexterm>
+ </term>
<listitem>
<para>same as what goes to the C compiler</para>
</listitem>
</varlistentry>
<varlistentry>
- <term><option>-ddump-stix</option>:</term>
+ <term>
+ <option>-ddump-stix</option>:
+ <indexterm><primary><option>-ddump-stix</option></primary></indexterm>
+ </term>
<listitem>
<para>native-code generator intermediate form</para>
</listitem>
</varlistentry>
<varlistentry>
- <term><option>-ddump-asm</option>:</term>
+ <term>
+ <option>-ddump-asm</option>:
+ <indexterm><primary><option>-ddump-asm</option></primary></indexterm>
+ </term>
<listitem>
<para>assembly language from the native-code generator</para>
</listitem>
</varlistentry>
<varlistentry>
- <term><option>-ddump-bcos</option>:</term>
+ <term>
+ <option>-ddump-bcos</option>:
+ <indexterm><primary><option>-ddump-bcos</option></primary></indexterm>
+ </term>
<listitem>
<para>byte code compiler output</para>
</listitem>
</varlistentry>
<varlistentry>
- <term><option>-ddump-foreign</option>:</term>
+ <term>
+ <option>-ddump-foreign</option>:
+ <indexterm><primary><option>-ddump-foreign</option></primary></indexterm>
+ </term>
<listitem>
<para>dump foreign export stubs</para>
</listitem>
</varlistentry>
-
</variablelist>
-
- <indexterm><primary><option>-ddump-absC</option></primary></indexterm>
- <indexterm><primary><option>-ddump-bcos</option></primary></indexterm>
- <indexterm><primary><option>-ddump-cpranal</option></primary></indexterm>
- <indexterm><primary><option>-ddump-cse</option></primary></indexterm>
-
- <indexterm><primary><option>-ddump-deriv</option></primary></indexterm>
- <indexterm><primary><option>-ddump-ds</option></primary></indexterm>
- <indexterm><primary><option>-ddump-flatC</option></primary></indexterm>
- <indexterm><primary><option>-ddump-foreign</option></primary></indexterm>
- <indexterm><primary><option>-ddump-inlinings</option></primary></indexterm>
- <indexterm><primary><option>-ddump-occur-anal</option></primary></indexterm>
- <indexterm><primary><option>-ddump-parsed</option></primary></indexterm>
- <indexterm><primary><option>-ddump-realC</option></primary></indexterm>
- <indexterm><primary><option>-ddump-rn</option></primary></indexterm>
- <indexterm><primary><option>-ddump-rules</option></primary></indexterm>
- <indexterm><primary><option>-ddump-sat</option></primary></indexterm>
- <indexterm><primary><option>-ddump-simpl</option></primary></indexterm>
- <indexterm><primary><option>-ddump-spec</option></primary></indexterm>
- <indexterm><primary><option>-ddump-stg</option></primary></indexterm>
- <indexterm><primary><option>-ddump-stix</option></primary></indexterm>
- <indexterm><primary><option>-ddump-stranal</option></primary></indexterm>
- <indexterm><primary><option>-ddump-tc</option></primary></indexterm>
-
- <indexterm><primary><option>-ddump-usagesp</option></primary></indexterm>
- <indexterm><primary><option>-ddump-workwrap</option></primary></indexterm>
</listitem>
</varlistentry>
<varlistentry>
- <term><option>-dverbose-core2core</option></term>
- <term><option>-dverbose-stg2stg</option></term>
- <indexterm><primary><option>-dverbose-core2core</option></primary></indexterm>
- <indexterm><primary><option>-dverbose-stg2stg</option></primary></indexterm>
+ <term>
+ <option>-dverbose-core2core</option>
+ <indexterm><primary><option>-dverbose-core2core</option></primary></indexterm>
+ </term>
+ <term>
+ <option>-dverbose-stg2stg</option>
+ <indexterm><primary><option>-dverbose-stg2stg</option></primary></indexterm>
+ </term>
<listitem>
<para>Show the output of the intermediate Core-to-Core and
STG-to-STG passes, respectively. (<emphasis>Lots</emphasis>
</varlistentry>
<varlistentry>
- <term><option>-ddump-simpl-iterations</option>:</term>
- <indexterm><primary><option>-ddump-simpl-iterations</option></primary></indexterm>
+ <term>
+ <option>-ddump-simpl-iterations</option>:
+ <indexterm><primary><option>-ddump-simpl-iterations</option></primary></indexterm>
+ </term>
<listitem>
<para>Show the output of each <emphasis>iteration</emphasis>
of the simplifier (each run of the simplifier has a maximum
</varlistentry>
<varlistentry>
- <term><option>-dppr-debug</option></term>
- <indexterm><primary><option>-dppr-debug</option></primary></indexterm>
+ <term>
+ <option>-dppr-debug</option>
+ <indexterm><primary><option>-dppr-debug</option></primary></indexterm>
+ </term>
<listitem>
<para>Debugging output is in one of several
“styles.” Take the printing of types, for
</varlistentry>
<varlistentry>
- <term><option>-dppr-user-length</option></term>
- <indexterm><primary><option>-dppr-user-length</option></primary></indexterm>
+ <term>
+ <option>-dppr-user-length</option>
+ <indexterm><primary><option>-dppr-user-length</option></primary></indexterm>
+ </term>
<listitem>
<para>In error messages, expressions are printed to a
certain “depth”, with subexpressions beyond the
</varlistentry>
<varlistentry>
- <term><option>-ddump-simpl-stats</option></term>
- <indexterm><primary><option>-ddump-simpl-stats option</option></primary></indexterm>
+ <term>
+ <option>-ddump-simpl-stats</option>
+ <indexterm><primary><option>-ddump-simpl-stats option</option></primary></indexterm>
+ </term>
<listitem>
<para>Dump statistics about how many of each kind of
transformation too place. If you add
</varlistentry>
<varlistentry>
- <term><option>-ddump-rn-trace</option></term>
- <indexterm><primary><option>-ddump-rn-trace</option></primary></indexterm>
+ <term>
+ <option>-ddump-rn-trace</option>
+ <indexterm><primary><option>-ddump-rn-trace</option></primary></indexterm>
+ </term>
<listitem>
<para>Make the renamer be *real* chatty about what it is
upto.</para>
</varlistentry>
<varlistentry>
- <term><option>-ddump-rn-stats</option></term>
- <indexterm><primary><option>-dshow-rn-stats</option></primary></indexterm>
+ <term>
+ <option>-ddump-rn-stats</option>
+ <indexterm><primary><option>-dshow-rn-stats</option></primary></indexterm>
+ </term>
<listitem>
<para>Print out summary of what kind of information the renamer
had to bring in.</para>
</varlistentry>
<varlistentry>
- <term><option>-dshow-unused-imports</option></term>
- <indexterm><primary><option>-dshow-unused-imports</option></primary></indexterm>
+ <term>
+ <option>-dshow-unused-imports</option>
+ <indexterm><primary><option>-dshow-unused-imports</option></primary></indexterm>
+ </term>
<listitem>
<para>Have the renamer report what imports does not
contribute.</para>
<variablelist>
<varlistentry>
- <term><option>-dcore-lint</option></term>
- <indexterm><primary><option>-dcore-lint</option></primary></indexterm>
+ <term>
+ <option>-dcore-lint</option>
+ <indexterm><primary><option>-dcore-lint</option></primary></indexterm>
+ </term>
<listitem>
<para>Turn on heavyweight intra-pass sanity-checking within
GHC, at Core level. (It checks GHC's sanity, not yours.)</para>
</varlistentry>
<varlistentry>
- <term><option>-dstg-lint</option>:</term>
- <indexterm><primary><option>-dstg-lint</option></primary></indexterm>
+ <term>
+ <option>-dstg-lint</option>:
+ <indexterm><primary><option>-dstg-lint</option></primary></indexterm>
+ </term>
<listitem>
<para>Ditto for STG level. (NOTE: currently doesn't work).</para>
</listitem>
</varlistentry>
<varlistentry>
- <term><option>-dusagesp-lint</option>:</term>
- <indexterm><primary><option>-dstg-lint</option></primary></indexterm>
+ <term>
+ <option>-dusagesp-lint</option>:
+ <indexterm><primary><option>-dstg-lint</option></primary></indexterm>
+ </term>
<listitem>
<para>Turn on checks around UsageSP inference
(<option>-fusagesp</option>). This verifies various simple
<variablelist>
<varlistentry>
- <term><option>-unreg</option>:</term>
- <indexterm><primary><option>-unreg</option></primary></indexterm>
+ <term>
+ <option>-unreg</option>:
+ <indexterm><primary><option>-unreg</option></primary></indexterm>
+ </term>
<listitem>
<para>Compile via vanilla ANSI C only, turning off
platform-specific optimisations. NOTE: in order to use
<variablelist>
<varlistentry>
- <term><option>-fglasgow-exts</option>:</term>
- <indexterm><primary><option>-fglasgow-exts</option></primary></indexterm>
+ <term>
+ <option>-fglasgow-exts</option>:
+ <indexterm><primary><option>-fglasgow-exts</option></primary></indexterm>
+ </term>
<listitem>
<para>This simultaneously enables all of the extensions to
Haskell 98 described in <xref
</varlistentry>
<varlistentry>
- <term><option>-ffi</option> and <option>-fffi</option>:</term>
- <indexterm><primary><option>-ffi</option></primary></indexterm>
- <indexterm><primary><option>-fffi</option></primary></indexterm>
+ <term>
+ <option>-ffi</option> and <option>-fffi</option>:
+ <indexterm><primary><option>-ffi</option></primary></indexterm>
+ <indexterm><primary><option>-fffi</option></primary></indexterm>
+ </term>
<listitem>
<para>This option enables the language extension defined in the
Haskell 98 Foreign Function Interface Addendum plus deprecated
</varlistentry>
<varlistentry>
- <term><option>-fno-monomorphism-restriction</option>:</term>
- <indexterm><primary><option>-fno-monomorphism-restriction</option></primary></indexterm>
+ <term>
+ <option>-fno-monomorphism-restriction</option>:
+ <indexterm><primary><option>-fno-monomorphism-restriction</option></primary></indexterm>
+ </term>
<listitem>
<para> Switch off the Haskell 98 monomorphism restriction.
Independent of the <option>-fglasgow-exts</option>
</varlistentry>
<varlistentry>
- <term><option>-fallow-overlapping-instances</option></term>
- <term><option>-fallow-undecidable-instances</option></term>
- <term><option>-fallow-incoherent-instances</option></term>
- <term><option>-fcontext-stack</option></term>
- <indexterm><primary><option>-fallow-overlapping-instances</option></primary></indexterm>
- <indexterm><primary><option>-fallow-undecidable-instances</option></primary></indexterm>
- <indexterm><primary><option>-fcontext-stack</option></primary></indexterm>
+ <term>
+ <option>-fallow-overlapping-instances</option>
+ <indexterm><primary><option>-fallow-overlapping-instances</option></primary></indexterm>
+ </term>
+ <term>
+ <option>-fallow-undecidable-instances</option>
+ <indexterm><primary><option>-fallow-undecidable-instances</option></primary></indexterm>
+ </term>
+ <term>
+ <option>-fallow-incoherent-instances</option>
+ <indexterm><primary><option>-fallow-incoherent-instances</option></primary></indexterm>
+ </term>
+ <term>
+ <option>-fcontext-stack</option>
+ <indexterm><primary><option>-fcontext-stack</option></primary></indexterm>
+ </term>
<listitem>
<para> See <xref linkend="instance-decls"/>. Only relevant
if you also use <option>-fglasgow-exts</option>.</para>
</varlistentry>
<varlistentry>
- <term><option>-finline-phase</option></term>
- <indexterm><primary><option>-finline-phase</option></primary></indexterm>
+ <term>
+ <option>-finline-phase</option>
+ <indexterm><primary><option>-finline-phase</option></primary></indexterm>
+ </term>
<listitem>
<para>See <xref linkend="rewrite-rules"/>. Only relevant if
you also use <option>-fglasgow-exts</option>.</para>
</varlistentry>
<varlistentry>
- <term><option>-farrows</option></term>
- <indexterm><primary><option>-farrows</option></primary></indexterm>
+ <term>
+ <option>-farrows</option>
+ <indexterm><primary><option>-farrows</option></primary></indexterm>
+ </term>
<listitem>
<para>See <xref linkend="arrow-notation"/>. Independent of
<option>-fglasgow-exts</option>.</para>
</varlistentry>
<varlistentry>
- <term><option>-fgenerics</option></term>
- <indexterm><primary><option>-fgenerics</option></primary></indexterm>
+ <term>
+ <option>-fgenerics</option>
+ <indexterm><primary><option>-fgenerics</option></primary></indexterm>
+ </term>
<listitem>
<para>See <xref linkend="generic-classes"/>. Independent of
<option>-fglasgow-exts</option>.</para>
</varlistentry>
<varlistentry>
- <term><option>––config-file <replaceable>file</replaceable></option></term>
- <term><option>-f <replaceable>file</replaceable></option></term>
- <indexterm><primary><option>––config-file</option></primary>
- </indexterm>
+ <term>
+ <option>––config-file <replaceable>file</replaceable></option>
+ <indexterm><primary><option>––config-file</option></primary></indexterm>
+ </term>
+ <term>
+ <option>-f <replaceable>file</replaceable></option>
+ </term>
<listitem>
<para>Use <replaceable>file</replaceable> as an additional
package configuration file. This is used to modify
</varlistentry>
<varlistentry>
- <term><option>––list-packages</option></term>
- <term><option>-l</option></term>
- <indexterm><primary><option>––list-packages</option></primary></indexterm>
+ <term>
+ <option>––list-packages</option>
+ <indexterm><primary><option>––list-packages</option></primary></indexterm>
+ </term>
+ <term>
+ <option>-l</option>
+ </term>
<listitem>
<para>This option displays the list of currently installed
packages, including those in extra configuration files
</varlistentry>
<varlistentry>
- <term><option>––list-local-packages</option></term>
- <term><option>-L</option></term>
- <indexterm><primary><option>––list-local-packages</option></primary></indexterm>
+ <term>
+ <option>––list-local-packages</option>
+ <indexterm><primary><option>––list-local-packages</option></primary></indexterm>
+ </term>
+ <term>
+ <option>-L</option>
+ </term>
<listitem>
<para>Displays the list of packages installed in the
topmost configuration file only: that will be the
</varlistentry>
<varlistentry>
- <term><option>––remove-package <replaceable>foo</replaceable></option></term>
- <term><option>-r <replaceable>foo</replaceable></option></term>
- <indexterm><primary><option>––delete-package</option></primary>
- </indexterm>
+ <term>
+ <option>––remove-package <replaceable>foo</replaceable></option>
+ <indexterm><primary><option>––delete-package</option></primary></indexterm>
+ </term>
+ <term>
+ <option>-r <replaceable>foo</replaceable></option>
+ </term>
<listitem>
<para>Removes the specified package from the installed
configuration.</para>
</listitem>
</varlistentry>
<varlistentry>
- <term><option>––update-package</option></term>
- <term><option>-u</option></term>
- <indexterm><primary><option>––update-package</option></primary></indexterm>
+ <term>
+ <option>––update-package</option>
+ <indexterm><primary><option>––update-package</option></primary></indexterm>
+ </term>
+ <term>
+ <option>-u</option>
+ </term>
<listitem>
<para>Reads package specification from the input, and
adds it to the database of installed packages. If a package
</listitem>
</varlistentry>
<varlistentry>
- <term><option>––force</option></term>
- <indexterm><primary><option>––force</option></primary></indexterm>
+ <term>
+ <option>––force</option>
+ <indexterm><primary><option>––force</option></primary></indexterm>
+ </term>
<listitem>
<para>Causes <literal>ghc-pkg</literal> to ignore missing
directories and libraries when adding a package, and just
<variablelist>
<varlistentry>
- <term><literal>name</literal></term>
- <indexterm><primary><literal>name</literal></primary>
- <secondary>package specification</secondary></indexterm>
+ <term>
+ <literal>name</literal>
+ <indexterm><primary><literal>name</literal></primary><secondary>package specification</secondary></indexterm>
+ </term>
<listitem>
<para>The package's name, for use with
the <literal>-package</literal> flag and as listed in the
</varlistentry>
<varlistentry>
- <term><literal>auto</literal></term>
- <indexterm><primary><literal>auto</literal></primary>
- <secondary>package specification</secondary>
- </indexterm>
+ <term>
+ <literal>auto</literal>
+ <indexterm><primary><literal>auto</literal></primary><secondary>package specification</secondary></indexterm>
+ </term>
<listitem>
<para>Set to <literal>True</literal> if the package should
be automatically available (see <xref
</varlistentry>
<varlistentry>
- <term><literal>import_dirs</literal></term>
- <indexterm><primary><literal>import_dirs</literal></primary>
- <secondary>package specification</secondary></indexterm>
+ <term>
+ <literal>import_dirs</literal>
+ <indexterm><primary><literal>import_dirs</literal></primary><secondary>package specification</secondary></indexterm>
+ </term>
<listitem>
<para>A list of directories containing interface files
(<literal>.hi</literal> files) for this package.</para>
</varlistentry>
<varlistentry>
- <term><literal>source_dirs</literal></term>
- <indexterm><primary><literal>source_dirs</literal></primary>
- <secondary>package specification</secondary></indexterm>
+ <term>
+ <literal>source_dirs</literal>
+ <indexterm><primary><literal>source_dirs</literal></primary><secondary>package specification</secondary></indexterm>
+ </term>
<listitem>
<para>A list of directories containing Haskell source
files for this package. This field isn't used by GHC, but
</varlistentry>
<varlistentry>
- <term><literal>library_dirs</literal></term>
- <indexterm><primary><literal>library_dirs</literal></primary>
- <secondary>package specification</secondary></indexterm>
+ <term>
+ <literal>library_dirs</literal>
+ <indexterm><primary><literal>library_dirs</literal></primary><secondary>package specification</secondary></indexterm>
+ </term>
<listitem>
<para>A list of directories containing libraries for this
package.</para>
</varlistentry>
<varlistentry>
- <term><literal>hs_libraries</literal></term>
- <indexterm><primary><literal>hs_libraries</literal></primary>
- <secondary>package specification</secondary></indexterm>
+ <term>
+ <literal>hs_libraries</literal>
+ <indexterm><primary><literal>hs_libraries</literal></primary><secondary>package specification</secondary></indexterm>
+ </term>
<listitem>
<para>A list of libraries containing Haskell code for this
package, with the <literal>.a</literal> or
</varlistentry>
<varlistentry>
- <term><literal>extra_libraries</literal></term>
- <indexterm><primary><literal>extra_libraries</literal></primary>
- <secondary>package specification</secondary></indexterm>
+ <term>
+ <literal>extra_libraries</literal>
+ <indexterm><primary><literal>extra_libraries</literal></primary><secondary>package specification</secondary></indexterm>
+ </term>
<listitem>
<para>A list of extra libraries for this package. The
difference between <literal>hs_libraries</literal> and
</varlistentry>
<varlistentry>
- <term><literal>include_dirs</literal></term>
- <indexterm><primary><literal>include_dirs</literal></primary>
- <secondary>package specification</secondary></indexterm>
+ <term>
+ <literal>include_dirs</literal>
+ <indexterm><primary><literal>include_dirs</literal></primary><secondary>package specification</secondary></indexterm>
+ </term>
<listitem>
<para>A list of directories containing C includes for this
package (maybe the empty list).</para>
</varlistentry>
<varlistentry>
- <term><literal>c_includes</literal></term>
- <indexterm><primary><literal>c_includes</literal></primary>
- <secondary>package specification</secondary></indexterm>
+ <term>
+ <literal>c_includes</literal>
+ <indexterm><primary><literal>c_includes</literal></primary><secondary>package specification</secondary></indexterm>
+ </term>
<listitem>
<para>A list of files to include for via-C compilations
using this package. Typically this include file will
</varlistentry>
<varlistentry>
- <term><literal>package_deps</literal></term>
- <indexterm><primary><literal>package_deps</literal></primary>
- <secondary>package specification</secondary></indexterm>
+ <term>
+ <literal>package_deps</literal>
+ <indexterm><primary><literal>package_deps</literal></primary><secondary>package specification</secondary></indexterm>
+ </term>
<listitem>
<para>A list of packages which this package depends
on.</para>
</varlistentry>
<varlistentry>
- <term><literal>extra_ghc_opts</literal></term>
- <indexterm><primary><literal>extra_ghc_opts</literal></primary>
- <secondary>package specification</secondary></indexterm>
+ <term>
+ <literal>extra_ghc_opts</literal>
+ <indexterm><primary><literal>extra_ghc_opts</literal></primary><secondary>package specification</secondary></indexterm>
+ </term>
<listitem>
<para>Extra arguments to be added to the GHC command line
when this package is being used.</para>
</varlistentry>
<varlistentry>
- <term><literal>extra_cc_opts</literal></term>
- <indexterm><primary><literal>extra_cc_opts</literal></primary>
- <secondary>package specification</secondary></indexterm>
+ <term>
+ <literal>extra_cc_opts</literal>
+ <indexterm><primary><literal>extra_cc_opts</literal></primary><secondary>package specification</secondary></indexterm>
+ </term>
<listitem>
<para>Extra arguments to be added to the gcc command line
when this package is being used (only for via-C
</varlistentry>
<varlistentry>
- <term><literal>extra_ld_opts</literal></term>
- <indexterm><primary><literal>extra_ld_opts</literal></primary>
- <secondary>package specification</secondary></indexterm>
+ <term>
+ <literal>extra_ld_opts</literal>
+ <indexterm><primary><literal>extra_ld_opts</literal></primary><secondary>package specification</secondary></indexterm>
+ </term>
<listitem>
<para>Extra arguments to be added to the
<command>gcc</command> command line (for linking) when
</varlistentry>
<varlistentry>
- <term><literal>framework_dirs</literal></term>
- <indexterm><primary><literal>framework_dirs</literal></primary>
- <secondary>package specification</secondary></indexterm>
+ <term>
+ <literal>framework_dirs</literal>
+ <indexterm><primary><literal>framework_dirs</literal></primary><secondary>package specification</secondary></indexterm>
+ </term>
<listitem>
<para>On Darwin/MacOS X, a list of directories containing frameworks for this
package. This corresponds to the <option>-framework-path</option> option.
</varlistentry>
<varlistentry>
- <term><literal>extra_frameworks</literal></term>
- <indexterm><primary><literal>extra_frameworks</literal></primary>
- <secondary>package specification</secondary></indexterm>
+ <term>
+ <literal>extra_frameworks</literal>
+ <indexterm><primary><literal>extra_frameworks</literal></primary><secondary>package specification</secondary></indexterm>
+ </term>
<listitem>
<para>On Darwin/MacOS X, a list of frameworks to link to. This corresponds to the
<option>-framework</option> option. Take a look at Apple's developer documentation
<variablelist>
<varlistentry>
- <term><option>-pgmL</option> <replaceable>cmd</replaceable></term>
- <indexterm><primary><option>-pgmL</option></primary>
- </indexterm>
+ <term>
+ <option>-pgmL</option> <replaceable>cmd</replaceable>
+ <indexterm><primary><option>-pgmL</option></primary></indexterm>
+ </term>
<listitem>
<para>Use <replaceable>cmd</replaceable> as the literate
pre-processor.</para>
</varlistentry>
<varlistentry>
- <term><option>-pgmP</option> <replaceable>cmd</replaceable></term>
- <indexterm><primary><option>-pgmP</option></primary>
- </indexterm>
+ <term>
+ <option>-pgmP</option> <replaceable>cmd</replaceable>
+ <indexterm><primary><option>-pgmP</option></primary></indexterm>
+ </term>
<listitem>
<para>Use <replaceable>cmd</replaceable> as the C
pre-processor (with <option>-cpp</option> only).</para>
</varlistentry>
<varlistentry>
- <term><option>-pgmc</option> <replaceable>cmd</replaceable></term>
- <indexterm><primary><option>-pgmc</option></primary>
- </indexterm>
+ <term>
+ <option>-pgmc</option> <replaceable>cmd</replaceable>
+ <indexterm><primary><option>-pgmc</option></primary></indexterm>
+ </term>
<listitem>
<para>Use <replaceable>cmd</replaceable> as the C
compiler.</para>
</varlistentry>
<varlistentry>
- <term><option>-pgma</option> <replaceable>cmd</replaceable></term>
- <indexterm><primary><option>-pgma</option></primary>
- </indexterm>
+ <term>
+ <option>-pgma</option> <replaceable>cmd</replaceable>
+ <indexterm><primary><option>-pgma</option></primary></indexterm>
+ </term>
<listitem>
<para>Use <replaceable>cmd</replaceable> as the
assembler.</para>
</varlistentry>
<varlistentry>
- <term><option>-pgml</option> <replaceable>cmd</replaceable></term>
- <indexterm><primary><option>-pgml</option></primary>
- </indexterm>
+ <term>
+ <option>-pgml</option> <replaceable>cmd</replaceable>
+ <indexterm><primary><option>-pgml</option></primary></indexterm>
+ </term>
<listitem>
<para>Use <replaceable>cmd</replaceable> as the
linker.</para>
</varlistentry>
<varlistentry>
- <term><option>-pgmdll</option> <replaceable>cmd</replaceable></term>
- <indexterm><primary><option>-pgmdll</option></primary>
- </indexterm>
+ <term>
+ <option>-pgmdll</option> <replaceable>cmd</replaceable>
+ <indexterm><primary><option>-pgmdll</option></primary></indexterm>
+ </term>
<listitem>
<para>Use <replaceable>cmd</replaceable> as the DLL
generator.</para>
</varlistentry>
<varlistentry>
- <term><option>-pgmdep</option> <replaceable>cmd</replaceable></term>
- <indexterm><primary><option>-pgmdep</option></primary>
- </indexterm>
+ <term>
+ <option>-pgmdep</option> <replaceable>cmd</replaceable>
+ <indexterm><primary><option>-pgmdep</option></primary></indexterm>
+ </term>
<listitem>
<para>Use <replaceable>cmd</replaceable> as the dependency
generator.</para>
</varlistentry>
<varlistentry>
- <term><option>-pgmF</option> <replaceable>cmd</replaceable></term>
- <indexterm><primary><option>-pgmF</option></primary>
- </indexterm>
+ <term>
+ <option>-pgmF</option> <replaceable>cmd</replaceable>
+ <indexterm><primary><option>-pgmF</option></primary></indexterm>
+ </term>
<listitem>
<para>Use <replaceable>cmd</replaceable> as the
pre-processor (with <option>-F</option> only).</para>
<variablelist>
<varlistentry>
- <term><option>-optL</option> <replaceable>option</replaceable></term>
- <indexterm><primary><option>-optL</option></primary>
- </indexterm>
+ <term>
+ <option>-optL</option> <replaceable>option</replaceable>
+ <indexterm><primary><option>-optL</option></primary></indexterm>
+ </term>
<listitem>
<para>Pass <replaceable>option</replaceable> to the
literate pre-processor</para>
</listitem>
</varlistentry>
<varlistentry>
- <term><option>-optP</option> <replaceable>option</replaceable></term>
- <indexterm><primary><option>-optP</option></primary>
- </indexterm>
+ <term>
+ <option>-optP</option> <replaceable>option</replaceable>
+ <indexterm><primary><option>-optP</option></primary></indexterm>
+ </term>
<listitem>
<para>Pass <replaceable>option</replaceable> to CPP (makes
sense only if <option>-cpp</option> is also on).</para>
</listitem>
</varlistentry>
<varlistentry>
- <term><option>-optF</option> <replaceable>option</replaceable></term>
- <indexterm><primary><option>-optF</option></primary>
- </indexterm>
+ <term>
+ <option>-optF</option> <replaceable>option</replaceable>
+ <indexterm><primary><option>-optF</option></primary></indexterm>
+ </term>
<listitem>
<para>Pass <replaceable>option</replaceable> to the
custom pre-processor (see <xref linkend="pre-processor"/>).</para>
</listitem>
</varlistentry>
<varlistentry>
- <term><option>-optc</option> <replaceable>option</replaceable></term>
- <indexterm><primary><option>-optc</option></primary>
- </indexterm>
+ <term>
+ <option>-optc</option> <replaceable>option</replaceable>
+ <indexterm><primary><option>-optc</option></primary></indexterm>
+ </term>
<listitem>
<para>Pass <replaceable>option</replaceable> to the C compiler.</para>
</listitem>
</varlistentry>
<varlistentry>
- <term><option>-opta</option> <replaceable>option</replaceable></term>
- <indexterm><primary><option>-opta</option></primary>
- </indexterm>
+ <term>
+ <option>-opta</option> <replaceable>option</replaceable>
+ <indexterm><primary><option>-opta</option></primary></indexterm>
+ </term>
<listitem>
<para>Pass <replaceable>option</replaceable> to the assembler.</para>
</listitem>
</varlistentry>
<varlistentry>
- <term><option>-optl</option> <replaceable>option</replaceable></term>
- <indexterm><primary><option>-optl</option></primary>
- </indexterm>
+ <term>
+ <option>-optl</option> <replaceable>option</replaceable>
+ <indexterm><primary><option>-optl</option></primary></indexterm>
+ </term>
<listitem>
<para>Pass <replaceable>option</replaceable> to the linker.</para>
</listitem>
</varlistentry>
<varlistentry>
- <term><option>-optdll</option> <replaceable>option</replaceable></term>
- <indexterm><primary><option>-optdll</option></primary>
- </indexterm>
+ <term>
+ <option>-optdll</option> <replaceable>option</replaceable>
+ <indexterm><primary><option>-optdll</option></primary></indexterm>
+ </term>
<listitem>
<para>Pass <replaceable>option</replaceable> to the DLL generator.</para>
</listitem>
</varlistentry>
<varlistentry>
- <term><option>-optdep</option> <replaceable>option</replaceable></term>
- <indexterm><primary><option>-optdep</option></primary>
- </indexterm>
+ <term>
+ <option>-optdep</option> <replaceable>option</replaceable>
+ <indexterm><primary><option>-optdep</option></primary></indexterm>
+ </term>
<listitem>
<para>Pass <replaceable>option</replaceable> to the
dependency generator.</para>
<variablelist>
<varlistentry>
- <term><option>-cpp</option></term>
- <indexterm><primary><option>-cpp</option></primary></indexterm>
+ <term>
+ <option>-cpp</option>
+ <indexterm><primary><option>-cpp</option></primary></indexterm>
+ </term>
<listitem>
<para>The C pre-processor <command>cpp</command> is run
over your Haskell code only if the <option>-cpp</option>
</varlistentry>
<varlistentry>
- <term><option>-D</option><replaceable>symbol</replaceable><optional>=<replaceable>value</replaceable></optional></term>
- <indexterm><primary><option>-D</option></primary></indexterm>
+ <term>
+ <option>-D</option><replaceable>symbol</replaceable><optional>=<replaceable>value</replaceable></optional>
+ <indexterm><primary><option>-D</option></primary></indexterm>
+ </term>
<listitem>
<para>Define macro <replaceable>symbol</replaceable> in the
usual way. NB: does <emphasis>not</emphasis> affect
</varlistentry>
<varlistentry>
- <term><option>-U</option><replaceable>symbol</replaceable></term>
- <indexterm><primary><option>-U</option></primary></indexterm>
+ <term>
+ <option>-U</option><replaceable>symbol</replaceable>
+ <indexterm><primary><option>-U</option></primary></indexterm>
+ </term>
<listitem>
<para> Undefine macro <replaceable>symbol</replaceable> in the
usual way.</para>
</varlistentry>
<varlistentry>
- <term><option>-I</option><replaceable>dir</replaceable></term>
- <indexterm><primary><option>-I</option></primary></indexterm>
+ <term>
+ <option>-I</option><replaceable>dir</replaceable>
+ <indexterm><primary><option>-I</option></primary></indexterm>
+ </term>
<listitem>
<para> Specify a directory in which to look for
<literal>#include</literal> files, in the usual C
<variablelist>
<varlistentry>
- <term><constant>__HASKELL98__</constant></term>
- <indexterm><primary><literal>__HASKELL98__</literal></primary></indexterm>
+ <term>
+ <constant>__HASKELL98__</constant>
+ <indexterm><primary><literal>__HASKELL98__</literal></primary></indexterm>
+ </term>
<listitem>
<para>If defined, this means that GHC supports the
language defined by the Haskell 98 report.</para>
</varlistentry>
<varlistentry>
- <term><constant>__HASKELL__=98</constant></term>
- <indexterm><primary><constant>__HASKELL__=98</constant></primary></indexterm>
+ <term>
+ <constant>__HASKELL__=98</constant>
+ <indexterm><primary><constant>__HASKELL__=98</constant></primary></indexterm>
+ </term>
<listitem>
<para>In GHC 4.04 and later, the
<constant>__HASKELL__</constant>
</varlistentry>
<varlistentry>
- <term><constant>__HASKELL1__</constant></term>
- <indexterm><primary><constant>__HASKELL1__
- </constant></primary></indexterm>
+ <term>
+ <constant>__HASKELL1__</constant>
+ <indexterm><primary><constant>__HASKELL1__</constant></primary></indexterm>
+ </term>
<listitem>
<para>If defined to <replaceable>n</replaceable>, that
means GHC supports the Haskell language defined in the
</varlistentry>
<varlistentry>
- <term><constant>__GLASGOW_HASKELL__</constant></term>
- <indexterm><primary><constant>__GLASGOW_HASKELL__</constant></primary></indexterm>
+ <term>
+ <constant>__GLASGOW_HASKELL__</constant>
+ <indexterm><primary><constant>__GLASGOW_HASKELL__</constant></primary></indexterm>
+ </term>
<listitem>
<para>For version <replaceable>n</replaceable> of the GHC
system, this will be <literal>#define</literal>d to
</varlistentry>
<varlistentry>
- <term><constant>__CONCURRENT_HASKELL__</constant></term>
- <indexterm><primary><constant>__CONCURRENT_HASKELL__</constant></primary></indexterm>
+ <term>
+ <constant>__CONCURRENT_HASKELL__</constant>
+ <indexterm><primary><constant>__CONCURRENT_HASKELL__</constant></primary></indexterm>
+ </term>
<listitem>
<para>This symbol is defined when pre-processing Haskell
(input) and pre-processing C (GHC output). Since GHC from
</varlistentry>
<varlistentry>
- <term><constant>__PARALLEL_HASKELL__</constant></term>
- <indexterm><primary><constant>__PARALLEL_HASKELL__</constant></primary></indexterm>
+ <term>
+ <constant>__PARALLEL_HASKELL__</constant>
+ <indexterm><primary><constant>__PARALLEL_HASKELL__</constant></primary></indexterm>
+ </term>
<listitem>
<para>Only defined when <option>-parallel</option> is in
use! This symbol is defined when pre-processing Haskell
<variablelist>
<varlistentry>
- <term><option>-F</option></term>
- <indexterm><primary><option>-F</option></primary></indexterm>
+ <term>
+ <option>-F</option>
+ <indexterm><primary><option>-F</option></primary></indexterm>
+ </term>
<listitem>
<para>A custom pre-processor is run over your Haskell
source file only if the <option>-F</option> option
<variablelist>
<varlistentry>
- <term><option>-fasm</option></term>
- <indexterm><primary><option>-fasm</option></primary></indexterm>
+ <term>
+ <option>-fasm</option>
+ <indexterm><primary><option>-fasm</option></primary></indexterm>
+ </term>
<listitem>
<para>Use GHC's native code generator rather than
compiling via C. This will compile faster (up to twice as
</varlistentry>
<varlistentry>
- <term><option>-fvia-C</option></term>
- <indexterm><primary><option>-fvia-C</option></primary>
- </indexterm>
+ <term>
+ <option>-fvia-C</option>
+ <indexterm><primary><option>-fvia-C</option></primary></indexterm>
+ </term>
<listitem>
<para>Compile via C instead of using the native code
generator. This is default for optimised compilations,
</varlistentry>
<varlistentry>
- <term><option>-fno-code</option></term>
- <indexterm><primary><option>-fno-code</option></primary>
- </indexterm>
+ <term>
+ <option>-fno-code</option>
+ <indexterm><primary><option>-fno-code</option></primary></indexterm>
+ </term>
<listitem>
<para>Omit code generation (and all later phases)
altogether. Might be of some use if you just want to see
<variablelist>
<varlistentry>
- <term><option>-l</option><replaceable>lib</replaceable></term>
- <indexterm><primary><option>-l</option></primary></indexterm>
+ <term>
+ <option>-l</option><replaceable>lib</replaceable>
+ <indexterm><primary><option>-l</option></primary></indexterm>
+ </term>
<listitem>
<para>Link in the <replaceable>lib</replaceable> library.
On Unix systems, this will be in a file called
</varlistentry>
<varlistentry>
- <term><option>-no-link</option></term>
- <indexterm>
- <primary><option>-no-link</option></primary>
- </indexterm>
+ <term>
+ <option>-no-link</option>
+ <indexterm><primary><option>-no-link</option></primary></indexterm>
+ </term>
<listitem>
<para>Omit the link step. This flag can be useful if you
want to avoid linking in <option>--make</option> mode,
</varlistentry>
<varlistentry>
- <term><option>-package</option> <replaceable>name</replaceable></term>
- <indexterm><primary><option>-package</option></primary></indexterm>
+ <term>
+ <option>-package</option> <replaceable>name</replaceable>
+ <indexterm><primary><option>-package</option></primary></indexterm>
+ </term>
<listitem>
<para>If you are using a Haskell “package”
(see <xref linkend="packages"/>), don't forget to add the
</varlistentry>
<varlistentry>
- <term><option>-framework</option> <replaceable>name</replaceable></term>
- <indexterm><primary><option>-framework</option></primary></indexterm>
+ <term>
+ <option>-framework</option> <replaceable>name</replaceable>
+ <indexterm><primary><option>-framework</option></primary></indexterm>
+ </term>
<listitem>
<para>On Darwin/MacOS X only, link in the framework <replaceable>name</replaceable>.
This option corresponds to the <option>-framework</option> option for Apple's Linker.
</varlistentry>
<varlistentry>
- <term><option>-L</option><replaceable>dir</replaceable></term>
- <indexterm><primary><option>-L</option></primary></indexterm>
+ <term>
+ <option>-L</option><replaceable>dir</replaceable>
+ <indexterm><primary><option>-L</option></primary></indexterm>
+ </term>
<listitem>
<para>Where to find user-supplied libraries…
Prepend the directory <replaceable>dir</replaceable> to
</varlistentry>
<varlistentry>
- <term><option>-framework-path</option><replaceable>dir</replaceable></term>
- <indexterm><primary><option>-framework-path</option></primary></indexterm>
+ <term>
+ <option>-framework-path</option><replaceable>dir</replaceable>
+ <indexterm><primary><option>-framework-path</option></primary></indexterm>
+ </term>
<listitem>
<para>On Darwin/MacOS X only, prepend the directory <replaceable>dir</replaceable> to
the framework directories path. This option corresponds to the <option>-F</option>
</varlistentry>
<varlistentry>
- <term><option>-split-objs</option></term>
- <indexterm><primary><option>-split-objs</option></primary></indexterm>
+ <term>
+ <option>-split-objs</option>
+ <indexterm><primary><option>-split-objs</option></primary></indexterm>
+ </term>
<listitem>
<para>Tell the linker to split the single object file that
would normally be generated into multiple object files,
</varlistentry>
<varlistentry>
- <term><option>-static</option></term>
- <indexterm><primary><option>-static</option></primary></indexterm>
+ <term>
+ <option>-static</option>
+ <indexterm><primary><option>-static</option></primary></indexterm>
+ </term>
<listitem>
<para>Tell the linker to avoid shared Haskell libraries,
if possible. This is the default.</para>
</varlistentry>
<varlistentry>
- <term><option>-dynamic</option></term>
- <indexterm><primary><option>-dynamic</option></primary></indexterm>
+ <term>
+ <option>-dynamic</option>
+ <indexterm><primary><option>-dynamic</option></primary></indexterm>
+ </term>
<listitem>
<para>Tell the linker to use shared Haskell libraries, if
available (this option is only supported on Windows at the
</varlistentry>
<varlistentry>
- <term><option>-main-is <replaceable>thing</replaceable></option></term>
- <indexterm><primary><option>-main-is</option></primary></indexterm>
- <indexterm><primary>specifying your own main function</primary></indexterm>
+ <term>
+ <option>-main-is <replaceable>thing</replaceable></option>
+ <indexterm><primary><option>-main-is</option></primary></indexterm>
+ <indexterm><primary>specifying your own main function</primary></indexterm>
+ </term>
<listitem>
<para> The normal rule in Haskell is that your program must supply a <literal>main</literal>
function in module <literal>Main</literal>. When testing, it is often convenient
</varlistentry>
<varlistentry>
- <term><option>-no-hs-main</option></term>
- <indexterm><primary><option>-no-hs-main</option></primary></indexterm>
- <indexterm><primary>linking Haskell libraries with foreign code</primary></indexterm>
+ <term>
+ <option>-no-hs-main</option>
+ <indexterm><primary><option>-no-hs-main</option></primary></indexterm>
+ <indexterm><primary>linking Haskell libraries with foreign code</primary></indexterm>
+ </term>
<listitem>
<para>In the event you want to include ghc-compiled code
as part of another (non-Haskell) program, the RTS will not
</varlistentry>
<varlistentry>
- <term><option>-debug</option></term>
- <indexterm><primary><option>-debug</option></primary>
- </indexterm>
+ <term>
+ <option>-debug</option>
+ <indexterm><primary><option>-debug</option></primary></indexterm>
+ </term>
<listitem>
<para>Link the program with a debugging version of the
runtime system. The debugging runtime turns on numerous
</varlistentry>
<varlistentry>
- <term><option>-threaded</option></term>
- <indexterm><primary><option>-threaded</option></primary>
- </indexterm>
+ <term>
+ <option>-threaded</option>
+ <indexterm><primary><option>-threaded</option></primary></indexterm>
+ </term>
<listitem>
<para>Link the program with the "threaded" runtime system.
This version of the runtime is designed to be used in
<variablelist>
<varlistentry>
- <term><option>-prof</option>:</term>
- <indexterm><primary><option>-prof</option></primary></indexterm>
+ <term>
+ <option>-prof</option>:
+ <indexterm><primary><option>-prof</option></primary></indexterm>
+ </term>
<listitem>
<para> To make use of the profiling system
<emphasis>all</emphasis> modules must be compiled and linked
<variablelist>
<varlistentry>
- <term><option>-auto</option>:</term>
- <indexterm><primary><option>-auto</option></primary></indexterm>
- <indexterm><primary>cost centres</primary><secondary>automatically inserting</secondary></indexterm>
+ <term>
+ <option>-auto</option>:
+ <indexterm><primary><option>-auto</option></primary></indexterm>
+ <indexterm><primary>cost centres</primary><secondary>automatically inserting</secondary></indexterm>
+ </term>
<listitem>
<para> GHC will automatically add
<function>_scc_</function> constructs for all
</varlistentry>
<varlistentry>
- <term><option>-auto-all</option>:</term>
- <indexterm><primary><option>-auto-all</option></primary></indexterm>
+ <term>
+ <option>-auto-all</option>:
+ <indexterm><primary><option>-auto-all</option></primary></indexterm>
+ </term>
<listitem>
<para> <emphasis>All</emphasis> top-level functions,
exported or not, will be automatically
</varlistentry>
<varlistentry>
- <term><option>-caf-all</option>:</term>
- <indexterm><primary><option>-caf-all</option></primary></indexterm>
+ <term>
+ <option>-caf-all</option>:
+ <indexterm><primary><option>-caf-all</option></primary></indexterm>
+ </term>
<listitem>
<para> The costs of all CAFs in a module are usually
attributed to one “big” CAF cost-centre. With
</varlistentry>
<varlistentry>
- <term><option>-ignore-scc</option>:</term>
- <indexterm><primary><option>-ignore-scc</option></primary></indexterm>
+ <term>
+ <option>-ignore-scc</option>:
+ <indexterm><primary><option>-ignore-scc</option></primary></indexterm>
+ </term>
<listitem>
<para>Ignore any <function>_scc_</function>
constructs, so a module which already has
<variablelist>
<varlistentry>
- <term><option>-p</option> or <option>-P</option>:</term>
- <indexterm><primary><option>-p</option></primary></indexterm>
- <indexterm><primary><option>-P</option></primary></indexterm>
- <indexterm><primary>time profile</primary></indexterm>
+ <term>
+ <option>-p</option> or <option>-P</option>:
+ <indexterm><primary><option>-p</option></primary></indexterm>
+ <indexterm><primary><option>-P</option></primary></indexterm>
+ <indexterm><primary>time profile</primary></indexterm>
+ </term>
<listitem>
<para>The <option>-p</option> option produces a standard
<emphasis>time profile</emphasis> report. It is written
</varlistentry>
<varlistentry>
- <term><option>-px</option>:</term>
- <indexterm><primary><option>-px</option></primary></indexterm>
+ <term>
+ <option>-px</option>:
+ <indexterm><primary><option>-px</option></primary></indexterm>
+ </term>
<listitem>
<para>The <option>-px</option> option generates profiling
information in the XML format understood by our new
</varlistentry>
<varlistentry>
- <term><option>-xc</option></term>
- <indexterm><primary><option>-xc</option></primary><secondary>RTS
- option</secondary></indexterm>
+ <term>
+ <option>-xc</option>
+ <indexterm><primary><option>-xc</option></primary><secondary>RTS option</secondary></indexterm>
+ </term>
<listitem>
<para>This option makes use of the extra information
maintained by the cost-centre-stack profiler to provide
<variablelist>
<varlistentry>
- <term><option>-hc</option></term>
- <indexterm><primary><option>-hc</option></primary><secondary>RTS
- option</secondary></indexterm>
+ <term>
+ <option>-hc</option>
+ <indexterm><primary><option>-hc</option></primary><secondary>RTS option</secondary></indexterm>
+ </term>
<listitem>
<para>Breaks down the graph by the cost-centre stack which
produced the data.</para>
</varlistentry>
<varlistentry>
- <term><option>-hm</option></term>
- <indexterm><primary><option>-hm</option></primary><secondary>RTS
- option</secondary></indexterm>
+ <term>
+ <option>-hm</option>
+ <indexterm><primary><option>-hm</option></primary><secondary>RTS option</secondary></indexterm>
+ </term>
<listitem>
<para>Break down the live heap by the module containing
the code which produced the data.</para>
</varlistentry>
<varlistentry>
- <term><option>-hd</option></term>
- <indexterm><primary><option>-hd</option></primary><secondary>RTS
- option</secondary></indexterm>
+ <term>
+ <option>-hd</option>
+ <indexterm><primary><option>-hd</option></primary><secondary>RTS option</secondary></indexterm>
+ </term>
<listitem>
<para>Breaks down the graph by <firstterm>closure
description</firstterm>. For actual data, the description
</varlistentry>
<varlistentry>
- <term><option>-hy</option></term>
- <indexterm><primary><option>-hy</option></primary><secondary>RTS
- option</secondary></indexterm>
+ <term>
+ <option>-hy</option>
+ <indexterm><primary><option>-hy</option></primary><secondary>RTS option</secondary></indexterm>
+ </term>
<listitem>
<para>Breaks down the graph by
<firstterm>type</firstterm>. For closures which have
</varlistentry>
<varlistentry>
- <term><option>-hr</option></term>
- <indexterm><primary><option>-hr</option></primary><secondary>RTS
- option</secondary></indexterm>
+ <term>
+ <option>-hr</option>
+ <indexterm><primary><option>-hr</option></primary><secondary>RTS option</secondary></indexterm>
+ </term>
<listitem>
<para>Break down the graph by <firstterm>retainer
set</firstterm>. Retainer profiling is described in more
</varlistentry>
<varlistentry>
- <term><option>-hb</option></term>
- <indexterm><primary><option>-hb</option></primary><secondary>RTS
- option</secondary></indexterm>
+ <term>
+ <option>-hb</option>
+ <indexterm><primary><option>-hb</option></primary><secondary>RTS option</secondary></indexterm>
+ </term>
<listitem>
<para>Break down the graph by
<firstterm>biography</firstterm>. Biographical profiling
<variablelist>
<varlistentry>
- <term><option>-hc</option><replaceable>name</replaceable>,...</term>
- <indexterm><primary><option>-hc</option></primary><secondary>RTS
- option</secondary></indexterm>
+ <term>
+ <option>-hc</option><replaceable>name</replaceable>,...
+ <indexterm><primary><option>-hc</option></primary><secondary>RTS option</secondary></indexterm>
+ </term>
<listitem>
<para>Restrict the profile to closures produced by
cost-centre stacks with one of the specified cost centres
</varlistentry>
<varlistentry>
- <term><option>-hC</option><replaceable>name</replaceable>,...</term>
- <indexterm><primary><option>-hC</option></primary><secondary>RTS
- option</secondary></indexterm>
+ <term>
+ <option>-hC</option><replaceable>name</replaceable>,...
+ <indexterm><primary><option>-hC</option></primary><secondary>RTS option</secondary></indexterm>
+ </term>
<listitem>
<para>Restrict the profile to closures produced by
cost-centre stacks with one of the specified cost centres
</varlistentry>
<varlistentry>
- <term><option>-hm</option><replaceable>module</replaceable>,...</term>
- <indexterm><primary><option>-hm</option></primary><secondary>RTS
- option</secondary></indexterm>
+ <term>
+ <option>-hm</option><replaceable>module</replaceable>,...
+ <indexterm><primary><option>-hm</option></primary><secondary>RTS option</secondary></indexterm>
+ </term>
<listitem>
<para>Restrict the profile to closures produced by the
specified modules.</para>
</varlistentry>
<varlistentry>
- <term><option>-hd</option><replaceable>desc</replaceable>,...</term>
- <indexterm><primary><option>-hd</option></primary><secondary>RTS
- option</secondary></indexterm>
+ <term>
+ <option>-hd</option><replaceable>desc</replaceable>,...
+ <indexterm><primary><option>-hd</option></primary><secondary>RTS option</secondary></indexterm>
+ </term>
<listitem>
<para>Restrict the profile to closures with the specified
description strings.</para>
</varlistentry>
<varlistentry>
- <term><option>-hy</option><replaceable>type</replaceable>,...</term>
- <indexterm><primary><option>-hy</option></primary><secondary>RTS
- option</secondary></indexterm>
+ <term>
+ <option>-hy</option><replaceable>type</replaceable>,...
+ <indexterm><primary><option>-hy</option></primary><secondary>RTS option</secondary></indexterm>
+ </term>
<listitem>
<para>Restrict the profile to closures with the specified
types.</para>
</varlistentry>
<varlistentry>
- <term><option>-hr</option><replaceable>cc</replaceable>,...</term>
- <indexterm><primary><option>-hr</option></primary><secondary>RTS
- option</secondary></indexterm>
+ <term>
+ <option>-hr</option><replaceable>cc</replaceable>,...
+ <indexterm><primary><option>-hr</option></primary><secondary>RTS option</secondary></indexterm>
+ </term>
<listitem>
<para>Restrict the profile to closures with retainer sets
containing cost-centre stacks with one of the specified
</varlistentry>
<varlistentry>
- <term><option>-hb</option><replaceable>bio</replaceable>,...</term>
- <indexterm><primary><option>-hb</option></primary><secondary>RTS
- option</secondary></indexterm>
+ <term>
+ <option>-hb</option><replaceable>bio</replaceable>,...
+ <indexterm><primary><option>-hb</option></primary><secondary>RTS option</secondary></indexterm>
+ </term>
<listitem>
<para>Restrict the profile to closures with one of the
specified biographies, where
<variablelist>
<varlistentry>
- <term><option>-i<replaceable>secs</replaceable></option>:</term>
- <indexterm><primary><option>-i</option></primary></indexterm>
+ <term>
+ <option>-i<replaceable>secs</replaceable></option>:
+ <indexterm><primary><option>-i</option></primary></indexterm>
+ </term>
<listitem>
<para>Set the profiling (sampling) interval to
<replaceable>secs</replaceable> seconds (the default is
</varlistentry>
<varlistentry>
- <term><option>-xt</option></term>
- <indexterm><primary><option>-xt</option></primary><secondary>RTS option</secondary>
- </indexterm>
+ <term>
+ <option>-xt</option>
+ <indexterm><primary><option>-xt</option></primary><secondary>RTS option</secondary></indexterm>
+ </term>
<listitem>
<para>Include the memory occupied by threads in a heap
profile. Each thread takes up a small area for its thread
<variablelist>
<varlistentry>
- <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>
+ <term>
+ <option>-A</option><replaceable>size</replaceable>
+ <indexterm><primary><option>-A</option></primary><secondary>RTS option</secondary></indexterm>
+ <indexterm><primary>allocation area, size</primary></indexterm>
+ </term>
<listitem>
<para>[Default: 256k] Set the allocation area size
used by the garbage collector. The allocation area
</varlistentry>
<varlistentry>
- <term><option>-c</option></term>
- <indexterm><primary><option>-c</option></primary><secondary>RTS option</secondary>
- </indexterm>
- <indexterm><primary>garbage collection</primary><secondary>compacting</secondary>
- </indexterm>
- <indexterm><primary>compacting garbage collection</primary></indexterm>
-
+ <term>
+ <option>-c</option>
+ <indexterm><primary><option>-c</option></primary><secondary>RTS option</secondary></indexterm>
+ <indexterm><primary>garbage collection</primary><secondary>compacting</secondary></indexterm>
+ <indexterm><primary>compacting garbage collection</primary></indexterm>
+ </term>
<listitem>
<para>Use a compacting algorithm for collecting the oldest
generation. By default, the oldest generation is collected
</varlistentry>
<varlistentry>
- <term><option>-F</option><replaceable>factor</replaceable></term>
+ <term>
+ <option>-F</option><replaceable>factor</replaceable>
+ <indexterm><primary><option>-F</option></primary><secondary>RTS option</secondary></indexterm>
+ <indexterm><primary>heap size, factor</primary></indexterm>
+ </term>
<listitem>
- <indexterm><primary><option>-F</option></primary><secondary>RTS option</secondary></indexterm>
- <indexterm><primary>heap size, factor</primary></indexterm>
<para>[Default: 2] This option controls the amount
of memory reserved for the older generations (and in the
</varlistentry>
<varlistentry>
- <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>
+ <term>
+ <option>-G</option><replaceable>generations</replaceable>
+ <indexterm><primary><option>-G</option></primary><secondary>RTS option</secondary></indexterm>
+ <indexterm><primary>generations, number of</primary></indexterm>
+ </term>
<listitem>
<para>[Default: 2] Set the number of generations
used by the garbage collector. The default of 2 seems to be
</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>
+ <term>
+ <option>-H</option><replaceable>size</replaceable>
+ <indexterm><primary><option>-H</option></primary><secondary>RTS option</secondary></indexterm>
+ <indexterm><primary>heap size, suggested</primary></indexterm>
+ </term>
<listitem>
<para>[Default: 0] This option provides a
“suggested heap size” for the garbage collector. The
</varlistentry>
<varlistentry>
- <term><option>-k</option><replaceable>size</replaceable></term>
- <indexterm><primary><option>-k</option></primary><secondary>RTS option</secondary></indexterm>
- <indexterm><primary>stack, minimum size</primary></indexterm>
+ <term>
+ <option>-k</option><replaceable>size</replaceable>
+ <indexterm><primary><option>-k</option></primary><secondary>RTS option</secondary></indexterm>
+ <indexterm><primary>stack, minimum size</primary></indexterm>
+ </term>
<listitem>
<para>[Default: 1k] Set the initial stack size for
new threads. Thread stacks (including the main thread's
</varlistentry>
<varlistentry>
- <term><option>-K</option><replaceable>size</replaceable></term>
- <indexterm><primary><option>-K</option></primary><secondary>RTS option</secondary></indexterm>
- <indexterm><primary>stack, maximum size</primary></indexterm>
+ <term>
+ <option>-K</option><replaceable>size</replaceable>
+ <indexterm><primary><option>-K</option></primary><secondary>RTS option</secondary></indexterm>
+ <indexterm><primary>stack, maximum size</primary></indexterm>
+ </term>
<listitem>
<para>[Default: 8M] Set the maximum stack size for
an individual thread to <replaceable>size</replaceable>
</varlistentry>
<varlistentry>
- <term><option>-m</option><replaceable>n</replaceable></term>
- <indexterm><primary><option>-m</option></primary><secondary>RTS option</secondary></indexterm>
- <indexterm><primary>heap, minimum free</primary></indexterm>
+ <term>
+ <option>-m</option><replaceable>n</replaceable>
+ <indexterm><primary><option>-m</option></primary><secondary>RTS option</secondary></indexterm>
+ <indexterm><primary>heap, minimum free</primary></indexterm>
+ </term>
<listitem>
<para>Minimum % <replaceable>n</replaceable> of heap
which must be available for allocation. The default is
</varlistentry>
<varlistentry>
- <term><option>-M</option><replaceable>size</replaceable></term>
- <indexterm><primary><option>-M</option></primary><secondary>RTS option</secondary></indexterm>
- <indexterm><primary>heap size, maximum</primary></indexterm>
+ <term>
+ <option>-M</option><replaceable>size</replaceable>
+ <indexterm><primary><option>-M</option></primary><secondary>RTS option</secondary></indexterm>
+ <indexterm><primary>heap size, maximum</primary></indexterm>
+ </term>
<listitem>
<para>[Default: unlimited] Set the maximum heap size to
<replaceable>size</replaceable> bytes. The heap normally
</varlistentry>
<varlistentry>
- <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>
+ <term>
+ <option>-s</option><replaceable>file</replaceable>
+ <indexterm><primary><option>-s</option></primary><secondary>RTS option</secondary></indexterm>
+ </term>
+ <term>
+ <option>-S</option><replaceable>file</replaceable>
+ <indexterm><primary><option>-S</option></primary><secondary>RTS option</secondary></indexterm>
+ </term>
<listitem>
<para>Write modest (<option>-s</option>) or verbose
(<option>-S</option>) garbage-collector statistics into file
</varlistentry>
<varlistentry>
- <term><option>-t</option></term>
- <indexterm><primary><option>-t</option></primary><secondary>RTS option</secondary></indexterm>
+ <term>
+ <option>-t</option>
+ <indexterm><primary><option>-t</option></primary><secondary>RTS option</secondary></indexterm>
+ </term>
<listitem>
<para>Write a one-line GC stats summary after running the
program. This output is in the same format as that produced
<variablelist>
<varlistentry>
- <term><option>-B</option></term>
- <indexterm><primary><option>-B</option></primary><secondary>RTS option</secondary></indexterm>
+ <term>
+ <option>-B</option>
+ <indexterm><primary><option>-B</option></primary><secondary>RTS option</secondary></indexterm>
+ </term>
<listitem>
<para>Sound the bell at the start of each (major) garbage
collection.</para>
</varlistentry>
<varlistentry>
- <term><option>-D</option><replaceable>num</replaceable></term>
- <indexterm><primary>-D</primary><secondary>RTS option</secondary></indexterm>
+ <term>
+ <option>-D</option><replaceable>num</replaceable>
+ <indexterm><primary>-D</primary><secondary>RTS option</secondary></indexterm>
+ </term>
<listitem>
<para>An RTS debugging flag; varying quantities of output
depending on which bits are set in
</varlistentry>
<varlistentry>
- <term><option>-r</option><replaceable>file</replaceable></term>
- <indexterm><primary><option>-r</option></primary><secondary>RTS option</secondary></indexterm>
- <indexterm><primary>ticky ticky profiling</primary></indexterm>
- <indexterm><primary>profiling</primary><secondary>ticky ticky</secondary></indexterm>
+ <term>
+ <option>-r</option><replaceable>file</replaceable>
+ <indexterm><primary><option>-r</option></primary><secondary>RTS option</secondary></indexterm>
+ <indexterm><primary>ticky ticky profiling</primary></indexterm>
+ <indexterm><primary>profiling</primary><secondary>ticky ticky</secondary></indexterm>
+ </term>
<listitem>
<para>Produce “ticky-ticky” statistics at the
end of the program run. The <replaceable>file</replaceable>
</varlistentry>
<varlistentry>
- <term><option>-xc</option></term>
- <indexterm><primary><option>-xc</option></primary><secondary>RTS
- option</secondary></indexterm>
+ <term>
+ <option>-xc</option>
+ <indexterm><primary><option>-xc</option></primary><secondary>RTS option</secondary></indexterm>
+ </term>
<listitem>
<para>(Only available when the program is compiled for
profiling.) When an exception is raised in the program,
</varlistentry>
<varlistentry>
- <term><option>-Z</option></term>
- <indexterm><primary><option>-Z</option></primary><secondary>RTS
- option</secondary></indexterm>
+ <term>
+ <option>-Z</option>
+ <indexterm><primary><option>-Z</option></primary><secondary>RTS option</secondary></indexterm>
+ </term>
<listitem>
<para>Turn <emphasis>off</emphasis> “update-frame
squeezing” at garbage-collection time. (There's no
<variablelist>
<varlistentry>
- <term><function>void OutOfHeapHook (unsigned long, unsigned long)</function></term>
- <indexterm><primary><function>OutOfHeapHook</function></primary></indexterm>
+ <term>
+ <function>void OutOfHeapHook (unsigned long, unsigned long)</function>
+ <indexterm><primary><function>OutOfHeapHook</function></primary></indexterm>
+ </term>
<listitem>
<para>The heap-overflow message.</para>
</listitem>
</varlistentry>
<varlistentry>
- <term><function>void StackOverflowHook (long int)</function></term>
- <indexterm><primary><function>StackOverflowHook</function></primary></indexterm>
+ <term>
+ <function>void StackOverflowHook (long int)</function>
+ <indexterm><primary><function>StackOverflowHook</function></primary></indexterm>
+ </term>
<listitem>
<para>The stack-overflow message.</para>
</listitem>
</varlistentry>
<varlistentry>
- <term><function>void MallocFailHook (long int)</function></term>
- <indexterm><primary><function>MallocFailHook</function></primary></indexterm>
+ <term>
+ <function>void MallocFailHook (long int)</function>
+ <indexterm><primary><function>MallocFailHook</function></primary></indexterm>
+ </term>
<listitem>
<para>The message printed if <function>malloc</function>
fails.</para>
<variablelist>
<varlistentry>
- <term>No <option>-O*</option>-type option specified:</term>
- <indexterm><primary>-O* not specified</primary></indexterm>
+ <term>
+ No <option>-O*</option>-type option specified:
+ <indexterm><primary>-O* not specified</primary></indexterm>
+ </term>
<listitem>
<para>This is taken to mean: “Please compile
quickly; I'm not over-bothered about compiled-code
</varlistentry>
<varlistentry>
- <term><option>-O0</option>:</term>
- <indexterm><primary><option>-O0</option></primary></indexterm>
+ <term>
+ <option>-O0</option>:
+ <indexterm><primary><option>-O0</option></primary></indexterm>
+ </term>
<listitem>
<para>Means “turn off all optimisation”,
reverting to the same settings as if no
</varlistentry>
<varlistentry>
- <term><option>-O</option> or <option>-O1</option>:</term>
- <indexterm><primary>-O option</primary></indexterm>
- <indexterm><primary>-O1 option</primary></indexterm>
- <indexterm><primary>optimise</primary><secondary>normally</secondary></indexterm>
+ <term>
+ <option>-O</option> or <option>-O1</option>:
+ <indexterm><primary>-O option</primary></indexterm>
+ <indexterm><primary>-O1 option</primary></indexterm>
+ <indexterm><primary>optimise</primary><secondary>normally</secondary></indexterm>
+ </term>
<listitem>
<para>Means: “Generate good-quality code without
taking too long about it.” Thus, for example:
</varlistentry>
<varlistentry>
- <term><option>-O2</option>:</term>
- <indexterm><primary>-O2 option</primary></indexterm>
- <indexterm><primary>optimise</primary><secondary>aggressively</secondary></indexterm>
+ <term>
+ <option>-O2</option>:
+ <indexterm><primary>-O2 option</primary></indexterm>
+ <indexterm><primary>optimise</primary><secondary>aggressively</secondary></indexterm>
+ </term>
<listitem>
<para>Means: “Apply every non-dangerous
optimisation, even if it means significantly longer
</varlistentry>
<varlistentry>
- <term><option>-Ofile <file></option>:</term>
- <indexterm><primary>-Ofile <file> option</primary></indexterm>
- <indexterm><primary>optimising, customised</primary></indexterm>
+ <term>
+ <option>-Ofile <file></option>:
+ <indexterm><primary>-Ofile <file> option</primary></indexterm>
+ <indexterm><primary>optimising, customised</primary></indexterm>
+ </term>
<listitem>
<para>(NOTE: not supported since GHC 4.x. Please ask if
you're interested in this.)</para>
</varlistentry>
<varlistentry>
- <term><option>-fno-strictness</option></term>
- <indexterm><primary><option>-fno-strictness</option></primary>
- </indexterm>
+ <term>
+ <option>-fno-strictness</option>
+ <indexterm><primary><option>-fno-strictness</option></primary></indexterm>
+ </term>
<listitem>
<para>Turns off the strictness analyser; sometimes it eats
too many cycles.</para>
</varlistentry>
<varlistentry>
- <term><option>-fno-cpr-analyse</option></term>
- <indexterm><primary><option>-fno-cpr-analyse</option></primary>
- </indexterm>
+ <term>
+ <option>-fno-cpr-analyse</option>
+ <indexterm><primary><option>-fno-cpr-analyse</option></primary></indexterm>
+ </term>
<listitem>
<para>Turns off the CPR (constructed product result)
analysis; it is somewhat experimental.</para>
</varlistentry>
<varlistentry>
- <term><option>-funbox-strict-fields</option>:</term>
- <listitem>
+ <term>
+ <option>-funbox-strict-fields</option>:
<indexterm><primary><option>-funbox-strict-fields</option></primary></indexterm>
<indexterm><primary>strict constructor fields</primary></indexterm>
<indexterm><primary>constructor fields, strict</primary></indexterm>
-
+ </term>
+ <listitem>
<para>This option causes all constructor fields which are
marked strict (i.e. “!”) to be unboxed or
unpacked if possible. It is equivalent to adding an
</varlistentry>
<varlistentry>
- <term><option>-funfolding-update-in-place<n></option></term>
- <indexterm><primary><option>-funfolding-update-in-place</option></primary></indexterm>
+ <term>
+ <option>-funfolding-update-in-place<n></option>
+ <indexterm><primary><option>-funfolding-update-in-place</option></primary></indexterm>
+ </term>
<listitem>
<para>Switches on an experimental "optimisation".
Switching it on makes the compiler a little keener to
</varlistentry>
<varlistentry>
- <term><option>-funfolding-creation-threshold<n></option>:</term>
- <listitem>
+ <term>
+ <option>-funfolding-creation-threshold<n></option>:
<indexterm><primary><option>-funfolding-creation-threshold</option></primary></indexterm>
<indexterm><primary>inlining, controlling</primary></indexterm>
<indexterm><primary>unfolding, controlling</primary></indexterm>
-
+ </term>
+ <listitem>
<para>(Default: 45) Governs the maximum size that GHC will
allow a function unfolding to be. (An unfolding has a
“size” that reflects the cost in terms of
<variablelist>
<varlistentry>
- <term><option>-fext-core</option></term>
- <indexterm>
- <primary><option>-fext-core</option></primary>
- </indexterm>
+ <term>
+ <option>-fext-core</option>
+ <indexterm><primary><option>-fext-core</option></primary></indexterm>
+ </term>
<listitem>
<para>Generate <literal>.hcr</literal> files.</para>
</listitem>