You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Paper #21 Egg-smol Python: A Pythonic Library for E-graphs
Review #21A
Overall merit
Minor/no changes
Reviewer expertise
Expert
Paper summary
The author presents a framework for Python bindings for the nascent egglog Rust library. In the abstract, the author particularly focuses on the role of types to enable better IDE support and catch errors early. Their approach yields a fairly tight match between Python datatypes and the underlying egglog types. Given this foundation the hope is to support a rich ecosystem of Python tooling powered by egglog.
Comments for authors
Thanks for the work on this library! The biggest concern I had was support for more general "rules" in egglog -- as synthesis of EqSat and Datalog, egglog provides more than single "find and equate" syntactic rewrites. How will those work egg-smol Python? Similarly, egglog provides several primitive types -- how do those line up and work with the embedding like the example shown in Figure 1? I am slightly worried about semantic mismatches between Python and egglog base types leading to subtle bugs.
I appreciate the author's vision to enable Python-level libraries of shared types and rules. It would be great to also include at least a small example of how that might work in a potential talk. Another major challenge for any EqSat Python bindings is support for extraction -- the examples only highlight using check. Keen to discuss with other reviewers, but overall this kind of work is great for EGRAPHS so that community can come together to discuss designs for shared infra like these bindings.
Review #21B
Overall merit
Major changes
Reviewer expertise
Expert
Paper summary
This work proposes a Python interface to the "egg-smol" library. Aside from being accessible to Python users, the intended benefits include typechecked rewrites (by hooking into the Python typechecker), and use in interactive Python environments like notebooks.
Comments for authors
This work looks interesting and important, as Python is something of a lingua franca these days. I think a presentation on this topic should focus on use cases of the library rather than the architecture of the library itself, as I expect that will be more interesting for the audience. The paper mentions other Python projects that have looked for ways to use e-graphs, but presumably existing solutions failed to fit. Does this project fit those needs better? How so?
Another question I have related to egg-smol's capabilities as a Datalog engine. Does the Python interface support the more general rule interface? Or only rewrites?
What is the relationship between the Python static typing system and the typing system built into egg-smol? Does the implementation of the Python typing system require duplicated logic?
Review #21C
Overall merit
Minor/no changes
Reviewer expertise
Knowledgeable
Paper summary
The paper describes the creation of python bindings for egg-smol, an experimental egraph system / datalog. This presents an easier installation, a more comfortable interface to many users and enables easy metaprogramming of the system.
Comments for authors
It is this reviewer's opinion that bringing techniques from the programming language community and making them easily installable and accessible to the general programming world is a valuable
and sometimes unglamorous contribution that should more regularly acknowledged.
As an example, the ubiquity and excellence of language bindings to the Z3 SMT solver has greatly changed it's applicability to problems compared to other systems. It also enables its use as a subsystem of problems that aren't just SMT solving, prototyping extensions of the system, or utilizing the vast multitude of capabilities that already have python bindings. The egg-smol bindings hold the same promise and will be of interest to the EGRAPHS community.
The text was updated successfully, but these errors were encountered:
saulshanabrook
changed the title
Paper accepted! And feedback
Paper accepted! and feedback
May 3, 2023
The paper was accepted 🎉 and I also got some great feedback.
Tasks
The text was updated successfully, but these errors were encountered: