-
Notifications
You must be signed in to change notification settings - Fork 16
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
Introduce extended specs to allow wrapping command sequences #511
Conversation
19a43c2
to
b4a8b0a
Compare
413df00
to
97462a8
Compare
Thanks for this! 🙏 I've played a bit with it locally, rewriting existing I spotted locally that this would emit a compiler warning, but I believe you've fixed that in a recent (force) push. Naming-wise I think
My only reservation is about the Otherwise, I'm OK with this 🙂 👍 |
97462a8
to
25cba4a
Compare
I decided to rename to |
25cba4a
to
0742dc4
Compare
The motivating use case is to make it nicer to test commands that perform effects.
0742dc4
to
45ae1ad
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM. I spotted a couple of minor documentation nits while proof-reading.
Co-authored-by: Jan Midtgaard <[email protected]>
Co-authored-by: Jan Midtgaard <[email protected]>
CI summary for 263ae96: all 34 workflows passed. |
CI summary for merge to
Out of 35 workflows - 1 failed with a CI related error |
See #510.
Contrary to what #510 concluded with, I decided to introduce
Spec
signature,SpecExt
,SpecDefaults
,STM_sequential.MakeExt
,STM_domain.MakeExt
, andSTM_thread.MakeExt
.The reason for this is that introducing
wrapped
variants of the various functions produced by the functors would have roughly meant duplicating all of the functions. This approach is much more incremental and also potentially allows theSpec
interface to the extended in the future.The idea is that one always uses the
SpecDefaults
:This way new optional specs can be added as long as
SpecDetaults
can provide default implementations of such additions.There is a PR to Picos that uses this PR.
TODO:
STM_thread.MakeExt
, and making sure operations are wrapped in all cases