Folks,
The adventurous among you may like to try an innovation
which in some cases nearly doubles the speed at which
ghc compiles programs. This innovation is our native code
generator, which has long been in the GHC source tree,
but has only just been made to work for x86. It reduces
compilation time by avoiding gcc (and perl) entirely,
and directly emitting x86 assembly code.
* Only x86 Linux is currently working. I guess it
should not be too much trouble to emit x86 code for
Win32. GHC also used to be able to emit Sparc and Alpha
code, but these currently do not work. Brave/foolhardy :-)
souls may like to have a go resurrecting them; we will
advise and supply debugging tips. Or even writing new
ports; IA64, anyone?
* This functionality is only available from the current
CVS development branch. It is NOT available in the
standard 4.06 distribution, unfortunately. In order
to use it, build ghc from the CVS repository. Then
you only need to add -fasm-x86 to your command lines
to use it.
* Stability: all of the nofib suite runs, and the compiler
can compile itself via the native-code route. This means
it works well enough to be useful. The generated code is
5-10% slower than the standard route, but that's fine for
debugging/development work.
Regard this as beta-release functionality. It works pretty
well, but there are known issues which need to be resolved
before full-scale use (see ghc/compiler/nativeGen/NOTES).
If stability/reliability are important to you, stick with
the recently released 4.06 version.
* Please try it out! I would be pleased to get feedback on it.
J