aeson-1.4.2.0: benchmarks/aeson-benchmarks.cabal
name: aeson-benchmarks
version: 0
build-type: Simple
cabal-version: >=1.10
flag bytestring-builder
description: Depend on the bytestring-builder package for backwards compatibility.
default: False
manual: False
flag local-aeson
description: Build the local version of aeson, to avoid rebuilding aeson's
reverse dependencies for benchmarking (statistics, criterion).
default: True
manual: True
library
default-language: Haskell2010
if flag(bytestring-builder)
build-depends: bytestring >= 0.9 && < 0.10.4,
bytestring-builder >= 0.10.4 && < 1
else
build-depends: bytestring >= 0.10.4
if flag(local-aeson)
hs-source-dirs: .. ../ffi ../pure ../attoparsec-iso8601
c-sources: ../cbits/unescape_string.c
build-depends:
attoparsec >= 0.13.0.1,
base == 4.*,
base-compat >= 0.9.1 && <0.11,
time-locale-compat >=0.1.1 && <0.2,
containers,
deepseq,
dlist >= 0.2,
fail == 4.9.*,
ghc-prim >= 0.2,
hashable >= 1.1.2.0,
mtl,
primitive >= 0.6.1,
scientific >= 0.3.4.7 && < 0.4,
syb,
tagged >=0.8.3 && <0.9,
template-haskell >= 2.4,
text >= 1.2.3,
th-abstraction >= 0.2.2 && < 0.3,
time,
transformers,
unordered-containers >= 0.2.3.0,
uuid-types >= 1.0.3 && <1.1,
vector >= 0.7.1
if !impl(ghc >= 7.10)
-- `Numeric.Natural` is available in base only since GHC 7.10 / base 4.8
build-depends: nats >= 1 && < 1.2
if impl(ghc >=7.8)
cpp-options: -DHAS_COERCIBLE
if !impl(ghc >= 8.0)
-- `Data.Semigroup` is available in base only since GHC 8.0 / base 4.9
build-depends: semigroups >= 0.18.2 && < 0.19
if !impl(ghc >= 8.6)
build-depends:
contravariant >=1.4.1 && <1.6
include-dirs: ../include
ghc-options: -O2 -Wall
cpp-options: -DGENERICS
exposed-modules:
Data.Aeson
Data.Aeson.Compat
Data.Aeson.Encoding
Data.Aeson.Encoding.Builder
Data.Aeson.Encoding.Internal
Data.Aeson.Internal
Data.Aeson.Internal.Functions
Data.Aeson.Internal.Time
Data.Aeson.Parser
Data.Aeson.Parser.Internal
Data.Aeson.Parser.Time
Data.Aeson.Parser.Unescape
Data.Aeson.Parser.UnescapeFFI
Data.Aeson.Parser.UnescapePure
Data.Aeson.TH
Data.Aeson.Text
Data.Aeson.Types
Data.Aeson.Types.Class
Data.Aeson.Types.FromJSON
Data.Aeson.Types.Generic
Data.Aeson.Types.Internal
Data.Aeson.Types.ToJSON
Data.Attoparsec.Time
Data.Attoparsec.Time.Internal
else
build-depends: aeson
reexported-modules:
Data.Aeson,
Data.Aeson.Encoding,
Data.Aeson.Parser.Internal,
Data.Aeson.Text,
Data.Aeson.TH,
Data.Aeson.Types
executable aeson-benchmark-auto-compare
default-language: Haskell2010
main-is: AutoCompare.hs
hs-source-dirs: .
ghc-options: -Wall -O2 -rtsopts
other-modules:
Auto.T.D
Auto.T.BigRecord
Auto.T.BigProduct
Auto.T.BigSum
Auto.G.D
Auto.G.BigRecord
Auto.G.BigProduct
Auto.G.BigSum
Options
build-depends:
aeson-benchmarks,
base,
criterion,
deepseq,
template-haskell
executable aeson-benchmark-escape
default-language: Haskell2010
main-is: Escape.hs
hs-source-dirs: ../examples .
ghc-options: -Wall -O2 -rtsopts
if flag(local-aeson)
build-depends:
aeson-benchmarks,
base,
base-compat,
bytestring,
criterion >= 1.0,
deepseq,
ghc-prim,
text
else
-- Disabled because of inaccessible internals
buildable: False
executable aeson-benchmark-compare
default-language: Haskell2010
main-is: Compare.hs
hs-source-dirs: ../examples .
ghc-options: -Wall -O2 -rtsopts
other-modules:
Compare.BufferBuilder
Compare.JsonBench
Twitter
Twitter.Manual
Typed.Common
build-depends:
aeson-benchmarks,
base,
base-compat,
buffer-builder,
bytestring,
criterion >= 1.0,
deepseq,
ghc-prim,
text
if impl(ghc < 8.4)
other-modules:
Compare.JsonBuilder
build-depends:
json-builder
executable aeson-benchmark-micro
default-language: Haskell2010
main-is: Micro.hs
hs-source-dirs: ../examples .
ghc-options: -Wall -O2 -rtsopts
build-depends:
aeson-benchmarks,
base,
base-compat,
bytestring,
criterion >= 1.0,
deepseq,
ghc-prim,
text
executable aeson-benchmark-typed
default-language: Haskell2010
main-is: Typed.hs
hs-source-dirs: ../examples .
ghc-options: -Wall -O2 -rtsopts
other-modules:
Twitter
Twitter.Generic
Twitter.Manual
Twitter.Options
Twitter.TH
Typed.Common
Typed.Generic
Typed.Manual
Typed.TH
build-depends:
aeson-benchmarks,
base,
base-compat,
criterion >= 1.0,
deepseq,
ghc-prim,
text,
time
if flag(bytestring-builder)
build-depends: bytestring >= 0.9 && < 0.10.4,
bytestring-builder >= 0.10.4 && < 1
else
build-depends: bytestring >= 0.10.4
executable aeson-benchmark-compare-with-json
default-language: Haskell2010
main-is: CompareWithJSON.hs
ghc-options: -Wall -O2 -rtsopts
build-depends:
aeson-benchmarks,
base,
base-compat,
blaze-builder,
bytestring,
criterion,
deepseq,
json,
text
executable aeson-benchmark-aeson-encode
default-language: Haskell2010
main-is: AesonEncode.hs
ghc-options: -Wall -O2 -rtsopts
build-depends:
aeson-benchmarks,
attoparsec,
base,
base-compat,
bytestring,
deepseq,
time
executable aeson-benchmark-aeson-parse
default-language: Haskell2010
main-is: AesonParse.hs
ghc-options: -Wall -O2 -rtsopts
build-depends:
aeson-benchmarks,
attoparsec,
base,
base-compat,
bytestring,
time
executable aeson-benchmark-json-parse
default-language: Haskell2010
main-is: JsonParse.hs
ghc-options: -Wall -O2 -rtsopts
build-depends:
base,
base-compat,
deepseq,
json,
time
executable aeson-benchmark-dates
default-language: Haskell2010
main-is: Dates.hs
ghc-options: -Wall -O2 -rtsopts
build-depends:
base,
base-compat,
bytestring,
criterion,
deepseq,
aeson-benchmarks,
text,
time
if impl(ghc >= 8.2)
ghc-options: -Wno-simplifiable-class-constraints
executable aeson-benchmark-map
default-language: Haskell2010
main-is: AesonMap.hs
ghc-options: -Wall -O2 -rtsopts
build-depends:
aeson-benchmarks,
base,
base-compat,
criterion >= 1.0,
bytestring,
containers,
deepseq,
hashable,
tagged,
text,
unordered-containers
executable aeson-benchmark-foldable
default-language: Haskell2010
main-is: AesonFoldable.hs
ghc-options: -Wall -O2 -rtsopts
build-depends:
aeson-benchmarks,
base,
base-compat,
criterion >= 1.0,
bytestring,
containers,
deepseq,
hashable,
tagged,
text,
unordered-containers,
vector
executable aeson-issue-673
default-language: Haskell2010
main-is: Issue673.hs
ghc-options: -Wall -O1 -rtsopts
build-depends:
aeson-benchmarks,
attoparsec,
base,
bytestring,
scientific,
base-compat,
criterion >= 1.0