<entry>mode</entry>
<entry>-</entry>
</row>
- <row>
- <entry><option>-n</option></entry>
- <entry>do a dry run</entry>
- <entry>dynamic</entry>
- <entry>-</entry>
- </row>
- <row>
+ <row>
<entry><option>-v</option></entry>
<entry>verbose mode (equivalent to <option>-v3</option>)</entry>
<entry>dynamic</entry>
</sect2>
<sect2>
<title>Which phases to run</title>
-
+
<para><xref linkend="options-order"/></para>
<informaltable>
<sect2>
<title>Alternative modes of operation</title>
-
+
<para><xref linkend="modes"/></para>
<informaltable>
<sect2>
<title>Redirecting output</title>
-
+
<para><xref linkend="options-output"/></para>
<informaltable>
<sect2>
<title>Keeping intermediate files</title>
-
+
<para><xref linkend="keeping-intermediates"/></para>
-
+
<informaltable>
<tgroup cols="4" align="left" colsep="1" rowsep="1">
<thead>
<entry>-</entry>
</row>
<row>
- <entry><option>-keep-raw-s-file</option> or
- <option>-keep-raw-s-files</option></entry>
- <entry>retain intermediate <literal>.raw_s</literal> files</entry>
- <entry>dynamic</entry>
- <entry>-</entry>
- </row>
- <row>
<entry><option>-keep-tmp-files</option></entry>
<entry>retain all intermediate temporary files</entry>
<entry>dynamic</entry>
<sect2>
<title>Temporary files</title>
-
+
<para><xref linkend="temp-files"/></para>
<informaltable>
</tgroup>
</informaltable>
</sect2>
-
+
<sect2>
<title>Recompilation checking</title>
<sect2 id="interactive-mode-options">
<title>Interactive-mode options</title>
-
+
<para><xref linkend="ghci-dot-files"/></para>
<informaltable>
<entry><link linkend="breakpoints">Enable usage of Show instances in <literal>:print</literal></link></entry>
<entry>dynamic</entry>
<entry><option>-fno-print-evld-with-show</option></entry>
- </row>
+ </row>
<row>
<entry><option>-fprint-bind-result</option></entry>
<entry><link linkend="ghci-stmts">Turn on printing of binding results in GHCi</link></entry>
<row>
<entry><option>-package-name</option> <replaceable>P</replaceable></entry>
<entry>Compile to be part of package <replaceable>P</replaceable></entry>
- <entry>dynamic</entry>
+ <entry>static</entry>
<entry>-</entry>
</row>
<row>
<sect2>
<title>Language options</title>
- <para>Language options can be enabled either by a command-line option
+ <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>
</row>
<row>
<entry><option>-XIncoherentInstances</option></entry>
- <entry>Enable <link linkend="instance-overlap">incoherent instances</link>.
+ <entry>Enable <link linkend="instance-overlap">incoherent instances</link>.
Implies <option>-XOverlappingInstances</option> </entry>
<entry>dynamic</entry>
<entry><option>-XNoIncoherentInstances</option></entry>
</row>
<row>
<entry><option>-XDisambiguateRecordFields</option></entry>
- <entry>Enable <link linkend="disambiguate-fields">record
+ <entry>Enable <link linkend="disambiguate-fields">record
field disambiguation</link></entry>
<entry>dynamic</entry>
<entry><option>-XNoDisambiguateRecordFields</option></entry>
</row>
<row>
<entry><option>-XGenerics</option></entry>
- <entry>Enable <link linkend="generic-classes">generic classes</link></entry>
+ <entry>Deprecated, does nothing. No longer enables <link linkend="generic-classes">generic classes</link>.
+ See also GHC's support for
+ <link linkend="generic-programming">generic programming</link>.</entry>
<entry>dynamic</entry>
<entry><option>-XNoGenerics</option></entry>
</row>
</row>
<row>
<entry><option>-XTemplateHaskell</option></entry>
- <entry>Enable <link linkend="template-haskell">Template Haskell</link>.
+ <entry>Enable <link linkend="template-haskell">Template Haskell</link>.
No longer implied by <option>-fglasgow-exts</option>.</entry>
<entry>dynamic</entry>
<entry><option>-XNoTemplateHaskell</option></entry>
<entry><option>-XNoMagicHash</option></entry>
</row>
<row>
- <entry><option>-XExplicitForALl</option></entry>
+ <entry><option>-XExplicitForAll</option></entry>
<entry>Enable <link linkend="explicit-foralls">explicit universal quantification</link>.
Implied by <option>-XScopedTypeVariables</option>,
<option>-XLiberalTypeSynonyms</option>,
<entry>dynamic</entry>
<entry><option>-XNoTransformListComp</option></entry>
</row>
+ <row>
+ <entry><option>-XMonadComprehensions</option></entry>
+ <entry>Enable <link linkend="monad-comprehensions">monad comprehensions</link>.</entry>
+ <entry>dynamic</entry>
+ <entry><option>-XNoMonadComprehensions</option></entry>
+ </row>
<row>
<entry><option>-XUnliftedFFITypes</option></entry>
<entry>Enable unlifted FFI types.</entry>
<entry><option>-XNoDeriveDataTypeable</option></entry>
</row>
<row>
+ <entry><option>-XDeriveGeneric</option></entry>
+ <entry>Enable <link linkend="deriving-typeable">deriving for the Generic class</link>.</entry>
+ <entry>dynamic</entry>
+ <entry><option>-XNoDeriveGeneric</option></entry>
+ </row>
+ <row>
<entry><option>-XGeneralizedNewtypeDeriving</option></entry>
<entry>Enable <link linkend="newtype-deriving">newtype deriving</link>.</entry>
<entry>dynamic</entry>
<entry><option>-XNoConstrainedClassMethods</option></entry>
</row>
<row>
+ <entry><option>-XDefaultSignatures</option></entry>
+ <entry>Enable <link linkend="class-default-signatures">default signatures</link>.</entry>
+ <entry>dynamic</entry>
+ <entry><option>-XNoDefaultSignatures</option></entry>
+ </row>
+ <row>
<entry><option>-XMultiParamTypeClasses</option></entry>
<entry>Enable <link linkend="multi-param-type-classes">multi parameter type classes</link>.</entry>
<entry>dynamic</entry>
<sect2>
<title>Warnings</title>
-
+
<para><xref linkend="options-sanity"/></para>
<informaltable>
<row>
<entry><option>-fwarn-missing-import-lists</option></entry>
- <entry>warn when an import declaration does not explicitly
+ <entry>warn when an import declaration does not explicitly
list all the names brought into scope</entry>
<entry>dynamic</entry>
<entry><option>-fnowarn-missing-import-lists</option></entry>
</row>
<row>
+ <entry><option>-fwarn-missing-local-sigs</option></entry>
+ <entry>warn about polymorphic local bindings without signatures</entry>
+ <entry>dynamic</entry>
+ <entry><option>-fno-warn-missing-local-sigs</option></entry>
+ </row>
+
+ <row>
<entry><option>-fwarn-name-shadowing</option></entry>
<entry>warn when names are shadowed</entry>
<entry>dynamic</entry>
</tbody>
</tgroup>
</informaltable>
-
+
</sect2>
<sect2>
<title>Individual optimisations</title>
<row>
<entry><option>-fspec-constr-count</option>=<replaceable>n</replaceable></entry>
- <entry>Set to <replaceable>n</replaceable> (default: 3) the maximum number of
+ <entry>Set to <replaceable>n</replaceable> (default: 3) the maximum number of
specialisations that will be created for any one function
by the SpecConstr transformation</entry>
<entry>static</entry>
</row>
<row>
+ <entry><option>-fno-opt-coercion</option></entry>
+ <entry>Turn off the coercion optimiser</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>
<sect2>
<title>Profiling options</title>
-
+
<para><xref linkend="profiling"/></para>
<informaltable>
<sect2>
<title>Program coverage options</title>
-
+
<para><xref linkend="hpc"/></para>
<informaltable>
<entry><option>-fasm</option></entry>
<entry>Use the native code generator</entry>
<entry>dynamic</entry>
- <entry>-fvia-C</entry>
- </row>
- <row>
- <entry><option>-fvia-C</option></entry>
- <entry>Compile via C</entry>
- <entry>dynamic</entry>
- <entry>-fasm</entry>
+ <entry>-fllvm</entry>
</row>
<row>
<entry><option>-fllvm</option></entry>
</row>
</row>
<row>
- <entry><option>-pgmm</option> <replaceable>cmd</replaceable></entry>
- <entry>Use <replaceable>cmd</replaceable> as the mangler</entry>
- <entry>dynamic</entry>
- <entry>-</entry>
- </row>
- <row>
<entry><option>-pgms</option> <replaceable>cmd</replaceable></entry>
<entry>Use <replaceable>cmd</replaceable> as the splitter</entry>
<entry>dynamic</entry>
<sect2>
<title>Platform-specific options</title>
-
+
<para><xref linkend="options-platform"/></para>
<informaltable>
</informaltable>
</sect2>
-
+
<sect2>
<title>External core file options</title>
<entry>-</entry>
</row>
<row>
+ <entry><option>-ddump-to-file</option></entry>
+ <entry>Dump to files instead of stdout</entry>
+ <entry>dynamic</entry>
+ <entry>-</entry>
+ </row>
+ <row>
<entry><option>-ddump-asm</option></entry>
<entry>Dump assembly</entry>
<entry>dynamic</entry>
<entry>-</entry>
</row>
<row>
+ <entry><option>-ddump-core-stats</option></entry>
+ <entry>Print a one-line summary of the size of the Core program
+ at the end of the optimisation pipeline </entry>
+ <entry>dynamic</entry>
+ <entry>-</entry>
+ </row>
+ <row>
<entry><option>-ddump-cpranal</option></entry>
<entry>Dump output from CPR analysis</entry>
<entry>dynamic</entry>
<entry>-</entry>
</row>
<row>
+ <entry><option>-dppr-noprags</option></entry>
+ <entry>Don't output pragma info in dumps</entry>
+ <entry>static</entry>
+ <entry>-</entry>
+ </row>
+ <row>
+ <entry><option>-dppr-user-length</option></entry>
+ <entry>Set the depth for printing expressions in error msgs</entry>
+ <entry>static</entry>
+ <entry>-</entry>
+ </row>
+ <row>
+ <entry><option>-dppr-colsNNN</option></entry>
+ <entry>Set the width of debugging output. For example <option>-dppr-cols200</option></entry>
+ <entry>static</entry>
+ <entry>-</entry>
+ </row>
+ <row>
+ <entry><option>-dppr-case-as-let</option></entry>
+ <entry>Print single alternative case expressions as strict lets.</entry>
+ <entry>static</entry>
+ <entry>-</entry>
+ </row>
+ <row>
+ <entry><option>-dsuppress-all</option></entry>
+ <entry>In core dumps, suppress everything that is suppressable.</entry>
+ <entry>static</entry>
+ <entry>-</entry>
+ </row>
+ <row>
<entry><option>-dsuppress-uniques</option></entry>
- <entry>Suppress the printing of uniques in debug output (easier to use <command>diff</command>.</entry>
+ <entry>Suppress the printing of uniques in debug output (easier to use <command>diff</command>)</entry>
<entry>static</entry>
<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><option>-dsuppress-idinfo</option></entry>
+ <entry>Suppress extended information about identifiers where they are bound</entry>
<entry>static</entry>
<entry>-</entry>
</row>
<row>
<entry><option>-dsuppress-module-prefixes</option></entry>
- <entry>Suppress the printing of module qualification prefixes in Core dumps to make them easier to read.</entry>
+ <entry>Suppress the printing of module qualification prefixes</entry>
<entry>static</entry>
<entry>-</entry>
</row>
<row>
- <entry><option>-dppr-noprags</option></entry>
- <entry>Don't output pragma info in dumps</entry>
+ <entry><option>-dsuppress-type-signatures</option></entry>
+ <entry>Suppress type signatures</entry>
<entry>static</entry>
<entry>-</entry>
</row>
<row>
- <entry><option>-dppr-user-length</option></entry>
- <entry>Set the depth for printing expressions in error msgs</entry>
+ <entry><option>-dsuppress-type-applications</option></entry>
+ <entry>Suppress type applications</entry>
+ <entry>static</entry>
+ <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>
</tgroup>
</informaltable>
</sect2>
-
+
<sect2>
<title>Misc compiler options</title>
<entry>-</entry>
</row>
<row>
- <entry><option>-fno-asm-mangling</option></entry>
- <entry>Turn off assembly mangling (use <option>-unreg</option> instead)</entry>
- <entry>dynamic</entry>
- <entry>-</entry>
- </row>
- <row>
<entry><option>-fno-ghci-sandbox</option></entry>
- <entry>Turn off the GHCi sandbox. Means computations are run in teh main thread, rather than a forked thread.</entry>
+ <entry>Turn off the GHCi sandbox. Means computations are run in the main thread, rather than a forked thread.</entry>
<entry>dynamic</entry>
<entry>-</entry>
</row>