Skip to content

Commit

Permalink
Merge branch 'stats_parser'
Browse files Browse the repository at this point in the history
  • Loading branch information
dmpots committed Oct 7, 2010
2 parents f33f964 + c867c92 commit 708989e
Show file tree
Hide file tree
Showing 5 changed files with 45 additions and 35 deletions.
7 changes: 1 addition & 6 deletions tools/fibon-analyse/Fibon/Analyse/Analysis.hs
Original file line number Diff line number Diff line change
Expand Up @@ -11,19 +11,14 @@ import Data.Maybe
import qualified Data.Map as M
import Control.Monad.Error
import Fibon.Result
import Fibon.Analyse.AnalysisRoutines
import Fibon.Analyse.Parse
import Fibon.Analyse.Result
import Fibon.Analyse.Metrics
import Fibon.Analyse.Tables
import Statistics.Sample
import qualified Data.Vector.Unboxed as V

data Analysis a = Analysis {
fibonAnalysis :: (FibonResult -> IO FibonStats)-- ^ RunData analyser
, extraParser :: (String -> Maybe a) -- ^ extraStats parser
, extraAnalysis :: ([a] -> IO a) -- ^ extraStats analyser
}

runAnalysis :: Analysis a -> FilePath -> IO (Maybe [ResultColumn a])
runAnalysis analysis file = do
fibonResults <- parseFibonResults file
Expand Down
40 changes: 40 additions & 0 deletions tools/fibon-analyse/Fibon/Analyse/AnalysisRoutines.hs
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
module Fibon.Analyse.AnalysisRoutines(
noAnalysis
, Analysis(..)
)
where

import Fibon.Result
import Fibon.Analyse.Result
import Fibon.Analyse.Metrics
import Fibon.Analyse.ExtraStats

data Analysis a = Analysis {
fibonAnalysis :: (FibonResult -> IO FibonStats)-- ^ RunData analyser
, extraParser :: (String -> Maybe a) -- ^ extraStats parser
, extraAnalysis :: ([a] -> IO a) -- ^ extraStats analyser
}

noAnalysis :: Analysis a
noAnalysis = Analysis {
fibonAnalysis = return . getStats
, extraParser = const Nothing
, extraAnalysis = return . head
}
where
getStats fr = FibonStats {
compileTime = Single $ ExecTime ((buildTime . buildData) fr)
, binarySize = Single $ MemSize 0
, wallTime = Single $ ExecTime ((meanTime . summary . runData) fr)
}

ghcStatsAnalysis :: Analysis GhcStats
ghcStatsAnalysis = noAnalysis {
extraParser = parseGhcStats
}

--makeAnalysis :: Analysis a -> (String -> Maybe b) -> Analysis b




11 changes: 1 addition & 10 deletions tools/fibon-analyse/Fibon/Analyse/ExtraStats.hs
Original file line number Diff line number Diff line change
@@ -1,19 +1,10 @@
module Fibon.Analyse.ExtraStats(
GhcStats.GhcStats(..)
, parseGhcStats
, DummyStats(..)
)
where
import qualified Data.ByteString as B
import Fibon.Analyse.ExtraStats.GhcStats as GhcStats
import Fibon.Analyse.Metrics

parseGhcStats :: B.ByteString -> Maybe GhcStats
parseGhcStats :: String -> Maybe GhcStats
parseGhcStats = GhcStats.parseMachineReadableStats

data DummyStats = DummyStats {
d :: MemSize
}

data ExtraStats = GhcStats
deriving(Read, Show, Enum, Ord, Eq)
3 changes: 1 addition & 2 deletions tools/fibon-analyse/Fibon/Analyse/ExtraStats/GhcStats.hs
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@ module Fibon.Analyse.ExtraStats.GhcStats(
)
where

import qualified Data.ByteString as B
import Fibon.Analyse.Metrics

data GhcStats = GhcStats {
Expand All @@ -29,7 +28,7 @@ data GhcStats = GhcStats {



parseMachineReadableStats :: B.ByteString -> Maybe GhcStats
parseMachineReadableStats :: String -> Maybe GhcStats
parseMachineReadableStats _ = Nothing


19 changes: 2 additions & 17 deletions tools/fibon-analyse/Fibon/Analyse/Main.hs
Original file line number Diff line number Diff line change
@@ -1,9 +1,7 @@
module Main (main) where
import Fibon.Result
import Fibon.Analyse.AnalysisRoutines
import Fibon.Analyse.Analysis
import Fibon.Analyse.CommandLine
import Fibon.Analyse.ExtraStats
import Fibon.Analyse.Metrics
import Fibon.Analyse.Output
import Fibon.Analyse.Result
import Fibon.Analyse.Tables
Expand All @@ -13,7 +11,7 @@ import System.Exit
main :: IO ()
main = do
(opts, files) <- getCommandLine
mbResults <- mapM (\f -> runAnalysis simpleAnalysis f) files
mbResults <- mapM (\f -> runAnalysis noAnalysis f) files
case concat `fmap` sequence mbResults of
Nothing -> putStrLn "Error Parsing Results"
Just rs -> do
Expand All @@ -22,19 +20,6 @@ main = do
putStrLn $ renderSummaryTable rs norm fmt basicTable
putStrLn $ renderTables rs norm fmt basicTable

simpleAnalysis :: Analysis GhcStats
simpleAnalysis = Analysis {
fibonAnalysis = return . getStats
, extraParser = const Nothing
, extraAnalysis = return . head
}
where
getStats fr = FibonStats {
compileTime = Single $ ExecTime ((buildTime . buildData) fr)
, binarySize = Single $ MemSize 0
, wallTime = Single $ ExecTime ((meanTime . summary . runData) fr)

}

getCommandLine :: IO (Opt, [FilePath])
getCommandLine = do
Expand Down

0 comments on commit 708989e

Please sign in to comment.