Releases: bytecodealliance/wasmtime
dev
x64: rework new assembler rule priorities, remove old emission rules …
v30.0.1: Release Wasmtime 30.0.1 (#10272)
30.0.1
Released 2025-02-21.
Fixed
- Fixes an issue building the
cranelift-assembler-x64
crate on Windows
when the Rust toolchain is on a different drive than the project using
wasmtime
. For more details, see the Zulip discussion. #10270
v30.0.0: Release Wasmtime 30.0.0 (#10250)
30.0.0
Released 2025-02-20.
Added
-
New
wasmtime-wasi-io
crate provides a#![no_std]
wasi:io implementation,
factored out ofwasmtime-wasi
. Users ofwasmtime-wasi
don't have to
depend on this new crate.
#10036 -
Wasmtime's interpreter, Pulley, is now complete and has been listed as
tier 2.
#9897
#9884
#9943
#9944
#9983
#9966
#9935
#10034
#10057
#10095 -
Wasmtime's CI now checks that the repository builds for
aarch64-apple-ios
.
Note that no tests are run for this target, so it's still tier 3.
#9888 -
Winch's support for AArch64 and simd on x64 have continued to progress
well. Winch additionally now fully supports thethreads
WebAssembly
proposal.
#9889
#9970
#9950
#9987
#9990
#9959
#10008
#10028
#10029
#10023
#10042
#10050
#10039
#10082
#10092
#10109
#10148
#10147 -
The
memory64
WebAssembly feature is now enabled by default. This WebAssembly
proposal is now considered a tier 1 feature.
#9937
#10159 -
Wasmtime's full test suite and CI now includes 32-bit platforms such as x86
and armv7 Linux. These platforms have been added to tier 3 status and use
Pulley as their execution backend.
#10025 -
Initial experimental support for WASIp3 and async features of the Component
Model have started to land. These features are not yet ready for
general-purpose use.
#10044
#10047
#10083
#10103 -
The
wasmtime
CLI now supports using a TOML configuration file via--config
in addition to CLI options.
#9811
#10132 -
Initial support for a new assembler on x64 has been added.
#10110
#10178
Changed
-
wasmtime-wasi
split theWasiView
trait intoIoView
andWasiView
, and
wasmtime-wasi-http
re-usesIoView
inWasiHttpView
. Details on porting
for embedders in PR.
#10016 -
wasmtime-wasi
renamed some exported types and traits. Embedders which use
Pollable
,InputStream
,OutputStream
,Subscribe
,HostInputStream
,
HostOutputStream
,PollableFuture
, orClosureFuture
from that crate
will need to rename those imports to their new names, describe in PR.
#10036 -
Components using a 64-bit linear memory should never have worked before, but
they're now rejected earlier in the validation process.
#9952 -
Module validation is now deterministic in the face of multiple errors.
#9947 -
Wasmtime's minimum supported version of Rust is now 1.82.0.
#9956 -
Cranelift will now deduplicate
trap[n]z
instructions.
#10004 -
The
--emit-clif
option towasmtime compile
now emits post-optimization
CLIF.
#10011 -
The
signals-based-traps
Cargo feature has been removed in favor of
auto-detection of available features based on the#[cfg]
directives
available for the target platform.
#9941 -
The
async_stack_zeroing
configuration knob now covers all stack allocations,
not just those from the pooling allocator.
#10027 -
Wasmtime should work-by-default on more platforms, even those where Cranelift
has no support for the architecture. This is done by ensuring some
architecture and platform-specific bits are removed on unknown platforms (and
Pulley is used instead).
#10107 -
Wasmtime now compiles on platforms missing 64-bit atomics.
#10134
Fixed
-
Fixed a missing case for
Ref::matches_ty
should returntrue
.
#9985 -
A bug with using the
single_pass
register allocation algorithm on x64/s390x
has been fixed by refactoring how branches are represented.
#10086
#10087 -
A bug with argument extensions on riscv64 has been fixed.
#10069 -
The
PartialEq
implementation forRegisteredType
has been fixed.
#10091 -
The output of
component::bindgen!
now works with#![no_std]
crates.
#10105 -
Fix
wasmtime wast
when combined with--fuel
.
#10121 -
The
wat
feature of the C API is now plumbed correctly in a few more
locations.
#10124 -
Spurious wake-ups in
blocking_*
methods ofInputStream
andOutputStream
have been fixed.
#10113
v29.0.1: Release Wasmtime 29.0.1 (#10070)
29.0.1
Released 2025-01-21.
Fixed
- Fix a missing increment in WASIp1-to-WASIp2 adapter which affected WASI
configurations that have multiple preopened directories.
#10064
v29.0.0: Release Wasmtime 29.0.0 (#10049)
29.0.0
Released 2025-01-20.
Added
-
Winch now supports epoch-based interruption.
#9737 -
Pulley, Wasmtime's WebAssembly interpreter, has seen quite a lot of progress
and support fleshed out. It's still not 100% complete but should be about
ready to start kicking the tires.
#9744 -
The Wasmtime CLI now supports a
-Wextended-const
flag to control whether the
extended-const
wasm proposal is enabled or not.
#9768 -
Work continues to progress on the AArch64 Winch backend, bringing it closer to
completion.
#9762
#9767
#9751
#9784
#9781
#9792
#9787
#9798
#9850 -
Wasmtime now supports a "custom code publisher" which can be useful when
Wasmtime doesn't have built-in support for a particular environment.
#9778 -
Configuration options have been added for
wasmtime-wasi-http
outgoing
bodies.
#9800 -
Log prefixes can now be disabled for the
wasmtime serve
command.
#9821 -
A new
WASMTIME_LOG_NO_CONTEXT
environment variable was added to live
alongsideWASMTIME_LOG
.
#9902 -
Release artifacts for aarch64-musl targets are now available.
#9934
Changed
-
Wasmtime libcalls now return whether a trap happened rather than raising a
trap directly to better prepare for the Pulley interpreter and an eventual
implementation of Wasm exception-handling.
#9710 -
Wasmtime will now use the Pulley interpreter by default on platforms that
are not supported by Cranelift.
#9741 -
Demangling symbols in profiling and debugging has improved to handle failures
to demangle C++ symbols.
#9756 -
WASI WIT files have been updated to 0.2.3.
#9807 -
Wasmtime's
bindgen!
macro inasync
mode no longer uses#[async_trait]
an instead natively usesasync fn
in traits.
#9867 -
Floats are no longer canonicalized flowing into or out of components.
#9879 -
Instance methods are now translated to static methods in DWARF translation.
#9898 -
The C API now supports debug builtins for debugging guest code.
#9915
Fixed
v28.0.1: Release Wasmtime 28.0.1 (#10015)
28.0.1
Released 2025-01-14.
Fixed
- Fixed deallocating async stacks when using
Store::into_data
.
#10009
v28.0.0: Release Wasmtime 28.0.0 (#9876)
28.0.0
Released 2024-12-20.
Added
-
The ISLE DSL used for Cranelift now has a first-class
bool
type.
#9593 -
Cranelift now supports a new single-pass register allocator designed for
compile-time performance (unlike the current default which is optimized for
runtime-of-generated-code performance).
#9611 -
The
wasmtime
crate now natively supports thewasm-wave
crate and its
encoding of component value types.
#8872 -
A
Module
can now be created from an already-open file.
#9571 -
A new default-enabled crate feature,
signals-based-traps
, has been added to
thewasmtime
crate. When disabled then runtime signal handling is not
required by the host. This is intended to help with future effort to port
Wasmtime to more platforms.
#9614 -
Linear memories may now be backed by
malloc
in certain conditions when guard
pages are disabled, for example.
#9614
#9634 -
Wasmtime's
async
feature no longer requiresstd
.
#9689 -
The buffer and budget capacity of
OutgoingBody
inwasmtime-wasi-http
are
now configurable.
#9670
Changed
-
Wasmtime's external and internal distinction of "static" and "dynamic"
memories has been refactored and reworded. All options are preserved but
exported under different names with improved documentation about how they all
interact with one another. (and everything should be easier to understand)
#9545 -
Each
Store<T>
now caches a single fiber stack in async mode to avoid
allocating/deallocating if the store is used multiple times.
#9604 -
Linear memories now have a 32MiB guard region at the end instead of a 2GiB
guard region by default.
#9606 -
Wasmtime will no longer validate dependencies between WebAssembly features,
instead delegating this work towasmparser
's validator.
#9623 -
Cranelift's
isle-in-source-tree
feature has been re-worked as an environment
variable.
#9633 -
Wasmtime's minimum supported Rust version is now 1.81.
#9692 -
Synthetic types in DWARF are now more efficiently represented.
#9700 -
Debug builtins on Windows are now exported correctly.
#9706 -
Documentation on
Config
now clarifies that defaults of some options may
differ depending on the selected target or compiler depending on features
supported.
#9705 -
Wasmtime's error-related types now all unconditionally implement the
Error
trait, even in#[no_std]
mode.
#9702
Fixed
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.