To support user-defined schedulers, this PR does a few things
Expose a safe set of timestamp APIs
Small tweak to EGraph::run_actoins to make it more ergonomic
Allow associating rules with properties using the :prop "prop-name" literal syntax. This is useful for passing user-defined scheduling parameters to the scheduler.
Fixed a bug that ignores user-provided rule names (closes #323) and a bug that creates rules with duplicate names when semi-naive transformation
Add a with-scheduler keyword to the schedule DSL
Move scheduling-related functions to a separate scheduler.rs
Exposed scheduler as a trait similar to egg.
Implemented an example Backoff scheduler that has exact the same behavior as egg's backoff scheduler on the math microbenchmark
To support user-defined schedulers, this PR does a few things
EGraph::run_actoins
to make it more ergonomic:prop "prop-name" literal
syntax. This is useful for passing user-defined scheduling parameters to the scheduler.with-scheduler
keyword to the schedule DSLscheduler.rs
Currently, the following command is supported: