Windows10でHaskell開発環境を構築する(Stack, HIE, VsCode)
概要
Windows10でHaskell開発環境を構築する手順を示す。
環境
以下手順を実施した際の環境
- Windows 10 Pro (バージョン 2004)
- Stack
- Version 2.3.1, Git revision de2a7b694f07de7e6cf17f8c92338c16286b2878 (8103 commits) x86_64 hpack-0.33.0
stack --version
- GHC
- 8.6.5
- HIE
- commit hash : a9005b2ba2050bdfdd4438f1d471a3f7985492cd
注意点
- 以下の手順はとくに問題が発生しなくても1~2時間程度かかる
- 夜間などのネットワークが混み合う時間帯だとGHCのダウンロードにとても時間がかかる(2~3時間)なので朝方のネットワークが比較的空いている時間帯、もしくは
http_proxy
経由を推奨
手順
Stackのインストール
stack-2.3.1-windows-x86_64-installer.exe
をダウンロードして実行する。
Stack Setup
とくに何も付けず stack setup
するとGHC latest の 8.8.3
をダウンロードしようとするが 8.8.3
は以下のビルドエラーが発生するので他バージョンを選択する。
ここでは後手順のHIEビルドに対応している 8.6.5
を指定してsetupする。
管理者権限でコマンドプロンプトを開いて以下を実行する。(ネットワークが空いている時間帯推奨)
stack --resolver ghc-8.6.5 setup
※ ウイルス対策ソフトによって Permission Denied
エラーになる場合があるらしいが自環境では特に何も無かった。
※GHCのダウンロードは空いている時間帯だと30分程度、混んでいる時間帯だと2~3時間程度かかる。
インストールされた Stackのversionを確認
stack --version
GHCのversionを指定
stack config set resolver ghc-8.6.5
インストールしたGHCのversionを確認
stack ghc -- --version
HIEのビルド
前準備
以下を確認する。地味にPATHが通ってないことがあるので注意
stack
にPATHが通っていることgit
にPATHが通っていること- stackのlocal binにPATHが通っていること
stack path --local-bin
で local binのディレクトリが分かる。
clone
HIEのリポジトリをクローンする。
ビルド時の生成ディレクトリが長くなりWindowsのパス最大長を超える場合があるのでCドライブ直下にcloneするのが無難
C:\> git clone https://github.com/haskell/haskell-ide-engine --recursive hie
hieディレクトリでコマンドプロンプトを開いて以下を実行する
chcp 65001 stack ./install.hs hie-8.6.5 stack ./install.hs data
注意:chcpしてcmdの文字コードを変更しないとビルドエラーになる
ビルドは20~30分程度かかります。
ビルドが完了すると stack path --local-bin
ディレクトリ配下に hie.exe
等が生成される。
Haskell Language Server (VSCodeの拡張)をインストール
VSCodeを開いて拡張機能から Haskell Language Server
を検索してインストールする。
設定から Hie Executable Path
に先程の hie.exe
へのパスを記入する。
試す
エディタの補完やGotoDef等が動くか試してみる
プロジェクトを作成する
任意のディレクトリにプロジェクトを作成する。
今回は hello-world
プロジェクトとした。
stack new hello-world
GHCのversionを 8.6.5
に変更しておく。
cd hello-world stack config set resolver ghc-8.6.5
hello-world
ディレクトリでVSCodeを開き、型ヒントや定義元ジャンプ、補完機能が利用できるか確認する。
ビルド
stack build
実行
stack run