Haskell 通过不同版本的GHC进行切换,包括7.0.4

Haskell 通过不同版本的GHC进行切换,包括7.0.4,haskell,ghc,haskell-stack,Haskell,Ghc,Haskell Stack,我需要编译一些代码,从GHC 7.0.4版开始,直到最近的8.0.2版。 我知道使用stack我可以做如下事情: stack init--resolver lts… 在本地项目上,但是lts版本没有超过GHC 7.8.3 如何在不使用堆栈的情况下切换回GHC的旧版本?否,您不能让堆栈使用GHC 7.0.4,因为它不在快照中。最早的编译器堆栈支持7.8.3 理论上,stack可以为较旧的编译器提供支持,但该版本于2014年8月发布,GHC 7.0.4也发布了。这就是为什么7.0.4不存在的原因 如

我需要编译一些代码,从GHC 7.0.4版开始,直到最近的8.0.2版。 我知道使用
stack
我可以做如下事情:

stack init--resolver lts…

在本地项目上,但是
lts
版本没有超过GHC 7.8.3


如何在不使用堆栈的情况下切换回GHC的旧版本?

否,您不能让堆栈使用GHC 7.0.4,因为它不在快照中。最早的编译器堆栈支持7.8.3

理论上,stack可以为较旧的编译器提供支持,但该版本于2014年8月发布,GHC 7.0.4也发布了。这就是为什么7.0.4不存在的原因


如果您希望代码支持较旧的编译器,我建议您使用。如果您使用的是Ubuntu机器,另一种选择是用于安装较旧的编译器。

您真的需要堆栈来构建项目,即
stack.yaml
堆栈构建

如果情况并非如此,并且您只需要多个ghc版本,那么您可能需要尝试

  • nix,它有各种ghc
  • 但请记住,8.0.2以上的版本还没有正式发布,但它可能仍然有效

  • docker,使用它设置您想要的任何版本

  • 特拉维斯,如前所述


  • 所以我可以切换回旧版本吗?@随机化如果是为了测试,我建议你支持旧编译器。如果您仍然希望在本地安装,唯一的方法是从下载旧的编译器并尝试这样做。但这将是一个稍微痛苦的过程。