Files
hakorune/docs/private/roadmap/phases/phase-20.14/RUST_MINIMIZATION_ANALYSIS.md

6.5 KiB
Raw Blame History

Rust最小化ポテンシャル分析 - Phase 20.14

📊 現状のRustコード規模

全体統計

  • 総行数: 115,632 行 (818ファイル)
  • 主要モジュール内訳:
    • src/mir/: 25,560 行 (22.1%)
    • src/backend/: 16,281 行 (14.1%)
    • src/parser/: 7,304 行 (6.3%)
    • src/backend/llvm/: 6,551 行 (5.7%)
    • src/backend/mir_interpreter/: 5,511 行 (4.8%)
    • crates/: 5,901 行 (5.1%)
115,632 行
├─ MIR関連 (26.9%)      31,071 行
├─ Backend全般 (14.1%)  16,281 行  
├─ Parser (6.3%)        7,304 行
├─ LLVM Backend (5.7%)  6,551 行
├─ MIR Interpreter (4.8%) 5,511 行
├─ Crates (5.1%)        5,901 行
└─ その他 (37.1%)       42,914 行

🎯 Phase 20.14 最小化戦略

削減可能性マトリックス

モジュール 現状LOC Phase 20.14目標 削減可能性 備考
Parser 7,304 0 100% Hakorune実装Parserに完全移行
MIR Builder ~20,000 5,000 75% CABIブリッジのみ保持
LLVM Backend 6,551 2,000 69% Python/llvmlite活用で大幅削減
VM Core 5,511 3,000 45% Hakorune VMに委譲、カーネル保持
Box実装 ~15,000 8,000 47% Core Boxのみ保持
Plugin System ~8,000 3,000 63% Hakorune Plugin Managerに移行
CLI/Frontend ~5,000 500 90% Frontend EXEに完全移行
Testing/Utils ~10,000 2,000 80% 最小限のテストツール保持
CABI Kernel 0 8,000 新規 新設、必須

主要移行パターン

🏃‍♂️ Full Replacement (95-100%削減)

src/parser/ (7,304行)
  ↓ 置換
lang/src/tools/parser_front/ (Hakorune実装)

src/cli/ frontend部分 (2,000行)  
  ↓ 置換
lang/src/tools/{runner,loader,vm}_front/ (Phase 20.13継承)

🔄 Partial Migration (50-80%削減)

src/backend/mir_interpreter/ (5,511行)
  ↓ 委譲
Hakorune VM + CABI Kernelブリッジ (2,500行)

src/backend/llvm/ (6,551行)
  ↓ 統合
Python/llvmlite + 最小C FFI (2,000行)

💾 Essential Only (20-40%保持)

src/mir/ coreのみ (25,560 → 8,000行)
  ↓ 保持
MIR定義、CABIマッピング、基本検証

src/box実装 (15,000 → 8,000行)  
  ↓ 保持
Core Box、TypeBox、ValueBox (最小必須)

🎯 最小化目標予測

最終目標シナリオ

🔥 Aggressive Minimization (Phase 20.14)

開始: 115,632 行
────────────────────────────
Parser完全削除:        -7,304 行
MIR Builder大幅削減:   -15,000 行  
LLVM Backend削減:      -4,551 行
VM Core委譲:          -2,511 行
Box実装削減:          -7,000 行
Plugin移行:           -5,000 行
CLI/Frontend削減:      -4,500 行
Testing/Utils削減:     -8,000 行
────────────────────────────
新規CABI Kernel:      +8,000 行
Frontend EXE拡張:      +2,000 行
────────────────────────────
結果: **36,231 行** (68.7%削減) ⭐

Ultra Minimization (Phase 20.15予測)

Phase 20.14からさらに:
残存MIR削減:          -4,000 行
VM Core最適化:        -1,500 行  
Box実装最適化:         -2,000 行
────────────────────────────
結果: **28,731 行** (75.2%削減) 🚀

📈 削減ポテンシャル可視化

Rust LOC推移予測:
Phase 20.13: 115,632 行 ━━━━━━━━━━━━━━━━━━━━━━━ 100%
Phase 20.14:  36,231 行 ━━━━━━━━━━━ 31.3%
Phase 20.15:  28,731 行 ━━━━━━━━━ 24.8%

モジュール別削減可視化

Parser:        7,304 ───► 0         (100% 削減) ▓▓▓▓▓▓▓▓▓▓
MIR Builder:  20,000 ───► 5,000     (75%  削減) ▓▓▓▓▓▓▓▓
LLVM:          6,551 ───► 2,000     (69%  削減) ▓▓▓▓▓▓
VM Core:       5,511 ───► 3,000     (45%  削減) ▓▓▓▓
Box実装:      15,000 ───► 8,000     (47%  削減) ▓▓▓▓▓
CLI/Frontend:  5,000 ───► 500       (90%  削減) ▓▓▓▓▓▓▓▓▓

🎯 技術的実現可能性

高実現可能性 (90%+)

  • Parser削除: Hakorune実装Parser既存 (Phase 15.7)
  • Frontend移行: Phase 20.13 EXE基盤完成
  • CLI削減: Frontend EXEで完全代替可能

中実現可能性 (70-90%)

  • MIR Builder削減: CABIブリッジ技術確立
  • LLVM Backend削減: Python/llvmlite実績あり
  • Plugin移行: Hakorune Plugin Manager設計済み

🔥 挑戦的実現 (50-70%)

  • VM Core委譲: Hakorune VMとの連携複雑度
  • Box実装削減: Core vs Fullのバランス
  • Testing削減: 最小限テスト範囲の定義

📊 成功指標

Phase 20.14完了時目標

  • Rust LOC: 35,000-40,000行 (68-70%削減)
  • Compilation Time: 30-50%削減
  • Binary Size: 40-60%削除
  • Performance: ±10%以内維持

最終目標 (Phase 20.15)

  • Rust LOC: 25,000-30,000行 (75-78%削減)
  • Native EXE Size: <5MB
  • Startup Time: <100ms
  • Memory Usage: <50MB

🚨 リスクと緩和策

主要リスク

  1. 性能回帰: Rust削減による実行速度低下
  2. デバッグ困難: 多層アーキテクチャの複雑化
  3. 互換性: 既存Rust API依存の破壊

緩和策

  1. 性能: 事前ベンチマーク + 段階的移行
  2. デバッグ: 統合デバッグパイプライン + 詳細ログ
  3. 互換性: 後方互換レイヤー + 期間限定サポート

💡 結論

Phase 20.14での最小化ポテンシャル

現在: 115,632 行 Rust
目標: 35,000-40,000 行
削減: 68-70% (75,000-80,000行削減) ⭐

事業的インパクト

  • ビルド時間: 半分以下に
  • 配布サイズ: 60%削減
  • 学習コスト: Rust依存大幅削減
  • 保守性: Hakorune一本化で向上

技術的達成の可能性

Phase 20.13の基盤 + Phase 15.7のセルフホスト実績により、**実現可能性80%**と判断。

Phase 20.14での68%削減は現実的目標であり、Phase 20.15での75%最小化も非常に有望にゃ!🐱


分析完了: 2025-10-27
対象: src/ 配下 115,632行 Rustコード
Phase 20.14目標: 35,000-40,000行 (68-70%削減)