packages feed

streaming-benchmarks-0.3.0: streaming-benchmarks.cabal

cabal-version: 2.2
name:          streaming-benchmarks
version:       0.3.0
license:       MIT
license-file:  LICENSE
author:        Composewell Technologies
maintainer:    streamly@composewell.com
stability:     provisional
homepage:      https://streamly.composewell.com
bug-reports:   http://github.com/composewell/streaming-benchmarks/issues
copyright:     Copyright (c) 2017 Harendra Kumar
category:      Streamly, Streaming, Benchmark
synopsis:      Measures and compares the performance of streaming libraries
description:
  This package provides micro-benchmarks to measure and compare the
  performance of various streaming implementations in Haskell.
  .
  The following packages are supported:
  .
  * base (Haskell lists)
  * streamly
  * streaming
  * pipes
  * machines
  * conduit
  * drinkery

tested-with: GHC==8.8.4, GHC==8.10.4
build-type: Simple
extra-source-files:
  Changelog.md
  README.md
  bench.sh
  bench-report.nix

extra-doc-files:
  docs/benchmarking-notes.md

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

flag dev
  description: Development build
  manual: True
  default: False

flag fusion-plugin
  description: Use fusion plugin for benchmarks
  manual: True
  default: False

benchmark bmarks
  default-language: Haskell2010
  type:             exitcode-stdio-1.0
  hs-source-dirs:   .
  main-is:          Benchmarks.hs
  other-modules:    Benchmarks.Common
                  , Benchmarks.BenchTH
                  , Benchmarks.BenchmarkTH

                  -- Pure streams
                  , Benchmarks.List
                  , Benchmarks.DList
                  , Benchmarks.Sequence
                  , Benchmarks.Vector
                  , Benchmarks.StreamlyPure
                  , Benchmarks.StreamlyArray
                  , Benchmarks.ByteString
                  , Benchmarks.ByteStringLazy
                  , Benchmarks.Text

                  -- Monadic streams
                  , Benchmarks.Streamly
                  , Benchmarks.VectorStreams
                  , Benchmarks.Streaming
                  , Benchmarks.Conduit
                  , Benchmarks.Pipes
                  , Benchmarks.Machines
                  , Benchmarks.Drinkery

                -- List transformers
                -- , Benchmarks.LogicT
                -- , Benchmarks.ListT
                -- , Benchmarks.ListTransformer

  ghc-options: -O2 -Wall -with-rtsopts "-T"
               -fspec-constr-recursive=16
               -fmax-worker-args=16
  ghc-options:    -Wcompat
                  -Wunrecognised-warning-flags
                  -Widentities
                  -Wincomplete-record-updates
                  -Wincomplete-uni-patterns
                  -Wredundant-constraints
                  -Wnoncanonical-monad-instances
  if flag(fusion-plugin)
      ghc-options: -fplugin Fusion.Plugin

  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.18,

    bytestring          >= 0.9   && < 0.12,
    text                >= 1.0   && < 1.3,
    vector              >= 0.12  && < 0.13,
    streamly            >= 0.8.0 && < 0.9,
    streaming           >= 0.1.4 && < 0.3,
    machines            >= 0.6.0 && < 0.8,
    pipes               >= 4     && < 4.4,
    conduit             >= 1.3   && < 1.4,
    drinkery            >= 0.3   && < 0.5,
    dlist               >= 0.7   && < 1.1,
    containers          >= 0.5   && < 0.7
    -- 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,
  if flag(fusion-plugin)
    build-depends:
        fusion-plugin     >= 0.2   && < 0.3

executable bench-report
  default-language: Haskell2010
  default-extensions: OverloadedStrings
  hs-source-dirs:   .
  main-is: Charts.hs
  ghc-options: -Wall
  if flag(dev)
    buildable: True
    build-depends:
        base              == 4.*
      , bench-show        >= 0.3.0   && < 0.4
      , bytestring        >= 0.9     && < 0.12
      , 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
  else
    buildable: False