summaryrefslogtreecommitdiff
path: root/utils/nofib-analyse
diff options
context:
space:
mode:
authorIan Lynagh <igloo@earth.li>2006-12-12 16:00:20 +0000
committerIan Lynagh <igloo@earth.li>2006-12-12 16:00:20 +0000
commit204a4f5d982669a00c2c2a7e1c32ce79fece9a66 (patch)
tree0117ef3528c2537788df8d019a7e1884056e836d /utils/nofib-analyse
parent382fce427106197b5e7dec81165af20329ac6cc2 (diff)
downloadhaskell-204a4f5d982669a00c2c2a7e1c32ce79fece9a66.tar.gz
Fix some warnings
Diffstat (limited to 'utils/nofib-analyse')
-rw-r--r--utils/nofib-analyse/Main.hs19
1 files changed, 14 insertions, 5 deletions
diff --git a/utils/nofib-analyse/Main.hs b/utils/nofib-analyse/Main.hs
index 7a1991ec53..3405adde46 100644
--- a/utils/nofib-analyse/Main.hs
+++ b/utils/nofib-analyse/Main.hs
@@ -11,14 +11,13 @@ import Slurp
import CmdLine
import Text.Printf
-import Text.Html hiding ((!))
+import Text.Html hiding (cols, rows, (!))
import qualified Text.Html as Html ((!))
import qualified Data.Map as Map
import Data.Map (Map)
import System.Console.GetOpt
import System.Exit ( exitWith, ExitCode(..) )
-import Numeric ( showFloat, showFFloat, showSigned )
import Control.Monad
import Data.Maybe ( isNothing )
import Data.Char
@@ -33,8 +32,10 @@ import Data.List
die :: String -> IO a
die s = hPutStr stderr s >> exitWith (ExitFailure 1)
+usageHeader :: String
usageHeader = "usage: nofib-analyse [OPTION...] <logfile1> <logfile2> ..."
+main :: IO ()
main = do
when (not (null cmdline_errors) || OptHelp `elem` flags) $
@@ -61,8 +62,8 @@ main = do
let column_headings = map (reverse . takeWhile (/= '/') . reverse) other_args
-- sanity check
- sequence_ [ checkTimes prog res | table <- results,
- (prog,res) <- Map.toList table ]
+ sequence_ [ checkTimes prog res | result_table <- results,
+ (prog,res) <- Map.toList result_table ]
case () of
_ | html ->
@@ -104,6 +105,9 @@ data PerModuleTableSpec =
(a -> Bool) -- Result within reasonable limits?
-- The various per-program aspects of execution that we can generate results for.
+size_spec, alloc_spec, runtime_spec, muttime_spec, gctime_spec,
+ gcwork_spec, instrs_spec, mreads_spec, mwrite_spec, cmiss_spec
+ :: PerProgTableSpec
size_spec = SpecP "Binary Sizes" "Size" "binary-sizes" binary_size compile_status always_ok
alloc_spec = SpecP "Allocations" "Allocs" "allocations" allocs run_status always_ok
runtime_spec = SpecP "Run Time" "Runtime" "run-times" (mean run_time) run_status time_ok
@@ -115,6 +119,7 @@ mreads_spec = SpecP "Memory Reads" "Reads" "mem-reads" mem_reads run_status alw
mwrite_spec = SpecP "Memory Writes" "Writes" "mem-writes" mem_writes run_status always_ok
cmiss_spec = SpecP "Cache Misses" "Misses" "cache-misses" cache_misses run_status always_ok
+all_specs :: [PerProgTableSpec]
all_specs = [
size_spec,
alloc_spec,
@@ -161,15 +166,18 @@ checkTimes prog results = do
-- These are the per-prog tables we want to generate
+per_prog_result_tab :: [PerProgTableSpec]
per_prog_result_tab =
[ size_spec, alloc_spec, runtime_spec, muttime_spec, gctime_spec,
gcwork_spec, instrs_spec, mreads_spec, mwrite_spec, cmiss_spec ]
-- A single summary table, giving comparison figures for a number of
-- aspects, each in its own column. Only works when comparing two runs.
+normal_summary_specs :: [PerProgTableSpec]
normal_summary_specs =
[ size_spec, alloc_spec, runtime_spec ]
+cachegrind_summary_specs :: [PerProgTableSpec]
cachegrind_summary_specs =
[ size_spec, alloc_spec, instrs_spec, mreads_spec, mwrite_spec ]
@@ -181,6 +189,7 @@ pickSummary rs
| isNothing (instrs (head (Map.elems (head rs)))) = normal_summary_specs
| otherwise = cachegrind_summary_specs
+per_module_result_tab :: [PerModuleTableSpec]
per_module_result_tab =
[ SpecM "Module Sizes" "mod-sizes" module_size always_ok
, SpecM "Compile Times" "compile-time" compile_time time_ok
@@ -195,7 +204,7 @@ time_ok t = t > tooquick_threshold
-----------------------------------------------------------------------------
-- HTML page generation
---htmlPage :: Results -> [String] -> Html
+htmlPage :: [ResultTable] -> [String] -> Html
htmlPage results args
= header << thetitle << reportTitle
+++ hr