Skip to content

David-Durst/embeddedHaskellAetherling

master
Switch branches/tags
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
pnr
 
 
src
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

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 git@github.com:David-Durst/embeddedHaskellAetherling.git
  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 https://sh.rustup.rs -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'

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published