Initial STM precond fix, add Domainslib.Chan tests #67
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR provides an initial implementation STM
precond
support for parallel mode using a generate-and-filter approach.Following Claessen-al:ICFP09 we keep only
cmd list
triples where all interleavings satisfy all preconditions.The
precond
implementation is enough to get the second part running:This part tests the
Domainslib.Chan
module. This requiresprecond
to avoidrecv
blocking on an empty channelsend
blocking on a full channelFor the
Domainslib.Chan
tests, this means that we need to generate around twice as many triples as the testcount
.I've also checked that the run time of the other STM tests is not affected noticably. For reference we now have the following STM tests:
Ping @n-osborne 👀