私は次のビルドシステムを持っています
module Main where
import Development.Shake
main :: IO ()
main = shakeArgs shakeOptions $ do
"a" %> \out -> do
need ["a.in"]
cmd_ "sleep" "10"
cmd "touch" [out]
でビルドしstack build
て実行しstack exec myShake -- --progress a
ます。
クリーン ビルドをtouch a.in
実行してから再度実行すると、シェイクによって非常に間違った進捗予測が表示されます。1000 分以上を予測することもあります。
(5 秒ごとに端末のタイトル バーに進行状況の予測が表示されるので、これを正しく理解していれば、ここでは最初の進行状況の予測についてのみ説明します。このビルド システムの例で得られるのはこれだけです。)
私はスタックとシェイクのバージョン 0.16 で lts-9.6 を使用します (git + stack.yaml のパッケージのエントリを介して)。