前提
背景
Haskellの環境構築はHaskell IDE Engine (HIE)で楽になったらしいが、ネットで見つかる情報はLinux系ばかり。
今回、Windowsで構築しようとしたが、いくつか躓くところがあったため、構築方法をまとめておく。
追記
よくよく見返してみると、リンクを張っていた @yutasth さんのところに大概の情報は載っていた。いくつかのページに分割されていたので気づかず。
が、そちらにはない情報がこちらにあるのも確かで、またやり方だけ手っ取り早く知りたい場合のために残しておく。
(もともと重複記事を投稿する意図は毛頭なく)
環境
- Windows10 Home
- git (v2.24.1.2)
- stack (v2.1.3)
- GHC (v8.6.5)
- HIE (v1.0.0.0, Git revision 704ed3c982ce350f6aafbf4854e91da1e2a1d1c2)
- VScode(このソフト特有の設定はないので、ほかのエディタでも同様のはず)
stack
公式情報
The Haskell Tool Stack - Install/Upgrade / Windows
セットアップ
インストール自体は、windows用のインストーラが用意されているのでそれを実行するだけ。
その後、管理者権限のcmdでstack setup
を実行。ただし、事前にウイルス対策ソフトは一時的に無効化しておくのが無難。
local-bin
は、Userフォルダの\AppData\Roaming\local\bin
になる。(たぶん変えないほうが無難)
STACK_ROOT
のPATH設定は変更可能。(いろいろファイルが増えて容量を食うらしいのでDドライブに移すなど)
参考:カレー場別腹 - Stack (Haskell) を Windows で使う
注意点
stack setup
を管理者権限のcmdで実行しても、Permission Denied
エラーが出て困った。
ウイルス対策ソフトが悪さをする場合があるらしく、これを無効化することで解決。
参考:GitHub - Permission denied when run stack setup on Windows 10 #1917
Haskell IDE Engine (HIE)
公式情報
GitHub - Haskell IDE Engine (HIE) / Installation
セットアップ
以下のコマンドを管理者権限のcmdで実行。場所はどこでもokなはずだが、local-binにしておいた。
buildに数十分かかるが、我慢強く待つしかない。
git clone https://github.com/haskell/haskell-ide-engine --recurse-submodules
cd haskell-ide-engine
chcp 65001
stack ./install.hs build
注意点
こちらもPermission Denied
のエラーが発生。
ただ、ウイルス対策ソフトを無効化してもだめだった。
途中に挟んだchcp 65001
コマンドで解決。
参考:Qiita - Haskell IDE Engineのインストールに苦労した (Windows 10)
エディタの拡張機能(VScode:Haskell Language Server)
公式
VisualStudio Marketplace - Haskell Language Server Client
セットアップ
VScodeのExtensionから普通にInstall。
hie.exeのパスだけ手動で設定する必要がある。
"languageServerHaskell.hieExecutablePath": "(local-binのパス)/hie.exe"
注意点
Liquid Haskell
"languageServerHaskell.liquidOn": true,
にしてみたが、思ったように動かず。
手動でLiquid HaskellのInstallが必要(後述)。
stty.exe
OUTPUT
のところでHIE
を選んでみるとこのエラーが出ていた。
'stty' is not recognized as an internal or external command
stty.exe
をPATHが通っているフォルダにコピーすることで解決した。
具体的には、stackがインストールされたフォルダにあるmsys2の\usr\bin
から、local-binにコピー。
参考:GitHub - 'stty' is not recognized #1428
Liquid Haskell
公式
セットアップ
Step 1: Install SMT Solver
SMT Solverが必要だが、HIEのサイトによるとZ3がおすすめらしい。
GitHub - Z3
ここからbinary(v4.8.7)をdownloadして、z3.exeをlocal-binに置いた。(liquid haskellと同じPATHに置く必要があるが、liquid haskellは自動でlocal-binに置かれる)
Step 2: Install liquid from Source
GitHub - Install LiquidHaskell
以下のコマンドを実行。(gitがsshだとうまくいかなかったので、httpsに変更。)
git clone --recursive https://github.com/ucsd-progsys/liquidhaskell.git
cd liquidhaskell
stack install