Files
hakorune/docs/development/roadmap/phases/phase-25.1/span-trace.md
nyash-codex 51ff558904 feat(phase32): L-2.1 Stage-1 UsingResolver JoinIR integration + cleanup
Phase 32 L-2.1 complete implementation:

1. Stage-1 UsingResolver main line JoinIR connection
   - CFG-based LoopForm construction for resolve_for_source/5
   - LoopToJoinLowerer integration with handwritten fallback
   - JSON snapshot tests 6/6 PASS

2. JoinIR/VM Bridge improvements
   - Simplified join_ir_vm_bridge.rs dispatch logic
   - Enhanced json.rs serialization
   - PHI core boxes cleanup (local_scope_inspector, loop_exit_liveness, loop_var_classifier)

3. Stage-1 CLI enhancements
   - Extended args.rs, groups.rs, mod.rs for new options
   - Improved stage1_bridge module (args, env, mod)
   - Updated stage1_cli.hako

4. MIR builder cleanup
   - Simplified if_form.rs control flow
   - Removed dead code from loop_builder.rs
   - Enhanced phi_merge.rs

5. Runner module updates
   - json_v0_bridge/lowering.rs improvements
   - dispatch.rs, selfhost.rs, modes/vm.rs cleanup

6. Documentation updates
   - CURRENT_TASK.md, AGENTS.md
   - Various docs/ updates

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-26 10:17:37 +09:00

989 B
Raw Blame History

Phase 25.1 — Span Trace Mini Note

  • 方針: MIR 命令に AST Span を持たせ、VMError (StepBudgetExceeded) で fn/bb/inst に加えて .hako 行番号を出す。
  • 実装: MirInstruction 生成時に current_span を保存し、VM 側で last_inst_idx から Span を引いてエラーに埋め込む。Span が無い場合は従来どおり fn/bb/inst のみ。
  • 状態: Stage1 CLI の MIR には Span 未付与なので行番号はまだ出ていないが、Span 付き MIR なら ... (file.hako:line:col) まで表示できる。
  • ダンプ: RUST_MIR_DUMP_PATH=/tmp/foo.mir を指定すると、VM 実行前の MirModule をファイルに出力できる(--dump-mir のファイル版。Stage1/StageB 経路でも共通で使う想定。
  • JSON v0 経路: json_v0_bridge::maybe_dump_mir が Program(JSON v0)→MIR 直後に動くので、Span が付いていればそこで観測できるAST 直通の MirPrinter dump では Span 表示なし)。