シェイクで並列ビルドを使用すると、次のような不正な形式の出力が得られます。
[»] Compiling src/Game/Game.cpp
[»] Compiling [»] Compiling [»] Compiling src/Graphics/Image/Png/PngLoader.cpp
src/Main.cpp
src/System/HeartBeat.cpp
[»] Compiling src/Window/Window.cpp
[»] Compiling src/Window/GlfwContext.cpp
印刷との何らかの同期の問題だと思います。出力コマンドとして次を使用していることに注意してください。
shakeOutput = const $ BS.putStr . BS.pack
ステータス メッセージの印刷セクションのルールは次のようになります。
liftIO $ setSGR [SetColor Foreground Vivid Green]
putNormal "[\175] Compiling "
liftIO $ setSGR [SetColor Foreground Vivid Yellow]
putNormal $ c ++ "\n"
liftIO $ setSGR [Reset]
シェイクに組み込まれた出力で、そのような印刷の問題を回避する方法はありますか? そうでない場合、印刷コードがシェイクルール内にあることを知って、どの種類の haskell 同期化メソッドを使用するのが適切でしょうか?