Skip to content

Releases: bytecodealliance/wasmtime

dev: miri: add guest-debugging, including frame accesses. (#12575)

28 Sep 20:31
92f1829

Choose a tag to compare

* miri: add guest-debugging, including frame accesses.

The fix to `vm_store_context` provenance in `record_unwind`/`unwind`
is a little weird to me. I was seeing mut access to the
`vm_store_context` via `store.vm_store_context_mut()` in
`record_unwind` (before this diff) then access via the previously
saved raw pointer in the `CallThreadState`, which was registered as
invalid and I believe is indeed invalid. This was only manifesting
when setting `Config::guest_debug`, even without the frame-handle
accesses added here. I didn't dig into the exact diff in codegen or
runtime behavior that caused this but in any case, accessing
`vm_store_context` via these two different paths (with one mut)
appears to be unsound in any case. The fix here is to set the unwind
state via the raw pointer in `CallThreadState` since that's the only
path that the subsequent `unwind` has access to.

Unrelated but useful: `ci/miri-provenance.test.sh` now accepts
`MIRI_RUST_VERSION=+nightly` or whatnot, which is nice for running
locally (I keep `stable` as my default toolchain).

* Revert MIRI_RUST_VERSION in the CI script and add note about `rustup run` instead.

* Add a bit more usage of debug API to Pulley provenance test.

* Switch to using `Store`-derived `VMStoreContext` where available and re-deriving the raw pointer in `CallThreadState`.

prtest:full

v41.0.3: Release Wasmtime 41.0.3 (#12529)

04 Feb 23:21
Immutable release. Only release title and notes can be modified.
db1c043

Choose a tag to compare

41.0.3

Released 2026-02-04.

Fixed

  • Fix an incorrect mid-end optimization rule that could cause a compiler panic
    due to mismatched types.
    #12504

v41.0.2: Release Wasmtime 41.0.2 (#12499)

03 Feb 02:04
Immutable release. Only release title and notes can be modified.
881e9a3

Choose a tag to compare

41.0.2

Released 2026-02-03.

Fixed

  • Reduce the dependencies of the wasmtime-internal-jit-icache-coherence crate.
    #12446

v41.0.1: Release Wasmtime 41.0.1 (#12434)

27 Jan 00:25
Immutable release. Only release title and notes can be modified.
c30fce8

Choose a tag to compare

41.0.1

Released 2026-01-26.

Fixed

  • Fixed a bug in lowering of f64.copysign on x86-64 whereby when combined
    with an f64.load, the resulting machine code could read 16 bytes rather
    than 8 bytes. This could result in a segfault when Wasmtime is configured
    without signals-based traps.

v40.0.3: Release Wasmtime 40.0.3 (#12433)

27 Jan 00:30
Immutable release. Only release title and notes can be modified.
390241f

Choose a tag to compare

40.0.3

Released 2026-01-26.

Fixed

  • Fixed a bug in lowering of f64.copysign on x86-64 whereby when combined
    with an f64.load, the resulting machine code could read 16 bytes rather
    than 8 bytes. This could result in a segfault when Wasmtime is configured
    without signals-based traps.

v36.0.5: Release Wasmtime 36.0.5 (#12432)

26 Jan 23:27
Immutable release. Only release title and notes can be modified.
06ef143

Choose a tag to compare

36.0.5

Released 2026-01-26.

Fixed

  • Fixed a bug in lowering of f64.copysign on x86-64 whereby when combined
    with an f64.load, the resulting machine code could read 16 bytes rather
    than 8 bytes. This could result in a segfault when Wasmtime is configured
    without signals-based traps.

v41.0.0: Release Wasmtime 41.0.0 (#12373)

20 Jan 18:02
Immutable release. Only release title and notes can be modified.
3dda916

Choose a tag to compare

41.0.0

Released 2026-01-20.

Added

  • Support for {Future,Stream}Any in the component model has improved.
    #12142

  • Wasmtime has initial support for breakpoints and single-stepping with the
    debug feature for guest programs.
    #12133

  • Wasmtime has begun adding a new Error type which is similar to
    anyhow::Error but supports gracefully handling OOM. Wasmtime still uses
    anyhow::Error but this will change in the future to wasmtime::Error which
    will be a distinct type.
    #12163

  • An initial top-level crate for async-debugging guest programs has been added.
    #12183

Changed

  • Cranelift now optimizes redundant select + icmp instructions.
    #12135

  • Synchronous component model functions can no longer block before returning.
    This implements a change in the upstream specification to the upcoming async
    support in the component model which places stricter restrictions on
    non-async functions and their ability to perform blocking operations.
    #12043

  • Frame iteration in debug mode now visits all activations which enables
    seeing all frames from recursive wasm calls.
    #12176

  • Wasmtime now requires Rust 1.90.0 or later.
    #12167

  • Intra-component stream/future reads/writes are now allowed for simple data
    types.
    #12181

  • The POLL callback code has been removed from the canonical ABI for async
    functions and the waitable-set.poll function no longer yields.
    #12182

  • Guest-to-guest adapters injected by Wasmtime now have improved trapping error
    messages.
    #12215

Fixed

  • #[derive(Lift)] for enums with exactly 256 cases has been fixed.
    #12140

  • With component-model-async support recursively calling a guest from a host
    function has now been fixed.
    #12152

v40.0.2: Release Wasmtime 40.0.2 (#12346)

14 Jan 17:29
Immutable release. Only release title and notes can be modified.
bb9ef67

Choose a tag to compare

40.0.2

Released 2026-01-14.

Fixed

  • A possible stack overflow in the x64 backend with cmp emission has been
    fixed.
    #12333

  • Some ISLE optimization rules which created erroneous IR for vector inputs have
    been fixed.
    #12179
    #12335

  • The x64 lowering of shld has been fixed for some edge caxes.
    #12321

v39.0.2: Release Wasmtime 39.0.2 (#12347)

14 Jan 17:05
Immutable release. Only release title and notes can be modified.
f66a5b6

Choose a tag to compare

39.0.2

Released 2026-01-14.

Fixed

  • A possible stack overflow in the x64 backend with cmp emission has been
    fixed.
    #12333

v36.0.4: Release Wasmtime 36.0.4 (#12348)

14 Jan 17:16
Immutable release. Only release title and notes can be modified.
0489f91

Choose a tag to compare

36.0.4

Released 2026-01-14.

Fixed

  • A possible stack overflow in the x64 backend with cmp emission has been
    fixed.
    #12333