## Task 2: BoxCall Emission Fix ✅ - Fix: --emit-mir-json now properly emits boxcall for method calls when NYASH_MIR_UNIFIED_CALL=0 - Root cause: v0 format fallback wasn't inspecting Callee::Method enum - Implementation: Added proper v0 boxcall emission with dst_type hints - Location: src/runner/mir_json_emit.rs:329-368 - Preserves: All default behavior, only affects explicit NYASH_MIR_UNIFIED_CALL=0 ## Task 4: Documentation Updates ✅ - Added: selfhost_exe_stageb_quick_guide.md (comprehensive usage guide) - Added: selfhost_exe_stageb_verification_report.md (test results) - Updated: tools/selfhost_exe_stageb.sh with prerequisite comments - Documented: EXE test timeout recommendations (--timeout 120) - Documented: NYASH_EXE_ARGV=1 usage with ensure_ny_main/argv_get - Added: Phase 2034 emit_boxcall_length canary test ## Implementation Principles - 既定挙動不変 (Default behavior unchanged) - 最小差分 (Minimal diff) - ロールバック容易 (Easy rollback via clear else-if block) - Dev toggle guarded (NYASH_MIR_UNIFIED_CALL=0 explicit activation) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
Smokes v2 — Minimal Runner and Policy
Policy
- Use [SKIP:] prefix for environment/host dependent skips.
- Examples: [SKIP] hakorune not built, [SKIP:env] plugin path missing
- Keep reasons short and stable to allow grep-based canaries.
- Prefer JSON-only output in CI: set
NYASH_JSON_ONLY=1to avoid noisy logs. - Diagnostics lines like
[provider/select:*]are filtered by default inlib/test_runner.sh.
Helpers
tools/smokes/v2/lib/mir_canary.shprovides:extract_mir_from_output— between [MIR_BEGIN]/[MIR_END]assert_has_tokens,assert_skip_tag,assert_order,assert_token_count
tools/lib/canary.shprovides minimal, harness-agnostic aliases:extract_mir_between_tags— same asextract_mir_from_outputrequire_tokens token...— fail if any token missing
Notes
- Avoid running heavy integration smokes in CI by default. Use
--profile quick. - When a test depends on external tools (e.g., LLVM), prefer
[SKIP:<reason>]over failure.
Quick tips
- EXE-heavy cases (e.g.,
phase2100/*) may take longer. When running quick with these tests, pass a larger timeout like--timeout 120. - Smokes v2 auto-cleans temporary crate EXE objects created under
/tmp(pattern:ny_crate_backend_exe_*.o) after the run.