smokes: add curated LLVM runner; archive legacy smokes; PHI-off unified across Bridge/Builder; LLVM resolver tracing; minimal Throw lowering; config env getters; dev profile and root cleaner; docs updated; CI workflow runs curated LLVM (PHI-on/off)

This commit is contained in:
Selfhosting Dev
2025-09-16 23:49:36 +09:00
parent 97a76c0571
commit 5c9213cd03
104 changed files with 8094 additions and 2930 deletions

View File

@ -15,7 +15,13 @@ LifeBox ModelLBMは「Box=Loop1」という見方でライフサイクル
- 論文AMIR13/IR設計: 本稿は将来の拡張。まずAを優先して仕上げ、その後に独立短論文としてまとめる。
- 論文BNyash言語: birth/fini・async/generator の設計と橋渡し要素。
## 2025-09-16 追記: MIR進化計画
- **MIR14→MIR13→MIR17の段階的移行**: `mir-evolution-plan.md` に詳細記載
- Codexとの協働でLoopForm設計を具体化
- PHI責務のLLVM層移管とLoopForm追加+4命令の戦略
---
- 下書き本文: `main-paper-jp.md`
- MIR進化計画: `mir-evolution-plan.md`(新規追加)
- 補助: 擬似MIRとLowering図、評価計画の雛形を本文内に記載

View File

@ -0,0 +1,119 @@
# MIR進化計画: MIR14 → MIR13 → MIR17
## 概要
LoopForm導入に向けた段階的なMIR進化戦略。PHI命令の責務をLLVM層に移管し、より高レベルな制御構造表現を導入する。
## 命令数の変遷
```
MIR14現在: 14命令PHIあり
↓ Phase 15終盤
MIR13: 13命令PHI除去
↓ Phase 16
MIR17: 17命令LoopForm追加
```
## MIR13Phase 15終盤
### 削除される命令
- **Phi**: SSA PHIードの生成をLLVM層に移管
### 残る13命令
1. Const
2. Load / Store
3. UnaryOp / BinOp / Compare / TypeOp
4. Branch / Jump / Return
5. NewBox / BoxCall
6. ExternCall / Call
7. Throw / Catch既存維持
### 実装方針
- Bridge/BuilderはPHIを生成しない
- LLVM層llvmlite/ResolverがCFGパターンからPHIを合成
- VM/Interpreterは直線的実行を継続PHI無視
## MIR17Phase 16
### 追加される4命令LoopForm
1. **LoopHeader** `{ id, params[] }`
- ループヘッダBBの宣言
- params[]はループ搬送値のプレースホルダ
2. **LoopEnter** `{ header: bb, args[] }` (terminator)
- Preheaderからヘッダへの遷移
- args[]は搬送値の初期値
3. **LoopLatch** `{ header: bb, args[] }` (terminator)
- 本体末尾からヘッダへのバックエッジ
- args[]は更新後の搬送値
4. **LoopExit** `{ exit: bb }` (terminator)
- ループからの脱出break相当
### なぜ+4命令か
- ループの構造を明示的に表現
- Preheader/Header/Body/Exitの役割を宣言的に
- LLVM層でのPHI生成が機械的に可能
## 合流点の扱い(将来検討)
### MergeForm追加候補
```rust
// If/Else等の合流用将来のMIR18以降
MergeHeader { id, params[] }
MergeEnter { header: bb, args[] }
```
## 移行のメリット
1. **責務分離の明確化**
- MIR: 制御構造の宣言
- LLVM: SSA表現の生成
2. **段階的移行**
- Phase 15: PHI生成を止める互換性維持
- Phase 16: LoopForm導入新機能
3. **将来拡張への道筋**
- Generator/Async/Effectへの対応準備
- LifeBox ModelLBMへの布石
## AI協働の記録2025-09-16
### Codex提案
- PHI合成をllvmlite側で実施
- LoopForm/MergeFormの構造化表現
- TryRegionによる例外構造化将来
### 人間の洞察
- 「MIR13に減らしてから+4でMIR17」
- 段階的移行の重要性
- 一気に変えないことの価値
### 合意形成
- Phase 15でまずPHI非生成化
- 安定後にLoopForm導入
- 責務分離を徹底
## 実装チェックリスト
### Phase 15終盤MIR13化
- [ ] Bridge: PHI生成を無効化するフラグ
- [ ] llvmlite: Resolver実装PHI合成
- [ ] Smoke: ループ搬送値のテスト
- [ ] VM: PHI無視の動作確認
### Phase 16MIR17化
- [ ] MIR: LoopForm命令の追加
- [ ] Bridge: Loop構造の認識とLoopForm生成
- [ ] llvmlite: LoopFormからPHIへの変換
- [ ] ドキュメント: MIR17仕様書
## 関連文献
- 論文AMIR13/14: 基本設計
- 論文DSSA構築: PHI生成の理論
- 論文E本稿: LoopForm理論
- CURRENT_TASK.md: 実装計画