Stack
Haskellのビルドツール
パッケージ管理をしてくれる
Haskell製のツールのPCへの導入
Haskellでプロジェクトの作成やビルドをする
設定ファイル
追加のlibararyの指定などは.cabalではなく、package.yamlに書く package.yamlを削除して、.cabalに書くのもあり パッケージ管理
に追記する
Haskell製のツールのPCへの導入
$ stack install
コマンドになる
buildして実行
$ stack build
hoge-exeがコマンドライン引数を取る場合は
$ stack exec -- hoge-exe --hogehoge
このhoge-exeをスマートにhogeとかにする方法 ref コマンド
$ stack run
buildして実行
$ stack build
ビルド
package.yamlかどこかへ書いてるパッケージたちもinstallしてくれる
--file-watch
ビルドの監視モード。便利
--test
stack testを同時にしてくれる
$ stack ghci
package.yamlのexecutablesのmainが読み込まれる #?? $ stack new
プロジェクトをテンプレで新規作成
$ stack init
プロジェクトをテンプレ無しで新規作成
$ stack install
プロジェクトをビルドしてlocalのbinにインストール
つまり自分で作ったプロジェクトが、$ hogeとかで実行できるようになる
$ stack update
$ stack runghc
mainが読み込まれる
$ stack clean
キャッシュの削除?
強い版が--fullオプション
$ stack setup
プロジェクトで指定されたバージョンのコンパイラや基本パッケージをインストール
$ stack buildが賄ってくれるので不要になったらしい ref stack test
stack upgrade
stack自身のupgrade
$ stack hoge.hs
1つのファイルをscript的に実行
エラー
Please ensure that ghcide is compiled with the same GHC installation as the project.cra
とりあえす$ stack buildしたらなおった
code:error
Downloading lts-15.1 build plan ...
RedownloadInvalidResponse Request {
host = "raw.githubusercontent.com"
port = 443
secure = True
requestHeaders = []
path = "/fpco/lts-haskell/master//lts-15.1.yaml"
queryString = ""
method = "GET"
proxy = Nothing
rawBody = False
redirectCount = 10
responseTimeout = ResponseTimeoutDefault
requestVersion = HTTP/1.1
}
本質的な修正の仕方はわからないが、既にあるstackageのバージョンを指定して耐えた
$ stack init --resolver=nightly-2019-01-28
参考