github bytecodealliance/wasmtime v22.0.0

latest releases: dev, v25.0.3, v26.0.1...
4 months ago

22.0.0

Released 2024-06-20.

Added

  • The CMake-based build of Wasmtime's C API now adds a
    WASMTIME_FASTEST_RUNTIME option which activates the "fastest-runtime"
    compilation profile which enables LTO.
    #8554

  • Cranelift supports more instructions in the RISC-V Zfa and ZiCond extensions.
    #8582
    #8695

  • Support for fused-multiply-and-add on RISC-V has been improved.
    #8596
    #8588

  • Release binaries for {aarch64,x86_64}-android have been added. Note that
    Android is still a Tier 3 target.
    #8601

  • Wasmtime now supports supertypes and finality in the type hierarchy for wasm
    gc.
    #8595

  • Lazy initialization of tables can now be tuned with a CLI flags and
    configuration option.
    #8531

  • Wasmtime now compiles for x86_64 OpenBSD. Note that this is a Tier 3
    target
    and continued support is always appreciated.
    #8613

  • Stack slots in Cranelift can now specify custom alignment.
    #8635

  • Wasm function names are now used in compiled objects to assist with debugging
    and introspection with native tools.
    #8627

  • Wasmtime's release artifacts now includes wasmtime-platform.h for use with
    no_std targets.
    #8644

  • Release binaries for x86_64 Alpine Linux have been added.
    #8668

  • A new Component::define_unknown_imports_as_traps function has been added to
    stub out functions in a component linker.
    #8672

Changed

  • Wasmtime and Cranelift's now require Rust 1.76.0 to build.
    #8560

  • The wasi_config_preopen_dir function no longer always returns true in the
    C API. Additionally wasi_config_set_env and wasi_config_set_argv may now
    return an error.
    #8572

  • Cranelift now updates registers of backend instructions in-place, simplifying
    register allocation and assignment.
    #8566
    #8581
    #8592
    #8604
    #8605

  • Wasmtime now attempts to batch memory decommits into one tight loop.
    #8581
    #8590

  • Bindings generated with bindgen! now have generated GetHost traits and
    add_to_linker_get_host functions which enable a more general means by which
    to acquire host implementations from a store's T.
    #8448

  • The wasmtime serve subcommand will now dynamically determine whether to use
    the pooling allocator by default based on the system's available virtual
    memory.
    #8610

  • Implementations of Host traits in the wasmtime-wasi crate are now for
    WasiImpl<T> instead of blanket impls for T.
    #8609
    #8766

  • The concepts of "virtual sp offset" and "nominal sp" have been removed from all
    Cranelift backends.
    #8631
    #8643

  • The maximum size of linear memory in the pooling allocator is now specified in
    bytes instead of pages.
    #8628

  • Wasmtime no longer has two different host ABIs for host functions and instead
    only has one. The "array" calling convention is now unconditionally used
    instead of having a split between the "native" calling convention and the
    "array" calling convention. This means that Func::new is now available even
    when the cranelift feature is disabled.
    #8629
    #8646

  • Wasmtime's C API bindings for CMake have been refactored and now supports
    specifying Cargo features directly. Functions that are configured out are now
    also gated in header files.
    #8642

  • Wasmtime's C API can now be built without Cranelift or Winch.
    #8661

  • Wasmtime's release binaries have Winch compiled in by default now.
    #8660

  • The output of wasmtime explore now shows function names in addition to
    indices.
    #8639

  • Support for the Wasmtime 13-and-prior CLI has been removed.
    #8597

  • Wiggle-based borrow checking has been removed in favor of modeling host usage
    of guest memory with Rust-level borrows.
    #8702

  • Wasmtime's bindgen! macro will now generate the same hierarchy of
    traits/types/modules even when the with module is used via new pub use
    statements.
    #8721

  • The WasiCtxBuilder::socket_addr_check function now takes an async closure.
    #8715

  • The Func::wrapN_async functions and friends have all been consolidated into
    a single function with a slightly different signature of taking a tuple of
    arguments rather than "splatted" arguments.
    #8732

Fixed

  • Trampoline lookup for wasm gc functions that may use subtyping on the host to
    match a guest's desired type now no longer panics.
    #8579

  • The total size of arguments, environment variables, and preopens is now
    allowed to exceed 64k when using the wasip1 component adapter.
    #8594

  • Performing a zero-length read on file streams is now fixed in WASI.
    #8611

  • Tail calls are now turned by default after a mistake was discovered in the
    previous releases's intent to enable them by default.
    #8682

  • Winch support for f64 comparison instructions has been fixed.
    #8685

  • The SO_REUSEADDR option is reenabled for Unix platforms with wasmtime serve.
    #8738

Don't miss a new wasmtime release

NewReleases is sending notifications on new releases.