<div dir="ltr"><blockquote style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex" class="gmail_quote"><blockquote style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex" class="gmail_quote">cabal install alex happy ansi-terminal mtl shake QuickCheck<br></blockquote></blockquote><blockquote style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex" class="gmail_quote"><div> </div></blockquote><blockquote style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex" class="gmail_quote">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.</blockquote><div><br></div><div>This is exactly why I added <a href="http://build.stack.sh">build.stack.sh</a> to shaking-up-ghc, to mitigate these kinds of issues. <a href="https://github.com/snowleopard/shaking-up-ghc/blob/master/build.stack.sh">https://github.com/snowleopard/shaking-up-ghc/blob/master/build.stack.sh</a><br><br></div><div>Personally, I think the shake build system should default to stack because it is the best way to get consistent builds.<br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Jan 26, 2016 at 2:33 AM, Simon Marlow <span dir="ltr"><<a href="mailto:marlowsd@gmail.com" target="_blank">marlowsd@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote"><span class="">On 23 January 2016 at 21:17, Andrey Mokhov <span dir="ltr"><<a href="mailto:andrey.mokhov@newcastle.ac.uk" target="_blank">andrey.mokhov@newcastle.ac.uk</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Herbert,<br>
<span><br>
> I think it's already quite convenient. After all, you're expected to<br>
> have a minimum GHC bootstrapping environment anyway. So having the<br>
> tools installed (as already do now, e.g. you need alex, happy, and<br>
> ghc to be able to work on GHC).<br>
<br>
</span>I agree. Roughly, we are talking about going from:<br>
<br>
cabal install alex happy<br>
<br>
to:<br>
<br>
cabal install alex happy ansi-terminal mtl shake QuickCheck<br></blockquote><div><br></div></span><div>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.<br></div><div> <br></div><div>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.<br><br></div><div>Cheers,<br></div><div>Simon<br></div><div><div class="h5"><div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
This doesn't look too onerous (although one could also consider<br>
somehow packaging these dependencies together). And hopefully<br>
upcoming cabal features will make this more robust.<br>
<br>
Tuncer,<br>
<span><br>
> My suggestion, and what I'd expect, is to make Shake part of<br>
> GHC's included lib, just like process or xhtml.<br>
<br>
</span>This sounds like a very big decision which is beyond the Shaking<br>
up GHC project. (I wouldn't want to shake up GHC too much!)<br>
<br>
Cheers,<br>
Andrey<br>
<span><br>
> -----Original Message-----<br>
> From: Herbert Valerio Riedel [mailto:<a href="mailto:hvriedel@gmail.com" target="_blank">hvriedel@gmail.com</a>]<br>
> Sent: 23 January 2016 17:14<br>
> To: Andrey Mokhov<br>
> Cc: <a href="mailto:dluposchainsky@googlemail.com" target="_blank">dluposchainsky@googlemail.com</a>; GHC developers<br>
</span><span>> Subject: Re: [ANNOUNCE] Shaking up GHC<br>
><br>
</span><div><div>> On 2016-01-23 at 14:05:56 +0100, Andrey Mokhov wrote:<br>
> >> Are there any plans as to how to include it in the GHC tree? Does it<br>
> >> ship with all the libraries required to build the build system, will<br>
> we<br>
> >> have a mini-build system to bootstrap it? If I recall correctly, we<br>
> rely<br>
> >> on Cabal sandboxes on Linux/OSX and global Cabal library<br>
> >> installations on Windows in order to run it.<br>
> ><br>
> > The simplest way is to add the 'shake-build' folder to the GHC tree<br>
> and<br>
> > ask first adopters of the new build system to globally install the<br>
> > dependencies (ansi-terminal, mtl, shake, QuickCheck). Then 'build.sh'<br>
> > and 'build.bat' scripts should work.<br>
> ><br>
> > I am open to suggestions on how to make this more convenient and<br>
> > robust. I've never used anything more advanced than a global cabal<br>
> > installation, so I'd appreciate input from more experienced users.<br>
><br>
> I think it's already quite convenient. After all, you're expected to<br>
> have a minimum GHC bootstrapping environment anyway. So having the<br>
> tools<br>
> installed (as already do now, e.g. you need alex, happy, and ghc to be<br>
> able to work on GHC).<br>
><br>
> And the new cabal nix-store feature to show-case as tech-preview<br>
> together with GHC 8.0 makes this even more robust by avoiding pkg-db<br>
> breakages due to reinstalls, which would be the main reason not to<br>
> rely on "global installed dependency".<br>
><br>
> The shake-build.sh script simply needs to invoke `cabal new-build` to<br>
> generate the ghc shake build-tool executable.<br>
_______________________________________________<br>
ghc-devs mailing list<br>
<a href="mailto:ghc-devs@haskell.org" target="_blank">ghc-devs@haskell.org</a><br>
<a href="http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs" rel="noreferrer" target="_blank">http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs</a><br>
</div></div></blockquote></div></div></div><br></div></div>
<br>_______________________________________________<br>
ghc-devs mailing list<br>
<a href="mailto:ghc-devs@haskell.org">ghc-devs@haskell.org</a><br>
<a href="http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs" rel="noreferrer" target="_blank">http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs</a><br>
<br></blockquote></div><br></div>