はじめに

先日 stack の master ブランチに Introduce stack run command line option #3952 がマージされました。とても便利なので紹介したいと思います。

stack run コマンドについて簡単に説明するとこんな感じです。

  • cabal runstack バージョンです。
  • stack build && stack exec foo の短縮形です。

現在の stack の最新バージョンは 1.7.1 です。

stack run コマンド

実際にプロジェクトを作って試してみましょう。

$ stack new stack-run-test
$ cd stack-run-test

初回は通常通りビルドが実行され、その後に someFunc が出力されます。

$ stack run
Building all executables for `stack-run-test' once. After a successful build of all of them, only specified executables

...

Registering library for stack-run-test-0.1.0.0..
someFunc

2回目以降はビルド結果がキャッシュされているので、ファイルを変更しなれければ再ビルドされることはありません。

$ stack run
someFunc

まとめ

stack run コマンドは Wishlist: stack run #233 によって2015年6月に提案されているので3年越しの実装ということになります。この調子で色々と便利なコマンドが増えると良いですね。

実行ファイル名の指定を省略できるのは、非常に便利なので僕も使っていこうと思います。

以上です。