-
Notifications
You must be signed in to change notification settings - Fork 7
Add leios-late-ib-inclusion to the Haskell simulator #413
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
Conversation
, leiosLateIbInclusion :: Bool | ||
-- ^ Whether an EB also includes IBs from the two previous iterations. | ||
-- | ||
-- TODO Merely one previous iteration if 'pipeline' is 'SingleVote'? |
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.
The Haskell simulator is configurable to use a single stage for voting (Vote) instead of two stages (VoteSend and VoteRecv).
The Short-to-Full spec only considers the two stage variant, when it specifies to include 3 iterations' IBs in each EB.
Would the Short-to-Full spec only include 2 iterations' IBs if Vote were a single stage? Should the Haskell simulator do that? @pagio @SupernaviX
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.
@nfrisby I don't think we care about supporting the behavior when leios-vote-send-recv-stages
is false, we've been assuming the uniform leios variant for a long time.
e964fed
to
a1c11f2
Compare
FYI, I did some force pushes that.
|
a1c11f2
to
18f5c46
Compare
305acdb
to
1d826bf
Compare
I'm now expecting CI to build green. |
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.
Looks good and I love that you added a test for it!
I converted this to a Draft PR because my study of the whole simulator has turned up at least three reasons this current diff is insufficient (see #413 (comment)). |
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 don't have a global enough understanding of the implementation's inclusion logic to fully assess this, but changes seem to have the basics correct.
I'd very much like it if we could cite the specs as comments in the Haskell and Rust code. That direct link would make reviews much easier. Our use of google docs is not aligned very well with this style of commenting/citation.
1d826bf
to
9aca6be
Compare
This diff is now much bigger than it was when Sebastian approved it.
9aca6be
to
801b110
Compare
Here's a partial record of my manual validation of this feature. Record which commit I'm using.
Generate the
( Demonstrate the EBs' byte sizes are roughly three times bigger.
Demonstrate the number of IBs per EB is roughly three times bigger.
I also manually checked the slots of the IBs of an arbitrary EB with the feature on and they spanned more than one stage length. |
@bwbush suggested to double-check it works with Short-to-Full, since the default config file just uses Both validations look right:
|
We discussed the PR process in our working call today.
My situation (urgent technical backfill on a prototype/research/brainstorming project) demanded some intensive onboarding. This created an opportunity for me to write down "stuff that wasn't immediately obvious". I think such a document is valuable in its own right, but it also could become the basis of an architectural decision record (ADR). So in addition to the above list, Non-trivial PRs should also amend that ADR. I already had drafted a summary of my onboarding, so I'll add that doc in a separate PR and then rebase this one on that doc, add an amendment, and then merge it. |
801b110
to
3dea699
Compare
I rebased so that the I'm Merging now. Beyond the code review and my ad-hoc manual tests, the idea is that the Agda trace-verifier and/or confusing disagreements with the Rust simulator will eventually any catch bugs in this PR. |
Closes #410.