Files
hakorune/docs/private/roadmap/phases/phase-20.9/SMOKES.md

42 lines
2.4 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.

# Phase 20.9 — LLVM Canary Smokes
Purpose
- Verify wiring of script externs → C symbols (readonly 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`
- Integrationcore代表
- `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 readonly 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.