src/HOL/Mirabelle/Tools/mirabelle_try0.ML
author blanchet
Fri, 18 May 2012 16:43:38 +0200
changeset 47942 49b05b9ead33
parent 47891 e3627a83b114
child 48740 d75450fe955a
permissions -rw-r--r--
added a timeout to "try0" in Mirabelle
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
47891
e3627a83b114 added "try0" tool to Mirabelle
blanchet
parents:
diff changeset
     1
(*  Title:      HOL/Mirabelle/Actions/mirabelle_try0.ML
e3627a83b114 added "try0" tool to Mirabelle
blanchet
parents:
diff changeset
     2
    Author:     Jasmin Blanchette, TU Munich
e3627a83b114 added "try0" tool to Mirabelle
blanchet
parents:
diff changeset
     3
*)
e3627a83b114 added "try0" tool to Mirabelle
blanchet
parents:
diff changeset
     4
e3627a83b114 added "try0" tool to Mirabelle
blanchet
parents:
diff changeset
     5
structure Mirabelle_Try0 : MIRABELLE_ACTION =
e3627a83b114 added "try0" tool to Mirabelle
blanchet
parents:
diff changeset
     6
struct
e3627a83b114 added "try0" tool to Mirabelle
blanchet
parents:
diff changeset
     7
e3627a83b114 added "try0" tool to Mirabelle
blanchet
parents:
diff changeset
     8
fun try0_tag id = "#" ^ string_of_int id ^ " try0: "
e3627a83b114 added "try0" tool to Mirabelle
blanchet
parents:
diff changeset
     9
e3627a83b114 added "try0" tool to Mirabelle
blanchet
parents:
diff changeset
    10
fun init _ = I
e3627a83b114 added "try0" tool to Mirabelle
blanchet
parents:
diff changeset
    11
fun done _ _ = ()
e3627a83b114 added "try0" tool to Mirabelle
blanchet
parents:
diff changeset
    12
47942
49b05b9ead33 added a timeout to "try0" in Mirabelle
blanchet
parents: 47891
diff changeset
    13
fun times_ten time = Time.fromMilliseconds (10 * Time.toMilliseconds time)
49b05b9ead33 added a timeout to "try0" in Mirabelle
blanchet
parents: 47891
diff changeset
    14
49b05b9ead33 added a timeout to "try0" in Mirabelle
blanchet
parents: 47891
diff changeset
    15
fun run id ({pre, timeout, log, ...}: Mirabelle.run_args) =
49b05b9ead33 added a timeout to "try0" in Mirabelle
blanchet
parents: 47891
diff changeset
    16
  if TimeLimit.timeLimit (times_ten timeout) (Try0.try0 (SOME timeout) ([], [], [], [])) pre
47891
e3627a83b114 added "try0" tool to Mirabelle
blanchet
parents:
diff changeset
    17
  then log (try0_tag id ^ "succeeded")
e3627a83b114 added "try0" tool to Mirabelle
blanchet
parents:
diff changeset
    18
  else ()
e3627a83b114 added "try0" tool to Mirabelle
blanchet
parents:
diff changeset
    19
  handle TimeLimit.TimeOut => log (try0_tag id ^ "timeout")
e3627a83b114 added "try0" tool to Mirabelle
blanchet
parents:
diff changeset
    20
e3627a83b114 added "try0" tool to Mirabelle
blanchet
parents:
diff changeset
    21
fun invoke _ = Mirabelle.register (init, Mirabelle.catch try0_tag run, done)
e3627a83b114 added "try0" tool to Mirabelle
blanchet
parents:
diff changeset
    22
e3627a83b114 added "try0" tool to Mirabelle
blanchet
parents:
diff changeset
    23
end