Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/mit-pdos/mcqc

A Gallina compiler with C++17 as an intermediate representation
https://github.com/mit-pdos/mcqc

Last synced: about 2 months ago
JSON representation

A Gallina compiler with C++17 as an intermediate representation

Awesome Lists containing this project

README

        

[![contributions welcome](https://img.shields.io/badge/contributions-welcome-brightgreen.svg?style=flat)](https://github.com/mit-pdos/mcqc)

MCQC

Monadic Coq Compiler
--------------------

# Introduction

Alternative Coq compiler, by extraction to C++17. Written in Haskell.
Takes in JSON extraction (available after Coq v.8.5.1) and exports valid, performant and memory safe C++17.
See `test/numeric` and `test/cat` for examples. No GC no RTS, uses `shared_ptr` for reference
counting and a library of base types (in `include/*.hpp`).

# Building

Then with stack, run the following in the source root:
```
stack build
```

# Testing

First, cd into `classes` and run `make`.
This will generate the object files for Coq typeclasses used.

Uses `llvm-lit` for testing, installable from `pip`.
```
lit test
```

To run property-based tests of the C++ library:
```
RC=on lit test/rc
```

# Maintainer
Lef Ioannidis