The dejafu package

[Tags:library, mit]

[Déjà Fu is] A martial art in which the user's limbs move in time as well as space, […] It is best described as "the feeling that you have been kicked in the head this way before" -- Terry Pratchett, Thief of Time

Concurrency is nice, deadlocks and race conditions not so much. The Par monad family, as defined in abstract-par provides deterministic parallelism, but sometimes we can tolerate a bit of nondeterminism.

This package builds on the concurrency package by enabling you to systematically and deterministically test your concurrent programs.

== Déjà Fu with IO:

The core assumption underlying Déjà Fu is that 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.

Whilst this assumption may not hold in general when IO is involved, you should strive to produce test cases where it does.

== Memory Model

The testing functionality supports a few different memory models, for computations which use non-synchronised CRef operations. The supported models are:

If a testing function does not take the memory model as a parameter, it uses TSO.

See the README for more details.

Properties

Versions 0.1.0.0, 0.2.0.0, 0.3.0.0, 0.3.1.0, 0.3.1.1, 0.3.2.0, 0.3.2.1, 0.4.0.0, 0.5.0.0, 0.5.0.2, 0.5.1.0, 0.5.1.1, 0.5.1.2
Dependencies base (>=4.8 && <5), concurrency (==1.1.1.*), containers (==0.5.*), deepseq (>=1.1 && <2), exceptions (>=0.7 && <0.9), monad-loops (==0.4.*), mtl (==2.2.*), random (>=1.0 && <1.2), ref-fd (==0.4.*), semigroups (>=0.16 && <0.19), transformers (>=0.4 && <0.6), transformers-base (==0.4.*) [details]
License MIT
Author Michael Walker
Maintainer mike@barrucadu.co.uk
Stability Unknown
Category Concurrency
Home page https://github.com/barrucadu/dejafu
Source repository head: git clone https://github.com/barrucadu/dejafu.git
this: git clone https://github.com/barrucadu/dejafu.git(tag dejafu-0.5.1.2)
Uploaded Sat Mar 4 06:30:29 UTC 2017 by barrucadu
Distributions LTSHaskell:0.4.0.0, NixOS:0.5.1.1, Stackage:0.5.1.2, Tumbleweed:0.4.0.0
Downloads 612 total (128 in the last 30 days)
Votes
0 []
Status Docs available [build log]
Last success reported on 2017-03-04 [all 1 reports]

Modules

[Index]

Downloads

Maintainer's Corner

For package maintainers and hackage trustees