packages feed

unliftio-messagebox-1.0.2: unliftio-messagebox.cabal

cabal-version:  3.0
name:           unliftio-messagebox
version:        1.0.2
description:    Please see the README on GitHub at <https://github.com/sheyll/unliftio-messagebox#readme>
synopsis:       Fast and robust message queues for concurrent processes
homepage:       https://github.com/sheyll/unliftio-messagebox#readme
bug-reports:    https://github.com/sheyll/unliftio-messagebox/issues
author:         Sven Heyll
maintainer:     sven.heyll@gmail.com
category:       Concurrency
tested-with:    GHC==8.10.2,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/unliftio-messagebox

flag development
  description: 
    Configure a development version, i.e. -fprof-auto and -Werror
  default: False
  manual: True
  
common executable-flags
  ghc-options:
    -threaded
    "-with-rtsopts=-T -N -qa"
  if flag(development)
    ghc-prof-options: 
      "-with-rtsopts=-T -xt -xc -Pa -hc -L256"
  
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     
  if flag(development)
    ghc-options:
      -O2
      -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,     
     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 deps
  build-depends:
      atomic-primops,
      base >= 4.14 && <5,
      containers >=0.5.8 && <0.7,
      data-default >= 0.7 && < 0.8,
      hashable,
      mtl,
      QuickCheck,
      text,
      unagi-chan,
      unliftio

library
  import: deps, compiler-flags
  default-language: Haskell2010
  hs-source-dirs:
      src
  exposed-modules:
    UnliftIO.MessageBox,
    UnliftIO.MessageBox.CatchAll,
    UnliftIO.MessageBox.Class,
    UnliftIO.MessageBox.Command,
    UnliftIO.MessageBox.Limited,
    UnliftIO.MessageBox.Unlimited,
    UnliftIO.MessageBox.Util.CallId,
    UnliftIO.MessageBox.Util.Fresh,
    UnliftIO.MessageBox.Util.Future
  
executable unliftio-messagebox-memleak-test
  import: deps, compiler-flags, executable-flags
  default-language: Haskell2010
  main-is: Main.hs
  other-modules:
    MediaBenchmark
  hs-source-dirs: src-memleak-test  
  ghc-options:
    -O2
    -threaded
    -rtsopts
    "-with-rtsopts=-T -N"
  ghc-prof-options: 
    -O2
    -threaded
    -rtsopts
    -fprof-auto 
    "-with-rtsopts=-T -hy -pa -L256 -xt -N"
  build-depends:
    unliftio-messagebox

test-suite unliftio-messagebox-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:
    LimitedMessageBoxTest,    
    CallIdTest,
    CatchAllTest,
    CommandTest,    
    FreshTest,
    CornerCaseTests,
    MessageBoxClassTest,
    MessageBoxCommon,
    QCOrphans,
    UnlimitedMessageBoxTest,
    Utils
  build-depends:
    base,
    tasty,
    tasty-html,
    tasty-hunit,
    tasty-quickcheck,
    unliftio-messagebox,
    HUnit
              
benchmark unliftio-messagebox-bench
  import: deps, compiler-flags, executable-flags
  type: exitcode-stdio-1.0
  default-language: Haskell2010
  main-is: Main.hs
  other-modules:
    BookStoreBenchmark,
    CommandBenchmark,
    MediaBenchmark
  hs-source-dirs: src-benchmark
  build-depends:
    unliftio-messagebox,
    criterion