Expand paper benchmark fixtures - #52
Conversation
📝 WalkthroughWalkthroughThe PR adds invocation-directory-aware benchmark execution, transitive include hashing for cache identity and mutation checks, generated Math checkpoint workloads, updated pointer-analysis data, provenance documentation, and proof-mode regression coverage. ChangesBenchmark workload and checkpoint updates
Estimated code review effort: 4 (Complex) | ~45 minutes Sequence Diagram(s)sequenceDiagram
participant Invocation as Invocation directory
participant Workloads as benchmarking.workloads
participant Runner as benchmarking.collection
Invocation->>Workloads: Resolve source and include paths
Workloads->>Workloads: Hash transitive source closure
Workloads->>Runner: Return FileSpec with working_directory
Runner->>Invocation: Execute benchmark from working directory
Possibly related PRs
Suggested reviewers: 🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✨ Finishing Touches 💡 2📝 Generate docstrings 💡
⚔️ Resolve merge conflicts 💡
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 |
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@scripts/generate_math_checkpoints.py`:
- Around line 32-34: Update scripts/generate_math_checkpoints.py lines 32-34 to
emit a non-reflexive zero-depth assertion that verifies the initialized seed.
Update README.md lines 211-211 and benchmarks/math-microbenchmark/README.md
lines 22-24 to describe zero-checkpoint coverage accurately. Update
egglog/tests/proof_mode_regression.rs lines 216-225 to assert the zero-depth
property through the corrected checkpoint.
🪄 Autofix
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: ASSERTIVE
Plan: Pro Plus
Run ID: f63d3d27-7fe5-49e7-b162-ba5701556a55
⛔ Files ignored due to path filters (53)
benchmarks/data/pointer-analysis-initdb/alloc_aliases.csvis excluded by!**/*.csvbenchmarks/data/pointer-analysis-initdb/alloc_matches.csvis excluded by!**/*.csvbenchmarks/data/pointer-analysis-initdb/alloc_subregion_at_path.csvis excluded by!**/*.csvbenchmarks/data/pointer-analysis-initdb/allocation.csvis excluded by!**/*.csvbenchmarks/data/pointer-analysis-initdb/allocation_by_instruction.csvis excluded by!**/*.csvbenchmarks/data/pointer-analysis-initdb/assign_instruction.csvis excluded by!**/*.csvbenchmarks/data/pointer-analysis-initdb/call_instruction_arg.csvis excluded by!**/*.csvbenchmarks/data/pointer-analysis-initdb/call_instruction_fn_target.csvis excluded by!**/*.csvbenchmarks/data/pointer-analysis-initdb/constant_points_to.csvis excluded by!**/*.csvbenchmarks/data/pointer-analysis-initdb/constant_ptr_points_to.csvis excluded by!**/*.csvbenchmarks/data/pointer-analysis-initdb/function.csvis excluded by!**/*.csvbenchmarks/data/pointer-analysis-initdb/function_nparams.csvis excluded by!**/*.csvbenchmarks/data/pointer-analysis-initdb/function_param.csvis excluded by!**/*.csvbenchmarks/data/pointer-analysis-initdb/gep_var_points_to.csvis excluded by!**/*.csvbenchmarks/data/pointer-analysis-initdb/getelementptr_instruction_base.csvis excluded by!**/*.csvbenchmarks/data/pointer-analysis-initdb/instruction_assigns_to.csvis excluded by!**/*.csvbenchmarks/data/pointer-analysis-initdb/instruction_in_function.csvis excluded by!**/*.csvbenchmarks/data/pointer-analysis-initdb/load_instruction.csvis excluded by!**/*.csvbenchmarks/data/pointer-analysis-initdb/load_instruction_address.csvis excluded by!**/*.csvbenchmarks/data/pointer-analysis-initdb/ret_instruction.csvis excluded by!**/*.csvbenchmarks/data/pointer-analysis-initdb/ret_instruction_value.csvis excluded by!**/*.csvbenchmarks/data/pointer-analysis-initdb/store_instruction_address.csvis excluded by!**/*.csvbenchmarks/data/pointer-analysis-initdb/store_instruction_value.csvis excluded by!**/*.csvbenchmarks/data/pointer-analysis-small/alloc_aliases.csvis excluded by!**/*.csvbenchmarks/data/pointer-analysis-small/alloc_matches.csvis excluded by!**/*.csvbenchmarks/data/pointer-analysis-small/alloc_subregion_at_path.csvis excluded by!**/*.csvbenchmarks/data/pointer-analysis-small/allocation.csvis excluded by!**/*.csvbenchmarks/data/pointer-analysis-small/allocation_by_instruction.csvis excluded by!**/*.csvbenchmarks/data/pointer-analysis-small/call_instruction_arg.csvis excluded by!**/*.csvbenchmarks/data/pointer-analysis-small/call_instruction_fn_target.csvis excluded by!**/*.csvbenchmarks/data/pointer-analysis-small/constant_points_to.csvis excluded by!**/*.csvbenchmarks/data/pointer-analysis-small/constant_ptr_points_to.csvis excluded by!**/*.csvbenchmarks/data/pointer-analysis-small/gep_var_points_to.csvis excluded by!**/*.csvbenchmarks/data/pointer-analysis-small/getelementptr_instruction_base.csvis excluded by!**/*.csvbenchmarks/data/pointer-analysis-small/instruction_assigns_to.csvis excluded by!**/*.csvbenchmarks/data/pointer-analysis-small/instruction_in_function.csvis excluded by!**/*.csvbenchmarks/data/pointer-analysis-small/load_instruction.csvis excluded by!**/*.csvbenchmarks/data/pointer-analysis-small/load_instruction_address.csvis excluded by!**/*.csvbenchmarks/data/pointer-analysis-small/store_instruction_address.csvis excluded by!**/*.csvbenchmarks/data/pointer-analysis-small/store_instruction_value.csvis excluded by!**/*.csvbenchmarks/math-microbenchmark/base.eggis excluded by!**/*.eggbenchmarks/math-microbenchmark/math-run-000.eggis excluded by!**/*.eggbenchmarks/math-microbenchmark/math-run-010.eggis excluded by!**/*.eggbenchmarks/math-microbenchmark/math-run-020.eggis excluded by!**/*.eggbenchmarks/math-microbenchmark/math-run-030.eggis excluded by!**/*.eggbenchmarks/math-microbenchmark/math-run-040.eggis excluded by!**/*.eggbenchmarks/math-microbenchmark/math-run-050.eggis excluded by!**/*.eggbenchmarks/math-microbenchmark/math-run-060.eggis excluded by!**/*.eggbenchmarks/math-microbenchmark/math-run-070.eggis excluded by!**/*.eggbenchmarks/math-microbenchmark/math-run-080.eggis excluded by!**/*.eggbenchmarks/math-microbenchmark/math-run-090.eggis excluded by!**/*.eggbenchmarks/math-microbenchmark/math-run-100.eggis excluded by!**/*.eggbenchmarks/pointer-analysis-initdb.eggis excluded by!**/*.egg
📒 Files selected for processing (15)
AGENTS.mdREADME.mdbenchmarking/collection.pybenchmarking/models.pybenchmarking/profile.pybenchmarking/workloads.pybenchmarks/data/pointer-analysis-initdb.PROVENANCE.mdbenchmarks/math-microbenchmark/README.mdegglog/tests/proof_mode_regression.rsscripts/__init__.pyscripts/generate_math_checkpoints.pytests/test_collection.pytests/test_math_checkpoints.pytests/test_profile.pytests/test_workloads.py
| if iterations == 0: | ||
| seed = _integral_product(a, b, x) | ||
| return f"(check (= {seed} {seed}))" |
There was a problem hiding this comment.
🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win
Replace the reflexive zero-checkpoint assertion.
(check (= {seed} {seed})) succeeds by reflexivity. It does not show that base.egg initialized the seed before the check. The zero-depth regression therefore only verifies parsing and execution, despite the documentation claim.
scripts/generate_math_checkpoints.py#L32-L34: emit a non-reflexive assertion that depends on the initialized seed.README.md#L211-L211: describe the zero checkpoint as parse/run coverage unless the assertion changes.benchmarks/math-microbenchmark/README.md#L22-L24: make the same documentation correction.egglog/tests/proof_mode_regression.rs#L216-L225: assert the zero-depth property through the corrected checkpoint.
📍 Affects 4 files
scripts/generate_math_checkpoints.py#L32-L34(this comment)README.md#L211-L211benchmarks/math-microbenchmark/README.md#L22-L24egglog/tests/proof_mode_regression.rs#L216-L225
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@scripts/generate_math_checkpoints.py` around lines 32 - 34, Update
scripts/generate_math_checkpoints.py lines 32-34 to emit a non-reflexive
zero-depth assertion that verifies the initialized seed. Update README.md lines
211-211 and benchmarks/math-microbenchmark/README.md lines 22-24 to describe
zero-checkpoint coverage accurately. Update
egglog/tests/proof_mode_regression.rs lines 216-225 to assert the zero-depth
property through the corrected checkpoint.
Expands size of pointer analysis to full size of smallest egglog paper benchmark and adds multiple versions of math microbenchmark for different run lengths
Summary by CodeRabbit
New Features
Bug Fixes
Documentation