Skip to content
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

Paper accepted! and feedback #1

Open
5 tasks
saulshanabrook opened this issue May 2, 2023 · 0 comments
Open
5 tasks

Paper accepted! and feedback #1

saulshanabrook opened this issue May 2, 2023 · 0 comments

Comments

@saulshanabrook
Copy link
Contributor

saulshanabrook commented May 2, 2023

The paper was accepted 🎉 and I also got some great feedback.

Tasks

Preview Give feedback

EGRAPHS 2023 Paper #21 Reviews and Comments

Paper #21 Egg-smol Python: A Pythonic Library for E-graphs

Review #21A

Overall merit

  1. Minor/no changes

Reviewer expertise

  1. 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

  1. Major changes

Reviewer expertise

  1. 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

  1. Minor/no changes

Reviewer expertise

  1. 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.

@saulshanabrook saulshanabrook changed the title Paper accepted! And feedback Paper accepted! and feedback May 3, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant