Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Strict MVars without invariant checking #72

Merged
merged 5 commits into from
Apr 3, 2023
Merged

Conversation

jorisdral
Copy link
Contributor

@jorisdral jorisdral commented Mar 13, 2023

Part of #34

This PR provides a new strict-mvar packages that implements strict MVars without invariant checking. Strict MVars are implemented in a fairly straightforward way by wrapping lazy MVars and forcing evaluation to WHNF before placing values in the lazy MVar.

@dcoutts suggested that strict MVars with invariant checking should be provided separately from MVars without invariant checking. As such, this PR only provides the latter.

@jorisdral jorisdral added the enhancement New feature or request label Mar 13, 2023
@jorisdral jorisdral requested review from coot, dcoutts and a team March 13, 2023 15:34
@jorisdral jorisdral self-assigned this Mar 13, 2023
Comment on lines 4 to 5
synopsis: Strict MVars for `IO` and `io-sim`
description: Strict MVars for `IO` and `io-sim`.
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This should probably say io-classes

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
synopsis: Strict MVars for `IO` and `io-sim`
description: Strict MVars for `IO` and `io-sim`.
description: Strict MVars for `IO` and `IOSim` from `io-sim` package.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've changed it to:

Strict MVars for implementations of the io-classes MVar interface

strict-mvar/strict-mvar.cabal Outdated Show resolved Hide resolved
@jorisdral jorisdral marked this pull request as ready for review March 22, 2023 15:43
@jorisdral jorisdral requested a review from a team March 28, 2023 08:12
Copy link
Collaborator

@coot coot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Very nice, just a few minor remarks.

strict-mvar/strict-mvar.cabal Outdated Show resolved Hide resolved
Comment on lines 4 to 5
synopsis: Strict MVars for `IO` and `io-sim`
description: Strict MVars for `IO` and `io-sim`.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
synopsis: Strict MVars for `IO` and `io-sim`
description: Strict MVars for `IO` and `io-sim`.
description: Strict MVars for `IO` and `IOSim` from `io-sim` package.

strict-mvar/strict-mvar.cabal Outdated Show resolved Hide resolved
Copy link
Collaborator

@coot coot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM.

* Fix a broken link in `strict-stm/README.md`
* Ensure `strict-mvar` is built correctly in CI.
* Update `source-repository head` stanzas.
* Add `TypeOperators` language pragma.
@jorisdral jorisdral merged commit e185238 into main Apr 3, 2023
@jorisdral jorisdral deleted the jdral/strict-mvar branch April 3, 2023 07:50
@coot coot mentioned this pull request Apr 20, 2023
1 task
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
No open projects
Status: ✅ Done
Development

Successfully merging this pull request may close these issues.

None yet

2 participants