Skip to content

Releases: bytecodealliance/wasmtime

v17.0.1: Release Wasmtime 17.0.1 (#7890)

07 Feb 23:28
601e229
Compare
Choose a tag to compare

17.0.1

Fixed

  • Fix an egraph elaboration fuzzbug that was allowing values with dependencies
    that shouldn't be duplicated to be chosen in a context that would make them
    invalid.
    #7859
    #7879
  • Fix an egraph rule bug that was allowing unconstrained recursion through the
    DFG to run away on large functions.
    #7882

v17.0.0: Release Wasmtime 17.0.0 (#7800)

25 Jan 20:31
ab5a448
Compare
Choose a tag to compare

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> and ResourceAny 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)

20 Dec 18:38
6613acd
Compare
Choose a tag to compare

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 by wasmtime serve has been slimmed down to
    exactly what wasi: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)

01 Dec 19:02
d2d52de
Compare
Choose a tag to compare

15.0.1

Released 2023-12-01.

Fixed

  • The wasi:random/insecure{,_seed} interfaces are now available through the
    CLI.
    #7614

  • A stray debugging println! was removed.
    #7618

v15.0.0: Release Wasmtime 15.0.0 (#7557)

20 Nov 15:58
6f0da84
Compare
Choose a tag to compare

15.0.0

Released 2023-11-20.

Added

  • Multiple versions of interfaces are now supported in bindgen!.
    #7172

  • UDP has been implemented in wasi:sockets.
    #7148
    #7243

  • 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!'s trappable_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 methods set_fuel and reset_fuel. Previous methods have been removed.
    #7240
    #7298

  • The forward method of WASI streams has been removed.
    #7234

  • The WebAssembly threads, multi-memory, and relaxed-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 two subscribe functions and a duration
    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)

01 Nov 18:52
5fc1252
Compare
Choose a tag to compare

14.0.4

Released 2023-11-01

Fixed

  • Using the --dir argument combined with a ::-remapped path no longer prints
    a warning about compatibility with the old CLI and works with remapping.
    #7416

  • Consecutive file writes in preview2 have been fixed.
    #7394

v14.0.3: Release Wasmtime 14.0.3 (#7399)

30 Oct 16:04
fd1e948
Compare
Choose a tag to compare

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
    new WASMTIME_NEW_CLI environment variable if necessary.
    #7385

  • The serve subcommand of the wasmtime CLI is now enabled by default for the
    wasmtime executable.
    #7392

v14.0.2: Release Wasmtime 14.0.2 (#7367)

26 Oct 15:53
2ade3ad
Compare
Choose a tag to compare

14.0.2

Released 2023-10-26

Fixed

  • Make the wasmtime::unix module accessible on macOS again.
    #7360

  • Inter-crate dependencies between cranelift-* crates now disable the
    default feature meaning that it's possible for embedders to depend on
    cranelift-codegen as well without the default feature.
    #7369

v13.0.1: Release Wasmtime 13.0.1 (#7375)

26 Oct 14:53
fddcc98
Compare
Choose a tag to compare

13.0.1

Released 2023-10-26

Fixed

  • Make the wasmtime::unix module accessible on macOS again.
    #7360

v14.0.1: Release Wasmtime 14.0.1 (#7334)

23 Oct 18:38
402d3da
Compare
Choose a tag to compare

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 as rustc_codegen_cranelift.
    #7333