# 🎯 CURRENT TASK - 2025-08-29(Phase 10.1 革新的転換) Phase 10.10 は完了(DoD確認済)。**重大な発見**:プラグインシステムを活用したJIT→EXE実現の道を発見! ## 🚀 革新的発見:プラグインBox統一化 ### 核心的洞察 - 既存のプラグインシステム(BID-FFI)がすでに**完全なC ABI**を持っている - すべてのBoxをプラグイン化すれば、JIT→EXEが自然に実現可能 - "Everything is Box" → "Everything is Plugin" への進化 ## ⏱️ 今日のサマリ - 発見: プラグインBox経由でのJIT→EXE実現可能性 - 決定: Phase 10.1を「プラグインBox統一化」に変更 - 移動: 旧Phase 10.1(Python統合)→ Phase 10.5へ ## 現在地(Done / Doing / Next) - ✅ Done(Phase 10.10) - GC Switchable Runtime(GcConfigBox)/ Unified Debug(DebugConfigBox) - JitPolicyBox(allowlist/presets)/ HostCallのRO運用(events連携) - CIスモーク導入(runtime/compile-events)/ 代表サンプル整備 - 🔧 Doing(Phase 10.1 新計画) - ArrayBoxのプラグイン化PoC開始 - JIT lowering層の統一設計 - リファクタリング作業は継続(core_hostcall.rs完了) - ⏭️ Next(Phase 10.1 実装) - Week1: ArrayBoxプラグイン化と性能測定 - Week2: 主要ビルトインBoxの移行 - Week3: スタティックリンク基盤構築 - Week4: EXE生成実証 ## リファクタリング計画(機能差分なし) 1) core_hostcall 分割(イベントlower+emit_host_call周辺) - 追加: `src/jit/lower/core_hostcall.rs` - `mod.rs`/`core.rs` のモジュール参照を更新 - 確認: `cargo check` → `bash tools/smoke_phase_10_10.sh` 2) core_ops 分割(算術/比較/分岐) - 追加: `src/jit/lower/core_ops.rs` - CLIF配線やb1正規化カウンタは移動のみ - 確認: `cargo check` → 代表JITデモ2本を手動確認 3) 仕上げ - 1ファイル ~1000行以内目安を満たすこと - ドキュメント差分は最小(本CURRENT_TASKのみ更新) ### DoD(Refactor) - `cargo check` が成功し、`tools/smoke_phase_10_10.sh` がGreen - ログ/イベント出力がリファクタ前と一致(体感差分なし) - `core.rs`/`builder.rs` の行数削減(目安 < 1000) ## Phase 10.1 新計画:プラグインBox統一化 - 参照: `docs/development/roadmap/phases/phase-10.1/` (新計画) - 詳細: `docs/ideas/new-features/2025-08-28-jit-exe-via-plugin-unification.md` - Week1(概要) - ArrayBoxプラグイン実装とテスト - JIT→Plugin呼び出しパス確立 - パフォーマンス測定と最適化 ## Phase 10.5(旧10.1):Python統合 - 参照: `docs/development/roadmap/phases/phase-10.5/` (移動済み) - ChatGPT5の当初計画を後段フェーズへ ## すぐ試せるコマンド(現状維持の確認) ```bash # Build(Cranelift込み推奨) cargo build --release -j32 --features cranelift-jit # Smoke(10.10の代表確認) bash tools/smoke_phase_10_10.sh # HostCall(HH直実行・read-only方針) NYASH_JIT_EXEC=1 NYASH_JIT_THRESHOLD=1 NYASH_JIT_HOSTCALL=1 NYASH_JIT_EVENTS=1 \ ./target/release/nyash --backend vm examples/jit_map_get_param_hh.nyash NYASH_JIT_THRESHOLD=1 NYASH_JIT_HOSTCALL=1 \ ./target/release/nyash --backend vm examples/jit_policy_whitelist_demo.nyash # GC counting(VMパス) ./target/release/nyash --backend vm examples/gc_counting_demo.nyash # compileイベントのみ(必要時) NYASH_JIT_EVENTS_COMPILE=1 NYASH_JIT_HOSTCALL=1 NYASH_JIT_EVENTS_PATH=events.jsonl \ ./target/release/nyash --backend vm examples/jit_map_get_param_hh.nyash ``` ## 参考リンク - Phase 10.1(新): `docs/development/roadmap/phases/phase-10.1/README.md` - プラグインBox統一化 - Phase 10.5(旧10.1): `docs/development/roadmap/phases/phase-10.5/README.md` - Python統合 - Phase 10.10: `docs/development/roadmap/phases/phase-10/phase_10_10/README.md` - プラグインAPI: `src/bid/plugin_api.rs` - MIR命令セット: `docs/reference/mir/INSTRUCTION_SET.md` ## Checkpoint(再起動用メモ) - 状態確認: `git status` / `git log --oneline -3` / `cargo check` - スモーク: `bash tools/smoke_phase_10_10.sh` - 次の一手: core_hostcall → core_ops の順に分割、毎回ビルド/スモークで確認