
2016-09-13 21:07 GMT+02:00 Theodore Lief Gannon
Stack *does* allow direct interaction with GHC:
stack exec -- ghc version
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:
stack exec sh
Another option is setting up simple 2-liners like #!/bin/sh stack --resolver=lts-6.17 exec ghc -- "$@" 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: * 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... * On Windows under a MinGW bash you get a a warning for ghci: $ stack --resolver=nightly-2016-07-01 exec ghci -- --version Run from outside a project, using implicit global project config WARNING: GHCi invoked via 'ghci.exe' in *nix-like shells (cygwin-bash, in particular) doesn't handle Ctrl-C well; use the 'ghcii.sh' shell wrapper instead The Glorious Glasgow Haskell Compilation System, version 8.0.1 But using ghcii.sh through stack doesn't work: $ stack --resolver=nightly-2016-07-01 exec ghcii.sh -- --version Run from outside a project, using implicit global project config D:\Benutzer\Sven\AppData\Local\Programs\stack\x86_64-windows\ghc-8.0.1\bin\ghcii.sh: createProcess: invalid argument (Exec format error) * I've seen variations of "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. * 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 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.