diff --git a/docs/development/current/main/01-JoinIR-Selfhost-INDEX.md b/docs/development/current/main/01-JoinIR-Selfhost-INDEX.md index 9686d602..e7adcd94 100644 --- a/docs/development/current/main/01-JoinIR-Selfhost-INDEX.md +++ b/docs/development/current/main/01-JoinIR-Selfhost-INDEX.md @@ -90,19 +90,23 @@ JoinIR の箱構造と責務、ループ/if の lowering パターンを把握 - `docs/development/current/main/phases/phase-125/README.md` 28. Phase 126: available_inputs SSOT wiring(dev-only) - `docs/development/current/main/phases/phase-126/README.md` -29. Phase 127: unknown-read strict Fail-Fast(dev-only / planned) +29. Phase 127: unknown-read strict Fail-Fast(dev-only) - `docs/development/current/main/phases/phase-127/README.md` -30. Phase 104: loop(true) break-only digits(VM + LLVM EXE) +30. Phase 128: if-only Normalized partial-assign keep/merge(dev-only) + - `docs/development/current/main/phases/phase-128/README.md` +31. Phase 129: Materialize join_k continuation + LLVM parity(P1 in progress) + - `docs/development/current/main/phases/phase-129/README.md` +32. Phase 104: loop(true) break-only digits(VM + LLVM EXE) - `docs/development/current/main/phases/phase-104/README.md` -31. Phase 107: json_cur find_balanced_* depth scan(VM + LLVM EXE) +33. Phase 107: json_cur find_balanced_* depth scan(VM + LLVM EXE) - `docs/development/current/main/phases/phase-107/README.md` -32. Phase 108: Pattern2 policy router SSOT(入口の薄さを固定) +34. Phase 108: Pattern2 policy router SSOT(入口の薄さを固定) - `docs/development/current/main/phases/phase-108/README.md` -33. Phase 109: error_tags hints SSOT(Fail-Fast + hint の語彙固定) +35. Phase 109: error_tags hints SSOT(Fail-Fast + hint の語彙固定) - `docs/development/current/main/phases/phase-109/README.md` -34. MIR Builder(Context 分割の入口) +36. MIR Builder(Context 分割の入口) - `src/mir/builder/README.md` -35. Scope/BindingId(shadowing・束縛同一性の段階移行) +37. Scope/BindingId(shadowing・束縛同一性の段階移行) - `docs/development/current/main/phase73-scope-manager-design.md` - `docs/development/current/main/PHASE_74_SUMMARY.md` - `docs/development/current/main/PHASE_75_SUMMARY.md` diff --git a/docs/development/current/main/10-Now.md b/docs/development/current/main/10-Now.md index d8937130..fbd3231b 100644 --- a/docs/development/current/main/10-Now.md +++ b/docs/development/current/main/10-Now.md @@ -1,12 +1,19 @@ # Self Current Task — Now (main) -## Next: Phase 127(予定) +## Next: Phase 129 P1(実装待ち) + +**Phase 129: Materialize join_k continuation(dev-only)** +- 現状: P0/P2/P3 は完了(VM/LLVM EXE parity, fixture, docs) +- 残り: P1 join_k を JoinModule 上で実体化(then/else は TailCall(join_k)、post-if は post_k) +- 入口: `docs/development/current/main/phases/phase-129/README.md` + +## 2025-12-18:Phase 127 完了 ✅ **Phase 127: unknown-read strict Fail-Fast(dev-only)** -- 目的: `reads` にあるが `available_inputs` に存在しない変数を "unknown-read" として検出し、strict で Fail-Fast -- 実装: `UnknownReadGuardBox`(builder の lowering 前にチェック、tag + 1行hint で停止) -- fixture/smoke: `return missing_x` を strict で落とす(`[phase127/unknown_read/... ]` を固定) -- 入口(計画): `docs/development/current/main/phases/phase-127/README.md` +- unknown-read = reads - (writes ∪ inputs) を検出 +- strict: `freeze_with_hint("phase127/unknown_read/", ...)` で即停止(hint必須) +- dev-only non-strict: 理由ログ(tag + count + 先頭数件) +- 入口: `docs/development/current/main/phases/phase-127/README.md` ## 2025-12-18:Phase 128 完了 ✅ diff --git a/docs/development/current/main/30-Backlog.md b/docs/development/current/main/30-Backlog.md index 9381ccd3..3ba6201c 100644 --- a/docs/development/current/main/30-Backlog.md +++ b/docs/development/current/main/30-Backlog.md @@ -20,8 +20,8 @@ Related: - **制御の再帰合成(docs-only → dev-only段階投入)** - ねらい: `loop/if` ネストの "構造" を SSOT(ControlTree/StepTree)で表せるようにする - 注意: canonicalizer は観測/構造SSOTまで(ValueId/PHI配線は Normalized 側へ) - - 現状: Phase 119–126(cond SSOT / facts→contract / shadow parity / JoinModule生成 / semantics / reads+return-var / reads-only inputs / available_inputs wiring)まで完了 - - 次候補(Phase 127): unknown-read strict Fail-Fast(reads にあるが available_inputs に無い変数の検出) + - 現状: Phase 119–128(if-only Normalized: reads/inputs/unknown-read/partial-assign keep/merge)まで完了 + - 次候補: Phase 129 P1(join_k continuation の実体化) - 入口: `docs/development/current/main/design/control-tree.md` ## 中期(ループ在庫の残り) diff --git a/docs/development/current/main/phases/phase-127/README.md b/docs/development/current/main/phases/phase-127/README.md index 5f4ad840..315f36c5 100644 --- a/docs/development/current/main/phases/phase-127/README.md +++ b/docs/development/current/main/phases/phase-127/README.md @@ -1,4 +1,4 @@ -# Phase 127: unknown-read strict Fail-Fast(planned) +# Phase 127: unknown-read strict Fail-Fast(DONE) ## 目的 @@ -27,6 +27,10 @@ - Phase 121–126 の smokes が退行しない - 新規 fixture(例: `return missing_x`)が strict で確実に Fail-Fast する +## Status + +- DONE: unknown-read を strict で Fail-Fast 固定(dev-only) + ## 関連 - Phase 125: EnvLayout(writes + inputs)