nyash-codex
edb3ace102
feat(phase21.5): selfhost-first bring-up infrastructure
## Task 1: Child Process stderr Capture ✅
- Fix: Child process now captures stderr (2>&1 instead of 2>/dev/null)
- Added: Detailed failure logs with last 80 lines on error
- Tags: [builder/selfhost-first:fail:child:rc=N] and [fail:no-ok-marker]
- Location: tools/hakorune_emit_mir.sh:try_selfhost_builder()
## Task 2: Builder Box Parameterization + Min Fallback ✅
- Added: HAKO_MIR_BUILDER_BOX env var (default: hako.mir.builder)
- Added: HAKO_SELFHOST_TRY_MIN=1 for automatic min builder fallback
- Location: tools/hakorune_emit_mir.sh
- Benefit: Isolate using resolution vs implementation issues
## Task 3: Loop Minimal Semantics Verification ✅
- Verified: PHI/increment/backedge implementation is correct
- Structure: entry(0) → loop(1) → body(2) → exit(3)
- PHI: i = {i0, entry} | {i_next, body}
- Location: lang/src/mir/builder/internal/loop_opts_adapter_box.hako
## Task 4: Using Resolution Diagnostics ✅
- Added: [mirbuilder/entry:build] debug tag at builder entry
- Added: HAKO_MIR_BUILDER_TRACE propagation
- Location: lang/src/mir/builder/MirBuilderBox.hako
- Benefit: Pinpoint whether using resolution succeeds
## Task 5: EXE Canary Strict Validation ✅
- Changed: Now requires exact rc=10 (loop limit value)
- Added: LLVM IR dump on failure (first 120 lines)
- Location: tools/smokes/v2/profiles/quick/core/phase2100/stageb_loop_jsonfrag_crate_exe_canary_vm.sh
## Environment Variables
New:
- HAKO_MIR_BUILDER_BOX (default: hako.mir.builder)
- HAKO_SELFHOST_TRY_MIN (default: 0)
Enhanced:
- HAKO_SELFHOST_TRACE → HAKO_MIR_BUILDER_TRACE propagation
- HAKO_SELFHOST_NO_DELEGATE → Better diagnostics
## Implementation Principles
- 既定挙動不変 (Default unchanged)
- Dev toggle guarded (all new features)
- Minimal diff, surgical changes
- Fail-fast with clear diagnostics
- Easy rollback via env vars
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-11 09:54:27 +09:00
..
2025-11-08 15:49:25 +09:00
2025-11-06 15:41:52 +09:00
2025-11-08 15:49:25 +09:00
2025-11-08 15:49:25 +09:00
2025-11-11 09:54:27 +09:00
2025-11-02 18:22:15 +09:00