Systematic concurrency testing meets Haskell.
Go to file
Michael Walker a551893ccf Fix implementation of PSO.
There should be one buffer for each (thread, ref) pair, not simply for
each ref. The former is too strict as it enforces a total order on the
commits to the same ref, yielding some bizarro memory model which is
both stricter and more relaxed than TSO.

This does add extra schedules when testing PSO. But that is to be
expected, as this makes PSO executions less deterministic. Unfortunately
this additional nondeterminism is required by the memory model.
2016-04-01 17:57:17 +01:00
async-dejafu Move Control.Concurrent.STM.Classy -> Control.Concurrent.Classy.STM 2016-03-23 04:38:34 +00:00
dejafu Fix implementation of PSO. 2016-04-01 17:57:17 +01:00
dejafu-tests Add a function to compare the different memory models 2016-03-31 18:43:10 +01:00
hunit-dejafu Update docs links 2016-03-18 00:59:52 +00:00
tasty-dejafu Update docs links 2016-03-18 00:59:52 +00:00
.gitignore Stackify 2015-07-19 04:39:39 +01:00
README.markdown Fix implementation of PSO. 2016-04-01 17:57:17 +01:00
stack.yaml Drop support for GHC<7.10. 2016-03-10 22:35:40 +00:00

This repository contains dejafu, a concurrency testing library based on a typeclass abstraction of concurrency, and related libraries.

  • dejafu (hackage 0.2.0.0): Overloadable primitives for testable, potentially non-deterministic, concurrency.

  • async-dejafu (hackage 0.1.0.0): Run MonadConc operations asynchronously and wait for their results.

  • hunit-dejafu (hackage 0.2.0.0): Deja Fu support for the HUnit test framework.

  • tasty-dejafu (hackage 0.2.0.0): Deja Fu support for the Tasty test framework.

There is also dejafu-tests, the test suite for dejafu. This is in a separate package due to Cabal being bad with test suite transitive dependencies.

Bibliography

Each paper has a short name in parentheses, which I use in non-haddock comments. Haddock comments get the full citation. PDF links are provided where non-paywalled ones are available.