Releases: bytecodealliance/wasmtime
dev
Config knobs and validation for record-replay (#12375)
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
v40.0.1: Release Wasmtime 40.0.1 (#12271)
40.0.1
Released 2026-01-07.
Changed
- This release is a test of Wasmtime's CI-based crate publishing infrastructure.
Wasmtime is switching to crates.io-based trusted publishing for this release
and is testing that everything works.
#12257
v40.0.0: Release Wasmtime 40.0.0 (#12192)
40.0.0
Released 2025-12-20.
Added
-
WASIp3 support for
wasi:httpnow implementsResponse::from_httpto convert
from standard Rust types to WASI types.
#12063 -
Cranelift now supports a "patchable" ABI which has a maximum number of
arguments and clobbers no registers. This is paired as well with a new
patchable_callinstruction which supports being turned into NOPs at runtime.
#12061
#12101
Changed
-
Support for the WebAssembly
threadsproposal is now classified as tier 2 by
default. Additionally creation ofSharedMemoryis disabled by deafult behind
a new config knob/CLI flag.
#12036 -
A variety of peephole-style optimizations have been added to Cranelift's
optimization passes.
#11994
#11995
#11996
#11997
#11998
#11999
#12000
#12006
#12008 -
Component host functions have been slightly optimized to remove an
Arcclone
and reduce contention.
#11987 -
Support for component-model-async has been updated to account for the
changes specified in WebAssembly/component-model#578.
This means that historical binaries using WASIp3, for example, are no longer
valid. Recompilation of historical components will be required and
source-level changes may also be required in some circumstances.
#12031
#12043 -
The
UnsyncBoxBodytype is now used everywhere in wasmtime-wasi-http instead
of just in the wasip3 support.
#12060 -
Initial groundwork for gracefully handling OOM (e.g. returning an error
instead of aborting) has been added.
#12070
#12089 -
Wasmtime will create a private copy of code memory when guest debugging is
enabled to assist with modifying code when adding/removing breakpoints.
#12051 -
The
ResourceTabletype will no longer useTombstonewhen compiled in debug
mode.
#12114 -
Intra-component future/stream reads/writes will now trap instead of
accidentally being allowed.
#12117 -
Cranelift optimization rules have been tweaked after it was discovered that
they could pessimize code containing long chains of computations.
#12116
Fixed
-
Compilation of
i8x16.popcnthas been fixed in Winch for some potential
inputs.
#12010 -
A panic in
Instance::prepare_callfor some component-model-async situations
has been fixed.
#12054 -
An off-by-one error for lifting/lowering enums/variants with 255 cases has
been fixed.
#12066 -
Restarting the read of a host future after cancellation has been fixed.
#12093 -
Compilation for OpenBSD on x86_64 has been fixed.
#12097 -
Components containing a module type which exoprts a
tagare now supported.
#12125