Skip to content

compute: publish maintained indexes into the sharing registry - #38389

Draft
antiguru wants to merge 1 commit into
mh/interactive-03-multiplexfrom
mh/interactive-04-publish
Draft

compute: publish maintained indexes into the sharing registry#38389
antiguru wants to merge 1 commit into
mh/interactive-03-multiplexfrom
mh/interactive-04-publish

Conversation

@antiguru

Copy link
Copy Markdown
Member

Fourth of eight PRs splitting #37770. Stacks on #38388. Tracked by CPU-215.

Both export paths publish their oks/errs arrangements into the per-process registry when the runtime's role publishes, and the two re-export arms register the alias so a read waiting on the aliased id's seal is woken by the original's publisher. Logging indexes publish the same way, gated strictly on Maintenance: an interactive runtime reads maintenance's slot and its own copy would clobber it, while Solo has no registry peer.

ComputeRuntimeRole::Interactive stops being test-only, because publishes() has to name it. pub mod server keeps the variant reachable, so no #[allow] is needed even though nothing constructs it yet.

No behavior change: Solo is the only role anything constructs and it does not publish, so every added block is skipped and no dataflow gains an operator. That is also why no goldens move here. They move in the last PR of the stack, which turns the flag on in CI.

@antiguru
antiguru force-pushed the mh/interactive-04-publish branch from d31414b to d9ddff4 Compare August 21, 2026 11:23
@antiguru
antiguru force-pushed the mh/interactive-04-publish branch 2 times, most recently from d754ecc to 1303035 Compare August 21, 2026 13:42
@antiguru
antiguru requested a review from DAlperin August 21, 2026 13:46
@antiguru
antiguru force-pushed the mh/interactive-04-publish branch from 1303035 to dffb179 Compare August 21, 2026 14:31
Both export paths now publish their `oks`/`errs` arrangements into the per-process
registry when the runtime's role publishes, and the two re-export arms register
the alias so a read waiting on the aliased id's seal is woken by the original's
publisher. Logging indexes publish the same way, gated strictly on `Maintenance`:
an interactive runtime reads maintenance's slot, and its own copy would clobber
it, while `Solo` has no registry peer at all.

`ComputeRuntimeRole::Interactive` stops being test-only. Nothing constructs it
yet, but `publishes()` has to name it, and `pub mod server` keeps the variant
reachable so dead-code analysis is satisfied without an attribute. The stale
`owns_process_globals` note claiming every constructible role owns the globals
goes with it.

Carrying the role and the registry to the render path is what the rest of this
change is: `Config` and `Worker` gain both, `ComputeState` stores them and
exposes `role()`, and clusterd builds one registry per process. Per process, not
per runtime, because a reader on one runtime looks up the slot a publisher on
another filled.

No behavior change. `Solo` is the only role anything constructs and it does not
publish, so every added block is skipped and no dataflow gains an operator.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@antiguru
antiguru force-pushed the mh/interactive-04-publish branch from dffb179 to 7d70e54 Compare August 21, 2026 17:54
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