Skip to content
Snippets Groups Projects
Commit 025f38ec authored by Loïc Correnson's avatar Loïc Correnson
Browse files

Merge branch 'feature/wp/run-all-provers' into 'master'

Run all provers option

See merge request frama-c/frama-c!2469
parents 5553ee2d 93f6820a
No related branches found
No related tags found
No related merge requests found
...@@ -20,6 +20,8 @@ ...@@ -20,6 +20,8 @@
# <Prover>: prover # <Prover>: prover
############################################################################### ###############################################################################
- WP [2019/12/04] Added option -wp-run-all-provers
########################## ##########################
Plugin WP 20.0 (Calcium) Plugin WP 20.0 (Calcium)
########################## ##########################
......
...@@ -320,7 +320,7 @@ let spawn ?(monitor=silent) ?pool (jobs : ('a * bool Task.task) list) = ...@@ -320,7 +320,7 @@ let spawn ?(monitor=silent) ?pool (jobs : ('a * bool Task.task) list) =
let canceled = ref false in let canceled = ref false in
let callback a r = let callback a r =
if r then if r then
begin if not !canceled then begin if not !canceled && not (Wp_parameters.RunAllProvers.get()) then
begin begin
canceled := true ; canceled := true ;
monitor (Some a) ; monitor (Some a) ;
......
...@@ -995,6 +995,9 @@ Support for \textsf{Why-3 IDE} is no longer provided. ...@@ -995,6 +995,9 @@ Support for \textsf{Why-3 IDE} is no longer provided.
installing \textsf{Frama-C}. installing \textsf{Frama-C}.
The option reads your \textsf{Why-3} configuration and prints the available The option reads your \textsf{Why-3} configuration and prints the available
provers with their \verb+-wp-prover <p>+ code names. provers with their \verb+-wp-prover <p>+ code names.
\item[\tt -wp-(no)-run-all-provers] Run all specified provers on each goal not
proved by Qed. When a prover succeeds in proving the goal, the others are not
stopped. (default is: no).
\item[\tt -wp-gen] only generates proof obligations, does not run provers. \item[\tt -wp-gen] only generates proof obligations, does not run provers.
See option \texttt{-wp-out} to obtain the generated proof obligations. See option \texttt{-wp-out} to obtain the generated proof obligations.
\item[\tt -wp-par <n>] limits the number of parallel process runs for \item[\tt -wp-par <n>] limits the number of parallel process runs for
...@@ -1241,7 +1244,7 @@ interactively or incrementally, it is often the case where most proof obligation ...@@ -1241,7 +1244,7 @@ interactively or incrementally, it is often the case where most proof obligation
from one \textsf{WP} execution to the other. To reduce this costs, a cache of prover results can be used from one \textsf{WP} execution to the other. To reduce this costs, a cache of prover results can be used
and stored in your session. and stored in your session.
% The cache can only be used with \textsf{Why-3} provers, it does not work with native \textsf{Alt-Ergo} and \textsf{Coq} provers. % The cache can only be used with \textsf{Why-3} provers, it does not work with native \textsf{Alt-Ergo} and \textsf{Coq} provers.
There are different ways of using the cache, depending on your precise needs. There are different ways of using the cache, depending on your precise needs.
The main option to control cache usage is \verb+-wp-cache+, documented below: The main option to control cache usage is \verb+-wp-cache+, documented below:
......
...@@ -567,6 +567,14 @@ module Provers = String_list ...@@ -567,6 +567,14 @@ module Provers = String_list
" "
end) end)
let () = Parameter_customize.set_group wp_prover
module RunAllProvers =
False(struct
let option_name = "-wp-run-all-provers"
let help = "Run all specified provers on each goal not proved by Qed. \
Do not stop when a prover succeeds. (default: no)"
end)
let () = Parameter_customize.set_group wp_prover let () = Parameter_customize.set_group wp_prover
module Cache = String module Cache = String
(struct (struct
......
...@@ -105,6 +105,7 @@ module PrecondWeakening : Parameter_sig.Bool ...@@ -105,6 +105,7 @@ module PrecondWeakening : Parameter_sig.Bool
module Detect: Parameter_sig.Bool module Detect: Parameter_sig.Bool
module Generate:Parameter_sig.Bool module Generate:Parameter_sig.Bool
module Provers: Parameter_sig.String_list module Provers: Parameter_sig.String_list
module RunAllProvers: Parameter_sig.Bool
module Cache: Parameter_sig.String module Cache: Parameter_sig.String
module Drivers: Parameter_sig.String_list module Drivers: Parameter_sig.String_list
module Script: Parameter_sig.String module Script: Parameter_sig.String
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment