42 lines
2.4 KiB
Markdown
42 lines
2.4 KiB
Markdown
# 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"`.
|
||
- `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` — expects `warn-line` and `error-line` in output
|
||
- `tools/smokes/v2/profiles/quick/core/env_local_get_llvm.sh` — expects value of `SMOKES_ENV_LOCAL_GET`
|
||
- `tools/smokes/v2/profiles/quick/core/env_local_get_missing_llvm.sh` — expects short warn `NOT_FOUND` (stderr), handle remains `0`
|
||
- `tools/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 emits `SMOKES_ERR: mir_emit_failed`
|
||
- Parity:
|
||
- `tools/smokes/v2/profiles/quick/llvm/parity_console_warn_error_vm_llvm.sh`
|
||
- `tools/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 parity
|
||
- `tools/smokes/v2/profiles/integration-core/utils_env_local_get_missing_core.sh` — VM↔LLVM env.local.get missing parity
|
||
- `tools/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_snapshot` symbols 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 prints `0` (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)
|
||
Use `SMOKES_KEEP_LD=1` to keep linker diagnostics.
|