2.4 KiB
2.4 KiB
Phase 20.9 — LLVM Canary Smokes
Purpose
- Verify wiring of script externs → C symbols (read‑only GC) on the LLVM line under gates.
Gates
SMOKES_GC_ENV_LLVM=1— enables GC canaries for LLVM.
Tests
-
tools/smokes/v2/profiles/quick/core/gc_env_stats_llvm.sh- Expects JSON containing
"safepoints".
- Expects JSON containing
-
tools/smokes/v2/profiles/quick/core/gc_env_roots_snapshot_llvm.sh- Expects a single integer line.
-
Utilities (gate:
SMOKES_UTILS_LLVM=1)tools/smokes/v2/profiles/quick/core/console_warn_error_llvm.sh— expectswarn-lineanderror-linein outputtools/smokes/v2/profiles/quick/core/env_local_get_llvm.sh— expects value ofSMOKES_ENV_LOCAL_GETtools/smokes/v2/profiles/quick/core/env_local_get_missing_llvm.sh— expects short warnNOT_FOUND(stderr), handle remains0tools/smokes/v2/profiles/quick/llvm/time_now_ms_exe.sh— EXE canary; prints plausible ms value (> 2000-01-01)tools/smokes/v2/profiles/quick/llvm/diagnostics_mir_emit_failed_exe.sh— EXE compile path emitsSMOKES_ERR: mir_emit_failed- Parity:
tools/smokes/v2/profiles/quick/llvm/parity_console_warn_error_vm_llvm.shtools/smokes/v2/profiles/quick/llvm/parity_env_local_get_vm_llvm.sh
-
Integration‑core(代表)
tools/smokes/v2/profiles/integration-core/utils_console_warn_error_core.sh— VM↔LLVM warn/error paritytools/smokes/v2/profiles/integration-core/utils_env_local_get_missing_core.sh— VM↔LLVM env.local.get missing paritytools/smokes/v2/profiles/integration-core/env_local_get_exists_core.sh— VM↔LLVM env.local.get exists parity
Prereqs
-
hako_gc_stats/hako_gc_roots_snapshotsymbols must be available (linked) when using the harness. -
If not present, keep gates OFF (tests remain SKIP).
-
Notes
-
VM path has read‑only handlers for observability; LLVM canaries are wiring checks only in 20.8/20.9.
-
Utilities: console.warn/error write to stderr; filters normalize noise and do not assert order.
-
env.local.get(missing): current behavior prints0(boxed handle=0). Future work may use short diagnostics. -
When LLVM harness compilation fails, smokes now emit stable short lines:
SMOKES_ERR: mir_emit_failed(MIR JSON emission)SMOKES_ERR: llvm_compile_failed(ny-llvmc compilation/link)SMOKES_ERR: llvm_exe_missing(post-compile artifact missing) UseSMOKES_KEEP_LD=1to keep linker diagnostics.