[project @ 2000-06-13 16:07:20 by simonmar]
New Driver
==========
Most things work now, so I'm committing this for a shake down.
Doubtless there'll be some breakage but things should be back to
normal by the end of the week.
NOTE: GHC 4.06 won't work to build this driver at the moment, due to a
bug in its parser. I'll commit a workaround shortly.
There are several improvements here:
- the driver is written in Haskell, so is allegedly
more maintainable than the previous one. It's a bit shorter,
at any rate.
- the package system has been generalised, so that eg.
the RTS is a package, as is GMP and the prelude. Packages
are now configured via a configuration file, package.conf.
Two versions of package.conf are automatically generated by
PackageSrc.hs, one for ghc-inplace and one for the installed ghc.
- So that we only have to build the driver once, there's some
special hackery to deal with locations of utilities, and
other configuration stuff:
ghc now has a -B option, which is used in a similar way
to gcc's. eg.
ghc -B/home/blah/fptools
will run ghc in-place in the specified fptools tree, using
/home/blah/fptools/ghc/utils/mkdependHS to find mkdependHS
for example. ghc-inplace is now a small shell script that
simply invokes the above. Whereas
ghc -B/usr/local/lib/ghc-4.07
also works, for an installed copy of ghc in
/usr/local/lib/ghc-4.07.
- the mangler, object splitter and GC stats gatherer are separate
scripts in subdirectories of ghc/driver. ghc-asm.lprl and
ghc-split.lprl have been copied in the CVS repository to maintain
the history (fingers crossed; I've never done this before)
Other notes:
- Java support isn't there yet. Andy: don't update for the time
being until I can sort this.
- Windows support is also broken, but will be fixed in due course.
16 files changed: