Commit 0243f357 authored by Simon Marlow's avatar Simon Marlow

Various updates/additions

parent 34a54b00
...@@ -169,8 +169,9 @@ data instance T [a] where ...@@ -169,8 +169,9 @@ data instance T [a] where
<para> <para>
The <literal>-#include</literal> flag and The <literal>-#include</literal> flag and
<literal>INCLUDE</literal> pragma are now deprecated and <literal>INCLUDE</literal> pragma are now deprecated and
ignored. GHC now generates its own C prototypes, rather than ignored. Since version 6.10.1, GHC has generated its own C
relying on C prototypes. prototypes for foreign calls, rather than relying on
prototypes from C header files.
</para> </para>
</listitem> </listitem>
...@@ -184,7 +185,8 @@ data instance T [a] where ...@@ -184,7 +185,8 @@ data instance T [a] where
<listitem> <listitem>
<para> <para>
There is a new FFI calling convention called There is a new FFI calling convention called
<literal>prim</literal>, which allows calling C-- function. <literal>prim</literal>, which allows calling C-- functions
(see <xref linkend="ffi-prim" />).
Most users are not expected to need this. Most users are not expected to need this.
</para> </para>
</listitem> </listitem>
...@@ -252,6 +254,10 @@ data instance T [a] where ...@@ -252,6 +254,10 @@ data instance T [a] where
<sect2> <sect2>
<title>Runtime system</title> <title>Runtime system</title>
<para>The following options are all described in
<xref linkend="rts-options-gc" />.</para>
<itemizedlist> <itemizedlist>
<listitem> <listitem>
<para> <para>
...@@ -263,31 +269,34 @@ data instance T [a] where ...@@ -263,31 +269,34 @@ data instance T [a] where
<listitem> <listitem>
<para> <para>
The new flag <literal>+RTS -q1</literal> disables the parallel The parallel GC now uses the same threads as the mutator,
garbage collector. with the consequence that you can no longer select a
different number of threads to use for GC.
The <option>-g<replaceable>n</replaceable></option> RTS
option has been removed, except that <option>-g1</option> is
still accepted for backwards compatibility.
</para> </para>
</listitem>
<listitem>
<para> <para>
The new flag The new flag
<literal>+RTS -qg<replaceable>n</replaceable></literal> <literal>+RTS -qg<replaceable>gen</replaceable></literal> sets
sets the minimum generation for which parallel garbage the minimum generation for which parallel garbage collection
collection is used. Defaults to 1. is used. Defaults to 1. The flag <literal>-qg</literal> on
its own disables parallel GC.
</para> </para>
</listitem> </listitem>
<listitem> <listitem>
<para> <para>
The new flag <literal>+RTS -qa</literal> The new flag <literal>+RTS -qb<replaceable>gen</replaceable></literal>
uses the OS to set thread affinity. controls load balancing in the parallel GC.
</para> </para>
</listitem> </listitem>
<listitem> <listitem>
<para> <para>
The new flag <literal>+RTS -qb</literal> The new flag <literal>+RTS -qa</literal>
disables load balancing in the parallel garbage collector. uses the OS to set thread affinity (experimental).
</para> </para>
</listitem> </listitem>
...@@ -297,7 +306,7 @@ data instance T [a] where ...@@ -297,7 +306,7 @@ data instance T [a] where
the new flag <literal>+RTS -l</literal> generates the new flag <literal>+RTS -l</literal> generates
<literal><replaceable>prog</replaceable>.eventlog</literal> <literal><replaceable>prog</replaceable>.eventlog</literal>
files, which tools such as ThreadScope can use to show the files, which tools such as ThreadScope can use to show the
behaviour of your program. The behaviour of your program (see <xref linkend="rts-eventlog" />). The
<literal>+RTS -D><replaceable>x</replaceable></literal> output <literal>+RTS -D><replaceable>x</replaceable></literal> output
is also sent to the eventlog file if this option is enabled. is also sent to the eventlog file if this option is enabled.
The <literal>+RTS -v</literal> flag sends eventlog data to The <literal>+RTS -v</literal> flag sends eventlog data to
...@@ -343,7 +352,7 @@ SPARKS: 1430 (2 converted, 1427 pruned) ...@@ -343,7 +352,7 @@ SPARKS: 1430 (2 converted, 1427 pruned)
<para> <para>
In order to generate the parsers, happy >= 1.16 is now In order to generate the parsers, happy >= 1.16 is now
required. The parsers are pre-generated in the source tarball, required. The parsers are pre-generated in the source tarball,
so most users will not need happy. so most users will not need Happy.
</para> </para>
</listitem> </listitem>
...@@ -577,8 +586,11 @@ deriveMyStuff ''T ...@@ -577,8 +586,11 @@ deriveMyStuff ''T
<para> <para>
Packages can now be identified by a "package ID", which is Packages can now be identified by a "package ID", which is
based on a hash of the ABIs. The new flag based on a hash of the ABIs. The new flag
<literal>-package-id</literal> allows packages to be selected <literal>-package-id</literal> allows packages to be
by this identifier. selected by this identifier (see <xref linkend="package-ids"
/>). Package IDs enable GHC to detect potential
incompatibilities between packages and broken dependencies
much more accurately than before.
</para> </para>
</listitem> </listitem>
...@@ -610,6 +622,31 @@ ghc --abi-hash M1 M2 ... ...@@ -610,6 +622,31 @@ ghc --abi-hash M1 M2 ...
Rather than being a single <literal>package.conf</literal> file, Rather than being a single <literal>package.conf</literal> file,
package databases now consist of a directory containing one package databases now consist of a directory containing one
file per package, and a binary cache of the information. file per package, and a binary cache of the information.
GHC should be much faster to start up when the package
database grows large.
</para>
</listitem>
<listierm>
<para>
There is a new command <literal>ghc-pkg init</literal> to
create a package database.
</para>
</listierm>
<listierm>
<para>
There is a new command <literal>ghc-pkg dot</literal> to
generate a GraphViz graph of the dependencies between
installed packages.
</para>
</listierm>
<listitem>
<para>
There is a new command <literal>ghc-pkg recache</literal> to
update the package database cache should it become out of
date, or for registering packages manually.
</para> </para>
</listitem> </listitem>
</itemizedlist> </itemizedlist>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment