Files
hakorune/docs/how-to/smokes.md

36 lines
1.3 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 — HowTo前提→手順→検証
目的
- 代表スモークを素早く回して、回帰を検知する。
前提
- リリースビルド済み: `cargo build --release --features llvm`
- LLVM 18 が導入済みAOT 経路のとき)
手順(推奨ランナー)
1) LLVM curated
- 実行: `tools/smokes/curated_llvm.sh [--phi-off]`
- `--phi-off`: `NYASH_MIR_NO_PHI=1` を有効化し、検証を緩和
2) PHI 不変条件パリティ
- 実行: `tools/smokes/curated_phi_invariants.sh`
- PyVM と llvmlite の stdout/exit code を比較
手動スモーク(例)
- Core (LLVM): `examples/llvm11_core_smoke.nyash`
- Async (LLVM only):
- `apps/tests/async-await-min/main.nyash`
- `apps/tests/async-spawn-instance/main.nyash`
- `apps/tests/async-await-timeout-fixed/main.nyash``NYASH_AWAIT_MAX_MS=100`
アーカイブ(非推奨)
- `tools/smokes/archive/` に旧ランナーJIT/Cranelift 時代)が存在
- `smoke_phase_10_10.sh`, `smoke_vm_jit.sh`, `smoke_async_spawn.sh`, `jit_smoke.sh`, `aot_smoke_cranelift.sh`
- これらは基本使わず、curated 系を使用
便利フラグ
- `NYASH_LLVM_USE_HARNESS=1`: llvmlite ハーネス経由
- `NYASH_MIR_NO_PHI=1`, `NYASH_VERIFY_ALLOW_NO_PHI=1`: PHI 無しモード
検証
- 0 で成功、非 0 で失敗CI 連携可)