From 9beb61d843560c7d897e255161e274d71d5abd9a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Loi=CC=88c=20Correnson?= <loic.correnson@cea.fr>
Date: Thu, 1 Oct 2020 14:04:16 +0200
Subject: [PATCH] [wp] cache clearing don't need lazy hash

---
 src/plugins/wp/Cache.ml      | 7 ++-----
 src/plugins/wp/Cache.mli     | 2 +-
 src/plugins/wp/ProverWhy3.ml | 3 +--
 3 files changed, 4 insertions(+), 8 deletions(-)

diff --git a/src/plugins/wp/Cache.ml b/src/plugins/wp/Cache.ml
index c974a203dc5..afbda25944d 100644
--- a/src/plugins/wp/Cache.ml
+++ b/src/plugins/wp/Cache.ml
@@ -213,9 +213,9 @@ let set_cache_result ~mode hash prover result =
         Wp_parameters.warning ~current:false ~once:true
           "can not update cache (%s)" (Printexc.to_string err)
 
-let remove_cache_result hash =
-  let hash = Lazy.force hash in
+let clear_result ~digest prover goal =
   try
+    let hash = digest prover goal in
     let dir = get_usable_dir ~make:true () in
     let file = Printf.sprintf "%s/%s.json" dir hash in
     Extlib.safe_remove file
@@ -287,7 +287,4 @@ let get_result ~digest ~runner ~timeout ~steplimit prover goal =
             | _ -> ()
           end
 
-let clean_entry_for ~digest prover goal =
-  remove_cache_result (lazy (digest prover goal))
-
 (* -------------------------------------------------------------------------- *)
diff --git a/src/plugins/wp/Cache.mli b/src/plugins/wp/Cache.mli
index 0ed21713a0d..62ce8ec540b 100644
--- a/src/plugins/wp/Cache.mli
+++ b/src/plugins/wp/Cache.mli
@@ -41,6 +41,6 @@ type 'a runner =
   VCS.result Task.task
 
 val get_result: digest:('a digest) -> runner:('a runner) -> 'a runner
-val clean_entry_for: digest:('a digest) -> Why3Provers.t -> 'a -> unit
+val clear_result: digest:('a digest) -> Why3Provers.t -> 'a -> unit
 
 (**************************************************************************)
diff --git a/src/plugins/wp/ProverWhy3.ml b/src/plugins/wp/ProverWhy3.ml
index 9769f8b30db..fe578bed812 100644
--- a/src/plugins/wp/ProverWhy3.ml
+++ b/src/plugins/wp/ProverWhy3.ml
@@ -1275,9 +1275,8 @@ let scriptfile ~force ~ext wpo =
   Format.sprintf "%s/%s%s" (dir :> string) wpo.Wpo.po_sid ext
 
 let call_editor ~script wpo pconf driver prover task =
-  let digest = digest wpo driver in
   Wp_parameters.feedback ~ontty:`Transient "Editing %S..." script ;
-  Cache.clean_entry_for digest prover task ;
+  Cache.clear_result ~digest:(digest wpo driver) prover task ;
   let call = Why3.Call_provers.call_editor ~command:(editor pconf) script in
   call_prover_task ~timeout:None ~steps:None pconf.prover call
 
-- 
GitLab