feat(joinir): FuncScannerBox.trim/1 JoinIR VM Bridge A/B test
Phase 30.x: JoinIR VM Bridge でPHI問題を設計で解決できることを実証 変更内容: - src/runner/modes/vm.rs: FuncScannerBox.trim/1 検出時にJoinIR経由実行 - src/mir/join_ir_vm_bridge.rs: Non-tail call サポート追加 - dst=Some(id) の場合、結果を格納して次の命令へ継続 - src/tests/joinir_vm_bridge_trim.rs: A/Bテスト新規作成 - メインテスト: Route A (VM) → "void" (PHI bug), Route C (JoinIR) → "abc" ✅ - エッジケース: 5パターン全てPASS - src/config/env.rs: joinir_vm_bridge_debug() 追加 - docs: Phase 30 TASKS.md に L-0.4 追加 テスト結果: Route A (MIR→VM直接): "void" ← PHI バグ Route C (MIR→JoinIR→VM): "abc" ← 正解 ✅ 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@ -189,6 +189,26 @@ pub fn fail_fast() -> bool {
|
||||
env_bool_default("NYASH_FAIL_FAST", true)
|
||||
}
|
||||
|
||||
// ---- Phase 29/30 JoinIR toggles ----
|
||||
/// JoinIR experiment mode. Required for JoinIR-related experimental paths.
|
||||
/// Set NYASH_JOINIR_EXPERIMENT=1 to enable.
|
||||
pub fn joinir_experiment_enabled() -> bool {
|
||||
env_bool("NYASH_JOINIR_EXPERIMENT")
|
||||
}
|
||||
|
||||
/// JoinIR VM bridge mode. When enabled with NYASH_JOINIR_EXPERIMENT=1,
|
||||
/// specific functions can be executed via JoinIR → VM bridge instead of direct MIR → VM.
|
||||
/// Set NYASH_JOINIR_VM_BRIDGE=1 to enable.
|
||||
pub fn joinir_vm_bridge_enabled() -> bool {
|
||||
env_bool("NYASH_JOINIR_VM_BRIDGE")
|
||||
}
|
||||
|
||||
/// JoinIR VM bridge debug output. Enables verbose logging of JoinIR→MIR conversion.
|
||||
/// Set NYASH_JOINIR_VM_BRIDGE_DEBUG=1 to enable.
|
||||
pub fn joinir_vm_bridge_debug() -> bool {
|
||||
env_bool("NYASH_JOINIR_VM_BRIDGE_DEBUG")
|
||||
}
|
||||
|
||||
// VM legacy by-name call fallback was removed (Phase 2 complete).
|
||||
|
||||
// ---- Phase 11.8 MIR cleanup toggles ----
|
||||
|
||||
Reference in New Issue
Block a user