34 lines
1.4 KiB
Markdown
34 lines
1.4 KiB
Markdown
|
|
# Phase 273 P2 Completion (2025-12-22)
|
|||
|
|
|
|||
|
|
P2 Goal:
|
|||
|
|
- Pattern7(split scan)を Plan ライン(DomainPlan→CorePlan→Lowerer)へ移行し、Lowerer の “pattern知識” を増やさない。
|
|||
|
|
|
|||
|
|
## Delivered
|
|||
|
|
|
|||
|
|
- CoreEffectPlan: 副作用対応
|
|||
|
|
- `MethodCall` が `dst: Option<ValueId>` を持てる(`push` 等の void-return 対応)
|
|||
|
|
- `effects: EffectMask` を CorePlan から指定できる(PURE ではない呼び出しを明示)
|
|||
|
|
|
|||
|
|
- CoreLoopPlan: 一般化(Pattern6/7 の収束点)
|
|||
|
|
- `block_effects: Vec<(BasicBlockId, Vec<CoreEffectPlan>)>`
|
|||
|
|
- `phis: Vec<CorePhiInfo>`
|
|||
|
|
- `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 を撤去すると収束が完成する。
|
|||
|
|
|