Releases: bytecodealliance/wasmtime
v19.0.1: Release Wasmtime 19.0.1 (#8289)
v19.0.0: Release Wasmtime 19.0.0 (#8186)
19.0.0
Released 2024-03-20.
Added
-
C API bindings for the sampling-based profiler in Wasmtime have been added.
#7854 -
Add the WasiP1Ctx to ease the use of
wasmtime-wasiin place ofwasi-common
#8053 -
The Winch compiler backend is now feature-complete for x64. Note that minor
issues and fuzz bugs are still being addressed, but now's a good time to test
if you're interested.
#7894
#7909
#7927
#7932
#7949
#7974
#8001 -
The typed function references proposal to WebAssembly is now fully
implemented.
#7943 -
The
component::Linkertype is now "semver aware" in that it enables loading
components referring to past or future versions of interfaces so long as the
types are compatible.
#7994 -
Wasmtime can now be built for "custom platforms" which is intended for
bare-metal builds.
#7995 -
The
wasmtime-wasi-nncrate now has a backend based on WinML.
#7807 -
The
wasmtimeCLI now has flags for configuring limits of the pooling
allocator.
#8027
Changed
-
The
wasmtime servecommand no longer binds its port withSO_REUSEADDR
meaning that if it is invoked twice only one will succeed.
#7863 -
The sampling-based profiler in Wasmtime now takes an explicit argument of
the time delta between samples.
#7873 -
Many accessors for type information now require an
&Engineargument to be
specified in preparation for an implementation of wasm GC.
#7892 -
The
hostheader is now forbidden in wasi-http.
#7905 -
Stronger type-checks are now performed for host-owned resources when
interacting with the component model to help catch mistakes earlier.
#7902 -
Demangling Rust and C/C++ symbols in WebAssembly modules is now done by
default in the C API.
#7962 -
Preview2-based APIs are now located at the root of the
wasmtime_wasicrate
instead of a submodule.
#7933 -
Components now reserve index 0 for handle tables to match the component model
specification.
#7661 -
Support for
externrefhas been moved behind a newgcCargo feature. This
will also gate support for wasm gc in the future.
#7975 -
Require the
WASMTIME_WASI_CONFIG_PREOPEN_SOCKET_ALLOWenvironment variable
to bet set to allow the use ofwasi_config_preopen_socketvia the c api, as
it will be deprecated in20.0.0.
#8053
Fixed
v18.0.3: Release Wasmtime 18.0.3 (#8103)
18.0.3
Released 2024-03-12
Fixed
- Fix inferring native flags when a compilation target is specified.
#7991
v18.0.2: Release Wasmtime 18.0.2 (#8023)
18.0.2
Released 2024-02-28.
Fixed
- Fix an egraph rule bug that was permitting an incorrect
ireducerewrite to
unary and binary operations, leading to miscompilations.
#8005
v17.0.2: Release Wasmtime 17.0.2 (#8024)
17.0.2
Released 2024-02-28
Fixed
- Fix an egraph rule bug that was permitting an incorrect
ireducerewrite to
unary and binary operations, leading to miscompilations.
#8005
v18.0.1: Release Wasmtime 18.0.1 (#7967)
18.0.1
Released 2024-02-20.
Fixed
- Fixed a mistake in the CI release process that caused the crates.io
publication of the 18.0.0 release to not succeed.
#7966
v18.0.0: Release Wasmtime 18.0.0 (#7958)
18.0.0
Released 2024-02-20.
Added
-
The
wasmtime-c-api-implcrate is now published on crates.io.
#7837 -
A new
EngineWeaktype enables holding a weak pointer to an engine with the
ability to dynamically and fallibly upgrade it to anEngine.
#7797 -
The WebAssembly tail calls proposal can now be enabled through the C API.
#7811 -
The import and export types of a
Componentcan now be inspected at runtime.
#7804 -
New APIs/types have been added to support a faster version of looking up
module exports without using string lookups withModule::get_export_index.
#7828
Changed
-
Owned resources represented with
ResourceAnycan now be passed as arguments
to functions that require aborrow<T>parameter.
#7783 -
Generated structures from
wasmtime::component::bindgen!for exported
interfaces are now all renamed toGuestto avoid conflicting with WIT names.
#7794 -
Guest profiler output will now automatically demangle symbols.
#7809 -
The
wasmtimecrate now has aruntimeCargo feature which, if disabled,
enables building Wasmtime with only the ability to compile WebAssembly
modules. This enables compiling Wasmtime's compilation infrastructure, for
example, to WebAssembly itself.
#7766 -
Support for the old
wasi-commoncrate and the original implementation of
"WASIp1" aka "preview1" is being deprecated in thewasmtime-wasicrate.
Users should migrate to thewasmtime_wasi::preview2implementation, which
supports both WASIp1 and WASIp2, as in the next release the
wasi-common-based reexports ofwasmtime-wasiwill be deleted.
#7881
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>andResourceAnytypes 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::Tabletype 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_callbackin the C API.
#7476 -
Support for the
wasi_unstablemodule ("wasi preview0" canonically) has been
added to the-Spreview2support 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
worldsupported bywasmtime servehas been slimmed down to
exactly whatwasi:http/proxyspecifies by default. Support for other WASI
APIs can be included with the-S commoncommand-line flag.
#7597 -
The
wasmtime --versionCLI 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_APPENDfiles 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