状態: Accepted
CLI は短命プロセスであり、増分クエリグラフをプロセス間で保持する方法を決める必要がある。
| 方式 | 例 | 利点 | 欠点 |
|---|---|---|---|
| デーモン常駐 | Bazel, Buck2, Gradle | メモリ上のグラフを再利用。言語サーバと自然に統合 | ライフサイクル管理、資源占有、状態の陳腐化 |
| ディスクへの直列化 | rustc incremental | 常駐なし。挙動が理解しやすい | 復元コストがかかる |
常駐デーモンを持たない。状態の正本はディスク上のストアに置く。
podman が daemonless であることによって支持を得ている構図を参照する。 参照すべき点は2つ。状態の正本がディスク上のストアにあり CLI が自己完結すること、 および特権を要求しないこと。後者は将来の sandbox 設計にも効く。
Gradle デーモンに対する評価も、常駐を選ばない根拠として無視できない。
stat 走査(ファイル監視を使わない)flock で単一に制限。取得できなければキャッシュを書かずに計算する。
正しさは失われず、利得のみを失う