Skip to content

Commit 892076e

Browse files
authored
Merge pull request #114 from input-output-hk/coot/refactor-io-sim-por
Refactor IOSimPOR
2 parents b1b9811 + 5d15651 commit 892076e

File tree

15 files changed

+1170
-676
lines changed

15 files changed

+1170
-676
lines changed

cabal.project

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ repository cardano-haskell-packages
1111
d4a35cd3121aa00d18544bb0ac01c3e1691d618f462c46129271bccf39f7e8ee
1212

1313
index-state:
14-
, hackage.haskell.org 2023-03-25T12:00:00Z
14+
, hackage.haskell.org 2023-09-20T00:00:00Z
1515
, cardano-haskell-packages 2022-11-15T17:30:00Z
1616

1717
-- TODO: early ghc-9.6 support

io-sim/CHANGELOG.md

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,35 @@
11
# Revsion history of io-sim
22

3+
## next
4+
5+
### Breaking changes
6+
7+
#### Breaking changes
8+
9+
* Renamed `ThreadId` to `IOSimThreadId` to avoid a clash with `ThreadId`
10+
associated type family of `MonadFork`. It makes it much simpler to paste
11+
failing `ScheduleControl` in `ghci` or tests.
12+
* `BlockedReason` was modified: `BlockedOnOther` was removed, in favour of `BlockedOnDelay` and `BlockOnThrowTo`.
13+
* The `Failure` type (for example returned by `runSim`) now also contains
14+
a constructor for internal failures. This improved error reporting when
15+
there's a bug in `IOSimPOR`. Currently it's only used by some of the
16+
assertions in `IOSimPOR`.
17+
18+
#### Non breaking changes
19+
20+
* Refactored the internal API to avoid `unsafePerformIO`.
21+
* Fixed bugs which lead to discovery of schedules which are impossible to run.
22+
* Added haddocks, refactored the code base to improve readability.
23+
* Fixed reported `step` in `EventTxWakup`
24+
* Added debugging information schedule, (`explorationDebugLevel` option).
25+
Mostly useful for debugging `IOSimPOR` itself. This information will
26+
contains `Effect`, discovered races and schedules.
27+
* Addded or improved pretty printers for `SimTrace`. Among other changes,
28+
a racy `StepId`: `(RacyThreadId [1,2], 2)`, is now pretty printed as `Thread
29+
{1,2}.2`, a non racy step is printed as `Thread [1,2].2`.
30+
* Fixed trace of calls to the `deschedule` function.
31+
* Exposed `Timeout` type as part of the `newTimeout` API.
32+
333
## 1.2.0.0
434

535
### Breaking changes

io-sim/io-sim.cabal

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,6 @@ library
8080
containers,
8181
deepseq,
8282
nothunks,
83-
parallel,
8483
psqueues >=0.2 && <0.3,
8584
strict-stm ^>=1.2,
8685
si-timers ^>=1.2,
@@ -108,7 +107,6 @@ test-suite test
108107
containers,
109108
io-classes,
110109
io-sim,
111-
parallel,
112110
QuickCheck,
113111
si-timers,
114112
strict-stm,
@@ -117,6 +115,8 @@ test-suite test
117115
tasty-hunit,
118116
time
119117
ghc-options: -fno-ignore-asserts
118+
-rtsopts
119+
-- -threaded
120120

121121
benchmark bench
122122
import: warnings

0 commit comments

Comments
 (0)