This repository has been archived on 2021-01-01. You can view files and clone it, but cannot push or open issues or pull requests.
isabelle-ofmc/examples/ROOT.ML

77 lines
3.0 KiB
Standard ML

(*****************************************************************************
* HOL-OCL --- connecting OFMC and Isabelle/HOL
*
* ROOT.ML ---
* This file is part of Isabelle-OFMC.
*
* Copyright (c) 2009 Achim D. Brucker, Germany
*
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
* met:
*
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* * Redistributions in binary form must reproduce the above
* copyright notice, this list of conditions and the following
* disclaimer in the documentation and/or other materials provided
* with the distribution.
*
* * Neither the name of the copyright holders nor the names of its
* contributors may be used to endorse or promote products derived
* from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
******************************************************************************)
(* $Id: ROOT.ML 931 2009-11-01 22:44:01Z brucker $ *)
val today = (Date.toString(Date.fromTimeUniv (Time.now())))^" (UTC)"
val hostname = getOpt (OS.Process.getEnv "HOSTNAME", "hostname not set")
val timer = Timer.startRealTimer ()
val log_file = "document/report.tex"
val _ = File.write (Path.explode (log_file))
( "% This file was generated automatically \n"
^"\\section{Runtime Report}\n"
^"All reported runtime are measured on host ``"^hostname^"'' on "^today^".\n\n"
^"\\begin{tabular}{lr}\n"
)
fun log_thy thy =
let
val start = Timer.checkRealTimer timer
val _ = use_thy thy
val stop = Timer.checkRealTimer timer
val duration = Time.-(stop,start)
val _ = File.append (Path.explode(log_file)) (" "^thy^" & "^(Time.toString duration)^"\\\\\n")
in () end
val _ = map log_thy [
"ISOsymKeyTwoPassUnilateralAuthProt",
"Denning-Sacco",
"nsl",
"ISOpubKeyOnePassUnilateralAuthProt",
"WideMouthFrog",
"Bilateral-Key_Exchange",
"nsl-ks"
]
val _ = File.append (Path.explode (log_file)) ("\\end{tabular}")