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

Full interop between multiple copies of Starbeam #87

Open
5 of 6 tasks
wycats opened this issue Mar 23, 2023 · 0 comments
Open
5 of 6 tasks

Full interop between multiple copies of Starbeam #87

wycats opened this issue Mar 23, 2023 · 0 comments
Labels
Milestone

Comments

@wycats
Copy link
Member

wycats commented Mar 23, 2023

The purpose of @starbeam/shared is to make it possible to have multiple copies of Starbeam in a single process that don't trample each other. In other words, it's intended to allow duplicates copies of @starbeam/universal (etc.) to create their own cells and formulas, and correctly invalidate their formulas when a cell created by another duplicate of Starbeam is invalidated.

Currently, @starbeam/shared coordinates the global revision counter and the TAG symbol (previously called REACTIVE) using a shared global symbol. This means that multiple copies of Starbeam will be able to understand each others' revisions and validation rules.

It does not, however, help to coordinate the global frame stack. We need to fix that to make @starbeam/shared a complete solution. fixed in 9a6a6b9

It also does not coordinate lifetime management. This would make it possible to link an object from one copy of Starbeam to a parent from another copy.

  • Initialization Sentinel: UNINITIALIZED symbol
  • Tagged Protocol: TAG symbol
  • Unique ID: getID function
  • Timeline: now() and bump() functions
  • Autotracking: start() and consume() functions
  • Lifetime coordination (designing)
@wycats wycats added the enhancement:feature New feature label Mar 23, 2023
@wycats wycats self-assigned this Mar 23, 2023
wycats added a commit that referenced this issue Mar 25, 2023
And start establishing a minimal Runtime concept (related to #87)
@wycats wycats added this to the Starbeam 0.10 milestone Apr 23, 2023
@wycats wycats moved this to Implementing in Starbeam Roadmap Apr 23, 2023
@wycats wycats changed the title Make @starbeam/shared a complete solution Full interop between multiple copies of Starbeam Apr 24, 2023
@wycats wycats removed their assignment Jul 15, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
Status: Implementing
Development

No branches or pull requests

1 participant