diff --git a/docs/development/current/main/01-JoinIR-Selfhost-INDEX.md b/docs/development/current/main/01-JoinIR-Selfhost-INDEX.md index 0b0f927d..90cd9dc7 100644 --- a/docs/development/current/main/01-JoinIR-Selfhost-INDEX.md +++ b/docs/development/current/main/01-JoinIR-Selfhost-INDEX.md @@ -74,17 +74,25 @@ JoinIR の箱構造と責務、ループ/if の lowering パターンを把握 - `docs/development/current/main/phases/phase-117/README.md` 20. Phase 118: loop + if-else merge parity(loop + if-else 変数更新 merge / carrier PHI contract) - `docs/development/current/main/phases/phase-118/README.md` -21. Phase 104: loop(true) break-only digits(VM + LLVM EXE) +21. Phase 119: StepTree cond SSOT(AST handle) + - `docs/development/current/main/design/control-tree.md` +22. Phase 120: StepTree facts/contract SSOT(facts only → contract) + - `docs/development/current/main/design/control-tree.md` +23. Phase 121: StepTree→Normalized Shadow Lowering(if-only, dev-only) + - `docs/development/current/main/phases/phase-121/README.md` +24. Phase 122: StepTree→Normalized 実生成(if-only, dev-only / planned) + - `docs/development/current/main/phases/phase-122/README.md` +25. Phase 104: loop(true) break-only digits(VM + LLVM EXE) - `docs/development/current/main/phases/phase-104/README.md` -22. Phase 107: json_cur find_balanced_* depth scan(VM + LLVM EXE) +26. Phase 107: json_cur find_balanced_* depth scan(VM + LLVM EXE) - `docs/development/current/main/phases/phase-107/README.md` -23. Phase 108: Pattern2 policy router SSOT(入口の薄さを固定) +27. Phase 108: Pattern2 policy router SSOT(入口の薄さを固定) - `docs/development/current/main/phases/phase-108/README.md` -24. Phase 109: error_tags hints SSOT(Fail-Fast + hint の語彙固定) +28. Phase 109: error_tags hints SSOT(Fail-Fast + hint の語彙固定) - `docs/development/current/main/phases/phase-109/README.md` -25. MIR Builder(Context 分割の入口) +29. MIR Builder(Context 分割の入口) - `src/mir/builder/README.md` -26. Scope/BindingId(shadowing・束縛同一性の段階移行) +30. 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` @@ -92,16 +100,16 @@ JoinIR の箱構造と責務、ループ/if の lowering パターンを把握 - `docs/development/current/main/phase78-bindingid-promoted-carriers.md` - `docs/development/current/main/phase80-bindingid-p3p4-plan.md`(P3/P4 への配線計画) - `docs/development/current/main/phase81-pattern2-exitline-contract.md`(promoted carriers の ExitLine 契約検証) -25. Boxification feedback(Phase 78–85 の振り返りと Phase 86 推奨) +31. Boxification feedback(Phase 78–85 の振り返りと Phase 86 推奨) - `docs/development/current/main/phase78-85-boxification-feedback.md` -26. Phase 86: Carrier Init Builder + Error Tags ✅ +32. Phase 86: Carrier Init Builder + Error Tags ✅ - **Status**: COMPLETE (2025-12-13) - **Modules**: - `src/mir/builder/control_flow/joinir/merge/carrier_init_builder.rs` (+8 tests) - `src/mir/join_ir/lowering/error_tags.rs` (+5 tests) - **Achievements**: SSOT 確立(CarrierInit → ValueId 生成統一、エラータグ中央化、DebugOutputBox 完全移行) - **Impact**: 987/987 tests PASS, +13 unit tests, Single Responsibility validated -27. Phase 87: LLVM Exe Line SSOT ✅ +33. Phase 87: LLVM Exe Line SSOT ✅ - **Status**: COMPLETE (2025-12-13) - **SSOT**: `tools/build_llvm.sh` - Single pipeline for .hako → executable - **Deliverables**: diff --git a/docs/development/current/main/10-Now.md b/docs/development/current/main/10-Now.md index f057535c..a9832b85 100644 --- a/docs/development/current/main/10-Now.md +++ b/docs/development/current/main/10-Now.md @@ -1,5 +1,12 @@ # Self Current Task — Now (main) +## Next: Phase 122(予定 / 実装中) + +**Phase 122: StepTree→Normalized(if-only 実生成 / dev-only)** +- Phase 121 は “contract-only shadow parity” まで完了。次は JoinModule(Normalized方言)の実生成へ進める +- 既定挙動は不変(`joinir_dev_enabled()` のときだけ生成・検証、`joinir_strict_enabled()` で mismatch を Fail-Fast) +- 入口(計画): `docs/development/current/main/phases/phase-122/README.md` + ## 2025-12-18:Phase 121 完了 ✅ **Phase 121: StepTree→Normalized Shadow Lowering (if-only, dev-only)** diff --git a/docs/development/current/main/30-Backlog.md b/docs/development/current/main/30-Backlog.md index 32a77797..bd7ada4b 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 110–112(StepTree dev-only + strict guard)、Phase 117(if-only nested-if parity)、Phase 118(loop + if merge parity)まで完了 - - 次候補: StepTreeContract を “変換可能” な SSOT に寄せる(cond は AST 参照を保持、sig は派生にする)→ docs-only → dev-only で段階投入 + - 現状: Phase 119–121(StepTree cond SSOT / facts→contract / shadow parity)まで完了 + - 次候補(Phase 122): if-only を StepTree→Normalized で実生成(dev-only)し、将来の dual-run の土台を作る - 入口: `docs/development/current/main/design/control-tree.md` ## 中期(ループ在庫の残り) diff --git a/docs/development/current/main/phases/phase-122/README.md b/docs/development/current/main/phases/phase-122/README.md new file mode 100644 index 00000000..1cf9316d --- /dev/null +++ b/docs/development/current/main/phases/phase-122/README.md @@ -0,0 +1,40 @@ +# Phase 122: StepTree→Normalized(if-only 実生成 / dev-only) + +## 目的 + +- Phase 121 で導入した StepTree→Normalized の “shadow変換(contract-only)” を一段進め、if-only を対象に Normalized JoinModule(env+継続)を実生成する。 +- 既定挙動は不変:`joinir_dev_enabled()` のときだけ生成・検証し、本番経路の出力/動作は変えない。 +- mismatch は strict のときだけ Fail-Fast(`freeze_with_hint`、hint必須)。 + +## Scope + +- 対象: if-only(loopなし) +- 非対象(strictではcap不足でFail-Fast): + - Loop / Break / Continue(Phase 112/121 の guard 方針に従う) + +## 実装方針(SSOT) + +- 入力SSOT: `StepTree` + `StepTreeFacts` + `StepTreeContract` + - facts/contract は再解析しない(変換箱が AST を再走査して “推測” しない) +- 生成SSOT: “env + 継続” に統一し、PHI を直接扱わない + - merge: `join_k(env)` への tail-call + - env layout: `writes` で宣言された変数のみ +- 失敗時: + - dev-only: 理由ログ(タグ + 1行) + - strict: `freeze_with_hint`(1行hint必須、空hintは禁止) + +## 受け入れ基準 + +- `cargo test --lib` が PASS +- Phase 121 の既存 smokes が退行しない +- Phase 122 の dev-only 検証で mismatch が出ない(strict で Fail-Fast するなら、その時点で修正が必要) + +## 関連 + +- Phase 119–121: StepTree SSOT + shadow parity + - `docs/development/current/main/design/control-tree.md` + - `docs/development/current/main/phases/phase-121/README.md` +- StepTree 実装: + - `src/mir/control_tree/step_tree.rs` + - `src/mir/control_tree/step_tree_facts.rs` + - `src/mir/control_tree/step_tree_contract_box.rs`