巷で話題の Haskell のビルドツール stack だが、自作のアプリも stack でのビルドに対応してみた。
https://github.com/mitsuji/aha
https://github.com/mitsuji/bingo
stack の便利さをどう表現しようか。筆者の場合は git に出会ったときと状況が似ていると感じている。
ソースコード管理の重要さを知りながらも、cvs や subversion を「どうしても使わなければ」と思うことはなかったが、git に出会ってからは git というツールとともにソースコード管理そのものも、ちょっとしたものを作るときでもあたりまえのこととして受け入れるようになった。
stack の場合は、自分のソースをパッケージとして組むことをあたりまえのこととしてくれるツールという感じがする。
stack は 依存ライブラリと依存コンパイラ(ghc)のバージョンをまとめて解決してくれるので、とてもありがたい。 scala の sbt に 影響を受けているようだが、sbtはさすがに jdk のバージョンも管理してくれるわけではないので stack の方が上を行っていると思う。
下記のコマンドで最新のghcが入る。
$ stack setup
プロジェクトに cd して下記のコマンドでプロジェクトがビルドできる。
$ stack build
プロジェクトに cd して下記のコマンドでプロジェクト内のソースを参照しつつREPL。
$ stack ghci
プロジェクトに cd して下記のコマンドで ~/.local/bin に 実効形式がインストールされる。
$ stack install
Haskell 入門の敷居がまた下がった。
Haskell is ready for industry !