[ANNOUNCE] Shaking up GHC

Simon Marlow marlowsd at gmail.com
Tue Jan 26 10:33:45 UTC 2016


On 23 January 2016 at 21:17, Andrey Mokhov <andrey.mokhov at newcastle.ac.uk>
wrote:

> 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
>

It likely won't be that simple due to versioning issues.  It's entirely
possible that GHC will work only with certain versions of some of these
libraries (and not necessarily the latest ones), so the build may fail at
certain times and under certain conditions for some users.  The configure
script will already have to check for compatible versions, like it does for
alex/happy.  That's the reason we bundle things, it reduces the possibility
for failure.

It's a complicated tradeoff, but if the GHC build system became tightly
coupled to Shake in the way that it is with Cabal, then bundling would
probably be the right thing to do.

Cheers,
Simon


> 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.
> _______________________________________________
> ghc-devs mailing list
> ghc-devs at haskell.org
> http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/ghc-devs/attachments/20160126/0510b633/attachment.html>


More information about the ghc-devs mailing list