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

New transformer infrastructure #4052

Open
gtrepta opened this issue Feb 27, 2024 · 2 comments
Open

New transformer infrastructure #4052

gtrepta opened this issue Feb 27, 2024 · 2 comments

Comments

@gtrepta
Copy link
Contributor

gtrepta commented Feb 27, 2024

The scala transformers over the kore data structures have multiple pain points and need to be redesigned.

Something in Java, and with an interface more akin to the LLVM passes would be more flexible.

@gtrepta
Copy link
Contributor Author

gtrepta commented Mar 6, 2024

I've landed on a design I'm happy with for an abstract base class of a pipeline stage: 3f26e40

This should be flexible enough to implement the transformations we want to make in the compiler pipeline. It isn't a total 1-to-1 mapping of the scala transformers, notably handling exceptions on sentences doesn't exist yet, but the transformers in the kore pipeline should be implementable without nearly as many lambda expressions.

@Baltoli
Copy link
Collaborator

Baltoli commented Mar 20, 2024

Discussed with @gtrepta yesterday; we're holding off on the full generality of being able to specify pipeline orderings / dependencies etc. as it's not clear we need that much abstraction yet. What will be useful in the shorter term is the Java -> Scala translation; we should adopt the parts of Guy's design that are relevant there when we come to port it away from Scala.

@gtrepta I've assigned you here; if there's a way to get the Java port + cleanup merged without the dependency ordering part of the change then that would be great, if it's not trivial then we can leave it for now and revisit when we come to remove the last of the Scala code.

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

2 participants