Skip to content

fix: prepare for symbol flip #11338

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

Draft
wants to merge 1 commit into
base: master
Choose a base branch
from
Draft

Conversation

erights
Copy link
Member

@erights erights commented Apr 26, 2025

#endo-branch: markm-flip-which-symbols-are-passable
linked with endojs/endo#2777

closes: #XXXX
refs: endojs/endo#2777 #11337

Description

endojs/endo#2777 will flip which symbols are passable. This PR prepares agoric-sdk to work both before and after that transition by abstracting the functions for creating passable and unpassable symbols by name.

Security Considerations

If this PR does work both before and after, none.

Scaling Considerations

Other than those already explained in endojs/endo#2777, none

Documentation Considerations

none

Testing Considerations

Other than providing the abstractions in ses-utils.js, the only non-test *.js file that needed revision was bufferedStorage.js. Aside from it, all other uses of symbol as of the first commit are only for testing.

  • CI reveals several problems. Mostly the same reliance on t.deepEqual whose callers had to be revised in fix(pass-style)! flip which symbols are passable endojs/endo#2777. The new distributed object semantic preserves equality for the "same" passable symbol according to its own equality predicated. But it does not preserve JS identity. We need to fix these callsites.
  • CI reveals some other errors that need investigating.

Upgrade Considerations

The wire and durable representation of passable symbols in general will be the same. This is not true for well-known unregistered symbols. This PR is experimentally linked with endojs/endo#2777, which provides some legacy support specifically for Symbol.asyncIterator. We'll see what problems remain.

@erights erights self-assigned this Apr 26, 2025
Copy link

cloudflare-workers-and-pages bot commented Apr 26, 2025

Deploying agoric-sdk with  Cloudflare Pages  Cloudflare Pages

Latest commit: ded3084
Status: ✅  Deploy successful!
Preview URL: https://eda4217f.agoric-sdk.pages.dev
Branch Preview URL: https://markm-tolerate-symbol-flip-2.agoric-sdk.pages.dev

View logs

@erights erights marked this pull request as ready for review April 26, 2025 23:52
@erights erights requested a review from a team as a code owner April 26, 2025 23:52
@erights erights force-pushed the markm-tolerate-symbol-flip-2 branch 3 times, most recently from 85c058a to e0838bb Compare April 27, 2025 04:48
@erights erights requested a review from mhofman April 27, 2025 04:51
@erights erights force-pushed the markm-tolerate-symbol-flip-2 branch from acaba32 to dd18b3b Compare April 27, 2025 09:48
@erights
Copy link
Member Author

erights commented Apr 28, 2025

Putting into Draft until we have time to discuss this approach.

@erights erights marked this pull request as draft April 28, 2025 22:50
@erights
Copy link
Member Author

erights commented Apr 28, 2025

Putting into Draft until we have time to discuss this approach.

Reviewers, now that this is in Draft to postpone discussion, I'm gonna do a bunch of squashing.

@erights erights force-pushed the markm-tolerate-symbol-flip-2 branch 3 times, most recently from b8b5709 to 421ac55 Compare April 29, 2025 01:40
@erights erights force-pushed the markm-tolerate-symbol-flip-2 branch from 421ac55 to ded3084 Compare April 29, 2025 02:02
@erights
Copy link
Member Author

erights commented Apr 29, 2025

TODO close #10084 in favor of #11338 . However, first check if #10084 has changes that would improve #11338

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant