• simonmar's avatar
    [project @ 2000-06-13 16:07:20 by simonmar] · 877aad48
    simonmar authored
    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
    	- 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.