We introduce the third major version of Metatheory.jl, a Julia library for general-purpose metaprogramming and symbolic computation. Metatheory.jl provides a flexible and performant implementation of e-graphs and Equality Saturation (EqSat) that addresses the two-language problem in high-level compiler optimizations, symbolics and metaprogramming. We present results from our ongoing optimization efforts, comparing the state-of-the-art egg Rust library's performance against our system and show that performant EqSat implementations are possible without sacrificing the comfort of a direct 1-1 integration with a dynamic, high-level and an interactive host programming language.
翻译:我们介绍了 Metatheory.jl 的第三个主要版本,这是一个用于通用元编程和符号计算的 Julia 库。Metatheory.jl 提供了灵活且高性能的 e-graph 与等式饱和(EqSat)实现,解决了高级编译器优化、符号计算和元编程中的两语言问题。我们展示了持续优化工作的成果,将业界领先的 egg Rust 库的性能与我们的系统进行了对比,并表明在不牺牲与动态、高级、交互式宿主编程语言直接1-1集成的便利性前提下,实现高性能 EqSat 是可行的。