切换不同版本的GHC包括7.0.4

时间:2017-07-09 18:12:34

标签: haskell ghc haskell-stack

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

stack init --resolver lts ...

关于本地项目,但lts版本不会比GHC 7.8.3更进一步。

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

2 个答案:

答案 0 :(得分:1)

不,你不能使用ghc 7.0.4堆栈,因为它不在他们的快照中。最旧的编译器堆栈支持是7.8.3。

理论上,堆栈可以为较旧的编译器提供支持,但Stackage server在2014年8月宣布,GHC 7.0.4为released on June, 2011。这是我对7.0.4不存在的原因的猜测。

如果您希望代码支持较旧的编译器,我建议您使用CI system like Travis。如果您使用的是Ubuntu计算机,另一种方法是使用Herber's PPA来安装旧的编译器。

答案 1 :(得分:0)

您是否真的需要堆栈来构建项目,即stack.yamlstack build

如果不是这种情况并且您只想要多个ghc版本,则可能需要尝试

  1. nix ,它有各种ghc versions
  2. 但请记住,8.0.2之前的版本不是正式的support,但它可能仍在使用。

    1. docker ,用它来设置您想要的任何版本

    2. travis ,正如之前的answer所建议的那样。