<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">2016-09-13 21:07 GMT+02:00 Theodore Lief Gannon <span dir="ltr"><<a href="mailto:tanuki@gmail.com" target="_blank">tanuki@gmail.com</a>></span>:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr">Stack *does* allow direct interaction with GHC:<div><br></div><div>stack exec -- ghc version</div><div><br></div><div>Granted this lacks a bit in brevity, but if you want to issue multiple commands from "inside" stack's private environment, you can also just do this:</div><div><br></div><div>stack exec sh</div></div></blockquote><div><br></div><div>Another option is setting up simple 2-liners like</div><div><br></div><div>   #!/bin/sh</div><div>   stack --resolver=lts-6.17 exec ghc -- "$@"</div><div><br></div><div>and put them under some sensible name (e.g. ghc-7.10.3) into one's ~/bin, same for ghci. This way you can still keep things nicely separated and in a known state, but still have access to several versions without typing overhead. There are still a few tiny annoying things, though:</div><div><br></div><div>   * There's the "Run from outside a project blah blah" line, and I don't see a way to disable that. This is only a cosmetic issue, but still...</div><div><br></div><div>   * On Windows under  a MinGW bash you get a a warning for ghci:</div><div><br></div><div><div>        $ stack --resolver=nightly-2016-07-01 exec ghci -- --version</div><div>        Run from outside a project, using implicit global project config</div><div>        WARNING: GHCi invoked via 'ghci.exe' in *nix-like shells (cygwin-bash, in particular)</div><div>                 doesn't handle Ctrl-C well; use the 'ghcii.sh' shell wrapper instead</div><div>        The Glorious Glasgow Haskell Compilation System, version 8.0.1</div></div><div><br></div><div>     But using ghcii.sh through stack doesn't work:</div><div><div><br></div><div>        $ stack --resolver=nightly-2016-07-01 exec ghcii.sh -- --version</div><div>        Run from outside a project, using implicit global project config</div><div>        D:\Benutzer\Sven\AppData\Local\Programs\stack\x86_64-windows\ghc-8.0.1\bin\ghcii.sh: createProcess: invalid argument (Exec format error)</div></div><div><br></div><div>   * I've seen variations of "<span style="font-size:12.8px">Did not find .cabal file for servant-yaml-0.1.0.0 with Git SHA of 71c0a55d...", too, and I don't have a clue what stack is trying to tell me, either. The message should either be suppressed or improved. As it is, it's useless for the end-user.</span></div><div><span style="font-size:12.8px"><br></span></div><div><span style="font-size:12.8px">   * From time to time I'd like to remove old stuff which has been installed by stack, e.g. "everything not belonging to the latest LTS" or "everything from nightly-2016-07-01". I can easily blow away the whole ~/.stack directory and re-download/compile only the new stuff I need, but there must be a better way, I hope. This kind of housekeeping is really necessary when you play around a bit with various versions (resulting in tons of GB in ~/.stack) and your relatively small laptop HDD is getting a bit full</span></div><div><br></div><div>In a nutshell: I'm quite happy with stack, but it still needs some polishing. When this is done, it can probably make both the "ad hoc" camp and the "multi-GHC-version project/library writer" camp happy.</div></div></div></div>