~/talk

Oatlog: A performant ahead-of-time compiled e-graph engine

Talkat EGRAPHS 2025 · 2025-06-16..06-17· [compilers-and-language-design, rust]
links:none on file
links:none on file
links:none on file
slides:none on file

Oatlog compiles egglog theories ahead-of-time Rust proc macro into generated Rust code, represents e-nodes as rows in operator-specific relations, and implements worst-case optimal joins plus semi-naive evaluation to make e-matching incremental and cache-friendly. Benchmarks on math, boolean-adder and fueled-math workloads show large speedups over egglog for small-to-moderate e-graphs (up to ~10^5 e-nodes) and avoid interpreter overhead, but several egglog features (rule sets, containers, extraction) are unimplemented and a relaxed mode changes intermediate e-graph contents until saturation.

AI-written summary · about

  1. 0:00Oatlog goals
  2. 0:21Egraph implementation
  3. 3:28Relational query planning
  4. 5:39Egglog performance
  5. 6:00AOT compilation design
  6. 7:25Rust code generation
  7. 8:06Benchmark vs egglog
  8. 9:13Why Oatlog faster
  9. 10:16Novel optimizations
  10. 12:25Limitations and future
  11. 13:48Oatlog vs egglog semantics
  12. 14:31Oatlog availability
  13. 15:13Q&A: Dynamic rules
  14. 16:36Q&A: vs Datalog engines
  15. 17:40Q&A: Herby integration
  16. 18:24Q&A: Rust function interfacing
  17. 19:06Q&A: Hash joins factors
  18. 20:15Q&A: Language interoperability
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.