This repository was archived by the owner on Jan 16, 2026. It is now read-only.
Conversation
Codecov ReportAttention: Patch coverage is
✅ All tests successful. No failed tests found. Additional details and impacted files☔ View full report in Codecov by Sentry. |
e64eca4 to
5b97f7f
Compare
refcell
reviewed
Oct 15, 2024
refcell
reviewed
Oct 15, 2024
35d25aa to
5616e36
Compare
bce13d6 to
e953b9a
Compare
refcell
approved these changes
Oct 15, 2024
Contributor
refcell
left a comment
There was a problem hiding this comment.
I'll approve this, but I could see this macro biting us down the road. Hopefully it will be easy to modify if that happens
Closed
refcell
pushed a commit
that referenced
this pull request
Oct 18, 2024
* feat(derive): Stage multiplexer * don't export macro * docs * lint * macro hygene * docs * 🧹 `ChannelAssembler` + tests * error naming * remove holocene channel bank code * add generics and additional fields to macro * support sub-stage inputs * add multiplexer error * rebase * tests * channel provider tests
Merged
Closed
theochap
pushed a commit
to ethereum-optimism/optimism
that referenced
this pull request
Dec 10, 2025
* feat(derive): Stage multiplexer * don't export macro * docs * lint * macro hygene * docs * 🧹 `ChannelAssembler` + tests * error naming * remove holocene channel bank code * add generics and additional fields to macro * support sub-stage inputs * add multiplexer error * rebase * tests * channel provider tests
theochap
pushed a commit
to ethereum-optimism/optimism
that referenced
this pull request
Jan 14, 2026
* feat(derive): Stage multiplexer * don't export macro * docs * lint * macro hygene * docs * 🧹 `ChannelAssembler` + tests * error naming * remove holocene channel bank code * add generics and additional fields to macro * support sub-stage inputs * add multiplexer error * rebase * tests * channel provider tests
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 subscribe to this conversation on GitHub.
Already have an account?
Sign in.
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.
Overview
Implements a stage multiplexer macro, which creates a shim above several stage implementations and has the ability to re-link the pipeline at runtime. Upon configured fork activation, a new stage is created at runtime and the ownership of the previous stage is transferred to the new stage.
This method of stage multiplexing:
Downsides of this method:
With the current macro implementation, all stages must have the samee: changed, can now also be used for other stages that need more parameters / generics and can benefit from multiplexing (newsignature (rollup_cfg, previous stage).BatchQueue)kona-derive.ChannelAssemblerTo test this abstraction, I implemented the
ChannelAssembler- a simplifiedChannelBankthat only has to contend with a single channel, activating upon Holocene activation. This implementation is similar to the method upstream went with to simplify the pipeline along with Holocene.Visual