wasmtime icon indicating copy to clipboard operation
wasmtime copied to clipboard

Turn the `wasmtime-runtime` crate into the `wasmtime::runtime::vm` module

Open fitzgen opened this issue 1 year ago • 2 comments

We want to merge them together because there is no abstraction or layering or boundary between them in practice, and our architectures and designs have, at times, been constrained by this artificial crate boundary and what is visible in which crate and this has forced us to use nasty workarounds like defining traits in wasmtime-runtime that get implemented in wasmtime and used as dynamic trait objects inside wasmtime-runtime. Merging them will allow us to remove these hacks.

fitzgen avatar Apr 29 '24 15:04 fitzgen

Label Messager: wasmtime:config

It looks like you are changing Wasmtime's configuration options. Make sure to complete this check list:

  • [ ] If you added a new Config method, you wrote extensive documentation for it.

    Our documentation should be of the following form:

    Short, simple summary sentence.
    
    More details. These details can be multiple paragraphs. There should be
    information about not just the method, but its parameters and results as
    well.
    
    Is this method fallible? If so, when can it return an error?
    
    Can this method panic? If so, when does it panic?
    
    # Example
    
    Optional example here.
    
  • [ ] If you added a new Config method, or modified an existing one, you ensured that this configuration is exercised by the fuzz targets.

    For example, if you expose a new strategy for allocating the next instance slot inside the pooling allocator, you should ensure that at least one of our fuzz targets exercises that new strategy.

    Often, all that is required of you is to ensure that there is a knob for this configuration option in wasmtime_fuzzing::Config (or one of its nested structs).

    Rarely, this may require authoring a new fuzz target to specifically test this configuration. See our docs on fuzzing for more details.

  • [ ] If you are enabling a configuration option by default, make sure that it has been fuzzed for at least two weeks before turning it on by default.


To modify this label's message, edit the .github/label-messager/wasmtime-config.md file.

To add new label messages or remove existing label messages, edit the .github/label-messager.json configuration file.

Learn more.

github-actions[bot] avatar Apr 29 '24 15:04 github-actions[bot]

The next step after this, before actually merging the crates together, is to factor out wasmtime_runtime::{sys,mmap,mmap_vec} into its own crate, since this functionality is used directly by the CLI in one place, and I don't want to add that stuff to the wasmtime crate's public API.

This is proving to be a bit hairier than anticipated; investigating alternatives. Shouldn't affect this PR.

fitzgen avatar Apr 29 '24 15:04 fitzgen

How do I call wasmtime_runtime::raise_user_trap after this change?

kaimast avatar May 20 '24 21:05 kaimast

Ah it's no longer possible to call the function after this change as it's private to the wasmtime crate. Could you detail what you were doing with the function? We can try to help out to find a workaround perhaps

alexcrichton avatar May 20 '24 21:05 alexcrichton

Adding to what Alex said: that function was never intended to be exposed to or used by Wasmtime embedders. The wasmtime-runtime crate was an implementation detail of Wasmtime itself. Generally, to raise a trap in Wasm from a host API, you want to return an Err(..) from the host call.

fitzgen avatar May 20 '24 22:05 fitzgen

Generally, to raise a trap in Wasm from a host API, you want to return an Err(..) from the host call.

Oh, I did not realize that is possible. I fairly recently ported my code over from Wasmer, so I am not super familiar with API yet. That is indeed a nicer way of doing it...

Thanks for the quick responses!

kaimast avatar May 20 '24 22:05 kaimast

@kaimast no problem! Feel free to pop into our Zulip or file an issue if you have any more questions.

fitzgen avatar May 21 '24 15:05 fitzgen