Skip to content
mit-pdosPublic

About

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

Resources

Stars

43 stars

Watchers

8 watching

Forks

Latest commit

 

History

227 Commits

Folders and files

Repository files navigation

contributions welcome

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 elefthei@mit.edu

About

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

Resources

Stars

43 stars

Watchers

8 watching

Forks

Releases

Packages

Contributors

Languages