diff options
author | Jonas Smedegaard <dr@jones.dk> | 2013-01-21 01:42:39 +0100 |
---|---|---|
committer | Jonas Smedegaard <dr@jones.dk> | 2013-01-21 01:42:39 +0100 |
commit | f2732ba251ebdc5d2612d180b5b87bd727e01b17 (patch) | |
tree | eecfb3903be732891bbf1ceb669b4e278b60eb78 /Benchmark.hs | |
parent | dce4bb86ed2141429fdd958a4186f3490dbd8bca (diff) |
Imported Upstream version 1.10.0.3
Diffstat (limited to 'Benchmark.hs')
-rw-r--r-- | Benchmark.hs | 45 |
1 files changed, 0 insertions, 45 deletions
diff --git a/Benchmark.hs b/Benchmark.hs deleted file mode 100644 index 1fd787945..000000000 --- a/Benchmark.hs +++ /dev/null @@ -1,45 +0,0 @@ -import Text.Pandoc -import Text.Pandoc.Shared (readDataFile, normalize) -import Criterion.Main -import Data.List (isSuffixOf) -import Text.JSON.Generic - -readerBench :: Pandoc - -> (String, ParserState -> String -> Pandoc) - -> Benchmark -readerBench doc (name, reader) = - let writer = case lookup name writers of - Just w -> w - Nothing -> error $ "Could not find writer for " ++ name - inp = writer defaultWriterOptions{ writerWrapText = True - , writerLiterateHaskell = - "+lhs" `isSuffixOf` name } doc - -- we compute the length to force full evaluation - getLength (Pandoc (Meta a b c) d) = - length a + length b + length c + length d - in bench (name ++ " reader") $ whnf (getLength . - reader defaultParserState{ stateSmart = True - , stateStandalone = True - , stateLiterateHaskell = - "+lhs" `isSuffixOf` name }) inp - -writerBench :: Pandoc - -> (String, WriterOptions -> Pandoc -> String) - -> Benchmark -writerBench doc (name, writer) = bench (name ++ " writer") $ nf - (writer defaultWriterOptions{ - writerWrapText = True - , writerLiterateHaskell = "+lhs" `isSuffixOf` name }) doc - -normalizeBench :: Pandoc -> [Benchmark] -normalizeBench doc = [ bench "normalize - with" $ nf (encodeJSON . normalize) doc - , bench "normalize - without" $ nf encodeJSON doc - ] - -main = do - inp <- readDataFile (Just ".") "README" - let ps = defaultParserState{ stateSmart = True } - let doc = readMarkdown ps inp - let readerBs = map (readerBench doc) readers - defaultMain $ map (writerBench doc) writers ++ readerBs ++ normalizeBench doc - |