Releases: bytecodealliance/wasmtime
v17.0.1: Release Wasmtime 17.0.1 (#7890)
17.0.1
Fixed
v17.0.0: Release Wasmtime 17.0.0 (#7800)
17.0.0
Released 2024-01-25
The major feature of this release is that the WASI support in Wasmtime is now
considered stable and flagged at an 0.2.0 version approved by the WASI subgroup.
The release was delayed a few days to hold off until the WASI subgroup voted to
approve the CLI and HTTP worlds and they're now on-by-default! Additionally the
component model is now enabled by default in Wasmtime, for example an opt-in
flag is no longer required on the CLI. Note that embeddings still must opt-in to
using the component model by using the wasmtime::component
module.
Added
-
Cranelift optimizations have been added for "3-way comparisons", or
Ord::cmp
in Rust or<=>
in C++.
#7636
#7702 -
Components now use Wasmtime's compilation cache used for core wasm modules by
default.
#7649 -
The
Resource<T>
andResourceAny
types can now be converted between each
other.
#7649
#7712
Changed
-
Minor changes have been made to a number of WITs as they progressed to their
official 0.2.0 status.
#7625
#7640
#7690
#7781
#7817 -
The component model is now enabled by default.
#7821 -
The implementation of
memory.atomic.{wait,notify}
has been rewritten.
#7629 -
The
wasmtime_wasi::preview2::Table
type has been moved to
wasmtime::component::ResourceTable
.
#7655 -
Creating a UDP stream now validates the address being sent to.
#7648 -
Defining resource types in
Linker<T>
now takes the type to define as a
runtime parameter.
#7680 -
Socket address checks can now be performed dynamically at runtime.
#7662 -
Wasmtime and Cranelift's MSRV is now 1.73.0.
#7739
Fixed
-
Bindings for WIT APIs where interfaces have multiple versions are now fixed by
putting the version in the generated binding names.
#7656 -
The preview1
fd_{read,write}
APIs are now fixed when a shared memory is
used.
#7755 -
The preview1
fd_{read,write}
APIs no longer leak an intermediate stream
created.
#7819
v16.0.0: Release Wasmtime 16.0.0 (#7709)
16.0.0
Released 2023-12-20.
Added
-
Add yielding support in
wasmtime_store_epoch_deadline_callback
in the C API.
#7476 -
Support for the
wasi_unstable
module ("wasi preview0" canonically) has been
added to the-Spreview2
support in the CLI.
#7548 -
The original module can now be obtained from an "instance pre" in the C API.
#7572 -
Usage of Mach ports on macOS can now be disabled in the C API.
#7595
Changed
-
The preview1-to-preview2 component adapters now import a smaller number of
interfaces by default.
#7543
#7544 -
Wasmtime and Cranelift now require Rust 1.72.0 to build.
#7554 -
The default
world
supported bywasmtime serve
has been slimmed down to
exactly whatwasi:http/proxy
specifies by default. Support for other WASI
APIs can be included with the-S common
command-line flag.
#7597 -
The
wasmtime --version
CLI output will now include date/commit information
when Wasmtime is built from a git checkout.
#7610
Fixed
-
MPK support is now explicitly disabled on AMD-based CPUs since the
implementation does not currently support it.
#7513 -
Initialization of a WebAssembly data segment with a negative offset is fixed
to zero-extend the offset instead of sign-extend.
#7559 -
The reported offset of
O_APPEND
files in preview1 has been fixed.
#7586 -
MPK support does a better job of compacting memories to minimize virtual
memory used.
#7622
Cranelift
-
Union node bitpacking has been fixed with egraph optimizations to ensure the
minimal cost node is selected.
#7465 -
Equivalent-cost expressions now have ties broken with expression depth in
egraphs to prefer "shallow" expression trees.
#7456 -
Long-and-narrow chains of expressions are now optimized into shallow-and-wide
trees.
#7466
v15.0.1: Release Wasmtime 15.0.1 (#7619)
v15.0.0: Release Wasmtime 15.0.0 (#7557)
15.0.0
Released 2023-11-20.
Added
-
Multiple versions of interfaces are now supported in
bindgen!
.
#7172 -
Support for custom stack memory allocation has been added.
#7209 -
The
memory_init_cow
setting can now be configured in the C API.
#7227 -
The
splice
method of WASI streams has been implemented.
#7234 -
Wasmtime binary releases now have a
wasmtime-min
executable in addition to
libwasmtime-min.*
libraries for the C API. These showcase a minimal
build of Wasmtime for comparison.
#7282
#7315
#7350
Changed
-
Many changes to
wasi:http
WITs have happened to keep up with the proposal as
it prepares to reach a more stable status.
#7161
#7406
#7383
#7417
#7451 -
Add an error resource to WASI streams.
#7152 -
Syntax in
bindgen!
'strappable_error_type
configuration has changed.
#7170 -
TCP errors in
wasi:sockets
have been simplified and clarified.
#7120 -
Wasmtime/Cranelift now require Rust 1.71.0 to compile.
#7206 -
Logging in Wasmtime is now configured with
WASMTIME_LOG
instead of
RUST_LOG
.
#7239 -
Fuel-related APIs on
Store
have been refactored and reimplemented with two
new methodsset_fuel
andreset_fuel
. Previous methods have been removed.
#7240
#7298 -
The
forward
method of WASI streams has been removed.
#7234 -
The WebAssembly
threads
,multi-memory
, andrelaxed-simd
proposals are
now enabled by default.
#7285 -
Logging is now implemented for
wasmtime serve
.
#7366 -
Filesystem locking has been temporarily removed from WASI.
#7355 -
Wasmtime's implementation of WASI preview1 built on top of preview2
(-Spreview2
) has been enabled by default.
#7365 -
The
wasi:clocks
interface now has twosubscribe
functions and aduration
type.
#7358 -
The
wasi:io/poll
interface has seen some refactoring.
#7427
Fixed
-
Profiling the first function in a module now works.
#7254 -
Consecutive writes to files in preview2 have been fixed.
#7394 -
Copy-on-write initialization of linear memories has been fixed for components.
#7459
Cranelift
-
Support for proof-carrying code has been added to Cranelift to assist with an
extra layer of validation about properties such as WebAssembly memory accesses
in the future.
#7165
#7180
#7219
#7231
#7262
#7263
#7274
#7280
#7281
#7352
#7389
#7468 -
Rematerialization of values no longer accidentally overrides LICM.
#7306 -
Inline stack probes no longer make Valgrind unhappy.
#7470
v14.0.4: Release Wasmtime 14.0.4 (#7431)
v14.0.3: Release Wasmtime 14.0.3 (#7399)
14.0.3
Released 2023-10-29
Fixed
-
The
wasmtime
executable will now attempt to more gracefully handle the
transition from the 13.0.0 CLI arguments and parsing to the changes in 14.0.0.
CLI commands should now warn if they no longer work with the new parser, but
still execute as they previously did. This behavior can be controlled via a
newWASMTIME_NEW_CLI
environment variable if necessary.
#7385 -
The
serve
subcommand of thewasmtime
CLI is now enabled by default for the
wasmtime
executable.
#7392
v14.0.2: Release Wasmtime 14.0.2 (#7367)
v13.0.1: Release Wasmtime 13.0.1 (#7375)
v14.0.1: Release Wasmtime 14.0.1 (#7334)
14.0.1
Released 2023-10-23
Fixed
- Cranelift: preserve uext and sext flags for parameters on x86_64 and apple
aarch64. Note that this does not affect Wasmtime and is only intended for
Cranelift embedders such asrustc_codegen_cranelift
.
#7333