mirror of
https://github.com/barrucadu/dejafu.git
synced 2025-01-07 06:17:21 +03:00
68 lines
2.6 KiB
Plaintext
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 |