Stream: git-wasmtime

Topic: wasmtime / PR #14502 Refactor Winch default features slig...


view this post on Zulip Wasmtime GitHub notifications bot (Oct 02 2026 at 21:20):

alexcrichton opened PR #14502 from alexcrichton:refactor-winch-features to bytecodealliance:main:

I've realized locally that in addition to removing the gc-types/exceptions defaults we should also be removing tail-call by default. To handle that I've decided to refactor this slightly to explicitly enable features for Winch instead of disabling them from Cranelift's features. This should be a bit more robust over time because if we add something to Cranelift's set we don't have to remember to remove it from Winch's set.

<!--
Please make sure you include the following information:

Our development process is documented in the Wasmtime book:
https://docs.wasmtime.dev/contributing-development-process.html

Please review the Bytecode Alliance's AI tool usage policy at
https://github.com/bytecodealliance/governance/blob/main/AI_TOOL_POLICY.md

Please ensure all communication follows the code of conduct:
https://github.com/bytecodealliance/wasmtime/blob/main/CODE_OF_CONDUCT.md
-->

view this post on Zulip Wasmtime GitHub notifications bot (Oct 02 2026 at 21:20):

alexcrichton requested cfallin for a review on PR #14502.

view this post on Zulip Wasmtime GitHub notifications bot (Oct 02 2026 at 21:21):

alexcrichton requested wasmtime-core-reviewers for a review on PR #14502.

view this post on Zulip Wasmtime GitHub notifications bot (Oct 02 2026 at 21:40):

:thumbs_up: cfallin submitted PR review:

Some thoughts below but I'm not strongly attached either way; just my idea/impression...

view this post on Zulip Wasmtime GitHub notifications bot (Oct 02 2026 at 21:40):

:speech_balloon: cfallin created PR review comment:

Would it be a little easier to follow if we had something like

let mut features = WasmFeatures::empty();
match self.compiler_config.as_ref().and_then(|c| c.strategy) {
  // XXX does `None` mean Cranelift or no compilation?
  None => {
    features |= WasmFeatures::WASM3 | WasmFeatures::WIDE_ARITHMETIC;
  }

  #[cfg(feature = "cranelift")]
  Some(Strategy::CraneliftNative) | Some(Strategy::CraneliftPulley) => {
    features |= WasmFeatures::WASM3 | WasmFeatures::WIDE_ARITHMETIC;
  }

  #[cfg(feature = "winch")]
  Some(Strategy::Winch) => {
    features |= WasmFeatures::WASM2 | ...;
    features.remove(WasmFeatures::GC_TYPES);
  }
}

(I'm not as familiar with this code as you but at least naively, it feels like there should be a table-by-compiler somewhere rather than an "overwrite earlier value" flow)

view this post on Zulip Wasmtime GitHub notifications bot (Oct 02 2026 at 22:12):

alexcrichton updated PR #14502.

view this post on Zulip Wasmtime GitHub notifications bot (Oct 02 2026 at 22:13):

:memo: alexcrichton submitted PR review.

view this post on Zulip Wasmtime GitHub notifications bot (Oct 02 2026 at 22:13):

:speech_balloon: alexcrichton created PR review comment:

Good call, mind double-checking the docs/etc that've been subsequently updated?

view this post on Zulip Wasmtime GitHub notifications bot (Oct 02 2026 at 22:25):

:thumbs_up: cfallin submitted PR review:

LGTM, thanks!

view this post on Zulip Wasmtime GitHub notifications bot (Oct 02 2026 at 22:25):

:speech_balloon: cfallin created PR review comment:

s/meant/mean/

view this post on Zulip Wasmtime GitHub notifications bot (Oct 02 2026 at 22:29):

alexcrichton updated PR #14502.

view this post on Zulip Wasmtime GitHub notifications bot (Oct 02 2026 at 22:29):

alexcrichton has enabled auto merge for PR #14502.

view this post on Zulip Wasmtime GitHub notifications bot (Oct 02 2026 at 22:39):

alexcrichton added PR #14502 Refactor Winch default features slightly to the merge queue.

view this post on Zulip Wasmtime GitHub notifications bot (Oct 02 2026 at 23:03):

github-merge-queue[bot] removed PR #14502 Refactor Winch default features slightly from the merge queue.

view this post on Zulip Wasmtime GitHub notifications bot (Oct 02 2026 at 23:44):

github-actions[bot] added the label wasmtime:api on PR #14502.

view this post on Zulip Wasmtime GitHub notifications bot (Oct 02 2026 at 23:44):

github-actions[bot] added the label wasmtime:config on PR #14502.

view this post on Zulip Wasmtime GitHub notifications bot (Oct 03 2026 at 01:14):

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

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 (Oct 05 2026 at 14:41):

alexcrichton updated PR #14502.

view this post on Zulip Wasmtime GitHub notifications bot (Oct 05 2026 at 14:41):

alexcrichton has enabled auto merge for PR #14502.

view this post on Zulip Wasmtime GitHub notifications bot (Oct 05 2026 at 14:52):

alexcrichton added PR #14502 Refactor Winch default features slightly to the merge queue.

view this post on Zulip Wasmtime GitHub notifications bot (Oct 05 2026 at 15:29):

:check: alexcrichton merged PR #14502.

view this post on Zulip Wasmtime GitHub notifications bot (Oct 05 2026 at 15:29):

alexcrichton removed PR #14502 Refactor Winch default features slightly from the merge queue.


Last updated: Oct 11 2026 at 04:10 UTC