src/HOL/Mirabelle/Tools/mirabelle_try0.ML
author wenzelm
Wed, 04 Oct 2017 12:00:53 +0200
changeset 66787 64b47495676d
parent 62519 a564458f94db
permissions -rw-r--r--
obsolete;
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) =
62519
a564458f94db tuned signature -- clarified modules;
wenzelm
parents: 48740
diff changeset
    16
  if Timeout.apply (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 ()
62519
a564458f94db tuned signature -- clarified modules;
wenzelm
parents: 48740
diff changeset
    19
  handle Timeout.TIMEOUT _ => log (try0_tag id ^ "timeout")
47891
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