- VM smoke: phase284_p2_return_in_loop_vm.sh (PASS) - LLVM smoke: phase284_p2_return_in_loop_llvm.sh (SKIP if no LLVM feature) - Reuse existing fixture: phase286_pattern5_return_min.hako (exit 7) - P2-INSTRUCTIONS.md: 手順書作成 - quick smoke 154/154 PASS 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2.1 KiB
2.1 KiB
Phase 284 P2: "return in loop" smoke 固定(手順書)
目的
- return を含む loop を VM と LLVM harness の両方で同一結果にする
- integration smoke で意味論を固定し、退行を防止
- quick gate (154/154 PASS) は絶対に壊さない
対象 fixture(既存再利用優先)
| Fixture | Pattern | 期待値 | 備考 |
|---|---|---|---|
apps/tests/phase286_pattern5_return_min.hako |
Pattern5 (infinite + early return) | exit 7 | 既存(Phase 286 P3.2 で作成) |
新規 fixture は追加しない(既存で十分)
smoke スクリプト
VM 版
- ファイル:
tools/smokes/v2/profiles/integration/apps/phase284_p2_return_in_loop_vm.sh - 実行:
./target/release/hakorune --backend vm <fixture> - 判定: exit code または stdout で固定
LLVM 版
- ファイル:
tools/smokes/v2/profiles/integration/apps/phase284_p2_return_in_loop_llvm.sh - 実行:
NYASH_LLVM_USE_HARNESS=1 ./target/release/hakorune --backend llvm <fixture> - SKIP ポリシー: LLVM feature がビルドに含まれていない場合は
test_skipで理由付き SKIP
# SKIP 流儀(v2 smoke 既存パターン準拠)
if ! "$NYASH_BIN" --version 2>/dev/null | grep -q "features.*llvm"; then
test_skip "LLVM backend not available in this build"; exit 0
fi
受け入れ条件
tools/smokes/v2/run.sh --profile quick→ 154/154 PASSphase284_p2_return_in_loop_vm.sh→ PASS (exit 7)phase284_p2_return_in_loop_llvm.sh→ PASS (exit 7) または理由付き SKIP
検証コマンド
# quick gate(必須)
./tools/smokes/v2/run.sh --profile quick
# integration 単発
bash tools/smokes/v2/profiles/integration/apps/phase284_p2_return_in_loop_vm.sh
bash tools/smokes/v2/profiles/integration/apps/phase284_p2_return_in_loop_llvm.sh
# integration 全体(フィルタ付き)
./tools/smokes/v2/run.sh --profile integration --filter "*phase284*"
完了後
docs/development/current/main/phases/phase-284/README.mdの P2 を✅ COMPLETEに更新docs/development/current/main/10-Now.mdの Current Focus を次タスクに更新