phase / ambrosia

(WIP) Minimal example of implementing a language with Rust and MLIR

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

ambrosia

This project hopes to be a minimal example of implementing a language with Rust and MLIR.

The frontend uses nom and codespan for parsing and error reporting, with a custom MLIR dialect that is lowered to LLVM IR. CXX is used for interop between C++ and Rust. mlir-tblgen is run at build time (in build.rs) to generate definitions for the MLIR Dialect and Operations.

Tested with:

  • rustc 1.53.0 (53cb7b09b 2021-06-17)
  • Homebrew LLVM version 12.0.1

This project is in the public domain, see LICENSE.

About

(WIP) Minimal example of implementing a language with Rust and MLIR

License:The Unlicense


Languages

Language:Rust 56.6%Language:C++ 28.1%Language:CMake 9.1%Language:C 6.2%