this repo has no description
1opam-version: "2.0" 2synopsis: "Platform dedicated to the analysis of source code written in C" 3description:""" 4Frama-C gathers several analysis techniques in a single collaborative 5framework, based on analyzers (called "plug-ins") that can build upon the 6results computed by other analyzers in the framework. 7Thanks to this approach, Frama-C provides sophisticated tools, including: 8- an analyzer based on abstract interpretation (Eva plug-in); 9- a program proof framework based on weakest precondition calculus (WP plug-in); 10- a program slicer (Slicing plug-in); 11- a tool for verification of automata-based properties (Aoraï plug-in); 12- a runtime verification tool (E-ACSL plug-in); 13- several tools for code base exploration and dependency analysis 14 (plug-ins From, Impact, Metrics, Occurrence, Scope, etc.). 15These plug-ins communicate between each other via the Frama-C API 16and via ACSL (ANSI/ISO C Specification Language) properties. 17""" 18maintainer: "frama-ci-bot@frama-c.com" 19authors: [ 20 "Michele Alberti" 21 "Thibaud Antignac" 22 "Gergö Barany" 23 "Patrick Baudin" 24 "Nicolas Bellec" 25 "Thibaut Benjamin" 26 "Allan Blanchard" 27 "Lionel Blatter" 28 "François Bobot" 29 "Richard Bonichon" 30 "Vincent Botbol" 31 "Quentin Bouillaguet" 32 "David Bühler" 33 "Zakaria Chihani" 34 "Loïc Correnson" 35 "Julien Crétin" 36 "Pascal Cuoq" 37 "Zaynah Dargaye" 38 "Basile Desloges" 39 "Jean-Christophe Filliâtre" 40 "Philippe Herrmann" 41 "Maxime Jacquemin" 42 "Florent Kirchner" 43 "Alexander Kogtenkov" 44 "Remi Lazarini" 45 "Tristan Le Gall" 46 "Kilyan Le Gallic" 47 "Jean-Christophe Léchenet" 48 "Matthieu Lemerre" 49 "Dara Ly" 50 "David Maison" 51 "Claude Marché" 52 "André Maroneze" 53 "Thibault Martin" 54 "Fonenantsoa Maurica" 55 "Melody Méaulle" 56 "Benjamin Monate" 57 "Yannick Moy" 58 "Pierre Nigron" 59 "Anne Pacalet" 60 "Valentin Perrelle" 61 "Guillaume Petiot" 62 "Dario Pinto" 63 "Virgile Prevosto" 64 "Armand Puccetti" 65 "Félix Ridoux" 66 "Virgile Robles" 67 "Jan Rochel" 68 "Muriel Roger" 69 "Cécile Ruet-Cros" 70 "Julien Signoles" 71 "Nicolas Stouls" 72 "Kostyantyn Vorobyov" 73 "Boris Yakobowski" 74] 75homepage: "https://frama-c.com/" 76license: "LGPL-2.1-only" 77dev-repo: "git+https://git.frama-c.com/pub/frama-c.git" 78doc: "https://frama-c.com/download/user-manual-30.0-Zinc.pdf" 79bug-reports: "https://git.frama-c.com/pub/frama-c/issues" 80tags: [ 81 "deductive verification" 82 "program verification" 83 "formal specification" 84 "automated theorem prover" 85 "interactive theorem prover" 86 "C" 87 "plugins" 88 "abstract interpretation" 89 "slicing" 90 "weakest precondition" 91 "ACSL" 92 "dataflow analysis" 93 "runtime verification" 94] 95 96build: [ 97 ["bash" "dev/disable-plugins.sh" "e-acsl"] { os-family = "windows" } 98 ["bash" "dev/disable-plugins.sh" "gui"] { os = "macos" } 99 ["dune" "build" "-j%{jobs}%" "-p" name "--promote-install-files=false" 100 "@install" 101 "@doc" { with-doc } 102 ] 103] 104 105install: [ 106 [make 107 "RELEASE=yes" "PREFIX=%{prefix}%" "MANDIR=%{man}%" 108 "DOCDIR=%{doc}%" { with-doc } 109 "install" 110 ] 111] 112 113remove: [ 114 [make "PREFIX=%{prefix}%" "-f" "ivette/Makefile.installation" "uninstall"] 115] 116 117run-test: [ 118 ["dune" "exec" "--" "frama-c-ptests" "tests" "src/plugins/*/tests" 119 ] { arch != "ppc64" & arch != "x86_32" & arch != "arm32" & os-distribution != "freebsd"} 120 ["dune" "build" "-j%{jobs}%" "@ptests_config" 121 ] { arch != "ppc64" & arch != "x86_32" & arch != "arm32" & os-distribution != "freebsd"} 122] 123 124depends: [ 125 "dune" { > "3.13.0" } 126 "dune-configurator" 127 "dune-site" { > "3.13.0" } 128 ( "alt-ergo-free" | "alt-ergo" ) 129 "conf-graphviz" { post } 130 "conf-time" { with-test } 131 "menhir" { >= "20181006" & build } 132 "ocaml" { >= "4.14.0" } 133 "ocamlgraph" { >= "2.0.0" } 134 "ocamlgraph" { with-test & >= "2.1.0" } 135 "ocp-indent" { with-dev-setup & >= "1.8.1" } 136 "odoc" { with-doc } 137 "unionFind" { >= "20220107" } 138 "why3" { >= "1.7.1" & < "1.8.0" } 139 "yaml" { >= "3.0.0" } 140 "yojson" {>= "1.6.0" & (>= "2.0.1" | !with-test)} 141 "zarith" { >= "1.9" } 142 143 # PPXs 144 "ppx_deriving" 145 "ppx_deriving_yojson" 146 "ppx_deriving_yaml" { >= "0.2.0" } 147 148 # GTK3 disabled on macOS (segfaults), and made optional on Windows 149 # (due to complex situation with Cygwin + MinGW). 150 "lablgtk3" { >= "3.1.0" & os!="macos" & os-family!="windows" } 151 "lablgtk3-sourceview3" { os!="macos" & os-family!="windows" } 152 "conf-gtksourceview3" { os!="macos" & os-family!="windows" } 153] 154 155# Note: do not put particular versions here, if some version is *incompatible*, 156# use the field 'conflicts'. 157depopts: [ 158 "apron" 159 "mlmpfr" 160 "zmq" 161 "lablgtk3" { os-family="windows" } 162 "lablgtk3-sourceview3" { os-family="windows" } 163 "conf-gtksourceview3" { os-family="windows" } 164] 165 166conflicts: [ 167 "cairo2" { < "0.6.2" } 168 "mlmpfr" { < "4.1.0-bugfix2" } 169 "pilat" { <= "1.6" } 170 "result" { < "1.5" } 171] 172 173post-messages: [ 174"The Frama-C/WP plug-in requires one or more external prover(s). 175Recommended provers are: 176- Alt-Ergo (https://alt-ergo.ocamlpro.com) 177- CVC4 (https://cvc4.github.io) 178- CVC5 (https://cvc5.github.io) 179- Z3 (https://github.com/Z3Prover/z3) 180Use 'why3 config detect' to configure new provers. 181 " { success } 182"Ivette is a new GUI for Frama-C, currently in development. 183Run 'ivette' once to finalize installation (requires an internet connection). 184Once finalized, 'ivette' will work offline. 185Finalization also requires Node v20 or v22 and Yarn: 186- install NVM (https://github.com/nvm-sh/nvm) 187- run 'nvm use 22' 188- run 'npm install --global yarn'" { success } 189] 190 191x-maintenance-intent: [ 192 "(latest).(any)" 193 "(latest-1).(latest)" 194 "(latest-2).(latest)" 195 "(latest-3).(latest)" 196 "(latest-4).(latest)" 197] 198 199url { 200 src: "https://www.frama-c.com/download/frama-c-30.0-Zinc.tar.gz" 201 checksum: "sha256=3ac0f995261ec829a7bd042bf70fc29ac6379029eb9df30bcc044748eb4d2a56" 202}