Cabal revisions of dejafu-0.2.0.0
Hackage metadata revisions edit the .cabal file after upload; each diff below is one revision.
revision 1
--- Initial monad-conc.cabal generated by cabal init. For further --- documentation, see http://haskell.org/cabal/users-guide/--name: dejafu-version: 0.2.0.0-synopsis: Overloadable primitives for testable, potentially non-deterministic, concurrency.--description:- /[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- <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.- .- This package provides a class of monads for potentially- nondeterministic concurrency, with an interface in the spirit of- GHC's normal concurrency abstraction.- .- == @MonadConc@ with 'IO':- .- 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.- .- 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:- .- * __Sequential Consistency:__ A program behaves as a simple- interleaving of the actions in different threads. When a CRef is- written to, that write is immediately visible to all threads.- .- * __Total Store Order (TSO):__ Each thread has a write buffer. A- thread sees its writes immediately, but other threads will only- see writes when they are committed, which may happen later. Writes- are committed in the same order that they are created.- .- * __Partial Store Order (PSO):__ Each CRef has a write buffer. A- thread sees its writes immediately, but other threads will only- see writes when they are committed, which may happen later. Writes- to different CRefs are not necessarily committed in the same order- that they are created.- .- If a testing function does not take the memory model as a parameter,- it uses TSO.- .- See the <https://github.com/barrucadu/dejafu README> for more- details.--homepage: https://github.com/barrucadu/dejafu-license: MIT-license-file: LICENSE-author: Michael Walker-maintainer: mike@barrucadu.co.uk--- copyright: -category: Concurrency-build-type: Simple--- extra-source-files: -cabal-version: >=1.10--source-repository head- type: git- location: https://github.com/barrucadu/dejafu.git--source-repository this- type: git- location: https://github.com/barrucadu/dejafu.git- tag: 0.1.0.0--library- exposed-modules: Control.Monad.Conc.Class- , Control.Monad.STM.Class-- , Control.Concurrent.CVar- , Control.Concurrent.CVar.Strict- , Control.Concurrent.STM.CTVar- , Control.Concurrent.STM.CTMVar-- , Test.DejaFu- , Test.DejaFu.Deterministic- , Test.DejaFu.Deterministic.Schedule- , Test.DejaFu.SCT- , Test.DejaFu.STM-- , Test.DejaFu.Deterministic.Internal- , Test.DejaFu.Deterministic.Internal.Common- , Test.DejaFu.Deterministic.Internal.Memory- , Test.DejaFu.Deterministic.Internal.Threading- , Test.DejaFu.Internal- , Test.DejaFu.SCT.Internal- , Test.DejaFu.STM.Internal- , Data.List.Extra-- -- other-modules: - -- other-extensions: - build-depends: base >=4.5 && <5- , atomic-primops- , containers- , deepseq- , exceptions >=0.7- , monad-loops- , mtl- , random- , stm- , transformers- -- hs-source-dirs: - default-language: Haskell2010- ghc-options: -Wall+name: dejafu +version: 0.2.0.0 +x-revision: 1 +synopsis: Overloadable primitives for testable, potentially non-deterministic, concurrency. + +description: + /[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 + <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. + . + This package provides a class of monads for potentially + nondeterministic concurrency, with an interface in the spirit of + GHC's normal concurrency abstraction. + . + == @MonadConc@ with 'IO': + . + 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. + . + 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: + . + * __Sequential Consistency:__ A program behaves as a simple + interleaving of the actions in different threads. When a CRef is + written to, that write is immediately visible to all threads. + . + * __Total Store Order (TSO):__ Each thread has a write buffer. A + thread sees its writes immediately, but other threads will only + see writes when they are committed, which may happen later. Writes + are committed in the same order that they are created. + . + * __Partial Store Order (PSO):__ Each CRef has a write buffer. A + thread sees its writes immediately, but other threads will only + see writes when they are committed, which may happen later. Writes + to different CRefs are not necessarily committed in the same order + that they are created. + . + If a testing function does not take the memory model as a parameter, + it uses TSO. + . + See the <https://github.com/barrucadu/dejafu README> for more + details. + +homepage: https://github.com/barrucadu/dejafu +license: MIT +license-file: LICENSE +author: Michael Walker +maintainer: mike@barrucadu.co.uk +-- copyright: +category: Concurrency +build-type: Simple +-- extra-source-files: +cabal-version: >=1.10 + +source-repository head + type: git + location: https://github.com/barrucadu/dejafu.git + +source-repository this + type: git + location: https://github.com/barrucadu/dejafu.git + tag: 0.1.0.0 + +library + exposed-modules: Control.Monad.Conc.Class + , Control.Monad.STM.Class + + , Control.Concurrent.CVar + , Control.Concurrent.CVar.Strict + , Control.Concurrent.STM.CTVar + , Control.Concurrent.STM.CTMVar + + , Test.DejaFu + , Test.DejaFu.Deterministic + , Test.DejaFu.Deterministic.Schedule + , Test.DejaFu.SCT + , Test.DejaFu.STM + + , Test.DejaFu.Deterministic.Internal + , Test.DejaFu.Deterministic.Internal.Common + , Test.DejaFu.Deterministic.Internal.Memory + , Test.DejaFu.Deterministic.Internal.Threading + , Test.DejaFu.Internal + , Test.DejaFu.SCT.Internal + , Test.DejaFu.STM.Internal + , Data.List.Extra + + -- other-modules: + -- other-extensions: + build-depends: base >=4.7 && <4.9 + , atomic-primops < 0.9 + , containers == 0.5.* + , deepseq >= 1.1 && <1.5 + , exceptions >=0.7 && <0.9 + , monad-loops < 0.5 + , mtl < 2.3 + , random < 1.2 + , stm < 2.5 + , transformers <0.6 + -- hs-source-dirs: + default-language: Haskell2010 + ghc-options: -Wall