22.0.0
Released 2024-06-20.
Added
-
The CMake-based build of Wasmtime's C API now adds a
WASMTIME_FASTEST_RUNTIME
option which activates the "fastest-runtime"
compilation profile which enables LTO.
#8554 -
Cranelift supports more instructions in the RISC-V Zfa and ZiCond extensions.
#8582
#8695 -
Support for fused-multiply-and-add on RISC-V has been improved.
#8596
#8588 -
Release binaries for
{aarch64,x86_64}-android
have been added. Note that
Android is still a Tier 3 target.
#8601 -
Wasmtime now supports supertypes and finality in the type hierarchy for wasm
gc.
#8595 -
Lazy initialization of tables can now be tuned with a CLI flags and
configuration option.
#8531 -
Wasmtime now compiles for x86_64 OpenBSD. Note that this is a Tier 3
target and continued support is always appreciated.
#8613 -
Stack slots in Cranelift can now specify custom alignment.
#8635 -
Wasm function names are now used in compiled objects to assist with debugging
and introspection with native tools.
#8627 -
Wasmtime's release artifacts now includes
wasmtime-platform.h
for use with
no_std
targets.
#8644 -
Release binaries for x86_64 Alpine Linux have been added.
#8668 -
A new
Component::define_unknown_imports_as_traps
function has been added to
stub out functions in a component linker.
#8672
Changed
-
Wasmtime and Cranelift's now require Rust 1.76.0 to build.
#8560 -
The
wasi_config_preopen_dir
function no longer always returnstrue
in the
C API. Additionallywasi_config_set_env
andwasi_config_set_argv
may now
return an error.
#8572 -
Cranelift now updates registers of backend instructions in-place, simplifying
register allocation and assignment.
#8566
#8581
#8592
#8604
#8605 -
Wasmtime now attempts to batch memory decommits into one tight loop.
#8581
#8590 -
Bindings generated with
bindgen!
now have generatedGetHost
traits and
add_to_linker_get_host
functions which enable a more general means by which
to acquire host implementations from a store'sT
.
#8448 -
The
wasmtime serve
subcommand will now dynamically determine whether to use
the pooling allocator by default based on the system's available virtual
memory.
#8610 -
Implementations of
Host
traits in thewasmtime-wasi
crate are now for
WasiImpl<T>
instead of blanket impls forT
.
#8609
#8766 -
The concepts of "virtual sp offset" and "nominal sp" have been removed from all
Cranelift backends.
#8631
#8643 -
The maximum size of linear memory in the pooling allocator is now specified in
bytes instead of pages.
#8628 -
Wasmtime no longer has two different host ABIs for host functions and instead
only has one. The "array" calling convention is now unconditionally used
instead of having a split between the "native" calling convention and the
"array" calling convention. This means thatFunc::new
is now available even
when thecranelift
feature is disabled.
#8629
#8646 -
Wasmtime's C API bindings for CMake have been refactored and now supports
specifying Cargo features directly. Functions that are configured out are now
also gated in header files.
#8642 -
Wasmtime's C API can now be built without Cranelift or Winch.
#8661 -
Wasmtime's release binaries have Winch compiled in by default now.
#8660 -
The output of
wasmtime explore
now shows function names in addition to
indices.
#8639 -
Support for the Wasmtime 13-and-prior CLI has been removed.
#8597 -
Wiggle-based borrow checking has been removed in favor of modeling host usage
of guest memory with Rust-level borrows.
#8702 -
Wasmtime's
bindgen!
macro will now generate the same hierarchy of
traits/types/modules even when thewith
module is used via newpub use
statements.
#8721 -
The
WasiCtxBuilder::socket_addr_check
function now takes anasync
closure.
#8715 -
The
Func::wrapN_async
functions and friends have all been consolidated into
a single function with a slightly different signature of taking a tuple of
arguments rather than "splatted" arguments.
#8732
Fixed
-
Trampoline lookup for wasm gc functions that may use subtyping on the host to
match a guest's desired type now no longer panics.
#8579 -
The total size of arguments, environment variables, and preopens is now
allowed to exceed 64k when using the wasip1 component adapter.
#8594 -
Performing a zero-length
read
on file streams is now fixed in WASI.
#8611 -
Tail calls are now turned by default after a mistake was discovered in the
previous releases's intent to enable them by default.
#8682 -
Winch support for
f64
comparison instructions has been fixed.
#8685 -
The
SO_REUSEADDR
option is reenabled for Unix platforms withwasmtime serve
.
#8738