Repository navigation
ecs 0.3.0: despawnWhere before its sync point, resource orderings, exclusive rows, idle sync points, trait watches, update on match - #250
Merged
Conversation
…re before its sync point, resource orderings, exclusive rows, idle sync points, trait watches, update on match Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This was referenced Nov 1, 2026
Closed
This file contains hidden or 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
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.
@adobe/ecs0.3.0,@adobe/ecs-persistence0.1.1,@adobe/ecs-gpu0.0.3Syncs
ecs/from the ecs repository at41399c5(Adobe-Firefly/ecs#9).Closes #242, closes #243, closes #244, closes #245, closes #246, closes #247, closes #248, closes #249. 0.3.0 because
despawnWherechanges meaning (#244); persistence and gpu republish against it.New API, for review:
Behaviour:
despawnWheredespawns only what was alive before its sync point, as the commands issued before it leave it; what that sync point spawns lives. Chapter 06 shows one-frame events: the producer clears its last events and spawns this frame's, or anendFramesystem runs after everything else.notlists; the error says so where it would help.before/afterskips a leaf an explicit constraint already orders, and two systems naming one resource stay unordered, so two writers still conflict.ReadonlyMaporReadonlySetof what isn't data (a symbol, a key, a class) starts empty in each world; one given adefaultis told to leave it out.Performance: eight chained systems, 100 runs per sample:
A tier boundary costs 14 ns (26 before), an idle sync point 11 ns (20). A 3-pass comparison of every node benchmark:
loop tick add remove−8.5%;read run+3.7% andloop tick add remove again+3.9%, after removing allocations from building a schedule; the rest within noise on 10–12 alternating reruns.Checks: from a clean state,
check:workspace, build, typecheck and every package's full suite pass locally, with a GPU andCIunset: ecs 1766, ecs-persistence 77, ecs-guide 131, ecs-gpu 38, ecs-todo-vanillajs 65, ecs-sample-browser 13, ecs-particles-webgpu 2, ecs-gpu-views 1, ecs-transfers-canvas 1; and every other package here.The next
pnpm run publish <otp>here publishes@adobe/ecs0.3.0,@adobe/ecs-persistence0.1.1 and@adobe/ecs-gpu0.0.3.🤖 Generated with Claude Code