Releases: bytecodealliance/wasmtime
dev: Handle all `decommit`s/`madvise(DONTNEED)`s homogenously (#8587)
* Don't differentiate between decommitting table vs stack pages All implementations are the same either way, and by treating them differently, it makes it difficult to prototype integration with batching syscalls that need to treat them homogenously. Co-Authored-By: Jamey Sharp <jsharp@fastly.com> * Remove the `madvise_dontneed` function from the system virtual memory interface This was already implemented by the existing `decommit_pages` function, we just need to determine what the behavior is for the left over mapping. Specifically, whether it is zeroed or restored to the original mapping (e.g. a CoW image). This allows us to handle `decommit_pages` and what previously were calls to `madvise_dontneed` homogenously, which enables us to prototype new system calls that batch decommits together and therefore must treat them all the same. Co-Authored-By: Jamey Sharp <jsharp@fastly.com> --------- Co-authored-by: Jamey Sharp <jsharp@fastly.com>
v20.0.2: Release Wasmtime 20.0.2 (#8574)
v20.0.1: Release Wasmtime 20.0.1 (#8538)
v20.0.0: Release Wasmtime 20.0.0 (#8420)
20.0.0
Released 2024-04-22.
Added
-
Support for shared WebAssembly memories has been added to the C API.
#7940 -
A
Component::component_type
method has been added to reflect on the imports
and exports of a component.
#8078 -
The
with
key inbindgen!
now supports remapping entire packages and
namespaces.
#8083 -
Winch now supports the component model by using Cranelift to generate
trampolines.
#8082
#8109 -
The WASI-NN backend now supports ONNX.
#7691 -
The
wasmtime
CLI now has an-S inherit-env
flag for inheriting the entire
process environment.
#8168 -
Winch now supports the WebAssembly memory64 proposal.
#8194 -
Embedders can now opt-in to allowing wasmtime-wasi to block the current thread
with file operations, for example.
#8190 -
A
wasmtime::CodeBuilder
type has been added to refine the configuration of
compiling aModule
or aComponent
.
#8181 -
The
wasmtime serve
subcommand now enables configuring preopened directories
and environment variables.
#8279
Changed
-
Support for WebAssembly GC is in the process of being implemented which has
required refactoring and reimplementing the existing gc support for
externref
. Many APIs in this area has changed, see linked PRs for more
details. Note that thewasm_*
parts of the C API no longer support
externref
.
#8011
#8196 -
The
wasmtime::component::Val
type no longer stores type information and
instead must be interpreted in the context of a type.
#8062 -
The arguments required for
ResourceAny::try_from_resource
have been
simplified by refactoring the internal representation.
#8061 -
The arguments required for
wasmtime::component::Linker::func_new
have been
simplified by refactoring the internal representation.
#8070 -
The pooling allocator is now enabled by default with
wasmtime serve
.
#8073 -
The error message for missing imports in has been improved with components.
#7645 -
Wasmtime's MSRV is now 1.75.0.
#8205 -
Wasmtime's translation of table-related instructions has improved codegen in
some common cases, especially withcall_indirect
.
#8063
#8125
#8124
#8134
#8137
#8162
#8159
#8172
#8171
#8139
#8206 -
Book-based documentation has been reordered and refactored.
#8130 -
The
-S common
flag is renamed to-S cli
, to better reflect that it provides
the wasi-cli APIs.-S common
is still accepted for now, and will be deprecated
in the future.
#8166 -
The tail-call calling convention now supports callee-saved registers to
improve performance and allow enabling this WebAssembly proposal by default in
the future.
#8246 -
The
wasmtime-wasi
crate has been refactored to restructure some items and
documentation has been added for most items.
#8228 -
Support for the WebAssembly
threads
proposal is now gated by an
on-by-default Cargo feature namedthreads
.
#8260 -
Borrow-checking in
wiggle
has been optimized to not be as fine-grained any
more. This is a breaking change if users are relying on the ability to safely
mutably borrow disjoint regions of memory.
#8277
Fixed
-
Connection timeouts with
wasi-http
have been fixed.
#8085 -
Generating bindings with
bindgen!
now works correctly when some WIT types
are not used.
#8065 -
Errors in
wasi-http
are no longer accidentally returned as traps.
#8272 -
C API bindings now depend on
wasmtime-wasi
instead ofwasi-common
, and the
wasi_config_preopen_socket
function is no longer available as a result.
#8066
v19.0.2: Release Wasmtime 19.0.2 (#8329)
v18.0.4: Release Wasmtime 18.0.4 (#8328)
v17.0.3: Release Wasmtime 17.0.3 (#8337)
17.0.3
Released 2024-04-11
Fixed
- cranelift: Include clobbers and outgoing args in stack limit.
#8334
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-wasi
in 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::Linker
type 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-nn
crate now has a backend based on WinML.
#7807 -
The
wasmtime
CLI now has flags for configuring limits of the pooling
allocator.
#8027
Changed
-
The
wasmtime serve
command 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
&Engine
argument to be
specified in preparation for an implementation of wasm GC.
#7892 -
The
host
header 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_wasi
crate
instead of a submodule.
#7933 -
Components now reserve index 0 for handle tables to match the component model
specification.
#7661 -
Support for
externref
has been moved behind a newgc
Cargo feature. This
will also gate support for wasm gc in the future.
#7975 -
Require the
WASMTIME_WASI_CONFIG_PREOPEN_SOCKET_ALLOW
environment variable
to bet set to allow the use ofwasi_config_preopen_socket
via 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