117 lines
3.3 KiB
Markdown
117 lines
3.3 KiB
Markdown
# ABI移行タイミング詳細検討
|
||
|
||
## 🎯 現状分析
|
||
|
||
### 現在のTypeBox実装
|
||
- **TLVベース統一** - `invoke_id`ですべてのメソッド呼び出し処理
|
||
- **7つのプラグイン** - String/Integer/Array/Map/Console/File/Egui
|
||
- **問題なく動作** - 機能的には十分、パフォーマンスも実用レベル
|
||
|
||
### LLVM層の進捗
|
||
- ChatGPT5がLLVM実装改善中
|
||
- PHI/ターミネーター問題を解決中
|
||
- BuilderCursor導入で構造化
|
||
- EXE生成までもう少し
|
||
|
||
## 🔄 移行オプション検討
|
||
|
||
### Option 1: 今すぐ移行開始
|
||
**メリット**:
|
||
- プラグイン数が少ない(7個)今がチャンス
|
||
- 早期のパフォーマンス改善
|
||
- 技術的負債を早めに解消
|
||
- Phase 16に向けた準備
|
||
|
||
**デメリット**:
|
||
- LLVM作業と並行→リソース分散
|
||
- 優先度の問題(LLVM > ABI?)
|
||
- 現行で問題ないのに変更リスク
|
||
|
||
### Option 2: LLVM完成後に移行(推奨)✅
|
||
**メリット**:
|
||
- **集中できる** - まずLLVM完成に全力
|
||
- **最適化考慮** - LLVM/JITの特性を踏まえた設計
|
||
- **一度の変更** - まとめて最適な形に
|
||
- **実証データ** - LLVM性能を見てから判断
|
||
|
||
**デメリット**:
|
||
- 移行が遅れる(でも急ぐ必要ない)
|
||
- TLVオーバーヘッド継続(でも実用上問題なし)
|
||
|
||
### Option 3: 段階的準備
|
||
**今できること**:
|
||
1. struct_size活用コードの準備
|
||
2. ドキュメント整理(完了✅)
|
||
3. 拡張計画の詳細化
|
||
4. テストコード準備
|
||
|
||
**LLVM後にやること**:
|
||
1. create/destroy追加
|
||
2. プラグイン順次対応
|
||
3. パフォーマンス測定
|
||
4. 最適化
|
||
|
||
## 📊 判断基準
|
||
|
||
### なぜLLVM完成後が最適か
|
||
|
||
1. **優先度の明確化**
|
||
- 現在の最重要課題:セルフホスティング
|
||
- LLVM完成 → EXE生成 → セルフホスト実現
|
||
- ABIは「改善」であって「必須」ではない
|
||
|
||
2. **設計の最適化**
|
||
- LLVMの最適化特性を理解してから
|
||
- インライン化可能性の考慮
|
||
- JIT/AOTでの扱いの違い
|
||
|
||
3. **リスク管理**
|
||
- 動いているものを変えるリスク
|
||
- LLVM作業への影響を避ける
|
||
- 一度に大きく変える方が安全
|
||
|
||
4. **実装効率**
|
||
- ChatGPT5がLLVM集中できる
|
||
- 混乱を避ける
|
||
- 明確なマイルストーン
|
||
|
||
## 🚀 推奨ロードマップ
|
||
|
||
### Phase 15(現在)
|
||
1. **LLVM完成に集中**
|
||
2. EXE生成実現
|
||
3. セルフホスト基盤確立
|
||
4. ABI拡張の詳細設計(並行)
|
||
|
||
### Phase 15.5(LLVM完成直後)
|
||
1. **ABI拡張実装**
|
||
- create/destroy追加
|
||
- struct_size活用
|
||
- 互換性維持
|
||
2. **プラグイン移行**
|
||
- 性能重要なものから
|
||
- 段階的に対応
|
||
3. **パフォーマンス検証**
|
||
|
||
### Phase 16(次フェーズ)
|
||
1. **ABI安定化宣言**
|
||
2. 外部開発者向けドキュメント
|
||
3. 他言語バインディング
|
||
|
||
## 🎯 結論
|
||
|
||
**LLVM完成後の移行が最適**
|
||
|
||
理由:
|
||
1. 現在のTLVベースで機能的問題なし
|
||
2. LLVM完成が最優先(セルフホストへの道)
|
||
3. 最適化知見を活かした設計可能
|
||
4. リスク最小化・効率最大化
|
||
|
||
**ただし準備は今から**:
|
||
- ドキュメント整理(完了✅)
|
||
- 設計詳細化
|
||
- テスト準備
|
||
- 移行計画策定
|
||
|
||
これにより、LLVM完成後にスムーズに移行開始できる。 |