Skip to content

Add Eval(Eval()) and Eval(pack()) reduce rules - #10732

Merged
myrrc merged 3 commits into
developfrom
myrrc/eval-eval-pack-rule
Oct 23, 2026
Merged

myrrc merged 3 commits into
developfrom
myrrc/eval-eval-pack-rule

Conversation

@myrrc

@myrrc myrrc commented Oct 23, 2026 •

Copy link
Copy Markdown
Contributor

Add Eval(e1, Eval(e2, X)) -> Eval(e1 . e2, X) and
Eval(pack{name: X}) -> Pack(name, X) reduce rules.

@myrrc
myrrc requested a review from robert3005 October 23, 2026 14:46
@myrrc myrrc added the changelog/feature A new feature label Oct 23, 2026
@myrrc
myrrc enabled auto-merge (squash) October 23, 2026 14:46
@codspeed

codspeed Bot commented Oct 23, 2026 •

Copy link
Copy Markdown

Merging this PR will regress 5 benchmarks

4 warnings, 1 note

⚠️ Walltime results may be unreliable

Some benchmarks used the Walltime instrument outside CodSpeed Macro Runners, which can make the results inconsistent.

Learn more about Macro Runners

See affected benchmarks

⚠️ Unable to measure the execution of 1 benchmark

This benchmark measured no execution time, so its result is not comparable and counts as unchanged. This usually happens when the compiler removes the code under test.

Prevent compiler optimizations

See affected benchmarks

⚠️ 17 benchmarks are dominated by system calls

System calls cannot be simulated consistently and are left out of the measure. The reported value understates the real cost. Switch to the Walltime instrument to measure them.

Learn more about system calls

See affected benchmarks

⚠️ Base and head ran on different runner types

Some benchmarks with significant performance changes were compared across different runner types, so the changes might not come from the code. Run base and head on the same runner type, or use CodSpeed Macro Runners for more stable results.

Learn more about Macro Runners

Open the report in CodSpeed to investigate

ℹ️ 40 benchmarks have no flamegraph

The flamegraph wasn't generated: the symbols of the profiling trace could not be resolved, because no information about the language frames was collected.

See affected benchmarks

⚡ 7 improved benchmarks
❌ 5 regressed benchmarks
✅ 2396 untouched benchmarks
⏩ 12 skipped benchmarks1

Warning

Please fix the performance issues or acknowledge them on CodSpeed.

Performance Changes

Mode Benchmark BASE HEAD Efficiency
❌ Walltime threshold_neon[8] 1.4 µs 2.7 µs -47.9%
❌ Walltime filter_neon[8] 929 ns 1,652 ns -43.77%
❌ Walltime threshold_neon[64] 2.5 µs 3.9 µs -35.52%
❌ Walltime filter_neon[64] 1.8 µs 2.6 µs -31.43%
❌ Walltime filter_neon[80] 2.6 µs 3.3 µs -21.74%
⚡ CPU Simulation bench_compare_sliced_dict_primitive[(2000, 10000)] 68.8 µs 14.3 µs ×4.8
⚡ CPU Simulation decode_primitives[i64, (1000, 8)] 37.6 µs 24 µs +56.62%
⚡ CPU Simulation density_sweep_dense_runs[0.001] 61.9 µs 44.1 µs +40.12%
⚡ CPU Simulation test_scan_filter_to_arrow_array[int_float] 4.1 ms 3.5 ms +15.82%
⚡ CPU Simulation test_repeated_scan_filter[int_float] 3.9 ms 3.4 ms +12.56%
⚡ CPU Simulation test_repeated_scan_filter[int] 2.7 ms 2.4 ms +11.32%
⚡ CPU Simulation test_scan_filter_to_arrow_array[int] 2.8 ms 2.5 ms +11.1%

Tip

Investigate this regression by commenting @codspeedbot fix this regression on this PR, or directly use the CodSpeed MCP with your agent.


Comparing myrrc/eval-eval-pack-rule (d1be7be) with develop (a169338)2

Open in CodSpeed

Footnotes

  1. 12 benchmarks were skipped, so the baseline results were used instead. If they were deleted from the codebase, click here and archive them to remove them from the performance reports. ↩

  2. No successful run was found on develop (824cee7) during the generation of this report, so a169338 was used instead as the comparison base. There might be some changes unrelated to this pull request in this report. ↩

@myrrc
myrrc disabled auto-merge October 23, 2026 14:56
myrrc added 3 commits October 23, 2026 16:00
Signed-off-by: Mikhail Kot <mikhail@spiraldb.com>
Signed-off-by: Mikhail Kot <mikhail@spiraldb.com>
Signed-off-by: Mikhail Kot <mikhail@spiraldb.com>
@myrrc
myrrc force-pushed the myrrc/eval-eval-pack-rule branch from c816a5d to d1be7be Compare October 23, 2026 15:00
@myrrc
myrrc enabled auto-merge (squash) October 23, 2026 15:00
@myrrc
myrrc merged commit 54bcafc into develop Oct 23, 2026
87 of 89 checks passed
@myrrc
myrrc deleted the myrrc/eval-eval-pack-rule branch October 23, 2026 15:15
joseph-isaacs added a commit that referenced this pull request Oct 23, 2026
…-planners

Picks up the ctutils bump for RUSTSEC-2026-0385. Conflicts with the
Eval(Eval()) and Eval(pack()) reduce rules from #10732 keep this branch's
ZonedDataRule and ExpressionLegacyStatsRule beside them, and the legacy
stats pruning test now expects the zones plan to reduce to a Pack.

Signed-off-by: Joe Isaacs <joe.isaacs@live.co.uk>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BL868qtvZQwUKzuhNuWAS2
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

changelog/feature A new feature

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants