LoginSignup
6
5

More than 3 years have passed since last update.

Windows10でHaskell開発環境構築

Last updated at Posted at 2020-01-02

前提

背景

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

公式

GitHub - LiquidHaskell

セットアップ

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
6
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
5