dejafu/dpor/dpor.cabal
2016-04-03 06:07:37 +01:00

68 lines
2.6 KiB
Plaintext

-- Initial dpor.cabal generated by cabal init. For further documentation,
-- see http://haskell.org/cabal/users-guide/
name: dpor
version: 0.1.0.0
synopsis: A generic implementation of dynamic partial-order reduction (DPOR) for testing arbitrary models of concurrency.
description:
We can characterise the state of a concurrent computation by
considering the ordering of dependent events. This is a partial
order: independent events can be performed in any order without
affecting the result. DPOR is a technique for computing these
partial orders at run-time, and only testing one total order for
each partial order. This cuts down the amount of work to be done
significantly. In particular, this package implemented bounded
partial-order reduction, which is a further optimisation. Only
schedules within some *bound* are considered.
.
* DPOR with no schedule bounding is __complete__, it /will/ find all
distinct executions!
.
* DPOR with schedule bounding is __incomplete__, it will only find
all distinct executions /within the bound/!
.
__Caution:__ The fundamental assumption behind DPOR is that the
*only* source of nondeterminism in your program is the
scheduler. Or, to put it another way, if you execute the same
program with the same schedule twice, you get the same result. If
you are using this library in combination with something which
performs I/O, be *very* certain that this is the case!
.
See the <https://github.com/barrucadu/dejafu README> for more
details.
.
For details on the algorithm, albeit presented in a very imperative
way, see /Bounded partial-order reduction/, K. Coons, M. Musuvathi,
and K. McKinley (2013), available at
<http://research.microsoft.com/pubs/202164/bpor-oopsla-2013.pdf>
homepage: https://github.com/barrucadu/dejafu
license: MIT
license-file: LICENSE
author: Michael Walker
maintainer: mike@barrucadu.co.uk
-- copyright:
category: Testing
build-type: Simple
-- extra-source-files:
cabal-version: >=1.10
source-repository head
type: git
location: https://github.com/barrucadu/dejafu.git
library
exposed-modules: Test.DPOR
, Test.DPOR.Internal
, Test.DPOR.Schedule
-- other-modules:
-- other-extensions:
build-depends: base >=4.8 && <4.9
, containers
, deepseq
, random
, semigroups
-- hs-source-dirs:
default-language: Haskell2010
ghc-options: -Wall