Preliminary monad-comprehension patch (Trac #4370)
[ghc-hetmet.git] / docs / users_guide / flags.xml
index afec9bd..add2f5e 100644 (file)
@@ -60,8 +60,8 @@
              <entry>-</entry>
            </row>
            <row>
-             <entry><option>&ndash;&ndash;supported-languages</option></entry>
-             <entry>display the supported language extensions</entry>
+             <entry><option>&ndash;&ndash;supported-extensions</option> or <option>&ndash;&ndash;supported-languages</option></entry>
+             <entry>display the supported languages and language extensions</entry>
              <entry>mode</entry>
              <entry>-</entry>
            </row>
              <entry>-</entry>
            </row>
            <row>
-             <entry><option>-keep-s-file</option> or
-                 <option>-keep-s-files</option></entry>
-             <entry>retain intermediate <literal>.s</literal> files</entry>
+             <entry><option>-keep-llvm-file</option> or
+                 <option>-keep-llvm-files</option></entry>
+             <entry>retain intermediate LLVM <literal>.ll</literal> files</entry>
              <entry>dynamic</entry>
              <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><option>-keep-s-file</option> or
+                 <option>-keep-s-files</option></entry>
+             <entry>retain intermediate <literal>.s</literal> files</entry>
              <entry>dynamic</entry>
              <entry>-</entry>
            </row>
            <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>
              <entry>static</entry>
              <entry>-</entry>
            </row>
+           <row>
+             <entry><option>-no-auto-link-packages</option></entry>
+             <entry>Don't automatically link in the haskell98 package.</entry>
+             <entry>dynamic</entry>
+             <entry>-</entry>
+           </row>
          </tbody>
        </tgroup>
       </informaltable>
              <entry><option>-XImplicitPrelude</option></entry>
            </row>
            <row>
+             <entry><option>-XRebindableSyntax</option></entry>
+             <entry>Employ <link linkend="rebindable-syntax">rebindable syntax</link></entry>
+             <entry>dynamic</entry>
+             <entry><option>-XNoRebindableSyntax</option></entry>
+           </row>
+           <row>
              <entry><option>-XNoMonomorphismRestriction</option></entry>
              <entry>Disable the <link linkend="monomorphism">monomorphism restriction</link></entry>
              <entry>dynamic</entry>
              <entry><option>-XNoGADTs</option></entry>
            </row>
            <row>
+             <entry><option>-XGADTSyntax</option></entry>
+             <entry>Enable <link linkend="gadt-style">generalised algebraic data type syntax</link>.
+             </entry>
+             <entry>dynamic</entry>
+             <entry><option>-XNoGADTSyntax</option></entry>
+           </row>
+           <row>
              <entry><option>-XTypeFamilies</option></entry>
              <entry>Enable <link linkend="type-families">type families</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>-XExplicitForALl</option></entry>
              <entry>Enable <link linkend="explicit-foralls">explicit universal quantification</link>.
               Implied by <option>-XScopedTypeVariables</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>-XNoTypeOperators</option></entry>
            </row>
            <row>
+             <entry><option>-XDoRec</option></entry>
+             <entry>Enable <link linkend="recursive-do-notation">recursive do notation</link>.</entry>
+             <entry>dynamic</entry>
+             <entry><option>-XNoDoRec</option></entry>
+           </row>
+           <row>
              <entry><option>-XRecursiveDo</option></entry>
-             <entry>Enable <link linkend="mdo-notation">recursive do (mdo) notation</link>.</entry>
+             <entry>Enable <link linkend="mdo-notation">recursive do (mdo) notation</link>. This is deprecated; please use <link linkend="recursive-do-notation">recursive do notation</link> instead.</entry>
              <entry>dynamic</entry>
              <entry><option>-XNoRecursiveDo</option></entry>
            </row>
            </row>
            <row>
              <entry><option>-XFlexibleInstances</option></entry>
-             <entry>Enable <link linkend="instance-rules">flexible instances</link>.</entry>
-             <entry>dynamic</entry>
+              <entry>Enable <link linkend="instance-rules">flexible instances</link>.
+              Implies <option>-XTypeSynonymInstances</option> </entry>
+              <entry>dynamic</entry>
              <entry><option>-XNoFlexibleInstances</option></entry>
            </row>
            <row>
          </row>
 
           <row>
+            <entry><option>-fwarn-identities</option></entry>
+            <entry>warn about uses of Prelude numeric conversions that are probably
+                   the identity (and hence could be omitted)</entry>
+            <entry>dynamic</entry>
+            <entry><option>-fno-warn-identities</option></entry>
+          </row>
+
+          <row>
             <entry><option>-fwarn-implicit-prelude</option></entry>
             <entry>warn when the Prelude is implicitly imported</entry>
             <entry>dynamic</entry>
          </row>
 
          <row>
+           <entry><option>-fwarn-incomplete-uni-patterns</option></entry>
+           <entry>warn when a pattern match in a lambda expression or pattern binding could fail</entry>
+           <entry>dynamic</entry>
+           <entry><option>-fno-warn-incomplete-uni-patterns</option></entry>
+         </row>
+
+         <row>
            <entry><option>-fwarn-incomplete-record-updates</option></entry>
            <entry>warn when a record update could fail</entry>
            <entry>dynamic</entry>
          </row>
 
          <row>
+            <entry><option>-fwarn-lazy-unlifted-bindings</option></entry>
+            <entry>warn when a pattern binding looks lazy but must be strict</entry>
+           <entry>dynamic</entry>
+            <entry><option>-fno-warn-lazy-unlifted-bindings</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-missing-import-lists</option></entry>
+           <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-methods</option></entry>
            <entry>warn when class methods are undefined</entry>
            <entry>dynamic</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>
          </row>
 
          <row>
-           <entry><option>-fwarn-simple-patterns</option></entry>
-           <entry>warn about lambda-patterns that can fail</entry>
-           <entry>dynamic</entry>
-           <entry><option>-fno-warn-simple-patterns</option></entry>
-         </row>
-
-         <row>
            <entry><option>-fwarn-tabs</option></entry>
            <entry>warn if there are tabs in the source file</entry>
            <entry>dynamic</entry>
            </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>
            </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>
            <row>
              <entry><option>-auto</option></entry>
              <entry>Auto-add <literal>_scc_</literal>s to all
-             exported functions</entry>
+             exported functions not marked INLINE</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>
+             top-level functions not marked INLINE</entry>
              <entry>dynamic</entry>
              <entry><option>-no-auto-all</option></entry>
            </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>
              <entry><option>-fasm</option></entry>
              <entry>Use the native code generator</entry>
              <entry>dynamic</entry>
-             <entry>-fvia-C</entry>
+             <entry>-fllvm</entry>
            </row>
            <row>
-             <entry><option>-fvia-C</option></entry>
-             <entry>Compile via C</entry>
+             <entry><option>-fllvm</option></entry>
+             <entry>Compile via LLVM</entry>
              <entry>dynamic</entry>
              <entry>-fasm</entry>
            </row>
              <entry>-</entry>
            </row>
            <row>
+             <entry><option>-rtsopts</option>, <option>-rtsopts={none,some,all}</option></entry>
+             <entry>Control whether the RTS behaviour can be tweaked via command-line
+          flags and the <literal>GHCRTS</literal> environment
+          variable. Using <literal>none</literal> means no RTS flags can be given; <literal>some</literal> means only a minimum of safe options can be given (the default), and <literal>all</literal> (or no argument at all) means that all RTS flags are permitted.</entry>
+             <entry>dynamic</entry>
+             <entry>-</entry>
+           </row>
+           <row>
+             <entry><option>-with-rtsopts=<replaceable>opts</replaceable></option></entry>
+             <entry>Set the default RTS options to
+          <replaceable>opts</replaceable>.</entry>
+             <entry>dynamic</entry>
+             <entry>-</entry>
+           </row>
+           <row>
              <entry><option>-no-link</option></entry>
              <entry>Omit linking</entry>
              <entry>dynamic</entry>
              <entry>dynamic</entry>
              <entry>-</entry>
            </row>
+           <row>
+             <entry><option>-dylib-install-name</option> <replaceable>path</replaceable></entry>
+             <entry>Set the install name (via <literal>-install_name</literal> passed to Apple's
+              linker), specifying the full install path of the library file. Any libraries
+              or executables that link with it later will pick up that path as their
+              runtime search location for it. (Darwin/MacOS X only)</entry>
+             <entry>dynamic</entry>
+             <entry>-</entry>
+           </row>
          </tbody>
        </tgroup>
       </informaltable>
              <entry>Use <replaceable>cmd</replaceable> as the C compiler</entry>
              <entry>dynamic</entry>
              <entry>-</entry>
+           <row>
+             <entry><option>-pgmlo</option> <replaceable>cmd</replaceable></entry>
+             <entry>Use <replaceable>cmd</replaceable> as the LLVM optimiser</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><option>-pgmlc</option> <replaceable>cmd</replaceable></entry>
+             <entry>Use <replaceable>cmd</replaceable> as the LLVM compiler</entry>
              <entry>dynamic</entry>
              <entry>-</entry>
            </row>
+           </row>
            <row>
              <entry><option>-pgms</option> <replaceable>cmd</replaceable></entry>
              <entry>Use <replaceable>cmd</replaceable> as the splitter</entry>
       <indexterm><primary><option>-pgmL</option></primary></indexterm>
       <indexterm><primary><option>-pgmP</option></primary></indexterm>
       <indexterm><primary><option>-pgmc</option></primary></indexterm>
+      <indexterm><primary><option>-pgmlo</option></primary></indexterm>
+      <indexterm><primary><option>-pgmlc</option></primary></indexterm>
       <indexterm><primary><option>-pgma</option></primary></indexterm>
       <indexterm><primary><option>-pgml</option></primary></indexterm>
       <indexterm><primary><option>-pgmdll</option></primary></indexterm>
              <entry>-</entry>
            </row>
            <row>
+             <entry><option>-optlo</option> <replaceable>option</replaceable></entry>
+             <entry>pass <replaceable>option</replaceable> to the LLVM optimiser</entry>
+             <entry>dynamic</entry>
+             <entry>-</entry>
+           </row>
+           <row>
+             <entry><option>-optlc</option> <replaceable>option</replaceable></entry>
+             <entry>pass <replaceable>option</replaceable> to the LLVM compiler</entry>
+             <entry>dynamic</entry>
+             <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>Reverse</entry>
            </row>
          </thead>
+          <tbody>
+            <row>
+             <entry><option>-msse2</option></entry>
+             <entry>(x86 only) Use SSE2 for floating point</entry>
+             <entry>dynamic</entry>
+             <entry>-</entry>
+            </row>
+          </tbody>
          <tbody>
            <row>
              <entry><option>-monly-[432]-regs</option></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>-ddump-llvm</option></entry>
+             <entry>Dump LLVM intermediate code</entry>
+             <entry>dynamic</entry>
+             <entry>-</entry>
+           </row>
+           <row>
              <entry><option>-ddump-occur-anal</option></entry>
              <entry>Dump occurrence analysis output</entry>
              <entry>dynamic</entry>
              <entry>-</entry>
            </row>
            <row>
-             <entry><option>-ddump-rules</option></entry>
-             <entry>Dump rules</entry>
+             <entry><option>-ddump-rule-firings</option></entry>
+             <entry>Dump rule firing info</entry>
              <entry>dynamic</entry>
              <entry>-</entry>
            </row>
            <row>
+             <entry><option>-ddump-rule-rewrites</option></entry>
+             <entry>Dump detailed rule firing info</entry>
+             <entry>dynamic</entry>
+             <entry>-</entry>
+           </row>
+      <row>
+        <entry><option>-ddump-rules</option></entry>
+        <entry>Dump rules</entry>
+        <entry>dynamic</entry>
+        <entry>-</entry>
+      </row>
+      <row>
+        <entry><option>-ddump-vect</option></entry>
+        <entry>Dump vectoriser input and 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>dynamic</entry>
              <entry>-</entry>
            </row>
-           <row>
-             <entry><option>-ddump-tc-trace</option></entry>
-             <entry>Trace typechecker</entry>
-             <entry>dynamic</entry>
-             <entry>-</entry>
-           </row>
+      <row>
+        <entry><option>-ddump-tc-trace</option></entry>
+        <entry>Trace typechecker</entry>
+        <entry>dynamic</entry>
+        <entry>-</entry>
+      </row>
+      <row>
+        <entry><option>-ddump-vt-trace</option></entry>
+        <entry>Trace vectoriser</entry>
+        <entry>dynamic</entry>
+        <entry>-</entry>
+      </row>
            <row>
              <entry><option>-ddump-rn-trace</option></entry>
              <entry>Trace renamer</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>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>-</entry>
            </row>
            <row>
-             <entry><option>-fno-asm-mangling</option></entry>
-             <entry>Turn off assembly mangling (use <option>-unreg</option> instead)</entry>
+             <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>dynamic</entry>
              <entry>-</entry>
            </row>
@@ -2439,7 +2618,6 @@ Misc:
 
 <!-- Emacs stuff:
      ;;; Local Variables: ***
-     ;;; mode: xml ***
      ;;; sgml-parent-document: ("users_guide.xml" "book" "chapter") ***
      ;;; End: ***
  -->