cabal-version: 3.0
name: unliftio-messagebox
version: 2.0.0
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,GHC==8.10.4
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 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,
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:
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-prof-options:
"-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