aboutsummaryrefslogtreecommitdiffhomepage
path: root/lib/system.ml
diff options
context:
space:
mode:
authorGravatar filliatr <filliatr@85f007b7-540e-0410-9357-904b9bb8a0f7>1999-12-03 11:34:33 +0000
committerGravatar filliatr <filliatr@85f007b7-540e-0410-9357-904b9bb8a0f7>1999-12-03 11:34:33 +0000
commit76b16e44285d06236b9c00e24659138c376d54f3 (patch)
tree03bb85046c204828901f26d84e2196c37abaa7f2 /lib/system.ml
parentf20dbafa3e49c35414640e01c3549ad1c802d331 (diff)
modules profile, Coqinit et Coqtop (=main)
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@194 85f007b7-540e-0410-9357-904b9bb8a0f7
Diffstat (limited to 'lib/system.ml')
-rw-r--r--lib/system.ml37
1 files changed, 29 insertions, 8 deletions
diff --git a/lib/system.ml b/lib/system.ml
index 9da302d30..5422bc465 100644
--- a/lib/system.ml
+++ b/lib/system.ml
@@ -44,7 +44,14 @@ let all_subdirs dir =
let radd_path dir = List.iter add_path (all_subdirs dir)
+let safe_getenv_def var def =
+ try
+ Sys.getenv var
+ with Not_found ->
+ warning ("Environnement variable "^var^" not found: using '"^def^"' .");
+ def
+let home = (safe_getenv_def "HOME" ".")
(* TODO: rétablir glob (expansion ~user et $VAR) si on le juge nécessaire *)
let glob s = s
@@ -82,6 +89,9 @@ let is_in_path lpath filename =
let make_suffix name suffix =
if Filename.check_suffix name suffix then name else (name ^ suffix)
+let file_readable_p na =
+ try access (glob na) [R_OK];true with Unix_error (_, _, _) -> false
+
let open_trapping_failure open_fun name suffix =
let rname = make_suffix name suffix in
try open_fun rname with _ -> error ("Can't open " ^ rname)
@@ -141,11 +151,22 @@ let (extern_intern :
(* Time stamps. *)
-type time_stamp = float
-
-let get_time_stamp () = Unix.time()
-
-let compare_time_stamps t1 t2 =
- let dt = t2 -. t1 in
- if dt < 0.0 then -1 else if dt = 0.0 then 0 else 1
-
+type time = float * float * float
+
+let process_time () =
+ let t = times () in
+ (t.tms_utime, t.tms_stime)
+
+let get_time () =
+ let t = times () in
+ (time(), t.tms_utime, t.tms_stime)
+
+let time_difference (t1,_,_) (t2,_,_) = t2 -. t1
+
+let fmt_time_difference (startreal,ustart,sstart) (stopreal,ustop,sstop) =
+ [< 'rEAL(stopreal -. startreal); 'sTR" secs ";
+ 'sTR"(";
+ 'rEAL((-.) ustop ustart); 'sTR"u";
+ 'sTR",";
+ 'rEAL((-.) sstop sstart); 'sTR"s";
+ 'sTR")" >]