Git Product home page Git Product logo

docker-framac's Introduction

docker-framac

Frama-C with MetAcsl, Why3 and a selection of SMT solvers in a multi architecture (amd64 and arm64) image.

Available on dockerhub: https://hub.docker.com/r/fredblgr/framac

Source files available on GitHub: https://github.com/Frederic-Boulanger-UPS/docker-framac

How to use it

In a terminal, run make run or ./run-docker-framac.sh. On Windows, you can use run-docker-framac.ps1 with PowerShell. After pulling the image from dockerhub, you should be logged as root in the container. You can then use z3, cvc4, alt-ergo, eprover, why3, frama-cand frama-c-gui.

The current working directory is mounted as /workspace in the container.

You may also use the frama-c, frama-c-gui and why3 proxy shell scripts to execute these commands in the container as if they were available on the host.

You will need an X server in order to use the GUI of the applications frama-c-guiand why3 ide. On MacOS, you can use XQuartz, which can also be installed as a cask by brew. On Windows 10, you can use VcXsrv.

Note: on Apple M1 machines, the setting of the X11 display in Docker does not seem to work yet.

Contents of the image

This image, based on ubuntu:20.04, contains:

  • alt-ergo 2.0.0
  • Z3 4.8.6
  • E prover 2.0
  • CVC4 1.7
  • Why3 1.3.3
  • Frama-C 22.0 with MetAcsl 0.1

Contents of the repository

  • Dockerfile the dockerfile to build the image
  • Makefile has several targets:
    • build builds the image for the architecture of the host
    • newbuilder creates a new builder for buildx and sets buildx to use it
    • buildx builds the arm64/amd64 image and pushes it to dockerhub
    • run runs the image in a new container
  • run-docker-framac.sh runs the image in a new container. It also takes care of setting up things so that the container can use your X server to display GUI applications.
  • run-docker-framac.ps1 Windows PowerShell version of the previous script.
  • test-framac contains code and two scripts to check if frama-c and frama-c-gui work
  • test-metacsl contains code and a script to check if MetAcsl works
  • test-why3 contains code and two scripts to check why3 in command line and in ide/gui modes
  • frama-c, frama-c-gui and why3 are shell scripts that can be used as proxy on the host machine to the corresponding programs in the container.

docker-framac's People

Contributors

frederic-boulanger-ups avatar

Stargazers

Andre avatar

Watchers

 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.