-
Notifications
You must be signed in to change notification settings - Fork 54
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Delete -naive flag and disallow lookup actions in rules #461
base: main
Are you sure you want to change the base?
Conversation
CodSpeed Performance ReportMerging #461 will improve performances by ×43Comparing Summary
Benchmarks breakdown
|
// for the later atoms, we consider everything | ||
let mut timestamp_ranges = | ||
vec![0..u32::MAX; cq.query.funcs().collect::<Vec<_>>().len()]; | ||
if do_seminaive { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I believe we still want to keep the -naive
flag as well as the code here, so the user can still do naive evaluation (useful for debugging, also have a different semantics than semi-naive for "unsafe" egglog).
I'm a little worried about the time improvements, especially for lambda... That one is so dramatic I worry that maybe the semantics of the example changed? Seeing all the changes, I also worry about the degradation for UX, it seems just more unwieldy with this change. I know you said that automated desuguring had some issues, but I am wondering if that could be used to at least addressost of these cases? Where there particular issues with it for some cases or just in general? |
This PR fixes Issue #420. Lookup actions in rules will now cause a type error
LookupInRuleDisallowed
.Move specifically, this PR:
Removes
-naive
flag and related desugaring code due to being replaced by this change.Fixes 'fail' failing due to not being identified as global in the
remove_global
rewrite pass.Adds new positive and negative tests for this type error.
Rewrites the existing tests for compatibility with the new type error.