Skip to content

Add explicit feature flags for non-MVP WASM features implicitly supported by wasmtime #15

Open
@koute

Description

@koute

Currently wasmtime supports extra features which were not part of the WASM MVP. These features cannot be disabled in wasmtime but (at least for the signed ops extension) we reject the runtimes which make use of them since parity-wasm (which we currently use to preprocess WASM blobs) will choke on their use at load time.

We don't want to suddenly enable any new extra features without explicit versioning, so it's good that we don't load those runtimes, but it's bad that this is not explicitly controlled and should be fixed.

For example, for the signed ops feature we should:

  1. enable the sign_ext feature in parity-wasm,
  2. explicitly detect runtimes which use these instructions reject them, (instead of relying on the feature flag in parity-wasm not being enabled and only implicitly rejecting those runtimes, which brings in the risk of it being accidentally enabled through a transitive dependency without us noticing)
  3. (optionally, in a later step) consider enabling the sign_ext, which would entail adding a new feature flag like in this PR which would disable the check that the runtime doesn't use the feature.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    Status

    backlog

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions