Skip to content


Repository files navigation

Aetherling Embedded In Haskell

This is the main repository for Aetherling. Aetherling appeared as a paper in PLDI 2020. For more details, please see the main Aetherling site.

The supplementary materials for the paper can be found here.

Please see the theory section for an overview of this repo.

Please see the python repo for the Magma backend that compiles to CoreIR and Verilog.

How To Run

To build this part of the project:

  1. Install the latest version of stack
  2. Clone this repo: git clone --recurse-submodules
  3. Copy src/Core/Aetherling/Interpretations/Backend_Execute/Constants.hs.template to src/Core/Aetherling/Interpretations/Backend_Execute/Constants.hs and update root_dir to point to the top folder of this repository on your system.
  4. Build the repo:
stack build
  1. Install the Rust intermediate layer
    1. Install Rust and Cargo:
    curl -sSf | sh
    1. Install Aetherling's Rust code
    cd rustAetherling
    cargo install
  2. Explore the IR by running the following command which starts a Haskell interpreter with all files loaded except thoses in test/:
stack ghci
  1. Explore the tests by running the following command and selecting option 2:
stack ghci --test

Please be patient the first time stack ghci is run on a computer. It will install all the dependencies in a virtual environment just for this project.

How To Run Tests

stack test --test-arguments '--num-threads 1'


No description, website, or topics provided.







No releases published