Files
hakorune/docs/development/roadmap/phases/phase-12/IMPLEMENTATION_ROADMAP.md
Moe Charm 53d88157aa Phase 12: 統一TypeBox ABI実装開始 - ChatGPT5による極小コアABI基盤構築
- 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>
2025-09-03 05:04:56 +09:00

5.5 KiB
Raw Blame History

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週間のバッファを確保
  • スコープクリープ: 機能は段階的リリース
  • リソース不足: コミュニティ協力を促進

🎯 次のステップ

  1. このロードマップのレビューと承認
  2. Week 1タスクの詳細化
  3. 開発環境のセットアップ
  4. キックオフミーティング

📚 参照