{-# LANGUAGE TupleSections #-} {-# LANGUAGE RecordWildCards #-} {-# LANGUAGE ScopedTypeVariables #-} module Main where import BenchShow import Data.List selectBench :: (SortColumn -> Either String [(String, Double)]) -> [String] selectBench f = -- reverse fmap fst $ either error (sortOn snd) $ f $ ColumnIndex 0 main :: IO () main = do let icu = "Normalize NFD/text-icu/" let utrans = "Normalize NFD/unicode-transforms/" let icu1 = "text-icu/NFD/" let utrans1 = "unicode-transforms/NFD/" let utf8proc1 = "utf8proc/NFD/" let utrans2 = "unicode-transforms-text/NFD/" let cfg = defaultConfig { classifyBenchmark = \bs -> case stripPrefix icu bs of Just x -> Just ("ICU", x) Nothing -> case stripPrefix icu1 bs of Just x -> Just ("ICU", x) Nothing -> case stripPrefix utrans bs of Just x -> Just ("unicode-transforms",x) Nothing -> case stripPrefix utrans1 bs of Just x -> Just ("unicode-transforms",x) Nothing -> case stripPrefix utrans2 bs of Just x -> Just ("unicode-transforms",x) Nothing -> fmap ("utf8proc",) $ stripPrefix utf8proc1 bs , selectBenchmarks = selectBench , presentation = Groups PercentDiff } -- graph "results.csv" "unicode-graph" cfg report "results.csv" Nothing cfg