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>
This commit is contained in:
nyash-codex
2025-11-10 19:42:42 +09:00
parent fc5706e3f2
commit 6055d53eff
135 changed files with 3983 additions and 1150 deletions

View File

@ -824,3 +824,21 @@ verify_v1_inline_file() {
fi
return 1
}
# Dev profile helpers (centralize bring-up toggles for MirBuilder)
# Usage: call enable_mirbuilder_dev_env in canaries that need it.
enable_mirbuilder_dev_env() {
# Avoid ny-compiler inline path during VM bring-up
export NYASH_USE_NY_COMPILER=0
# Allow FileBox provider fallback (dev only)
export NYASH_FAIL_FAST=${NYASH_FAIL_FAST:-0}
# Enable using resolution in VM
export NYASH_ENABLE_USING=1
export HAKO_ENABLE_USING=1
# Allow file-based using in dev (e.g., using "hako.mir.builder")
export NYASH_ALLOW_USING_FILE=1
export HAKO_ALLOW_USING_FILE=1
# Optional: preinclude heavy using segments for legacy/prelude-heavy paths (default OFF)
if [ "${SMOKES_DEV_PREINCLUDE:-0}" = "1" ]; then
export HAKO_PREINCLUDE=1
fi
}