src/HOL/Mirabelle/Tools/mirabelle_try0.ML
author haftmann
Wed, 08 Aug 2012 22:14:39 +0200
changeset 48740 d75450fe955a
parent 47942 49b05b9ead33
child 62519 a564458f94db
permissions -rw-r--r--
corrected header
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
48740
d75450fe955a corrected header
haftmann
parents: 47942
diff changeset
     1
(*  Title:      HOL/Mirabelle/Tools/mirabelle_try0.ML
47891
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