refactor(mir): phase260 p0.1 strangler hardening + smoke fixtures
This commit is contained in:
@ -79,6 +79,21 @@ Related:
|
||||
- **P5(guard-bounded)**: 大型ループを “小粒度” に割ってから取り込む(分割 or 新契約)
|
||||
- **P6(nested loops)**: capability guard で Fail-Fast 維持しつつ、解禁時の契約を先に固定
|
||||
|
||||
## 中期(制御の表現力)
|
||||
|
||||
北極星: `docs/development/current/main/design/join-explicit-cfg-construction.md`
|
||||
設計メモ: `docs/development/current/main/design/exception-cleanup-async.md`
|
||||
|
||||
- **catch/cleanup(Invoke)**
|
||||
- 追加語彙を `Invoke(ok_edge, err_edge)` に絞って例外 edge を明示する(例外値は edge-args で運ぶ)。
|
||||
- 実装タイミング: Phase 260(edge-args terminator 収束)の P1〜P2 以降が推奨。
|
||||
- **cleanup/defer(cleanup normalizer)**
|
||||
- Return/Throw/Break/Continue を cleanup に寄せる “脱出 edge 正規化” を箱化する(finally の後継としての cleanup)。
|
||||
- 実装タイミング: catch/cleanup の次(例外 edge も含めて正規化するため)。
|
||||
- **async/await(state machine lowering)**
|
||||
- CFG語彙に混ぜず、AsyncLowerBox で state machine 化してから MIR に落とす。
|
||||
- 実装タイミング: finally/defer の後(cancel/drop と cleanup の接続を先に固める)。
|
||||
|
||||
## ドキュメント運用
|
||||
|
||||
- 重複が出たら「設計 SSOT(design)」に集約し、Phaseログ(phases)は “何をやったか/検証したか” に限定する
|
||||
|
||||
Reference in New Issue
Block a user