Haskell
VSCode

Haskell 環境構築 メモ


はじめに

有名なHaskell入門書「すごいHaskellたのしく学ぼう」を読みました。

本を読んだらコードを書こう!ということでHaskellの開発環境を整えます。

この記事は開発環境を整える上での作業メモです。

基本的にはQiita: vscode と haskell-ide-engine で Haskell 開発環境を構築するを参考にさせていただきました。


環境


  • macOS バージョン 10.14


Stackのインストール

Stackとは何か?についてはQiita: Haskellのビルドツール"stack"の紹介が分かりやすいと思います。

# brewを利用してstackをインストールする

$ brew install haskell-stack

# バージョン確認
$ stack --version
1.9.3 x86_64

# 更新
$ stack update

Stack経由でインストールしたライブラリなどは、~/.local/bin/以下に保存されるので、~/.local/binにパスを通して置く必要があります。

見落として手順すっ飛ばしてしばらくハマりました

忘れずにパスを通しましょう。

僕はfish shellを使っているので、以下を設定ファイルに追記しました。

# ~/.config/fish/config.fish

set PATH ~/.local/bin $PATH


GHCのインストール

デフォルトで使用するGHCのバージョンを変更します。

~/.stack/global-project/stack.ymlを開いて、resolverの部分を以下のように書きました。

resolver: lts-12.24

resolverとはStackageのsnapshotのことです。

Stackageとは、依存関係で苦しまないよう調整されたパッケージの集合(snapshot)のようです。

Stackage Server

スナップショットのバージョンは上記から確認できます。

どれを選べばよいのか正直わからなかったので、とりあえずlts(Long Term Support)がついてるものの中から新しめなものを適当に選びました。

設定ファイルを書き換えた上でインストールを行ないます。

# stack.ymlにしたがってGHCをインストールする

$ stack setup

# バージョン確認
# stack経由でghcにオプションを渡す場合は -- を挟む
$ stack ghc -- --version
The Glorious Glasgow Haskell Compilation System, version 8.4.4


haskell-ide-engineのインストール

次にhaskell-ide-engineをインストールします。

# hieのソースコードをダウンロード

$ git clone https://github.com/haskell/haskell-ide-engine --recursive
$ cd haskell-ide-engine

# GHC 8.4.4用でインストール(時間かかりました。)
$ make hie-8.4.4
$ make build-doc-8.4.4

# バージョン確認
$ hie --version
Version 0.4.0.1, Git revision 5b8cfbc59fc4f1913dffd0f8c68e567cb046ca2d (2273 commits) x86_64 ghc-8.4.4


VS Codeのインストール

最後にVS Codeをインストールします。

Visual Studio Code

ここでは1.30.0をインストールしました。

起動後EXTENSIONSからHaksell Laguage Serverをインストール。

VS Codeを再起動して作業完了です。


実際に使ってみた感想

コードはまだちょっとしか書けてないですが、補完も早くていい感じです。

最初ちょっとだけ躓いたのが、自動補完などのhieの機能は、ファイルをVS Codeで開いた時点で構文エラーが存在する場合には効かないようです。(そういうものなのか、環境依存の問題なのかわかりませんが…)

インストールできたはずなのにhieが動かない!という場合には、構文エラーが無いシンプルなファイルで試してみるといいかもしれません。


参考