Add several new record features
[ghc-hetmet.git] / docs / users_guide / flags.xml
index e288da2..ba6e895 100644 (file)
              <entry>-</entry>
            </row>
            <row>
+             <entry><option>-n</option></entry>
+             <entry>do a dry run</entry>
+             <entry>dynamic</entry>
+             <entry>-</entry>
+           </row>
+           <row>
              <entry><option>-v</option></entry>
              <entry>verbose mode (equivalent to <option>-v3</option>)</entry>
              <entry>dynamic</entry>
              <entry>-</entry>
            </row>
            <row>
+             <entry><option>-H</option><replaceable>size</replaceable></entry>
+             <entry>Set the minimum heap size to <replaceable>size</replaceable></entry>
+             <entry>static</entry>
+             <entry>-</entry>
+           </row>
+           <row>
              <entry><option>-Rghc-timing</option></entry>
              <entry>Summarise timing stats for GHC (same as <literal>+RTS -tstderr</literal>)</entry>
              <entry>static</entry>
          <tbody>
            <row>
              <entry><option>--interactive</option></entry>
-             <entry>Interactive mode - normally used by just running <command>ghci</command></entry>
+             <entry>Interactive mode - normally used by just running <command>ghci</command>;
+             see <xref linkend="ghci"/> for details.</entry>
              <entry>mode</entry>
              <entry>-</entry>
            </row>
            <row>
              <entry><option>--make</option></entry>
-             <entry>Build a multi-module Haskell program, automatically figuring out dependencies. Likely to be much easier, and faster, than using <command>make</command>.</entry>
+             <entry>Build a multi-module Haskell program, automatically figuring out dependencies. Likely to be much easier, and faster, than using <command>make</command>;
+             see <xref linkend="make-mode"/> for details..</entry>
              <entry>mode</entry>
              <entry>-</entry>
            </row>
            <row>
              <entry><option>-e <replaceable>expr</replaceable></option></entry>
-             <entry>Evaluate <replaceable>expr</replaceable></entry>
+             <entry>Evaluate <replaceable>expr</replaceable>;
+             see <xref linkend="eval-mode"/> for details.</entry>
              <entry>mode</entry>
              <entry>-</entry>
            </row>
            <row>
              <entry><option>-M</option></entry>
-             <entry>Generate dependency information suitable for use in a <filename>Makefile</filename>.</entry>
+             <entry>Generate dependency information suitable for use in a <filename>Makefile</filename>;
+             see <xref linkend="makefile-dependencies"/> for details.</entry>
              <entry>mode</entry>
              <entry>-</entry>
            </row>
              <entry><option>-i</option><replaceable>dir1</replaceable>:<replaceable>dir2</replaceable>:...</entry>
              <entry>add <replaceable>dir</replaceable>,
                  <replaceable>dir2</replaceable>, etc. to import path</entry>
-             <entry>dynamic</entry>
+             <entry>static/<literal>:set</literal></entry>
              <entry>-</entry>
            </row>
            <row>
              <entry><option>-i</option></entry>
              <entry>Empty the import directory list</entry>
-             <entry>dynamic</entry>
+             <entry>static/<literal>:set</literal></entry>
              <entry>-</entry>
            </row>
          </tbody>
          </thead>
          <tbody>
            <row>
-             <entry><option>-no-recomp</option></entry>
+             <entry><option>-fforce-recomp</option></entry>
              <entry>Turn off recompilation checking; implied by any
              <option>-ddump-X</option> option</entry>
              <entry>dynamic</entry>
-             <entry><option>-recomp</option></entry>
+             <entry><option>-fno-force-recomp</option></entry>
            </row>
          </tbody>
        </tgroup>
              <entry>static</entry>
              <entry>-</entry>
            </row>
+           <row>
+             <entry><option>-short-ghci-banner</option></entry>
+             <entry>Display a one-line banner at GHCi startup</entry>
+             <entry>dynamic</entry>
+             <entry>-</entry>
+           </row>
+           <row>
+             <entry><option>-long-ghci-banner</option></entry>
+             <entry>Display a full banner at GHCi startup</entry>
+             <entry>dynamic</entry>
+             <entry>-</entry>
+           </row>
+           <row>
+             <entry><option>-fdebugging</option></entry>
+             <entry>Generate bytecode enabled for debugging</entry>
+             <entry>dynamic</entry>
+             <entry>-</entry>
+           </row>
+           <row>
+             <entry><option>-fno-debugging</option></entry>
+             <entry>Do not include debugging information in bytecodes</entry>
+             <entry>dynamic</entry>
+             <entry>-</entry>
+           </row>
+           <row>
+             <entry><option>-fno-print-bind-result</option></entry>
+             <entry><link linkend="ghci-stmts">Turn off printing of binding results in GHCi</link></entry>
+             <entry>dynamic</entry>
+             <entry>-</entry>
+           </row>
          </tbody>
        </tgroup>
       </informaltable>
          </thead>
          <tbody>
            <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>-</entry>
+           </row>
+           <row>
              <entry><option>-package</option> <replaceable>P</replaceable></entry>
              <entry>Expose package <replaceable>P</replaceable></entry>
-             <entry>dynamic</entry>
+             <entry>static/<literal>:set</literal></entry>
              <entry>-</entry>
            </row>
            <row>
            <row>
              <entry><option>-hide-package</option> <replaceable>name</replaceable></entry>
              <entry>Hide package <replaceable>P</replaceable></entry>
-             <entry>dynamic</entry>
+             <entry>static/<literal>:set</literal></entry>
              <entry>-</entry>
            </row>
            <row>
              <entry><option>-ignore-package</option> <replaceable>name</replaceable></entry>
              <entry>Ignore package <replaceable>P</replaceable></entry>
-             <entry>dynamic</entry>
+             <entry>static/<literal>:set</literal></entry>
              <entry>-</entry>
            </row>
            <row>
              <entry><option>-package-conf</option> <replaceable>file</replaceable></entry>
              <entry>Load more packages from <replaceable>file</replaceable></entry>
-             <entry>dynamic</entry>
+             <entry>static</entry>
              <entry>-</entry>
            </row>
            <row>
              <entry><option>-no-user-package-conf</option></entry>
              <entry>Don't load the user's package config file.</entry>
-             <entry>dynamic</entry>
+             <entry>static</entry>
              <entry>-</entry>
            </row>
          </tbody>
          </thead>
          <tbody>
            <row>
-             <entry><option>-fallow-overlapping-instances</option></entry>
-             <entry>Enable overlapping instances</entry>
+             <entry><option>-fglasgow-exts</option></entry>
+             <entry>Enable most language extensions</entry>
              <entry>dynamic</entry>
-             <entry><option>-fno-allow-overlapping-instances</option></entry>
+             <entry><option>-fno-glasgow-exts</option></entry>
            </row>
            <row>
-             <entry><option>-fallow-undecidable-instances</option></entry>
-             <entry>Enable undecidable instances</entry>
+             <entry><option>-X=AllowOverlappingInstances</option></entry>
+             <entry>Enable <link linkend="instance-overlap">overlapping instances</link></entry>
              <entry>dynamic</entry>
-             <entry><option>-fno-allow-undecidable-instances</option></entry>
+             <entry><option>-X=NoAllowOverlappingInstances</option></entry>
            </row>
            <row>
-             <entry><option>-fallow-incoherent-instances</option></entry>
-             <entry>Enable incoherent instances.  
-             Implies <option>-fallow-overlapping-instances</option> </entry>
+             <entry><option>-X=AllowIncoherentInstances</option></entry>
+             <entry>Enable <link linkend="instance-overlap">incoherent instances</link>.  
+             Implies <option>-X=AllowOverlappingInstances</option> </entry>
              <entry>dynamic</entry>
-             <entry><option>-fno-allow-incoherent-instances</option></entry>
+             <entry><option>-X=NoAllowIncoherentInstances</option></entry>
            </row>
            <row>
-             <entry><option>-farrows</option></entry>
-             <entry>Enable arrow notation extension</entry>
+             <entry><option>-X=AllowUndecidableInstances</option></entry>
+             <entry>Enable <link linkend="undecidable-instances">undecidable instances</link></entry>
              <entry>dynamic</entry>
-             <entry><option>-fno-arrows</option></entry>
+             <entry><option>-X=NoAllowUndecidableInstances</option></entry>
            </row>
            <row>
-             <entry><option>-fcontext-stack</option><replaceable>n</replaceable></entry>
-             <entry>set the limit for context reduction</entry>
-             <entry>static</entry>
-             <entry><option>-</option></entry>
+             <entry><option>-fcontext-stack=N</option><replaceable>n</replaceable></entry>
+             <entry>set the <link linkend="undecidable-instances">limit for context reduction</link></entry>
+             <entry>dynamic</entry>
+             <entry><option>20</option></entry>
            </row>
            <row>
-             <entry><option>-ffi</option> or <option>-fffi</option></entry>
-             <entry>Enable foreign function interface (implied by
-             <option>-fglasgow-exts</option>)</entry>
+             <entry><option>-X=Arrows</option></entry>
+             <entry>Enable <link linkend="arrow-notation">arrow
+             notation</link> extension</entry>
              <entry>dynamic</entry>
-             <entry><option>-fno-ffi</option></entry>
+             <entry><option>-X=NoArrows</option></entry>
            </row>
            <row>
-             <entry><option>-fgenerics</option></entry>
-             <entry>Enable generics</entry>
+             <entry><option>-fdisambiguate-record-fields</option></entry>
+             <entry>Enable <link linkend="disambiguate-fields">record 
+             field disambiguation</link></entry>
              <entry>dynamic</entry>
-             <entry><option>-fno-fgenerics</option></entry>
+             <entry><option>-fno-disambiguate-record-fields</option></entry>
            </row>
            <row>
-             <entry><option>-fglasgow-exts</option></entry>
-             <entry>Enable most language extensions</entry>
+             <entry><option>-X=FFI</option> or <option>-X=ForeignFunctionInterface</option></entry>
+             <entry>Enable <link linkend="ffi">foreign function interface</link> (implied by
+             <option>-fglasgow-exts</option>)</entry>
              <entry>dynamic</entry>
-             <entry><option>-fno-glasgow-exts</option></entry>
+             <entry><option>-X=NoFFI</option></entry>
            </row>
            <row>
-             <entry><option>-fimplicit-params</option></entry>
-             <entry>Enable Implicit Parameters.
+             <entry><option>-X=Generics</option></entry>
+             <entry>Enable <link linkend="generic-classes">generic classes</link></entry>
+             <entry>dynamic</entry>
+             <entry><option>-X=NoGenerics</option></entry>
+           </row>
+           <row>
+             <entry><option>-X=ImplicitParams</option></entry>
+             <entry>Enable <link linkend="implicit-parameters">Implicit Parameters</link>.
              Implied by <option>-fglasgow-exts</option>.</entry>
              <entry>dynamic</entry>
-             <entry><option>-fno-implicit-params</option></entry>
+             <entry><option>-X=NoImplicitParams</option></entry>
            </row>
            <row>
              <entry><option>-firrefutable-tuples</option></entry>
              <entry><option>-fno-irrefutable-tuples</option></entry>
            </row>
            <row>
-             <entry><option>-fno-implicit-prelude</option></entry>
+             <entry><option>-X=NoImplicitPrelude</option></entry>
              <entry>Don't implicitly <literal>import Prelude</literal></entry>
              <entry>dynamic</entry>
-             <entry><option>-fimplicit-prelude</option></entry>
+             <entry><option>-X=ImplicitPrelude</option></entry>
            </row>
            <row>
-             <entry><option>-fno-monomorphism-restriction</option></entry>
-             <entry>Disable the monomorphism restriction</entry>
+             <entry><option>-X=NoMonomorphismRestriction</option></entry>
+             <entry>Disable the <link linkend="monomorphism">monomorphism restriction</link></entry>
              <entry>dynamic</entry>
-             <entry><option>-fmonomorphism-restriction</option></entry>
+             <entry><option>-X=MonomorphismRrestriction</option></entry>
            </row>
            <row>
-             <entry><option>-fscoped-type-variables</option></entry>
-             <entry>Enable lexically-scoped type variables.
+             <entry><option>-X=NoMonoPatBinds</option></entry>
+             <entry>Make <link linkend="monomorphism">pattern bindings polymorphic</link></entry>
+             <entry>dynamic</entry>
+             <entry><option>-X=MonoPatBinds</option></entry>
+           </row>
+           <row>
+             <entry><option>-X=RelaxedPolyRed</option></entry>
+             <entry>Relaxed checking for <link linkend="typing-binds">mutually-recursive polymorphic functions</link></entry>
+             <entry>dynamic</entry>
+             <entry><option>-X=NoRelaxedPolyRec</option></entry>
+           </row>
+           <row>
+             <entry><option>-X=ExtendedDefaultRules</option></entry>
+             <entry>Use GHCi's <link linkend="extended-default-rules">extended default rules</link> in a normal module</entry>
+             <entry>dynamic</entry>
+             <entry><option>-X=NoExtendedDefaultRules</option></entry>
+           </row>
+           <row>
+             <entry><option>-X=OverloadedStrings</option></entry>
+             <entry>Enable <link linkend="overloaded-strings">overloaded string literals</link>.
+             </entry>
+             <entry>dynamic</entry>
+             <entry><option>-X=NoOverloadedStrings</option></entry>
+           </row>
+           <row>
+             <entry><option>-X=GADTs</option></entry>
+             <entry>Enable <link linkend="gadts">generalised algebraic data types</link>.
+             </entry>
+             <entry>dynamic</entry>
+             <entry><option>-X=NoGADTs</option></entry>
+           </row>
+           <row>
+             <entry><option>-X=TypeFamilies</option></entry>
+             <entry>Enable <link linkend="type-families">type families</link>.</entry>
+             <entry>dynamic</entry>
+             <entry><option>-X=NoTypeFamilies</option></entry>
+           </row>
+           <row>
+             <entry><option>-X=ScopedTypeVariables</option></entry>
+             <entry>Enable <link linkend="scoped-type-variables">lexically-scoped type variables</link>.
              Implied by <option>-fglasgow-exts</option>.</entry>
              <entry>dynamic</entry>
-             <entry><option>-fno-scoped-type-variables</option></entry>
+             <entry><option>-X=NoScopedTypeVariables</option></entry>
+           </row>
+           <row>
+             <entry><option>-X=TH</option> or <option>-X=TemplateHaskell</option></entry>
+             <entry>Enable <link linkend="template-haskell">Template Haskell</link>. 
+               No longer implied by <option>-fglasgow-exts</option>.</entry>
+             <entry>dynamic</entry>
+             <entry><option>-X=NoTH</option></entry>
            </row>
            <row>
-             <entry><option>-fth</option></entry>
-             <entry>Enable Template Haskell. 
-               Implied by <option>-fglasgow-exts</option>.</entry>
+             <entry><option>-X=BangPtterns</option></entry>
+             <entry>Enable <link linkend="bang-patterns">bang patterns</link>.</entry>
              <entry>dynamic</entry>
-             <entry><option>-fno-th</option></entry>
+             <entry><option>-X=NoBangPatterns</option></entry>
            </row>
          </tbody>
        </tgroup>
     <sect2>
       <title>Warnings</title>
       
-      <para>(<xref linkend="options-sanity"/></para>
+      <para><xref linkend="options-sanity"/></para>
 
     <informaltable>
       <tgroup cols="4" align="left" colsep="1" rowsep="1">
          </row>
          <row>
            <entry><option>-Wall</option></entry>
-           <entry>enable all warnings</entry>
+           <entry>enable almost all warnings (details in <xref linkend="options-sanity"/>)</entry>
            <entry>dynamic</entry>
            <entry><option>-w</option></entry>
          </row>
            <entry><option>-fno-warn-hi-shadowing</option></entry>
          </row>
 
+          <row>
+            <entry><option>-fwarn-implicit-prelude</option></entry>
+            <entry>warn when the Prelude is implicitly imported</entry>
+            <entry>dynamic</entry>
+            <entry><option>-fno-warn-implicit-prelude</option></entry>
+          </row>
+
          <row>
            <entry><option>-fwarn-incomplete-patterns</option></entry>
            <entry>warn when a pattern match could fail</entry>
          </row>
 
          <row>
-           <entry><option>-fwarn-misc</option></entry>
-           <entry>enable miscellaneous warnings</entry>
-           <entry>dynamic</entry>
-           <entry><option>-fno-warn-misc</option></entry>
-         </row>
-
-         <row>
            <entry><option>-fwarn-missing-fields</option></entry>
            <entry>warn when fields of a record are uninitialised</entry>
            <entry>dynamic</entry>
          </row>
 
          <row>
-           <entry><option>-fwarn-oprhans</option></entry>
+           <entry><option>-fwarn-orphans</option></entry>
            <entry>warn when the module contains "orphan" instance declarations
            or rewrite rules</entry>
            <entry>dynamic</entry>
          </row>
 
          <row>
+           <entry><option>-fwarn-tabs</option></entry>
+           <entry>warn if there are tabs in the source file</entry>
+           <entry>dynamic</entry>
+           <entry><option>-fno-warn-tabs</option></entry>
+         </row>
+
+         <row>
            <entry><option>-fwarn-type-defaults</option></entry>
            <entry>warn when defaulting happens</entry>
            <entry>dynamic</entry>
          </row>
 
          <row>
+           <entry><option>-fwarn-monomorphism-restriction</option></entry>
+           <entry>warn when the Monomorphism Restriction is applied</entry>
+           <entry>dynamic</entry>
+           <entry><option>-fno-warn-monomorphism-restriction</option></entry>
+         </row>
+
+         <row>
            <entry><option>-fwarn-unused-binds</option></entry>
            <entry>warn about bindings that are unused</entry>
            <entry>dynamic</entry>
          <tbody>
            <row>
              <entry><option>-fcase-merge</option></entry>
-             <entry>Enable case-merging</entry>
+             <entry>Enable case-merging. Implied by <option>-O</option>.</entry>
              <entry>dynamic</entry>
              <entry><option>-fno-case-merge</option></entry>
            </row>
 
            <row>
              <entry><option>-fdo-eta-reduction</option></entry>
-             <entry>Enable eta-reduction</entry>
+             <entry>Enable eta-reduction. Implied by <option>-O</option>.</entry>
              <entry>dynamic</entry>
              <entry><option>-fno-do-eta-reduction</option></entry>
            </row>
            </row>
 
            <row>
-             <entry><option>-frules-off</option></entry>
-             <entry>Switch off all rewrite rules (including rules
-             generated by automatic specialisation of overloaded functions)</entry>
-             <entry>static</entry>
-             <entry><option>-frules-off</option></entry>
-           </row>
-
-           <row>
              <entry><option>-fignore-asserts</option></entry>
              <entry>Ignore assertions in the source</entry>
              <entry>dynamic</entry>
            </row>
 
            <row>
-             <entry><option>-fliberate-case-threshold</option></entry>
-             <entry>Tweak the liberate-case optimisation (default: 10)</entry>
-             <entry>static</entry>
-             <entry><option>-fno-liberate-case-threshold</option></entry>
-           </row>
-
-           <row>
              <entry><option>-fomit-interface-pragmas</option></entry>
              <entry>Don't generate interface pragmas</entry>
              <entry>dynamic</entry>
            </row>
 
            <row>
-             <entry><option>-fno-cse</option></entry>
-             <entry>Turn off common sub-expression</entry>
+             <entry><option>-fcse</option></entry>
+             <entry>Turn on common sub-expression elimination. Implied by <option>-O</option>.</entry>
              <entry>dynamic</entry>
-             <entry>-</entry>
+             <entry>-fno-cse</entry>
            </row>
 
            <row>
-             <entry><option>-fno-full-laziness</option></entry>
-             <entry>Turn off full laziness (floating bindings outwards).</entry>
+             <entry><option>-ffull-laziness</option></entry>
+             <entry>Turn on full laziness (floating bindings outwards). Implied by <option>-O</option>.</entry>
              <entry>dynamic</entry>
-             <entry>-ffull-laziness</entry>
+             <entry>-fno-full-laziness</entry>
            </row>
 
            <row>
-             <entry><option>-fno-pre-inlining</option></entry>
-             <entry>Turn off pre-inlining</entry>
-             <entry>static</entry>
-             <entry>-</entry>
+             <entry><option>-frewrite-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>
            </row>
 
            <row>
-             <entry><option>-fno-strictness</option></entry>
-             <entry>Turn off strictness analysis</entry>
+             <entry><option>-fstrictness</option></entry>
+             <entry>Turn on strictness analysis. Implied by <option>-O</option>.</entry>
              <entry>dynamic</entry>
-             <entry>-</entry>
+             <entry>-fno-strictness</entry>
+           </row>
+
+           <row>
+             <entry><option>-fspec-constr</option></entry>
+             <entry>Turn on the SpecConstr transformation. Implied by <option>-O2</option>.</entry>
+             <entry>dynamic</entry>
+             <entry>-fno-spec-constr</entry>
+           </row>
+
+           <row>
+             <entry><option>-fliberate-case</option></entry>
+             <entry>Turn on the liberate-case transformation. Implied by <option>-O2</option>.</entry>
+             <entry>dynamic</entry>
+             <entry>-fno-liberate-case</entry>
+           </row>
+
+           <row>
+             <entry><option>-fspec-threshold</option>=<replaceable>n</replaceable></entry>
+             <entry>Set the size threshold for function specialisation to <replaceable>n</replaceable>, for both
+               the liberate-case and SpecConstr transformations (default: 200)</entry>
+             <entry>static</entry>
+             <entry><option>-</option></entry>
            </row>
 
            <row>
              <entry>static</entry>
              <entry><option>-fno-unfolding-use-threshold</option></entry>
            </row>
+
+           <row>
+             <entry><option>-fno-pre-inlining</option></entry>
+             <entry>Turn off pre-inlining</entry>
+             <entry>static</entry>
+             <entry>-</entry>
+           </row>
          </tbody>
        </tgroup>
       </informaltable>
              <entry><option>-no-auto-all</option></entry>
            </row>
            <row>
-             <entry><option>-auto-dicts</option></entry>
-             <entry>Auto-add <literal>_scc_</literal>s to all dictionaries</entry>
-             <entry>static</entry>
-             <entry><option>-no-auto-dicts</option></entry>
-           </row>
-           <row>
              <entry><option>-caf-all</option></entry>
              <entry>Auto-add <literal>_scc_</literal>s to all CAFs</entry>
              <entry>static</entry>
     </sect2>
 
     <sect2>
-      <title>Parallelism options</title>
-
-      <para><xref linkend="sec-using-parallel"/></para>
+      <title>Program coverage options</title>
+      
+      <para><xref linkend="hpc"/></para>
 
       <informaltable>
        <tgroup cols="4" align="left" colsep="1" rowsep="1">
          </thead>
          <tbody>
            <row>
-             <entry><option>-gransim</option></entry>
-             <entry>Enable GRANSIM</entry>
+             <entry><option>-fhpc</option></entry>
+             <entry>Turn on Haskell program coverage instrumentation</entry>
              <entry>static</entry>
-             <entry>-</entry>
+             <entry><option>-</option></entry>
            </row>
            <row>
-             <entry><option>-parallel</option></entry>
-             <entry>Enable Parallel Haskell</entry>
-             <entry>static</entry>
-             <entry>-</entry>
+             <entry><option>-hpcdir dir</option></entry>
+             <entry>Directory to deposit .mix files during compilation</entry>
+             <entry>dynamic</entry>
+             <entry><option>-</option></entry>
            </row>
+         </tbody>
+       </tgroup>
+      </informaltable>
+    </sect2>
+
+    <sect2>
+      <title>Haskell pre-processor options</title>
+
+      <para><xref linkend="pre-processor"/></para>
+
+      <informaltable>
+       <tgroup cols="4" align="left" colsep="1" rowsep="1">
+         <thead>
            <row>
-             <entry><option>-smp</option></entry>
-             <entry>Enable SMP support</entry>
-             <entry>static</entry>
+             <entry>Flag</entry>
+             <entry>Description</entry>
+             <entry>Static/Dynamic</entry>
+             <entry>Reverse</entry>
+           </row>
+         </thead>
+         <tbody>
+           <row>
+             <entry><option>-F</option></entry>
+             <entry>
+                  Enable the use of a pre-processor
+                  (set with <option>-pgmF</option>)
+              </entry>
+             <entry>dynamic</entry>
              <entry>-</entry>
            </row>
          </tbody>
            <row>
              <entry><option>-fno-code</option></entry>
              <entry>Omit code generation</entry>
-             <entry>mode</entry>
+             <entry>dynamic</entry>
+             <entry>-</entry>
+           </row>
+           <row>
+             <entry><option>-fbyte-code</option></entry>
+             <entry>Generate byte-code</entry>
+             <entry>dynamic</entry>
+             <entry>-</entry>
+           </row>
+           <row>
+             <entry><option>-fobject-code</option></entry>
+             <entry>Generate object code</entry>
+             <entry>dynamic</entry>
              <entry>-</entry>
            </row>
          </tbody>
          </thead>
          <tbody>
            <row>
+             <entry><option>-fPIC</option></entry>
+             <entry>Generate position-independent code (where available)</entry>
+             <entry>static</entry>
+             <entry>-</entry>
+           </row>
+           <row>
              <entry><option>-dynamic</option></entry>
              <entry>Use dynamic Haskell libraries (if available)</entry>
              <entry>static</entry>
            </row>
            <row>
              <entry><option>-main-is</option></entry>
-             <entry>Set main function</entry>
+             <entry>Set main module and function</entry>
              <entry>dynamic</entry>
              <entry>-</entry>
            </row>
              <entry>-</entry>
            </row>
            <row>
-             <entry><option>-package</option> <replaceable>name</replaceable></entry>
-             <entry>Link in package <replaceable>name</replaceable></entry>
-             <entry>dynamic</entry>
-             <entry>-</entry>
-           </row>
-           <row>
              <entry><option>-split-objs</option></entry>
              <entry>Split objects (for libraries)</entry>
              <entry>dynamic</entry>
              <entry>-</entry>
            </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>
+             <entry>-</entry>
+           </row>
+           <row>
              <entry><option>-pgma</option> <replaceable>cmd</replaceable></entry>
              <entry>Use <replaceable>cmd</replaceable> as the assembler</entry>
              <entry>dynamic</entry>
              <entry>-</entry>
            </row>
            <row>
-             <entry><option>-pgmdep</option> <replaceable>cmd</replaceable></entry>
-             <entry>Use <replaceable>cmd</replaceable> as the dependency generator</entry>
-             <entry>dyanmic</entry>
-             <entry>-</entry>
-           </row>
-           <row>
              <entry><option>-pgmF</option> <replaceable>cmd</replaceable></entry>
              <entry>Use <replaceable>cmd</replaceable> as the pre-processor
              (with <option>-F</option> only)</entry>
       <indexterm><primary><option>-pgma</option></primary></indexterm>
       <indexterm><primary><option>-pgml</option></primary></indexterm>
       <indexterm><primary><option>-pgmdll</option></primary></indexterm>
-      <indexterm><primary><option>-pgmdep</option></primary></indexterm>
       <indexterm><primary><option>-pgmF</option></primary></indexterm>
 
     </sect2>
              <entry>-</entry>
            </row>
            <row>
+             <entry><option>-optm</option> <replaceable>option</replaceable></entry>
+             <entry>pass <replaceable>option</replaceable> to the mangler</entry>
+             <entry>dynamic</entry>
+             <entry>-</entry>
+           </row>
+           <row>
              <entry><option>-opta</option> <replaceable>option</replaceable></entry>
              <entry>pass <replaceable>option</replaceable> to the assembler</entry>
              <entry>dynamic</entry>
          </thead>
          <tbody>
            <row>
-             <entry><option>-mv8</option></entry>
-             <entry>(SPARC only) enable version 8 support</entry>
-             <entry>static</entry>
-             <entry>-</entry>
-           </row>
-           <row>
-             <entry><option>-monly-[32]-regs</option></entry>
+             <entry><option>-monly-[432]-regs</option></entry>
              <entry>(x86 only) give some registers back to the C compiler</entry>
              <entry>dynamic</entry>
              <entry>-</entry>
              <entry>-</entry>
            </row>
            <row>
-             <entry><option>-ddump-absC</option></entry>
-             <entry>Dump abstract C</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-cmm</option></entry>
+             <entry>Dump C-- output</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>-ddump-hpc</option></entry>
+             <entry>Dump after intrumentation for program coverage</entry>
+             <entry>dynamic</entry>
+             <entry>-</entry>
+           </row>
+           <row>
              <entry><option>-ddump-inlinings</option></entry>
              <entry>Dump inlining info</entry>
              <entry>dynamic</entry>
              <entry>-</entry>
            </row>
            <row>
+             <entry><option>-ddump-opt-cmm</option></entry>
+             <entry>Dump the results of C-- to C-- optimising passes</entry>
+             <entry>dynamic</entry>
+             <entry>-</entry>
+           </row>
+           <row>
              <entry><option>-ddump-parsed</option></entry>
              <entry>Dump parse tree</entry>
              <entry>dynamic</entry>
              <entry>-</entry>
            </row>
            <row>
-             <entry><option>-ddump-realC</option></entry>
-             <entry>Dump &ldquo;real&rdquo; C</entry>
+             <entry><option>-ddump-prep</option></entry>
+             <entry>Dump prepared core</entry>
              <entry>dynamic</entry>
              <entry>-</entry>
            </row>
              <entry>-</entry>
            </row>
            <row>
-             <entry><option>-ddump-sat</option></entry>
-             <entry>Dump saturated output</entry>
-             <entry>dynamic</entry>
-             <entry>-</entry>
-           </row>
-           <row>
              <entry><option>-ddump-simpl</option></entry>
              <entry>Dump final simplifier output</entry>
              <entry>dynamic</entry>
              <entry>-</entry>
            </row>
            <row>
+             <entry><option>-ddump-splices</option></entry>
+             <entry>Dump TH splided expressions, and what they evaluate to</entry>
+             <entry>dynamic</entry>
+             <entry>-</entry>
+           </row>
+           <row>
              <entry><option>-ddump-stg</option></entry>
              <entry>Dump final STG</entry>
              <entry>dynamic</entry>
              <entry>-</entry>
            </row>
            <row>
-             <entry><option>-ddump-usagesp</option></entry>
-             <entry>Dump UsageSP analysis output</entry>
+             <entry><option>-ddump-worker-wrapper</option></entry>
+             <entry>Dump worker-wrapper output</entry>
+             <entry>dynamic</entry>
+             <entry>-</entry>
+           </row>
+           <row>
+             <entry><option>-ddump-if-trace</option></entry>
+             <entry>Trace interface files</entry>
              <entry>dynamic</entry>
              <entry>-</entry>
            </row>
            <row>
-             <entry><option>-ddump-worker-wrapper</option></entry>
-             <entry>Dump worker-wrapper output</entry>
+             <entry><option>-ddump-tc-trace</option></entry>
+             <entry>Trace typechecker</entry>
              <entry>dynamic</entry>
              <entry>-</entry>
            </row>
              <entry>-</entry>
            </row>
            <row>
-             <entry><option>-ddump-stix</option></entry>
-             <entry>Native code generator intermediate form</entry>
-             <entry>dynamic</entry>
-             <entry>-</entry>
-           </row>
-           <row>
              <entry><option>-ddump-simpl-stats</option></entry>
              <entry>Dump simplifier stats</entry>
              <entry>dynamic</entry>
              <entry>-</entry>
            </row>
            <row>
-             <entry><option>-dstg-lint</option></entry>
-             <entry>STG pass sanity checking</entry>
+             <entry><option>-dcmm-lint</option></entry>
+             <entry>C-- pass sanity checking</entry>
              <entry>dynamic</entry>
              <entry>-</entry>
            </row>
            <row>
-             <entry><option>-dstg-stats</option></entry>
-             <entry>Dump STG stats</entry>
+             <entry><option>-dstg-lint</option></entry>
+             <entry>STG pass sanity checking</entry>
              <entry>dynamic</entry>
              <entry>-</entry>
            </row>
            <row>
-             <entry><option>-dusagesp-lint</option></entry>
-             <entry>UsageSP sanity checker</entry>
+             <entry><option>-dstg-stats</option></entry>
+             <entry>Dump STG stats</entry>
              <entry>dynamic</entry>
              <entry>-</entry>
            </row>
              <entry>-</entry>
            </row>
            <row>
+             <entry><option>-dshow-passes</option></entry>
+             <entry>Print out each pass name as it happens</entry>
+             <entry>dynamic</entry>
+             <entry>-</entry>
+           </row>
+           <row>
+             <entry><option>-dfaststring-stats</option></entry>
+             <entry>Show statistics for fast string usage when finished</entry>
+             <entry>dynamic</entry>
+             <entry>-</entry>
+           </row>
+           <row>
              <entry><option>-unreg</option></entry>
              <entry>Enable unregisterised compilation</entry>
              <entry>static</entry>
          </thead>
          <tbody>
            <row>
-             <entry><option>-femit-extern-decls</option></entry>
-             <entry>???</entry>
-             <entry>static</entry>
-             <entry>-</entry>
-           </row>
-           <row>
              <entry><option>-fno-hi-version-check</option></entry>
              <entry>Don't complain about <literal>.hi</literal> file mismatches</entry>
              <entry>static</entry>