Stream: git-wasmtime

Topic: wasmtime / PR #9811 Create wasmtime::Config from toml


view this post on Zulip Wasmtime GitHub notifications bot (Dec 13 2024 at 00:16):

ludfjig opened PR #9811 from ludfjig:ludfjig/fileconfig to bytecodealliance:main:

This PR makes it possible to create a wasmtime::Config from a toml file and is a first step toward resolving #8784. Overall, I think the path forward is as follows:

  1. This PR: Enables loading wasmtime::Config from a toml file, by making CommonOptions derive Deserialize. For example, opt_level is deserialized from values 0, 1, 2, "s" (same as cli flags) instead of "None", "Speed", "SpeedAndSize". Same applies to regalloc_algorithm, compiler and collector.
  2. Combine cache-config toml with this new toml.
  3. Have one source of truth for cli flags and config options.

Feedback greatly appreciated.

view this post on Zulip Wasmtime GitHub notifications bot (Dec 13 2024 at 00:16):

ludfjig requested wasmtime-core-reviewers for a review on PR #9811.

view this post on Zulip Wasmtime GitHub notifications bot (Dec 13 2024 at 00:16):

ludfjig requested alexcrichton for a review on PR #9811.

view this post on Zulip Wasmtime GitHub notifications bot (Dec 13 2024 at 00:17):

ludfjig edited PR #9811:

This PR makes it possible to create a wasmtime::Config from a toml file and is a first step toward resolving #8784. Overall, I think the path forward is as follows:

  1. This PR: Enables loading wasmtime::Config from a toml file, by making CommonOptions derive Deserialize. For example, opt_level is deserialized from values 0, 1, 2, "s" (same as cli flags) instead of "None", "Speed", "SpeedAndSize". Same applies to regalloc_algorithm, compiler and collector.
  2. Combine cache-config toml with this new toml.
  3. Have one source of truth for cli flags and config options.

Feedback greatly appreciated, especially regarding how to deal with WasiNnGraph, as well config_var and keyvalue_in_memory_data, which are all marked serde(skip) for now

view this post on Zulip Wasmtime GitHub notifications bot (Dec 13 2024 at 00:18):

ludfjig edited PR #9811:

This PR makes it possible to create a wasmtime::Config from a toml file and is a first step toward resolving #8784. Overall, I think the path forward is as follows:

  1. This PR: Enables loading wasmtime::Config from a toml file, by making CommonOptions derive Deserialize. For example, opt_level is deserialized from values 0, 1, 2, "s" (same as cli flags) instead of "None", "Speed", "SpeedAndSize". Same applies to regalloc_algorithm, compiler and collector.
  2. Combine cache-config toml with this new toml.
  3. Have one source of truth for cli flags and config options.

Feedback greatly appreciated, especially regarding how to deal with nn_graph, as well config_var and keyvalue_in_memory_data, which are all marked serde(skip) for now

view this post on Zulip Wasmtime GitHub notifications bot (Dec 13 2024 at 00:20):

ludfjig updated PR #9811.

view this post on Zulip Wasmtime GitHub notifications bot (Dec 13 2024 at 00:22):

ludfjig updated PR #9811.

view this post on Zulip Wasmtime GitHub notifications bot (Dec 13 2024 at 00:39):

ludfjig updated PR #9811.

view this post on Zulip Wasmtime GitHub notifications bot (Dec 13 2024 at 00:40):

ludfjig edited PR #9811:

This PR makes it possible to create a wasmtime::Config from a toml file and is a first step toward resolving #8784. Overall, I think the path forward is as follows:

  1. This PR: Enables loading wasmtime::Config from a toml file, by making CommonOptions derive Deserialize. For example, opt_level is deserialized from values 0, 1, 2, "s" (same as cli flags) instead of "None", "Speed", "SpeedAndSize". Same applies to regalloc_algorithm, compiler and collector. Feedback appreciated on this.
  2. Combine cache-config toml with this new toml.
  3. Have one source of truth for cli flags and config options.

Feedback greatly appreciated, especially regarding how to deal with nn_graph, as well config_var and keyvalue_in_memory_data, which are all marked serde(skip) for now

view this post on Zulip Wasmtime GitHub notifications bot (Dec 13 2024 at 02:17):

github-actions[bot] commented on PR #9811:

Label Messager: wasmtime:config

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

[fuzzing-config]: https://github.com/bytecodealliance/wasmtime/blob/ca0e8d0a1d8cefc0496dba2f77a670571d8fdcab/crates/fuzzing/src/generators.rs#L182-L194
[fuzzing-docs]: https://docs.wasmtime.dev/contributing-fuzzing.html


<details>

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

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

Learn more.

</details>

view this post on Zulip Wasmtime GitHub notifications bot (Dec 13 2024 at 17:04):

alexcrichton submitted PR review:

Thanks for this! I'm liking how this is shaping up pretty cleanly so far. Would you be up for integrating this into a CLI flag itself as well? For example wasmtime --config cfg.toml or something like that

view this post on Zulip Wasmtime GitHub notifications bot (Dec 13 2024 at 17:04):

alexcrichton created PR review comment:

Mind updating the error using .with_context(...) to attach the name of the file here and below?

view this post on Zulip Wasmtime GitHub notifications bot (Dec 13 2024 at 17:04):

alexcrichton created PR review comment:

This might perhaps be best as an inherent method on CommonOptions as an alternative constructor? That would still require the caller call .config(...) but that seems like a reasonable tradeoff to me.

view this post on Zulip Wasmtime GitHub notifications bot (Dec 13 2024 at 23:02):

ludfjig updated PR #9811.

view this post on Zulip Wasmtime GitHub notifications bot (Dec 13 2024 at 23:04):

ludfjig submitted PR review.

view this post on Zulip Wasmtime GitHub notifications bot (Dec 13 2024 at 23:04):

ludfjig created PR review comment:

I agree

view this post on Zulip Wasmtime GitHub notifications bot (Dec 13 2024 at 23:05):

ludfjig submitted PR review.

view this post on Zulip Wasmtime GitHub notifications bot (Dec 13 2024 at 23:05):

ludfjig created PR review comment:

addressed.

view this post on Zulip Wasmtime GitHub notifications bot (Dec 13 2024 at 23:09):

ludfjig commented on PR #9811:

Thanks for this! I'm liking how this is shaping up pretty cleanly so far. Would you be up for integrating this into a CLI flag itself as well? For example wasmtime --config cfg.toml or something like that

Thanks for looking at this. I added a --config flag. Any suggestions on how to best test this?

view this post on Zulip Wasmtime GitHub notifications bot (Dec 13 2024 at 23:11):

ludfjig updated PR #9811.

view this post on Zulip Wasmtime GitHub notifications bot (Dec 13 2024 at 23:12):

ludfjig edited PR review comment.

view this post on Zulip Wasmtime GitHub notifications bot (Dec 13 2024 at 23:12):

ludfjig edited PR review comment.

view this post on Zulip Wasmtime GitHub notifications bot (Dec 16 2024 at 15:49):

alexcrichton commented on PR #9811:

For tests I'd recommend tests/all/cli_tests.rs or somewhere around there for making a tempdir with a config file


Last updated: Dec 23 2024 at 12:05 UTC