7

ライブラリで を実行してからcabal buildファイルを変更すると、次に を実行するときにcabal build、変更の影響を受けるファイルを再コンパイルするだけで済みます。コマンドで同じ動作が得られませんcabal haddock。ファイルを変更した後に実行すると、cabal/haddock は以前の作業をすべて破棄し、最初からやり直すことになります。これにはかなり時間がかかります。ドキュメントの差分更新を取得する方法はありますか?

これは、ドキュメントを生成するためのコマンド cabal の問題のダンプです。

4

1 に答える 1

1

processModulesのドキュメントには次のように書かれています。

GHC API を使用してモジュールのリストを型チェックし、結果の構文木を処理することにより、インターフェイスとリンク環境を作成します。

そして、それが のコア機能ですhaddock。したがって、ATM の質問に対する答えはNoです。

cabal build異なるパラメーターを持つモジュールをタイプチェックするため(たとえば、CPP変数が有効になっている)cabal haddock、まったく役に立ちませんhaddock__HADDOCK__

依存関係グラフの後半にあるコードが、その時点より前のモジュールのドキュメント、特にインスタンスのリストを変更する可能性があるため、信頼性の高い増分ハドック生成を行うことは困難です。おそらく、モジュール インターフェイスをダンプできます。

最初のステップのコードをprocessModules見ると、段階的に実行できる可能性があり、残りはグローバル情報を使用しています。

冗長性を最大にしてみて、と の間に--haddock-options=--verbosity=2どれだけの時間が費やされたかを確認してください。Creating interfaces...Attaching instances...

于 2015-09-29T13:43:08.747 に答える