Make some profiling flags dynamic
[ghc-hetmet.git] / docs / users_guide / flags.xml
index 7c21a73..aa84b81 100644 (file)
            </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>
            </row>
            <row>
              <entry><option>--show-iface</option> <replaceable>file</replaceable></entry>
-             <entry>Read the interface in
-             <replaceable>file</replaceable> and dump it as text to
-             <literal>stdout</literal>.</entry>
-             <entry>mode</entry>
-             <entry>-</entry>
+             <entry>See <xref linkend="modes"/>.</entry>
            </row>
          </tbody>
        </tgroup>
       </informaltable>
     </sect2>
 
-    <sect2>
+    <sect2 id="interactive-mode-options">
       <title>Interactive-mode options</title>
       
       <para><xref linkend="ghci-dot-files"/></para>
              <entry>-</entry>
            </row>
            <row>
-             <entry><option>-fdebugging</option></entry>
-             <entry>Generate bytecode enabled for debugging</entry>
+             <entry><option>-fbreak-on-exception</option></entry>
+             <entry><link linkend="ghci-debugger-exceptions">Break on any exception thrown</link></entry>
              <entry>dynamic</entry>
-             <entry>-</entry>
+             <entry><option>-fno-break-on-exception</option></entry>
            </row>
            <row>
-             <entry><option>-fno-debugging</option></entry>
-             <entry>Do not include debugging information in bytecodes</entry>
+             <entry><option>-fbreak-on-error</option></entry>
+             <entry><link linkend="ghci-debugger-exceptions">Break on uncaught exceptions and errors</link></entry>
              <entry>dynamic</entry>
-             <entry>-</entry>
+             <entry><option>-fno-break-on-error</option></entry>
            </row>
            <row>
+             <entry><option>-fprint-evld-with-show</option></entry>
+             <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>
+             <entry><option>-fprint-bind-result</option></entry>
+             <entry><link linkend="ghci-stmts">Turn on printing of binding results in GHCi</link></entry>
+             <entry>dynamic</entry>
              <entry><option>-fno-print-bind-result</option></entry>
-             <entry><link linkend="ghci-stmts">Turn off printing of binding results in GHCi</link></entry>
+           </row>
+           <row>
+             <entry><option>-fno-print-bind-contents</option></entry>
+             <entry><link linkend="breakpoints">Turn off printing of binding contents in GHCi</link></entry>
+             <entry>dynamic</entry>
+             <entry>-</entry>
+           </row>
+           <row>
+             <entry><option>-fno-implicit-import-qualified</option></entry>
+             <entry><link linkend="ghci-import-qualified">Turn off
+             implicit qualified import of everything in GHCi</link></entry>
              <entry>dynamic</entry>
              <entry>-</entry>
            </row>
+
          </tbody>
        </tgroup>
       </informaltable>
              <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>-XMonoPatBinds</option></entry>
            </row>
            <row>
-             <entry><option>-XRelaxedPolyRed</option></entry>
+             <entry><option>-XRelaxedPolyRec</option></entry>
              <entry>Relaxed checking for <link linkend="typing-binds">mutually-recursive polymorphic functions</link></entry>
              <entry>dynamic</entry>
              <entry><option>-XNoRelaxedPolyRec</option></entry>
            </row>
            <row>
              <entry><option>-XGADTs</option></entry>
-             <entry>Enable <link linkend="gadts">generalised algebraic data types</link>.
+             <entry>Enable <link linkend="gadt">generalised algebraic data types</link>.
              </entry>
              <entry>dynamic</entry>
              <entry><option>-XNoGADTs</option></entry>
              <entry><option>-XNoTemplateHaskell</option></entry>
            </row>
            <row>
-             <entry><option>-XBangPtterns</option></entry>
+             <entry><option>-XQuasiQuotes</option></entry>
+             <entry>Enable <link linkend="th-quasiquotation">quasiquotation</link>.</entry>
+             <entry>dynamic</entry>
+             <entry><option>-XNoQuasiQuotes</option></entry>
+           </row>
+           <row>
+             <entry><option>-XBangPatterns</option></entry>
              <entry>Enable <link linkend="bang-patterns">bang patterns</link>.</entry>
              <entry>dynamic</entry>
              <entry><option>-XNoBangPatterns</option></entry>
              <entry><option>-XNoPatternGuards</option></entry>
            </row>
            <row>
+             <entry><option>-XViewPatterns</option></entry>
+             <entry>Enable <link linkend="view-patterns">view patterns</link>.</entry>
+             <entry>dynamic</entry>
+             <entry><option>-XNoViewPatterns</option></entry>
+           </row>
+           <row>
              <entry><option>-XUnicodeSyntax</option></entry>
              <entry>Enable unicode syntax.</entry>
              <entry>dynamic</entry>
            </row>
            <row>
              <entry><option>-XMagicHash</option></entry>
-             <entry>Enable the &ldquo;magic hash&rdquo;.</entry>
+             <entry>Allow "#" as a <link linkend="magic-hash">postfix modifier on identifiers</link>.</entry>
              <entry>dynamic</entry>
              <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>-XPolymorphicComponents</option></entry>
-             <entry>Enable polymorphic components.</entry>
+             <entry>Enable <link linkend="universal-quantification">polymorphic components for data constructors</link>.</entry>
              <entry>dynamic</entry>
              <entry><option>-XNoPolymorphicComponents</option></entry>
            </row>
            <row>
+             <entry><option>-XRank2Types</option></entry>
+             <entry>Enable <link linkend="universal-quantification">rank-2 types</link>.</entry>
+             <entry>dynamic</entry>
+             <entry><option>-XNoRank2Types</option></entry>
+           </row>
+           <row>
+             <entry><option>-XRankNTypes</option></entry>
+             <entry>Enable <link linkend="universal-quantification">rank-N types</link>.</entry>
+             <entry>dynamic</entry>
+             <entry><option>-XNoRankNTypes</option></entry>
+           </row>
+           <row>
+             <entry><option>-XImpredicativeTypes</option></entry>
+             <entry>Enable <link linkend="impredicative-polymorphism">impredicative types</link>.</entry>
+             <entry>dynamic</entry>
+             <entry><option>-XNoImpredicativeTypes</option></entry>
+           </row>
+           <row>
              <entry><option>-XExistentialQuantification</option></entry>
              <entry>Enable <link linkend="existential-quantification">existential quantification</link>.</entry>
              <entry>dynamic</entry>
            </row>
            <row>
              <entry><option>-XKindSignatures</option></entry>
-             <entry>Enable kind signatures.</entry>
+             <entry>Enable <link linkend="kinding">kind signatures</link>.</entry>
              <entry>dynamic</entry>
              <entry><option>-XNoKindSignatures</option></entry>
            </row>
            <row>
-             <entry><option>-XPatternSignatures</option></entry>
-             <entry>Enable <link linkend="pattern-type-sigs">pattern type signatures</link>.</entry>
-             <entry>dynamic</entry>
-             <entry><option>-XNoPatternSignatures</option></entry>
-           </row>
-           <row>
              <entry><option>-XEmptyDataDecls</option></entry>
              <entry>Enable empty data declarations.</entry>
              <entry>dynamic</entry>
              <entry><option>-XNoParallelListComp</option></entry>
            </row>
            <row>
-             <entry><option>-XUnliftedFFITypes</option></entry>
-             <entry>Enable unlifted FFI types.</entry>
-             <entry>dynamic</entry>
-             <entry><option>-XNoUnliftedFFITypes</option></entry>
-           </row>
-           <row>
-             <entry><option>-XPartiallyAppliedClosedTypeSynonyms</option></entry>
-             <entry>Enable partially applied type synonyms.</entry>
+             <entry><option>-XTransformListComp</option></entry>
+             <entry>Enable <link linkend="generalised-list-comprehensions">transform list comprehensions</link>.</entry>
              <entry>dynamic</entry>
-             <entry><option>-XNoPartiallyAppliedClosedTypeSynonyms</option></entry>
+             <entry><option>-XNoTransformListComp</option></entry>
            </row>
            <row>
-             <entry><option>-XNoRank2Types</option></entry>
-             <entry>Enable rank-2 types.</entry>
+             <entry><option>-XUnliftedFFITypes</option></entry>
+             <entry>Enable unlifted FFI types.</entry>
              <entry>dynamic</entry>
-             <entry><option>-XNoRank2Types</option></entry>
+             <entry><option>-XNoUnliftedFFITypes</option></entry>
            </row>
            <row>
-             <entry><option>-XRankNTypes</option></entry>
-             <entry>Enable rank-N types.</entry>
+             <entry><option>-XLiberalTypeSynonyms</option></entry>
+             <entry>Enable <link linkend="type-synonyms">liberalised type synonyms</link>.</entry>
              <entry>dynamic</entry>
-             <entry><option>-XNoRankNTypes</option></entry>
+             <entry><option>-XNoLiberalTypeSynonyms</option></entry>
            </row>
            <row>
              <entry><option>-XTypeOperators</option></entry>
            </row>
            <row>
              <entry><option>-XRecordWildCards</option></entry>
-             <entry>Enable record wildcards.</entry>
+             <entry>Enable <link linkend="record-wildcards">record wildcards</link>.</entry>
              <entry>dynamic</entry>
              <entry><option>-XNoRecordWildCards</option></entry>
            </row>
            <row>
-             <entry><option>-XRecordPuns</option></entry>
-             <entry>Enable record puns.</entry>
+             <entry><option>-XNamedFieldPuns</option></entry>
+             <entry>Enable <link linkend="record-puns">record puns</link>.</entry>
              <entry>dynamic</entry>
-             <entry><option>-XNoRecordPuns</option></entry>
+             <entry><option>-XNoNamedFieldPuns</option></entry>
            </row>
            <row>
              <entry><option>-XDisambiguateRecordFields</option></entry>
-             <entry>Enable the <link linkend="disambiguate-fields">disambiguate fields.</link> exception</entry>
+             <entry>Enable  <link linkend="disambiguate-fields">record field disambiguation</link>. </entry>
              <entry>dynamic</entry>
              <entry><option>-XNoDisambiguateRecordFields</option></entry>
            </row>
            </row>
            <row>
              <entry><option>-XStandaloneDeriving</option></entry>
-             <entry>Enable standalone deriving.</entry>
+             <entry>Enable <link linkend="stand-alone-deriving">standalone deriving</link>.</entry>
              <entry>dynamic</entry>
              <entry><option>-XNoStandaloneDeriving</option></entry>
            </row>
            <row>
              <entry><option>-XDeriveDataTypeable</option></entry>
-             <entry>Enable deriving for the Data and Typeable classes.</entry>
+             <entry>Enable <link linkend="deriving-typeable">deriving for the Data and Typeable classes</link>.</entry>
              <entry>dynamic</entry>
              <entry><option>-XNoDeriveDataTypeable</option></entry>
            </row>
            <row>
+             <entry><option>-XGeneralizedNewtypeDeriving</option></entry>
+             <entry>Enable <link linkend="newtype-deriving">newtype deriving</link>.</entry>
+             <entry>dynamic</entry>
+             <entry><option>-XNoGeneralizedNewtypeDeriving</option></entry>
+           </row>
+           <row>
              <entry><option>-XTypeSynonymInstances</option></entry>
-             <entry>Enable <link linkend="type-synonyms">type synonyms</link>.</entry>
+             <entry>Enable <link linkend="type-synonym-instances">type synonyms</link>.</entry>
              <entry>dynamic</entry>
              <entry><option>-XNoTypeSynonymInstances</option></entry>
            </row>
            <row>
              <entry><option>-XFlexibleContexts</option></entry>
-             <entry>Enable flexible contexts.</entry>
+             <entry>Enable <link linkend="flexible-contexts">flexible contexts</link>.</entry>
              <entry>dynamic</entry>
              <entry><option>-XNoFlexibleContexts</option></entry>
            </row>
            <row>
              <entry><option>-XFlexibleInstances</option></entry>
-             <entry>Enable flexible instances.</entry>
+             <entry>Enable <link linkend="instance-rules">flexible instances</link>.</entry>
              <entry>dynamic</entry>
              <entry><option>-XNoFlexibleInstances</option></entry>
            </row>
            <row>
              <entry><option>-XConstrainedClassMethods</option></entry>
-             <entry>Enable constrained class methods.</entry>
+             <entry>Enable <link linkend="class-method-types">constrained class methods</link>.</entry>
              <entry>dynamic</entry>
              <entry><option>-XNoConstrainedClassMethods</option></entry>
            </row>
              <entry><option>-XNoFunctionalDependencies</option></entry>
            </row>
            <row>
-             <entry><option>-XGeneralizedNewtypeDeriving</option></entry>
-             <entry>Enable <link linkend="newtype-deriving">newtype deriving</link>.</entry>
+             <entry><option>-XPackageImports</option></entry>
+             <entry>Enable <link linkend="package-imports">package-qualified imports</link>.</entry>
              <entry>dynamic</entry>
-             <entry><option>-XNoGeneralizedNewtypeDeriving</option></entry>
+             <entry><option>-XNoPackageImports</option></entry>
            </row>
          </tbody>
        </tgroup>
            <entry><option>-Werror</option></entry>
            <entry>make warnings fatal</entry>
            <entry>dynamic</entry>
-           <entry></entry>
+           <entry>-Wwarn</entry>
+         </row>
+         <row>
+           <entry><option>-Wwarn</option></entry>
+           <entry>make warnings non-fatal</entry>
+           <entry>dynamic</entry>
+           <entry>-Werror</entry>
          </row>
 
          <row>
-           <entry><option>-fwarn-deprecations</option></entry>
-           <entry>warn about uses of functions &amp; types that are deprecated</entry>
+           <entry><option>-fwarn-warnings-deprecations</option></entry>
+           <entry>warn about uses of functions &amp; types that have warnings or deprecated pragmas</entry>
            <entry>dynamic</entry>
-           <entry><option>-fno-warn-deprecations</option></entry>
+           <entry><option>-fno-warn-warnings-deprecations</option></entry>
+         </row>
+
+         <row>
+           <entry><option>-fwarn-deprecated-flags</option></entry>
+           <entry>warn about uses of commandline flags that are deprecated</entry>
+           <entry>dynamic</entry>
+           <entry><option>-fno-warn-deprecated-flags</option></entry>
          </row>
 
          <row>
 
          <row>
            <entry><option>-fwarn-orphans</option></entry>
-           <entry>warn when the module contains "orphan" instance declarations
-           or rewrite rules</entry>
+           <entry>warn when the module contains <link linkend="orphan-modules">orphan instance declarations
+           or rewrite rules</link></entry>
            <entry>dynamic</entry>
            <entry><option>-fno-warn-orphans</option></entry>
          </row>
            </row>
 
            <row>
+             <entry><option>-fmethod-sharing</option></entry>
+             <entry>Share specialisations of overloaded functions (default)</entry>
+             <entry>dynamic</entry>
+             <entry><option>-fno-method-sharing</option></entry>
+           </row>
+
+           <row>
              <entry><option>-fdo-eta-reduction</option></entry>
              <entry>Enable eta-reduction. Implied by <option>-O</option>.</entry>
              <entry>dynamic</entry>
            </row>
 
            <row>
+             <entry><option>-fsimplifier-phases</option></entry>
+             <entry>Set the number of phases for the simplifier (default 2).
+              Ignored with <option>-O0</option>.</entry>
+             <entry>dynamic</entry>
+             <entry>-</entry>
+           </row>
+
+           <row>
              <entry><option>-fmax-simplifier-iterations</option></entry>
              <entry>Set the max iterations for the simplifier</entry>
              <entry>dynamic</entry>
            </row>
 
            <row>
+             <entry><option>-fspec-constr-threshold</option>=<replaceable>n</replaceable></entry>
+             <entry>Set the size threshold for the SpecConstr transformation to <replaceable>n</replaceable> (default: 200)</entry>
+             <entry>static</entry>
+             <entry><option>-fno-spec-constr-threshold</option></entry>
+           </row>
+
+           <row>
+             <entry><option>-fspec-constr-count</option>=<replaceable>n</replaceable></entry>
+             <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>
+             <entry><option>-fno-spec-constr-count</option></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>
            </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><option>-fstatic-argument-transformation</option></entry>
+             <entry>Turn on the static argument transformation. Implied by <option>-O2</option>.</entry>
+             <entry>dynamic</entry>
+             <entry>-fno-static-argument-transformation</entry>
+           </row>
+
+           <row>
+             <entry><option>-fliberate-case-threshold</option>=<replaceable>n</replaceable></entry>
+             <entry>Set the size threshold for the liberate-case transformation to <replaceable>n</replaceable> (default: 200)</entry>
              <entry>static</entry>
-             <entry><option>-</option></entry>
+             <entry><option>-fno-liberate-case-threshold</option></entry>
            </row>
 
            <row>
            </row>
 
            <row>
-             <entry><option>-funfolding-update-in-place</option></entry>
-             <entry>Tweak unfolding settings</entry>
-             <entry>static</entry>
-             <entry><option>-fno-unfolding-update-in-place</option></entry>
-           </row>
-
-           <row>
              <entry><option>-funfolding-use-threshold</option></entry>
              <entry>Tweak unfolding settings</entry>
              <entry>static</entry>
              <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>-hpcdir dir</option></entry>
-             <entry>Directory to deposit .mix files during compilation</entry>
+             <entry>Directory to deposit .mix files during compilation (default is .hpc)</entry>
              <entry>dynamic</entry>
              <entry><option>-</option></entry>
            </row>
              <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>
            <row>
              <entry><option>-ddump-hpc</option></entry>
-             <entry>Dump after intrumentation for program coverage</entry>
+             <entry>Dump after instrumentation for program coverage</entry>
              <entry>dynamic</entry>
              <entry>-</entry>
            </row>
              <entry>-</entry>
            </row>
            <row>
+             <entry><option>-ddump-simpl-phases</option></entry>
+             <entry>Dump output from each simplifier phase</entry>
+             <entry>dynamic</entry>
+             <entry>-</entry>
+           </row>
+           <row>
              <entry><option>-ddump-simpl-iterations</option></entry>
              <entry>Dump output from each simplifier iteration</entry>
              <entry>dynamic</entry>
            </row>
            <row>
              <entry><option>-ddump-splices</option></entry>
-             <entry>Dump TH splided expressions, and what they evaluate to</entry>
+             <entry>Dump TH spliced expressions, and what they evaluate to</entry>
              <entry>dynamic</entry>
              <entry>-</entry>
            </row>
              <entry>-</entry>
            </row>
            <row>
+             <entry><option>-dno-debug-output</option></entry>
+             <entry>Suppress unsolicited debugging output</entry>
+             <entry>static</entry>
+             <entry>-</entry>
+           </row>
+           <row>
              <entry><option>-dppr-debug</option></entry>
              <entry>Turn on debug printing (more verbose)</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>static</entry>
+             <entry>-</entry>
+           </row>
+           <row>
              <entry><option>-dppr-noprags</option></entry>
              <entry>Don't output pragma info in dumps</entry>
              <entry>static</entry>
              <entry>dynamic</entry>
              <entry>-</entry>
            </row>
-           <row>
-             <entry><option>-unreg</option></entry>
-             <entry>Enable unregisterised compilation</entry>
-             <entry>static</entry>
-             <entry>-</entry>
-           </row>
          </tbody>
        </tgroup>
       </informaltable>
              <entry>-</entry>
            </row>
            <row>
-             <entry><option>-fno-method-sharing</option></entry>
-             <entry>Don't share specialisations of overloaded functions</entry>
-             <entry>static</entry>
-             <entry>-</entry>
-           </row>
-           <row>
              <entry><option>-fhistory-size</option></entry>
              <entry>Set simplification history size</entry>
              <entry>static</entry>