Files
hakorune/tools/smokes/v2/README.md
nyash-codex 6055d53eff feat(phase21.5/22.1): MirBuilder JsonFrag refactor + FileBox ring-1 + registry tests
Phase 21.5 (AOT/LLVM Optimization Prep)
- FileBox ring-1 (core-ro) provider: priority=-100, always available, no panic path
  - src/runner/modes/common_util/provider_registry.rs: CoreRoFileProviderFactory
  - Auto-registers at startup, eliminates fallback panic structurally
- StringBox fast path prototypes (length/size optimization)
- Performance benchmarks (C/Python/Hako comparison baseline)

Phase 22.1 (JsonFrag Unification)
- JsonFrag.last_index_of_from() for backward search (VM fallback)
- Replace hand-written lastIndexOf in lower_loop_sum_bc_box.hako
- SentinelExtractorBox for Break/Continue pattern extraction

MirBuilder Refactor (Box → JsonFrag Migration)
- 20+ lower_*_box.hako: Box-heavy → JsonFrag text assembly
- MirBuilderMinBox: lightweight using set for dev env
- Registry-only fast path with [registry:*] tag observation
- pattern_util_box.hako: enhanced pattern matching

Dev Environment & Testing
- Dev toggles: SMOKES_DEV_PREINCLUDE=1 (point-enable), HAKO_MIR_BUILDER_SKIP_LOOPS=1
- phase2160: registry opt-in tests (array/map get/set/push/len) - content verification
- phase2034: rc-dependent → token grep (grep -F based validation)
- run_quick.sh: fast smoke testing harness
- ENV documentation: docs/ENV_VARS.md

Test Results
 quick phase2034: ALL GREEN (MirBuilder internal patterns)
 registry phase2160: ALL GREEN (array/map get/set/push/len)
 rc-dependent tests → content token verification complete
 PREINCLUDE policy: default OFF, point-enable only where needed

Technical Notes
- No INCLUDE by default (maintain minimalism)
- FAIL_FAST=0 in Bring-up contexts only (explicit dev toggles)
- Tag-based route observation ([mirbuilder/min:*], [registry:*])
- MIR structure validation (not just rc parity)

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-10 19:42:42 +09:00

1.2 KiB
Raw Blame History

Smokes v2 — Quick vs Optional

Purpose

  • Keep an alwayson, fast “quick” subset to sanitycheck core paths every time.
  • Keep broader/experimental/hostdependent reps as optional, SKIPguarded.

Alwayson (quick)

  • Runner: tools/smokes/v2/run_quick.sh
  • Includes:
    • Core crate/native reps (phase2100/run_all.sh) — SKIP when unavailable
    • StageB Program(JSON) shape (phase2160: stageb_* canaries)
    • loop_scan minimal canaries (!=' + else Break/Continue)

Optional (perphase)

  • Richer/experimental reps remain under profiles/quick/core/phase*/run_all.sh and individual canaries.
  • Examples:
    • registry_* tag observation canaries (structure only)
    • program_to_mir_exe_* (host/tooling dependent, SKIPguarded)

Conventions

  • 3state outcomes: PASS / SKIP / FAILFAIL should be rare and intentional
  • SKIP guards are preferred over brittle environment assumptions.
  • Add light canaries first; escalate to run_all only when stable and fast.

Usage

  • Run quick set: bash tools/smokes/v2/run_quick.sh
  • Run a phase: bash tools/smokes/v2/profiles/quick/core/<phase>/run_all.sh
  • Run a single canary: bash tools/smokes/v2/profiles/quick/core/<phase>/<name>_canary_vm.sh