-
Notifications
You must be signed in to change notification settings - Fork 3.6k
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
[vm] Separation of resources, modules and aggregators #9256
Conversation
8b27a5c
to
b46105a
Compare
/// A useful method to iterate over all writes. | ||
/// TODO(aggregator): With Aggregator V2, we would have to revisit this | ||
/// because we no longer iterate over state items. | ||
pub fn write_set_iter(&self) -> impl Iterator<Item = (&StateKey, &WriteOp)> { |
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.
let's make sure someone with a sense of what's acceptable in the codebase looks at it xD @zekun000 ?
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 beautiful
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.
Minor contribution from me from now (as I don't know a lot of background details).
A general comment is to try to avoid unnecessary and redundant comments - that makes maintaining the code harder in the future (one has to change both)
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 are bunch of comments marked resolved, but code not yet changed - do you have some pending code locally to update the PR with?
requesting changes for you to update the PR with that code.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
/// A useful method to iterate over all writes. | ||
/// TODO(aggregator): With Aggregator V2, we would have to revisit this | ||
/// because we no longer iterate over state items. | ||
pub fn write_set_iter(&self) -> impl Iterator<Item = (&StateKey, &WriteOp)> { |
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 beautiful
f2b7888
to
fcae895
Compare
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
✅ Forge suite
|
✅ Forge suite
|
✅ Forge suite
|
TLDR; Cherrypicks some changes from #8227. In Move VM we know what is a resource, what is a module. On top of that adapter has aggregators. All these have been merged into a single `WriteSet` previously. Now, we split write sets into 3: - Resources - Modules - Aggregators As a result, the code was cleaned-up.
TLDR; Cherrypicks some changes from #8227. In Move VM we know what is a resource, what is a module. On top of that adapter has aggregators. All these have been merged into a single `WriteSet` previously. Now, we split write sets into 3: - Resources - Modules - Aggregators As a result, the code was cleaned-up.
Description
TLDR; Cherrypicks some changes from #8227.
Motivation:
In Move VM we know what is a resource, what is a module. On top of
that adapter has aggregators. All these are merged in a single WriteSet.
Now, we split write sets into 3:
Why this is good:
values or compiled module.
mvhashmap
having 3 different paths for resources, modulesand aggregators.
u128
, no need to have an actual WriteOp!(Note that this PR does not add this)
Test Plan