<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
“stack trace” 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>
<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>
</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>
main = do
putStr "how are you today? "
hFlush stdout
- input <- hGetLine
+ input &- hGetLine
...</programlisting>
<para>You'll probably find that the behaviour differs when
as <literal><<loop>></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>-#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>