Skip to content
forked from mit-pdos/mcqc

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

License

Notifications You must be signed in to change notification settings

sailfish009/mcqc

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

contributions welcome

MCQC

MCQC Coq to C++17 compiler

Introduction

Alternative Coq extractor to C++ 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 enable property based testing with RapidCheck of the C++ library, run:

RC=on lit test/rc

Maintainer

Lef Ioannidis [email protected]

About

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

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Haskell 48.0%
  • C++ 27.9%
  • Coq 18.7%
  • Makefile 3.7%
  • Python 1.7%