Skip to content
/ mcqc Public

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

License

Notifications You must be signed in to change notification settings

mit-pdos/mcqc

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

227 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

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 [email protected]

About

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

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •