Skip to content
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

asyncFlow should eventually support guest-created promises and remotables #9301

Open
Tracked by #9281
erights opened this issue Apr 28, 2024 · 0 comments
Open
Tracked by #9281
Assignees
Labels
asyncFlow related to membrane-based replay and upgrade of async functions bug Something isn't working

Comments

@erights
Copy link
Member

erights commented Apr 28, 2024

See #9097

makeConvertKit will need additional parameters makeHostForGuestRemotable and makeHostForGuestPromise. These create host wrappers that forward to the corresponding guest objects just like makeGuestForHostRemotable and makeGuestForHostVow make guest wrappers that forward to the corresponding host object.

The magic step is how the existing mechanisms should (UNTRIED) repopulate the bijection on replay, since the host wrapper that will need to wrap a guest object is already in the log, for example as the argument of a checkCall. When the guest performs this call again during replay, the equate step of the replay will reassociate these in the bijection, assuming neither is already in the bijection mapped to something else. If it is, then this is a behavior difference that causes replay to fail. But BEWARE it is a subtle one that may be hard to debug and upgrade to fix.

The extra log opcodes this will need are the duals of the current opcodes. The current codes are
doFulfill, doReject, doReturn, doThrow, checkCall.
The new opcodes would be
checkFulfill, checkReject, checkReturn, checkThrow, doCall.

If #9299 has already happened (likely), then it will have added
checkSend,
requiring this one to similarly add
doSend.

@erights erights added bug Something isn't working asyncFlow related to membrane-based replay and upgrade of async functions labels Apr 28, 2024
@ivanlei ivanlei assigned erights and unassigned erights, iomekam and mhofman Apr 29, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
asyncFlow related to membrane-based replay and upgrade of async functions bug Something isn't working
Projects
None yet
Development

No branches or pull requests

3 participants