如何更改堆栈上的默认GHC编译器版本

时间:2019-04-27 07:52:34

标签: haskell ghc haskell-stack

我正在尝试为Haskell设置环境,并安装了堆栈。安装后,我意识到不是我需要的GHC 8.6.4版本(8.0.2)。

compiler-exe: /home/manny/.stack/programs/x86_64-linux/ghc-tinfo6- 
8.6.4/bin/ghc
compiler-bin: /home/manny/.stack/programs/x86_64-linux/ghc-tinfo6- 
8.6.4/bin
compiler-tools-bin: /home/manny/.stack/compiler-tools/x86_64-linux- 
tinfo6/ghc-8.6.4/bin

因此,我安装了GHC 8.0.2。我知道是否可以更改global-config文件,但可以解决该问题,指示我需要正确的编译器,但是进行此类更改以避免编辑配置文件的正确命令是什么?

我尝试过:

stack config set --compiler ghc-8.0.2

没有成功。我的编译器仍然是8.6.4。

~/.stack$ stack ghc -- --version
The Glorious Glasgow Haskell Compilation System, version 8.6.4

谢谢!

1 个答案:

答案 0 :(得分:1)

您误解了stack config命令。无论在何处使用--compiler,都是在告诉Stack它应为当前命令使用哪个编译器版本-但是由于编辑配置不使用任何类型的编译器,因此实际上并没有任何改变。

只需运行stack config set即可

Missing: COMMAND

Usage: stack config set COMMAND [--help]
  Sets a field in the project's stack.yaml to value

这可以更好地说明问题。如果您寻求帮助,Stack会告诉您唯一有效的COMMAND值为resolversystem-ghcinstall-ghc

因此,您可以通过以下方式将resolver设置为特定的编译器版本:

stack config set resolver ghc-8.0.2

但是您不能从命令行设置编译器,因为stack config set不支持该命令。