## Documentation updates (docs/private submodule) - TASKS.md: Phase 33-4.4 marked complete - if_joinir_design.md: Section 10 added (A/B validation results) ## Developer convenience - tools/smokes/v2/README.md: Added JoinIR If/Select smoke note - One-liner for dev-only A/B verification (not CI-required) Phase 33-4 fully complete. Next: Phase 33-5 preparation.
1.6 KiB
1.6 KiB
Smokes v2 — Minimal Runner and Policy
Policy
- Use [SKIP:] prefix for environment/host dependent skips.
- Examples: [SKIP] hakorune not built, [SKIP:env] plugin path missing
- Keep reasons short and stable to allow grep-based canaries.
- Prefer JSON-only output in CI: set
NYASH_JSON_ONLY=1to avoid noisy logs. - Diagnostics lines like
[provider/select:*]are filtered by default inlib/test_runner.sh.- Toggle: set
HAKO_SILENT_TAGS=0to disable filtering and show raw logs.HAKO_SHOW_CALL_LOGS=1also bypasses filtering.
- Toggle: set
Helpers
tools/smokes/v2/lib/mir_canary.shprovides:extract_mir_from_output— between [MIR_BEGIN]/[MIR_END]assert_has_tokens,assert_skip_tag,assert_order,assert_token_count
tools/lib/canary.shprovides minimal, harness-agnostic aliases:extract_mir_between_tags— same asextract_mir_from_outputrequire_tokens token...— fail if any token missing
Notes
- Avoid running heavy integration smokes in CI by default. Use
--profile quick. - When a test depends on external tools (e.g., LLVM), prefer
[SKIP:<reason>]over failure.
Quick tips
- EXE-heavy cases (e.g.,
phase2100/*) may take longer. When running quick with these tests, pass a larger timeout like--timeout 120. - Smokes v2 auto-cleans temporary crate EXE objects created under
/tmp(pattern:ny_crate_backend_exe_*.o) after the run.
Developer Notes
- JoinIR If/Select (Phase 33): A/B test with
NYASH_JOINIR_IF_SELECT=1 NYASH_PARSER_STAGE3=1 HAKO_PARSER_STAGE3=1 ./target/release/hakorune apps/tests/joinir_if_select_simple.hako(not required for CI, dev-only verification)