Skip to content
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

Cleanup from terms PR #176

Merged
merged 164 commits into from
Aug 2, 2023
Merged

Conversation

oflatt
Copy link
Member

@oflatt oflatt commented Jul 31, 2023

This PR:

  • Adds more desugaring to clean up the front end more
    • Got rid of define in favor of let
    • All run statements are converted to schedules
  • Handles globals as an environment instead of declaring tables
  • Fixes several bugs in saturation
    • One bug where we were inserting new timestamps too eagerly
    • One bug where saturation relies on seminaive
  • Gets rid of proofs code because they don't work
  • Adds a resugaring so that we can look at the IR more easily
  • New command line arguments for looking at the IR
  • Various other small changes

Sorry all these changes are together, it was tough to get them from my terms PR.

@oflatt oflatt changed the title [WIP] Cleanup from terms PR Cleanup from terms PR Jul 31, 2023
@@ -45,6 +45,20 @@ impl MapSort {
}
}

impl MapSort {
pub fn presort_names() -> Vec<Symbol> {
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Presort names is so bad bad but I'm not sure how else to get presort names

Copy link
Contributor

@ezrosent ezrosent left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Took a quick pass here.

src/ast/desugar.rs Show resolved Hide resolved
src/extract.rs Outdated Show resolved Hide resolved
src/gj.rs Outdated Show resolved Hide resolved
src/lib.rs Outdated Show resolved Hide resolved
src/sort/vec.rs Outdated
@@ -69,21 +83,8 @@ impl Sort for VecSort {
result
}

fn canonicalize(&self, value: &mut Value, unionfind: &UnionFind) -> bool {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why is this getting backed out? Don't we still want to canonicalize vectors?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oof, good catch, it shouldn't be backed out.
We really need better testing for containers

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actually apparently container rebuilding is just completely broken in main, see #165.
I'll restore the canonicalize code though

tests/files.rs Show resolved Hide resolved
@mwillsey mwillsey merged commit 8fc012f into egraphs-good:main Aug 2, 2023
3 checks passed
This was referenced Aug 17, 2023
@oflatt oflatt mentioned this pull request Aug 18, 2023
saulshanabrook added a commit to saulshanabrook/egg-smol that referenced this pull request Aug 23, 2023
In egraphs-good#176 the `ExtractCommand` is now created with `query-extract` instead of `extract`.
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.

None yet

3 participants