mix bench.check (PtcRunner v0.14.0)

Copy Markdown View Source

Checks deterministic PTC-Lisp eval metrics against a committed baseline.

mix bench.check
mix bench.check --write-baseline --reason "accepted cause"
mix bench.check --skip-heap

This task gates eval_reductions collected from the sandbox child process. Its scenario matrix covers the raw evaluator and the public-prelude, strict-transitive, and private-tool authority paths. Before measuring, the task requires the baseline's Mix environment, Elixir, OTP, ERTS, emulator flavor, and word size to match the current runtime; reduction counts from a different BEAM execution shape are not a valid comparison.

Child memory_bytes and wall-clock duration are reported as informational metrics: runner timing noise is too large for a gate, and a single per-call memory_bytes sample cannot separate a leak from one-shot warmup. Repeated churn growth is the soak suite's job — mix soak, run weekly by the scheduled Soak workflow.

It then prints the mix bench.heap table against bench/baselines/heap.json, informationally. Heap figures are whole-VM measurements with real noise, and a byte gate on a per-commit path invites the reflexive re-baseline that the reductions baseline has already seen once. mix bench.heap is the gating entry point for anyone who wants the check to fail, and the soak suite is where repeated-churn growth is hard-asserted.