dejafu/dejafu.cabal

84 lines
2.9 KiB
Plaintext
Raw Normal View History

-- Initial monad-conc.cabal generated by cabal init. For further
-- documentation, see http://haskell.org/cabal/users-guide/
2015-01-31 18:50:54 +03:00
name: dejafu
version: 0.0.0.0
2015-01-31 18:50:54 +03:00
synopsis: Overloadable primitives for testable, potentially non-deterministic, concurrency.
2015-01-12 17:24:12 +03:00
description:
Concurrency is nice, deadlocks and race conditions not so much. The
@Par@ monad family, as defined in
<https://hackage.haskell.org/package/abstract-par/docs/Control-Monad-Par-Class.html abstract-par>
provides deterministic parallelism, but sometimes we can tolerate a
bit of nondeterminism.
.
2015-01-31 18:50:54 +03:00
This package provides a class of monads for potentially
2015-01-12 17:24:12 +03:00
nondeterministic concurrency, with an interface very much in the
2015-01-31 18:50:54 +03:00
spirit of @Par@, but slightly more relaxed. Specifically,
@MonadConc@'s @IVar@ equivalent, @CVar@s, can be written to multiple
times.
2015-01-12 17:24:12 +03:00
.
2015-01-31 18:50:54 +03:00
== @MonadConc@ with 'IO':
2015-01-12 17:24:12 +03:00
.
2015-01-31 18:50:54 +03:00
The intention of the @MonadConc@ class is to provide concurrency
where any apparent nondeterminism arises purely from the scheduling
behaviour. To put it another way, a given computation, parametrised
with a fixed set of scheduling decisions, is deterministic. This
assumption is used by the testing functionality provided by
Test.DejaFu.
2015-01-12 17:24:12 +03:00
.
Whilst this assumption may not hold in general when 'IO' is
involved, you should strive to produce test cases where it does.
.
2015-01-31 18:50:54 +03:00
See the <https://github.com/barrucadu/dejafu README> for more
2015-01-12 17:24:12 +03:00
details.
2015-01-31 18:50:54 +03:00
homepage: https://github.com/barrucadu/dejafu
license: WTFPL
license-file: LICENSE
author: Michael Walker
maintainer: mike@barrucadu.co.uk
-- copyright:
category: Concurrency
build-type: Simple
-- extra-source-files:
cabal-version: >=1.10
library
exposed-modules: Control.Monad.Conc.Class
2015-01-28 20:48:26 +03:00
, Control.Concurrent.CVar
, Control.Concurrent.CVar.Strict
2015-01-31 18:50:54 +03:00
, Test.DejaFu
, Test.DejaFu.Deterministic
, Test.DejaFu.Deterministic.IO
, Test.DejaFu.Deterministic.Schedulers
, Test.DejaFu.SCT
, Test.DejaFu.Shrink
other-modules: Test.DejaFu.Deterministic.Internal
, Test.DejaFu.SCT.Bounding
, Test.DejaFu.SCT.Internal
2015-01-28 20:48:26 +03:00
, Data.List.Extra
2015-01-31 18:50:54 +03:00
-- other-extensions:
2014-12-20 00:30:38 +03:00
build-depends: base >=4.6 && <5
, containers
, deepseq
2015-01-24 13:57:05 +03:00
, monad-loops
, mtl
2014-12-19 10:09:26 +03:00
, random
, transformers
-- hs-source-dirs:
2014-12-21 19:34:55 +03:00
default-language: Haskell2010
ghc-options: -Wall
test-suite tests
hs-source-dirs: tests
type: exitcode-stdio-1.0
main-is: Tests.hs
2015-01-31 18:50:54 +03:00
build-depends: dejafu, base
default-language: Haskell2010