Skip to content

run-schedule size limit#925

Open
noahhuck wants to merge 8 commits into
mainfrom
size-cap
Open

run-schedule size limit#925
noahhuck wants to merge 8 commits into
mainfrom
size-cap

Conversation

@noahhuck

Copy link
Copy Markdown
Collaborator
  • Add an optional size-limit tag to the run-schedule command.
  • For the duration of the schedule, keeps track of an upper bound on how many enodes are added. When the estimated size reaches the limit, stops the schedule. Estimated size may be less than the actual egraph size after running the schedule, since matches may produce duplicate enodes.
  • Updates the estimate after each iter to the actual size of the egraph after rebuild.
  • Any matches found during the last iter but not applied will be lost and can't be recovered by seminaive.

@noahhuck noahhuck requested a review from a team as a code owner June 10, 2026 01:05
@noahhuck noahhuck requested review from FTRobbin and removed request for a team June 10, 2026 01:05
@codspeed-hq

codspeed-hq Bot commented Jun 10, 2026

Copy link
Copy Markdown

Merging this PR will not alter performance

✅ 26 untouched benchmarks
⏩ 216 skipped benchmarks1


Comparing size-cap (dd2d44c) with main (a2da717)

Open in CodSpeed

Footnotes

  1. 216 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.

@codecov-commenter

codecov-commenter commented Jun 10, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 92.37668% with 17 lines in your changes missing coverage. Please review.
✅ Project coverage is 87.16%. Comparing base (ebba7bb) to head (dd2d44c).
⚠️ Report is 107 commits behind head on main.

Files with missing lines Patch % Lines
core-relations/src/free_join/execute.rs 90.17% 11 Missing ⚠️
src/ast/parse.rs 90.00% 2 Missing ⚠️
src/lib.rs 92.30% 2 Missing ⚠️
src/scheduler.rs 50.00% 2 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main     #925      +/-   ##
==========================================
+ Coverage   87.08%   87.16%   +0.08%     
==========================================
  Files          88       88              
  Lines       25640    26464     +824     
==========================================
+ Hits        22329    23068     +739     
- Misses       3311     3396      +85     

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@saulshanabrook saulshanabrook requested review from yihozhang and removed request for FTRobbin June 14, 2026 22:47
@yihozhang

Copy link
Copy Markdown
Collaborator

This seems to be very specialized to Herbie's usage. Is it fine to keep this in a branch and not merge it into main?

@saulshanabrook

Copy link
Copy Markdown
Member

I think it would be good to have herbie be able to work off egglog main at some point. So if this technique isn't appropriate, then it would be nice to brainstorm alternate ways to support them that would fit better in main/experimental.

A size limit isn't that specialized is it? Doesn't egg have a size limit? It would be nice to more easily adapt egg based projects to egglog by being able to support those features even if they aren't as ergonomic in egglog.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants