-
Notifications
You must be signed in to change notification settings - Fork 273
Document partial_order_concurrency [DOC-140] #4087
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
Document partial_order_concurrency [DOC-140] #4087
Conversation
/// Build identifier for the read/write clock variable | ||
/// \param e: either shared read or shared write event | ||
/// \param axiom: the clock variable to be used | ||
/// \return irep id representing the clock variable of the event |
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.
I'd use "Identifier" instead of "irep id"
// produces the symbol ID for an event | ||
/// Produce the symbol ID for an event | ||
/// \param event: SSA step for the event | ||
/// \return identifier of the lhs |
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.
I'd drop "of the lhs"
// produces an address ID for an event | ||
/// Produce an address ID for an event | ||
/// \param event: SSA step for the event | ||
/// \return identifier of the lhs (without L2) |
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.
I'd say "L1-renamed identifier"
40f0612
to
a367fd5
Compare
@tautschnig Thanks for the quick review, I rewrote the documentation as suggested. |
@@ -35,6 +38,10 @@ class partial_order_concurrencyt:public messaget | |||
AX_PROPAGATION=8 | |||
}; | |||
|
|||
/// Build identifier for the read/write clock variable | |||
/// \param e: either shared read or shared write event | |||
/// \param axiom: the clock variable to be used |
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.
I think this parameter indicates the axiom that the resulting clock id is part of. Would that be right @tautschnig?
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.
Yes.
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.
I agree; should I make it explicit in the description?
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.
Yes, I think we should make it explicit for all the appearances of axiom
.
src/goto-symex/README.md
Outdated
|
||
\section Concurrency | ||
|
||
\subsection Partial Order Reduction |
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.
I'd name it just Partial Order Concurrency
as it's not really partial order reduction.
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.
You mean that its used to implement memory models but the ordering is never used for reduction?
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.
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.
It's a different technique. The encoding starts with unconstrained reads (i.e., with shared reads essentially being nondet), and then additional constraints are added to make the model stronger to yield e.g. TSO or SC.
src/goto-symex/README.md
Outdated
|
||
\section Concurrency | ||
|
||
\subsection Partial Order Reduction |
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.
symbol_exprt clock(event_it e, axiomt axiom); | ||
|
||
/// Initialise the __clock_type__ so that it can be used to number events |
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.
Initialize
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.
Well I guess it is called Oxford spelling after all. Spelling changed.
a367fd5
to
d4542d4
Compare
I see, so the partial ordering is used to replace thread interleaving rather than reduce it. I changed the sub-section title in the readme. |
d4542d4
to
0f4d498
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.
✔️
Passed Diffblue compatibility checks (cbmc commit: 0f4d498).
Build URL: https://travis-ci.com/diffblue/test-gen/builds/99823236
This PR is only a part of DOC-140. There are no functional changes to the code.