Releases: bytecodealliance/wasmtime
dev: miri: add guest-debugging, including frame accesses. (#12575)
* 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)
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)
41.0.2
Released 2026-02-03.
Fixed
- Reduce the dependencies of the
wasmtime-internal-jit-icache-coherencecrate.
#12446
v41.0.1: Release Wasmtime 41.0.1 (#12434)
41.0.1
Released 2026-01-26.
Fixed
- Fixed a bug in lowering of
f64.copysignon x86-64 whereby when combined
with anf64.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)
40.0.3
Released 2026-01-26.
Fixed
- Fixed a bug in lowering of
f64.copysignon x86-64 whereby when combined
with anf64.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)
36.0.5
Released 2026-01-26.
Fixed
- Fixed a bug in lowering of
f64.copysignon x86-64 whereby when combined
with anf64.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)
41.0.0
Released 2026-01-20.
Added
-
Support for
{Future,Stream}Anyin the component model has improved.
#12142 -
Wasmtime has initial support for breakpoints and single-stepping with the
debugfeature for guest programs.
#12133 -
Wasmtime has begun adding a new
Errortype which is similar to
anyhow::Errorbut supports gracefully handling OOM. Wasmtime still uses
anyhow::Errorbut this will change in the future towasmtime::Errorwhich
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+icmpinstructions.
#12135 -
Synchronous component model functions can no longer block before returning.
This implements a change in the upstream specification to the upcomingasync
support in the component model which places stricter restrictions on
non-asyncfunctions and their ability to perform blocking operations.
#12043 -
Frame iteration in
debugmode 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
POLLcallback code has been removed from the canonical ABI for async
functions and thewaitable-set.pollfunction no longer yields.
#12182 -
Guest-to-guest adapters injected by Wasmtime now have improved trapping error
messages.
#12215
Fixed
v40.0.2: Release Wasmtime 40.0.2 (#12346)
v39.0.2: Release Wasmtime 39.0.2 (#12347)
39.0.2
Released 2026-01-14.
Fixed
- A possible stack overflow in the x64 backend with
cmpemission has been
fixed.
#12333
v36.0.4: Release Wasmtime 36.0.4 (#12348)
36.0.4
Released 2026-01-14.
Fixed
- A possible stack overflow in the x64 backend with
cmpemission has been
fixed.
#12333