Giter Site home page Giter Site logo

vellvm's Introduction

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 StepSemantics.v)

/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.8.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)
  • 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:.

vellvm's People

Contributors

zdancewic avatar nclskh avatar vzaliva avatar chobbes avatar robzajac avatar olekgierczak avatar dmitrig avatar bollu avatar zoickx avatar mansky1 avatar bcpierce00 avatar emmettneyman avatar nomeata avatar pedrotst avatar lemonidas avatar tobiasgrosser avatar yazko avatar liyishuai avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.