Files
hakorune/docs/development/strategies/builtin-box-removal-strategy.md
Selfhosting Dev 6755d9bde1 feat: Phase 2.4完全検証完了 - NyKernel変革と151MB削減成功
 Phase 2.4 NyRT→NyKernel変革完了
- libnyash_kernel.a作成・全参照更新
- Plugin-First Architecture完全動作
- Handle registry/GC正常動作

 151MB レガシーコード削減達成
- plugin_box_legacy.rs削除(7,757バイト)
- venv/ディレクトリ削除(143MB)
- llvm_legacy/アーカイブ化

 ExternCall print修正(codex貢献)
- Unicode/絵文字完全サポート
- 日本語出力正常動作確認

 包括的スモークテスト追加
- 7セクション、12テスト実装
- VM/LLVM/Plugin/Stress全カバー
- 9/12テスト合格(75%成功率)

📋 既知の問題
- LLVMハーネス出力キャプチャ(実行は正常)
- mir15_smoke.sh(JIT削除により予期される失敗)

🎯 次のステップ
- Phase 15.5 Everything is Plugin準備
- BuiltinBoxFactory段階的削除

🤖 Generated with Claude Code
Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-24 14:30:39 +09:00

2.4 KiB
Raw Blame History

BuiltinBoxFactory段階削除戦略

Phase 15.5 "Everything is Plugin" への道 作成日: 2025-09-24 戦略者: codex

🎯 目標

BuiltinBoxFactoryとbuiltin_impls/を安全に段階削除し、すべてをプラグインに移行する。

📊 現状分析

削除対象

  • src/box_factory/builtin.rs: BuiltinBoxFactory実装
  • src/box_factory/builtin_impls/: 8ファイル、32KB
    • string_box.rs
    • integer_box.rs
    • bool_box.rs
    • array_box.rs
    • map_box.rs
    • console_box.rs
    • null_box.rs
    • mod.rs

参照箇所

  • src/runtime/unified_registry.rs: BuiltinBoxFactory登録2箇所
  • src/runtime/nyash_runtime.rs: BuiltinBoxFactory登録1箇所

🚀 段階削除戦略

Phase 1: 機能ゲート厳格化(現在)

// 現状plugins-onlyでのみ無効化
#[cfg(not(feature = "plugins-only"))]
{
    registry.register(Arc::new(BuiltinBoxFactory::new()));
}

Phase 2: Opt-in化次回

// 将来builtin-coreでのみ有効化
#[cfg(feature = "builtin-core")]
{
    registry.register(Arc::new(BuiltinBoxFactory::new()));
}

Phase 3: 個別Box削除順序

  1. StringBox: プラグイン版が安定動作確認後
  2. IntegerBox: 同上
  3. BoolBox: シンプルなので早期削除可
  4. ArrayBox: 依存関係確認後
  5. MapBox: 最後に削除
  6. ConsoleBox: print依存の最後
  7. NullBox: 影響最小、いつでも削除可

検証項目(各段階)

ビルド検証

cargo check --features llvm
cargo check --features plugins-only

スモークテスト

# プラグインで基本動作確認
./target/release/nyash test_plugin_basic.nyash

# LLVM EXEでprint出力確認
NYASH_LLVM_USE_HARNESS=1 ./target/release/nyash --backend llvm test.nyash

🛡️ ロールバック戦略

各削除は別ブランチで実施:

  • cleanup/builtin-string
  • cleanup/builtin-integer

失敗時は該当ブランチをrevertするだけで復帰可能。

🏁 完了条件

  1. builtin_impls/ディレクトリ削除
  2. BuiltinBoxFactory削除
  3. すべてのBoxがプラグイン経由で動作
  4. CI全緑確認

📅 タイムライン

  • Phase 1: 完了2025-09-24
  • Phase 2: 機能フラグ反転(次回作業)
  • Phase 3: 個別Box削除1週間程度
  • 完了予定: Phase 15.5完了時