+ <listitem>
+ <para>
+ GHC now defaults to <literal>--make</literal> mode, i.e. GHC
+ will chase dependencies for you automatically by default.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ GHC now includes an LLVM code generator.
+ </para>
+ <para>
+ This includes a number of new flags:
+ a flag to tell GHC to use LLVM, <literal>-fllvm</literal>;
+ a flag to dump the LLVM input ,<literal>-ddump-llvm</literal>;
+ flags to keep the LLVM intermediate files,
+ <literal>-keep-llvm-file</literal> and
+ <literal>-keep-llvm-files</literal>;
+ flags to set the location and options for the LLVM assembler,
+ optimiser and compiler,
+ <literal>-pgmla</literal>,
+ <literal>-pgmlo</literal>,
+ <literal>-pgmlc</literal>,
+ <literal>-optla</literal>,
+ <literal>-optlo</literal> and
+ <literal>-optlc</literal>.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ It is now possible to use <literal>-fno-code</literal> with
+ <literal>--make</literal>.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ The new flag <literal>-dsuppress-coercions</literal> controls
+ whether GHC prints coercions in core dumps.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ The inliner has been overhauled. The most significant
+ user-visible change is that only saturated functions are
+ inlined, e.g.
+ </para>
+<programlisting>
+(.) f g x = f (g x)
+</programlisting>
+ <para>
+ would only be inlined if <literal>(.)</literal> is applied to 3
+ arguments, while
+ </para>
+<programlisting>
+(.) f g = \x -> f (g x)
+</programlisting>
+ <para>
+ will be inlined if only aplpied to 2 arguments.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ The <literal>-finline-if-enough-args</literal> flag is no
+ longer supported.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Column numbers in warnings and error messages now start at 1,
+ as is more standard, rather than 0.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ GHCi now understands most linker scripts. In particular, this
+ means that GHCi is able to load the C pthread library.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ The <literal>ghc --info</literal> output has been updated:
+ </para>
+ <para>
+ It now includes the
+ location of the global package database, in the
+ <literal>Global Package DB</literal> field.
+ </para>
+ <para>
+ It now includes the build, host and target platforms, in the
+ <literal>Build platform</literal>,
+ <literal>Host platform</literal> and
+ <literal>Target platform</literal> fields.
+ </para>
+ <para>
+ It now includes a <literal>Have llvm code generator</literal>
+ field.
+ </para>
+ <para>
+ The <literal>Win32 DLLs</literal> field has been removed.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ The registerised via-C backend, and the
+ <literal>-fvia-C</literal>, have been deprecated. The poor
+ floating-point performance in the x86 native code generator
+ has now been fixed, so we don't believe there is still any
+ reason to use the via-C backend.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ There is now a new flag <literal>--supported-extensions</literal>,
+ which currently behaves the same as
+ <literal>--supported-languages</literal>.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ GHC progress output such as
+ </para>
+<programlisting>
+[ 1 of 5] Compiling Foo ( Foo.hs, Foo.o )
+</programlisting>
+ <para>
+ is now sent to stdout rather than stderr.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ The new flag <literal>-fexpose-all-unfoldings</literal>
+ makes GHC put unfoldings for <emphasis>everything</emphasis>
+ in the interface file.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ There are two new flags, <literal>-fno-specialise</literal>
+ and <literal>-fno-float-in</literal>, for disabling the
+ specialise and float-in passes.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ The new flag <literal>-fstrictness-before=<replaceable>n</replaceable></literal> tells
+ GHC to run an additional strictness analysis pass
+ before simplifier phase <replaceable>n</replaceable>.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ There is a new flag
+ <literal>-funfolding-dict-discount</literal>
+ for tweaking the optimiser's behaviour.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ The <literal>-fspec-inline-join-points</literal> flag has been
+ removed.
+ </para>
+ </listitem>