[project @ 2004-08-15 20:28:02 by panne]
[ghc-hetmet.git] / ghc / docs / users_guide / faq.sgml
index 0e0b980..8618dee 100644 (file)
@@ -95,7 +95,7 @@
       <listitem>
        <para>If you're also using CPP, beware of the known pitfall
        with string gaps mentioned in <xref
-       linkend="cpp-string-gaps">.</para>
+       linkend="cpp-string-gaps"/>.</para>
       </listitem>
     </varlistentry>
 
     </varlistentry>
     
     <varlistentry>
+      <term>The build fails in readline.</term>
+      <listitem>
+       <para>It has been reported that if you have multiple versions
+       of the readline library installed on Linux, then this may
+       cause the build to fail.  If you have multiple versions of
+       readline, try uninstalling all except the most recent
+       version.</para>
+      </listitem>
+    </varlistentry>
+
+    <varlistentry>
       <term>When I try to start ghci (probably one I compiled myself)
       it says <literal>ghc-5.02: not built for interactive
       use</literal></term>
       <listitem>
        <para>You should use the <option>-#include</option> option to
        bring the correct prototype into scope (see <xref
-       linkend="options-C-compiler">).</para>
+       linkend="options-C-compiler"/>).</para>
       </listitem>
     </varlistentry>
 
 -auto-all</literal> (make sure you have the profiling libraries
 installed), and run it with <literal>+RTS -xc -RTS</literal> to get a
 &ldquo;stack trace&rdquo; at the point at which the exception was
-raised.  See <xref linkend="rts-options-debugging"> for more
+raised.  See <xref linkend="rts-options-debugging"/> for more
 details.</para>
       </listitem>
     </varlistentry>
@@ -250,7 +261,7 @@ details.</para>
       <term>How do I increase the heap size permanently for a given
       binary?</term>
       <listitem>
-       <para>See <xref linkend="rts-hooks">.</para>
+       <para>See <xref linkend="rts-hooks"/>.</para>
       </listitem>
     </varlistentry>
 
@@ -324,9 +335,8 @@ details.</para>
     </varlistentry>
 
     <varlistentry> 
-
       <term>If I explicitely set the buffering on a Handle to
-      "NoBuffering" I'm not able to > enter EOF by typing
+      "NoBuffering" I'm not able to enter EOF by typing
       "Ctrl-D".</term>
 
       <listitem>
@@ -360,7 +370,7 @@ details.</para>
   main = do
     putStr "how are you today? "
     hFlush stdout
-    input <- hGetLine
+    input &amp;- hGetLine
     ...</programlisting>
 
        <para>You'll probably find that the behaviour differs when
@@ -390,7 +400,56 @@ details.</para>
        as <literal>&lt;&lt;loop&gt;&gt;</literal>).</para>
       </listitem>
     </varlistentry>
+
+    
+    <varlistentry>
+      <term>Does GHC implement any kind of extensible records?</term>
+
+      <listitem>
+       <para>No, extensible records are not implemented in GHC.
+       <ulink url="http://www.haskell.org/hugs/">Hugs</ulink>
+       implements TRex, one extensible record variant.  The problem
+       is that the record design space is large, and seems to lack
+       local optima.  And all reasonable variants break backward
+       compatibility.  As a result, nothing much happens.</para>
+      </listitem>
+    </varlistentry>
+
+    <varlistentry>
+      <term>Why do I get errors about missing include files when
+      compiling with <option>-O</option> or
+      <option>-prof</option>?</term>
+
+      <listitem>
+       <para>Certain options, such as <option>-O</option>, turn on
+       via-C compilation, instead of using the native code generator.
+       Include files named by <option>-&num;include</option> options
+       or in <literal>foreign import</literal> declarations are only
+       used in via-C compilation mode.  See <xref
+       linkend="finding-header-files"/> for more details.</para>
+      </listitem>
+    </varlistentry>
+
+    <varlistentry>
+      <term>How do I compile my program for profiling without
+      overwriting the object files and <literal>hi</literal> files
+      I've already built?</term>
+      <listitem>
+       <para>You can select alternative suffixes for object files and
+       interface files, so you can have several builds of the same
+       code coexisting in the same directory.  For example, to
+       compile with profiling, you might do this:</para>
+       
+       <screen>ghc --make -prof -o foo-prof -osuf p.o -hisuf p.hi Main</screen>
+       
+       <para>See <xref linkend="options-output"/> for more details on
+       the <option>-osuf</option> and <option>-hisuf</option>
+       options.</para>
+      </listitem>
+    </varlistentry>
+
   </variablelist>
+
 </chapter>