Core Concepts
実際のビルド依存関係の変更に基づいて、増分ビルドを活用することで、ビルド依存関係エラーを効率的に検出することができる。
Abstract
本論文は、増分ビルドを活用したビルド依存関係エラーの検出手法ECheckerを提案している。ECheckerの核心的なアイデアは、コミットによるソースコードの変更から実際のビルド依存関係の変更を推論し、クリーンビルドを必要最小限に抑えることで、ビルド依存関係エラーの検出を効率化することである。
具体的には、ECheckerは以下の3つのステップで実際のビルド依存関係を推論する:
増分ビルドの実行をモニタリングし、実際のビルド依存関係グラフを取得する。
コミットによるプリプロセッサディレクティブとMakefileの変更を分析し、実際のビルド依存関係の変更を特定する。
1と2の結果を統合し、新しい実際のビルド依存関係グラフを推論する。
次に、ECheckerは推論した実際のビルド依存関係グラフと宣言されたビルド依存関係グラフを比較することで、ビルド依存関係エラーを検出する。
ECheckerの評価では、12のプロジェクトの240コミットを対象に、従来手法のBuildfsと比較した。その結果、ECheckerは平均で85.14倍(中央値16.30倍)の効率向上を達成しつつ、F1スコアでも0.18の改善を示した。さらに、2つのプロジェクトのメンテナから、検出結果が受け入れられたことから、ECheckerの有効性が確認された。
Stats
ビルド時間の平均で85.14倍(中央値16.30倍)の効率向上を達成した。