[ANNOUNCE] Shaking up GHC

Andrey Mokhov andrey.mokhov at newcastle.ac.uk
Sat Jan 23 21:17:46 UTC 2016


Herbert,

> I think it's already quite convenient. After all, you're expected to
> have a minimum GHC bootstrapping environment anyway. So having the
> tools installed (as already do now, e.g. you need alex, happy, and
> ghc to be able to work on GHC).

I agree. Roughly, we are talking about going from:

cabal install alex happy

to:

cabal install alex happy ansi-terminal mtl shake QuickCheck

This doesn't look too onerous (although one could also consider
somehow packaging these dependencies together). And hopefully
upcoming cabal features will make this more robust.

Tuncer,

> My suggestion, and what I'd expect, is to make Shake part of
> GHC's included lib, just like process or xhtml.

This sounds like a very big decision which is beyond the Shaking
up GHC project. (I wouldn't want to shake up GHC too much!)

Cheers,
Andrey

> -----Original Message-----
> From: Herbert Valerio Riedel [mailto:hvriedel at gmail.com]
> Sent: 23 January 2016 17:14
> To: Andrey Mokhov
> Cc: dluposchainsky at googlemail.com; GHC developers
> Subject: Re: [ANNOUNCE] Shaking up GHC
> 
> On 2016-01-23 at 14:05:56 +0100, Andrey Mokhov wrote:
> >> Are there any plans as to how to include it in the GHC tree? Does it
> >> ship with all the libraries required to build the build system, will
> we
> >> have a mini-build system to bootstrap it? If I recall correctly, we
> rely
> >> on Cabal sandboxes on Linux/OSX and global Cabal library
> >> installations on Windows in order to run it.
> >
> > The simplest way is to add the 'shake-build' folder to the GHC tree
> and
> > ask first adopters of the new build system to globally install the
> > dependencies (ansi-terminal, mtl, shake, QuickCheck). Then 'build.sh'
> > and 'build.bat' scripts should work.
> >
> > I am open to suggestions on how to make this more convenient and
> > robust. I've never used anything more advanced than a global cabal
> > installation, so I'd appreciate input from more experienced users.
> 
> I think it's already quite convenient. After all, you're expected to
> have a minimum GHC bootstrapping environment anyway. So having the
> tools
> installed (as already do now, e.g. you need alex, happy, and ghc to be
> able to work on GHC).
> 
> And the new cabal nix-store feature to show-case as tech-preview
> together with GHC 8.0 makes this even more robust by avoiding pkg-db
> breakages due to reinstalls, which would be the main reason not to
> rely on "global installed dependency".
> 
> The shake-build.sh script simply needs to invoke `cabal new-build` to
> generate the ghc shake build-tool executable.


More information about the ghc-devs mailing list