</sect3>
-<sect3>
-<title>What bundles there are</title>
-
-<para>
-<indexterm><primary>bundles, binary</primary></indexterm> There are
-plenty of “non-basic” GHC bundles. The files for them are
-called
-<literal>ghc-x.xx-<replaceable>bundle</replaceable>-<replaceable>platform</replaceable>.tar.gz</literal>,
-where the <replaceable>platform</replaceable> is as above, and
-<replaceable>bundle</replaceable> is one of these:
-</para>
-
-<para>
-<variablelist>
-
-<varlistentry>
-<term><literal>prof</literal>:</term>
-<listitem>
-<para>
-Profiling with cost-centres. You probably want this.
-<indexterm><primary>profiling bundles</primary></indexterm>
-<indexterm><primary>bundles, profiling</primary></indexterm>
-</para>
-</listitem></varlistentry>
-<varlistentry>
-<term><literal>par</literal>:</term>
-<listitem>
-<para>
-Parallel Haskell features (sits on top of PVM).
-You'll want this if you're into that kind of thing.
-<indexterm><primary>parallel bundles</primary></indexterm>
-<indexterm><primary>bundles, parallel</primary></indexterm>
-</para>
-</listitem></varlistentry>
-<varlistentry>
-<term><literal>gran</literal>:</term>
-<listitem>
-<para>
-The “GranSim” parallel-Haskell simulator
-(hmm… mainly for implementors).
-<indexterm><primary>bundles, gransim</primary></indexterm>
-<indexterm><primary>gransim bundles</primary></indexterm>
-</para>
-</listitem></varlistentry>
-<varlistentry>
-<term><literal>ticky</literal>:</term>
-<listitem>
-<para>
-“Ticky-ticky” profiling; very detailed
-information about “what happened when I ran this program”—really
-for implementors.
-<indexterm><primary>bundles, ticky-ticky</primary></indexterm>
-<indexterm><primary>ticky-ticky bundles</primary></indexterm>
-</para>
-</listitem></varlistentry>
-</variablelist>
-</para>
-
-<para>
-One likely scenario is that you will grab <emphasis>two</emphasis>
-binary bundles—basic, and profiling. We don't usually make the
-rest, although you can build them yourself from a source distribution.
-</para>
-
-<para>The various GHC bundles are designed to be unpacked into the
-same directory; then installing as per the directions above will
-install the whole lot in one go. Note: you <emphasis>must</emphasis>
-at least have the basic GHC binary distribution bundle, these extra
-bundles won't install on their own.</para>
-
-</sect3>
-
<sect3 id="GHC-test">
<title>Testing that GHC seems to be working
</title>
</para>
-<para>
-Some simple-but-profitable tests are to compile and run the notorious
-<literal>nfib</literal><indexterm><primary>nfib</primary></indexterm> program, using different numeric types. Start with
-<literal>nfib :: Int -> Int</literal>, and then try <literal>Integer</literal>, <literal>Float</literal>, <literal>Double</literal>,
-<literal>Rational</literal> and perhaps the overloaded version. Code for this is
-distributed in <literal>ghc/misc/examples/nfib/</literal> in a source distribution.
-</para>
-
<para>For more information on how to “drive” GHC, read
on...</para>
<listitem><para>Run the installer.
On Windows, all of GHC's files are installed in a single directory.
You can override it, but by default this directory is
-<filename>c:/ghc/<replaceable>ghc-version</replaceable></filename>.
+<filename>c:/ghc/ghc-<replaceable>version</replaceable></filename>.
The executable binary for GHC will be installed in the
<filename>bin/</filename> sub-directory of the installation directory.
If you want to invoke GHC from a command line, add this
-to your PATH environment variable.
+to your <literal>$PATH</literal> environment variable.
</para>
<para>
When installation is complete, you should find GHCi and the GHC
documentation are available in your Start menu under
-"Start/All Programs/GHC/<replaceable>ghc-version</replaceable>".
+"Start/All Programs/GHC/ghc-<replaceable>version</replaceable>".
</para>
</listitem>
It uses the standard Windows procedure <literal>GetTempPath()</literal> to
find a suitable directory. This procedure returns:
<itemizedlist>
-<listitem><para>The path in environment variable TMP,
+<listitem><para>The path in the environment variable TMP,
if TMP is set.</para></listitem>
-<listitem><para>Otherwise, the path in environment variable TEMP,
+<listitem><para>Otherwise, the path in the environment variable TEMP,
if TEMP is set.</para></listitem>
<listitem><para>Otherwise, there is a per-user default which varies
between versions of Windows. On NT and XP-ish versions, it might
be:
-<filename>c:\Documents and Settings\<username>\Local Settings\Temp</filename>
+<filename>c:\Documents and Settings\<username>\Local Settings\Temp</filename>.
</para></listitem>
</itemizedlist>
-The main point is that if you don't do anything GHC will work fine;
+The main point is that if you don't do anything GHC will work fine,
but if you want to control where the directory is, you can do so by
setting TMP or TEMP.
</para></listitem>
else, to install and run GHC.
</para>
<para>
-An installation of GHC requires about 340M of disk space.
+An installation of GHC requires about 365M of disk space.
To run GHC comfortably, your machine should have at least
64M of memory.
</para>
<sect2><title>Moving GHC around</title>
<para>
Once GHC is installed, you can freely move the entire GHC tree just by copying
-the <filename>c:/ghc/<replaceable>ghc-version</replaceable></filename>
+the <filename>c:/ghc/ghc-<replaceable>version</replaceable></filename>
directory. (You will need to fix up
-the links in "Start/All Programs/GHC/<replaceable>ghc-version</replaceable>"
+the links in "Start/All Programs/GHC/ghc-<replaceable>version</replaceable>"
if you do this.)
</para>
<para>
It is OK to put GHC tree in a directory whose path involves spaces. However,
don't do this if you use want to use GHC with the Cygwin tools,
because Cygwin can get confused when this happens.
-We havn't quite got to the bottom of this, but so far as we know it's not
+We haven't quite got to the bottom of this, but so far as we know it's not
a problem with GHC itself. Nevertheless, just to keep life simple we usually
put GHC in a place with a space-free path.
</para>
<sect2> <title>The binary directory</title>
-<para>The binary directory, <filename>$(bindir)</filename> contains user-visible
+<para>The binary directory, <filename>$(bindir)</filename>, contains user-visible
executables, notably <filename>ghc</filename> and <filename>ghci</filename>.
-You should add it to your <literal>$PATH</literal>
+You should add it to your <literal>$PATH</literal>.
</para>
<para>On Unix, the user-invokable <filename>ghc</filename> invokes <filename>$(libdir)/ghc-<replaceable>version</replaceable></filename>,
<sect2> <title>The library directory</title>
-<para>The layout of the library directory, <filename>$(libdir)</filename> is almost identical on
+<para>The layout of the library directory, <filename>$(libdir)</filename>,
+is almost identical on
Windows and Unix, as follows. Differences between Windows and Unix
-are noted thus <literal>[Win32 only]</literal> and are commented below.</para>
+are annotated <literal>[Win32 only]</literal> and are commented below.</para>
<programlisting>
$(libdir)/
package.conf GHC package configuration
ghc-usage.txt Message displayed by ghc ––help
+ ghci-usage.txt Message displayed by ghci ––help
bin/ [Win32 only] User-visible binaries
- ghc.exe
- ghci.exe
+ ghc.exe
+ ghci.exe
unlit Remove literate markup
ghc-x.xx GHC executable [Unix only]
ghc-split Asm code splitter
- ghc-asm Asm code mangler
+ ghc-asm Asm code mangler
gcc-lib/ [Win32 only] Support files for gcc
specs gcc configuration
ld.exe
crt0.o Standard
- ..etc.. binaries
+ ..etc.. binaries
libmingw32.a Standard
- ..etc.. libraries
+ ..etc.. libraries
*.h Include files
- imports/ GHC interface files
- std/*.hi 'std' library
- lang/*.hi 'lang' library
- ..etc..
+ hslibs-imports/ GHC interface files for the...
+ ghc/*.hi ...'ghc' library
include/ C header files
StgMacros.h GHC-specific
- ..etc... header files
+ ..etc.. header files
mingw/*.h [Win32 only] Mingwin header files
- libHSrts.a GHC library archives
- libHSstd.a
- libHSlang.a
- ..etc..
+ lib/ GHC's library
+ base-2.1
+ ..etc..
+
+ libHSrts*.a GHC RTS archive
+ libHSghc.a GHC package archive
- HSstd1.o GHC library linkables
- HSstd2.o (used by ghci, which does
- HSlang.o not grok .a files yet)
+ HSrts.o GHC RTS linkable, used by ghci
+ HSghc.o GHC package linkable, used by ghci
</programlisting>
<para>Note that:
<listitem>
<para><filename>$(libdir)</filename> also contains support
binaries. These are <emphasis>not</emphasis> expected to be
- on the user's <filename>PATH</filename>, but and are invoked
+ on the user's <filename>PATH</filename>, but are invoked
directly by GHC. In the Makefile system, this directory is
also called <filename>$(libexecdir)</filename>, but
<emphasis>you are not free to change it</emphasis>. It must
<listitem>
<para>The support programs <filename>ghc-split</filename>
and <filename>ghc-asm</filename> are Perl scripts. The
- first line says <literal>#!/bin/perl</literal>; on Unix, the
+ first line says <literal>#!/usr/bin/perl</literal>; on Unix, the
script is indeed invoked as a shell script, which invokes
Perl; on Windows, GHC invokes
<filename>$(libdir)/perl.exe</filename> directly, which
- treats the <literal>#!/bin/perl</literal> as a comment.
+ treats the <literal>#!/usr/bin/perl</literal> as a comment.
Reason: on Windows we want to invoke the Perl distributed
with GHC, rather than assume some installed one. </para>
</listitem>