mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-07-19 05:15:40 +00:00
450ca2baca
* rename overseer-gen to orchestra Also drop `gum` and use `tracing`. * make orchestra compile as standalone * introduce Spawner trait to split from sp_core Finalizes the independence of orchestra from polkadot-overseer * slip of the pen * other fixins * remove unused import * Update node/overseer/orchestra/proc-macro/src/impl_builder.rs Co-authored-by: Vsevolod Stakhov <vsevolod.stakhov@parity.io> * Update node/overseer/orchestra/proc-macro/src/impl_builder.rs Co-authored-by: Vsevolod Stakhov <vsevolod.stakhov@parity.io> * orchestra everywhere * leaky data * Bump scale-info from 2.1.1 to 2.1.2 (#5552) Bumps [scale-info](https://github.com/paritytech/scale-info) from 2.1.1 to 2.1.2. - [Release notes](https://github.com/paritytech/scale-info/releases) - [Changelog](https://github.com/paritytech/scale-info/blob/master/CHANGELOG.md) - [Commits](https://github.com/paritytech/scale-info/compare/v2.1.1...v2.1.2) --- updated-dependencies: - dependency-name: scale-info dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Add missing markdown code block delimiter (#5555) * bitfield-signing: remove util::jobs usage (#5523) * Switch to pooling copy-on-write instantiation strategy for WASM (companion for Substrate#11232) (#5337) * Switch to pooling copy-on-write instantiation strategy for WASM * Fix compilation of `polkadot-test-service` * Update comments * Move `max_memory_size` to `Semantics` * Rename `WasmInstantiationStrategy` to `WasmtimeInstantiationStrategy` * Update a safety comment * update lockfile for {"substrate"} Co-authored-by: parity-processbot <> * Fix build Co-authored-by: Vsevolod Stakhov <vsevolod.stakhov@parity.io> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Malte Kliemann <mail@maltekliemann.com> Co-authored-by: Chris Sosnin <48099298+slumber@users.noreply.github.com> Co-authored-by: Koute <koute@users.noreply.github.com>
2.0 KiB
2.0 KiB
Limit outgoing messages
Status
Accepted + implemented.
Context
Previously, there was no way to limit and hence reason about a subset of subsystems, and if they form a cycle. Limiting the outgoing message types is a first step to create respective graphs and use classic graph algorithms to detect those and leave it to the user to resolve these.
Decision
Annotate the #[orchestra] inner #[subsystem(..)] annotation
with an aditional set of outgoing messages and enforce this via more fine grained trait bounds on the Sender and <Context>::Sender bounds.
Consequences
- A graph will be spawn for every compilation under the
OUT_DIRof the crate where#[orchestra]is specified. - Each subsystem has a consuming message which is often referred to as generic
M(no change on that, is as before), but now we have traitAssociateOutgoing { type OutgoingMessages = ..; }which defines an outgoing helperenumthat is generated with an ident constructed as${Subsystem}OutgoingMessageswhere${Subsystem}is the subsystem identifier as used in the orchestra declaration.${Subsystem}OutgoingMessagesis used throughout everywhere to constrain the outgoing messages (commonly referred to asOutgoingMessagegeneric bounded by${Subsystem}OutgoingMessages: From<OutgoingMessage>or::OutgoingMessages: From. It's what allows the construction of the graph and compile time verification. ${Subsystem}SenderTraitand${Subsystem}ContextTraitare accumulation traits or wrapper traits, that combine over all annotated M orOutgoingMessagesfrom the orchestra declaration or their respective outgoing types. It is usage convenience and assures consistency within a subsystem while also maintaining a single source of truth for which messages can be sent by a particular subsystem. Note that this is sidestepped for the test subsystem, which may consumegen=AllMessages, the global message wrapper type.Job-based subsystems, being on their way out, are patched, but they now are generic over theSendertype, leaking that type.