Commit Graph

752 Commits

Author SHA1 Message Date
Michael Walker
d31ff3bea7 Impose memory barriers around synchronised operations 2015-10-12 18:55:10 +01:00
Michael Walker
783a0af7aa Add DeriveDataTypeable to tasty-dejafu for GHC<7.10 2015-10-08 21:59:08 +01:00
Michael Walker
a337b872ab Add Tasty integration 2015-10-08 21:50:52 +01:00
Michael Walker
a4b4b25b71 Drop needless GADTs 2015-10-08 21:47:28 +01:00
Michael Walker
9144ea4cbf Drop ConcTest/ConcIOTest entirely 2015-10-08 21:15:46 +01:00
Michael Walker
3bb640010a Don't expose ConcTest/ConcIOTest types 2015-10-08 21:09:48 +01:00
Michael Walker
b899253b04 Add dejafu'/dejafuIO' functions 2015-10-08 15:45:05 +01:00
Michael Walker
6ebff392c3 Share traces for ConcTest 2015-10-08 15:28:02 +01:00
Michael Walker
6c6e0eed01 Hide the type parameter inside ConcTest/ConcIOTest 2015-10-08 15:19:43 +01:00
Michael Walker
1c42618ba7 Include names with HUnit tests,a nd generate TestLists where possible 2015-10-08 15:15:13 +01:00
Michael Walker
a8ce666dc9 Fix build failure in GHC <7.10 2015-10-08 12:33:19 +01:00
Michael Walker
3c9a3f2ec7 Initial implementation of HUnit integration.
Note: this BREAKS `cabal/stack test` for dejafu!

See dejafu/README.markdown for the work-around.
2015-10-08 12:05:59 +01:00
Michael Walker
121a59b59d Stick everything in a dejafu subdirectory 2015-10-05 16:44:14 +01:00
Michael Walker
3e3385d0be Improve POR for relaxed memory
- Refine notion of dependent actions tot ake the memory model into
  account.

- Don't consider context switches for commits as viable candidates
  for conservative backtracking points.
2015-10-05 16:17:03 +01:00
Michael Walker
4cc5f5c921 Tidy up stepWrite/stepCommit 2015-10-05 16:16:43 +01:00
Michael Walker
0c94c16d16 Move dejafus{,IO}' into different documentation section 2015-10-02 11:27:15 +01:00
Michael Walker
9ce7f51b92 Document default memory model 2015-10-01 16:40:31 +01:00
Michael Walker
a272a0199b Update documentation 2015-10-01 15:46:50 +01:00
Michael Walker
eb7c663993 Bit of refactoring in Test.DejaFu.Deterministic 2015-10-01 15:11:49 +01:00
Michael Walker
415e238f20 Nicely display commits in traces to users 2015-10-01 15:10:48 +01:00
Michael Walker
615535b49b Remove _concNoTest
It's not clear how it can be safely implemented with the possibility
for relaxed memory effects to occur.
2015-10-01 14:32:36 +01:00
Michael Walker
10a8c5f559 Remove old TODO 2015-10-01 14:23:11 +01:00
Michael Walker
842460daf8 Fix phantom thread numbering at 0 2015-10-01 12:11:33 +01:00
Michael Walker
2529a9e95c Expose memory model choice in testing functions 2015-10-01 01:23:51 +01:00
Michael Walker
de75c17c0f Implement phantom threads. 2015-09-30 21:48:18 +01:00
Michael Walker
39ff237422 Expose non-synchronised write primitive 2015-09-30 20:58:52 +01:00
Michael Walker
c51ed65f69 Implement separate write and commit primitives 2015-09-30 20:52:15 +01:00
Michael Walker
24b7cd00c1 Separate writing and committing CRef modifications.
This is NOT yet exposed in any interesting way to the user. A separate
commit primitive is needed for that.
2015-09-30 18:09:23 +01:00
Michael Walker
20a54e95da Suppress some more hlint warnings 2015-09-30 16:55:34 +01:00
Michael Walker
dbc1126466 Parameterise conc runner with memory model to use.
Three memory models will eventually be supported:

 - SequentialConsistency, which is the current behaviour.
 - TotalStoreOrder, where each thread has a write buffer.
 - PartialStoreOrder, where each CRef has a write buffer.

The parameter is currently ignored.
2015-09-30 16:51:36 +01:00
Michael Walker
c107f2e6b1 Redefine writeCRef to suffer from relaxed memory issues, add atomicWriteCRef 2015-09-28 15:39:18 +01:00
Michael Walker
c55e0249b3 Release 0.1.0.0 2015-08-27 13:37:20 +01:00
Michael Walker
819cbaebf6 Add Thief of Time quote 2015-08-27 13:33:48 +01:00
Michael Walker
e767326660 Clean up warnings in 7.10 2015-08-27 01:05:59 +01:00
Michael Walker
4779ac07e5 Improve documentation and instances 2015-08-27 00:41:53 +01:00
Michael Walker
f8056f13b9 Add efficient Foldable.toList for NonEmpty when GHC >= 7.10 2015-08-27 00:18:48 +01:00
Michael Walker
5ff263d96f Rename ThreadAction' to Lookahead 2015-08-26 22:48:38 +01:00
Michael Walker
a1144610b2 General tidying ahead of release 2015-08-26 11:56:26 +01:00
Michael Walker
55a6239503 Update build status link in README 2015-08-16 00:19:05 +01:00
Michael Walker
046847c714 Upgrade to Stackage LTS 3.0 2015-08-15 23:45:22 +01:00
Michael Walker
3544ad08c3 Fix compiler warnings 2015-08-14 15:50:11 +01:00
Michael Walker
15fb0c391b Drop the default implementations of putCVar and takeCVar 2015-08-14 15:27:50 +01:00
Michael Walker
faa0febdba Fix some inconsistencies in class docs 2015-08-14 15:26:43 +01:00
Michael Walker
4a76ecedcc Add Applicative constraint to classes for pre-AMP GHC 2015-08-14 15:25:06 +01:00
Michael Walker
0e558b271f Handle exceptions in CVar functions as in MVar functions 2015-08-14 15:06:03 +01:00
Michael Walker
dea286a582 Add Functor context to sctBoundedM for pre-AMP GHC 2015-08-10 10:37:42 +01:00
Michael Walker
d32ee150bd Reduce code duplication with Identity monad 2015-08-09 21:00:11 +01:00
Michael Walker
a9f25fbb71 Update README 2015-08-01 15:20:20 +01:00
Michael Walker
79ed016dda Build with LTS by default 2015-08-01 15:20:20 +01:00
Michael Walker
ac12036bad Use Sequence for backtracking points, rather than ++ a lot 2015-07-24 19:57:46 +01:00