On Wed, Jan 28, 2009 at 11:42:39PM +0000, Duncan Coutts wrote:
> I'm not sure how it was ever supposed to work, that is bootstrapping
> Cabal directly using runhugs on the Setup.hs script in the Cabal dir.
> Cabal has always had some cpp in it and (as far as I know) hugs does not
> have a -cpp flag. I presume the hugs build system has some workaround to
> cpp all the files first.

Hugs uses cpphs, but it has to build a dozen packages (including Cabal)
before cpphs is available.  Once it is, they're built again.

> The way I've tested it recently is to build the Setup.hs with ghc and
> use that to install Cabal for hugs. From then on one can use runhugs to
> run other Setup scripts.

Yes, you just need to remember the --hugs flag, and Cabal defaults to
the compiler that built it.

> If you can get the search path right (ie to not look in the current dir)
> then I expect it would also be possible to bootstrap using a
> pre-existing Cabal library for hugs.

Unfortunately that won't work: runhugs always adds the directory
containing the Main module to its search path for modules imported by
Main, so that multi-module programs work.  This will be a problem for
upgrading Cabal (only, I think).  For the original build, the Hugs
build system copies Setup.hs of each package into another directory,
so that it can be run with runhugs without picking up local modules.
_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to