- core_hostcall.rs: HostCall関連のlowering処理を分離(array_get/array_set/box_call) - 1000行制限を守るための構造整理(機能差分なし) - ChatGPT5によるAI協調開発対応のリファクタリング 変更内容: - src/jit/lower/core_hostcall.rs を新規追加 - src/jit/lower/mod.rs にモジュール追加 - ビルドとスモークテスト確認済み
3.7 KiB
3.7 KiB
🎯 CURRENT TASK - 2025-08-29(Phase 10.1 キックオフ+リファクタ)
Phase 10.10 は完了(DoD確認済)。Phase 10.1 に入る前に、JIT Lower 周辺の分割リファクタを小刻みに完了させ、スモークを維持したまま移行します。
⏱️ 今日のサマリ
- 目的: 10.1 着手前のリファクタ(機能差分なし)を完了し、Week1を開始する。
- スコープ:
src/jit/lower/core.rs / builder.rsの整理のみ。挙動変更なし、ビルドとスモークは常にGreenを維持。
現在地(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(Refactor before 10.1)
extern_thunks.rs抽出済(builder →src/jit/lower/extern_thunks.rs)cfg_dot.rs抽出済(core →src/jit/lower/cfg_dot.rs)
- ⏭️ Next(Phase 10.1 Kickoff)
- Week1開始(Python統合の環境・入り口整備)
- 10.10の回帰はCIスモークで継続監視
リファクタリング計画(機能差分なし)
- 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
- 追加:
- core_ops 分割(算術/比較/分岐)
- 追加:
src/jit/lower/core_ops.rs - CLIF配線やb1正規化カウンタは移動のみ
- 確認:
cargo check→ 代表JITデモ2本を手動確認
- 追加:
- 仕上げ
- 1ファイル ~1000行以内目安を満たすこと
- ドキュメント差分は最小(本CURRENT_TASKのみ更新)
DoD(Refactor)
cargo checkが成功し、tools/smoke_phase_10_10.shがGreen- ログ/イベント出力がリファクタ前と一致(体感差分なし)
core.rs/builder.rsの行数削減(目安 < 1000)
Phase 10.1 キックオフ
- 参照:
docs/development/roadmap/phases/phase-10.1/ - Week1(概要)
- 10.1a: 計画再確認(I/O境界・GIL/FFI方針)
- 10.1b: 環境設定(最小ブリッジ・検証手順)
- 10.1c: パーサー統合の入口作成(Box-Firstで薄く)
- 10.1d: Core最小経路(Phase 1機能)
すぐ試せるコマンド(現状維持の確認)
# 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 - Phase 10.10:
docs/development/roadmap/phases/phase-10/phase_10_10/README.md - 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 の順に分割、毎回ビルド/スモークで確認