2014-12-18 14:03:17 +03:00
|
|
|
-- 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
|
2014-12-18 14:03:17 +03:00
|
|
|
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
|
2014-12-18 14:03:17 +03:00
|
|
|
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
|
2015-02-01 04:21:42 +03:00
|
|
|
, Test.DejaFu.Deterministic.Schedule
|
2015-01-31 18:50:54 +03:00
|
|
|
, Test.DejaFu.SCT
|
|
|
|
|
|
|
|
other-modules: Test.DejaFu.Deterministic.Internal
|
|
|
|
, Test.DejaFu.SCT.Bounding
|
|
|
|
, Test.DejaFu.SCT.Internal
|
2015-01-28 20:48:26 +03:00
|
|
|
|
2015-01-27 16:46:20 +03:00
|
|
|
, Data.List.Extra
|
2015-01-31 18:50:54 +03:00
|
|
|
|
2014-12-18 14:03:17 +03:00
|
|
|
-- other-extensions:
|
2014-12-20 00:30:38 +03:00
|
|
|
build-depends: base >=4.6 && <5
|
2014-12-19 09:45:50 +03:00
|
|
|
, containers
|
2015-01-19 14:50:43 +03:00
|
|
|
, deepseq
|
2015-01-24 13:57:05 +03:00
|
|
|
, monad-loops
|
2014-12-19 09:45:50 +03:00
|
|
|
, mtl
|
2014-12-19 10:09:26 +03:00
|
|
|
, random
|
2014-12-19 09:45:50 +03:00
|
|
|
, transformers
|
2014-12-18 14:03:17 +03:00
|
|
|
-- hs-source-dirs:
|
2014-12-21 19:34:55 +03:00
|
|
|
default-language: Haskell2010
|
2014-12-23 18:20:11 +03:00
|
|
|
ghc-options: -Wall
|
|
|
|
|
|
|
|
test-suite tests
|
2015-01-12 19:32:09 +03:00
|
|
|
hs-source-dirs: tests
|
2014-12-23 18:20:11 +03:00
|
|
|
type: exitcode-stdio-1.0
|
|
|
|
main-is: Tests.hs
|
2015-01-31 18:50:54 +03:00
|
|
|
build-depends: dejafu, base
|
2014-12-23 18:20:11 +03:00
|
|
|
default-language: Haskell2010
|