4. Installing pre-supposed utilities

Here are the gory details about some utility programs you may need; perl and gcc are the only important ones. (PVM is important if you're going for Parallel Haskell.) The configure script will tell you if you are missing something.

Perl:

You have to have Perl to proceed! Perl is a language quite good for doing shell-scripty tasks that involve lots of text processing. It is pretty easy to install.

Perl 5 is required. For Win32 platforms, we strongly suggest you pick up a port of Perl 5 for cygwin32, as the common Hip/ActiveWare port of Perl is Not Cool Enough for our purposes.

Perl should be put somewhere so that it can be invoked by the #! script-invoking mechanism. (I believe /usr/bin/perl is preferred; we use /usr/local/bin/perl at Glasgow.) The full pathname should may need to be less than 32 characters long on some systems.

GNU C (gcc):

We recommend using GCC version 2.95.2 on all platforms. Failing that, version 2.7.2 is stable on most platforms. Earlier versions of GCC can be assumed not to work, and versions in between 2.7.2 and 2.95.2 (including egcs) have varying degrees of stability depending on the platform.

If your GCC dies with ``internal error'' on some GHC source file, please let us know, so we can report it and get things improved. (Exception: on iX86 boxes—you may need to fiddle with GHC's -monly-N-regs option; see the User's Guide)

Autoconf:

GNU Autoconf is needed if you intend to build from the CVS sources, it is not needed if you just intend to build a standard source distribution.

Autoconf builds the configure script from configure.in and aclocal.m4. If you modify either of these files, you'll need Autoconf to rebuild configure.

sed

You need a working sed if you are going to build from sources. The build-configuration stuff needs it. GNU sed version 2.0.4 is no good! It has a bug in it that is tickled by the build-configuration. 2.0.5 is OK. Others are probably OK too (assuming we don't create too elaborate configure scripts.)

One fptools project is worth a quick note at this point, because it is useful for all the others: glafp-utils contains several utilities which aren't particularly Glasgow-ish, but Occasionally Indispensable. Like lndir for creating symbolic link trees.

4.1. Tools for building parallel GHC (GPH)

PVM version 3:

PVM is the Parallel Virtual Machine on which Parallel Haskell programs run. (You only need this if you plan to run Parallel Haskell. Concurent Haskell, which runs concurrent threads on a uniprocessor doesn't need it.) Underneath PVM, you can have (for example) a network of workstations (slow) or a multiprocessor box (faster).

The current version of PVM is 3.3.11; we use 3.3.7. It is readily available on the net; I think I got it from research.att.com, in netlib.

A PVM installation is slightly quirky, but easy to do. Just follow the Readme instructions.

bash:

Sadly, the gr2ps script, used to convert ``parallelism profiles'' to PostScript, is written in Bash (GNU's Bourne Again shell). This bug will be fixed (someday).

4.2. Tools for building the Documentation

The following additional tools are required if you want to format the documentation that comes with the fptools projects:

DocBook:

All our documentation is written in SGML, using the DocBook DTD and processed using the Cygnus DocBook tools, which is the most shrink-wrapped SGML suite that we could find. Unfortunately, it's only packaged as RPMs. You can use it to generate HTML, DVI (and hence PDF and Postscript) and RTF from any DocBook source file (including this manual). N.B. The Cygnus version of the tools is assumed. Others, such as the SuSE version, may not work.

TeX:

A decent TeX distribution is required if you want to produce printable documentation. We recomment teTeX, which includes just about everything you need.

4.3. Other useful tools

Flex:

This is a quite-a-bit-better-than-Lex lexer. Used to build a couple of utilities in glafp-utils. Depending on your operating system, the supplied lex may or may not work; you should get the GNU version.