Overview
First, review the branch:
/code-review- /code-review-response on its findings. It ends with /distill.
Then update docs if applicable:
- docs/spec-*.md
- docs/cheatsheet.md
- docs/compiler.md and docs/optimizer.md, only when what they map changes: a phase, pass, or IR, or a rule that holds across phases. How one works belongs in its module doc.
Then, run time mise run on-task-done, which includes:
cargo build
mise run clippy-fix
mise run update-golden-fixtures
mise run update-golden-format-fixtures
mise run doc-stdlib
mise run format
mise run test
mise run test-wado
mise run check
mise run check-grammar
mise run check-highlighton-task-done will take 70+ minutes.
Notes
- Don't pipe it into
tail— you lose the full log. Redirect to a file and inspect it afterwards if you need to trim output. - The changes generated by the command are necessary. Commit them.
- Run it in the background and read the log when it lands; see Tooling for how a job reports its own completion.
- If the changes only include Wado programs, only
mise run test-wadois required. - If the changes only include documentation, only
mise run formatandmise run checkare required.
Flaky Commands
Some commands are flaky and may segfault:
mise run update-golden-fixtures— thegolden-dumpbatch tool sometimes segfaults mid-run (pre-existing issue). If it fails, run the individual golden generation manually for any new fixtures, then proceed.mise run test(i.e.,cargo test -p wado-compiler --test e2e) — the e2e test runner sometimes crashes with SIGSEGV when running all tests in parallel (pre-existing issue unrelated to compiler correctness).
If cargo test segfaults, reduce parallelism:
cargo test -p wado-compiler --test e2e -- --test-threads=4Or run individual fixture tests directly:
cargo test -p wado-compiler --test e2e -- <fixture_name>