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

1.3 KiB
Raw Blame 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.nyashNYASH_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 連携可)