Files
hakorune/src/mir/join_ir_vm_bridge_dispatch
nyash-codex 7c68f710d3 feat(joinir): Phase 184 If lowering mainline & JOINIR_IF_TARGETS
Establish If lowering infrastructure with dedicated JOINIR_IF_TARGETS
table, separate from loop lowering (JOINIR_TARGETS).

Implementation:
- Add JOINIR_IF_TARGETS table with 6 representative functions
- Add is_if_lowered_function() for table-based lookup
- Update is_if_mainline_target() to use table (SSOT)
- Update is_joinir_if_toplevel_target() with table-first lookup
- Export via join_ir_vm_bridge_dispatch public API

Representative functions:
- IfSelectTest.test/1 (simple return pattern)
- IfSelectLocalTest.main/0 (local variable pattern)
- IfMergeTest.simple_true/0, simple_false/0 (multiple variables)
- JsonShapeToMap._read_value_from_pair/1 (Stage-1 production)
- Stage1JsonScannerBox.value_start_after_key_pos/2 (Stage-B production)

Architecture: Loop/If separation complete (1関数につき1 lowering)

Verification: All representative paths pass with NYASH_JOINIR_DEBUG=1

Phase 184 complete → Phase 185+ ready

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-04 21:58:45 +09:00
..

JoinIR VM Bridge Dispatch

Purpose:

  • Centralize JoinIR→VM routing away from the VM runner.
  • Table-driven mapping of MIR function names to JoinIR lowering/exec behavior.
  • Keep Exec vs LowerOnly paths explicit and opt-in via env flags or defaults.

Layout:

  • mod.rs: public entry (try_run_joinir_vm_bridge) + shared routing glue
  • env_flags.rs: env flag evaluation (NYASH_JOINIR_EXPERIMENT, NYASH_JOINIR_VM_BRIDGE)
  • targets.rs: descriptor table (JOINIR_TARGETS, JoinIrBridgeKind, JoinIrTargetDesc)
  • exec_routes.rs: Exec-capable routes (skip_ws, trim)
  • lower_only_routes.rs: LowerOnly routes (Stage1/StageB) for structural verification only