vellvm

The Vellvm (Verified LLVM) coq development.

  • Owner: vellvm/vellvm
  • Platform:
  • License:: Other
  • Category::
  • Topic:
  • Like:
    0
      Compare:

Github stars Tracking Chart

Vellvm

Build Status

Vellvm is a Coq formalization of the semantics of (a subset of) the
LLVM compiler IR that is intended for formal verification of
LLVM-based software. It is being developed at the
University of Pennsylvania as part of the DeepSpec project.

See:

Participants

  • Steve Zdancewic
  • Yannick Zakowski
  • Calvin Beck
  • Olek Gierczak

Past Contributors

  • Vivien Durey
  • Dmitri Garbuzov
  • William Mansky
  • Milo Martin
  • Santosh Nagarakatte
  • Emmett Neyman
  • Christine Rizkallah
  • Robert Zajac
  • Richard Zhang
  • Jianzhou Zhao

Structure of the repository

/src/ci - travis configuration

/src/coq - Coq formalization (see Denotation.v and TopLevel.v most notably)

/src/ml - OCaml glue code for working with ollvm

/src/ml/extracted - OCaml code extracted from the files in /src/coq directory

/src/doc - coqdoq [not useful yet]

/lib - for 3rd party libraries [as git submodules]

/tests - various LLVM source code tests

Installing / Compiling Vellvm

Assumes:

  • coqc : version 8.9.1 or 8.10.0 (and coqdep, etc.)
  • Coq packages:
    • ext-lib (installed via, e.g. opam install coq-ext-lib)
    • paco (installed via, e.g. opam install coq-paco)
    • flocq (installed via, e.g. opam install coq-flocq, see note below)
    • itree (installed via, e.g. opam install coq-itree)
      • Currently you should actually just use the submodule (lib/InteractionTrees): see the instructions for compilation below.
    • ceres (installed via, e.g. opam install coq-ceres)
  • ocamlc : version 4.04 (probably works with 4.03 or later)
    • OPAM packages: dune, menhir, [optional: llvm (for llvm v. 3.8)]

Compilation:

  1. clone the vellvm git repo with --recurse-submodule option (git clone --recurse-submodules)
  2. run make in the /src directory

Running

Do src/vellvm -help from the command line.

Try src/vellvm -interpret tests/ll/factorial.ll.

Notes

coq-flocq

On some OSX configurations the opam installation for coq-flocq fails with a
permissions error # Failed to create server: Operation not permitted caused by
opam's sandboxing scripts. The solution is to temporarily disable opam's
sandboxing by editing ~/.opam/config to remove the lines having to do with
wrap-*-commands:.

Main metrics

Overview
Name With Ownervellvm/vellvm
Primary LanguageLLVM
Program languageMakefile (Language Count: 9)
Platform
License:Other
所有者活动
Created At2017-04-06 11:21:21
Pushed At2025-05-29 20:43:08
Last Commit At
Release Count13
Last Release Namev2.1.20250327 (Posted on )
First Release Namedsss17 (Posted on )
用户参与
Stargazers Count429
Watchers Count20
Fork Count36
Commits Count3.5k
Has Issues Enabled
Issues Count246
Issue Open Count113
Pull Requests Count115
Pull Requests Open Count3
Pull Requests Close Count19
项目设置
Has Wiki Enabled
Is Archived
Is Fork
Is Locked
Is Mirror
Is Private