-
Notifications
You must be signed in to change notification settings - Fork 221
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
feat(liveslots): virtual exo meta-ops #8779
Merged
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
erights
force-pushed
the
markm-virtual-exo-meta-ops
branch
from
January 20, 2024 22:51
6d83204
to
b2d83df
Compare
erights
force-pushed
the
markm-remove-migrated-common
branch
from
January 21, 2024 02:10
6e0290e
to
ac7afd2
Compare
erights
force-pushed
the
markm-virtual-exo-meta-ops
branch
2 times, most recently
from
January 21, 2024 04:34
0992e94
to
0d46632
Compare
erights
commented
Jan 21, 2024
erights
commented
Jan 21, 2024
erights
commented
Jan 21, 2024
erights
force-pushed
the
markm-virtual-exo-meta-ops
branch
from
January 21, 2024 04:59
0d46632
to
f4be681
Compare
erights
commented
Jan 22, 2024
erights
force-pushed
the
markm-virtual-exo-meta-ops
branch
from
January 25, 2024 21:19
22dd0e6
to
2d35107
Compare
Not urgent. But ping in case it's easy and you have a moment ;) |
erights
force-pushed
the
markm-virtual-exo-meta-ops
branch
3 times, most recently
from
February 3, 2024 03:24
e0735f2
to
40bff44
Compare
erights
force-pushed
the
markm-virtual-exo-meta-ops
branch
from
February 5, 2024 23:19
40bff44
to
386fd27
Compare
erights
force-pushed
the
markm-virtual-exo-meta-ops
branch
2 times, most recently
from
February 23, 2024 20:37
da42d81
to
2e84bb7
Compare
erights
changed the base branch from
master
to
markm-move-revocability-to-base-zone
February 23, 2024 20:53
This was referenced Feb 23, 2024
erights
force-pushed
the
markm-move-revocability-to-base-zone
branch
from
February 24, 2024 00:41
b252dcb
to
609c4df
Compare
erights
force-pushed
the
markm-virtual-exo-meta-ops
branch
from
February 24, 2024 00:41
2e84bb7
to
c0aa00b
Compare
erights
force-pushed
the
markm-move-revocability-to-base-zone
branch
from
February 24, 2024 02:07
609c4df
to
9654897
Compare
erights
force-pushed
the
markm-virtual-exo-meta-ops
branch
from
February 24, 2024 02:09
c0aa00b
to
c21ed44
Compare
erights
force-pushed
the
markm-move-revocability-to-base-zone
branch
from
February 24, 2024 02:46
9654897
to
da52e07
Compare
erights
force-pushed
the
markm-virtual-exo-meta-ops
branch
from
February 24, 2024 03:04
d601dd3
to
6cd1381
Compare
Base automatically changed from
markm-move-revocability-to-base-zone
to
master
February 24, 2024 03:27
erights
force-pushed
the
markm-virtual-exo-meta-ops
branch
2 times, most recently
from
February 29, 2024 04:02
aa7a58d
to
e70f34e
Compare
erights
force-pushed
the
markm-virtual-exo-meta-ops
branch
from
March 18, 2024 21:52
e70f34e
to
4b9dcdf
Compare
ping? |
erights
force-pushed
the
markm-virtual-exo-meta-ops
branch
2 times, most recently
from
March 26, 2024 23:43
812e4a2
to
1540fce
Compare
erights
commented
Mar 26, 2024
erights
commented
Mar 26, 2024
erights
commented
Mar 26, 2024
erights
force-pushed
the
markm-virtual-exo-meta-ops
branch
from
March 27, 2024 18:04
1540fce
to
40250db
Compare
michaelfig
approved these changes
Mar 28, 2024
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 with just a few comments to consider.
erights
force-pushed
the
markm-virtual-exo-meta-ops
branch
from
March 28, 2024 01:58
77dd4cf
to
d5c2dfd
Compare
erights
force-pushed
the
markm-virtual-exo-meta-ops
branch
from
March 28, 2024 01:59
d5c2dfd
to
d0b6803
Compare
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
closes: #XXXX
refs: endojs/endo#1925 endojs/endo#1924 #8965
Description
The @endo/exo package defines APIs for defining exos that are supposed to be implemented by all exo implementations. It does implement
receiveAmplifier
andreceiveIsInstanceTester
for heap exos. This PR does likewise for virtual and durable exos.@FUDCo In @endo/exo I assume contextProviders indicate the context is not found by returning
undefined
rather than throwing. My code kinda depends on that assumption. I thought it was true for both heap and virtual/durable exos. But the contextProviders here, before this PR, threw. This PR changes them to returnundefined
. Is this correct? What should I worry about?Security Considerations
These meta-ops provide a form of rights amplification. But the API was specifically designed so the extra power would be easy to spot during code reviews. We need to ensure that reviewers know what to look for.
Scaling Considerations
Without these meta-ops, the same functionality can (and has been) implemented by introducing yet another weak store. When this is a virtual or durable weak store, that's quite expensive. It also introduces cyclic gc concerns. The implementation provided here avoids those costs.
Documentation Considerations
Once this PR is merged, these meta-ops are uniformly available across heap, virtual, and durable exos, as well as the zones for those. At that point, they will be ready to document and use.
Testing Considerations
The included tests are modeled on those in @endo/exo for heap exos. However, rather than copy-edit code, we should replace both with reusable zone-parameterized tests.
Upgrade Considerations
There should be no problem upgrading an exo incarnation without meta-ops to one with these meta-ops, since there is no change to the representations in virtual or durable storage.