Skip to content

Is it possible for Miri to support stack switching for fibers/coroutines/etc? #4392

Open
@alexcrichton

Description

@alexcrichton

Over in Wasmtime we use Miri to help verify our unsafe code isn't at least too too unsafe, but a big blind spot for us in our Miri testing right now is everything related to async. In Wasmtime all async execution of WebAssembly happens on a separate stack via a custom implementation of fibers internally. This implementation of fibers uses inline assembly on each architecture to do the actual fiber swaps/initialization/etc, but this naturally isn't supported on Miri.

Which leads me to a question: does Miri currently support stack switching, and if not is there a tracking issue or discussion to follow? If not, would it be useful to have a tracking issue? If not, no worries and I'd be happy to close this as well, but wanted to ask the question!

Metadata

Metadata

Assignees

No one assigned

    Labels

    A-concurrencyArea: affects our concurrency (multi-thread) supportC-projectCategory: a larger project is being tracked here, usually with checkmarks for individual steps

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions