call-graph like structure. See <xref linkend="profiling"/> for more
details.</para>
- <para>GHC comes with a large collection of libraries, with
- everything from parser combinators to networking. The libraries are
+ <para>GHC comes with a number of libraries. These are
described in separate documentation.</para>
<sect1 id="mailing-lists-GHC">
<para>This list is for GHC users to chat among themselves.
If you have a specific question about GHC, please check the
<ulink
- url="http://hackage.haskell.org/trac/ghc/wiki/FAQ">FAQ</ulink>
+ url="http://haskell.org/haskellwiki/GHC/FAQ">FAQ</ulink>
first.</para>
<variablelist>
</varlistentry>
<varlistentry>
- <term>glasgow-haskell-bugs:</term>
- <listitem>
- <para>Send bug reports for GHC to this address! The sad and
- lonely people who subscribe to this list will muse upon
- what's wrong and what you might do about it.</para>
-
- <variablelist>
- <varlistentry>
- <term>list email address:</term>
- <listitem>
- <para><email>glasgow-haskell-bugs@haskell.org</email></para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>subscribe at:</term>
- <listitem>
- <para><ulink
- url="http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs"><literal>http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs</literal></ulink>.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>admin email address:</term>
- <listitem>
- <para><email>glasgow-haskell-bugs-admin@haskell.org</email></para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>list archives:</term>
- <listitem>
- <para><ulink
- url="http://www.haskell.org/pipermail/glasgow-haskell-bugs/"><literal>http://www.haskell.org/pipermail/glasgow-haskell-bugs/</literal></ulink></para>
- </listitem>
- </varlistentry>
- </variablelist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
<term>cvs-ghc:</term>
<listitem>
<para>The hardcore GHC developers hang out here. This list
- also gets commit message from the CVS repository. There are
- several other similar lists for other parts of the CVS
- repository (eg. <literal>cvs-hslibs</literal>,
- <literal>cvs-happy</literal>, <literal>cvs-hdirect</literal>
- etc.)</para>
+ also gets commit message from the GHC darcs repository. There are
+ other lists for other darcs
+ repositories (most notably <literal>cvs-libraries</literal>).
+ </para>
<variablelist>
<varlistentry>
<indexterm><primary>reporting bugs</primary>
</indexterm>
- <para>Glasgow Haskell is a changing system so there are sure to be
- bugs in it. </para>
-
- <para>To report a bug, either:</para>
-
- <itemizedlist>
- <listitem>
- <para>Preferred: <ulink
- url="http://hackage.haskell.org/trac/ghc/newticket?type=bug">Create
- a new bug</ulink>, and enter your bug report. You can also
- search the bug database here to make sure your bug hasn't already
- been reported (if it has, it might still help to add information
- from your experience to the existing report).</para>
- </listitem>
- <listitem>
- <para>Bug reports can also be emailed to
- <email>glasgow-haskell-bugs@haskell.org</email>. </para>
- </listitem>
- </itemizedlist>
-
- <sect2>
- <title>How do I tell if I should report my bug?</title>
-
- <para>Take a look at the <ulink
- url="http://hackage.haskell.org/trac/ghc/wiki/FAQ">FAQ</ulink> and <xref
- linkend="wrong"/>, which will give you some guidance as to
- whether the behaviour you're seeing is really a bug or
- not.</para>
+ <para>
+ Glasgow Haskell is a changing system so there are sure to be
+ bugs in it. If you find one, please see
+ <ulink url="http://hackage.haskell.org/trac/ghc/wiki/ReportABug">this wiki page</ulink>
+ for information on how to report it.
+ </para>
- <para>If it is a bug, then it might have been reported before:
- try searching on the <ulink
- url="http://hackage.haskell.org/trac/ghc">bug tracker</ulink>,
- and failing that, try <ulink
- url="http://www.google.com">Google</ulink>.</para>
-
- <para>If in doubt, just report it.</para>
- </sect2>
-
- <sect2>
- <title>What to put in a bug report</title>
- <indexterm><primary>bug reports</primary><secondary>contents</secondary></indexterm>
-
- <para>The name of the bug-reporting game is: facts, facts,
- facts. Don't omit them because “Oh, they won't be
- interested…”</para>
-
- <orderedlist>
- <listitem>
- <para>What kind of machine are you running on, and exactly
- what version of the operating system are you using? (on a
- Unix system, <command>uname -a</command> or <command>cat
- /etc/motd</command> will show the desired information.) In
- the bug tracker, this information can be given in the
- “Architecture” and “Operating
- system” fields.</para>
- </listitem>
-
- <listitem>
- <para>What version of GCC are you using? <command>gcc -v</command> will tell you.</para>
- </listitem>
-
- <listitem>
- <para>Run the sequence of compiles/runs that caused the
- offending behaviour, cut-and-paste the whole session into
- the bug report. We'd prefer to see the whole thing.</para>
- </listitem>
-
- <listitem>
- <para>Add the -v flag when running GHC, so we can see exactly
- what was run, what versions of things you have, etc.</para>
- </listitem>
-
- <listitem>
- <para>What is the program behaviour that is wrong, in your
- opinion?</para>
- </listitem>
-
- <listitem>
- <para>If practical, please attach or send enough source
- files for us to duplicate the problem.</para>
- </listitem>
-
- <listitem>
- <para>If you are a Hero and track down the problem in the
- compilation-system sources, please send us patches (either
- <literal>darcs send</literal>, plain patches, or just whole
- files if you prefer).</para>
- </listitem>
- </orderedlist>
- </sect2>
</sect1>
<sect1 id="version-numbering">
<title>GHC version numbering policy</title>
<indexterm><primary>version, of ghc</primary></indexterm>
- <para>As of GHC version 6.0, we have adopted the following policy
+ <para>As of GHC version 6.8, we have adopted the following policy
for numbering GHC versions:</para>
<variablelist>
<varlistentry>
<term>Stable Releases</term>
<listitem>
- <para>These are numbered <literal><replaceable>x</replaceable>.<replaceable>y</replaceable>.<replaceable>z</replaceable></literal>, where
- <replaceable>y</replaceable> is <emphasis>even</emphasis>, and
- <replaceable>z</replaceable> is the patchlevel number (the trailing
- <literal>.<replaceable>z</replaceable></literal> can be omitted if <replaceable>z</replaceable>
- is zero). Patchlevels are bug-fix releases only, and never
+ <para>Stable branches are numbered <literal><replaceable>x</replaceable>.<replaceable>y</replaceable></literal>, where
+ <replaceable>y</replaceable> is <emphasis>even</emphasis>.
+ Releases on the stable branch <literal><replaceable>x</replaceable>.<replaceable>y</replaceable></literal> are numbered <literal><replaceable>x</replaceable>.<replaceable>y</replaceable>.<replaceable>z</replaceable></literal>, where
+ <replaceable>z</replaceable> (>= 1) is the patchlevel number.
+ Patchlevels are bug-fix releases only, and never
change the programmer interface to any system-supplied code.
However, if you install a new patchlevel over an old one you
will need to recompile any code that was compiled against the
<literal><replaceable>x</replaceable>.<replaceable>y</replaceable>.<replaceable>z</replaceable></literal>
is the integer <replaceable>xyy</replaceable> (if
<replaceable>y</replaceable> is a single digit, then a leading zero
- is added, so for example in version 6.2 of GHC,
- <literal>__GLASGOW_HASKELL__==602</literal>).</para>
+ is added, so for example in version 6.8.2 of GHC we would have
+ <literal>__GLASGOW_HASKELL__==608</literal>).</para>
<indexterm>
<primary><literal>__GLASGOW_HASKELL__</literal></primary>
</indexterm>
</varlistentry>
<varlistentry>
- <term>Snapshots/unstable releases</term>
+ <term>Stable snapshots</term>
+ <listitem>
+ <para>
+ We may make snapshot releases of the current
+ stable branch <ulink url="http://www.haskell.org/ghc/dist/stable/dist/">available for download</ulink>, and the latest sources are available from <ulink url="http://hackage.haskell.org/trac/ghc/wiki/DarcsRepositories">the darcs repositories</ulink>.
+ </para>
+
+ <para>Stable snapshot releases are named
+ <literal><replaceable>x</replaceable>.<replaceable>y</replaceable>.<replaceable>z</replaceable>.<replaceable>YYYYMMDD</replaceable></literal>.
+ where <literal><replaceable>YYYYMMDD</replaceable></literal> is the date of the sources
+ from which the snapshot was built, and <literal><replaceable>x</replaceable>.<replaceable>y</replaceable>.<replaceable>z+1</replaceable></literal> is the next release to be made on that branch.
+ For example, <literal>6.8.1.20040225</literal> would be a
+ snapshot of the <literal>6.8</literal> branch during the development
+ of <literal>6.8.2</literal>.</para>
+
+ <para>The value of <literal>__GLASGOW_HASKELL__</literal>
+ for a snapshot release is the integer
+ <replaceable>xyy</replaceable>. You should never write any
+ conditional code which tests for this value, however: since
+ interfaces change on a day-to-day basis, and we don't have
+ finer granularity in the values of
+ <literal>__GLASGOW_HASKELL__</literal>, you should only
+ conditionally compile using predicates which test whether
+ <literal>__GLASGOW_HASKELL__</literal> is equal to, later
+ than, or earlier than a given major release.</para>
+ <indexterm>
+ <primary><literal>__GLASGOW_HASKELL__</literal></primary>
+ </indexterm>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>Unstable snapshots</term>
<listitem>
- <para>We may make snapshot releases of the current
- development sources from time to time, and the current
- sources are always available via the CVS repository (see the
- <ulink url="http://www.haskell.org/ghc/">GHC web
- site</ulink> for details).</para>
-
- <para>Snapshot releases are named
- <literal><replaceable>x</replaceable>.<replaceable>y</replaceable>.YYYYMMDD</literal>
- where <literal>YYYYMMDD</literal> is the date of the sources
- from which the snapshot was built. In theory, you can check
- out the exact same sources from the CVS repository using
- this date.</para>
-
- <para>If <replaceable>y</replaceable> is odd, then this is a
- snapshot of the CVS HEAD (the main development branch). If
- <replaceable>y</replaceable> is even, then it is a snapshot
- of the stable branch between patchlevel releases. For
- example, <literal>6.3.20040225</literal> would be a snapshot
- of the HEAD, but <literal>6.2.20040225</literal> would be a
- snapshot of the <literal>6.2</literal> branch.</para>
+ <para>
+ We may make snapshot releases of the
+ HEAD <ulink url="http://www.haskell.org/ghc/dist/current/dist/">available for download</ulink>, and the latest sources are available from <ulink url="http://hackage.haskell.org/trac/ghc/wiki/DarcsRepositories">the darcs repositories</ulink>.
+ </para>
+
+ <para>Unstable snapshot releases are named
+ <literal><replaceable>x</replaceable>.<replaceable>y</replaceable>.<replaceable>YYYYMMDD</replaceable></literal>.
+ where <literal><replaceable>YYYYMMDD</replaceable></literal> is the date of the sources
+ from which the snapshot was built.
+ For example, <literal>6.7.20040225</literal> would be a
+ snapshot of the HEAD before the creation of the
+ <literal>6.8</literal> branch.</para>
<para>The value of <literal>__GLASGOW_HASKELL__</literal>
for a snapshot release is the integer