Files
hakorune/docs/archive/phases/phase-15/implementation/abi-migration-timing.md

117 lines
3.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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.5LLVM完成直後
1. **ABI拡張実装**
- create/destroy追加
- struct_size活用
- 互換性維持
2. **プラグイン移行**
- 性能重要なものから
- 段階的に対応
3. **パフォーマンス検証**
### Phase 16次フェーズ
1. **ABI安定化宣言**
2. 外部開発者向けドキュメント
3. 他言語バインディング
## 🎯 結論
**LLVM完成後の移行が最適**
理由:
1. 現在のTLVベースで機能的問題なし
2. LLVM完成が最優先セルフホストへの道
3. 最適化知見を活かした設計可能
4. リスク最小化・効率最大化
**ただし準備は今から**
- ドキュメント整理(完了✅)
- 設計詳細化
- テスト準備
- 移行計画策定
これにより、LLVM完成後にスムーズに移行開始できる。