LoginSignup
12
9

More than 5 years have passed since last update.

VSCodeにHIEいれてみた(Windows10)

Last updated at Posted at 2018-08-27

Haskellを覚えようと思い、環境を作っていた際

HIEいいよ!って話を見たので、入れてみること…
Windows環境での構築があまり書かれていなかったことと、詰まった部分があったので
共有がてら

08/29 コメントを頂いた手順で、作業を書き直しました

作業手順

リポジトリはこちら

https://github.com/alanz/vscode-hie-server

このドキュメントに従ってインストール。

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が完了すると

%APPDATA%\local\bin
 ├ hie.exe
 ├ hie-8.4.3.exe
 ├ hie-8.4.exe
 ├ hie-wrapper.exe

とバイナリが配置される
%APPDATA%\local\binにはPATHが通っているはずなので、これで使えるようになるハズ

3. VSCodeにhie-serverの拡張機能をインストール

hie.PNG

コンパイルしたバイナリはパスが通っていればいいので、手動で起動する必要はないようです

発生している問題

  • GHCのバージョンが違うプロジェクトで警告が出まくる
  • 保存時に整形を有効にしていたところ、保存するたびに空行が増える怪奇現象が!
  • さらにコードをコピペしようとすると消えるという謎現象も発生中…

line.PNG

試行錯誤したきろく

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のバージョンを明示的に指定し、回避。

12
9
5

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
12
9