diff options
author | Pierre-Marie Pédrot <pierre-marie.pedrot@inria.fr> | 2016-05-04 13:30:00 +0200 |
---|---|---|
committer | Pierre-Marie Pédrot <pierre-marie.pedrot@inria.fr> | 2016-05-04 13:33:08 +0200 |
commit | a6de02fcfde76f49b10d8481a2423692fa105756 (patch) | |
tree | 344a2e7114b8cb9cc0e54d8d801b4f7cdf5d6d7b /stm | |
parent | c81228e693dea839f648ddc95f7cedec22d6a47a (diff) | |
parent | 174fd1f853f47d24b350a53e7f186ab37829dc2a (diff) |
Merge branch 'v8.5'
Diffstat (limited to 'stm')
-rw-r--r-- | stm/stm.ml | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/stm/stm.ml b/stm/stm.ml index b25e88812..c296361a1 100644 --- a/stm/stm.ml +++ b/stm/stm.ml @@ -1840,7 +1840,7 @@ let known_state ?(redefine_qed=false) ~cache id = if ctac then Hooks.(call tactic_being_run true); vernac_interp id x; if ctac then Hooks.(call tactic_being_run false); - if eff then update_global_env ()), cache, true + if eff then update_global_env ()), (if eff then `Yes else cache), true | `Fork ((x,_,_,_), None) -> (fun () -> reach view.next; vernac_interp id x; wall_clock_last_fork := Unix.gettimeofday () @@ -2248,13 +2248,14 @@ let process_transaction ?(newtip=Stateid.fresh ()) ~tty verbose c (loc, expr) = vernac_interp (VCS.get_branch_pos head) x; `Ok | VtSideff l, w -> + let ceff_in_proof = not (VCS.Branch.equal head VCS.Branch.master) in let id = VCS.new_node ~id:newtip () in VCS.checkout VCS.Branch.master; - VCS.commit id (Cmd {ctac=false;ceff=true;cast=x;cids=l;cqueue=`MainQueue}); let replay = match x.expr with | VernacDefinition(_, _, DefineBody _) -> None | _ -> Some x in + VCS.commit id (Cmd {ctac=false;ceff=ceff_in_proof;cast=x;cids=l;cqueue=`MainQueue}); VCS.propagate_sideff replay; VCS.checkout_shallowest_proof_branch (); Backtrack.record (); if w == VtNow then finish (); `Ok |