Remove unused option -femit-extern-decls
[ghc-hetmet.git] / docs / users_guide / phases.xml
index 35e74c3..9058177 100644 (file)
@@ -486,6 +486,24 @@ $ cat foo.hspp</screen>
           are fed to <replaceable>cmd</replaceable> on the command
           line after the three standard input and output
           arguments.</para>
+
+          <para>
+          An example of a pre-processor is to convert your source files to the
+          input encoding that GHC expects, i.e. create a script
+          <literal>convert.sh</literal> containing the lines:
+          </para>
+
+<screen>#!/bin/sh
+( echo "{-# LINE 1 \"$2\" #-}" ; iconv -f l1 -t utf-8 $2 ) > $3</screen>
+
+          <para>and pass <literal>-F -pgmF convert.sh</literal> to GHC.
+          The <literal>-f l1</literal> option tells iconv to convert your
+          Latin-1 file, supplied in argument <literal>$2</literal>, while
+          the "-t utf-8" options tell iconv to return a UTF-8 encoded file.
+          The result is redirected into argument <literal>$3</literal>.
+          The <literal>echo "{-# LINE 1 \"$2\" #-}"</literal>
+          just makes sure that your error positions are reported as
+          in the original source file.</para>
         </listitem>
       </varlistentry>
     </variablelist>
@@ -725,7 +743,12 @@ $ cat foo.hspp</screen>
           <para>Tell the linker to split the single object file that
           would normally be generated into multiple object files,
           one per top-level Haskell function or type in the module.
-          We use this feature for building GHC's libraries libraries
+          This only makes sense for libraries, where it means that
+          executables linked against the library are smaller as they only
+          link against the object files that they need. However, assembling
+          all the sections separately is expensive, so this is slower than
+          compiling normally.
+          We use this feature for building GHC's libraries
           (warning: don't use it unless you know what you're
           doing!).</para>
         </listitem>
@@ -783,7 +806,7 @@ $ cat foo.hspp</screen>
            <literal>ghc</literal> is not clever 
            enough to figure out that they both need recompiling.  You can
            force recompilation by removing the object file, or by using the
-           <option>-no-recomp</option> flag.
+           <option>-fforce-recomp</option> flag.
             </para> 
         </listitem>
       </varlistentry>