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

30 lines
1.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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`