diff options
| author | Cliff Click <cliffc@acm.org> | 2026-10-25 14:24:09 -0700 |
|---|---|---|
| committer | Cliff Click <cliffc@acm.org> | 2026-10-25 14:24:09 -0700 |
| commit | 0e7c50b22d7f900b9c3c8db3765f3b7af41e5dd1 (patch) | |
| tree | 6bfc8e100d1e1a727fdeabbc8dcf0710d04ff29b /chapter28b/README.ja.md | |
| parent | 2d80a348bad4b1e3165bd955ceaff3e18a96e516 (diff) | |
| download | Simple-0e7c50b22d7f900b9c3c8db3765f3b7af41e5dd1.tar.gz Simple-0e7c50b22d7f900b9c3c8db3765f3b7af41e5dd1.zip | |
Update incremental build checkmain
Diffstat (limited to 'chapter28b/README.ja.md')
| -rw-r--r-- | chapter28b/README.ja.md | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/chapter28b/README.ja.md b/chapter28b/README.ja.md index c4f60712..a3221da5 100644 --- a/chapter28b/README.ja.md +++ b/chapter28b/README.ja.md @@ -89,6 +89,16 @@ java -ea -cp "build/classes/main:build/classes/test:lib/*" \ ## 検証と今後 +明示的に指定したソースは常にコンパイルします。他のローカルオブジェクトを再利用する前に、 +記録された依存関係をたどり、各オブジェクトにまとめられた全ソースを検査します。 +入力の欠落や、より新しいソース・依存オブジェクトがあれば、保存した型や IR を使わず +再解析します。A が B をインライン化していれば、B のオブジェクトが未更新でも、 +B のソース変更で A は無効になります。循環は訪問済み集合で処理します。 + +ライブラリは検査と読み込みで同じ検索パスを使います。ソースのないライブラリは整合した +組み合わせで提供する必要があります。時刻だけでは互換性は判断できません。入力ハッシュ、 +コンパイラ・ABI のバージョン、自動再リンクを含むビルドドライバは今後の課題です。 + リポジトリのルートから次を実行します。 ```sh @@ -100,6 +110,10 @@ make tests CHAPTERS=chapter28b オブジェクトにします。`make release` は jar と標準ライブラリを作り、`make view` は 共通のグラフビューアーを起動します。 +`IncrementalBuildTest` は時刻を明示的に設定し、再利用、間接的な変更、まとめられた +循環、入力の欠落、ライブラリ更新を検査します。変更後のネイティブ実行結果も +クリーンビルドと比較します。 + 保存形式は `C0DE` 以外のバージョン番号をまだ持ちません。コンパイラや形式を変えたら オブジェクトを再構築してください。高コストの往復一致検査は無効のままで、古い増分 ビルドの実験 `testModule0` も実行対象外です。 |
