Files
hakorune/tools/dev/enable_mirbuilder_dev_env.sh
nyash-codex dda65b94b7 Phase 21.7 normalization: optimization pre-work + bench harness expansion
- Add opt-in optimizations (defaults OFF)
  - Ret purity verifier: NYASH_VERIFY_RET_PURITY=1
  - strlen FAST enhancement for const handles
  - FAST_INT gate for same-BB SSA optimization
  - length cache for string literals in llvmlite
- Expand bench harness (tools/perf/microbench.sh)
  - Add branch/call/stringchain/arraymap/chip8/kilo cases
  - Auto-calculate ratio vs C reference
  - Document in benchmarks/README.md
- Compiler health improvements
  - Unify PHI insertion to insert_phi_at_head()
  - Add NYASH_LLVM_SKIP_BUILD=1 for build reuse
- Runtime & safety enhancements
  - Clarify Rust/Hako ownership boundaries
  - Strengthen receiver localization (LocalSSA/pin/after-PHIs)
  - Stop excessive PluginInvoke→BoxCall rewrites
- Update CURRENT_TASK.md, docs, and canaries

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-13 16:40:58 +09:00

44 lines
2.4 KiB
Bash
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.

#!/usr/bin/env bash
# enable_mirbuilder_dev_env.sh — Dev profile for Hakorune MirBuilder (selfhost-first)
# Usage: source tools/dev/enable_mirbuilder_dev_env.sh [quiet]
#
# Exports a recommended set of env toggles to develop via Hakorune scripts
# without rebuilding Rust frequently. Defaults keep logs quiet.
export HAKO_SELFHOST_BUILDER_FIRST=${HAKO_SELFHOST_BUILDER_FIRST:-1}
# Set to 1 to hard-disable Rust delegate builder (fail fast on selfhost errors)
export HAKO_SELFHOST_NO_DELEGATE=${HAKO_SELFHOST_NO_DELEGATE:-0}
# Try minimal builder fallback to keep selfhost-first green on mini cases
export HAKO_SELFHOST_TRY_MIN=${HAKO_SELFHOST_TRY_MIN:-1}
# LoopJsonFrag: force minimal MIR for loops + normalize/purify
export HAKO_MIR_BUILDER_LOOP_JSONFRAG=${HAKO_MIR_BUILDER_LOOP_JSONFRAG:-1}
export HAKO_MIR_BUILDER_LOOP_FORCE_JSONFRAG=${HAKO_MIR_BUILDER_LOOP_FORCE_JSONFRAG:-1}
export HAKO_MIR_BUILDER_JSONFRAG_NORMALIZE=${HAKO_MIR_BUILDER_JSONFRAG_NORMALIZE:-1}
export HAKO_MIR_BUILDER_JSONFRAG_PURIFY=${HAKO_MIR_BUILDER_JSONFRAG_PURIFY:-1}
# Keep normalization tag silent by default
export HAKO_MIR_BUILDER_NORMALIZE_TAG=${HAKO_MIR_BUILDER_NORMALIZE_TAG:-0}
# Functions/Call resolutionPhase 21.7 dev 一軍)
export HAKO_STAGEB_FUNC_SCAN=${HAKO_STAGEB_FUNC_SCAN:-1}
export HAKO_MIR_BUILDER_FUNCS=${HAKO_MIR_BUILDER_FUNCS:-1}
export HAKO_MIR_BUILDER_CALL_RESOLVE=${HAKO_MIR_BUILDER_CALL_RESOLVE:-1}
# Emit v1 JSON schema + unified mir_call委譲時の安定化
export NYASH_JSON_SCHEMA_V1=${NYASH_JSON_SCHEMA_V1:-1}
export NYASH_MIR_UNIFIED_CALL=${NYASH_MIR_UNIFIED_CALL:-1}
# Parser: Stage-3 ON, allow semicolons
export NYASH_PARSER_STAGE3=${NYASH_PARSER_STAGE3:-1}
export HAKO_PARSER_STAGE3=${HAKO_PARSER_STAGE3:-1}
export NYASH_PARSER_ALLOW_SEMICOLON=${NYASH_PARSER_ALLOW_SEMICOLON:-1}
if [[ "${1:-}" != "quiet" ]]; then
echo "[mirbuilder/dev] HAKO_SELFHOST_BUILDER_FIRST=$HAKO_SELFHOST_BUILDER_FIRST"
echo "[mirbuilder/dev] HAKO_SELFHOST_NO_DELEGATE=$HAKO_SELFHOST_NO_DELEGATE"
echo "[mirbuilder/dev] LOOP_FORCE_JSONFRAG=$HAKO_MIR_BUILDER_LOOP_FORCE_JSONFRAG (normalize=$HAKO_MIR_BUILDER_JSONFRAG_NORMALIZE purify=$HAKO_MIR_BUILDER_JSONFRAG_PURIFY)"
echo "[mirbuilder/dev] NORMALIZE_TAG=$HAKO_MIR_BUILDER_NORMALIZE_TAG (0=silent)"
echo "[mirbuilder/dev] FUNCS=$HAKO_MIR_BUILDER_FUNCS CALL_RESOLVE=$HAKO_MIR_BUILDER_CALL_RESOLVE (func_scan=$HAKO_STAGEB_FUNC_SCAN)"
echo "[mirbuilder/dev] JSON_SCHEMA_V1=$NYASH_JSON_SCHEMA_V1 UNIFIED_CALL=$NYASH_MIR_UNIFIED_CALL"
fi