Releases: bytecodealliance/wasmtime
dev: Start using `#[expect]` instead of `#[allow]` (#9696)
* Start using `#[expect]` instead of `#[allow]` In Rust 1.81, our new MSRV, a new feature was added to Rust to use `#[expect]` to control lint levels. This new lint annotation will silence a lint but will itself cause a lint if it doesn't actually silence anything. This is quite useful to ensure that annotations don't get stale over time. Another feature is the ability to use a `reason` directive on the attribute with a string explaining why the attribute is there. This string is then rendered in compiler messages if a warning or error happens. This commit migrates applies a few changes across the workspace: * Some `#[allow]` are changed to `#[expect]` with a `reason`. * Some `#[allow]` have a `reason` added if the lint conditionally fires (mostly related to macros). * Some `#[allow]` are removed since the lint doesn't actually fire. * The workspace configures `clippy::allow_attributes_without_reason = 'warn'` as a "ratchet" to prevent future regressions. * Many crates are annotated to allow `allow_attributes_without_reason` during this transitionary period. The end-state is that all crates should use `#[expect(..., reason = "...")]` for any lint that unconditionally fires but is expected. The `#[allow(..., reason = "...")]` lint should be used for conditionally firing lints, primarily in macro-related code. The `allow_attributes_without_reason = 'warn'` level is intended to be permanent but the transitionary `#[expect(clippy::allow_attributes_without_reason)]` crate annotations to go away over time. * Fix adapter build prtest:full * Fix one-core build of icache coherence * Use `allow` for missing_docs Work around rust-lang/rust#130021 which was fixed in Rust 1.83 and isn't fixed for our MSRV at this time. * More MSRV compat
v27.0.0: Release Wasmtime 27.0.0 (#9624)
27.0.0
Released 2024-11-20.
Added
-
Support for the Wasm GC proposal is now complete. A new "null" GC has been
also added which does not ever collect garbage.
#9389
#9392
#9401
#9435
#9437
#9438
#9446
#9448
#9454
#9455
#9484 -
Unstable WIT APIs now have feature gates configured at link-time and new
-Scli-exit-with-code
/-Snetwork-error-code
options are available as well.
#9381
#9276 -
Initial support for the wide-arithmetic proposal has been implemented.
#9403
#9500 -
Guests on s390x now implement the "inline probestacks" for Cranelift to more
robustly detect stack overflows.
#9423 -
Missing CLI options for the pooling allocator have been filled out.
#9447 -
Cranelift now supports 128-bit atomics on x64.
#9459 -
A new Cargo feature has been added to the
wasmtime
crate to reexport the
wasmparser
dependency.
#9485 -
Support for a new PyTorch backend for wasi-nn has been added.
#9234 -
A new
-Cnative-unwind-info
flag has been added to thewasmtime
CLI.
#9494 -
Initial support for illumos has been added.
#9535 -
A new
Caller::get_module_export
API has been added.
#9525 -
Basic debug logging has been added to the debug info transformatino.
#9526
Changed
-
The WASI WITs vendored are now updated to 0.2.2.
#9395 -
The
wasmtime-wasi-runtime-config
is now namedwasmtime-wasi-config
.
#9404 -
Documentation on the implementation status of WebAssembly proposals has been
updated.
#9434 -
Wasmtime's WASI documentation has been overhauled.
#9471 -
The
wasi_config_preopen_dir
in Wasmtime's C API now takes file/directory
permissions.
#9477 -
Detection of libunwind vs libgcc is now done with weak symbols.
#9479 -
Winch has improved detection of unsupported features in a
Config
.
#9490 -
Winch now supports fuel-based interruption.
#9472 -
Wasmtime's minimum supported Rust version is now 1.80.
#9496 -
ISLE no longer supports scheme-style booleans.
#9522 -
ISLE now supports block comments.
#9529 -
Support for shared memory in the C API has been added.
#9507 -
Configuration options for guard size regions have been merged into a single
option.
#9528
Fixed
v26.0.1: Release Wasmtime 26.0.1 (#9561)
26.0.1
Released 2024-11-05.
Fixed
- Update to cap-std 3.4.1, for #9559, which fixes a wasi-filesystem sandbox
escape on Windows.
CVE-2024-51745.
v25.0.3: Release Wasmtime 25.0.3 (#9562)
25.0.3
Released 2024-11-05.
Fixed
- Update to cap-std 3.4.1, for #9559, which fixes a wasi-filesystem sandbox
escape on Windows.
CVE-2024-51745.
v24.0.2: Release Wasmtime 24.0.2 (#9563)
24.0.2
Released 2024-11-05.
Fixed
- Update to cap-std 3.4.1, for #9559, which fixes a wasi-filesystem sandbox
escape on Windows.
CVE-2024-51745.
v26.0.0: Release Wasmtime 26.0.0 (#9489)
26.0.0
Released 2024-10-22.
Added
-
The "table64" extension of the memory64 proposals to WebAssembly has been
implemented.
#9206 -
Initial support has been added for compiling WebAssembly modules with Pulley,
Wasmtime's interpreter. Note that the interpreter is not feature complete yet.
#9240 -
Wasmtime can now execute code without relying on host-based signal handlers.
#9230 -
Work has continued on implementing the GC proposals in Wasmtime.
#9246
#9244
#9271
#9275
#9278
#9282
#9285
#9326
#9341
#9358 -
Support for ARM64 Windows has been finished with support for unwinding.
Release binaries are now also available for this platform.
#9266
#9283 -
The
bindgen!
macro now supports multiple paths to load WIT from.
#9288 -
A new
-W async-stack-size=N
argument has been added to the CLI.
#9302 -
A new
wasmtime completion
subcommand can be used to generate a completion
script for the Wasmtime CLI.
#9312 -
Components now support
initialize_copy_on_write_image
like core modules.
#9357 -
Initial support for the ISLE verifier Crocus has landed.
#9178
Changed
-
Wasmtime now requires Rust 1.79.0 to compile.
#9202 -
The
future-trailers.get
inwasi-http
now returnsnone
when trailers are
absent.
#9208 -
The Cranelift instructions
iadd_cin
andisub_bin
were removed. The
isub_borrow
andiadd_carry
instructions were renamed to{u,s}add_carry
and{u,s}sub_borrow
.
#9199 -
Winch now supports multi-value results on AArch64.
#9218 -
Some issues related to
shutdown
have been fixed with WASI sockets.
#9225 -
Cranelift now has a Cargo feature to enable support for all native ISAs and
not Pulley.
#9237 -
Cranelift support for
StructArgument
in the arm64, riscv64, and s390x
backends has been removed.
#9258 -
The pooling allocator no longer limits instances/memories/tables by default.
#9257 -
Stack overflow on an async stack will now print a message that this happened.
#9304 -
Cranelift's
cranelift-wasm
crate has been removed and folded directly into
wasmtime-cranelift
.
#9313 -
Cranelift's
TrapCode
type is now represented with a single byte.
#9338
Fixed
v25.0.2: Release Wasmtime 25.0.2 (#9366)
25.0.2
Released 2024-10-09.
Fixed
-
Fix a runtime crash when combining tail-calls with host imports that capture a
stack trace or trap.
GHSA-q8hx-mm92-4wvg -
Fix a race condition could lead to WebAssembly control-flow integrity and type
safety violations.
GHSA-7qmx-3fpx-r45m
v24.0.1: Release Wasmtime 24.0.1 (#9370)
24.0.1
Released 2024-10-09.
Fixed
-
Fix a runtime crash when combining tail-calls with host imports that capture a
stack trace or trap.
GHSA-q8hx-mm92-4wvg -
Fix a race condition could lead to WebAssembly control-flow integrity and type
safety violations.
GHSA-7qmx-3fpx-r45m
v23.0.3: Release Wasmtime 23.0.3 (#9365)
23.0.3
Released 2024-10-09.
Fixed
-
Fix a runtime crash when combining tail-calls with host imports that capture a
stack trace or trap.
GHSA-q8hx-mm92-4wvg -
Fix a race condition could lead to WebAssembly control-flow integrity and type
safety violations.
GHSA-7qmx-3fpx-r45m
v22.0.1: Release Wasmtime 22.0.1 (#9364)
22.0.1
Released 2024-10-09.
Fixed
-
Fix a runtime crash when combining tail-calls with host imports that capture a
stack trace or trap.
GHSA-q8hx-mm92-4wvg -
Fix a race condition could lead to WebAssembly control-flow integrity and type
safety violations.
GHSA-7qmx-3fpx-r45m