-
Notifications
You must be signed in to change notification settings - Fork 123
Move generic term rewriting features to Metatheory.jl #368
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
Conversation
…atchers, rule types, rewriter combinators
|
All the stuff works if you locally clone and add the SU#lower_to_mt and MT#lower_from_su branches Some stuff left to do: |
|
@shashi could you please retrigger buildkite benchmark? |
|
Everything should be working and this PR should be ready to be reviewed |
|
It seems the buildkite failure is unrelated? |
|
Okay now we get a nice error message that is relevant. |
Fact is that we want to use |
Dumb question. SymbolicUtils.jl re-exports Metatheory.jl's |
Codecov Report
@@ Coverage Diff @@
## master #368 +/- ##
==========================================
+ Coverage 83.54% 85.03% +1.49%
==========================================
Files 12 10 -2
Lines 1489 1203 -286
==========================================
- Hits 1244 1023 -221
+ Misses 245 180 -65
Continue to review full report at Codecov.
|
|
🎉 |
This is an attempt to unify the Symbolics ecosystem following a layered protocol approach, in order to maintain code as general as possible without sacrificing all the performance optimizations of SU, and in order to extend SU support to e-graph rewriting, non-evaluating symbolic-replacement rules (
-->operator) and a new, drop-in, alternative friendly syntax:This follows the the last diagram of https://discourse.julialang.org/t/a-recap-of-the-state-of-the-symbolics-ecosystem/68022 and should in principle simplify the dependencies, CI fragmentation and versioning, in contrast to #352 that would have provided a lot of CI fragmentation and dependency versioning hell
This needs JuliaSymbolics/Metatheory.jl#77 to be merged and released first
The imported modules from Metatheory are
If you want to try out the new syntax, replace
SUSyntaxwithNewSyntax. In the new syntax, symbols in patterns (x) are slot variables,x...is used for segment variables,=>for substitution rules,|>for dynamic rules,==and!=for bidirectional e-graph specific rules.