summaryrefslogtreecommitdiff
path: root/chapter28b/README.ja.md
diff options
context:
space:
mode:
Diffstat (limited to 'chapter28b/README.ja.md')
-rw-r--r--chapter28b/README.ja.md17
1 files changed, 15 insertions, 2 deletions
diff --git a/chapter28b/README.ja.md b/chapter28b/README.ja.md
index d04e9ccb..a3221da5 100644
--- a/chapter28b/README.ja.md
+++ b/chapter28b/README.ja.md
@@ -85,10 +85,20 @@ java -ea -cp "build/classes/main:build/classes/test:lib/*" \
コンストラクタのフィールド更新はローカル値と Phi のままで、ヘルパーの出口に Store を
置きます。未完成のオブジェクトでも初期化済みフィールドは読めます。
アンダースコアは公開インターフェースの選択に使いますが、ソースのアクセス制限は
-[レビュー待ち](../docs/chapter-backports.md)です。
+まだ実装されていません。
## 検証と今後
+明示的に指定したソースは常にコンパイルします。他のローカルオブジェクトを再利用する前に、
+記録された依存関係をたどり、各オブジェクトにまとめられた全ソースを検査します。
+入力の欠落や、より新しいソース・依存オブジェクトがあれば、保存した型や IR を使わず
+再解析します。A が B をインライン化していれば、B のオブジェクトが未更新でも、
+B のソース変更で A は無効になります。循環は訪問済み集合で処理します。
+
+ライブラリは検査と読み込みで同じ検索パスを使います。ソースのないライブラリは整合した
+組み合わせで提供する必要があります。時刻だけでは互換性は判断できません。入力ハッシュ、
+コンパイラ・ABI のバージョン、自動再リンクを含むビルドドライバは今後の課題です。
+
リポジトリのルートから次を実行します。
```sh
@@ -100,9 +110,12 @@ make tests CHAPTERS=chapter28b
オブジェクトにします。`make release` は jar と標準ライブラリを作り、`make view` は
共通のグラフビューアーを起動します。
+`IncrementalBuildTest` は時刻を明示的に設定し、再利用、間接的な変更、まとめられた
+循環、入力の欠落、ライブラリ更新を検査します。変更後のネイティブ実行結果も
+クリーンビルドと比較します。
+
保存形式は `C0DE` 以外のバージョン番号をまだ持ちません。コンパイラや形式を変えたら
オブジェクトを再構築してください。高コストの往復一致検査は無効のままで、古い増分
ビルドの実験 `testModule0` も実行対象外です。
-[分割計画](../docs/chapter-split.md)の主要な七つのスナップショットはこれで揃います。
ネイティブライブラリの構築と最適化の調整は[付録](../docs/appendices/README.md)にまとめています。