on master help sign in
Make benchmarks compile with ghc-8.4+
commitd1a6b73cc5bde54f1fffe10ed396b76af62aeee4 authorOleg Grenrus <oleg.grenrus@iki.fi> dateWed 26 Sep 2018, 12:10 (8 years ago) parentaae9439
4 files changed+23−7
benchmarks/Compare.hs+8−2 benchmarks/Compare/JsonBench.hs+8 benchmarks/aeson-benchmarks.cabal+6−2 stack-bench.yaml+1−3
benchmarks/Compare.hs+8−2
@@ -1,3 +1,4 @@
1+{-# LANGUAGE CPP #-}
12{-# LANGUAGE NoImplicitPrelude #-}
23{-# LANGUAGE ScopedTypeVariables #-}
34
@@ -6,16 +7,19 @@ module Main (main) where
67import Prelude.Compat
78
89import Compare.BufferBuilder ()
9−import Compare.JsonBuilder ()
1010import Criterion.Main
1111import Data.BufferBuilder.Json
12−import Data.Json.Builder
1312import Twitter
1413import Twitter.Manual ()
1514import Typed.Common
1615import qualified Data.Aeson as Aeson
1716import qualified Compare.JsonBench as JsonBench
1817
18+#ifdef MIN_VERSION_json_builder
19+import Data.Json.Builder
20+import Compare.JsonBuilder ()
21+#endif
22+
1923main :: IO ()
2024main =
2125 defaultMain [
@@ -23,7 +27,9 @@ main =
2327 bgroup "twitter" [
2428 bench "aeson" $ nf Aeson.encode twtr
2529 , bench "buffer-builder" $ nf encodeJson twtr
30+#ifdef MIN_VERSION_json_builder
2631 , bench "json-builder" $ nf toJsonLBS twtr
32+#endif
2733 ]
2834 , JsonBench.benchmarks
2935 ]
benchmarks/Compare/JsonBench.hs+8
@@ -1,3 +1,4 @@
1+{-# LANGUAGE CPP #-}
12{-# LANGUAGE BangPatterns #-}
23{-# LANGUAGE MagicHash #-}
34{-# LANGUAGE NoImplicitPrelude #-}
@@ -21,7 +22,10 @@ import Data.Text (Text)
2122import Typed.Common (load)
2223import qualified Data.Aeson as Aeson
2324import qualified Data.BufferBuilder.Json as Json
25+
26+#ifdef MIN_VERSION_json_builder
2427import qualified Data.Json.Builder as JB
28+#endif
2529
2630data EyeColor = Green | Blue | Brown
2731 deriving (Eq, Show)
@@ -268,6 +272,7 @@ instance Json.ToJson User where
268272 <> "greeting"# Json..=# uGreeting
269273 <> "favoriteFruit"# Json..=# uFavouriteFruit
270274
275+#ifdef MIN_VERSION_json_builder
271276---- json-builder instances ----
272277
273278instance JB.Value EyeColor where
@@ -319,6 +324,7 @@ instance JB.Value User where
319324 <> t "friends" `JB.row` uFriends
320325 <> t "greeting" `JB.row` uGreeting
321326 <> t "favoriteFruit" `JB.row` uFavouriteFruit
327+#endif
322328
323329benchmarks :: Benchmark
324330benchmarks = env (load "json-data/buffer-builder.json") $
@@ -326,5 +332,7 @@ benchmarks = env (load "json-data/buffer-builder.json") $
326332 bgroup "json-bench" [
327333 bench "aeson" $ nf Aeson.encode parsedUserList
328334 , bench "buffer-builder" $ nf Json.encodeJson parsedUserList
335+#ifdef MIN_VERSION_json_builder
329336 , bench "json-builder" $ nf JB.toJsonLBS parsedUserList
337+#endif
330338 ]
benchmarks/aeson-benchmarks.cabal+6−2
@@ -155,7 +155,6 @@ executable aeson-benchmark-compare
155155 other-modules:
156156 Compare.BufferBuilder
157157 Compare.JsonBench
158− Compare.JsonBuilder
159158 Twitter
160159 Twitter.Manual
161160 Typed.Common
@@ -168,9 +167,14 @@ executable aeson-benchmark-compare
168167 criterion >= 1.0,
169168 deepseq,
170169 ghc-prim,
171− json-builder,
172170 text
173171
172+ if impl(ghc < 8.4)
173+ other-modules:
174+ Compare.JsonBuilder
175+ build-depends:
176+ json-builder
177+
174178executable aeson-benchmark-micro
175179 default-language: Haskell2010
176180 main-is: Micro.hs
stack-bench.yaml+1−3
@@ -1,4 +1,4 @@
1−resolver: nightly-2018-03-12
1+resolver: lts-12.10
22# We use aeson in the snapshot to
33# - avoid recompilation of criterion
44# - compare against it
@@ -9,5 +9,3 @@ resolver: nightly-2018-03-12
99work-dir: .stack-work-bench
1010packages:
1111- benchmarks
12−extra-deps:
13−- aeson-1.3.1.0