# HG changeset patch # User haftmann # Date 1197927612 -3600 # Node ID c65add60a1e4e56db23bea670acb97ba11a20c5f # Parent ded611be9604ad0a227ef0bbf4a1e190d7d66373 tuned diff -r ded611be9604 -r c65add60a1e4 src/Pure/General/output.ML --- a/src/Pure/General/output.ML Mon Dec 17 18:39:18 2007 +0100 +++ b/src/Pure/General/output.ML Mon Dec 17 22:40:12 2007 +0100 @@ -125,25 +125,27 @@ val timing = ref false; (*generic timing combinator*) -fun gen_timeit flag some_msg f = +fun gen_timeit flag msg f = if flag then let val start = start_timing (); val result = f (); - val _ = Option.map warning some_msg; - val _ = warning (end_timing start); + val end_msg = end_timing start; + val output_msg = if msg = "" then end_msg + else msg ^ " - " ^ end_msg; + val _ = warning output_msg; in result end else f (); (*conditional timing*) -fun cond_timeit flag = gen_timeit flag NONE; +fun cond_timeit flag = gen_timeit flag ""; (*unconditional timing*) fun timeit x = cond_timeit true x; (*timed application function*) fun timeap f x = timeit (fn () => f x); -fun timeap_msg s f x = gen_timeit true (SOME s) (fn () => f x); +fun timeap_msg s f x = gen_timeit true s (fn () => f x); (* accumulated timing *)