Document -fspec-threshold
[ghc-hetmet.git] / docs / users_guide / flags.xml
index eeb4f5d..48cf03a 100644 (file)
          <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>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>
            <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>
            </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-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>
            <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>
            </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>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>