Michael Walker
cf8a10c9f2
Correctly handle termination in the PB runner
2015-01-23 15:08:25 +00:00
Michael Walker
1a12ba0c5e
Fix a couple of issues with generating schedules and early termination in PB runner
2015-01-23 13:14:43 +00:00
Michael Walker
a13df17156
Add Show, Read, and Eq instances for Results
2015-01-23 12:27:32 +00:00
Michael Walker
69bcc1878c
Fix the half-reversed SCT traces
2015-01-23 12:27:20 +00:00
Michael Walker
19ff7c51e7
Restrict language extensions a bit
2015-01-21 15:31:10 +00:00
Michael Walker
8aa15b5496
Fix docs, and add a defaultSpawn function for ConcCVar monads
2015-01-21 11:26:27 +00:00
Michael Walker
aa921a0423
Add NFData instances for things, and fix a few space leaks in SCT
2015-01-19 11:50:43 +00:00
Michael Walker
ff3f8a48a4
Be strict in the Fixed result
2015-01-19 11:06:40 +00:00
Michael Walker
2b95ab7e46
Add somewhereTrue and somewhereTrue2 testing methods
2015-01-15 02:16:31 +00:00
Michael Walker
914d298f55
Drop bool param of alwaysTrue2
2015-01-12 19:12:20 +00:00
Michael Walker
a889b23b5d
Add alwaysTrue and alwaysTrue2 functions for SCT tests
2015-01-12 19:08:09 +00:00
Michael Walker
78fbf5e5c6
Interpret a pre-emption bound < 0 as no bound
2015-01-12 17:52:30 +00:00
Michael Walker
886da7195e
Provide utilities for writing SCT test cases
2015-01-12 17:27:41 +00:00
Michael Walker
fb44f15865
Use NonEmpty in Lazy to get rid of a pattern match warning
2015-01-12 16:28:16 +00:00
Michael Walker
b062d1e14c
Structure runSCT' and runSCTIO' explicitly as unfolds, to make clearer how the state evolves
2015-01-12 16:28:04 +00:00
Michael Walker
6aefd27e9a
Tuple up scheduler & runner sct states, as partial application doesn't really make sense
2015-01-12 16:04:23 +00:00
Michael Walker
ff015054f4
Use a non-empty list type for scheduler threads
2015-01-12 15:58:53 +00:00
Michael Walker
bf91775629
Remove Ord instances
2015-01-12 14:25:06 +00:00
Michael Walker
0f1675070b
Update documentation
2015-01-12 14:24:12 +00:00
Michael Walker
8d23ad1fbe
Wrap up PB scheduler state in a record
2015-01-12 13:26:04 +00:00
Michael Walker
4efd3b5a25
Consider pre-emptions around liftIOs in PB runner
2015-01-12 00:13:49 +00:00
Michael Walker
9aee30ac57
Deconflate lifting and creating new CVars in Fixed
2015-01-12 00:08:53 +00:00
Michael Walker
9745357817
Fix comment
2015-01-09 02:38:53 +00:00
Michael Walker
981169c25f
Vastly improve PB runner
2015-01-09 02:35:28 +00:00
Michael Walker
c0ac24773e
Fix comment
2015-01-09 02:29:21 +00:00
Michael Walker
6272abe7fd
Fix the pre-emption runner (wasn't generating suffixes correctly)
2015-01-05 15:05:29 +00:00
Michael Walker
242babbc05
Fix a fromJust issue in Fixed
2015-01-05 12:01:06 +00:00
Michael Walker
1aa8765f4e
Significantly faster PB runner, and enable 100 philosophers test
2015-01-05 06:42:41 +00:00
Michael Walker
f7ad64fe5b
Add a pre-emption bounding runner, and use it for tests
2015-01-04 21:48:00 +00:00
Michael Walker
edbe04be64
Add SCT runners which maintain internal state
2015-01-04 15:06:53 +00:00
Michael Walker
000b91780e
Add a variant of runSCT for IO Conc
2014-12-28 12:12:57 +00:00
Michael Walker
34ac178ca7
Tidy Fixed.Internal a bit.
2014-12-27 22:24:07 +00:00
Michael Walker
220589f68c
Use record syntax to get unC functions
2014-12-27 22:03:37 +00:00
Michael Walker
3957f5edfa
'Action's don't need the 't'
2014-12-27 15:38:56 +00:00
Michael Walker
7e6fcd4a39
Swap main Fixed implementation from IO to ST.
2014-12-27 12:26:40 +00:00
Michael Walker
d215306911
Implement a Fixed variant using ST to get a pure result.
...
Following discussion on Twitter, https://twitter.com/barrucadu/status/548496893127712768
2014-12-27 12:20:45 +00:00
Michael Walker
a1d637e87c
Build a trace of thread actions in Fixed
2014-12-24 21:41:32 +00:00
Michael Walker
a78f211919
Fix some hlint warnings
2014-12-23 15:51:46 +00:00
Michael Walker
554fa84ec7
Enable -Wall and fix all warnings
2014-12-21 16:34:55 +00:00
Michael Walker
7819a3c7b0
Provide a helper function to turn Schedulers into SCTSchedulers
2014-12-21 13:50:52 +00:00
Michael Walker
875c5319ee
Fix an inverted filter in Fixed
2014-12-21 13:50:37 +00:00
Michael Walker
37f3767290
Record possible alternative scheduling decisions in SCT
2014-12-21 13:25:48 +00:00
Michael Walker
d0e01c579a
Fix type of example in SCT
2014-12-21 13:00:43 +00:00
Michael Walker
96eaf85095
Record in SCT trace reasons for decisions.
...
In particular, this lets us distinguish between switching to a new
thread because the old was blocked, or switching to a new thread
because of a pre-emption.
2014-12-21 12:48:15 +00:00
Michael Walker
8b0f2763d3
Add some helpful CVar combinators
2014-12-21 09:38:25 +00:00
Michael Walker
6a3e5f50c2
Add a 'tryPutCVar' primitive, and implement 'putCVar' in terms of it
2014-12-21 09:37:52 +00:00
Michael Walker
9a6fcc5162
Rename all CVar functions to avoid name clashes with Prelude. Fixes #1 .
2014-12-21 07:47:45 +00:00
Michael Walker
5f85be3574
Simpler detection of deadlock in Fixed
2014-12-20 20:31:25 +00:00
Michael Walker
82e9241686
Add a simple runner which gathers results and schedulings from multiple runs
2014-12-20 11:03:49 +00:00
Michael Walker
86a2617b41
Mutating a CVar only wakes up threads blocked on that CVar.
2014-12-20 10:42:58 +00:00