2017-06-03 58 views
1

更改ghci的版本:上我已经堆叠安装在我的电脑上Haskell的堆栈

Developers-MacBook-Pro:~ developer$ stack ghci 
Configuring GHCi with the following packages: 
GHCi, version 8.0.1: http://www.haskell.org/ghc/ :? for help 
Loaded GHCi configuration from /private/var/folders/2x/t_2cl03x2092dkzvc702d7lc0000gn/T/ghci2170/ghci-script 
Prelude> 

正如你所看到的版本仍然是8.0.1。再次

Developers-MacBook-Pro:~ developer$ stack upgrade 
Current Stack version: 1.3.2, available download version: 1.4.0 
Newer version detected, downloading 
Querying for archive location for platform: osx-x86_64-static 
Querying for archive location for platform: osx-x86_64 
Downloading from: https://github.com/commercialhaskell/stack/releases/download/v1.4.0/stack-1.4.0-osx-x86_64.tar.gz 
Download complete, testing executable 
Version 1.4.0, Git revision e714f1dd3fade19496d91bd6a017e435a96a6bcd (4640 commits) x86_64 hpack-0.17.0 
New stack executable available at /Users/developer/.local/bin/stack 

我开始stack ghci后,我已经得到了还是8.0.1版,我在做什么错了:那我升级堆栈如下?

的形象示人,这ghci 8.0.2版已成功安装:
enter image description here

的路径是/Users/developer/.stack/programs/x86_64-osx/

更新 在路径/Users/developer/.stack/,有一个叫global-project和我的文件夹改变yaml如下:

enter image description here

现在堆栈ghci的在8.0.2版本上运行:

Developers-MBP:~ developer$ stack ghci 
Configuring GHCi with the following packages: 
GHCi, version 8.0.2: http://www.haskell.org/ghc/ :? for help 
Loaded GHCi configuration from /private/var/folders/2x/t_2cl03x2092dkzvc702d7lc0000gn/T/ghci526/ghci-script 
+1

要切换到最新的LTS快照(目前使用GHC-8.0.2),您可以运行'stack config set resolver lts'。 – sjakobi

回答

0

stack是一个构建工具,协调建设项目与不同版本的GHC和套依赖。所以你可以独立于ghc来升级stack

我不太确定stack ghci在项目目录之外运行时的预期行为。推测你可以配置默认版本ghc在这种情况下在你的~/.stack/config.yaml。请参阅:http://docs.haskellstack.org/en/stable/yaml_configuration/

你也应该能够做到:

$ stack ghci --with-ghc ghc-7.10.3 

但通常GHC的版本是由您已配置为您的项目stackage快照来确定,例如,如果你有一个stack.yaml与:

resolver: lts-3.3 

...你将使用GHC-7.10.3

+0

当我想在没有项目的情况下启动'stack ghci'我想使用8.0.2版本而不是8.0.1,我该如何切换版本? –

0

https://docs.haskellstack.org/en/stable/faq/#what-version-of-ghc-is-used-when-i-run-something-like-stack-ghci

GHC的版本以及可以安装哪些软件包由解析器指定。

因此,要执行stack ghci外面堆项目时更改版本GHC的使用,做到:

  1. 查找现有的解析器在~/.stack/build-plan,例如lts-10.4,或下载您需要的新解析器;

  2. stack config set resolver lts-10.4

然后,stack ghci外堆栈项目将使用GHC 8.2.2,这是通过旋转变压器lts-10.4(这种关系可以在https://www.stackage.org或在文件lts-10.4.yaml可以找到)中指定的GHC版本。