packages feed

rio-process-pool-1.0.1: rio-process-pool.cabal

cabal-version:  3.0
name:           rio-process-pool
version:        1.0.1
description:    Please see the README on GitHub at <https://github.com/sheyll/rio-process-pool#readme>
synopsis:       A library for process pools coupled with asynchronous message queues
homepage:       https://github.com/sheyll/rio-process-pool#readme
bug-reports:    https://github.com/sheyll/rio-process-pool/issues
author:         Sven Heyll
maintainer:     sven.heyll@gmail.com
category:       Concurrency
tested-with:    GHC==8.10.5,GHC==8.10.4,GHC==8.10.3
copyright:      Copyright Sven Heyll
license:        BSD-2-Clause
license-file:   LICENSE
build-type:     Simple

extra-source-files:
    README.md

source-repository head
  type: git
  location: https://github.com/sheyll/rio-process-pool

flag development
  description: 
    Configure a development version, i.e. -fprof-auto and -Werror
  default: False
  manual: True
  
common compiler-flags
  ghc-options:
    -Wall
    -Wcompat
    -Widentities
    -Wincomplete-uni-patterns
    -Wincomplete-record-updates
    -Wredundant-constraints
    -Wmissing-export-lists
    -Wpartial-fields
    -Wmissing-deriving-strategies
    -funbox-strict-fields
    -Wno-missing-signatures
    -fno-full-laziness
  if flag(development)
    ghc-options:
      -Werror
    ghc-prof-options:
      -fprof-auto 
  default-extensions:
     AllowAmbiguousTypes,
     BangPatterns,
     BinaryLiterals,
     ConstraintKinds,
     DataKinds,
     DefaultSignatures,
     DeriveFoldable,
     DeriveFunctor,
     DeriveGeneric,
     DeriveTraversable,
     DerivingStrategies,
     DerivingVia,
     ExistentialQuantification,
     FlexibleContexts,
     FlexibleInstances,
     FunctionalDependencies,
     GADTs,
     GeneralizedNewtypeDeriving,
     InstanceSigs,
     LambdaCase,
     MultiParamTypeClasses,
     MultiWayIf,
     NamedFieldPuns,     
     NoImplicitPrelude,
     NumericUnderscores,
     OverloadedStrings,
     PatternGuards,
     PolyKinds,
     RankNTypes,
     RecordWildCards,
     ScopedTypeVariables,
     StandaloneDeriving,
     StrictData,
     TupleSections,
     TypeApplications,
     TypeFamilies,
     TypeInType,
     TypeOperators,
     TypeSynonymInstances,
     ViewPatterns
  other-extensions:
    CPP,
    DeriveAnyClass,
    DeriveLift,
    ForeignFunctionInterface,
    ImplicitParams,
    MagicHash,
    PackageImports,
    QuasiQuotes,
    StaticPointers,
    StrictData,
    Strict,
    TemplateHaskell,
    TypeOperators,
    UnboxedTuples,
    UndecidableInstances,
    UnliftedFFITypes

common executable-flags
  ghc-options:
    -threaded
    -rtsopts
    "-with-rtsopts=-T -N -qa"
  if flag(development)
    ghc-prof-options: 
      "-with-rtsopts=-T -xt -xc -Pa -hc -L256"
    
common deps
  build-depends:
      async >= 2 && <3,
      base >= 4.14 && <5,
      containers >=0.5.8 && <0.7,
      data-default >= 0.7 && < 0.8,
      hashable,
      mtl,
      QuickCheck,
      rio,
      text,
      unliftio,
      unliftio-messagebox >= 2.0.0 && < 3

library
  import: deps, compiler-flags
  default-language: Haskell2010
  hs-source-dirs:
      src
  exposed-modules:
    RIO.ProcessPool,
    RIO.ProcessPool.Broker,
    RIO.ProcessPool.Pool
  
executable rio-process-pool-memleak-test
  import: deps, compiler-flags, executable-flags
  default-language: Haskell2010
  main-is: Main.hs
  hs-source-dirs: src-pool-memleak-test  
  ghc-prof-options: 
    "-with-rtsopts=-T -hy -pa -L256 -xt -N"
  build-depends:
    rio-process-pool
  
test-suite rio-process-pool-test
  import: deps, compiler-flags, executable-flags
  default-language: Haskell2010
  type: exitcode-stdio-1.0
  main-is: Main.hs
  hs-source-dirs: src-test
  other-modules:
    BrokerTest,
    PoolTest,
    Utils
  build-depends:
    base,
    tasty,
    tasty-html,
    tasty-hunit,
    tasty-quickcheck,
    rio-process-pool,
    atomic-primops,
    HUnit
              
benchmark rio-process-pool-bench
  import: deps, compiler-flags, executable-flags
  type: exitcode-stdio-1.0
  default-language: Haskell2010
  main-is: Main.hs
  hs-source-dirs: src-benchmark
  build-depends:
    rio-process-pool,
    criterion