packages feed

dejafu 2.4.0.5 → 2.4.0.6

raw patch · 6 files changed

+290/−246 lines, 6 filesdep ~containersPVP: major bump suggested

API removals or changes: PVP suggests a major version bump

Dependency ranges changed: containers

API changes (from Hackage documentation)

- Test.DejaFu.Conc: data MaskingState
+ Test.DejaFu.Conc: data () => MaskingState
- Test.DejaFu.Refinement: class Listable a
+ Test.DejaFu.Refinement: class () => Listable a

Files

CHANGELOG.rst view
@@ -7,6 +7,22 @@ .. _PVP: https://pvp.haskell.org/  +2.4.0.6 (2024-12-11)+--------------------++* Git: :tag:`dejafu-2.4.0.6`+* Hackage: :hackage:`dejafu-2.4.0.6`++**Contributors:** :u:`telser` (:pull:`417`).++Miscellaneous+~~~~~~~~~~~~~++* Update documentation link in ``Test.DejaFu``.+* Fix GHC compatibility warning.+* The upper bound on :hackage:`containers` is <0.8.++ 2.4.0.5 (2023-06-17) -------------------- @@ -130,9 +146,10 @@  * Thread action constructors for the ``MonadConc`` ``getMaskingState``   function:-    * ``Test.DejaFu.Types.ThreadAction``, ``GetMaskingState``-    * ``Test.DejaFu.Types.Lookahead``, ``WillGetMaskingState`` +  * ``Test.DejaFu.Types.ThreadAction``, ``GetMaskingState``+  * ``Test.DejaFu.Types.Lookahead``, ``WillGetMaskingState``+ Miscellaneous ~~~~~~~~~~~~~ @@ -185,51 +202,58 @@ Added ~~~~~ -* The ``Test.DejaFu.Types.MonadDejaFu`` typeclass, containing the-  primitives needed to run a concurrent program.  There are instances-  for:-    * ``IO``, which is probably the ``MonadConc`` instance people used-      previously, so there is no breaking change there.-    * ``CatchT (ST t)``, meaning that concurrent programs can be run-      without ``IO`` once more.+* The ``Test.DejaFu.Types.MonadDejaFu`` typeclass, containing the primitives+  needed to run a concurrent program.  There are instances for: -* Thread action constructors for ``MonadConc``-  ``supportsBoundThreads`` function:-    * ``Test.DejaFu.Types.ThreadAction``, ``SupportsBoundThreads``-    * ``Test.DejaFu.Types.Lookahead``, ``WillSupportsBoundThreads``+  * ``IO``, which is probably the ``MonadConc`` instance people used previously,+    so there is no breaking change there.+  * ``CatchT (ST t)``, meaning that concurrent programs can be run without+    ``IO`` once more. +* Thread action constructors for ``MonadConc`` ``supportsBoundThreads``+  function:++  * ``Test.DejaFu.Types.ThreadAction``, ``SupportsBoundThreads``+  * ``Test.DejaFu.Types.Lookahead``, ``WillSupportsBoundThreads``+ Changed ~~~~~~~ -* Many functions which had a ``MonadConc`` constraint now have a-  ``MonadDejaFu`` constraint:-    * In ``Test.DejaFu``-        * ``autocheck``-        * ``autocheckWay``-        * ``autocheckWithSettings``-        * ``dejafu``-        * ``dejafuWay``-        * ``dejafuWithSettings``-        * ``dejafus``-        * ``dejafusWay``-        * ``dejafusWithSettings``-        * ``runTest``-        * ``runTestWay``-        * ``runTestWithSettings``-    * In ``Test.DejaFu.Conc``-        * ``runConcurrent``-        * ``recordSnapshot``-        * ``runSnapshot``-    * In ``Test.DejaFu.SCT``-        * ``runSCT``-        * ``resultsSet``-        * ``runSCT'``-        * ``resultsSet'``-        * ``runSCTWithSettings``-        * ``resultsSetWithSettings``-        * ``runSCTWithSettings'``-        * ``resultsSetWithSettings'``+* Many functions which had a ``MonadConc`` constraint now have a ``MonadDejaFu``+  constraint: +  * In ``Test.DejaFu``++    * ``autocheck``+    * ``autocheckWay``+    * ``autocheckWithSettings``+    * ``dejafu``+    * ``dejafuWay``+    * ``dejafuWithSettings``+    * ``dejafus``+    * ``dejafusWay``+    * ``dejafusWithSettings``+    * ``runTest``+    * ``runTestWay``+    * ``runTestWithSettings``++  * In ``Test.DejaFu.Conc``++    * ``runConcurrent``+    * ``recordSnapshot``+    * ``runSnapshot``++  * In ``Test.DejaFu.SCT``++    * ``runSCT``+    * ``resultsSet``+    * ``runSCT'``+    * ``resultsSet'``+    * ``runSCTWithSettings``+    * ``resultsSetWithSettings``+    * ``runSCTWithSettings'``+    * ``resultsSetWithSettings'``+ Miscellaneous ~~~~~~~~~~~~~ @@ -260,27 +284,30 @@  * The ``Program`` types and their constructors (re-exported from   ``Test.DejaFu``):-    * ``Test.DejaFu.Conc.Program``-    * ``Test.DejaFu.Conc.Basic``-    * ``Test.DejaFu.Conc.WithSetup``-    * ``Test.DejaFu.Conc.WithSetupAndTeardown``-    * ``Test.DejaFu.Conc.withSetup``-    * ``Test.DejaFu.Conc.withTeardown``-    * ``Test.DejaFu.Conc.withSetupAndTeardown`` +  * ``Test.DejaFu.Conc.Program``+  * ``Test.DejaFu.Conc.Basic``+  * ``Test.DejaFu.Conc.WithSetup``+  * ``Test.DejaFu.Conc.WithSetupAndTeardown``+  * ``Test.DejaFu.Conc.withSetup``+  * ``Test.DejaFu.Conc.withTeardown``+  * ``Test.DejaFu.Conc.withSetupAndTeardown``+ * The ``Invariant`` type and associated functions (re-exported from   ``Test.DejaFu``):-    * ``Test.DejaFu.Conc.Invariant``-    * ``Test.DejaFu.Conc.registerInvariant``-    * ``Test.DejaFu.Conc.inspectIORef``-    * ``Test.DejaFu.Conc.inspectMVar``-    * ``Test.DejaFu.Conc.inspectTVar`` +  * ``Test.DejaFu.Conc.Invariant``+  * ``Test.DejaFu.Conc.registerInvariant``+  * ``Test.DejaFu.Conc.inspectIORef``+  * ``Test.DejaFu.Conc.inspectMVar``+  * ``Test.DejaFu.Conc.inspectTVar``+ * New snapshotting functions:-    * ``Test.DejaFu.Conc.Snapshot``-    * ``Test.DejaFu.Conc.recordSnapshot``-    * ``Test.DejaFu.Conc.runSnapshot`` +  * ``Test.DejaFu.Conc.Snapshot``+  * ``Test.DejaFu.Conc.recordSnapshot``+  * ``Test.DejaFu.Conc.runSnapshot``+ * ``Test.DejaFu.Settings.llengthBound``, which now applies to all ways   of testing. @@ -290,15 +317,16 @@ * ``Test.DejaFu.runTestWithSettings`` function.  * A simplified form of the concurrency state:-    * ``Test.DejaFu.Types.ConcurrencyState``-    * ``Test.DejaFu.Types.isBuffered``-    * ``Test.DejaFu.Types.numBuffered``-    * ``Test.DejaFu.Types.isFull``-    * ``Test.DejaFu.Types.canInterrupt``-    * ``Test.DejaFu.Types.canInterruptL``-    * ``Test.DejaFu.Types.isMaskedInterruptible``-    * ``Test.DejaFu.Types.isMaskedUninterruptible`` +  * ``Test.DejaFu.Types.ConcurrencyState``+  * ``Test.DejaFu.Types.isBuffered``+  * ``Test.DejaFu.Types.numBuffered``+  * ``Test.DejaFu.Types.isFull``+  * ``Test.DejaFu.Types.canInterrupt``+  * ``Test.DejaFu.Types.canInterruptL``+  * ``Test.DejaFu.Types.isMaskedInterruptible``+  * ``Test.DejaFu.Types.isMaskedUninterruptible``+ Changed ~~~~~~~ @@ -309,76 +337,84 @@   return a representative trace for each unique condition.  * Functions which took a ``ConcT`` now take a ``Program pty``:-    * ``Test.DejaFu.autocheck``-    * ``Test.DejaFu.autocheckWay``-    * ``Test.DejaFu.autocheckWithSettings``-    * ``Test.DejaFu.dejafu``-    * ``Test.DejaFu.dejafuWay``-    * ``Test.DejaFu.dejafuWithSettings``-    * ``Test.DejaFu.dejafus``-    * ``Test.DejaFu.dejafusWay``-    * ``Test.DejaFu.dejafusWithSettings``-    * ``Test.DejaFu.runTest``-    * ``Test.DejaFu.runTestWay``-    * ``Test.DejaFu.runTestWithSettings``-    * ``Test.DejaFu.Conc.runConcurrent``-    * ``Test.DejaFu.SCT.runSCT``-    * ``Test.DejaFu.SCT.resultsSet``-    * ``Test.DejaFu.SCT.runSCT'``-    * ``Test.DejaFu.SCT.resultsSet'``-    * ``Test.DejaFu.SCT.runSCTWithSettings``-    * ``Test.DejaFu.SCT.resultsSetWithSettings``-    * ``Test.DejaFu.SCT.runSCTWithSettings'``-    * ``Test.DejaFu.SCT.resultsSetWithSettings'`` +  * ``Test.DejaFu.autocheck``+  * ``Test.DejaFu.autocheckWay``+  * ``Test.DejaFu.autocheckWithSettings``+  * ``Test.DejaFu.dejafu``+  * ``Test.DejaFu.dejafuWay``+  * ``Test.DejaFu.dejafuWithSettings``+  * ``Test.DejaFu.dejafus``+  * ``Test.DejaFu.dejafusWay``+  * ``Test.DejaFu.dejafusWithSettings``+  * ``Test.DejaFu.runTest``+  * ``Test.DejaFu.runTestWay``+  * ``Test.DejaFu.runTestWithSettings``+  * ``Test.DejaFu.Conc.runConcurrent``+  * ``Test.DejaFu.SCT.runSCT``+  * ``Test.DejaFu.SCT.resultsSet``+  * ``Test.DejaFu.SCT.runSCT'``+  * ``Test.DejaFu.SCT.resultsSet'``+  * ``Test.DejaFu.SCT.runSCTWithSettings``+  * ``Test.DejaFu.SCT.resultsSetWithSettings``+  * ``Test.DejaFu.SCT.runSCTWithSettings'``+  * ``Test.DejaFu.SCT.resultsSetWithSettings'``+ * ``Test.DejaFu.Conc.ConcT`` is an alias for ``Program Basic``.  * ``Test.DejaFu.Types.Bounds``:-    * Removed ``boundLength`` field. +  * Removed ``boundLength`` field.+ * ``Test.DejaFu.Types.Condition``:-    * Added ``InvariantFailure`` constructor-    * Removed ``STMDeadlock`` constructor +  * Added ``InvariantFailure`` constructor+  * Removed ``STMDeadlock`` constructor+ * ``Test.DejaFu.Types.Error``:-    * Removed ``NestedSubconcurrency``, ``MultithreadedSubconcurrency``,-      and ``LateDontCheck`` constructors. +  * Removed ``NestedSubconcurrency``, ``MultithreadedSubconcurrency``, and+    ``LateDontCheck`` constructors.+ * ``Test.DejaFu.Types.Lookahead``:-    * Added ``WillRegisterInvariant`` constructor-    * Removed ``WillSubconcurrency``, ``WillStopSubconcurrency``, and-      ``WillDontCheck`` constructors +  * Added ``WillRegisterInvariant`` constructor+  * Removed ``WillSubconcurrency``, ``WillStopSubconcurrency``, and+    ``WillDontCheck`` constructors+ * ``Test.DejaFu.Types.ThreadAction``:-    * Added ``RegisterInvariant`` constructor-    * Removed ``Subconcurrency``, ``StopSubconcurrency``, and-      ``DontCheck`` constructors +  * Added ``RegisterInvariant`` constructor+  * Removed ``Subconcurrency``, ``StopSubconcurrency``, and+    ``DontCheck`` constructors+ Removed ~~~~~~~  * The deprecated functions:-    * ``Test.DejaFu.dejafuDiscard``-    * ``Test.DejaFu.SCT.runSCTDiscard``-    * ``Test.DejaFu.SCT.runSCTDiscard'``-    * ``Test.DejaFu.SCT.resultsSetDiscard``-    * ``Test.DejaFu.SCT.resultsSetDiscard'``-    * ``Test.DejaFu.SCT.sctBound``-    * ``Test.DejaFu.SCT.sctBoundDiscard``-    * ``Test.DejaFu.SCT.sctUniformRandom``-    * ``Test.DejaFu.SCT.sctUniformRandomDiscard``-    * ``Test.DejaFu.SCT.sctWeightedRandom``-    * ``Test.DejaFu.SCT.sctWeightedRandomDiscard`` +  * ``Test.DejaFu.dejafuDiscard``+  * ``Test.DejaFu.SCT.runSCTDiscard``+  * ``Test.DejaFu.SCT.runSCTDiscard'``+  * ``Test.DejaFu.SCT.resultsSetDiscard``+  * ``Test.DejaFu.SCT.resultsSetDiscard'``+  * ``Test.DejaFu.SCT.sctBound``+  * ``Test.DejaFu.SCT.sctBoundDiscard``+  * ``Test.DejaFu.SCT.sctUniformRandom``+  * ``Test.DejaFu.SCT.sctUniformRandomDiscard``+  * ``Test.DejaFu.SCT.sctWeightedRandom``+  * ``Test.DejaFu.SCT.sctWeightedRandomDiscard``+ * The deprecated type ``Test.DejaFu.Types.Failure``  * Old snapshotting functions:-    * ``Test.DejaFu.Conc.DCSnapshot``-    * ``Test.DejaFu.Conc.runForDCSnapshot``-    * ``Test.DejaFu.Conc.runWithDCSnapshot``-    * ``Test.DejaFu.Conc.canDCSnapshot``-    * ``Test.DejaFu.Conc.threadsFromDCSnapshot`` +  * ``Test.DejaFu.Conc.DCSnapshot``+  * ``Test.DejaFu.Conc.runForDCSnapshot``+  * ``Test.DejaFu.Conc.runWithDCSnapshot``+  * ``Test.DejaFu.Conc.canDCSnapshot``+  * ``Test.DejaFu.Conc.threadsFromDCSnapshot``+ * ``Test.DejaFu.Conc.dontCheck``  * ``Test.DejaFu.Conc.subconcurrency``@@ -399,9 +435,10 @@  * ``Test.DejaFu.Types.Error`` for internal errors and misuses, with   predicates:-    * ``Test.DejaFu.Types.isSchedulerError``-    * ``Test.DejaFu.Types.isIncorrectUsage`` +  * ``Test.DejaFu.Types.isSchedulerError``+  * ``Test.DejaFu.Types.isIncorrectUsage``+ * Deprecated ``Test.DejaFu.Types.Failure`` type synonym for   ``Condition``. @@ -643,9 +680,9 @@  * GHC 7.10 support is dropped.  Dependency lower bounds are: -    * :hackage:`base`: 4.9-    * :hackage:`concurrency`: 1.5-    * :hackage:`transformers`: 0.5+  * :hackage:`base`: 4.9+  * :hackage:`concurrency`: 1.5+  * :hackage:`transformers`: 0.5  * The upper bound on :hackage:`concurrency` is 1.6. @@ -690,8 +727,8 @@  * (:issue:`183`) SCT settings for trace simplification: -    * ``Test.DejaFu.Settings.lequality``-    * ``Test.DejaFu.Settings.lsimplify``+  * ``Test.DejaFu.Settings.lequality``+  * ``Test.DejaFu.Settings.lsimplify``  * (:pull:`248`) ``Test.DejaFu.Utils.toTIdTrace`` to extract thread IDs   from a trace.@@ -717,23 +754,23 @@  * (:pull:`246`) ``Generic`` instances for: -    * ``Test.DejaFu.Types.ThreadId``-    * ``Test.DejaFu.Types.CRefId``-    * ``Test.DejaFu.Types.MVarId``-    * ``Test.DejaFu.Types.TVarId``-    * ``Test.DejaFu.Types.Id``-    * ``Test.DejaFu.Types.ThreadAction``-    * ``Test.DejaFu.Types.Lookahead``-    * ``Test.DejaFu.Types.TAction``-    * ``Test.DejaFu.Types.Decision``-    * ``Test.DejaFu.Types.Failure``-    * ``Test.DejaFu.Types.Bounds``-    * ``Test.DejaFu.Types.PreemptionBound``-    * ``Test.DejaFu.Types.FairBound``-    * ``Test.DejaFu.Types.LengthBound``-    * ``Test.DejaFu.Types.Discard``-    * ``Test.DejaFu.Types.MemType``-    * ``Test.DejaFu.Types.MonadFailException``+  * ``Test.DejaFu.Types.ThreadId``+  * ``Test.DejaFu.Types.CRefId``+  * ``Test.DejaFu.Types.MVarId``+  * ``Test.DejaFu.Types.TVarId``+  * ``Test.DejaFu.Types.Id``+  * ``Test.DejaFu.Types.ThreadAction``+  * ``Test.DejaFu.Types.Lookahead``+  * ``Test.DejaFu.Types.TAction``+  * ``Test.DejaFu.Types.Decision``+  * ``Test.DejaFu.Types.Failure``+  * ``Test.DejaFu.Types.Bounds``+  * ``Test.DejaFu.Types.PreemptionBound``+  * ``Test.DejaFu.Types.FairBound``+  * ``Test.DejaFu.Types.LengthBound``+  * ``Test.DejaFu.Types.Discard``+  * ``Test.DejaFu.Types.MemType``+  * ``Test.DejaFu.Types.MonadFailException``  * (:pull:`246`) ``NFData`` instance for   ``Test.DejaFu.Types.MonadFailException``@@ -808,49 +845,55 @@  * (:pull:`238`) A record-based approach to SCT configuration: -    * ``Test.DejaFu.Settings``-      (re-exported from ``Test.Dejafu`` and ``Test.DejaFu.SCT``)-    * ``Test.DejaFu.Settings.Settings``-    * ``Test.DejaFu.Settings.defaultSettings``-    * ``Test.DejaFu.Settings.fromWayAndMemType``-    * Lenses:-        * ``Test.DejaFu.Settings.lway``-        * ``Test.DejaFu.Settings.lmemtype``-        * ``Test.DejaFu.Settings.ldiscard``-        * ``Test.DejaFu.Settings.learlyExit``-        * ``Test.DejaFu.Settings.ldebugShow``-        * ``Test.DejaFu.Settings.ldebugPrint``-    * Lens helpers:-        * ``Test.DejaFu.Settings.get``-        * ``Test.DejaFu.Settings.set``-    * Runners:-        * ``Test.DejaFu.SCT.runSCTWithSettings``-        * ``Test.DejaFu.SCT.runSCTWithSettings'``-        * ``Test.DejaFu.SCT.resultsSetWithSettings``-        * ``Test.DejaFu.SCT.resultsSetWithSettings'``+  * ``Test.DejaFu.Settings`` (re-exported from ``Test.Dejafu`` and+    ``Test.DejaFu.SCT``)+  * ``Test.DejaFu.Settings.Settings``+  * ``Test.DejaFu.Settings.defaultSettings``+  * ``Test.DejaFu.Settings.fromWayAndMemType`` +  * Lenses:++    * ``Test.DejaFu.Settings.lway``+    * ``Test.DejaFu.Settings.lmemtype``+    * ``Test.DejaFu.Settings.ldiscard``+    * ``Test.DejaFu.Settings.learlyExit``+    * ``Test.DejaFu.Settings.ldebugShow``+    * ``Test.DejaFu.Settings.ldebugPrint``++  * Lens helpers:++    * ``Test.DejaFu.Settings.get``+    * ``Test.DejaFu.Settings.set``++  * Runners:++    * ``Test.DejaFu.SCT.runSCTWithSettings``+    * ``Test.DejaFu.SCT.runSCTWithSettings'``+    * ``Test.DejaFu.SCT.resultsSetWithSettings``+    * ``Test.DejaFu.SCT.resultsSetWithSettings'``+ * (:pull:`238`) Settings-based test functions: -    * ``Test.DejaFu.autocheckWithSettings``-    * ``Test.DejaFu.dejafuWithSettings``-    * ``Test.DejaFu.dejafusWithSettings``-    * ``Test.DejaFu.runTestWithSettings``+  * ``Test.DejaFu.autocheckWithSettings``+  * ``Test.DejaFu.dejafuWithSettings``+  * ``Test.DejaFu.dejafusWithSettings``+  * ``Test.DejaFu.runTestWithSettings``  Deprecated ~~~~~~~~~~  * (:pull:`238`) SCT function variants: -    * ``Test.DejaFu.SCT.runSCTDiscard``-    * ``Test.DejaFu.SCT.resultSetDiscard``-    * ``Test.DejaFu.SCT.runSCTDiscard'``-    * ``Test.DejaFu.SCT.resultSetDiscard'``-    * ``Test.DejaFu.SCT.sctBound``-    * ``Test.DejaFu.SCT.sctBoundDiscard``-    * ``Test.DejaFu.SCT.sctUniformRandom``-    * ``Test.DejaFu.SCT.sctUniformRandomDiscard``-    * ``Test.DejaFu.SCT.sctWeightedRandom``-    * ``Test.DejaFu.SCT.sctWeightedRandomDiscard``+  * ``Test.DejaFu.SCT.runSCTDiscard``+  * ``Test.DejaFu.SCT.resultSetDiscard``+  * ``Test.DejaFu.SCT.runSCTDiscard'``+  * ``Test.DejaFu.SCT.resultSetDiscard'``+  * ``Test.DejaFu.SCT.sctBound``+  * ``Test.DejaFu.SCT.sctBoundDiscard``+  * ``Test.DejaFu.SCT.sctUniformRandom``+  * ``Test.DejaFu.SCT.sctUniformRandomDiscard``+  * ``Test.DejaFu.SCT.sctWeightedRandom``+  * ``Test.DejaFu.SCT.sctWeightedRandomDiscard``  * (:pull:`238`) The ``Test.DejaFu.Defaults`` module.  Import   ``Test.DejaFu.Settings`` instead.@@ -906,18 +949,18 @@ * (:pull:`219`) The testing-only ``Test.DejaFu.Conc.dontCheck``   function, and associated definitions: -    * ``Test.DejaFu.Types.DontCheck``-    * ``Test.DejaFu.Types.WillDontCheck``-    * ``Test.DejaFu.Types.IllegalDontCheck``-    * ``Test.DejaFu.Types.isIllegalDontCheck``+  * ``Test.DejaFu.Types.DontCheck``+  * ``Test.DejaFu.Types.WillDontCheck``+  * ``Test.DejaFu.Types.IllegalDontCheck``+  * ``Test.DejaFu.Types.isIllegalDontCheck``  * (:pull:`219`) A snapshotting approach based on   ``Test.DejaFu.Conc.dontCheck``: -    * ``Test.DejaFu.Conc.runForDCSnapshot``-    * ``Test.DejaFu.Conc.runWithDCSnapshot``-    * ``Test.DejaFu.Conc.canDCSnapshot``-    * ``Test.DejaFu.Conc.threadsFromDCSnapshot``+  * ``Test.DejaFu.Conc.runForDCSnapshot``+  * ``Test.DejaFu.Conc.runWithDCSnapshot``+  * ``Test.DejaFu.Conc.canDCSnapshot``+  * ``Test.DejaFu.Conc.threadsFromDCSnapshot``  Changed ~~~~~~~@@ -1002,10 +1045,10 @@  * (:pull:`145`) Thread action and lookahead values for bound threads: -    * ``Test.DejaFu.Types.ForkOS``-    * ``Test.DejaFu.Types.IsCurrentThreadBound``-    * ``Test.DejaFu.Types.WillForkOS``-    * ``Test.DejaFu.Types.WillIsCurrentThreadBound``+  * ``Test.DejaFu.Types.ForkOS``+  * ``Test.DejaFu.Types.IsCurrentThreadBound``+  * ``Test.DejaFu.Types.WillForkOS``+  * ``Test.DejaFu.Types.WillIsCurrentThreadBound``  * (:issue:`155`) ``Test.DejaFu.Types`` and ``Test.DejaFu.Utils``   modules, each containing some of what was in ``Test.DejaFu.Common``.@@ -1055,15 +1098,15 @@  * The ``IO`` specific testing functions: -    * ``Test.DejaFu.autocheckIO``-    * ``Test.DejaFu.dejafuIO``-    * ``Test.DejaFu.dejafusIO``-    * ``Test.DejaFu.autocheckWayIO``-    * ``Test.DejaFu.dejafuWayIO``-    * ``Test.DejaFu.dejafusWayIO``-    * ``Test.DejaFu.dejafuDiscardIO``-    * ``Test.DejaFu.runTestM``-    * ``Test.DejaFu.runTestWayM``+  * ``Test.DejaFu.autocheckIO``+  * ``Test.DejaFu.dejafuIO``+  * ``Test.DejaFu.dejafusIO``+  * ``Test.DejaFu.autocheckWayIO``+  * ``Test.DejaFu.dejafuWayIO``+  * ``Test.DejaFu.dejafusWayIO``+  * ``Test.DejaFu.dejafuDiscardIO``+  * ``Test.DejaFu.runTestM``+  * ``Test.DejaFu.runTestWayM``  * The ``Test.DejaFu.Conc.ConcST`` type alias. @@ -1205,16 +1248,16 @@  * Failure predicates (also exported from ``Test.DejaFu``): -    * ``Test.DejaFu.Common.isAbort``-    * ``Test.DejaFu.Common.isDeadlock``-    * ``Test.DejaFu.Common.isIllegalSubconcurrency``-    * ``Test.DejaFu.Common.isInternalError``-    * ``Test.DejaFu.Common.isUncaughtException``+  * ``Test.DejaFu.Common.isAbort``+  * ``Test.DejaFu.Common.isDeadlock``+  * ``Test.DejaFu.Common.isIllegalSubconcurrency``+  * ``Test.DejaFu.Common.isInternalError``+  * ``Test.DejaFu.Common.isUncaughtException``  * Thread action and lookahead values for ``threadDelay``: -    * ``Test.DejaFu.Common.ThreadDelay``-    * ``Test.DejaFu.Common.WillThreadDelay``+  * ``Test.DejaFu.Common.ThreadDelay``+  * ``Test.DejaFu.Common.WillThreadDelay``  Changed ~~~~~~~@@ -1341,8 +1384,8 @@ * (:issue:`64`) Greatly reduce memory usage in systematic testing when   discarding traces by using an alternative data structure. -    * Old: ``O(max trace length * number of executions)``-    * New: ``O(max trace length * number of traces kept)``+  * Old: ``O(max trace length * number of executions)``+  * New: ``O(max trace length * number of traces kept)``   0.7.1.0 - The Discard Release (2017-08-10)@@ -1356,15 +1399,15 @@  * (:issue:`90`) A way to selectively discard results or traces: -    * Type: ``Test.DejaFu.SCT.Discard``-    * Functions: ``Test.DejaFu.SCT.runSCTDiscard``,-      ``resultsSetDiscard``, ``sctBoundDiscard``,-      ``sctUniformRandomDiscard``, and ``sctWeightedRandomDiscard``.+  * Type: ``Test.DejaFu.SCT.Discard``+  * Functions: ``Test.DejaFu.SCT.runSCTDiscard``, ``resultsSetDiscard``,+    ``sctBoundDiscard``, ``sctUniformRandomDiscard``, and+    ``sctWeightedRandomDiscard``.  * (:issue:`90`) Discarding variants of the testing functions: -    * ``Test.DejaFu.dejafuDiscard``-    * ``Test.DejaFu.dejafuDiscardIO``+  * ``Test.DejaFu.dejafuDiscard``+  * ``Test.DejaFu.dejafuDiscardIO``  * (:issue:`90`) ``Test.DejaFu.Defaults.defaultDiscarder``. @@ -1430,13 +1473,12 @@ * Smart constructors for ``Test.DejaFu.SCT.Way`` (also re-exported   from ``Test.DejaFu``): -    * ``Test.DejaFu.SCT.systematically``, like the old-      ``Systematically``.-    * ``Test.DejaFu.SCT.randomly``, like the old ``Randomly``.-    * ``Test.DejaFu.SCT.uniformly``, a new uniform (as opposed to-      weighted) random scheduler.-    * ``Test.DejaFu.SCT.swarmy``, like the old ``Randomly`` but which-      can use the same weights for multiple executions.+  * ``Test.DejaFu.SCT.systematically``, like the old ``Systematically``.+  * ``Test.DejaFu.SCT.randomly``, like the old ``Randomly``.+  * ``Test.DejaFu.SCT.uniformly``, a new uniform (as opposed to weighted) random+    scheduler.+  * ``Test.DejaFu.SCT.swarmy``, like the old ``Randomly`` but which can use the+    same weights for multiple executions.  Changed ~~~~~~~@@ -1454,8 +1496,8 @@ * The ``Test.DejaFu.SCT.Way`` type is now abstract, so its   constructors are no longer exported: -    * ``Test.DejaFu.SCT.Systematically``-    * ``Test.DejaFu.SCT.Randomly``+  * ``Test.DejaFu.SCT.Systematically``+  * ``Test.DejaFu.SCT.Randomly``  * The ``Test.DejaFu.SCT.sctPreBound``, ``sctFairBound``, and   ``sctLengthBound`` functions.@@ -1562,25 +1604,25 @@  * ``NFData`` instances for: -    * ``Test.DejaFu.Result``-    * ``Test.DejaFu.Common.ThreadId``-    * ``Test.DejaFu.Common.CRefId``-    * ``Test.DejaFu.Common.MVarId``-    * ``Test.DejaFu.Common.TVarId``-    * ``Test.DejaFu.Common.IdSource``-    * ``Test.DejaFu.Common.ThreadAction``-    * ``Test.DejaFu.Common.Lookahead``-    * ``Test.DejaFu.Common.ActionType``-    * ``Test.DejaFu.Common.TAction``-    * ``Test.DejaFu.Common.Decision``-    * ``Test.DejaFu.Common.Failure``-    * ``Test.DejaFu.Common.MemType``-    * ``Test.DejaFu.SCT.Bounds``-    * ``Test.DejaFu.SCT.PreemptionBound``-    * ``Test.DejaFu.SCT.FairBound``-    * ``Test.DejaFu.SCT.LengthBound``-    * ``Test.DejaFu.SCT.Way``-    * ``Test.DejaFu.STM.Result``+  * ``Test.DejaFu.Result``+  * ``Test.DejaFu.Common.ThreadId``+  * ``Test.DejaFu.Common.CRefId``+  * ``Test.DejaFu.Common.MVarId``+  * ``Test.DejaFu.Common.TVarId``+  * ``Test.DejaFu.Common.IdSource``+  * ``Test.DejaFu.Common.ThreadAction``+  * ``Test.DejaFu.Common.Lookahead``+  * ``Test.DejaFu.Common.ActionType``+  * ``Test.DejaFu.Common.TAction``+  * ``Test.DejaFu.Common.Decision``+  * ``Test.DejaFu.Common.Failure``+  * ``Test.DejaFu.Common.MemType``+  * ``Test.DejaFu.SCT.Bounds``+  * ``Test.DejaFu.SCT.PreemptionBound``+  * ``Test.DejaFu.SCT.FairBound``+  * ``Test.DejaFu.SCT.LengthBound``+  * ``Test.DejaFu.SCT.Way``+  * ``Test.DejaFu.STM.Result``  * ``Eq``, ``Ord``, and ``Show`` instances for   ``Test.DejaFu.Common.IdSource``.@@ -1652,8 +1694,8 @@  * Thread action and lookahead values for ``tryReadMVar``: -    * ``Test.DejaFu.Common.TryReadMVar``-    * ``Test.DejaFu.Common.WillTryReadMVar``+  * ``Test.DejaFu.Common.TryReadMVar``+  * ``Test.DejaFu.Common.WillTryReadMVar``  * The testing-only ``Test.DejaFu.Conc.subconcurrency`` function. 
README.markdown view
@@ -14,7 +14,7 @@ - [Release notes](#release-notes) - [Questions, feedback, discussion](#questions-feedback-discussion) - [Bibliography](#bibliography)-- **[The website!](http://dejafu.readthedocs.io/)**+- **[The website!](https://dejafu.docs.barrucadu.co.uk/)**  Déjà Fu is a unit-testing library for concurrent Haskell programs. Tests are deterministic and expressive, making it easy and convenient
Test/DejaFu.hs view
@@ -13,7 +13,7 @@ concurrency> package's 'MonadConc' typeclass.  For more in-depth documentation, including migration guides from-earlier versions of dejafu, see the <https://dejafu.readthedocs.io+earlier versions of dejafu, see the <https://dejafu.docs.barrucadu.co.uk/ website>.  __A first test:__ This is a simple concurrent program which forks two
Test/DejaFu/Conc/Internal/Common.hs view
@@ -2,6 +2,7 @@ {-# LANGUAGE ExistentialQuantification #-} {-# LANGUAGE GADTs #-} {-# LANGUAGE RankNTypes #-}+{-# LANGUAGE TypeOperators #-}  -- | -- Module      : Test.DejaFu.Conc.Internal.Common
Test/DejaFu/Conc/Internal/Program.hs view
@@ -5,6 +5,7 @@ {-# LANGUAGE LambdaCase #-} {-# LANGUAGE RecordWildCards #-} {-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE TypeOperators #-}  -- GHC doesn't need this to compile the module, but stylish-haskell -- does to format it.
dejafu.cabal view
@@ -1,8 +1,8 @@--- Initial monad-conc.cabal generated by cabal init.  For further +-- Initial monad-conc.cabal generated by cabal init.  For further -- documentation, see http://haskell.org/cabal/users-guide/  name:                dejafu-version:             2.4.0.5+version:             2.4.0.6 synopsis:            A library for unit-testing concurrent programs.  description:@@ -13,7 +13,7 @@   package by enabling you to deterministically test your concurrent   programs.   .-  See the <https://dejafu.readthedocs.io website> or README for more.+  See the <https://dejafu.docs.barrucadu.co.uk/ website> or README for more.  homepage:            https://github.com/barrucadu/dejafu license:             MIT@@ -33,7 +33,7 @@ source-repository this   type:     git   location: https://github.com/barrucadu/dejafu.git-  tag:      dejafu-2.4.0.5+  tag:      dejafu-2.4.0.6  library   exposed-modules:     Test.DejaFu@@ -56,11 +56,11 @@                      , Test.DejaFu.SCT.Internal.DPOR                      , Test.DejaFu.SCT.Internal.Weighted -  -- other-modules:       -  -- other-extensions:    +  -- other-modules:+  -- other-extensions:   build-depends:       base              >=4.9 && <5                      , concurrency       >=1.11 && <1.12-                     , containers        >=0.5 && <0.7+                     , containers        >=0.5 && <0.8                      , contravariant     >=1.2 && <1.6                      , deepseq           >=1.1 && <2                      , exceptions        >=0.7 && <0.11@@ -68,6 +68,6 @@                      , profunctors       >=4.0 && <6                      , random            >=1.0 && <1.3                      , transformers      >=0.5 && <0.7-  -- hs-source-dirs:      +  -- hs-source-dirs:   default-language:    Haskell2010   ghc-options:         -Wall