Repository navigation
Pin the hash seed in the execution benchmark harness - #9235
Conversation
|
Important Review skippedBot user detected. To trigger a single review, invoke the ⚙️ Run configuration
You can disable this status message by setting the Use the checkbox below for a quick retry:
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
Split out of #9224 at @fanninpm's request.
Change
bench_rustpython_codeinbenches/execution.rsnow setssettings.hash_seed = Some(0).benches/microbenchmarks.rshas used the same setting since #9126.Every RustPython interpreter in this harness is created by that function. The hash secret is set once per process, by the first interpreter, so all
executionandpystonebenchmarks now hashstr/bytesthe same way on every run. Dict and set probe sequences no longer change between runs.Notes
cargo check --bench executionpasses.parse_to_ast::*. Those benchmarks only run the ruff parser and never hash Python objects. Their swings come from the heap state that earlier benchmarks leave behind, and that depends on theHashMapiteration order incriterion_benchmark.Comment
@codspeedbot make the execution benchmarks run in a deterministic orderand I'll add that to this PR.