A binary-only from-working-sources no-guarantees snapshot of the
Glasgow Haskell compiler (GHC) for Linux x86 machines is now available
by FTP from ftp.dcs.glasgow.ac.uk, in
pub/haskell/glasgow/ghc-0.25-linux.tar.gz.

This release is the first, long-awaited "registerized" GHC for Linux,
which produces code of reasonable size and speed.  We use our normal
technique of "stealing registers" with GCC's
global-variables-in-registers facility.  We "steal" six of the x86's
eight general-purpose registers, including the C stack-pointer (%esp),
which we use for the heap pointer (Hp).

To use this GHC, you need a special version of GCC, which is also
provided in the distribution (under "gcc-linux-to-linux").  Whatever
you do, please do *not* report any "bugs" in this GCC to bug-gcc --
report them to *me* instead.

One special thing you must watch out for: If GCC "crashes" with a
message about spilling registers, it is *not* a GCC problem.  It means
you must get GHC to "back off" in its register "stealing".  First try
a -monly-4-regs flag, then -monly-3-regs, and as a last resort,
-monly-2-regs.  As far as we know, all Haskell code goes through GHC
with a -monly-2-regs flag (but it produces substantially worse code
with that flag).

Profiling is not provided in this release.

Please report any bugs to [EMAIL PROTECTED]

Will Partain
AQUA project (slave)

Dated: 95/04/01

=== INSTALLATION NOTES ==============================================

Unpack the distribution.

Move "gcc-linux-to-linux" and "ghc-0.25-linux" wherever you like.

Alter the "gcc" script to point to wherever you've put
"gcc-linux-to-linux", and put the "gcc" script wherever you wish in
your PATH.

Make a link to ghc-0.25-linux/ghc/driver/ghc, so that "ghc" will be in
your PATH.

Change *all* hardwired paths in ghc/driver/ghc and in
ghc/utils/hscpp/hscpp to point to where things are on your system.
Notably: where "perl" is (first line of each script), where $TopPwd is
(ghc script), where your gcc cpp is (hscpp script).

GHC should then work.  Try "ghc -v" on something simple, to make sure
it compiles and links a program correctly.

Reply via email to