</row>
<row>
<entry><option>-odir</option> <replaceable>dir</replaceable></entry>
- <entry>set output directory</entry>
+ <entry>set directory for object files</entry>
<entry>dynamic</entry>
<entry>-</entry>
</row>
<entry>dynamic</entry>
<entry>-</entry>
</row>
+ <row>
+ <entry><option>-outputdir</option> <replaceable>dir</replaceable></entry>
+ <entry>set output directory</entry>
+ <entry>dynamic</entry>
+ <entry>-</entry>
+ </row>
</tbody>
</tgroup>
</informaltable>
<sect2>
<title>Language options</title>
- <para><xref linkend="options-language"/></para>
+ <para>Language options can be enabled either by a command-line option
+ <option>-Xblah</option>, or by a <literal>{-# LANGUAGE blah #-}</literal>
+ pragma in the file itself. See <xref linkend="options-language"/></para>
<informaltable>
<tgroup cols="4" align="left" colsep="1" rowsep="1">
<entry><option>-XNoArrows</option></entry>
</row>
<row>
- <entry><option>-fdisambiguate-record-fields</option></entry>
+ <entry><option>-XDisambiguateRecordFields</option></entry>
<entry>Enable <link linkend="disambiguate-fields">record
field disambiguation</link></entry>
<entry>dynamic</entry>
- <entry><option>-fno-disambiguate-record-fields</option></entry>
+ <entry><option>-XNoDisambiguateRecordFields</option></entry>
</row>
<row>
<entry><option>-XForeignFunctionInterface</option></entry>
<entry><option>-XMonomorphismRrestriction</option></entry>
</row>
<row>
+ <entry><option>-XNoNPlusKPatterns</option></entry>
+ <entry>Disable support for <literal>n+k</literal> patterns</entry>
+ <entry>dynamic</entry>
+ <entry><option>-XNPlusKPatterns</option></entry>
+ </row>
+ <row>
<entry><option>-XNoMonoPatBinds</option></entry>
<entry>Make <link linkend="monomorphism">pattern bindings polymorphic</link></entry>
<entry>dynamic</entry>
<entry><option>-XNoScopedTypeVariables</option></entry>
</row>
<row>
+ <entry><option>-XMonoLocalBinds</option></entry>
+ <entry>Enable <link linkend="mono-local-binds">do not generalise local bindings</link>.
+ </entry>
+ <entry>dynamic</entry>
+ <entry><option>-XNoMonoLocalBinds</option></entry>
+ </row>
+ <row>
<entry><option>-XTemplateHaskell</option></entry>
<entry>Enable <link linkend="template-haskell">Template Haskell</link>.
No longer implied by <option>-fglasgow-exts</option>.</entry>
</row>
<row>
<entry><option>-XUnicodeSyntax</option></entry>
- <entry>Enable unicode syntax.</entry>
+ <entry>Enable <link linkend="unicode-syntax">unicode syntax</link>.</entry>
<entry>dynamic</entry>
<entry><option>-XNoUnicodeSyntax</option></entry>
</row>
<entry><option>-XNoMagicHash</option></entry>
</row>
<row>
+ <entry><option>-XNewQualifiedOperators</option></entry>
+ <entry>Enable <link linkend="new-qualified-operators">new
+ qualified operator syntax</link></entry>
+ <entry>dynamic</entry>
+ <entry><option>-XNoNewQualifiedOperators</option></entry>
+ </row>
+ <row>
+ <entry><option>-XExplicitForALl</option></entry>
+ <entry>Enable <link linkend="explicit-foralls">explicit universal quantification</link>.
+ Implied by <option>-XScopedTypeVariables</option>,
+ <option>-XLiberalTypeSynonyms</option>,
+ <option>-XRank2Types</option>,
+ <option>-XRankNTypes</option>,
+ <option>-XPolymorphicComponents</option>,
+ <option>-XExistentialQuantification</option>
+ </entry>
+ <entry>dynamic</entry>
+ <entry><option>-XNoExplicitForAll</option></entry>
+ </row>
+ <row>
<entry><option>-XPolymorphicComponents</option></entry>
<entry>Enable <link linkend="universal-quantification">polymorphic components for data constructors</link>.</entry>
<entry>dynamic</entry>
</row>
<row>
<entry><option>-XTransformListComp</option></entry>
- <entry>Enable <link linkend="generalised-list-comprehensions">transform list comprehensions</link>.</entry>
+ <entry>Enable <link linkend="generalised-list-comprehensions">generalised list comprehensions</link>.</entry>
<entry>dynamic</entry>
<entry><option>-XNoTransformListComp</option></entry>
</row>
</row>
<row>
<entry><option>-XTypeSynonymInstances</option></entry>
- <entry>Enable <link linkend="type-synonyms">type synonyms</link>.</entry>
+ <entry>Enable <link linkend="flexible-instance-head">type synonyms in instance heads</link>.</entry>
<entry>dynamic</entry>
<entry><option>-XNoTypeSynonymInstances</option></entry>
</row>
</row>
<row>
+ <entry><option>-fwarn-unrecognised-pragmas</option></entry>
+ <entry>warn about uses of pragmas that GHC doesn't recognise</entry>
+ <entry>dynamic</entry>
+ <entry><option>-fno-warn-unrecognised-pragmas</option></entry>
+ </row>
+
+ <row>
<entry><option>-fwarn-warnings-deprecations</option></entry>
<entry>warn about uses of functions & types that have warnings or deprecated pragmas</entry>
<entry>dynamic</entry>
<entry><option>-fno-warn-unused-matches</option></entry>
</row>
+ <row>
+ <entry><option>-fwarn-unused-do-bind</option></entry>
+ <entry>warn about do bindings that appear to throw away values of types other than <literal>()</literal></entry>
+ <entry>dynamic</entry>
+ <entry><option>-fno-warn-unused-do-bind</option></entry>
+ </row>
+
+ <row>
+ <entry><option>-fwarn-wrong-do-bind</option></entry>
+ <entry>warn about do bindings that appear to throw away monadic values that you should have bound instead</entry>
+ <entry>dynamic</entry>
+ <entry><option>-fno-warn-wrong-do-bind</option></entry>
+ </row>
+
</tbody>
</tgroup>
</informaltable>
</row>
<row>
+ <entry><option>-fspecialise</option></entry>
+ <entry>Turn on specialisation of overloaded functions. Implied by <option>-O</option>.</entry>
+ <entry>dynamic</entry>
+ <entry>-fno-specialise</entry>
+ </row>
+
+ <row>
<entry><option>-ffull-laziness</option></entry>
<entry>Turn on full laziness (floating bindings outwards). Implied by <option>-O</option>.</entry>
<entry>dynamic</entry>
</row>
<row>
- <entry><option>-frewrite-rules</option></entry>
+ <entry><option>-ffloat-in</option></entry>
+ <entry>Turn on the float-in transformation. Implied by <option>-O</option>.</entry>
+ <entry>dynamic</entry>
+ <entry>-fno-float-in</entry>
+ </row>
+
+ <row>
+ <entry><option>-fenable-rewrite-rules</option></entry>
<entry>Switch on all rewrite rules (including rules
generated by automatic specialisation of overloaded functions).
Implied by <option>-O</option>. </entry>
<entry>dynamic</entry>
- <entry><option>-fno-rewrite-rules</option></entry>
+ <entry><option>-fno-enable-rewrite-rules</option></entry>
</row>
<row>
<entry>-fno-strictness</entry>
</row>
+ <row>
+ <entry><option>-fstrictness=before</option>=<replaceable>n</replaceable></entry>
+ <entry>Run an additional strictness analysis before simplifier
+phase <replaceable>n</replaceable></entry>
+ <entry>dynamic</entry>
+ <entry>-</entry>
+ </row>
+
<row>
<entry><option>-fspec-constr</option></entry>
<entry>Turn on the SpecConstr transformation. Implied by <option>-O2</option>.</entry>
<entry>static</entry>
<entry>-</entry>
</row>
+
+ <row>
+ <entry><option>-feager-blackholing</option></entry>
+ <entry>Turn on <link linkend="parallel-compile-options">eager blackholing</link></entry>
+ <entry>dynamic</entry>
+ <entry>-</entry>
+ </row>
</tbody>
</tgroup>
</informaltable>
<entry><option>-auto</option></entry>
<entry>Auto-add <literal>_scc_</literal>s to all
exported functions</entry>
- <entry>static</entry>
+ <entry>dynamic</entry>
<entry><option>-no-auto</option></entry>
</row>
<row>
<entry><option>-auto-all</option></entry>
<entry>Auto-add <literal>_scc_</literal>s to all
top-level functions</entry>
- <entry>static</entry>
+ <entry>dynamic</entry>
<entry><option>-no-auto-all</option></entry>
</row>
<row>
<entry><option>-caf-all</option></entry>
<entry>Auto-add <literal>_scc_</literal>s to all CAFs</entry>
- <entry>static</entry>
+ <entry>dynamic</entry>
<entry><option>-no-caf-all</option></entry>
</row>
<row>
</row>
<row>
<entry><option>-ticky</option></entry>
- <entry>Turn on ticky-ticky profiling</entry>
+ <entry><link linkend="ticky-ticky">Turn on ticky-ticky profiling</link></entry>
<entry>static</entry>
<entry>-</entry>
</row>
</sect2>
<sect2>
- <title>C compiler options</title>
-
- <para><xref linkend="options-C-compiler"/></para>
- <informaltable>
- <tgroup cols="4" align="left" colsep="1" rowsep="1">
- <thead>
- <row>
- <entry>Flag</entry>
- <entry>Description</entry>
- <entry>Static/Dynamic</entry>
- <entry>Reverse</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry><option>-#include</option> <replaceable>file</replaceable></entry>
- <entry>Include <replaceable>file</replaceable> when
- compiling the <filename>.hc</filename> file</entry>
- <entry>dynamic</entry>
- <entry>-</entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
- </sect2>
-
- <sect2>
<title>Code generation options</title>
<para><xref linkend="options-codegen"/></para>
</thead>
<tbody>
<row>
+ <entry><option>-shared</option></entry>
+ <entry>Generate a shared library (as opposed to an executable)</entry>
+ <entry>dynamic</entry>
+ <entry>-</entry>
+ </row>
+ <row>
<entry><option>-fPIC</option></entry>
<entry>Generate position-independent code (where available)</entry>
<entry>static</entry>
<entry>-</entry>
</row>
<row>
+ <entry><option>-dynload</option></entry>
+ <entry>Selects one of a number of modes for finding shared
+ libraries at runtime.</entry>
+ <entry>static</entry>
+ <entry>-</entry>
+ </row>
+ <row>
<entry><option>-framework</option> <replaceable>name</replaceable></entry>
<entry>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.</entry>
<entry>-</entry>
</row>
<row>
+ <entry><option>-eventlog</option></entry>
+ <entry>Enable runtime event tracing</entry>
+ <entry>static</entry>
+ <entry>-</entry>
+ </row>
+ <row>
<entry><option>-fno-gen-manifest</option></entry>
<entry>Do not generate a manifest file (Windows only)</entry>
<entry>dynamic</entry>
<entry>dynamic</entry>
<entry>-</entry>
</row>
+ <row>
+ <entry><option>-fno-shared-implib</option></entry>
+ <entry>Don't generate an import library for a DLL (Windows only)</entry>
+ <entry>dynamic</entry>
+ <entry>-</entry>
+ </row>
</tbody>
</tgroup>
</informaltable>
<entry>-</entry>
</row>
<row>
- <entry><option>-optdep</option> <replaceable>option</replaceable></entry>
- <entry>pass <replaceable>option</replaceable> to the dependency generator</entry>
- <entry>dynamic</entry>
- <entry>-</entry>
- </row>
- <row>
<entry><option>-optwindres</option> <replaceable>option</replaceable></entry>
<entry>pass <replaceable>option</replaceable> to <literal>windres</literal>.</entry>
<entry>dynamic</entry>
<row>
<entry><option>-fext-core</option></entry>
<entry>Generate <filename>.hcr</filename> external Core files</entry>
- <entry>static</entry>
+ <entry>dynamic</entry>
<entry>-</entry>
</row>
</tbody>
<entry>-</entry>
</row>
<row>
+ <entry><option>-dsuppress-coercions</option></entry>
+ <entry>Suppress the printing of coercions in Core dumps to make them shorter.</entry>
+ <entry>static</entry>
+ <entry>-</entry>
+ </row>
+ <row>
<entry><option>-dppr-noprags</option></entry>
<entry>Don't output pragma info in dumps</entry>
<entry>static</entry>