# Phase 273 P2 Completion (2025-12-22) P2 Goal: - Pattern7(split scan)を Plan ライン(DomainPlan→CorePlan→Lowerer)へ移行し、Lowerer の “pattern知識” を増やさない。 ## Delivered - CoreEffectPlan: 副作用対応 - `MethodCall` が `dst: Option` を持てる(`push` 等の void-return 対応) - `effects: EffectMask` を CorePlan から指定できる(PURE ではない呼び出しを明示) - CoreLoopPlan: 一般化(Pattern6/7 の収束点) - `block_effects: Vec<(BasicBlockId, Vec)>` - `phis: Vec` - `frag: Frag`(terminator SSOT: `emit_frag()`) - `final_values: Vec<(String, ValueId)>`(variable_map 更新の SSOT) - Pattern7: Plan ライン移行 - Extractor は pure(builder を触らない) - Normalizer が split 固有のブロック構造/PHI/Frag を決定(SSOT) - Lowerer は CorePlan を吐くだけ(pattern-agnostic) ## Regression / Validation - VM: - `tools/smokes/v2/profiles/integration/apps/phase256_p0_split_vm.sh` PASS(Pattern7) - `tools/smokes/v2/profiles/integration/apps/phase258_p0_index_of_string_vm.sh` PASS(Pattern6) ## Notes - P2 は “generalized 経路” と “legacy fallback” を共存させた(移行中の安全策)。 - 次の P3 で Pattern6 も generalized 経路へ移し、legacy fallback を撤去すると収束が完成する。