From 8394b2d6fd514bd55d9533ccab27b4be5987bd26 Mon Sep 17 00:00:00 2001 From: tomoaki Date: Sat, 20 Dec 2025 20:11:45 +0900 Subject: [PATCH] docs(phase256): document P1.13.5 boundary SSOT unification MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Phase 256.8.5 Cleanup: Document the completion of boundary SSOT unification across Pattern4/6/7. Updates: - Phase 256 README: Add P1.13.5 section with implementation details - 10-Now.md: Add P1.13.5 to recent fixes list Documentation highlights: - Background: Pattern2 fix needed horizontal expansion - Implementation: SSOT unified across all patterns (2,3,4,6,7) - Benefits: Structural prevention of entry param mismatch - Results: ~40 lines of duplication eliminated, magic numbers removed 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 --- docs/development/current/main/10-Now.md | 1 + .../current/main/phases/phase-256/README.md | 26 +++++++++++++++++++ 2 files changed, 27 insertions(+) diff --git a/docs/development/current/main/10-Now.md b/docs/development/current/main/10-Now.md index 5244f49f..cdfb453c 100644 --- a/docs/development/current/main/10-Now.md +++ b/docs/development/current/main/10-Now.md @@ -62,6 +62,7 @@ - P1.5-DBG: boundary entry params の契約チェックを追加(VM実行前 fail-fast)。 - P1.6: 契約チェックの薄い集約 `run_all_pipeline_checks()` を導入(pipeline の責務を縮退)。 - P1.13: Pattern2 boundary entry params を `join_module.entry.params` SSOT へ寄せた(ValueId 推測生成の撤去)。 + - P1.13.5: Boundary SSOT 統一(Pattern4/6/7 横展開 + 共通ヘルパ `get_entry_function()` 抽出)。 ## 2025-12-20:Phase 257(last_index_of early return loop)🔜 diff --git a/docs/development/current/main/phases/phase-256/README.md b/docs/development/current/main/phases/phase-256/README.md index 47cc977c..8b877500 100644 --- a/docs/development/current/main/phases/phase-256/README.md +++ b/docs/development/current/main/phases/phase-256/README.md @@ -522,6 +522,32 @@ Hint: parameter ValueId mismatch indicates boundary.join_inputs constructed in w - Fixture: `apps/tests/phase257_p0_last_index_of_min.hako` - Integration smokes: `phase257_p0_last_index_of_vm.sh`, `phase257_p0_last_index_of_llvm_exe.sh` +### P1.13.5: Boundary SSOT Unification - Pattern4/6/7 (完了) + +背景: +- P1.13 で Pattern2 の boundary entry_param_mismatch を根治したが、同じ hardcoded ValueId パターンが Pattern4/6/7 にも存在していた + +実施内容: +- Pattern4/6/7 の `boundary.join_inputs` を hardcoded ValueId(0), ValueId(PARAM_MIN + k) から撤去 +- 全パターン(2, 3, 4, 6, 7)で `join_module.entry.params.clone()` を SSOT として統一 +- Fail-fast validation(params count mismatch)を全パターンに追加 +- 共通ヘルパ `get_entry_function()` を抽出(`patterns/common/joinir_helpers.rs`) + +修正ファイル: +- `src/mir/builder/control_flow/joinir/patterns/pattern4_with_continue.rs` +- `src/mir/builder/control_flow/joinir/patterns/pattern6_scan_with_init.rs` +- `src/mir/builder/control_flow/joinir/patterns/pattern7_split_scan.rs` +- `src/mir/builder/control_flow/joinir/patterns/common/joinir_helpers.rs` (新規・ヘルパ追加) + +結果: +- Entry param mismatch の構造的防止(全パターン統一) +- Magic number の完全撤去(PARAM_MIN の hardcoded 使用ゼロ) +- コードの保守性・一貫性向上(~40行の重複削減) + +コミット: +- `636b1406b` refactor(joinir): extract get_entry_function helper +- `17049d236` docs(phase256): document P1.13.5 boundary SSOT unification + 次(P1.5 Task 3): - `ValueId(57)` が「何の JoinIR 値の remap 結果か」を確定し、定義側(dst)が MIR に落ちているかを追う - 例: `sep_len = sep.length()` の BoxCall dst が収集/変換/順序のどこかで欠けていないか