- TypeBox ABI雛形: メソッドスロット管理システム追加 - Type Registry: Array/Map/StringBoxの基本メソッド定義 - Host API: C ABI逆呼び出しシステム実装 - Phase 12ドキュメント整理: 設計文書統合・アーカイブ化 - MIR Builder: クリーンアップと分離実装完了 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
5.5 KiB
5.5 KiB
Phase 12: 統一TypeBox ABI - 実装ロードマップ
🎯 概要
このドキュメントは、統一TypeBox ABIの実装を段階的に進めるための詳細なロードマップです。
📅 タイムライン
2025年9月(Week 1-2): 基礎実装
2025年9月(Week 3-4): 最適化・性能向上
2025年10月(Week 1-2): 移行ツール・互換性
2025年10月(Week 3-4): 完全移行・テスト
2025年11月:リリース準備
🚀 Phase 12.0: 基礎実装(Week 1-2)
Week 1: コア構造体とAPI
タスク
-
include/nyash/typebox.hヘッダー定義- NyashTypeBox構造体
- NyBoxHeader構造体
- NyValue統一表現
- 基本的なヘルパーマクロ
-
src/runtime/typebox_registry.rs実装- Type ID管理システム
- register_user_box基本実装
- メソッドテーブル管理
-
基本的なテストケース
- ユーザーBox登録テスト
- メソッド呼び出しテスト
- 参照カウントテスト
成果物
- 動作する最小限のTypeBox登録・呼び出し
- ドキュメント化されたAPI
Week 2: 互換レイヤー
タスク
-
既存C ABIとの互換レイヤー
- 旧形式→TypeBox自動変換
- フォールバックメカニズム
- 警告・移行推奨メッセージ
-
主要プラグインの動作確認
- FileBox
- StringBox
- MapBox
- ArrayBox
成果物
- 既存プラグインが新システムで動作
- 移行ガイドの初版
⚡ Phase 12.1: 最適化(Week 3-4)
Week 3: メソッドID最適化
タスク
-
メソッド名→ID解決システム
- ハッシュテーブル実装
- スロット割り当てアルゴリズム
- キャッシュ機構
-
パフォーマンス測定
- ベンチマークスイート作成
- 旧方式との比較測定
- ボトルネック分析
成果物
- 10倍以上の高速化を確認
- パフォーマンスレポート
Week 4: JIT/AOT統合
タスク
-
インラインキャッシング基礎
- Monomorphic IC実装
- キャッシュヒット率測定
- Deoptimizationフック
-
JIT統合準備
- メソッドポインタ直接呼び出し
- 型情報の静的解析連携
- AOT向け最適化ヒント
成果物
- IC有効時30倍高速化を達成
- JIT統合設計書
🔄 Phase 12.2: 移行ツール(Week 5-6)
Week 5: ツール開発
タスク
-
ny-abi-genコード生成ツール- Cヘッダーからの自動生成
- nyash.toml更新機能
- ドキュメント生成
-
ny-abi-check検証ツール- ABI互換性チェック
- 署名検証
- セキュリティ監査
成果物
- 使いやすい移行ツール群
- 自動化されたCI/CDパイプライン
Week 6: プラグイン移行
タスク
-
コアプラグインの移行
- すべてのビルトインBoxをTypeBox化
- サードパーティプラグインサポート
- 移行スクリプト提供
-
ドキュメント整備
- 移行ガイド完成版
- APIリファレンス
- サンプルコード集
成果物
- 90%以上のプラグインが新ABI対応
- 完全なドキュメント
✅ Phase 12.3: 完全移行(Week 7-8)
Week 7: 統合テスト
タスク
-
エンドツーエンドテスト
- 実アプリケーションでの動作確認
- パフォーマンス回帰テスト
- メモリリークチェック
-
セキュリティ監査
- Wasmサンドボックステスト
- 権限管理システム検証
- ファジングテスト
成果物
- グリーンなテストスイート
- セキュリティレポート
Week 8: リリース準備
タスク
-
最終調整
- パフォーマンスチューニング
- メモリ使用量最適化
- エラーメッセージ改善
-
リリース準備
- CHANGELOG作成
- アップグレードガイド
- ブログ記事・アナウンス
成果物
- リリース候補版
- 完全なリリースノート
📊 成功指標
パフォーマンス
- メソッド呼び出し: 50倍高速化(目標)
- メモリ使用量: 現状維持または改善
- 起動時間: 10%以内の増加
互換性
- 既存プラグイン: 100%動作
- 新規API採用率: 80%以上
- 移行完了率: 90%以上
品質
- テストカバレッジ: 90%以上
- ドキュメント完成度: 100%
- バグ報告: クリティカル0件
🚨 リスクと対策
技術的リスク
- ABI破壊的変更: 段階的移行と互換レイヤーで対応
- パフォーマンス劣化: 継続的なベンチマークで早期発見
- メモリリーク: 自動テストとValgrind検証
スケジュールリスク
- 遅延: 2週間のバッファを確保
- スコープクリープ: 機能は段階的リリース
- リソース不足: コミュニティ協力を促進
🎯 次のステップ
- このロードマップのレビューと承認
- Week 1タスクの詳細化
- 開発環境のセットアップ
- キックオフミーティング