aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorgareuselesinge2013-10-03 09:09:22 +0000
committergareuselesinge2013-10-03 09:09:22 +0000
commitc1388ce6338742ab20aea9774e6510f43d7697ff (patch)
tree32eeb4b1420cec7745a3f1008fd832f7b44723a1
parentc92af9e12b95b731e04834c3d28cde3a80156e9b (diff)
STM: delegate proofs to slaves only if they are not trivial
Still too simple and not configurable git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@16837 85f007b7-540e-0410-9357-904b9bb8a0f7
-rw-r--r--toplevel/stm.ml8
1 files changed, 6 insertions, 2 deletions
diff --git a/toplevel/stm.ml b/toplevel/stm.ml
index e20e75194e..8165da5d52 100644
--- a/toplevel/stm.ml
+++ b/toplevel/stm.ml
@@ -920,6 +920,8 @@ end = struct (* {{{ *)
let pstate = ["meta counter"; "evar counter"; "program-tcc-table"]
+let delegate_policy_check l = interactive () = `Yes || List.length l > 20
+
let collect_proof cur hd id =
prerr_endline ("Collecting proof ending at "^Stateid.to_string id);
let is_defined = function
@@ -934,10 +936,12 @@ let collect_proof cur hd id =
`NotOptimizable `MutualProofs (* TODO: enderstand where we need that *)
| Some (parent, (_,_,VernacProof(_,Some _) as v)), `Fork (_, hd', _) ->
assert (VCS.Branch.equal hd hd' || VCS.Branch.equal hd VCS.edit_branch);
- `Optimizable (parent, Some v, accn)
+ if delegate_policy_check accn then `Optimizable (parent, Some v, accn)
+ else `NotOptimizable `TooShort
| Some (parent, _), `Fork (_, hd', _) ->
assert (VCS.Branch.equal hd hd' || VCS.Branch.equal hd VCS.edit_branch);
- `MaybeOptimizable (parent, accn)
+ if delegate_policy_check accn then `MaybeOptimizable (parent, accn)
+ else `NotOptimizable `TooShort
| _, `Sideff se -> collect None (id::accn) view.next
| _ -> `NotOptimizable `Unknown in
match cur, (VCS.visit id).step with