]> matita.cs.unibo.it Git - helm.git/commitdiff
added calbback to make the profiler silent
authorEnrico Tassi <enrico.tassi@inria.fr>
Fri, 4 Nov 2005 16:30:33 +0000 (16:30 +0000)
committerEnrico Tassi <enrico.tassi@inria.fr>
Fri, 4 Nov 2005 16:30:33 +0000 (16:30 +0000)
helm/ocaml/extlib/hExtlib.ml
helm/ocaml/extlib/hExtlib.mli

index c09dcf2c10fefc0f8fd6b51dc1ee7b05d8b1cfd4..c66236e43ae653228073e28de90bf9890b83fd23 100644 (file)
 
 (** PROFILING *)
 
+(* we should use a key in te registry, but we can't see the registry.. *)
 let profiling_enabled = true
 
+let profiling_printings = ref (fun () -> true)
+let set_profiling_printings f = profiling_printings := f
+
 type profiler = { profile : 'a 'b. ('a -> 'b) -> 'a -> 'b }
 let profile ?(enable = true) =
- if profiling_enabled && enable then
+ if profiling_enabled  && enable then
   function s ->
    let total = ref 0.0 in
    let profile f x =
@@ -48,8 +52,9 @@ let profile ?(enable = true) =
    in
    at_exit
     (fun () ->
-      print_endline
-       ("!! TOTAL TIME SPENT IN " ^ s ^ ": " ^ string_of_float !total));
+      if !profiling_printings () then
+        prerr_endline
+         ("!! TOTAL TIME SPENT IN " ^ s ^ ": " ^ string_of_float !total));
    { profile = profile }
  else
   function _ -> { profile = fun f x -> f x }
index 6e0484b87e3360a22204b8737628dcaeb309fc90..d12c042f56d786af6a99f653ff248b1fb44c6552 100644 (file)
@@ -74,4 +74,5 @@ type profiler = { profile : 'a 'b. ('a -> 'b) -> 'a -> 'b }
   (** @return a profiling function; [s] is used for labelling the total time at
    * the end of the execution *)
 val profile : ?enable:bool -> string -> profiler
+val set_profiling_printings : (unit -> bool) -> unit