aboutsummaryrefslogtreecommitdiff
path: root/stm
diff options
context:
space:
mode:
authorEnrico Tassi2016-06-05 21:21:43 +0200
committerEnrico Tassi2016-06-06 14:04:33 -0400
commit845dd3dd17b880999a956839c0d84d46de9e27b8 (patch)
tree10897262434b5bfa6a78bceaac8cab33ca7acd1b /stm
parente4d66a03148243f7611f4d7c164e775877184e03 (diff)
STM: each proof block can be enabled separately
By default we enable only {} and par: that are detectable in a complete way.
Diffstat (limited to 'stm')
-rw-r--r--stm/stm.ml10
1 files changed, 8 insertions, 2 deletions
diff --git a/stm/stm.ml b/stm/stm.ml
index 0e33bea3b2..1fd8325e86 100644
--- a/stm/stm.ml
+++ b/stm/stm.ml
@@ -1115,9 +1115,15 @@ let prev_node { id } =
mk_doc_node id (VCS.visit id)
let cur_node id = mk_doc_node id (VCS.visit id)
+let is_block_name_enabled name =
+ match !Flags.async_proofs_tac_error_resilience with
+ | `None -> false
+ | `All -> true
+ | `Only l -> List.mem name l
+
let detect_proof_block id name =
let name = match name with None -> "indent" | Some x -> x in
- if !Flags.async_proofs_tac_error_resilience &&
+ if is_block_name_enabled name &&
(if Flags.async_proofs_is_master () then
!Flags.async_proofs_mode != Flags.APoff else true)
then
@@ -2031,7 +2037,7 @@ let known_state ?(redefine_qed=false) ~cache id =
(* Absorb tactic errors from f () *)
let resilient_tactic id blockname f =
- if not !Flags.async_proofs_tac_error_resilience ||
+ if !Flags.async_proofs_tac_error_resilience = `None ||
(Flags.async_proofs_is_master () &&
!Flags.async_proofs_mode = Flags.APoff)
then f ()