Skip to content

Releases: bytecodealliance/wasmtime

dev: Handle all `decommit`s/`madvise(DONTNEED)`s homogenously (#8587)

28 Sep 20:31
aa2beae
Compare
Choose a tag to compare
* 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)

07 May 19:22
20e5070
Compare
Choose a tag to compare

20.0.2

Released 2024-05-07.

Added

  • Improve error in CMake for when Cargo is not found.
    #8497

  • Use --release in CMake with MinSizeRel and RelWithDebInfo.
    #8549

  • Add a WASMTIME_FASTEST_RUNTIME configuration option for CMake which enables
    LTO and other related optimization options.
    #8554

v20.0.1: Release Wasmtime 20.0.1 (#8538)

03 May 16:59
d1feb03
Compare
Choose a tag to compare

20.0.1

Released 2024-05-03.

Added

  • Make the c-api CMakeLists.txt easier to import.
    #8496

v20.0.0: Release Wasmtime 20.0.0 (#8420)

22 Apr 21:04
9e1084f
Compare
Choose a tag to compare

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 in bindgen! 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 a Module or a Component.
    #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 the wasm_* 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 with call_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 named threads.
    #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 of wasi-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)

11 Apr 19:43
040ec92
Compare
Choose a tag to compare

19.0.2

Released 2024-04-11.

  • Fix a panic when compiling invalid components.
    #8322

  • Fix bindgen! with trappable_error_type using unversioned/versioned
    packages.
    #8305

  • cranelift: Include clobbers and outgoing args in stack limit.
    #8334

v18.0.4: Release Wasmtime 18.0.4 (#8328)

11 Apr 19:42
f54c2aa
Compare
Choose a tag to compare

18.0.4

Released 2024-04-11

Fixed

  • Fix bindgen! with trappable_error_type using unversioned/versioned
    packages.
    #8305

  • cranelift: Include clobbers and outgoing args in stack limit.
    #8334

  • Fix a panic when compiling invalid components.
    #8322

v17.0.3: Release Wasmtime 17.0.3 (#8337)

11 Apr 19:54
7be3efc
Compare
Choose a tag to compare

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)

02 Apr 19:11
26104f0
Compare
Choose a tag to compare

19.0.1

Released 2024-04-02.

  • Fix a panic using tables with the wrong type.
    #8284

v19.0.0: Release Wasmtime 19.0.0 (#8186)

20 Mar 15:15
6e0abd7
Compare
Choose a tag to compare

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 of wasi-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 with SO_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 new gc 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 of wasi_config_preopen_socket via the c api, as
    it will be deprecated in 20.0.0.
    #8053

Fixed

  • WIT interface names that are Rust keywords now correctly generate bindings.
    #7790

  • PKRU state is now restored across await points.
    #7789

  • Wasmtime now correctly supports global.get in all constant expressions
    within a module.
    #7996

v18.0.3: Release Wasmtime 18.0.3 (#8103)

12 Mar 22:57
ff528a2
Compare
Choose a tag to compare

18.0.3

Released 2024-03-12

Fixed

  • Fix inferring native flags when a compilation target is specified.
    #7991