<para>This section is a quick-reference for GHC's command-line
flags. For each flag, we also list its static/dynamic status (see
- <xref linkend="static-dynamic-flags">), and the flag's opposite
+ <xref linkend="static-dynamic-flags"/>), and the flag's opposite
(if available).</para>
<sect2>
- <title>Help and verbosity options (<xref linkend="options-help">)</title>
+ <title>Help and verbosity options (<xref linkend="options-help"/>)</title>
<informaltable>
- <tgroup cols=3 align=left colsep=1 rowsep=1>
+ <tgroup cols="3" align="left" colsep="1" rowsep="1">
<thead>
<row>
<entry>Flag</entry>
</sect2>
<sect2>
- <title>Which phases to run (<xref linkend="options-order">)</title>
+ <title>Which phases to run (<xref linkend="options-order"/>)</title>
<informaltable>
- <tgroup cols=3 align=left colsep=1 rowsep=1>
+ <tgroup cols="3" align="left" colsep="1" rowsep="1">
<thead>
<row>
<entry>Flag</entry>
</sect2>
<sect2>
- <title>Redirecting output (<xref linkend="options-output">)</title>
+ <title>Redirecting output (<xref linkend="options-output"/>)</title>
<informaltable>
- <tgroup cols=3 align=left colsep=1 rowsep=1>
+ <tgroup cols="3" align="left" colsep="1" rowsep="1">
<thead>
<row>
<entry>Flag</entry>
</sect2>
<sect2>
- <title>Keeping intermediate files (<xref linkend="keeping-intermediates">)</title>
+ <title>Keeping intermediate files (<xref linkend="keeping-intermediates"/>)</title>
<informaltable>
- <tgroup cols=3 align=left colsep=1 rowsep=1>
+ <tgroup cols="3" align="left" colsep="1" rowsep="1">
<thead>
<row>
<entry>Flag</entry>
</sect2>
<sect2>
- <title>Temporary files (<xref linkend="temp-files">)</title>
+ <title>Temporary files (<xref linkend="temp-files"/>)</title>
<informaltable>
- <tgroup cols=3 align=left colsep=1 rowsep=1>
+ <tgroup cols="3" align="left" colsep="1" rowsep="1">
<thead>
<row>
<entry>Flag</entry>
</sect2>
<sect2>
- <title>Finding imports (<xref linkend="search-path">)</title>
+ <title>Finding imports (<xref linkend="search-path"/>)</title>
<informaltable>
- <tgroup cols=3 align=left colsep=1 rowsep=1>
+ <tgroup cols="3" align="left" colsep="1" rowsep="1">
<thead>
<row>
<entry>Flag</entry>
</sect2>
<sect2>
- <title>Interface file options (<xref linkend="hi-options">)</title>
+ <title>Interface file options (<xref linkend="hi-options"/>)</title>
<informaltable>
- <tgroup cols=3 align=left colsep=1 rowsep=1>
+ <tgroup cols="3" align="left" colsep="1" rowsep="1">
<thead>
<row>
<entry>Flag</entry>
</sect2>
<sect2>
- <title>Recompilation checking (<xref linkend="recomp">)</title>
+ <title>Recompilation checking (<xref linkend="recomp"/>)</title>
<informaltable>
- <tgroup cols=3 align=left colsep=1 rowsep=1>
+ <tgroup cols="3" align="left" colsep="1" rowsep="1">
<thead>
<row>
<entry>Flag</entry>
</sect2>
<sect2>
- <title>Interactive-mode options (<xref linkend="ghci-dot-files">)</title>
+ <title>Interactive-mode options (<xref linkend="ghci-dot-files"/>)</title>
<informaltable>
- <tgroup cols=3 align=left colsep=1 rowsep=1>
+ <tgroup cols="3" align="left" colsep="1" rowsep="1">
<thead>
<row>
<entry>Flag</entry>
</sect2>
<sect2>
- <title>Packages (<xref linkend="packages">)</title>
+ <title>Packages (<xref linkend="packages"/>)</title>
<informaltable>
- <tgroup cols=3 align=left colsep=1 rowsep=1>
+ <tgroup cols="3" align="left" colsep="1" rowsep="1">
<thead>
<row>
<entry>Flag</entry>
</sect2>
<sect2>
- <title>Language options (<xref linkend="options-language">)</title>
+ <title>Language options (<xref linkend="options-language"/>)</title>
<informaltable>
- <tgroup cols=3 align=left colsep=1 rowsep=1>
+ <tgroup cols="3" align="left" colsep="1" rowsep="1">
<thead>
<row>
<entry>Flag</entry>
<row>
<entry><option>-fcontext-stack</option><replaceable>n</replaceable></entry>
<entry>set the limit for context reduction</entry>
- <entry>dynamic</entry>
+ <entry>static</entry>
<entry><option>-</option></entry>
</row>
<row>
</sect2>
<sect2>
- <title>Warnings (<xref linkend="options-sanity">)</title>
+ <title>Warnings (<xref linkend="options-sanity"/>)</title>
<informaltable>
- <tgroup cols=3 align=left colsep=1 rowsep=1>
+ <tgroup cols="3" align="left" colsep="1" rowsep="1">
<thead>
<row>
<entry>Flag</entry>
<row>
<entry><option>-fwarn-deprecations</option></entry>
- <entry>warn about uses of functions & types that are deprecated</entry>
+ <entry>warn about uses of functions & types that are deprecated</entry>
<entry>dynamic</entry>
<entry><option>-fno-warn-deprecations</option></entry>
</row>
</sect2>
<sect2>
- <title>Optimisation levels (<xref linkend="options-optimise">)</title>
+ <title>Optimisation levels (<xref linkend="options-optimise"/>)</title>
<informaltable>
- <tgroup cols=3 align=left colsep=1 rowsep=1>
+ <tgroup cols="3" align="left" colsep="1" rowsep="1">
<thead>
<row>
<entry>Flag</entry>
</sect2>
<sect2>
- <title>Individual optimisations (<xref linkend="options-f">)</title>
+ <title>Individual optimisations (<xref linkend="options-f"/>)</title>
<informaltable>
- <tgroup cols=3 align=left colsep=1 rowsep=1>
+ <tgroup cols="3" align="left" colsep="1" rowsep="1">
<thead>
<row>
<entry>Flag</entry>
</row>
<row>
+ <entry><option>-fno-state-hack</option></entry>
+ <entry>Turn off the "state hack" whereby any lambda with a real-world state token
+ as argument is considered to be single-entry. Hence OK to inline things inside it.</entry>
+ <entry>static</entry>
+ <entry>-</entry>
+ </row>
+
+ <row>
<entry><option>-fno-cpr</option></entry>
<entry>Turn off CPR analysis</entry>
<entry>static</entry>
- <entry>-</entry>
+ <entry>-fcpr</entry>
</row>
<row>
</row>
<row>
+ <entry><option>-fno-full-laziness</option></entry>
+ <entry>Turn off full laziness (floating bindings outwards). It is on by default.</entry>
+ <entry>dynamic</entry>
+ <entry>-ffull-laziness</entry>
+ </row>
+
+ <row>
<entry><option>-fno-pre-inlining</option></entry>
<entry>Turn off pre-inlining</entry>
<entry>static</entry>
</sect2>
<sect2>
- <title>Profiling options (<xref linkend="profiling">)</title>
+ <title>Profiling options (<xref linkend="profiling"/>)</title>
<informaltable>
- <tgroup cols=3 align=left colsep=1 rowsep=1>
+ <tgroup cols="3" align="left" colsep="1" rowsep="1">
<thead>
<row>
<entry>Flag</entry>
</sect2>
<sect2>
- <title>Parallelism options (<xref linkend="sec-using-parallel">)</title>
+ <title>Parallelism options (<xref linkend="sec-using-parallel"/>)</title>
<informaltable>
- <tgroup cols=3 align=left colsep=1 rowsep=1>
+ <tgroup cols="3" align="left" colsep="1" rowsep="1">
<thead>
<row>
<entry>Flag</entry>
</sect2>
<sect2>
- <title>C pre-processor options (<xref linkend="c-pre-processor">)</title>
+ <title>C pre-processor options (<xref linkend="c-pre-processor"/>)</title>
<informaltable>
- <tgroup cols=3 align=left colsep=1 rowsep=1>
+ <tgroup cols="3" align="left" colsep="1" rowsep="1">
<thead>
<row>
<entry>Flag</entry>
</sect2>
<sect2>
- <title>C compiler options (<xref linkend="options-C-compiler">)</title>
+ <title>C compiler options (<xref linkend="options-C-compiler"/>)</title>
<informaltable>
- <tgroup cols=3 align=left colsep=1 rowsep=1>
+ <tgroup cols="3" align="left" colsep="1" rowsep="1">
<thead>
<row>
<entry>Flag</entry>
</sect2>
<sect2>
- <title>Code generation options (<xref linkend="options-codegen">)</title>
+ <title>Code generation options (<xref linkend="options-codegen"/>)</title>
<informaltable>
- <tgroup cols=3 align=left colsep=1 rowsep=1>
+ <tgroup cols="3" align="left" colsep="1" rowsep="1">
<thead>
<row>
<entry>Flag</entry>
</sect2>
<sect2>
- <title>Linking options (<xref linkend="options-linker">)</title>
+ <title>Linking options (<xref linkend="options-linker"/>)</title>
<informaltable>
- <tgroup cols=3 align=left colsep=1 rowsep=1>
+ <tgroup cols="3" align="left" colsep="1" rowsep="1">
<thead>
<row>
<entry>Flag</entry>
<entry>static</entry>
<entry>-</entry>
</row>
+ <row>
+ <entry><option>-threaded</option></entry>
+ <entry>Use the threaded runtime</entry>
+ <entry>static</entry>
+ <entry>-</entry>
+ </row>
+ <row>
+ <entry><option>-debug</option></entry>
+ <entry>Use the debugging runtime</entry>
+ <entry>static</entry>
+ <entry>-</entry>
+ </row>
</tbody>
</tgroup>
</informaltable>
</sect2>
<sect2>
- <title>Replacing phases (<xref linkend="replacing-phases">)</title>
+ <title>Replacing phases (<xref linkend="replacing-phases"/>)</title>
<informaltable>
- <tgroup cols=3 align=left colsep=1 rowsep=1>
+ <tgroup cols="3" align="left" colsep="1" rowsep="1">
<thead>
<row>
<entry>Flag</entry>
</sect2>
<sect2>
- <title>Forcing options to particular phases (<xref linkend="forcing-options-through">)</title>
+ <title>Forcing options to particular phases (<xref linkend="forcing-options-through"/>)</title>
<informaltable>
- <tgroup cols=3 align=left colsep=1 rowsep=1>
+ <tgroup cols="3" align="left" colsep="1" rowsep="1">
<thead>
<row>
<entry>Flag</entry>
</sect2>
<sect2>
- <title>Platform-specific options (<xref linkend="options-platform">)</title>
+ <title>Platform-specific options (<xref linkend="options-platform"/>)</title>
<informaltable>
- <tgroup cols=3 align=left colsep=1 rowsep=1>
+ <tgroup cols="3" align="left" colsep="1" rowsep="1">
<thead>
<row>
<entry>Flag</entry>
<sect2>
- <title>External core file options (<xref linkend="ext-core">)</title>
+ <title>External core file options (<xref linkend="ext-core"/>)</title>
<informaltable>
- <tgroup cols=3 align=left colsep=1 rowsep=1>
+ <tgroup cols="3" align="left" colsep="1" rowsep="1">
<thead>
<row>
<entry>Flag</entry>
<sect2>
- <title>Compiler debugging options (<xref linkend="options-debugging">)</title>
+ <title>Compiler debugging options (<xref linkend="options-debugging"/>)</title>
<informaltable>
- <tgroup cols=3 align=left colsep=1 rowsep=1>
+ <tgroup cols="3" align="left" colsep="1" rowsep="1">
<thead>
<row>
<entry>Flag</entry>
<title>Misc compiler options</title>
<informaltable>
- <tgroup cols=3 align=left colsep=1 rowsep=1>
+ <tgroup cols="3" align="left" colsep="1" rowsep="1">
<thead>
<row>
<entry>Flag</entry>