Haskellを覚えようと思い、環境を作っていた際
HIEいいよ!って話を見たので、入れてみること…
Windows環境での構築があまり書かれていなかったことと、詰まった部分があったので
共有がてら
08/29 コメントを頂いた手順で、作業を書き直しました
作業手順
リポジトリはこちら
このドキュメントに従ってインストール。
https://github.com/haskell/haskell-ide-engine#installation-with-stack
1. stackでmakeをできるようにする
makeが使えないため、まずはstackでmakeをできるように
PS D:\code\hie> stack exec pacman -- -S make
resolving dependencies...
looking for conflicting packages...
Packages (1) make-4.2.1-1
Total Download Size: 0.41 MiB
Total Installed Size: 1.22 MiB
:: Proceed with installation? [Y/n]
:: Retrieving packages...
make-4.2.1-1-x86_64 414.8 KiB 646K/s 00:01 [#######################################] 100%
(1/1) checking keys in keyring [#######################################] 100%
(1/1) checking package integrity [#######################################] 100%
(1/1) loading package files [#######################################] 100%
(1/1) checking for file conflicts [#######################################] 100%
(1/1) checking available disk space [#######################################] 100%
:: Processing package changes...
(1/1) installing make [#######################################] 100%
2. make hie-x.x.x
ghcのバージョンを指定してインストール
PS D:\code\hie> stack exec make -- hie-8.4.3
git submodule update --init
stack --stack-yaml=stack-8.4.3.yaml install
・
・ \
makeが完了すると
├ hie.exe
├ hie-8.4.3.exe
├ hie-8.4.exe
├ hie-wrapper.exe
とバイナリが配置される
%APPDATA%\local\binにはPATHが通っているはずなので、これで使えるようになるハズ
3. VSCodeにhie-serverの拡張機能をインストール
コンパイルしたバイナリはパスが通っていればいいので、手動で起動する必要はないようです
発生している問題
GHCのバージョンが違うプロジェクトで警告が出まくる- 保存時に整形を有効にしていたところ、保存するたびに空行が増える怪奇現象が!
- さらにコードをコピペしようとすると消えるという謎現象も発生中…
試行錯誤したきろく
GHCのインストールに失敗?
Folders: 520
Files: 11779
Size: 2080675659
Compressed: 2090035200
C:\Users\xxx\AppData\Local\Programs\stack\x86_64-windows\ghc-8.4.3-tmp7344\ghc-8.4.3\: renamePath:MoveFileEx "C:\\Users\\xxx\\AppData\\Local\\Programs\\stack\\x86_64-windows\\ghc-8.4.3-tmp7344\\ghc-8.4.3\\" "C:\\Users\\xxx\\AppData\\Local\\Programs\\stack\\x86_64-windows\\ghc-8.4.3\\": permission denied (アクセスが拒否されました。)
…とのエラーがでてインストールに失敗
ghcの8.4.3のインストールに失敗しているようなので
いろいろ調べてみたところ
YOU!手動で解凍してinstalledファイル作っちゃいなYO!
との書き込みがあったので
C:\Users\xxx\AppData\Local\Programs\stack\x86_64-windows
├ ghc-8.4.3/
├ ghc-8.4.3.installed
という形にファイルを手動で配置し、再度install
Copied executables to C:\Users\xxx\AppData\Roaming\local\bin:
- hie.exe
- hie-wrapper.exe
local/binにパスが通っていれば、VScodeに
https://marketplace.visualstudio.com/items?itemName=alanz.vscode-hie-server
をインストールすることで有効に
make buildに失敗
stack exec make -- build-all
でも同様のエラーは発生
ghc.EXE: internal error: mkPath failed converting char* to wchar_t*
(GHC version 8.2.1 for x86_64_unknown_mingw32)
Please report this as a GHC bug: http://www.haskell.org/ghc/reportabug
インストールログを見たところ
- make buildで8.2.2がインストールされようとしている
- ライブラリのfclabels-2.0.3.2でこのエラーを吐き、エラー終了
- fclabels-2.0.3.3ではコンパイルが通っている
ということで、先述のようにGHCのバージョンを明示的に指定し、回避。