Saw a reddit post on this but can't find anymore...
This project's pretty cool, it's basically an IR (Intermediate Representation) framework for compilers, but instead of being a wrapper around MLIR or something like Melior/Inkwell, it's built from scratch, almost entirely in safe Rust. So theres no C API here.
Pliron isn't ready for production yet, but they're aiming high. The idea is to eventually have it easily integrated into Rust projects through crates.io. It tackles some of the headaches devs usually face when dealing with MLIR, especially those limitations of the mlir C API.
A change from MLIR:
Attributes: Unlike MLIR, attributes are mutable and skip the uniqueness requirement, makes it more flexible.
Interfaces and Def-Use Chains: Builtin through Rust traits, similar to llvm and mlir but its integrated into Rust’s ecosystem.
A introduction to pliron by the creator:
Originally posted on user.rust-lang, ppl said to post here instead...
Saw a reddit post on this but can't find anymore...
This is the reddit post in the "Compilers" sub there. The one I cross-posted on the "Rust" sub was deleted by the mods.
Pliron isn't ready for production yet
I just want to clarify that, when I say it isn't production ready in the README, I mean that it may not be useful to anyone yet, but as far as testing and overall quality is concerned, I aim for it to be production quality throughout.
Attributes: Unlike MLIR, attributes are mutable and skip the uniqueness requirement, makes it more flexible.
This is correct. Attributes are similar to MLIR's properties, with the main difference being that they aren't stored "inline" with the Operation, but still in a dictionary. They just are not uniqued. It is, however, possible to unique Attributes, if necessary, using the uniqued_any utility within the framework.