on wip/yuras/scanner help sign in
typeable/aeson/benchmarks/aeson-benchmarks.cabal
348 lines 7.3 kB history raw
1name: aeson-benchmarks
2version: 0
3build-type: Simple
4cabal-version: >=1.10
6flag bytestring-builder
7 description: Depend on the bytestring-builder package for backwards compatibility.
8 default: False
9 manual: False
11flag local-aeson
12 description: Build the local version of aeson, to avoid rebuilding aeson's
13 reverse dependencies for benchmarking (statistics, criterion).
14 default: True
15 manual: True
17library
18 default-language: Haskell2010
20 if flag(bytestring-builder)
21 build-depends: bytestring >= 0.9 && < 0.10.4,
22 bytestring-builder >= 0.10.4 && < 1
23 else
24 build-depends: bytestring >= 0.10.4
26 if flag(local-aeson)
28 hs-source-dirs: .. ../ffi ../pure ../attoparsec-iso8601
29 c-sources: ../cbits/unescape_string.c
30 build-depends:
31 attoparsec,
32 scanner,
33 scanner-attoparsec,
34 base,
35 base-compat,
36 containers,
37 deepseq,
38 dlist,
39 fail,
40 ghc-prim,
41 hashable,
42 mtl,
43 primitive,
44 scientific,
45 syb,
46 tagged,
47 template-haskell,
48 text,
49 th-abstraction,
50 time-compat,
51 time,
52 transformers,
53 unordered-containers,
54 uuid-types,
55 vector
57 if !impl(ghc >= 8.6)
58 build-depends: contravariant
60 if !impl(ghc >= 8.0)
61 -- `Data.Semigroup` is available in base only since GHC 8.0 / base 4.9
62 build-depends: semigroups,
63 transformers-compat
65 if !impl(ghc >= 7.10)
66 -- `Numeric.Natural` is available in base only since GHC 7.10 / base 4.8
67 build-depends: nats,
68 void
70 include-dirs: ../include
72 ghc-options: -O2 -Wall
73 cpp-options: -DGENERICS
75 exposed-modules:
76 Data.Aeson
77 Data.Aeson.Encoding
78 Data.Aeson.Encoding.Builder
79 Data.Aeson.Encoding.Internal
80 Data.Aeson.Internal
81 Data.Aeson.Internal.Functions
82 Data.Aeson.Internal.Time
83 Data.Aeson.Parser
84 Data.Aeson.Parser.Internal
85 Data.Aeson.Parser.Time
86 Data.Aeson.Parser.Unescape
87 Data.Aeson.Parser.UnescapeFFI
88 Data.Aeson.Parser.UnescapePure
89 Data.Aeson.Scanner.Internal
90 Data.Aeson.TH
91 Data.Aeson.Text
92 Data.Aeson.Types
93 Data.Aeson.Types.Class
94 Data.Aeson.Types.FromJSON
95 Data.Aeson.Types.Generic
96 Data.Aeson.Types.Internal
97 Data.Aeson.Types.ToJSON
98 Data.Attoparsec.Time
99 Data.Attoparsec.Time.Internal
101 else
103 build-depends: aeson
105 reexported-modules:
106 Data.Aeson,
107 Data.Aeson.Encoding,
108 Data.Aeson.Parser.Internal,
109 Data.Aeson.Text,
110 Data.Aeson.TH,
111 Data.Aeson.Types
113executable aeson-benchmark-auto-compare
114 default-language: Haskell2010
115 main-is: AutoCompare.hs
116 hs-source-dirs: .
117 ghc-options: -Wall -O2 -rtsopts
118 other-modules:
119 Auto.T.D
120 Auto.T.BigRecord
121 Auto.T.BigProduct
122 Auto.T.BigSum
123 Auto.G.D
124 Auto.G.BigRecord
125 Auto.G.BigProduct
126 Auto.G.BigSum
127 Options
128 build-depends:
129 aeson-benchmarks,
130 base,
131 criterion,
132 deepseq,
133 template-haskell
135executable aeson-benchmark-escape
136 default-language: Haskell2010
137 main-is: Escape.hs
138 hs-source-dirs: ../examples .
139 ghc-options: -Wall -O2 -rtsopts
140 if flag(local-aeson)
141 build-depends:
142 aeson-benchmarks,
143 base,
144 base-compat,
145 bytestring,
146 criterion >= 1.0,
147 deepseq,
148 ghc-prim,
149 text
150 else
151 -- Disabled because of inaccessible internals
152 buildable: False
154executable aeson-benchmark-compare
155 default-language: Haskell2010
156 main-is: Compare.hs
157 hs-source-dirs: ../examples .
158 ghc-options: -Wall -O2 -rtsopts
159 other-modules:
160 Compare.BufferBuilder
161 Compare.JsonBench
162 Twitter
163 Twitter.Manual
164 Typed.Common
165 build-depends:
166 aeson-benchmarks,
167 base,
168 base-compat,
169 buffer-builder,
170 bytestring,
171 criterion >= 1.0,
172 deepseq,
173 ghc-prim,
174 text
176 if impl(ghc < 8.4)
177 other-modules:
178 Compare.JsonBuilder
179 build-depends:
180 json-builder
181 if impl(ghc < 8.0)
182 build-depends:
183 semigroups
185executable aeson-benchmark-micro
186 default-language: Haskell2010
187 main-is: Micro.hs
188 hs-source-dirs: ../examples .
189 ghc-options: -Wall -O2 -rtsopts
190 build-depends:
191 aeson-benchmarks,
192 base,
193 base-compat,
194 bytestring,
195 criterion >= 1.0,
196 deepseq,
197 ghc-prim,
198 text
200executable aeson-benchmark-typed
201 default-language: Haskell2010
202 main-is: Typed.hs
203 hs-source-dirs: ../examples .
204 ghc-options: -Wall -O2 -rtsopts
205 other-modules:
206 Twitter
207 Twitter.Generic
208 Twitter.Manual
209 Twitter.Options
210 Twitter.TH
211 Typed.Common
212 Typed.Generic
213 Typed.Manual
214 Typed.TH
215 build-depends:
216 aeson-benchmarks,
217 base,
218 base-compat,
219 criterion >= 1.0,
220 deepseq,
221 ghc-prim,
222 text,
223 time
225 if flag(bytestring-builder)
226 build-depends: bytestring >= 0.9 && < 0.10.4,
227 bytestring-builder >= 0.10.4 && < 1
228 else
229 build-depends: bytestring >= 0.10.4
230 if impl(ghc < 8.0)
231 build-depends: semigroups
233executable aeson-benchmark-compare-with-json
234 default-language: Haskell2010
235 main-is: CompareWithJSON.hs
236 ghc-options: -Wall -O2 -rtsopts
237 build-depends:
238 aeson-benchmarks,
239 base,
240 base-compat,
241 blaze-builder,
242 bytestring,
243 criterion,
244 deepseq,
245 json,
246 text
248executable aeson-benchmark-aeson-encode
249 default-language: Haskell2010
250 main-is: AesonEncode.hs
251 ghc-options: -Wall -O2 -rtsopts
252 build-depends:
253 aeson-benchmarks,
254 scanner,
255 base,
256 base-compat,
257 bytestring,
258 deepseq,
259 time
261executable aeson-benchmark-aeson-parse
262 default-language: Haskell2010
263 main-is: AesonParse.hs
264 ghc-options: -Wall -O2 -rtsopts
265 build-depends:
266 aeson-benchmarks,
267 scanner,
268 base,
269 base-compat,
270 bytestring,
271 time
273executable aeson-benchmark-json-parse
274 default-language: Haskell2010
275 main-is: JsonParse.hs
276 ghc-options: -Wall -O2 -rtsopts
277 build-depends:
278 base,
279 base-compat,
280 deepseq,
281 json,
282 time
284executable aeson-benchmark-dates
285 default-language: Haskell2010
286 main-is: Dates.hs
287 ghc-options: -Wall -O2 -rtsopts
288 build-depends:
289 base,
290 base-compat,
291 bytestring,
292 criterion,
293 deepseq,
294 aeson-benchmarks,
295 text,
296 time
297 if impl(ghc >= 8.2)
298 ghc-options: -Wno-simplifiable-class-constraints
300executable aeson-benchmark-map
301 default-language: Haskell2010
302 main-is: AesonMap.hs
303 ghc-options: -Wall -O2 -rtsopts
304 build-depends:
305 aeson-benchmarks,
306 base,
307 base-compat,
308 criterion >= 1.0,
309 bytestring,
310 containers,
311 deepseq,
312 hashable,
313 tagged,
314 text,
315 unordered-containers
317executable aeson-benchmark-foldable
318 default-language: Haskell2010
319 main-is: AesonFoldable.hs
320 ghc-options: -Wall -O2 -rtsopts
321 build-depends:
322 aeson-benchmarks,
323 base,
324 base-compat,
325 criterion >= 1.0,
326 bytestring,
327 containers,
328 deepseq,
329 hashable,
330 tagged,
331 text,
332 unordered-containers,
333 vector
335executable aeson-issue-673
336 default-language: Haskell2010
337 main-is: Issue673.hs
338 ghc-options: -Wall -O1 -rtsopts
339 build-depends:
340 aeson-benchmarks,
341 attoparsec,
342 base,
343 bytestring,
344 scientific,
345 base-compat,
346 criterion >= 1.0
347 if impl(ghc < 8.0)
348 build-depends: semigroups