Project

General

Profile

Wiki » History » Revision 4

Revision 3 (Alexey Khoroshilov, 01/18/2015 01:30 AM) → Revision 4/27 (Alexey Khoroshilov, 01/18/2015 01:31 AM)

h1. Jessie2 
  (fork of the Jessie plugin for Frama-C) 

 *Jessie2* is a fork of the Jessie plug-in that allows deductive verification of C programs annotated with "ACSL":http://frama-c.com/acsl.html and is primarily targeted at Linux kernel modules source code. It uses the language and tools of the "Why3 verification platform":http://why3.lri.fr/. Unlike    original Jessie, Jessie2 is not distributed as a part of the "Why2 verification platform":http://why.lri.fr/ and is compiled/installed separately. 
 *Note*: For now, this fork requires modified version of the __Frama-C__ source code analysis platform, that is based on the @Neon 20140301@ version of the original platform. 

 h2. Installation 

 h3. Using OPAM 

   * Install "OPAM":https://opam.ocaml.org/ as described on the OPAM "documentation":https://opam.ocaml.org/doc/Install.html. 
     For example (installing to @/usr/local/bin@ unsing the binary installer): 
     <pre><code class="bash"> 
     wget https://raw.github.com/ocaml/opam/master/shell/opam_installer.sh 
     chmod +x opam_installer.sh 
     sudo ./opam_installer.sh /usr/local/bin 
     </code></pre> 
   * Initialize OPAM to use the OCaml 4.02.1 compiler: 
     <pre><code class="bash"> 
     opam init --comp 4.02.1 
     eval `opam config env` 
     </code></pre> 
   * Install "Git":http://git-scm.com/. 
     For example on Ubuntu: 
     <pre><code class="bash"> 
     sudo apt-get install git 
     </code></pre> 
   * Add ISPRAS OPAM repository at @https://forge.ispras.ru/git/astraver.opam-repository.git@ with Jessie2 and modified Frama-C Neon packages to the OPAM installation 
     (@ispras@ is just an arbitrary name of the new repository): 
     <pre><code class="bash"> 
     opam repo add ispras https://forge.ispras.ru/git/astraver.opam-repository.git 
     </code></pre> 
   * Install external dependencies for the Jessie2 and Frama-C build i.e. Autoconf, Gtk2 development files and M4. 
     Ubuntu example: 
     <pre><code class="bash"> 
     sudo apt-get install $(opam install -e ubuntu jessie2) 
     </code></pre> 
   * Build and install the Jessie2 plugin for Frama-C with OPAM (the Frama-C itself will be built and installed automatically). One 
     can use the @-j@ option to speed-up compilation on a multi-core machine: 
     <pre><code class="bash"> 
     opam install -j 4 jessie2 
     </code></pre> 
   * Build and install either original or patched (negative assumption highlighting and minor explanation fixes) version of the Why3 verification platform: 
     <pre><code class="bash"> 
     sudo apt-get install $(opam install -e ubuntu why3) # Install GMP (external dependency) on Ubuntu 
     opam install -j 4 why3 
     </code></pre> 
   * The one using Jessie would also likely need SMT solvers e.g. "Alt-Ergo":http://alt-ergo.ocamlpro.com/ (also "Z3":http://http://z3.codeplex.com/, "CVC4":http://cvc4.cs.nyu.edu/web/ and others). Alt-Ergo can be installed via OPAM: 
     <pre><code class="bash"> 
      opam install alt-ergo altgr-ergo satML-plugin 
     </code></pre> 
   * The Why3 IDE should be initialized to detect available provers (and plugins): 
     <pre><code class="bash"> 
     why3 config --detect-provers --detect-plugins 
     </code></pre> 

 h2. Our Repositories