Skip to content

epic: RuntimeTypes associated-type lattice #78

Description

@mfw78

Make a runtime defined by its associated types, generically rather than by concrete fields.

This epic makes HostState generic over a Components bundle (rewriting the ten impl ... Host for HostState blocks as blanket impls and deduplicating the load_one/reinstantiate_one store construction), then collapses that ad-hoc generic into a RuntimeTypes associated-type lattice with a concrete EthTypes preset. This is the largest single diff in M0; land the generic-HostState step isolated. Depends on the component seam (E2).

Delivery order: generic HostState -> RuntimeTypes lattice + real preset.


Design target (whole M0): a runtime is defined by its associated types (RuntimeTypes), assembled from pluggable component builders, declared by a type-state RuntimeBuilder, and spun up by a separate imperative launcher that returns a RuntimeHandle. Cross-cutting concerns attach as RuntimeAddOns. The library must be embeddable with zero CLI surface; the nexum binary is one consumer of the same builder. Bias every change toward move + add-trait-bound, not rewrite; each sub-issue keeps the tree compiling and tests green.

Metadata

Metadata

Assignees

No one assigned

    Labels

    breakingWill break existing modules or the host contract.component/engine-hosthost-interface implementations (the host impls layer)component/engine-runtimewasmtime runtime: instantiation, fuel, epoch, ResourceLimiterepicTracks a larger initiative.

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions