packages feed

concurrent-machines-0.2.3: concurrent-machines.cabal

name:                concurrent-machines
version:             0.2.3
synopsis:            Concurrent networked stream transducers

description: A simple use-case for this library is to run the stages
             of a pipelined streaming computation concurrently. If
             data is streaming through multiple processing stages, you
             might build a machine like
             .
             @
             step1 >~> step2 >~> step3
             @
             .
             The @>~>@ operator connects the machines on
             either side with a one-element buffer. This means that
             data is pulled from upstream sources eagerly (perhaps
             pulling one more value than will be consumed by
             downstream), but it also means that each stage can be
             working simultaneously, increasing throughput of the
             entire pipeline.
             .
             A few small examples are available in the @examples@
             directory of the source repository.

license:             BSD3
license-file:        LICENSE
author:              Anthony Cowley
maintainer:          acowley@gmail.com
copyright:           Copyright (C) 2014 Anthony Cowley
category:            Concurrency, Control
build-type:          Simple
extra-source-files:  README.md, CHANGELOG.md
cabal-version:       >=1.10
tested-with:         GHC == 7.10.3, GHC == 8.0.1

source-repository head
  type:     git
  location: http://github.com/acowley/concurrent-machines.git

library
  exposed-modules:     Data.Machine.Concurrent,
                       Data.Machine.Regulated,
                       Data.Machine.Concurrent.AsyncStep,
                       Data.Machine.Concurrent.Buffer,
                       Data.Machine.Concurrent.Fanout,
                       Data.Machine.Concurrent.Scatter,
                       Data.Machine.Concurrent.Tee,
                       Data.Machine.Concurrent.Wye
  -- other-modules:       
  other-extensions:    GADTs, FlexibleContexts, RankNTypes, TupleSections, 
                       ScopedTypeVariables
  build-depends:       base >= 4.6 && < 4.10,
                       monad-control >= 1.0 && < 1.1,
                       transformers >= 0.4 && < 0.6,
                       time >= 1.4 && < 1.7,
                       containers >= 0.5 && < 0.6,
                       transformers-base >= 0.4 && < 0.6,
                       machines >= 0.5 && < 0.7,
                       async >= 2.0.1 && < 2.2,
                       lifted-async >= 0.1 && < 0.9,
                       semigroups >= 0.8 && < 0.19
  hs-source-dirs:      src
  default-language:    Haskell2010
  ghc-options: -Wall

test-suite tests
  type: exitcode-stdio-1.0
  hs-source-dirs: tests
  main-is: AllTests.hs
  ghc-options: -Wall -O0
  default-language: Haskell2010
  build-depends: base >= 4.6 && < 5, concurrent-machines, machines,
                 tasty, tasty-hunit, transformers, time

benchmark fanout
  type: exitcode-stdio-1.0
  hs-source-dirs: examples
  main-is: ExampleFanout.hs
  build-depends: base >= 4.8 && < 5, time, machines, concurrent-machines
  default-language: Haskell2010
  ghc-options: -threaded "-with-rtsopts=-N2"