## 修正内容 ### 1. Stage-B パーサー修正(偶然の回避) - **ファイル**: - `lang/src/compiler/parser/expr/parser_expr_box.hako` - `lang/src/compiler/parser/stmt/parser_control_box.hako` - **問題**: ネストループで gpos が正しく進まず、loop の cond/body が壊れる - **回避策**: new 式のメソッドチェーン処理追加で別ループを導入 - **結果**: MIR 生成が変わって VM gpos バグを回避 ### 2. delegate パス動作確認 - **テスト**: `/tmp/loop_min.hako` → rc=10 ✅ - **MIR構造**: 正しい PHI/compare/binop を生成 - **チェーン**: hakorune parser → Rust delegate → LLVM EXE 完動 ### 3. ドキュメント追加 - `docs/development/analysis/` - delegate 分析 - `docs/development/guides/` - ループテストガイド - `docs/development/testing/` - Stage-B 検証報告 ### 4. カナリーテスト追加 - `tools/smokes/v2/profiles/quick/core/phase2100/` 配下に複数追加 - emit_boxcall_length_canary_vm.sh - stageb_parser_loop_json_canary_vm.sh - 他 ### 受け入れ基準 - ✅ delegate パス: rc=10 返す - ✅ FORCE パス: rc=10 返す(既存) - ✅ MIR 構造: 正しい PHI incoming と compare - ✅ 既定挙動: 不変(dev トグルのみ) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
33 lines
1.7 KiB
Bash
33 lines
1.7 KiB
Bash
#!/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}
|
|
|
|
# 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}
|
|
|
|
# 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)"
|
|
fi
|
|
|