git.iko.soy/typeable/pandoc
on master help sign in
Fixed up weigh-pandoc and benchmark-pandoc so they build.
commit35699ee5339e6a0b865d01246f6553f45551cc78 authorJohn MacFarlane <jgm@berkeley.edu> dateSat 10 Dec 2016, 23:42 (10 years ago) parentb5d1567
3 files changed+17−13
benchmark/benchmark-pandoc.hs+11−8 benchmark/weigh-pandoc.hs+4−4 pandoc.cabal+2−1
benchmark/benchmark-pandoc.hs+11−8
@@ -22,14 +22,15 @@ import Data.Maybe (mapMaybe)
2222import Debug.Trace (trace)
2323
2424readerBench :: Pandoc
25− -> (String, ReaderOptions -> String -> IO (Either PandocError Pandoc))
25+ -> (String, ReaderOptions -> String -> Pandoc)
2626 -> Maybe Benchmark
2727readerBench doc (name, reader) =
2828 case lookup name writers of
29− Just (PureStringWriter writer) ->
30− let inp = writer def{ writerWrapText = WrapAuto} doc
31− in return $ bench (name ++ " reader") $ nfIO $
32− (fmap handleError <$> reader def{ readerSmart = True }) inp
29+ Just (StringWriter writer) ->
30+ let inp = either (error . show) id $ runPure
31+ $ writer def{ writerWrapText = WrapAuto} doc
32+ in return $ bench (name ++ " reader") $ nf
33+ (reader def{ readerSmart = True }) inp
3334 _ -> trace ("\nCould not find writer for " ++ name ++ "\n") Nothing
3435
3536writerBench :: Pandoc
@@ -42,11 +43,13 @@ main :: IO ()
4243main = do
4344 inp <- readFile "tests/testsuite.txt"
4445 let opts = def{ readerSmart = True }
45− let doc = handleError $ readMarkdown opts inp
46− let readers' = [(n,r) | (n, StringReader r) <- readers]
46+ let doc = either (error . show) id $ runPure $ readMarkdown opts inp
47+ let readers' = [(n, \o -> either (error . show) id . runPure . r o)
48+ | (n, StringReader r) <- readers]
4749 let readerBs = mapMaybe (readerBench doc)
4850 $ filter (\(n,_) -> n /="haddock") readers'
49− let writers' = [(n,w) | (n, PureStringWriter w) <- writers]
51+ let writers' = [(n, \o -> either (error . show) id . runPure . w o)
52+ | (n, StringWriter w) <- writers]
5053 let writerBs = map (writerBench doc)
5154 $ writers'
5255 defaultMainWith defaultConfig{ timeLimit = 6.0 }
benchmark/weigh-pandoc.hs+4−4
@@ -7,7 +7,7 @@ main = do
77 mainWith $ do
88 func "Pandoc document" id doc
99 mapM_
10− (\(n,r) -> weighReader doc n (handleError . r def{ readerSmart = True }))
10+ (\(n,r) -> weighReader doc n (either (error . show) id . runPure . r def{ readerSmart = True }))
1111 [("markdown", readMarkdown)
1212 ,("html", readHtml)
1313 ,("docbook", readDocBook)
@@ -15,7 +15,7 @@ main = do
1515 ,("commonmark", readCommonMark)
1616 ]
1717 mapM_
18− (\(n,w) -> weighWriter doc n (w def))
18+ (\(n,w) -> weighWriter doc n (either (error . show) id . runPure . w def))
1919 [("markdown", writeMarkdown)
2020 ,("html", writeHtmlString)
2121 ,("docbook", writeDocbook)
@@ -29,8 +29,8 @@ weighWriter doc name writer = func (name ++ " writer") writer doc
2929weighReader :: Pandoc -> String -> (String -> Pandoc) -> Weigh ()
3030weighReader doc name reader = do
3131 case lookup name writers of
32− Just (PureStringWriter writer) ->
33− let inp = writer def{ writerWrapText = WrapAuto} doc
32+ Just (StringWriter writer) ->
33+ let inp = either (error . show) id $ runPure $ writer def{ writerWrapText = WrapAuto} doc
3434 in func (name ++ " reader") reader inp
3535 _ -> return () -- no writer for reader
3636
pandoc.cabal+2−1
@@ -485,7 +485,8 @@ Executable weigh-pandoc
485485 if flag(weigh-pandoc)
486486 Build-Depends: pandoc,
487487 base >= 4.2 && < 5,
488− weigh >= 0.0 && < 0.1
488+ weigh >= 0.0 && < 0.1,
489+ mtl >= 2.2 && < 2.3
489490 Buildable: True
490491 else
491492 Buildable: False