Rationalise GhcMode, HscTarget and GhcLink
[ghc-hetmet.git] / docs / users_guide / flags.xml
index 1fd054c..1de581d 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>
              <entry>static</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>
          </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>
              <entry><option>-fno-extended-default-rules</option></entry>
            </row>
            <row>
+             <entry><option>-foverloaded-strings</option></entry>
+             <entry>Enable <link linkend="overloaded-strings">overloaded string literals</link>.
+             </entry>
+             <entry>dynamic</entry>
+             <entry><option>-fno-overloaded-strings</option></entry>
+           </row>
+           <row>
              <entry><option>-fscoped-type-variables</option></entry>
              <entry>Enable <link linkend="scoped-type-variables">lexically-scoped type variables</link>.
              Implied by <option>-fglasgow-exts</option>.</entry>
            </row>
            <row>
              <entry><option>-fbang-patterns</option></entry>
-             <entry>Enable <link linkend="sec-bang-patterns">bang patterns</link>.</entry>
+             <entry>Enable <link linkend="bang-patterns">bang patterns</link>.</entry>
              <entry>dynamic</entry>
              <entry><option>-fno-bang-patterns</option></entry>
            </row>
          </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>
              <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>-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>
              <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-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-prep</option></entry>
+             <entry>Dump prepared core</entry>
+             <entry>dynamic</entry>
+             <entry>-</entry>
+           </row>
+           <row>
              <entry><option>-ddump-rn</option></entry>
              <entry>Dump renamer 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-if-trace</option></entry>
+             <entry>Trace interface files</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-rn-trace</option></entry>
              <entry>Trace renamer</entry>
              <entry>dynamic</entry>
              <entry>-</entry>
            </row>
            <row>
+             <entry><option>-dcmm-lint</option></entry>
+             <entry>C-- pass sanity checking</entry>
+             <entry>dynamic</entry>
+             <entry>-</entry>
+           </row>
+           <row>
              <entry><option>-dstg-lint</option></entry>
              <entry>STG pass sanity checking</entry>
              <entry>dynamic</entry>
              <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>
            </row>
            <row>
              <entry><option>-fno-print-bind-result</option></entry>
-             <entry><link id="ghci-stmts">Turn off printing of binding results in GHCi</link></entry>
+             <entry><link linkend="ghci-stmts">Turn off printing of binding results in GHCi</link></entry>
              <entry>dynamic</entry>
              <entry>-</entry>
            </row>