Files
hakorune/docs/development/roadmap/phases/phase-10
Moe Charm d67f27f4b8 Phase 10.10: GC Switchable Runtime & Unified Debug System 実装完了
Phase 10.10の主要実装:
- GcConfigBox: GC設定の実行時制御(counting/trace/barrier_strict)
- DebugConfigBox: デバッグ設定の統一管理(JIT events/stats/dump/dot)
- メソッドディスパッチ: system_methods.rsで両Boxのメソッド実装
- CountingGC動作確認: write_barriers正常カウント(VM実行時)

技術的詳細:
- BoxCore/BoxBase統一アーキテクチャを活用
- setFlag/getFlag/apply/summaryメソッドで統一API提供
- 環境変数経由でVM/JITランタイムと連携
- GcConfigBox.apply()は次回実行から有効(ランタイム作成前に環境変数参照)

テスト済み:
- examples/gc_counting_demo.nyash: CountingGCの動作確認
- write_barriers=3でArray.push/set, Map.setを正しくカウント
- NYASH_GC_TRACE=1でGC統計出力確認

Box-First哲学の体現: 設定も制御も観測もすべてBox!

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-28 22:31:51 +09:00
..

Phase 10: JIT実装とセルフホスティング

🎯 Phase 10の全体像

Phase 10は、Nyashの実行性能を大幅に向上させるJIT実装と、言語の成熟度を示すセルフホスティングを実現します。

📊 実装優先順位

1 メイン実装: Cranelift JIT

phase_10_cranelift_jit_backend.md

  • VMとのハイブリッド実行ホットパス検出→JIT化
  • 実装期間: 2-3ヶ月
  • 目標: ホットパスで2倍以上の高速化

🌟 革新的機能: GC切り替え可能ランタイム

phase_10_4_gc_switchable_runtime.md

  • 世界初実行時にGCモード切り替え可能
  • 開発時はGCオンで快適、本番はGCオフで高速
  • 実装期間: 2-3ヶ月Cranelift JIT後
  • 技術的にCodex GPT-5が実現可能性を確認済み

2 並行プロジェクト: セルフホスティング

phase_10_5_core_std_nyash_impl.md

  • String/Array/MapをNyash自身で実装
  • Rust依存の段階的削減
  • 実装期間: 1-2ヶ月

3 実戦テスト: アプリケーション移植

phase_10_app_migration.md

  • Tinyproxy: ゼロコピー判定機能の検証
  • Chip-8エミュレータ: fini伝播とweak参照の実戦テスト
  • kiloエディタ: メモリ効率の「うっかり全体コピー」検出

🚫 延期プロジェクト

Phase 11: LLVM AOT Backend - 将来の研究開発として分離

🛤️ 実装ロードマップ

Phase 9.79b (現在)
    ↓
Phase 10.0: Cranelift JIT基盤構築
    ├→ Phase 10.1-10.3: JIT実装・最適化
    ├→ Phase 10.4: GC切り替え可能ランタイム ← NEW!
    └→ Phase 10.5: セルフホスティング(並行)
    ↓
Phase 10.9: アプリケーション移植で実戦検証
    ↓
Phase 11: LLVM AOT研究将来

📈 期待される成果

  1. 実行性能: インタープリタ比100倍、VM比2-3倍の高速化
  2. 言語成熟度: 基本コンテナのセルフホスティング達成
  3. 実用性検証: 実アプリケーションの移植による実戦テスト

🔗 関連ドキュメント