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

36 lines
1.3 KiB
Markdown
Raw Normal View History

# 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 連携可)