Как изменить версию компилятора GHC по умолчанию в стеке - PullRequest
1 голос
/ 27 апреля 2019

Я пытаюсь установить среду для 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 Ответ

1 голос
/ 12 мая 2019

Вы неправильно поняли команду 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 являются resolver, system-ghc и install-ghc.

Таким образом, вы можете установить resolver для конкретной версии компилятора с помощью

stack config set resolver ghc-8.0.2

Но вы не можете установить компилятор из командной строки, потому что это не поддерживаемая команда для stack config set.

...