2017-06-03 3 views
1

je pile installé sur mon ordinateur pour haskell:de version Change ghci sur la pile

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> 

Comme vous pouvez voir la version est encore 8.0.1. Ensuite, je mis à jour la pile comme suit:

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 

Après avoir commencé stack ghci à nouveau et j'ai encore la version 8.0.1, ce que je fais mal?

L'image montre que la version 8.0.2 ghci a installé avec succès:
enter image description here

Le chemin est /Users/developer/.stack/programs/x86_64-osx/

Mise à jour Dans le chemin /Users/developer/.stack/, il y a un dossier appelé global-project et je changer le yaml comme suit:

enter image description here

Maintenant pile ghci exécuté sur la version 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

Pour passer à la dernière capture instantanée LTS (qui utilise actuellement GHC-8.0.2), vous pouvez exécuter 'stack config set resolver lts'. – sjakobi

Répondre

0

stack est un outil de construction qui coordonne les projets de construction avec différentes versions de GHC et ensembles de dépendances. Donc, vous pouvez mettre à niveau stack indépendamment de ghc.

Je ne suis pas certain du comportement attendu de stack ghci lorsqu'il est exécuté en dehors d'un répertoire de projet. Vraisemblablement, vous configurez la version par défaut de ghc à utiliser dans ce cas dans votre ~/.stack/config.yaml. Voir: http://docs.haskellstack.org/en/stable/yaml_configuration/

Vous devez également être en mesure de le faire:

$ stack ghci --with-ghc ghc-7.10.3 

Mais en général la version de GHC est déterminée par l'instantané de stackage que vous avez configuré pour votre projet, par exemple si vous avez un stack.yaml avec :

resolver: lts-3.3 

... vous allez utiliser GHC-7.10.3

+0

Lorsque je veux démarrer 'stack ghci' sans projet, je veux utiliser la version 8.0.2 et non 8.0.1, comment puis-je changer de version? –

0

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

La version de GHC, ainsi que les packages pouvant être installés, sont spécifiés par le résolveur .

Donc, pour changer la version de GHC utilisée lors de l'exécution stack ghci projets de pile à l'extérieur, faire:

  1. Trouver un résolveur existant dans ~/.stack/build-plan, par exemple lts-10.4, ou téléchargez un nouveau résolveur dont vous avez besoin;

  2. stack config set resolver lts-10.4.

Ensuite, stack ghci projets de pile à l'extérieur utilisera GHC 8.2.2, qui est la version GHC spécifiée par résolveur lts-10.4 (Cette relation se trouve à https://www.stackage.org ou dans le fichier lts-10.4.yaml).