dhodovsk / source-git / ghc-aeson

Forked from source-git/ghc-aeson 4 years ago
Clone

Blame benchmarks/aeson-benchmarks.cabal

Packit 9a2dfb
name:                aeson-benchmarks
Packit 9a2dfb
version:             0
Packit 9a2dfb
build-type:          Simple
Packit 9a2dfb
Packit 9a2dfb
cabal-version:       >=1.8
Packit 9a2dfb
Packit 9a2dfb
flag bytestring-builder
Packit 9a2dfb
  description: Depend on the bytestring-builder package for backwards compatibility.
Packit 9a2dfb
  default: False
Packit 9a2dfb
  manual: False
Packit 9a2dfb
Packit 9a2dfb
library
Packit 9a2dfb
  default-language: Haskell2010
Packit 9a2dfb
  hs-source-dirs: .. . ../ffi ../pure ../attoparsec-iso8601
Packit 9a2dfb
  c-sources:  ../cbits/unescape_string.c
Packit 9a2dfb
  exposed-modules:
Packit 9a2dfb
    Data.Aeson
Packit 9a2dfb
    Data.Aeson.Encoding
Packit 9a2dfb
    Data.Aeson.Encoding.Builder
Packit 9a2dfb
    Data.Aeson.Encoding.Internal
Packit 9a2dfb
    Data.Aeson.Internal
Packit 9a2dfb
    Data.Aeson.Internal.Functions
Packit 9a2dfb
    Data.Aeson.Internal.Time
Packit 9a2dfb
    Data.Aeson.Parser
Packit 9a2dfb
    Data.Aeson.Parser.Internal
Packit 9a2dfb
    Data.Aeson.Parser.Time
Packit 9a2dfb
    Data.Aeson.Parser.Unescape
Packit 9a2dfb
    Data.Aeson.Parser.UnescapeFFI
Packit 9a2dfb
    Data.Aeson.Parser.UnescapePure
Packit 9a2dfb
    Data.Aeson.TH
Packit 9a2dfb
    Data.Aeson.Text
Packit 9a2dfb
    Data.Aeson.Types
Packit 9a2dfb
    Data.Aeson.Types.Class
Packit 9a2dfb
    Data.Aeson.Types.FromJSON
Packit 9a2dfb
    Data.Aeson.Types.Generic
Packit 9a2dfb
    Data.Aeson.Types.Internal
Packit 9a2dfb
    Data.Aeson.Types.ToJSON
Packit 9a2dfb
    Data.Attoparsec.Time
Packit 9a2dfb
    Data.Attoparsec.Time.Internal
Packit 9a2dfb
Packit 9a2dfb
  build-depends:
Packit 9a2dfb
    attoparsec >= 0.13.0.1,
Packit 9a2dfb
    base == 4.*,
Packit 9a2dfb
    base-compat >= 0.9.1 && <0.10,
Packit 9a2dfb
    time-locale-compat >=0.1.1 && <0.2,
Packit 9a2dfb
    containers,
Packit 9a2dfb
    deepseq,
Packit 9a2dfb
    dlist >= 0.2,
Packit 9a2dfb
    fail == 4.9.*,
Packit 9a2dfb
    ghc-prim >= 0.2,
Packit 9a2dfb
    hashable >= 1.1.2.0,
Packit 9a2dfb
    mtl,
Packit 9a2dfb
    scientific >= 0.3.4.7 && < 0.4,
Packit 9a2dfb
    syb,
Packit 9a2dfb
    tagged >=0.8.3 && <0.9,
Packit 9a2dfb
    template-haskell >= 2.4,
Packit 9a2dfb
    text >= 1.1.1.0,
Packit 9a2dfb
    th-abstraction >= 0.2.2 && < 0.3,
Packit 9a2dfb
    time,
Packit 9a2dfb
    transformers,
Packit 9a2dfb
    unordered-containers >= 0.2.3.0,
Packit 9a2dfb
    uuid-types >= 1.0.3 && <1.1,
Packit 9a2dfb
    vector >= 0.7.1
Packit 9a2dfb
Packit 9a2dfb
  if flag(bytestring-builder)
Packit 9a2dfb
    build-depends: bytestring >= 0.9 && < 0.10.4,
Packit 9a2dfb
                   bytestring-builder >= 0.10.4 && < 1
Packit 9a2dfb
  else
Packit 9a2dfb
    build-depends: bytestring >= 0.10.4
Packit 9a2dfb
Packit 9a2dfb
  if impl(ghc >=7.8)
Packit 9a2dfb
    cpp-options: -DHAS_COERCIBLE
Packit 9a2dfb
Packit 9a2dfb
  if !impl(ghc >= 8.0)
Packit 9a2dfb
    -- `Data.Semigroup` is available in base only since GHC 8.0 / base 4.9
Packit 9a2dfb
    build-depends: semigroups >= 0.18.2 && < 0.19
Packit 9a2dfb
Packit 9a2dfb
  include-dirs: ../include
Packit 9a2dfb
Packit 9a2dfb
  ghc-options: -O2 -Wall
Packit 9a2dfb
  cpp-options: -DGENERICS
Packit 9a2dfb
Packit 9a2dfb
executable aeson-benchmark-escape
Packit 9a2dfb
  main-is: Escape.hs
Packit 9a2dfb
  hs-source-dirs: ../examples .
Packit 9a2dfb
  ghc-options: -Wall -O2 -rtsopts
Packit 9a2dfb
  build-depends:
Packit 9a2dfb
    aeson-benchmarks,
Packit 9a2dfb
    base,
Packit 9a2dfb
    base-compat,
Packit 9a2dfb
    bytestring,
Packit 9a2dfb
    criterion >= 1.0,
Packit 9a2dfb
    deepseq,
Packit 9a2dfb
    ghc-prim,
Packit 9a2dfb
    text
Packit 9a2dfb
Packit 9a2dfb
executable aeson-benchmark-compare
Packit 9a2dfb
  main-is: Compare.hs
Packit 9a2dfb
  hs-source-dirs: ../examples .
Packit 9a2dfb
  ghc-options: -Wall -O2 -rtsopts
Packit 9a2dfb
  other-modules:
Packit 9a2dfb
    Compare.BufferBuilder
Packit 9a2dfb
    Compare.JsonBench
Packit 9a2dfb
    Compare.JsonBuilder
Packit 9a2dfb
    Twitter
Packit 9a2dfb
    Twitter.Manual
Packit 9a2dfb
    Typed.Common
Packit 9a2dfb
  build-depends:
Packit 9a2dfb
    aeson-benchmarks,
Packit 9a2dfb
    base,
Packit 9a2dfb
    base-compat,
Packit 9a2dfb
    buffer-builder,
Packit 9a2dfb
    bytestring,
Packit 9a2dfb
    criterion >= 1.0,
Packit 9a2dfb
    deepseq,
Packit 9a2dfb
    ghc-prim,
Packit 9a2dfb
    json-builder,
Packit 9a2dfb
    text
Packit 9a2dfb
Packit 9a2dfb
executable aeson-benchmark-micro
Packit 9a2dfb
  main-is: Micro.hs
Packit 9a2dfb
  hs-source-dirs: ../examples .
Packit 9a2dfb
  ghc-options: -Wall -O2 -rtsopts
Packit 9a2dfb
  build-depends:
Packit 9a2dfb
    aeson-benchmarks,
Packit 9a2dfb
    base,
Packit 9a2dfb
    base-compat,
Packit 9a2dfb
    bytestring,
Packit 9a2dfb
    criterion >= 1.0,
Packit 9a2dfb
    deepseq,
Packit 9a2dfb
    ghc-prim,
Packit 9a2dfb
    text
Packit 9a2dfb
Packit 9a2dfb
executable aeson-benchmark-typed
Packit 9a2dfb
  main-is: Typed.hs
Packit 9a2dfb
  hs-source-dirs: ../examples .
Packit 9a2dfb
  ghc-options: -Wall -O2 -rtsopts
Packit 9a2dfb
  -- We must help ourself in situations when there is both
Packit 9a2dfb
  -- aeson and aeson-benchmakrs
Packit 9a2dfb
  cpp-options: -DHAS_BOTH_AESON_AND_BENCHMARKS
Packit 9a2dfb
  other-modules:
Packit 9a2dfb
    Twitter
Packit 9a2dfb
    Twitter.Generic
Packit 9a2dfb
    Twitter.Manual
Packit 9a2dfb
    Twitter.Options
Packit 9a2dfb
    Twitter.TH
Packit 9a2dfb
    Typed.Common
Packit 9a2dfb
    Typed.Generic
Packit 9a2dfb
    Typed.Manual
Packit 9a2dfb
    Typed.TH
Packit 9a2dfb
  build-depends:
Packit 9a2dfb
    aeson,
Packit 9a2dfb
    aeson-benchmarks,
Packit 9a2dfb
    base,
Packit 9a2dfb
    base-compat,
Packit 9a2dfb
    criterion >= 1.0,
Packit 9a2dfb
    deepseq,
Packit 9a2dfb
    ghc-prim,
Packit 9a2dfb
    text,
Packit 9a2dfb
    time
Packit 9a2dfb
Packit 9a2dfb
  if flag(bytestring-builder)
Packit 9a2dfb
    build-depends: bytestring >= 0.9 && < 0.10.4,
Packit 9a2dfb
                   bytestring-builder >= 0.10.4 && < 1
Packit 9a2dfb
  else
Packit 9a2dfb
    build-depends: bytestring >= 0.10.4
Packit 9a2dfb
Packit 9a2dfb
executable aeson-benchmark-compare-with-json
Packit 9a2dfb
  main-is: CompareWithJSON.hs
Packit 9a2dfb
  ghc-options: -Wall -O2 -rtsopts
Packit 9a2dfb
  cpp-options: -DHAS_BOTH_AESON_AND_BENCHMARKS
Packit 9a2dfb
  build-depends:
Packit 9a2dfb
    aeson,
Packit 9a2dfb
    aeson-benchmarks,
Packit 9a2dfb
    base,
Packit 9a2dfb
    base-compat,
Packit 9a2dfb
    blaze-builder,
Packit 9a2dfb
    bytestring,
Packit 9a2dfb
    criterion,
Packit 9a2dfb
    deepseq,
Packit 9a2dfb
    json,
Packit 9a2dfb
    text
Packit 9a2dfb
Packit 9a2dfb
executable aeson-benchmark-aeson-encode
Packit 9a2dfb
  main-is: AesonEncode.hs
Packit 9a2dfb
  ghc-options: -Wall -O2 -rtsopts
Packit 9a2dfb
  build-depends:
Packit 9a2dfb
    aeson-benchmarks,
Packit 9a2dfb
    attoparsec,
Packit 9a2dfb
    base,
Packit 9a2dfb
    base-compat,
Packit 9a2dfb
    bytestring,
Packit 9a2dfb
    deepseq,
Packit 9a2dfb
    time
Packit 9a2dfb
Packit 9a2dfb
executable aeson-benchmark-aeson-parse
Packit 9a2dfb
  main-is: AesonParse.hs
Packit 9a2dfb
  ghc-options: -Wall -O2 -rtsopts
Packit 9a2dfb
  build-depends:
Packit 9a2dfb
    aeson-benchmarks,
Packit 9a2dfb
    attoparsec,
Packit 9a2dfb
    base,
Packit 9a2dfb
    base-compat,
Packit 9a2dfb
    bytestring,
Packit 9a2dfb
    time
Packit 9a2dfb
Packit 9a2dfb
executable aeson-benchmark-json-parse
Packit 9a2dfb
  main-is: JsonParse.hs
Packit 9a2dfb
  ghc-options: -Wall -O2 -rtsopts
Packit 9a2dfb
  build-depends:
Packit 9a2dfb
    base,
Packit 9a2dfb
    base-compat,
Packit 9a2dfb
    deepseq,
Packit 9a2dfb
    json,
Packit 9a2dfb
    time
Packit 9a2dfb
Packit 9a2dfb
executable aeson-benchmark-dates
Packit 9a2dfb
  main-is: Dates.hs
Packit 9a2dfb
  ghc-options: -Wall -O2 -rtsopts
Packit 9a2dfb
  build-depends:
Packit 9a2dfb
    base,
Packit 9a2dfb
    base-compat,
Packit 9a2dfb
    bytestring,
Packit 9a2dfb
    criterion,
Packit 9a2dfb
    deepseq,
Packit 9a2dfb
    aeson-benchmarks,
Packit 9a2dfb
    text,
Packit 9a2dfb
    time
Packit 9a2dfb
Packit 9a2dfb
executable aeson-benchmark-map
Packit 9a2dfb
  main-is: AesonMap.hs
Packit 9a2dfb
  ghc-options: -Wall -O2 -rtsopts
Packit 9a2dfb
  build-depends:
Packit 9a2dfb
    aeson,
Packit 9a2dfb
    aeson-benchmarks,
Packit 9a2dfb
    base,
Packit 9a2dfb
    base-compat,
Packit 9a2dfb
    criterion >= 1.0,
Packit 9a2dfb
    bytestring,
Packit 9a2dfb
    containers,
Packit 9a2dfb
    deepseq,
Packit 9a2dfb
    hashable,
Packit 9a2dfb
    tagged,
Packit 9a2dfb
    text,
Packit 9a2dfb
    unordered-containers
Packit 9a2dfb
Packit 9a2dfb
executable aeson-benchmark-foldable
Packit 9a2dfb
  main-is: AesonFoldable.hs
Packit 9a2dfb
  ghc-options: -Wall -O2 -rtsopts
Packit 9a2dfb
  build-depends:
Packit 9a2dfb
    aeson,
Packit 9a2dfb
    aeson-benchmarks,
Packit 9a2dfb
    base,
Packit 9a2dfb
    base-compat,
Packit 9a2dfb
    criterion >= 1.0,
Packit 9a2dfb
    bytestring,
Packit 9a2dfb
    containers,
Packit 9a2dfb
    deepseq,
Packit 9a2dfb
    hashable,
Packit 9a2dfb
    tagged,
Packit 9a2dfb
    text,
Packit 9a2dfb
    unordered-containers,
Packit 9a2dfb
    vector