SchrodingerZhu / ReuseIR

Reuse Analysis in MLIR and Rust. Functional programming meets performance.
Apache License 2.0
15 stars 0 forks source link

What would be the "interface"/"syntax" for users to adopt the project? #1

Closed anqurvanillapy closed 2 months ago

anqurvanillapy commented 2 months ago

I'm currently not that sure about the use cases that directly couple with the user experience.

SchrodingerZhu commented 2 months ago

Both. For our own language frontend, I will expose an AST to the middle end. However, it is perfectly valid to use MLIR as serialization/deserialization method.

anqurvanillapy commented 2 months ago

... our own language frontend, ...

My concerns are mostly tied with the language syntax. Should we strictly follow a subset of Rust syntax, or we could have some other "tastes" to break the compatibility?

And I'm still curious about the user scenarios and experiences like, ones would just enjoy fully functional programming with Rust-like programming language with reuse analysis and MLIR backend, am I correct?

SchrodingerZhu commented 2 months ago

I would go with that being Rust-flavor is no longer a goal of this project, although I think it is good to borrow some syntax design.

anqurvanillapy commented 2 months ago

Rust-flavor is no longer a goal of this project.

Oh that opens up much of the possibilities now. And our "language" is not even general-purpose right? Should be something like the text version of LLIR/WebAssembly? I guess it should adopt some of the design from these existing IRs.

SchrodingerZhu commented 2 months ago

No. Actually, I hope that you can work on a high-level functional language. Leave the dirty backend IR for me :D.

anqurvanillapy commented 2 months ago

Wow that sounds cool. So maybe I could go with some Python-flavored syntax (that might look like Lean, Koka and Scala 3 too) since it brings the vibes for those AI/ML folk.

SchrodingerZhu commented 2 months ago

Sure.

SchrodingerZhu commented 2 months ago

We will discuss about special features later on but for now the most important thing is to have a general language for the frontend.