write changed .prv files only, to avoid writing into src file-space by default;
authorwenzelm
Sun, 06 Nov 2011 16:41:53 +0100
changeset 46239157e74588c49
parent 46238 4849133d7a78
child 46240 09bef4e1cc55
write changed .prv files only, to avoid writing into src file-space by default;
src/HOL/SPARK/Tools/spark_vcs.ML
     1.1 --- a/src/HOL/SPARK/Tools/spark_vcs.ML	Sun Nov 06 16:29:22 2011 +0100
     1.2 +++ b/src/HOL/SPARK/Tools/spark_vcs.ML	Sun Nov 06 16:41:53 2011 +0100
     1.3 @@ -880,6 +880,10 @@
     1.4           prefix = prefix}}
     1.5    | x => x);
     1.6  
     1.7 +fun write_prv path s =
     1.8 +  let val path_prv = Path.ext "prv" path;
     1.9 +  in if try File.read path_prv = SOME s then () else File.write path_prv s end;
    1.10 +
    1.11  fun close thy =
    1.12    thy |>
    1.13    VCs.map (fn
    1.14 @@ -888,7 +892,7 @@
    1.15               (if is_some p then apfst else apsnd) (cons vc)) vcs ([], []) of
    1.16             (proved, []) =>
    1.17               (Thm.join_proofs (maps (the o #2 o snd) proved);
    1.18 -              File.write (Path.ext "prv" path)
    1.19 +              write_prv path
    1.20                  (implode (map (fn (s, _) => snd (strip_number s) ^
    1.21                     " -- proved by " ^ Distribution.version ^ "\n") proved));
    1.22                {pfuns = pfuns, type_map = type_map, env = NONE})