Repository navigation
v0.4.2 — where those fifteen rows actually came from
A follow-up to 0.4.1, which fixed a dropped flag but left the wrong attribution
in place. Full detail in
CHANGELOG.md.
Fixed
-
A run reported what it reached and nothing about how it was set up, so fifteen recorded rows attributed themselves to the wrong lag budget. Every
bench/results/*.jsonwritten from a MethodPolicy port pairs acellslist with a hand-typedconfigblock; the cells were transcribed from the linestandard_mainprints, which states results only. Fifteen blocks recordedasync_ratio: 2for runs that tookrun_port's default of 1, and the attribution namedbench.candidate_methodsas the source.It was not. That harness has no
--stalenessand never passesstaleness=torun_port, so every run through it isguarded— and all fifteen blocks recordfull. The transcribed line is what produced them, and that is checkable rather than argued: it formats qualities at.3f, seconds at.1fand calls as an int, and across all 45 cells not one value carries more precision, while the one filebench.candidate_methodsdid write has 198 of 198 wall/engine values at full float precision. Those files now record 1, with a note, and the elevenRun itcommands pass--async-ratio 1. -
run_portrecordsstalenessinframework— the one setting a run could not state about itself, and the one that made those blocks impossible to attribute either way.
Added
examples._method_runner.run_configand theconfig:line. A live run prints its resolved configuration as one JSON object, in the key names those results blocks already use, so a block is copied out of a run instead of remembered about it.tests/test_results_provenance.pykeeps the forensic invariant executable: a future results file whose cells carry more precision than that print line came from somewhere else, and its config block cannot be read as describing a command-line run.