Commit Graph

18 Commits

Author SHA1 Message Date
Michael Walker
97611ff5b5 Implement catching exceptions 2015-02-13 00:50:58 +00:00
Michael Walker
9bd781c697 Primitive for throwing exceptions 2015-02-13 00:46:48 +00:00
Michael Walker
5ce63d0d50 Use MonadThrow/MonadCatch for MonadConc exceptions 2015-02-13 00:46:14 +00:00
Michael Walker
a305354b65 Add STM exceptions 2015-02-13 00:46:11 +00:00
Michael Walker
7b7c765494 Add a central manager for unique ID types 2015-02-10 18:26:22 +00:00
Michael Walker
f7b7539445 Remove logic duplication in Deterministic.Internal 2015-02-10 02:09:51 +00:00
Michael Walker
a54925df4b Move CVar IDs out of the Ref in Deterministic 2015-02-10 01:20:04 +00:00
Michael Walker
1cc5ade782 Reimplement CVar blocking in the same way as CTVar blocking 2015-02-09 23:43:18 +00:00
Michael Walker
7f26aa9654 Implement STM in Deterministic 2015-02-09 23:22:06 +00:00
Michael Walker
36e83e72f8 Add MonadSTM instances for Conc and ConcIO 2015-02-09 22:31:05 +00:00
Michael Walker
9b5e010d90 Implement a STM runner. 2015-02-09 22:04:28 +00:00
Michael Walker
7aceb6a6f9 Implement an atomic-for-testing-purposes function.
This adds a new `MonadConc` primitive, `_concNoTest`, which is (for
all non-test implementations) the identity function. For test
implementations, it is understood as "this action is completely safe
under all schedules, so just execute it all at once and don't consider
any internal interleavings." It is not required to be deterministic,
merely to never fail.

Actions annotated with `_concNoTest` will show up as one step in the
trace, and new `Failure` and `ThreadAction` values have been added.
2015-02-06 16:18:25 +00:00
Michael Walker
c20db31561 Include reason for failure in Deterministic result 2015-02-06 16:04:59 +00:00
Michael Walker
9a0cefd85c Tidy up Deterministic step functions 2015-02-06 11:26:04 +00:00
Michael Walker
a15a109b60 Give CVars IDs 2015-02-06 11:08:52 +00:00
Michael Walker
e8a9e25fdb Remove logic duplication in Deterministic.Internal 2015-02-05 15:50:05 +00:00
Michael Walker
00ad122b65 Refactor code and update docs to make more not-me friendly 2015-02-01 01:21:42 +00:00
Michael Walker
fbc262c361 Rename and remodularise 2015-01-31 15:50:54 +00:00