Michael Walker
6eaae0a589
Wrap predicate functions in a newtype & separate ty params
...
Also adds a Functor and Profunctor instance for predicates. The old
predicate type is kept as an alias for the (common) case where both
tyvars are the same.
2017-12-12 14:07:22 +00:00
Michael Walker
3348c4705c
Add bound-thread async function variants
2017-12-12 14:06:59 +00:00
Michael Walker
45256193c0
Implement bound threads
...
This also adds forkOS(N) and isCurrentThreadBound to MonadConc, a
breaking change.
Note: forkOSWithUnmask(N) is NOT added to MonadConc, as it isn't
supported in base-4.8 (GHC 7.10). See #132 for the action on this.
A bound thread under test gets a dedicated worker thread, which is
forked bound using the underlying MonadConc. This worker is used for
all lifted actions, with execution as normal otherwise.
2017-12-12 14:06:59 +00:00
Michael Walker
31d29c11ea
Require a 'MonadConc n' instance to run 'ConcT r n' expressions
...
This is preparation for adding bound threads. The instance isn't used
in this commit, but the diff is large enough that I feel this should
be a separate commit for ease of review.
Fallout:
- The MonadBaseControl IO instance is gone, as I'm not sure how to do
it generally.
- The pure/IO split is gone, everything is now monadic.
- The execution, SCT, and dejafu functions are of the form (MonadConc
n, MonadRef r n) => ...
2017-12-12 14:06:59 +00:00
Michael Walker
99cae72b42
Pick version numbers for next-supermajor release
2017-12-12 14:06:59 +00:00
Michael Walker
0c8e387339
dejafu-0.9.1.2 release
2017-12-12 13:51:34 +00:00
Michael Walker
94dfe4b61a
Update leancheck dependency
2017-12-12 13:50:35 +00:00
Michael Walker
8c2bf9d784
dejafu-0.9.1.1 release
2017-12-08 14:25:10 +00:00
Michael Walker
4791333dc0
Reduce default number of quickcheck tests in dejafu-tests
2017-12-08 14:21:51 +00:00
Michael Walker
455a0f4ba7
Fix depstate being one step out of sync in backtracking
...
Fixes #161
2017-12-08 14:21:51 +00:00
Michael Walker
be64ba90ab
Add weeder exclude rules for optional dependencies
2017-12-08 14:20:39 +00:00
Michael Walker
d750342c77
hunit-dejafu-0.7.1.1 and tasty-dejafu-0.7.1.1 releases
2017-11-30 22:08:56 +00:00
Michael Walker
fa1836c3a8
Add missing haddock @since annotations
2017-11-30 22:08:38 +00:00
Michael Walker
82966c43f3
hunit-dejafu-0.7.1.0 and tasty-dejafu-0.7.1.0 releases
2017-11-30 21:43:12 +00:00
Michael Walker
417415937a
Add testPropertyFor to {hunit,tasty}-dejafu
...
Closes #159
2017-11-30 21:40:25 +00:00
Michael Walker
e2a8882764
concurrency-1.2.3.0 release
2017-11-30 21:25:51 +00:00
Michael Walker
e408dcb40b
Add named-thread variants of the 'withAsync*' functions
...
Closes #148
2017-11-30 21:22:46 +00:00
Michael Walker
2fa165ac6f
dejafu-0.9.1.0 release
2017-11-26 22:41:54 +00:00
Michael Walker
c88ec04ec2
Display pre-emptions following a yield with a lower-case "p"
...
Fixes #109
2017-11-26 22:24:13 +00:00
Michael Walker
e9a64a1f8d
Add missing MonadFail instances (when base >=4.9) for ConcT/STM
...
Closes #136
2017-11-25 23:40:08 +00:00
Michael Walker
a0801d65eb
Fix new hlint warnings
2017-11-20 19:25:48 +00:00
Michael Walker
7aa407df47
Remove accidentally committed file
2017-11-20 19:25:48 +00:00
Michael Walker
743dcad20d
Travis improvements
...
- separate build matrix entry for style checks
- run stylish-haskell
- use `stack --no-terminal`
- improve folding
Closes #151
Closes #152
2017-11-20 19:25:48 +00:00
Michael Walker
9354282ee5
Fix some incorrect "@since" haddock comments
2017-11-07 14:21:23 +00:00
Michael Walker
b0fb55a50e
dejafu-0.9.0.3 release
2017-11-06 01:10:52 +00:00
Michael Walker
4437baf672
concurrency-1.2.2.0 release
2017-11-05 01:53:22 +00:00
Michael Walker
77c708014d
Add IsConc and IsSTM types
2017-11-05 01:47:30 +00:00
Michael Walker
74b1c2c996
Use underlying monad for modifyCRefCAS_ transformer instances
2017-11-05 01:33:43 +00:00
Michael Walker
7d5df170e7
Do not pass memory model to dependency functions
...
This is sane because buffered writes can only happen if the MemType
isn't sequential consistency anyway.
2017-11-02 22:15:11 +00:00
Michael Walker
e780c69f80
Impose a dependency between commits and memory barriers
...
The previous behaviour was unsound.
Fixes #138
2017-11-02 21:37:11 +00:00
Michael Walker
c41734f251
Make write/commit dependency avoidance less widely applicable
...
It was probably unsound before.
2017-11-02 21:34:34 +00:00
Michael Walker
5a8d6c965b
dejafu-0.9.0.2 release
2017-11-02 18:12:04 +00:00
Michael Walker
e7b18ffd50
tasty-dejafu-0.7.0.3 release
2017-11-02 18:08:43 +00:00
Michael Walker
42ea4ca2f2
tasty-dejafu: bump upper bound of tasty to 0.13
2017-11-02 18:07:26 +00:00
Michael Walker
bc72c9904b
Make a fair bound of 0 meaningful
2017-11-01 20:06:31 +00:00
Michael Walker
424bdd2a6b
Try alternative decisions if runnable prior is excluded by the bound
2017-11-01 14:52:42 +00:00
Michael Walker
30ab912210
Don't consider TVar reads dependent
2017-11-01 14:46:18 +00:00
Michael Walker
eb73600b39
Add property tests for memory ops
2017-10-31 17:17:27 +00:00
Michael Walker
29b1f28546
Add some property tests
...
Goes some way to solving #142 , but it would be nice to have some for
the memory stuff.
2017-10-30 20:32:00 +00:00
Michael Walker
5bc3eb2773
Move isBlock/isBarrier optimisation into findBacktrackSteps
...
This makes dependent ==> dependent'
2017-10-30 19:24:24 +00:00
Michael Walker
03ca3c978e
Remove an inconsistency in exception dependencies
2017-10-30 19:18:25 +00:00
Michael Walker
e0719a11ee
Avoid a needless pessimism in dependent'
2017-10-30 19:18:25 +00:00
Michael Walker
18cd9d69ab
Make dependent commutative
2017-10-30 19:18:25 +00:00
Michael Walker
e099b29597
Remove GHC <7.10 checks from dejafu-tests
2017-10-28 17:26:52 +01:00
Michael Walker
fa7d4bf445
Use MIN_TOOL_VERSION_ghc rather than __GLASGOW_HASKELL_
2017-10-28 17:26:52 +01:00
Michael Walker
821293f629
Add a Jenkinsfile to build&deploy docs
...
https://docs.barrucadu.co.uk/$pkg/$branch
2017-10-28 17:26:52 +01:00
Michael Walker
6c31a3c929
dejafu-0.9.0.1 release
2017-10-28 12:24:01 +01:00
Michael Walker
a963822d6c
Do not pop exception handlers twice
...
Fix #139 and #141
2017-10-28 12:21:41 +01:00
Michael Walker
3c0b2d81ff
Give better errors from failing partial functions
...
They still shouldn't fail, but this will make tracking down issues
like #141 in the future easier
2017-10-28 12:17:49 +01:00
Michael Walker
5838a921b7
Add a test case exhibiting #139
2017-10-25 18:47:02 +01:00