packages feed

streaming-benchmarks-0.2.0: streaming-benchmarks.cabal

name:          streaming-benchmarks
category:      Benchmark
version:       0.2.0
license:       MIT
license-file:  LICENSE
author:        Harendra Kumar
maintainer:    Harendra Kumar
stability:     provisional
homepage:      http://github.com/composewell/streaming-benchmarks
bug-reports:   http://github.com/composewell/streaming-benchmarks/issues
copyright:     Copyright (c) 2017 Harendra Kumar
synopsis:      Benchmarks to compare streaming packages
description:
  Benchmarks along with with pretty comparative graph generation for streaming
  operations and their comparisons across notable Haskell streaming libraries
  including `streamly`, `vector`, `streaming`, `machines`, `pipes`, and
  `conduit`.
  <http://hackage.haskell.org/package/streamly streamly> is a streaming library
  with native - high level, declarative and composable concurrency, it
  is the primary motivation for these benchmarks.
  .
  If you are using @stack@ then you can just use @./run.sh@ to run the
  benchmarks; use @--quick@ option to get the result quickly; charts will be
  generated in the `charts` directory. Use @./run.sh --help@ for all script
  options.
  .
  With any build tool, run the benchmarks with @--csv=results.csv@ as arguments
  (you can pass any @gauge@ arguments including @--quick@) and then use
  @makecharts results.csv "streamly,vector,..." False@ to create the charts.
  The second argument to @makecharts@ is the list of package names, the third
  argument is whether to plot full or diff from the first package.
  .
  See the README file shipped with the package or
  <https://github.com/composewell/streaming-benchmarks in the github repo>
  for more details. The github repo also shows the latest comparative graphs.

cabal-version: >= 1.10
tested-with: GHC==8.2.2, GHC==8.4.3
build-type:    Simple
extra-source-files:
  Changelog.md
  run.sh
  README.rst
  licenses/Readme.txt
  licenses/LICENSE.machines
  stack-8.2.yaml
  stack.yaml
  stack-pedantic.yaml

source-repository head
  type: git
  location: git://github.com/composewell/streaming-benchmarks.git

benchmark benchmarks
  default-language: Haskell2010
  type:             exitcode-stdio-1.0
  hs-source-dirs:   .
  main-is:          Benchmarks.hs
  other-modules:    Benchmarks.Common
                  , Benchmarks.BenchmarkTH
                  , Benchmarks.Streamly
                  , Benchmarks.Vector
                  , Benchmarks.Streaming
                -- , Benchmarks.LogicT
                -- , Benchmarks.ListT
                -- , Benchmarks.ListTransformer
                  , Benchmarks.Conduit
                  , Benchmarks.Pipes
                  , Benchmarks.Machines
                  , Benchmarks.Drinkery
                  , Benchmarks.List
                  , Benchmarks.VectorPure
  ghc-options: -O2 -Wall -with-rtsopts "-T"
  if impl(ghc >= 8.0)
    ghc-options:    -Wcompat
                    -Wunrecognised-warning-flags
                    -Widentities
                    -Wincomplete-record-updates
                    -Wincomplete-uni-patterns
                    -Wredundant-constraints
                    -Wnoncanonical-monad-instances
                    -Wnoncanonical-monadfail-instances

  build-depends:
    base                == 4.*,
    deepseq             >= 1.4.0 && < 1.5,
    gauge               >= 0.2.3 && < 0.3,
    mtl                 >= 2     && < 2.3,
    random              >= 1.0   && < 2.0,
    transformers        >= 0.4   && < 0.6,
    template-haskell    >= 2.10  && < 2.14,

    vector              >= 0.12  && < 0.13,
    streamly            >= 0.2.1 && < 0.5,
    streaming           >= 0.1.4 && < 0.3,
    machines            >= 0.6.0 && < 0.7,
    pipes               >= 4     && < 4.4,
    conduit             >= 1.3   && < 1.4,
    drinkery            >= 0.3   && < 0.4
    -- does not build with lts-11.0
    -- simple-conduit      >= 0.4.0 && < 0.7,
    -- list-transformer    >= 1.0.2 && < 1.1,
    -- list-t              >= 0.4.6 && < 1.1,
    -- logict              >= 0.5.0 && < 0.7,

executable makecharts
  default-language: Haskell2010
  default-extensions: OverloadedStrings
  hs-source-dirs:   .
  main-is: Charts.hs
  ghc-options: -Wall

  build-depends:
      base              == 4.*
    , bench-graph       >= 0.1     && < 0.2
    , bytestring        >= 0.9     && < 0.11
    , Chart             >= 1.6     && < 2
    , Chart-diagrams    >= 1.6     && < 2
    , csv               >= 0.1     && < 0.2
    , directory         >= 1.2     && < 1.4
    , split             >= 0.2     && < 0.3
    , text              >= 1.1.1   && < 1.3
    , transformers      >= 0.4     && < 0.6
    , typed-process     >= 0.1.0.0 && < 0.3
    , getopt-generics   >= 0.11    && < 0.14