Update Rust crate wasi-common to v37 #105

Open
pv wants to merge 1 commit from renovate/wasi-common-37.x into master
Owner

This PR contains the following updates:

Package Type Update Change
wasi-common dependencies major 22.0.0 -> 37.0.0

Release Notes

bytecodealliance/wasmtime (wasi-common)

v37.0.0

Compare Source

37.0.0

Released 2025-09-20.

Added
  • Wasmtime now fully implements the WebAssembly exception-handling proposal.
    Support is still disabled by default but is ready for testing. The proposal
    will be enabled by default in a future release of Wasmtime.
    #​11326

  • An initial implementation of WASIp3 is available for the 0.3.0-rc-2025-08-15
    tag made for the WASIp3 release. Note that this is not production ready yet
    but is an excellent time to start kicking the tires in preparation for an
    upcoming officialy WASIp3 0.3.0 release. Users of the CLI can opt-in with
    -Sp3 -Wcomponent-model-async.
    #​11406
    #​11423
    #​11443

  • Wasmtime has initial support for the Linux PAGEMAP_SCAN ioctl which can
    greatly improve instantiation throughput in scenarios with a high number of
    instantiations and short instance lifetime. This support is disabled by
    default but will likely be enabled by default in a future release.
    #​11372
    #​11433

  • GC support can now be configured in Config and not only through crate
    features through Config::gc_support.
    #​11463

  • Wasmtime now supports reading metrics of the pooling allocator at runtime.
    #​11490

  • The ManuallyRooted type is now replaced with OwnedRooted which is intended
    to make management of GC object lifetimes on the host easier.
    #​11514

  • Wasmtime's documentation of the C++ embedding API and examples has been
    expanded.
    #​11569

  • Wasmtime's support for the stack-switching WebAssembly proposal continues to
    progress on x86_64 Linux.
    #​11003

Changed
  • The preview0 and preview1 modules and features in the wasmtime-wasi
    crate are now called p0 and p1.
    #​11380

  • Release artifacts for the C API are now unconditionally built with unwind
    tables.
    #​11383

  • Wasmtime now requires Rust 1.87.0 or later to build.
    #​11396

  • The component-model-async gated AbortHandle is now named JoinHandle.
    #​11414

  • Wasmtime's internal implementation details are now async in many more
    locations to help ensure the implementation is more sound.
    #​11411
    #​11416
    #​11442
    #​11444
    #​11457
    #​11460
    #​11461
    #​11468
    #​11470
    #​11481
    #​11496

  • Component-model-async primitives such as streams, tasks, etc, now use the same
    table as resources in a component. This means that guest-visible allocated
    indices are updated slightly.
    #​11374

  • Wasmtime's precompiled binaries available from CI now include the
    component-model-async feature.
    #​11429

  • C API release artifacts are now built with LTO so they have a smaller size.
    #​11483

  • Code can no longer be loaded on x86_64-unknown-none by default without
    opting-in to a contract that either the host is compiled with SSE2 support or
    wasm is compiled with enough features that libcalls aren't used.
    #​11553

  • Host support for component model async futures/streams has been updated to a
    new API.
    #​11515

Fixed
  • GC of dead DWARF has been improved.
    #​11402

  • Wasm-gc branching instructions now correctly check for fuel.
    #​11426

  • The array.new_default instruction now checks for fuel/epochs in its inner
    loop.
    #​11428

  • The "min" C API artifacts now have correct headers.
    #​11479

  • GC OOM during const eval no longer panics.
    #​11557

  • Wasmtime now properly respects a disabled std feature even on targets which
    have std available.
    #​11568

v36.0.2

Compare Source

36.0.2

Released 2025-08-26.

Fixed
  • Wasmtime will no longer panic in the pooling allocator when in near-OOM
    conditions related to resetting the linear memory of a slot.
    #​11510

v36.0.1

Compare Source

36.0.1

Released 2025-08-21.

Added
  • Accessors for internal WASI-related contexts are added to
    wasmtime_wasi::WasiCtx to account for refactorings that happened in this
    release.
    #​11473
Changed
  • Release artifacts for the C API are now smaller than the previous release to
    assist with redistribution as-is.
    #​11483

v36.0.0

Compare Source

36.0.0

Released 2025-08-20.

Added
Changed
  • Users who implemented WasiHttpView::is_forbidden_header from
    wasmtime-wasi-http now need to include DEFAULT_FORBIDDEN_HEADERS, e.g.
    DEFAULT_FORBIDDEN_HEADERS.contains(name) || name.as_str() == "custom-forbidden-header"
    #​11292

  • Cranelift's incremental cache has received some optimizations.
    #​11186

  • Wasmtime's internal implementations of WebAssembly primitives has been
    refactored to be modeled with safer internal primitives.
    #​11211
    #​11212
    #​11216
    #​11229
    #​11215
    #​11254
    #​11255
    #​11319
    #​11320

  • Detection of native hardware features has been refactored on s390x.
    #​11220

  • Further progress has been made towards an implementation of the WebAssembly
    exceptions proposal, although it is not yet complete.
    #​11230
    #​11321

  • Cranelift's assembler for x64 now supports EVEX encoding.
    #​11153
    #​11270
    #​11303

  • The default implementation of send_request in the wasmtime-wasi-http crate
    is now behind an on-by-default feature gate.
    #​11323

  • Configuration of the bindgen! macro has been redesigned to more consistently
    configure per-function options such as whether or not it's async.
    #​11328

  • Initial support fo mutatis has been added to Wasmtime's fuzzers.
    #​11290

  • The debug-builtins crate feature of wasmtime no compiles on no_std
    targets.
    #​11304

Fixed
  • Deserializing external modules no long unnecessarily requires the allocation
    to be aligned.
    #​11306

  • A CMake linker error and warning when using the C API on macOS has been fixed.
    #​11293
    #​11315

  • The C API declaration of wasmtime_component_linker_instance_add_func has
    been fixed.
    #​11327

  • The calculation of reachable DWARF has been fixed.
    #​11338

v35.0.0

Compare Source

35.0.0

Released 2025-07-22.

Added
  • A new InputFile type has been added for specifying stdin as a file in WASI.
    #​10968

  • Conditional branches to unconditional traps are now translated to conditional
    traps during legalization.
    #​10988

  • The TE HTTP header can now be specified by guests.
    #​11002

  • Winch on AArch64 should now pass all WebAssembly MVP tests. Note that it is
    still not yet Tier 1 at this time, however.
    #​10829
    #​11013
    #​11031
    #​11051

  • The x64 backend now has lowering rules for {add,sub,or,and} mem, imm
    #​11043

  • Initial support for WASIp2 in the C API has started to land.
    #​11055
    #​11172

  • Initial support for GC support in the component model has started to land
    (note that it is not finished yet).
    #​10967
    #​11020

  • The wasmtime-wasi-nn crate now has a feature to use a custom ONNX runtime.
    #​11060

  • Cranelift now optimizes division-by-constant operations to no longer use
    division.
    #​11129

  • A native-tls backend has been added for the wasi-tls implementation.
    #​11064

Changed
  • Many more instructions for the x64 backend in Cranelift were migrated to the
    new assembler.
    #​10927
    #​10928
    #​10918
    #​10946
    #​10954
    #​10958
    #​10971
    #​10942
    #​10975
    #​11017
    #​10898
    #​10836
    ... (and more)

  • Wasmtime internally uses Pin for VM data structures to make the internal
    implementations more sound to use. This has no effect on the public API of
    Wasmtime.
    #​10934
    #​10937
    #​10943
    #​10959
    #​11042

  • Fused adapters between components now transfer the enum component model type
    more efficiently.
    #​10939

  • Filenames of --emit-clif now match the symbol names found in *.cwasm
    artifacts and include the function name as well.
    #​10947
    #​11040

  • Wasmtime-internal crates are now all named wasmtime-internal-* to even
    further discourage their use.
    #​10963

  • Codegen of conditional traps with float compares has been improved.
    #​10966

  • More patterns are now optimized in ISLE mid-end rules.
    #​10978
    #​10979
    #​11173

  • Winch's support for constants/scratch registers has been improved internally.
    #​10986
    #​10998

  • The C API artifacts on Windows are now produced with Clang instead of
    cl.exe.
    #​10890

  • WebAssembly operand types are now taken into account during translation to
    optimize codegen better in the face of subtyping.
    #​11030

  • The behavior of blocking-write-and-flush has been updated during flushing
    when closed is found.
    #​11018

  • WASI WITs have been updated to 0.2.6.
    #​11049

  • OpenVINO has been updated to v2025.1.
    #​11054

  • The size of the wasmtime.addrmap section in *.cwasm artifacts has been
    shrunk slightly.
    #​11126

  • Authorities in wasmtime-wasi-http can now contain the : character.
    #​11145

  • Wasmtime now requires Rust 1.86 to compile.
    #​11142

  • Wasmtime's DRC collector has been optimized and has a new more efficient means
    of managing the set of over-approximated roots on the stack.
    #​11144
    #​11148
    #​11167
    #​11168
    #​11169
    #​11175

  • The ComponentType trait in Wasmtime now requires the Send and Sync
    bounds for all implementors.
    #​11160

  • The V128 type is now usable on platforms other than aarch64 and x86_64.
    #​11165

  • Wasmtime's policy on unsafe code and guidelines has been added.
    #​11177

  • The std crate will no longer implicitly be used on cfg(unix) and
    cfg(windows) targets when the std Cargo feature is disabled. This means
    that these platforms now require std to be enabled to use the
    platform-specific implementation of linear memory, for example.
    #​11152

Fixed
  • A panic when optimizing icmp with vectors has been fixed.
    #​10948

  • A panic when lowering scalar_to_vector with i16x8 types has been fixed.
    #​10949

  • The vector state register is now considered clobbered by calls on riscv64 to
    ensure it's updated across calls.
    #​11048

  • An instance of gdb crashing on DWARF emitted by Wasmtime has been fixed.
    #​11077

  • Fix a panic in the host caused by preview1 guests using fd_renumber.
    CVE-2025-53901.

  • Fix a panic in the preview1 adapter caused by guests using fd_renumber.
    #​11277

v34.0.2

Compare Source

34.0.2

Released 2025-07-18.

Fixed
  • Fix a panic in the host caused by preview1 guests using fd_renumber.
    CVE-2025-53901.

  • Fix a panic in the preview1 adapter caused by guests using fd_renumber.
    #​11277

34.0.1

Released 2025-06-24.

Fixed
  • Fix a panic with host-defined tables/globals and concrete reference
    types.
    #​11103

v34.0.1

Compare Source

34.0.1

Released 2025-06-24.

Fixed
  • Fix a panic with host-defined tables/globals and concrete reference
    types.
    #​11103

v34.0.0

Compare Source

34.0.0

Released 2025-06-20.

Added
  • Support for SIMD in the Pulley interpreter can now be disabled at compile-time
    to shrink the size of the final binary.
    #​10727

  • The C API now has wasmtime_trap_new_code to create a wasm_trap_t from
    its code.
    #​10765

  • Winch's support for x86_64 is now classified with tier 1 support in Wasmtime.
    #​10755

  • Winch's support for aarch64 now implements stack checks to pass many more spec
    tests.
    #​10763

  • Cranelift's s390x backend now has full support for the f128 type.
    #​10774

  • Wasmtime's C API for the component model has initial support for calling
    functions.
    #​10697
    #​10841
    #​10858
    #​10864
    #​10877

  • The wasmtime wast command now has a --generate-dwarf flag to show
    filename/line number information for backtraces.
    #​10780

Changed
  • The shape of bindgen!-generated add_to_linker functions has changed with
    the removal of GetHost and replacement of a HasData trait. For more
    information see the associated PR.
    #​10770

  • Wasmtime's Store<T> now requires that T: 'static. This is done in
    preparation for merging WASIp3 work to the main repository with some more
    information on the associated PR.
    #​10760

  • The wasmtime::component::Instance::instance_pre method is now public.
    #​10761

  • Wasmtime and Cranelift's minimnum supported version of Rust (MSRV) is now
    1.85.0.
    #​10785

  • Cranelift's debugtrap on aarch64 now generates brk #&#8203;0xf000 for debuggers
    to recognize it.
    #​10813

  • The wasi-http implementation no longer generates a trap if the handle to
    receive the response on the host is dropped early.
    #​10833

  • The wasmtime serve command will now send some boilerplate descriptive HTML
    on a 500 server error instead of nothing.
    #​10851

  • A significant amount of work has gone into the new assembler for the x64
    backend. Too many PRs to list here but progress continues apace at defining
    all machine instructions in a standalone crate.

  • Cranelift will now reject unimplemented big-endian loads/stores on backends
    that do not implement this functionality.
    #​10863

  • The wasmtime explore generated HTML handles large modules better now.
    #​10892

  • Wasmtime's internal representation of wasmtime::Func has changed and a
    previous optimization of Func::call has been lost. If affected it'd
    recommended to use Func::call_unchecked instead or to open an issue.
    #​10897

v33.0.2

Compare Source

33.0.2

Released 2025-07-18.

Fixed
  • Fix a panic in the host caused by preview1 guests using fd_renumber.
    CVE-2025-53901.

  • Fix a panic in the preview1 adapter caused by guests using fd_renumber.
    #​11277

33.0.1

Released 2025-06-24.

Fixed
  • Fix a panic with host-defined tables/globals and concrete reference
    types.
    #​11103

v33.0.1

Compare Source

33.0.1

Released 2025-06-24.

Fixed
  • Fix a panic with host-defined tables/globals and concrete reference
    types.
    #​11103

v33.0.0

Compare Source

33.0.0

Released 2025-05-20.

Added
  • Cranelift now has initial support for try_call and try_call_indirect
    instructions, to be used in the future for the WebAssembly exception-handling
    proposal. Wasmtime does not yet implement this proposal yet.
    #​10510
    #​10557
    #​10593

  • Cranelift can now optimize some simple possibly-side-effectful instructions,
    such as division.
    #​10524

  • Wasmtime now supports --invoke for components using the WAVE format.
    #​10054

  • Initial support for the Component Model has landed in Wasmtime's C API. Note
    that the API is not yet feature-complete, however.
    #​10566
    #​10598
    #​10651
    #​10675

  • Wasmtime's C++ API is now available from this repository and the
    bytecodealliance/wasmtime-cpp repository has been archived. Additionally the
    monolithic wasmtime.hh header file has been split into separate header
    files.
    #​10582
    #​10600

  • Wasmtime's cookbook-style documentation has been expanded.
    #​10630

  • Wasmtime's now supports custom yield behavior when using epoch interrupts.
    #​10671

Changed
  • Wasmtime's bindgen now type-checks export functions in the constructor of
    the generated {Worldname}Pre or {Worldname} structs, rather than at the
    call of the export function.
    #​10610

  • Wasmtime's component::Component and component::Instance now have consistient
    get_export and get_export_index methods, which return (ComponentItem, ComponentExportIndex) and ComponentExportIndex, respectively.
    #​10597

  • On failure, wasmtime serve gives an internal server error response, rather
    than closing the connection.
    #​10645

  • Cranelift's single-pass allocator has been disabled due to being unable to
    support internal refactorings in preparation for the WebAssembly exceptions
    proposal. Re-enabling this allocator is tracked at
    regalloc2#217 for
    those interested.
    #​10554

  • Wasmtime's {Array,Extern,Struct}Ref functions will now automatically trigger
    a GC.
    #​10560

  • Wasmtime's GC heaps now use the same translation techniques as linear memories
    meaning they have far fewer bounds-checks than before.
    #​10503

  • Wasmtime's implementation of WASIp2 has moved to wasmtime_wasi::p2 from the
    root of the crate.
    #​10073

  • Wasmtime will no longer emit calls to Cranelift-defined "libcalls" and instead
    everything goes through Wasmtime's libcall mechanism instead, paving the way
    for a future change for more efficient stack limit checking in wasm. This can
    also improve deserialize-from-disk times and improve page cache usage for
    modules that use libcalls as relocations are no longer necessary.
    #​10657

  • Configuration of caching can now be done through an API instead of exclusively
    through a configuration file. Additionally cache-related APIs in Config have
    changed.
    #​10665

  • Resources in the Component Model are now stored in a single table per-instance
    instead of per-type tables. Guests will see a different pattern of index
    allocation but this is not expected to cause any issues at runtime.
    #​10701

Fixed
  • Some math intrinsics have been fixed when compiled by Rust 1.87+.
    #​10534

  • Component model libcalls correctly handle platform-specific argument extension
    in ABIs.
    #​10540

  • An off-by-one issue with DWARF debuginfo has been fixed.
    #​10570

  • The Config::target method is no longer gated by a #[cfg] for an enabled
    compiler, it can be used when only the runtime feature is available.
    #​10618

  • An issue with "simulated" DWARF has been fixed.
    #​10681

  • C/C++ headers are now tested that they can be included in isolation, and a
    number of issues have been fixed.
    #​10694

v32.0.1

Compare Source

32.0.1

Released 2025-06-24.

Fixed
  • Fix a panic with host-defined tables/globals and concrete reference
    types.
    #​11103

v32.0.0

Compare Source

32.0.0

Released 2025-04-21.

Added
  • {Module,Component}::deserialize_raw can now be used to deserialize an
    in-memory module while relying on external management of the memory.
    #​10321

  • An initial implementation of wasi-tls has been added.
    #​10249

  • The wasmtime CLI now supports hexadecimal integer CLI arguments.
    #​10360

  • Cranelift now supports a log2_min_function_alignment flag.
    #​10391

  • A new wasmtime objdump subcommand has been added to help explore and debug
    *.cwasm files.
    #​10405

  • Support for the pooling allocator has been added to the C API.
    #​10484

  • Support for the guest profiler with the component model has been added.
    #​10507

Changed
  • Cranelift MemFlags now has a can_move flag which restricts whether a load
    or store can be moved.
    #​10340

  • The .text size of Pulley *.cwasm files should be smaller with less
    padding.
    #​10285

  • The wasmtime serve subcommand now implements a graceful shutdown on ctrl-c.
    #​10394

  • Stack maps used for GC are now stored in a serialized binary format that is
    faster to deserialize.
    #​10404

  • The aegraph implementation in Cranelift has been simplified to remove the
    union-find and canonical eclass IDs.
    #​10471

  • The store_list and load_list helpers have been specialized in components
    for f32 and f64.
    #​9892

  • Cranelift now removes block params on critical-edge blocks.
    #​10485

  • The Linker::define_unknown_imports_as_default_values API now supports
    defining defaults for more kinds of items.
    #​10500

  • Wasmtime now requires Rust 1.84.0 to compile.
    #​10520

Fixed
  • Winch compilation of extadd instructions has been fixed.
    #​10337

  • Fix an issue with DRC collector's barriers.
    #​10371

  • Loads on (ref null none) that can trap are now performed.
    #​10372

  • Fix reference count management in AnyRef::from_raw.
    #​10374

  • An issue with multi-value returns in Winch has been fixed.
    #​10370

  • A panic at compile-time from an overflowing shift has been fixed when
    targeting aarch64.
    #​10382

  • The wasmtime serve command no longer panics when handle returns before
    calling set.
    #​10387

  • Winch compilation of replace_lane instructions with floats has been fixed.
    #​10393

  • An invalid integer-shift optimization on vector types has been removed.
    #​10413

  • The DWARF loclist to exprloc optimization has been fixed.
    #​10400

  • Objects in the DRC collector are now transitively dec-ref's when collected.
    #​10401

  • A bug with GC rec gropus and registration in an Engine has been fixed.
    #​10435

  • A bug related to GC arrays of GC refs misreported their count of GC edges has
    been fixed.
    #​10453

  • A bug related to appropriately adding stack maps for all GC variables has been
    fixed.
    #​10456
    #​10468

  • A bug with array.fill has been fixed.
    #​10470

  • GC structs are no longer reordered to optimize their size to fix subtyping.
    #​10463

  • Panics related to exceptions and components being mixed has been fixed.
    #​10473

  • Winch stack parameter alignment has been fixed.
    #​10513

  • Rendering inline function frames in a trap backtrace has been fixed.
    #​10523

v31.0.0

Compare Source

31.0.0

Released 2025-03-20.

Added
Changed
  • Pulley's implementation of loads/stores to linear memory has changed to
    better support optimizations and reduction of interpreter opcodes in the
    final binary.
    #​10154

  • Cranelift's verifier now ensures that integers used as address types have the
    correct width.
    #​10209

  • Wasmtime and Cranelift's minimum supported version of Rust is now 1.83.0.
    #​10264

  • Wasmtime now mentions the filename when the input cannot be opened on the CLI.
    #​10292

  • All types are now generated in component::bindgen!, even if they're not
    reachable.
    #​10311

  • Tables allocated with the system allocator now use alloc_zeroed (aka
    calloc) for allocation.
    #​10313

Fixed
  • GC: the is-null-or-i31ref checks have been fixed.
    #​10221

  • GC: an incorrect assertion and canonicalized types for runtime usage has been
    fixed.
    #​10223

  • GC: subtype checks for imported globals during instantiation have been fixed.
    #​10304

  • GC: exposing references to wasm in the gc_alloc_raw libcall has been fixed.
    #​10322

  • Winch's fuel checks correctly sync fuel before the check now.
    #​10231

  • Winch's treatment of stores and other trapping ops has been fixed on AArch64.
    #​10201

  • Winch's handling of the shadow stack pointer has been fixed on AArch64.
    #​10263

  • Winch's handling of address calculations has been fixed on AArch64.
    #​10297

  • Winch's handling of multivalue return of constants has ben fixed.
    #​10315

v30.0.2

Compare Source

30.0.2

Released 2025-02-25.

Fixed
  • MinGW C API builds are now built with a newer version of GCC which seems to
    fix an issue caused by #​9929.
    #​10290
Changed
  • The cranelift-codegen crate now no longer depends on arbitrary, a
    now-unnecessary dependency.
    #​10217

v30.0.1

Compare Source

30.0.1

Released 2025-02-21.

Fixed
  • Fixes an issue building the cranelift-assembler-x64 crate on Windows
    when the Rust toolchain is on a different drive than the project using
    wasmtime. For more details, see the Zulip discussion. #​10270

v30.0.0

Compare Source

30.0.0

Released 2025-02-20.

Added
Changed
  • wasmtime-wasi split the WasiView trait into IoView and WasiView, and
    wasmtime-wasi-http re-uses IoView in WasiHttpView. Details on porting
    for embedders in PR.
    #​10016

  • wasmtime-wasi renamed some exported types and traits. Embedders which use
    Pollable, InputStream, OutputStream, Subscribe, HostInputStream,
    HostOutputStream, PollableFuture, or ClosureFuture from that crate
    will need to rename those imports to their new names, describe in PR.
    #​10036

  • Components using a 64-bit linear memory should never have worked before, but
    they're now rejected earlier in the validation process.
    #​9952

  • Module validation is now deterministic in the face of multiple errors.
    #​9947

  • Wasmtime's minimum supported version of Rust is now 1.82.0.
    #​9956

  • Cranelift will now deduplicate trap[n]z instructions.
    #​10004

  • The --emit-clif option to wasmtime compile now emits post-optimization
    CLIF.
    #​10011

  • The signals-based-traps Cargo feature has been removed in favor of
    auto-detection of available features based on the #[cfg] directives
    available for the target platform.
    #​9941

  • The async_stack_zeroing configuration knob now covers all stack allocations,
    not just those from the pooling allocator.
    #​10027

  • Wasmtime should work-by-default on more platforms, even those where Cranelift
    has no support for the architecture. This is done by ensuring some
    architecture and platform-specific bits are removed on unknown platforms (and
    Pulley is used instead).
    #​10107

  • Wasmtime now compiles on platforms missing 64-bit atomics.
    #​10134

Fixed
  • Fixed a missing case for Ref::matches_ty should return true.
    #​9985

  • A bug with using the single_pass register allocation algorithm on x64/s390x
    has been fixed by refactoring how branches are represented.
    #​10086
    #​10087

  • A bug with argument extensions on riscv64 has been fixed.
    #​10069

  • The PartialEq implementation for RegisteredType has been fixed.
    #​10091

  • The output of component::bindgen! now works with #![no_std] crates.
    #​10105

  • Fix wasmtime wast when combined with --fuel.
    #​10121

  • The wat feature of the C API is now plumbed correctly in a few more
    locations.
    #​10124

  • Spurious wake-ups in blocking_* methods of InputStream and OutputStream
    have been fixed.
    #​10113

v29.0.1

Compare Source

29.0.1

Released 2025-01-21.

Fixed
  • Fix a missing increment in WASIp1-to-WASIp2 adapter which affected WASI
    configurations that have multiple preopened directories.
    #​10064

v29.0.0

Compare Source

29.0.0

Released 2025-01-20.

Added
  • Winch now supports epoch-based interruption.
    #​9737

  • Pulley, Wasmtime's WebAssembly interpreter, has seen quite a lot of progress
    and support fleshed out. It's still not 100% complete but should be about
    ready to start kicking the tires.
    #​9744

  • The Wasmtime CLI now supports a -Wextended-const flag to control whether the
    extended-const wasm proposal is enabled or not.
    #​9768

  • Work continues to progress on the AArch64 Winch backend, bringing it closer to
    completion.
    #​9762
    #​9767
    #​9751
    #​9784
    #​9781
    #​9792
    #​9787
    #​9798
    #​9850

  • Wasmtime now supports a "custom code publisher" which can be useful when
    Wasmtime doesn't have built-in support for a particular environment.
    #​9778

  • Configuration options have been added for wasmtime-wasi-http outgoing
    bodies.
    #​9800

  • Log prefixes can now be disabled for the wasmtime serve command.
    #​9821

  • A new WASMTIME_LOG_NO_CONTEXT environment variable was added to live
    alongside WASMTIME_LOG.
    #​9902

  • Release artifacts for aarch64-musl targets are now available.
    #​9934

Changed
  • Wasmtime libcalls now return whether a trap happened rather than raising a
    trap directly to better prepare for the Pulley interpreter and an eventual
    implementation of Wasm exception-handling.
    #​9710

  • Wasmtime will now use the Pulley interpreter by default on platforms that
    are not supported by Cranelift.
    #​9741

  • Demangling symbols in profiling and debugging has improved to handle failures
    to demangle C++ symbols.
    #​9756

  • WASI WIT files have been updated to 0.2.3.
    #​9807

  • Wasmtime's bindgen! macro in async mode no longer uses #[async_trait]
    an instead natively uses async fn in traits.
    #​9867

  • Floats are no longer canonicalized flowing into or out of components.
    #​9879

  • Instance methods are now translated to static methods in DWARF translation.
    #​9898

  • The C API now supports debug builtins for debugging guest code.
    #​9915

Fixed
  • The header file for wasmtime_instance_pre_instantiate in the C API has been
    fixed.
    #​9770

  • WebAssembly DWARF is more conservative in its GC pass during translation to
    native DWARF.
    #​9829

  • Debugging intrinsics are fixed on Linux to be exported now.
    #​9866

v28.0.1

Compare Source

28.0.1

Released 2025-01-14.

Fixed
  • Fixed deallocating async stacks when using Store::into_data.
    #​10009

v28.0.0

Compare Source

28.0.0

Released 2024-12-20.

Added
  • The ISLE DSL used for Cranelift now has a first-class bool type.
    #​9593

  • Cranelift now supports a new single-pass register allocator designed for
    compile-time performance (unlike the current default which is optimized for
    runtime-of-generated-code performance).
    #​9611

  • The wasmtime crate now natively supports the wasm-wave crate and its
    encoding of component value types.
    #​8872

  • A Module can now be created from an already-open file.
    #​9571

  • A new default-enabled crate feature, signals-based-traps, has been added to
    the wasmtime crate. When disabled then runtime signal handling is not
    required by the host. This is intended to help with future effort to port
    Wasmtime to more platforms.
    #​9614

  • Linear memories may now be backed by malloc in certain conditions when guard
    pages are disabled, for example.
    #​9614
    #​9634

  • Wasmtime's async feature no longer requires std.
    #​9689

  • The buffer and budget capacity of OutgoingBody in wasmtime-wasi-http are
    now configurable.
    #​9670

Changed
  • Wasmtime's external and internal distinction of "static" and "dynamic"
    memories has been refactored and reworded. All options are preserved but
    exported under different names with improved documentation about how they all
    interact with one another. (and everything should be easier to understand)
    #​9545

  • Each Store<T> now caches a single fiber stack in async mode to avoid
    allocating/deallocating if the store is used multiple times.
    #​9604

  • Linear memories now have a 32MiB guard region at the end instead of a 2GiB
    guard region by default.
    #​9606

  • Wasmtime will no longer validate dependencies between WebAssembly features,
    instead delegating this work to wasmparser's validator.
    #​9623

  • Cranelift's isle-in-source-tree feature has been re-worked as an environment
    variable.
    #​9633

  • Wasmtime's minimum supported Rust version is now 1.81.
    #​9692

  • Synthetic types in DWARF are now more efficiently represented.
    #​9700

  • Debug builtins on Windows are now exported correctly.
    #​9706

  • Documentation on Config now clarifies that defaults of some options may
    differ depending on the selected target or compiler depending on features
    supported.
    #​9705

  • Wasmtime's error-related types now all unconditionally implement the Error
    trait, even in #[no_std] mode.
    #​9702

Fixed
  • Field type matching for subtyping with wasm GC has been fixed.
    #​9724

  • Native unwind info generated for s390x has been fixed in the face of tail
    calls.
    #​9725

v27.0.0

Compare Source

27.0.0

Released 2024-11-20.

Added
  • Support for the Wasm GC proposal is now complete. A new "null" GC has been
    also added which does not ever collect garbage.
    #​9389
    #​9392
    #​9401
    #​9435
    #​9437
    #​9438
    #​9446
    #​9448
    #​9454
    #​9455
    #​9484

  • Unstable WIT APIs now have feature gates configured at link-time and new
    -Scli-exit-with-code / -Snetwork-error-code options are available as well.
    #​9381
    #​9276

  • Initial support for the wide-arithmetic proposal has been implemented.
    #​9403
    #​9500

  • Guests on s390x now implement the "inline probestacks" for Cranelift to more
    robustly detect stack overflows.
    #​9423

  • Missing CLI options for the pooling allocator have been filled out.
    #​9447

  • Cranelift now supports 128-bit atomics on x64.
    #​9459

  • A new Cargo feature has been added to the wasmtime crate to reexport the
    wasmparser dependency.
    #​9485

  • Support for a new PyTorch backend for wasi-nn has been added.
    #​9234

  • A new -Cnative-unwind-info flag has been added to the wasmtime CLI.
    #​9494

  • Initial support for illumos has been added.
    #​9535

  • A new Caller::get_module_export API has been added.
    #​9525

  • Basic debug logging has been added to the debug info transformatino.
    #​9526

Changed
  • The WASI WITs vendored are now updated to 0.2.2.
    #​9395

  • The wasmtime-wasi-runtime-config is now named wasmtime-wasi-config.
    #​9404

  • Documentation on the implementation status of WebAssembly proposals has been
    updated.
    #​9434

  • Wasmtime's WASI documentation has been overhauled.
    #​9471

  • The wasi_config_preopen_dir in Wasmtime's C API now takes file/directory
    permissions.
    #​9477

  • Detection of libunwind vs libgcc is now done with weak symbols.
    #​9479

  • Winch has improved detection of unsupported features in a Config.
    #​9490

  • Winch now supports fuel-based interruption.
    #​9472

  • Wasmtime's minimum supported Rust version is now 1.80.
    #​9496

  • ISLE no longer supports scheme-style booleans.
    #​9522

  • ISLE now supports block comments.
    #​9529

  • Support for shared memory in the C API has been added.
    #​9507

  • Configuration options for guard size regions have been merged into a single
    option.
    #​9528

Fixed
  • Double-registration of debug information for modules in components has been
    fixed.
    #​9470

  • A panic on AArch64 for vector constants has been fixed.
    #​9482

  • A miscompile with sdiv and INT_MIN / -1 has been fixed on aarch64.
    #​9541

v26.0.1

Compare Source

26.0.1

Released 2024-11-05.

Fixed
  • Update to cap-std 3.4.1, for #​9559, which fixes a wasi-filesystem sandbox
    escape on Windows.
    CVE-2024-51745.

v26.0.0

Compare Source

26.0.0

Released 2024-10-22.

Added
  • The "table64" extension of the memory64 proposals to WebAssembly has been
    implemented.
    #​9206

  • Initial support has been added for compiling WebAssembly modules with Pulley,
    Wasmtime's interpreter. Note that the interpreter is not feature complete yet.
    #​9240

  • Wasmtime can now execute code without relying on host-based signal handlers.
    #​9230

  • Work has continued on implementing the GC proposals in Wasmtime.
    #​9246
    #​9244
    #​9271
    #​9275
    #​9278
    #​9282
    #​9285
    #​9326
    #​9341
    #​9358

  • Support for ARM64 Windows has been finished with support for unwinding.
    Release binaries are now also available for this platform.
    #​9266
    #​9283

  • The bindgen! macro now supports multiple paths to load WIT from.
    #​9288

  • A new -W async-stack-size=N argument has been added to the CLI.
    #​9302

  • A new wasmtime completion subcommand can be used to generate a completion
    script for the Wasmtime CLI.
    #​9312

  • Components now support initialize_copy_on_write_image like core modules.
    #​9357

  • Initial support for the ISLE verifier Crocus has landed.
    #​9178

Changed
  • Wasmtime now requires Rust 1.79.0 to compile.
    #​9202

  • The future-trailers.get in wasi-http now returns none when trailers are
    absent.
    #​9208

  • The Cranelift instructions iadd_cin and isub_bin were removed. The
    isub_borrow and iadd_carry instructions were renamed to {u,s}add_carry
    and {u,s}sub_borrow.
    #​9199

  • Winch now supports multi-value results on AArch64.
    #​9218

  • Some issues related to shutdown have been fixed with WASI sockets.
    #​9225

  • Cranelift now has a Cargo feature to enable support for all native ISAs and
    not Pulley.
    #​9237

  • Cranelift support for StructArgument in the arm64, riscv64, and s390x
    backends has been removed.
    #​9258

  • The pooling allocator no longer limits instances/memories/tables by default.
    #​9257

  • Stack overflow on an async stack will now print a message that this happened.
    #​9304

  • Cranelift's cranelift-wasm crate has been removed and folded directly into
    wasmtime-cranelift.
    #​9313

  • Cranelift's TrapCode type is now represented with a single byte.
    #​9338

Fixed
  • Stack slots in Cranelift are now aligned from the start instead of the end.
    #​9279

  • The WASIp1 adapter now correctly handles allocations where the initial
    alignment consumes the entire allocation.
    #​9356

v25.0.3

Compare Source

25.0.3

Released 2024-11-05.

Fixed
  • Update to cap-std 3.4.1, for #​9559, which fixes a wasi-filesystem sandbox
    escape on Windows.
    CVE-2024-51745.

v25.0.2

Compare Source

25.0.2

Released 2024-10-09.

Fixed
  • Fix a runtime crash when combining tail-calls with host imports that capture a
    stack trace or trap.
    GHSA-q8hx-mm92-4wvg

  • Fix a race condition could lead to WebAssembly control-flow integrity and type
    safety violations.
    GHSA-7qmx-3fpx-r45m

v25.0.1

Compare Source

25.0.1

Released 2024-09-24.

Added
  • The wasmtime CLI's -Wmax-wasm-stack option now automatically configures
    the async stack size as well. A new -Wasync-stack-size option was
    additionally added to configure it too.
    #​9302

v25.0.0

Compare Source

25.0.0

Released 2024-09-20.

Added
  • The WinML backend of wasmtime-wasi-nn now supports FP16 and I64.
    #​8964

  • Pooling allocator configuration options for table elements and core instance
    size can now be changed on the CLI.
    #​9138

  • Wasmtime now supports the extended-const WebAssembly proposal.
    #​9141

  • The wasmtime crate embedding API now has ArrayRef for allocating wasm GC
    arrays.
    #​9145

  • Cranelift now has a stack_switch CLIF instruction to be used with the
    WebAssembly stack switching proposal.
    #​9078

  • There are now more constructors available on bindgen!-generated structures
    for component exports now which use instantiated components rather than
    pre-instantiated components.
    #​9177

Changed
  • The host bindgen macro now accepts a new verbose_tracing option, which will
    trace the value of list arguments. The new behavior of the tracing option
    is that it does not print list values without verbose_tracing also being
    present.
    #​9262

  • Wasmtime's support for WASI is now listed with the 0.2.1 version instead of
    0.2.0. This is expected to not cause fallout or breakage, but please open an
    issue if you see any problems.
    #​9063

  • Work continues on Winch's AArch64 backend.
    #​9114
    #​9092
    #​9171

  • Component model resource methods can now be generated as async and will do
    so by default if async is enabled for all functions.
    #​9091

  • Work has continued on Wasmtime's interpreter backend, Pulley.
    #​9089

  • The internal implementation of input-stream and output-stream for
    filesystems in wasmtime-wasi have been refactored to directly implement
    the corresponding host traits. This additionally helps cleanup the internal
    organization of host-side resources in wasmtime-wasi.
    #​9129

  • Wasmtime now uses the new "user" stack maps in Cranelift rather than the old
    regalloc-based stack maps for GC references.
    #​9082

  • Wasmtime's handling of WebAssembly features now works slightly differently
    from before to provide better error messages and fewer panics on unsupported
    WebAssembly features depending on compiler and target selection. Additionally
    the reference-types WebAssembly proposal is always on-by-default regardless of
    crate features.
    #​9158
    #​9162

  • The wasmtime CLI will now use the async version of I/O where possible to
    properly support -Wtimeout and timing out instances blocked in I/O.
    #​9184

Fixed
  • Use tracing::Instrument in generated bindings when tracing and async are
    enabled, ensuring that spans aren't present in traces from unrelated async
    tasks.
    #​9217
    #​9263

  • Completed support for the CallHook API when using the component model.
    #​9196

  • The compile time for a component model enum type with many cases should be
    much improved now.
    #​9122

  • Some minor bugfixes have been made for when Wasmtime is working with split
    DWARF in WebAssembly files.
    #​9109
    #​9132
    #​9134
    #​9139
    #​9151

  • An issue with bounds checks and dynamic checks has been fixed in Winch to
    ensure bounds checks are correctly implemented.
    #​9156

v24.0.4

Compare Source

24.0.4

Released 2025-07-18.

Fixed
  • Fix a panic in the host caused by preview1 guests using fd_renumber.
    CVE-2025-53901.

  • Fix a panic in the preview1 adapter caused by guests using fd_renumber.
    #​11277

24.0.3

Released 2025-06-24.

Fixed
  • Fix a panic with host-defined tables/globals and concrete reference
    types.
    #​11103

v24.0.3

Compare Source

24.0.3

Released 2025-06-24.

Fixed
  • Fix a panic with host-defined tables/globals and concrete reference
    types.
    #​11103

v24.0.2

Compare Source

24.0.2

Released 2024-11-05.

Fixed
  • Update to cap-std 3.4.1, for #​9559, which fixes a wasi-filesystem sandbox
    escape on Windows.
    CVE-2024-51745.

v24.0.1

Compare Source

24.0.1

Released 2024-10-09.

Fixed
  • Fix a runtime crash when combining tail-calls with host imports that capture a
    stack trace or trap.
    GHSA-q8hx-mm92-4wvg

  • Fix a race condition could lead to WebAssembly control-flow integrity and type
    safety violations.
    GHSA-7qmx-3fpx-r45m

v24.0.0

Compare Source

24.0.0

Released 2024-08-20.

Added
  • A new wasmtime_engine_clone function was added to the C API.
    #​8907

  • Wasmtime now has basic support for allocating a StructRef in the embedder
    API.
    #​8933

  • The wasmtime run subcommand now support a --argv0 flag indicating the
    value of the first element to arguments reported to wasm if it shouldn't be
    the default of the wasm binary name itself.
    #​8961

  • Support for Winch on AArch64 continued to improve.
    #​8921
    #​9018
    #​9033
    #​9051

  • An initial implementation of the wasi-runtime-config proposal was added to
    Wasmtime.
    #​8950
    #​8970
    #​8981

  • Initial support for f16 and f128 in Cranelift continued to improve.
    #​8893
    #​9045

  • More types in wasmtime-wasi-http implement the Debug trait.
    #​8979

  • The wasmtime explore subcommand now supports exploring CLIF too.
    #​8972

  • Support for SIMD in Winch has begun, but it is not complete yet.
    #​8990
    #​9006

  • Initial work on Pulley, an interpreter for Wasmtime, has begun.
    #​9008
    #​9013
    #​9014

  • The -Wunknown-imports-trap flag to wasmtime run now supports components.
    #​9021

  • An initial implementation of the wasi-keyvalue proposal was added to
    Wasmtime.
    #​8983
    #​9032
    #​9050
    #​9062

  • An unsafe API has been added to unload process trap handlers.
    #​9022

  • The s390x backend now fully supports tail calls.
    #​9052

Changed
  • The flags type in the component model now has a hard limit of 32-or-fewer
    flags. For more information about this transition see
    WebAssembly/component-model#370.
    #​8882

  • Multiple returns for functions in the component model are now gated by default
    and are planned to be removed.
    #​8965

  • TCP streams in WASIp2 will now immediately return StreamError::Closed when
    the TCP stream is closed or shut down.
    #​8968
    #​9055

  • Cranelift will now perform constant propagation on some floating-point
    operations.
    #​8954

  • Wasmtime and Cranelift now require at least Rust 1.78.0 to compile.
    #​9010

  • The wasmtime::Val type now implements the Copy trait.
    #​9024

  • Wasmtime's wasi-nn implementation has been updated to track the upstream
    specification.
    #​9056

  • Names provided to trappable_imports in bindgen! are now validated to be
    used.
    #​9057

  • Support for multi-package *.wit files now requires a package ...; header
    at the top of the file.
    #​9053

v23.0.3

Compare Source

23.0.3

Released 2024-10-09.

Fixed
  • Fix a runtime crash when combining tail-calls with host imports that capture a
    stack trace or trap.
    GHSA-q8hx-mm92-4wvg

  • Fix a race condition could lead to WebAssembly control-flow integrity and type
    safety violations.
    GHSA-7qmx-3fpx-r45m

v23.0.2

Compare Source

23.0.2

Released 2024-08-12.

Changed
  • Building the c-api from crates.io now correctly configures an include
    directory for header files with configured versions of header files.
    #​9102
  • Wasmtime no longer requires linking with libm in Linux builds, which
    fixes linking against musl in some cases.
    #​9100

v23.0.1

Compare Source

23.0.1

Released 2024-07-22.

Fixed
  • Fixed some issues when auto-publishing crates to crates.io.
    #​8986

v23.0.0

Compare Source

23.0.0

Released 2024-07-22.

Added
  • Support for DWARF debugging information with native debuggers is now
    implemented for components.
    #​8693

  • CLIF frontends can now define their own stack maps.
    #​8728
    #​8876

  • Wasmtime now supports the custom-page-sizes proposal.
    #​8763

  • This project now publishes a crate named
    wasi-preview1-component-adapter-provider which provides the WASIp1 adapters
    as constants in Rust code.
    #​8874

Changed
  • Call hooks now have access to the full StoreContextMut<T>.
    #​8791

  • Call hooks have been moved behind an off-by-default compile-time Cargo feature
    named call-hook.
    #​8795
    #​8808

  • Wasmtime's minimum supported Rust version is now 1.77.0.
    #​8796

  • Resumable traps have been removed from Cranelift.
    #​8809

  • Traps are not GC safepoints any more in Cranelift.
    #​8810

  • Support for Intel memory protection keys is now disabled by default at compile
    time and is gated behind a Cargo feature.
    #​8813

  • Exports from components have been refactored and redesigned to support
    skipping name lookups at runtime where possible.
    #​8786

  • Wasmtime's lookup of versioned component exports now takes semver into
    account in the same manner as imports.
    #​8830

  • Wasmtime's guest profiler will now take samples at hostcall boundaries.
    #​8802

  • Wasmtime's pooling allocator now by default allows 32-bit linear memories to
    grow to their full size of 4G.
    #​8849

  • The size of WASI adapter binaries has been optimized.
    #​8858
    #​8859

  • The wasmtime-wasi-http crate has been refactored to better match the
    wasmtime-wasi crate.
    #​8861

  • Support for caching call_indirect sites has been removed.
    #​8881

  • Wasmtime's x86_64 binary releases are now based on AlmaLinux 8 instead of
    CentOS 7.
    #​8892

Fixed
  • An issue with generated .debug_loc sections for native debuggers has been
    fixed.
    #​8753

  • Wasmtime's no_std build for riscv64 has been fixed.
    #​8770

  • A bug related to lost Waker instances with async stdio streams has been
    fixed.
    #​8782

  • Configuration of trappable_error_type has been improved in Wasmtime's
    bindgen! macro.
    #​8833

  • Prints to stdout/stderr without a newline now work better with wasmtime serve.
    #​8877

  • An issue with br_if and stack-related state has been fixed in Winch.
    #​8886

v22.0.1

Compare Source

22.0.1

Released 2024-10-09.

Fixed
  • Fix a runtime crash when combining tail-calls with host imports that capture a
    stack trace or trap.
    GHSA-q8hx-mm92-4wvg

  • Fix a race condition could lead to WebAssembly control-flow integrity and type
    safety violations.
    GHSA-7qmx-3fpx-r45m


Configuration

📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR has been generated by Renovate Bot.

This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [wasi-common](https://github.com/bytecodealliance/wasmtime) | dependencies | major | `22.0.0` -> `37.0.0` | --- ### Release Notes <details> <summary>bytecodealliance/wasmtime (wasi-common)</summary> ### [`v37.0.0`](https://github.com/bytecodealliance/wasmtime/releases/tag/v37.0.0) [Compare Source](https://github.com/bytecodealliance/wasmtime/compare/v36.0.2...v37.0.0) #### 37.0.0 Released 2025-09-20. ##### Added - Wasmtime now fully implements the WebAssembly exception-handling proposal. Support is still disabled by default but is ready for testing. The proposal will be enabled by default in a future release of Wasmtime. [#&#8203;11326](https://github.com/bytecodealliance/wasmtime/pull/11326) - An initial implementation of WASIp3 is available for the `0.3.0-rc-2025-08-15` tag made for the WASIp3 release. Note that this is not production ready yet but is an excellent time to start kicking the tires in preparation for an upcoming officialy WASIp3 0.3.0 release. Users of the CLI can opt-in with `-Sp3 -Wcomponent-model-async`. [#&#8203;11406](https://github.com/bytecodealliance/wasmtime/pull/11406) [#&#8203;11423](https://github.com/bytecodealliance/wasmtime/pull/11423) [#&#8203;11443](https://github.com/bytecodealliance/wasmtime/pull/11443) - Wasmtime has initial support for the Linux `PAGEMAP_SCAN` ioctl which can greatly improve instantiation throughput in scenarios with a high number of instantiations and short instance lifetime. This support is disabled by default but will likely be enabled by default in a future release. [#&#8203;11372](https://github.com/bytecodealliance/wasmtime/pull/11372) [#&#8203;11433](https://github.com/bytecodealliance/wasmtime/pull/11433) - GC support can now be configured in `Config` and not only through crate features through `Config::gc_support`. [#&#8203;11463](https://github.com/bytecodealliance/wasmtime/pull/11463) - Wasmtime now supports reading metrics of the pooling allocator at runtime. [#&#8203;11490](https://github.com/bytecodealliance/wasmtime/pull/11490) - The `ManuallyRooted` type is now replaced with `OwnedRooted` which is intended to make management of GC object lifetimes on the host easier. [#&#8203;11514](https://github.com/bytecodealliance/wasmtime/pull/11514) - Wasmtime's documentation of the C++ embedding API and examples has been expanded. [#&#8203;11569](https://github.com/bytecodealliance/wasmtime/pull/11569) - Wasmtime's support for the stack-switching WebAssembly proposal continues to progress on x86\_64 Linux. [#&#8203;11003](https://github.com/bytecodealliance/wasmtime/pull/11003) ##### Changed - The `preview0` and `preview1` modules and features in the `wasmtime-wasi` crate are now called `p0` and `p1`. [#&#8203;11380](https://github.com/bytecodealliance/wasmtime/pull/11380) - Release artifacts for the C API are now unconditionally built with unwind tables. [#&#8203;11383](https://github.com/bytecodealliance/wasmtime/pull/11383) - Wasmtime now requires Rust 1.87.0 or later to build. [#&#8203;11396](https://github.com/bytecodealliance/wasmtime/pull/11396) - The component-model-async gated `AbortHandle` is now named `JoinHandle`. [#&#8203;11414](https://github.com/bytecodealliance/wasmtime/pull/11414) - Wasmtime's internal implementation details are now `async` in many more locations to help ensure the implementation is more sound. [#&#8203;11411](https://github.com/bytecodealliance/wasmtime/pull/11411) [#&#8203;11416](https://github.com/bytecodealliance/wasmtime/pull/11416) [#&#8203;11442](https://github.com/bytecodealliance/wasmtime/pull/11442) [#&#8203;11444](https://github.com/bytecodealliance/wasmtime/pull/11444) [#&#8203;11457](https://github.com/bytecodealliance/wasmtime/pull/11457) [#&#8203;11460](https://github.com/bytecodealliance/wasmtime/pull/11460) [#&#8203;11461](https://github.com/bytecodealliance/wasmtime/pull/11461) [#&#8203;11468](https://github.com/bytecodealliance/wasmtime/pull/11468) [#&#8203;11470](https://github.com/bytecodealliance/wasmtime/pull/11470) [#&#8203;11481](https://github.com/bytecodealliance/wasmtime/pull/11481) [#&#8203;11496](https://github.com/bytecodealliance/wasmtime/pull/11496) - Component-model-async primitives such as streams, tasks, etc, now use the same table as resources in a component. This means that guest-visible allocated indices are updated slightly. [#&#8203;11374](https://github.com/bytecodealliance/wasmtime/pull/11374) - Wasmtime's precompiled binaries available from CI now include the `component-model-async` feature. [#&#8203;11429](https://github.com/bytecodealliance/wasmtime/pull/11429) - C API release artifacts are now built with LTO so they have a smaller size. [#&#8203;11483](https://github.com/bytecodealliance/wasmtime/pull/11483) - Code can no longer be loaded on `x86_64-unknown-none` by default without opting-in to a contract that either the host is compiled with SSE2 support or wasm is compiled with enough features that libcalls aren't used. [#&#8203;11553](https://github.com/bytecodealliance/wasmtime/pull/11553) - Host support for component model async futures/streams has been updated to a new API. [#&#8203;11515](https://github.com/bytecodealliance/wasmtime/pull/11515) ##### Fixed - GC of dead DWARF has been improved. [#&#8203;11402](https://github.com/bytecodealliance/wasmtime/pull/11402) - Wasm-gc branching instructions now correctly check for fuel. [#&#8203;11426](https://github.com/bytecodealliance/wasmtime/pull/11426) - The `array.new_default` instruction now checks for fuel/epochs in its inner loop. [#&#8203;11428](https://github.com/bytecodealliance/wasmtime/pull/11428) - The "min" C API artifacts now have correct headers. [#&#8203;11479](https://github.com/bytecodealliance/wasmtime/pull/11479) - GC OOM during const eval no longer panics. [#&#8203;11557](https://github.com/bytecodealliance/wasmtime/pull/11557) - Wasmtime now properly respects a disabled `std` feature even on targets which have `std` available. [#&#8203;11568](https://github.com/bytecodealliance/wasmtime/pull/11568) ### [`v36.0.2`](https://github.com/bytecodealliance/wasmtime/releases/tag/v36.0.2) [Compare Source](https://github.com/bytecodealliance/wasmtime/compare/v36.0.1...v36.0.2) #### 36.0.2 Released 2025-08-26. ##### Fixed - Wasmtime will no longer panic in the pooling allocator when in near-OOM conditions related to resetting the linear memory of a slot. [#&#8203;11510](https://github.com/bytecodealliance/wasmtime/pull/11510) ### [`v36.0.1`](https://github.com/bytecodealliance/wasmtime/releases/tag/v36.0.1) [Compare Source](https://github.com/bytecodealliance/wasmtime/compare/v36.0.0...v36.0.1) #### 36.0.1 Released 2025-08-21. ##### Added - Accessors for internal WASI-related contexts are added to `wasmtime_wasi::WasiCtx` to account for refactorings that happened in this release. [#&#8203;11473](https://github.com/bytecodealliance/wasmtime/pull/11473) ##### Changed - Release artifacts for the C API are now smaller than the previous release to assist with redistribution as-is. [#&#8203;11483](https://github.com/bytecodealliance/wasmtime/pull/11483) ### [`v36.0.0`](https://github.com/bytecodealliance/wasmtime/releases/tag/v36.0.0) [Compare Source](https://github.com/bytecodealliance/wasmtime/compare/v35.0.0...v36.0.0) #### 36.0.0 Released 2025-08-20. ##### Added - Cranelift's has initial support for inlining between functions. Wasmtime additionally now has support for inlining as well, for example between modules in a component. [#&#8203;11210](https://github.com/bytecodealliance/wasmtime/pull/11210) [#&#8203;11239](https://github.com/bytecodealliance/wasmtime/pull/11239) [#&#8203;11228](https://github.com/bytecodealliance/wasmtime/pull/11228) [#&#8203;11269](https://github.com/bytecodealliance/wasmtime/pull/11269) [#&#8203;11283](https://github.com/bytecodealliance/wasmtime/pull/11283) - The async proposal for the Component Model is now fully implemented in Wasmtime with a number of WASIp3 interfaces implemented. The implementation is still off-by-default and the implementation of WASIp3 is not fully complete, but is remains suitable for testing. [#&#8203;11127](https://github.com/bytecodealliance/wasmtime/pull/11127) [#&#8203;11136](https://github.com/bytecodealliance/wasmtime/pull/11136) [#&#8203;11137](https://github.com/bytecodealliance/wasmtime/pull/11137) [#&#8203;11238](https://github.com/bytecodealliance/wasmtime/pull/11238) [#&#8203;11221](https://github.com/bytecodealliance/wasmtime/pull/11221) [#&#8203;11250](https://github.com/bytecodealliance/wasmtime/pull/11250) [#&#8203;11257](https://github.com/bytecodealliance/wasmtime/pull/11257) [#&#8203;11291](https://github.com/bytecodealliance/wasmtime/pull/11291) [#&#8203;11325](https://github.com/bytecodealliance/wasmtime/pull/11325) ##### Changed - Users who implemented `WasiHttpView::is_forbidden_header` from `wasmtime-wasi-http` now need to include `DEFAULT_FORBIDDEN_HEADERS`, e.g. `DEFAULT_FORBIDDEN_HEADERS.contains(name) || name.as_str() == "custom-forbidden-header"` [#&#8203;11292](https://github.com/bytecodealliance/wasmtime/pull/11292) - Cranelift's incremental cache has received some optimizations. [#&#8203;11186](https://github.com/bytecodealliance/wasmtime/pull/11186) - Wasmtime's internal implementations of WebAssembly primitives has been refactored to be modeled with safer internal primitives. [#&#8203;11211](https://github.com/bytecodealliance/wasmtime/pull/11211) [#&#8203;11212](https://github.com/bytecodealliance/wasmtime/pull/11212) [#&#8203;11216](https://github.com/bytecodealliance/wasmtime/pull/11216) [#&#8203;11229](https://github.com/bytecodealliance/wasmtime/pull/11229) [#&#8203;11215](https://github.com/bytecodealliance/wasmtime/pull/11215) [#&#8203;11254](https://github.com/bytecodealliance/wasmtime/pull/11254) [#&#8203;11255](https://github.com/bytecodealliance/wasmtime/pull/11255) [#&#8203;11319](https://github.com/bytecodealliance/wasmtime/pull/11319) [#&#8203;11320](https://github.com/bytecodealliance/wasmtime/pull/11320) - Detection of native hardware features has been refactored on s390x. [#&#8203;11220](https://github.com/bytecodealliance/wasmtime/pull/11220) - Further progress has been made towards an implementation of the WebAssembly exceptions proposal, although it is not yet complete. [#&#8203;11230](https://github.com/bytecodealliance/wasmtime/pull/11230) [#&#8203;11321](https://github.com/bytecodealliance/wasmtime/pull/11321) - Cranelift's assembler for x64 now supports EVEX encoding. [#&#8203;11153](https://github.com/bytecodealliance/wasmtime/pull/11153) [#&#8203;11270](https://github.com/bytecodealliance/wasmtime/pull/11270) [#&#8203;11303](https://github.com/bytecodealliance/wasmtime/pull/11303) - The default implementation of `send_request` in the `wasmtime-wasi-http` crate is now behind an on-by-default feature gate. [#&#8203;11323](https://github.com/bytecodealliance/wasmtime/pull/11323) - Configuration of the `bindgen!` macro has been redesigned to more consistently configure per-function options such as whether or not it's async. [#&#8203;11328](https://github.com/bytecodealliance/wasmtime/pull/11328) - Initial support fo `mutatis` has been added to Wasmtime's fuzzers. [#&#8203;11290](https://github.com/bytecodealliance/wasmtime/pull/11290) - The `debug-builtins` crate feature of `wasmtime` no compiles on `no_std` targets. [#&#8203;11304](https://github.com/bytecodealliance/wasmtime/pull/11304) ##### Fixed - Deserializing external modules no long unnecessarily requires the allocation to be aligned. [#&#8203;11306](https://github.com/bytecodealliance/wasmtime/pull/11306) - A CMake linker error and warning when using the C API on macOS has been fixed. [#&#8203;11293](https://github.com/bytecodealliance/wasmtime/pull/11293) [#&#8203;11315](https://github.com/bytecodealliance/wasmtime/pull/11315) - The C API declaration of `wasmtime_component_linker_instance_add_func` has been fixed. [#&#8203;11327](https://github.com/bytecodealliance/wasmtime/pull/11327) - The calculation of reachable DWARF has been fixed. [#&#8203;11338](https://github.com/bytecodealliance/wasmtime/pull/11338) ### [`v35.0.0`](https://github.com/bytecodealliance/wasmtime/releases/tag/v35.0.0) [Compare Source](https://github.com/bytecodealliance/wasmtime/compare/v34.0.2...v35.0.0) #### 35.0.0 Released 2025-07-22. ##### Added - A new `InputFile` type has been added for specifying stdin as a file in WASI. [#&#8203;10968](https://github.com/bytecodealliance/wasmtime/pull/10968) - Conditional branches to unconditional traps are now translated to conditional traps during legalization. [#&#8203;10988](https://github.com/bytecodealliance/wasmtime/pull/10988) - The `TE` HTTP header can now be specified by guests. [#&#8203;11002](https://github.com/bytecodealliance/wasmtime/pull/11002) - Winch on AArch64 should now pass all WebAssembly MVP tests. Note that it is still not yet Tier 1 at this time, however. [#&#8203;10829](https://github.com/bytecodealliance/wasmtime/pull/10829) [#&#8203;11013](https://github.com/bytecodealliance/wasmtime/pull/11013) [#&#8203;11031](https://github.com/bytecodealliance/wasmtime/pull/11031) [#&#8203;11051](https://github.com/bytecodealliance/wasmtime/pull/11051) - The x64 backend now has lowering rules for `{add,sub,or,and} mem, imm` [#&#8203;11043](https://github.com/bytecodealliance/wasmtime/pull/11043) - Initial support for WASIp2 in the C API has started to land. [#&#8203;11055](https://github.com/bytecodealliance/wasmtime/pull/11055) [#&#8203;11172](https://github.com/bytecodealliance/wasmtime/pull/11172) - Initial support for GC support in the component model has started to land (note that it is not finished yet). [#&#8203;10967](https://github.com/bytecodealliance/wasmtime/pull/10967) [#&#8203;11020](https://github.com/bytecodealliance/wasmtime/pull/11020) - The `wasmtime-wasi-nn` crate now has a feature to use a custom ONNX runtime. [#&#8203;11060](https://github.com/bytecodealliance/wasmtime/pull/11060) - Cranelift now optimizes division-by-constant operations to no longer use division. [#&#8203;11129](https://github.com/bytecodealliance/wasmtime/pull/11129) - A `native-tls` backend has been added for the wasi-tls implementation. [#&#8203;11064](https://github.com/bytecodealliance/wasmtime/pull/11064) ##### Changed - Many more instructions for the x64 backend in Cranelift were migrated to the new assembler. [#&#8203;10927](https://github.com/bytecodealliance/wasmtime/pull/10927) [#&#8203;10928](https://github.com/bytecodealliance/wasmtime/pull/10928) [#&#8203;10918](https://github.com/bytecodealliance/wasmtime/pull/10918) [#&#8203;10946](https://github.com/bytecodealliance/wasmtime/pull/10946) [#&#8203;10954](https://github.com/bytecodealliance/wasmtime/pull/10954) [#&#8203;10958](https://github.com/bytecodealliance/wasmtime/pull/10958) [#&#8203;10971](https://github.com/bytecodealliance/wasmtime/pull/10971) [#&#8203;10942](https://github.com/bytecodealliance/wasmtime/pull/10942) [#&#8203;10975](https://github.com/bytecodealliance/wasmtime/pull/10975) [#&#8203;11017](https://github.com/bytecodealliance/wasmtime/pull/11017) [#&#8203;10898](https://github.com/bytecodealliance/wasmtime/pull/10898) [#&#8203;10836](https://github.com/bytecodealliance/wasmtime/pull/10836) ... (and more) - Wasmtime internally uses `Pin` for VM data structures to make the internal implementations more sound to use. This has no effect on the public API of Wasmtime. [#&#8203;10934](https://github.com/bytecodealliance/wasmtime/pull/10934) [#&#8203;10937](https://github.com/bytecodealliance/wasmtime/pull/10937) [#&#8203;10943](https://github.com/bytecodealliance/wasmtime/pull/10943) [#&#8203;10959](https://github.com/bytecodealliance/wasmtime/pull/10959) [#&#8203;11042](https://github.com/bytecodealliance/wasmtime/pull/11042) - Fused adapters between components now transfer the `enum` component model type more efficiently. [#&#8203;10939](https://github.com/bytecodealliance/wasmtime/pull/10939) - Filenames of `--emit-clif` now match the symbol names found in `*.cwasm` artifacts and include the function name as well. [#&#8203;10947](https://github.com/bytecodealliance/wasmtime/pull/10947) [#&#8203;11040](https://github.com/bytecodealliance/wasmtime/pull/11040) - Wasmtime-internal crates are now all named `wasmtime-internal-*` to even further discourage their use. [#&#8203;10963](https://github.com/bytecodealliance/wasmtime/pull/10963) - Codegen of conditional traps with float compares has been improved. [#&#8203;10966](https://github.com/bytecodealliance/wasmtime/pull/10966) - More patterns are now optimized in ISLE mid-end rules. [#&#8203;10978](https://github.com/bytecodealliance/wasmtime/pull/10978) [#&#8203;10979](https://github.com/bytecodealliance/wasmtime/pull/10979) [#&#8203;11173](https://github.com/bytecodealliance/wasmtime/pull/11173) - Winch's support for constants/scratch registers has been improved internally. [#&#8203;10986](https://github.com/bytecodealliance/wasmtime/pull/10986) [#&#8203;10998](https://github.com/bytecodealliance/wasmtime/pull/10998) - The C API artifacts on Windows are now produced with Clang instead of `cl.exe`. [#&#8203;10890](https://github.com/bytecodealliance/wasmtime/pull/10890) - WebAssembly operand types are now taken into account during translation to optimize codegen better in the face of subtyping. [#&#8203;11030](https://github.com/bytecodealliance/wasmtime/pull/11030) - The behavior of `blocking-write-and-flush` has been updated during flushing when `closed` is found. [#&#8203;11018](https://github.com/bytecodealliance/wasmtime/pull/11018) - WASI WITs have been updated to 0.2.6. [#&#8203;11049](https://github.com/bytecodealliance/wasmtime/pull/11049) - OpenVINO has been updated to v2025.1. [#&#8203;11054](https://github.com/bytecodealliance/wasmtime/pull/11054) - The size of the `wasmtime.addrmap` section in `*.cwasm` artifacts has been shrunk slightly. [#&#8203;11126](https://github.com/bytecodealliance/wasmtime/pull/11126) - Authorities in `wasmtime-wasi-http` can now contain the `:` character. [#&#8203;11145](https://github.com/bytecodealliance/wasmtime/pull/11145) - Wasmtime now requires Rust 1.86 to compile. [#&#8203;11142](https://github.com/bytecodealliance/wasmtime/pull/11142) - Wasmtime's DRC collector has been optimized and has a new more efficient means of managing the set of over-approximated roots on the stack. [#&#8203;11144](https://github.com/bytecodealliance/wasmtime/pull/11144) [#&#8203;11148](https://github.com/bytecodealliance/wasmtime/pull/11148) [#&#8203;11167](https://github.com/bytecodealliance/wasmtime/pull/11167) [#&#8203;11168](https://github.com/bytecodealliance/wasmtime/pull/11168) [#&#8203;11169](https://github.com/bytecodealliance/wasmtime/pull/11169) [#&#8203;11175](https://github.com/bytecodealliance/wasmtime/pull/11175) - The `ComponentType` trait in Wasmtime now requires the `Send` and `Sync` bounds for all implementors. [#&#8203;11160](https://github.com/bytecodealliance/wasmtime/pull/11160) - The `V128` type is now usable on platforms other than aarch64 and x86\_64. [#&#8203;11165](https://github.com/bytecodealliance/wasmtime/pull/11165) - Wasmtime's policy on `unsafe` code and guidelines has been added. [#&#8203;11177](https://github.com/bytecodealliance/wasmtime/pull/11177) - The `std` crate will no longer implicitly be used on `cfg(unix)` and `cfg(windows)` targets when the `std` Cargo feature is disabled. This means that these platforms now require `std` to be enabled to use the platform-specific implementation of linear memory, for example. [#&#8203;11152](https://github.com/bytecodealliance/wasmtime/pull/11152) ##### Fixed - A panic when optimizing `icmp` with vectors has been fixed. [#&#8203;10948](https://github.com/bytecodealliance/wasmtime/pull/10948) - A panic when lowering `scalar_to_vector` with `i16x8` types has been fixed. [#&#8203;10949](https://github.com/bytecodealliance/wasmtime/pull/10949) - The vector state register is now considered clobbered by calls on riscv64 to ensure it's updated across calls. [#&#8203;11048](https://github.com/bytecodealliance/wasmtime/pull/11048) - An instance of `gdb` crashing on DWARF emitted by Wasmtime has been fixed. [#&#8203;11077](https://github.com/bytecodealliance/wasmtime/pull/11077) - Fix a panic in the host caused by preview1 guests using `fd_renumber`. [CVE-2025-53901](https://github.com/bytecodealliance/wasmtime/security/advisories/GHSA-fm79-3f68-h2fc). - Fix a panic in the preview1 adapter caused by guests using `fd_renumber`. [#&#8203;11277](https://github.com/bytecodealliance/wasmtime/pull/11277) ### [`v34.0.2`](https://github.com/bytecodealliance/wasmtime/releases/tag/v34.0.2) [Compare Source](https://github.com/bytecodealliance/wasmtime/compare/v34.0.1...v34.0.2) #### 34.0.2 Released 2025-07-18. ##### Fixed - Fix a panic in the host caused by preview1 guests using `fd_renumber`. [CVE-2025-53901](https://github.com/bytecodealliance/wasmtime/security/advisories/GHSA-fm79-3f68-h2fc). - Fix a panic in the preview1 adapter caused by guests using `fd_renumber`. [#&#8203;11277](https://github.com/bytecodealliance/wasmtime/pull/11277) #### 34.0.1 Released 2025-06-24. ##### Fixed - Fix a panic with host-defined tables/globals and concrete reference types. [#&#8203;11103](https://github.com/bytecodealliance/wasmtime/pull/11103) ### [`v34.0.1`](https://github.com/bytecodealliance/wasmtime/releases/tag/v34.0.1) [Compare Source](https://github.com/bytecodealliance/wasmtime/compare/v34.0.0...v34.0.1) #### 34.0.1 Released 2025-06-24. ##### Fixed - Fix a panic with host-defined tables/globals and concrete reference types. [#&#8203;11103](https://github.com/bytecodealliance/wasmtime/pull/11103) ### [`v34.0.0`](https://github.com/bytecodealliance/wasmtime/releases/tag/v34.0.0) [Compare Source](https://github.com/bytecodealliance/wasmtime/compare/v33.0.2...v34.0.0) #### 34.0.0 Released 2025-06-20. ##### Added - Support for SIMD in the Pulley interpreter can now be disabled at compile-time to shrink the size of the final binary. [#&#8203;10727](https://github.com/bytecodealliance/wasmtime/pull/10727) - The C API now has `wasmtime_trap_new_code` to create a `wasm_trap_t` from its code. [#&#8203;10765](https://github.com/bytecodealliance/wasmtime/pull/10765) - Winch's support for x86\_64 is now classified with tier 1 support in Wasmtime. [#&#8203;10755](https://github.com/bytecodealliance/wasmtime/pull/10755) - Winch's support for aarch64 now implements stack checks to pass many more spec tests. [#&#8203;10763](https://github.com/bytecodealliance/wasmtime/pull/10763) - Cranelift's s390x backend now has full support for the `f128` type. [#&#8203;10774](https://github.com/bytecodealliance/wasmtime/pull/10774) - Wasmtime's C API for the component model has initial support for calling functions. [#&#8203;10697](https://github.com/bytecodealliance/wasmtime/pull/10697) [#&#8203;10841](https://github.com/bytecodealliance/wasmtime/pull/10841) [#&#8203;10858](https://github.com/bytecodealliance/wasmtime/pull/10858) [#&#8203;10864](https://github.com/bytecodealliance/wasmtime/pull/10864) [#&#8203;10877](https://github.com/bytecodealliance/wasmtime/pull/10877) - The `wasmtime wast` command now has a `--generate-dwarf` flag to show filename/line number information for backtraces. [#&#8203;10780](https://github.com/bytecodealliance/wasmtime/pull/10780) ##### Changed - The shape of `bindgen!`-generated `add_to_linker` functions has changed with the removal of `GetHost` and replacement of a `HasData` trait. For more information see the associated PR. [#&#8203;10770](https://github.com/bytecodealliance/wasmtime/pull/10770) - Wasmtime's `Store<T>` now requires that `T: 'static`. This is done in preparation for merging WASIp3 work to the main repository with some more information on the associated PR. [#&#8203;10760](https://github.com/bytecodealliance/wasmtime/pull/10760) - The `wasmtime::component::Instance::instance_pre` method is now public. [#&#8203;10761](https://github.com/bytecodealliance/wasmtime/pull/10761) - Wasmtime and Cranelift's minimnum supported version of Rust (MSRV) is now 1.85.0. [#&#8203;10785](https://github.com/bytecodealliance/wasmtime/pull/10785) - Cranelift's `debugtrap` on aarch64 now generates `brk #&#8203;0xf000` for debuggers to recognize it. [#&#8203;10813](https://github.com/bytecodealliance/wasmtime/pull/10813) - The wasi-http implementation no longer generates a trap if the handle to receive the response on the host is dropped early. [#&#8203;10833](https://github.com/bytecodealliance/wasmtime/pull/10833) - The `wasmtime serve` command will now send some boilerplate descriptive HTML on a 500 server error instead of nothing. [#&#8203;10851](https://github.com/bytecodealliance/wasmtime/pull/10851) - A significant amount of work has gone into the new assembler for the x64 backend. Too many PRs to list here but progress continues apace at defining all machine instructions in a standalone crate. - Cranelift will now reject unimplemented big-endian loads/stores on backends that do not implement this functionality. [#&#8203;10863](https://github.com/bytecodealliance/wasmtime/pull/10863) - The `wasmtime explore` generated HTML handles large modules better now. [#&#8203;10892](https://github.com/bytecodealliance/wasmtime/pull/10892) - Wasmtime's internal representation of `wasmtime::Func` has changed and a previous optimization of `Func::call` has been lost. If affected it'd recommended to use `Func::call_unchecked` instead or to open an issue. [#&#8203;10897](https://github.com/bytecodealliance/wasmtime/pull/10897) ### [`v33.0.2`](https://github.com/bytecodealliance/wasmtime/releases/tag/v33.0.2) [Compare Source](https://github.com/bytecodealliance/wasmtime/compare/v33.0.1...v33.0.2) #### 33.0.2 Released 2025-07-18. ##### Fixed - Fix a panic in the host caused by preview1 guests using `fd_renumber`. [CVE-2025-53901](https://github.com/bytecodealliance/wasmtime/security/advisories/GHSA-fm79-3f68-h2fc). - Fix a panic in the preview1 adapter caused by guests using `fd_renumber`. [#&#8203;11277](https://github.com/bytecodealliance/wasmtime/pull/11277) #### 33.0.1 Released 2025-06-24. ##### Fixed - Fix a panic with host-defined tables/globals and concrete reference types. [#&#8203;11103](https://github.com/bytecodealliance/wasmtime/pull/11103) ### [`v33.0.1`](https://github.com/bytecodealliance/wasmtime/releases/tag/v33.0.1) [Compare Source](https://github.com/bytecodealliance/wasmtime/compare/v33.0.0...v33.0.1) #### 33.0.1 Released 2025-06-24. ##### Fixed - Fix a panic with host-defined tables/globals and concrete reference types. [#&#8203;11103](https://github.com/bytecodealliance/wasmtime/pull/11103) ### [`v33.0.0`](https://github.com/bytecodealliance/wasmtime/releases/tag/v33.0.0) [Compare Source](https://github.com/bytecodealliance/wasmtime/compare/v32.0.1...v33.0.0) #### 33.0.0 Released 2025-05-20. ##### Added - Cranelift now has initial support for `try_call` and `try_call_indirect` instructions, to be used in the future for the WebAssembly exception-handling proposal. Wasmtime does not yet implement this proposal yet. [#&#8203;10510](https://github.com/bytecodealliance/wasmtime/pull/10510) [#&#8203;10557](https://github.com/bytecodealliance/wasmtime/pull/10557) [#&#8203;10593](https://github.com/bytecodealliance/wasmtime/pull/10593) - Cranelift can now optimize some simple possibly-side-effectful instructions, such as division. [#&#8203;10524](https://github.com/bytecodealliance/wasmtime/pull/10524) - Wasmtime now supports `--invoke` for components using the WAVE format. [#&#8203;10054](https://github.com/bytecodealliance/wasmtime/pull/10054) - Initial support for the Component Model has landed in Wasmtime's C API. Note that the API is not yet feature-complete, however. [#&#8203;10566](https://github.com/bytecodealliance/wasmtime/pull/10566) [#&#8203;10598](https://github.com/bytecodealliance/wasmtime/pull/10598) [#&#8203;10651](https://github.com/bytecodealliance/wasmtime/pull/10651) [#&#8203;10675](https://github.com/bytecodealliance/wasmtime/pull/10675) - Wasmtime's C++ API is now available from this repository and the bytecodealliance/wasmtime-cpp repository has been archived. Additionally the monolithic `wasmtime.hh` header file has been split into separate header files. [#&#8203;10582](https://github.com/bytecodealliance/wasmtime/pull/10582) [#&#8203;10600](https://github.com/bytecodealliance/wasmtime/pull/10600) - Wasmtime's cookbook-style documentation has been expanded. [#&#8203;10630](https://github.com/bytecodealliance/wasmtime/pull/10630) - Wasmtime's now supports custom yield behavior when using epoch interrupts. [#&#8203;10671](https://github.com/bytecodealliance/wasmtime/pull/10671) ##### Changed - Wasmtime's bindgen now type-checks export functions in the constructor of the generated `{Worldname}Pre` or `{Worldname}` structs, rather than at the call of the export function. [#&#8203;10610](https://github.com/bytecodealliance/wasmtime/pull/10610) - Wasmtime's `component::Component` and `component::Instance` now have consistient `get_export` and `get_export_index` methods, which return `(ComponentItem, ComponentExportIndex)` and `ComponentExportIndex`, respectively. [#&#8203;10597](https://github.com/bytecodealliance/wasmtime/pull/10597) - On failure, `wasmtime serve` gives an internal server error response, rather than closing the connection. [#&#8203;10645](https://github.com/bytecodealliance/wasmtime/pull/10645) - Cranelift's single-pass allocator has been disabled due to being unable to support internal refactorings in preparation for the WebAssembly exceptions proposal. Re-enabling this allocator is tracked at [regalloc2#217](https://github.com/bytecodealliance/regalloc2/issues/217) for those interested. [#&#8203;10554](https://github.com/bytecodealliance/wasmtime/pull/10554) - Wasmtime's `{Array,Extern,Struct}Ref` functions will now automatically trigger a GC. [#&#8203;10560](https://github.com/bytecodealliance/wasmtime/pull/10560) - Wasmtime's GC heaps now use the same translation techniques as linear memories meaning they have far fewer bounds-checks than before. [#&#8203;10503](https://github.com/bytecodealliance/wasmtime/pull/10503) - Wasmtime's implementation of WASIp2 has moved to `wasmtime_wasi::p2` from the root of the crate. [#&#8203;10073](https://github.com/bytecodealliance/wasmtime/pull/10073) - Wasmtime will no longer emit calls to Cranelift-defined "libcalls" and instead everything goes through Wasmtime's libcall mechanism instead, paving the way for a future change for more efficient stack limit checking in wasm. This can also improve deserialize-from-disk times and improve page cache usage for modules that use libcalls as relocations are no longer necessary. [#&#8203;10657](https://github.com/bytecodealliance/wasmtime/pull/10657) - Configuration of caching can now be done through an API instead of exclusively through a configuration file. Additionally cache-related APIs in `Config` have changed. [#&#8203;10665](https://github.com/bytecodealliance/wasmtime/pull/10665) - Resources in the Component Model are now stored in a single table per-instance instead of per-type tables. Guests will see a different pattern of index allocation but this is not expected to cause any issues at runtime. [#&#8203;10701](https://github.com/bytecodealliance/wasmtime/pull/10701) ##### Fixed - Some math intrinsics have been fixed when compiled by Rust 1.87+. [#&#8203;10534](https://github.com/bytecodealliance/wasmtime/pull/10534) - Component model libcalls correctly handle platform-specific argument extension in ABIs. [#&#8203;10540](https://github.com/bytecodealliance/wasmtime/pull/10540) - An off-by-one issue with DWARF debuginfo has been fixed. [#&#8203;10570](https://github.com/bytecodealliance/wasmtime/pull/10570) - The `Config::target` method is no longer gated by a `#[cfg]` for an enabled compiler, it can be used when only the `runtime` feature is available. [#&#8203;10618](https://github.com/bytecodealliance/wasmtime/pull/10618) - An issue with "simulated" DWARF has been fixed. [#&#8203;10681](https://github.com/bytecodealliance/wasmtime/pull/10681) - C/C++ headers are now tested that they can be included in isolation, and a number of issues have been fixed. [#&#8203;10694](https://github.com/bytecodealliance/wasmtime/pull/10694) ### [`v32.0.1`](https://github.com/bytecodealliance/wasmtime/releases/tag/v32.0.1) [Compare Source](https://github.com/bytecodealliance/wasmtime/compare/v32.0.0...v32.0.1) #### 32.0.1 Released 2025-06-24. ##### Fixed - Fix a panic with host-defined tables/globals and concrete reference types. [#&#8203;11103](https://github.com/bytecodealliance/wasmtime/pull/11103) ### [`v32.0.0`](https://github.com/bytecodealliance/wasmtime/releases/tag/v32.0.0) [Compare Source](https://github.com/bytecodealliance/wasmtime/compare/v31.0.0...v32.0.0) #### 32.0.0 Released 2025-04-21. ##### Added - `{Module,Component}::deserialize_raw` can now be used to deserialize an in-memory module while relying on external management of the memory. [#&#8203;10321](https://github.com/bytecodealliance/wasmtime/pull/10321) - An initial implementation of wasi-tls has been added. [#&#8203;10249](https://github.com/bytecodealliance/wasmtime/pull/10249) - The `wasmtime` CLI now supports hexadecimal integer CLI arguments. [#&#8203;10360](https://github.com/bytecodealliance/wasmtime/pull/10360) - Cranelift now supports a `log2_min_function_alignment` flag. [#&#8203;10391](https://github.com/bytecodealliance/wasmtime/pull/10391) - A new `wasmtime objdump` subcommand has been added to help explore and debug `*.cwasm` files. [#&#8203;10405](https://github.com/bytecodealliance/wasmtime/pull/10405) - Support for the pooling allocator has been added to the C API. [#&#8203;10484](https://github.com/bytecodealliance/wasmtime/pull/10484) - Support for the guest profiler with the component model has been added. [#&#8203;10507](https://github.com/bytecodealliance/wasmtime/pull/10507) ##### Changed - Cranelift `MemFlags` now has a `can_move` flag which restricts whether a load or store can be moved. [#&#8203;10340](https://github.com/bytecodealliance/wasmtime/pull/10340) - The `.text` size of Pulley `*.cwasm` files should be smaller with less padding. [#&#8203;10285](https://github.com/bytecodealliance/wasmtime/pull/10285) - The `wasmtime serve` subcommand now implements a graceful shutdown on ctrl-c. [#&#8203;10394](https://github.com/bytecodealliance/wasmtime/pull/10394) - Stack maps used for GC are now stored in a serialized binary format that is faster to deserialize. [#&#8203;10404](https://github.com/bytecodealliance/wasmtime/pull/10404) - The aegraph implementation in Cranelift has been simplified to remove the union-find and canonical eclass IDs. [#&#8203;10471](https://github.com/bytecodealliance/wasmtime/pull/10471) - The `store_list` and `load_list` helpers have been specialized in components for `f32` and `f64`. [#&#8203;9892](https://github.com/bytecodealliance/wasmtime/pull/9892) - Cranelift now removes block params on critical-edge blocks. [#&#8203;10485](https://github.com/bytecodealliance/wasmtime/pull/10485) - The `Linker::define_unknown_imports_as_default_values` API now supports defining defaults for more kinds of items. [#&#8203;10500](https://github.com/bytecodealliance/wasmtime/pull/10500) - Wasmtime now requires Rust 1.84.0 to compile. [#&#8203;10520](https://github.com/bytecodealliance/wasmtime/pull/10520) ##### Fixed - Winch compilation of extadd instructions has been fixed. [#&#8203;10337](https://github.com/bytecodealliance/wasmtime/pull/10337) - Fix an issue with DRC collector's barriers. [#&#8203;10371](https://github.com/bytecodealliance/wasmtime/pull/10371) - Loads on `(ref null none)` that can trap are now performed. [#&#8203;10372](https://github.com/bytecodealliance/wasmtime/pull/10372) - Fix reference count management in `AnyRef::from_raw`. [#&#8203;10374](https://github.com/bytecodealliance/wasmtime/pull/10374) - An issue with multi-value returns in Winch has been fixed. [#&#8203;10370](https://github.com/bytecodealliance/wasmtime/pull/10370) - A panic at compile-time from an overflowing shift has been fixed when targeting aarch64. [#&#8203;10382](https://github.com/bytecodealliance/wasmtime/pull/10382) - The `wasmtime serve` command no longer panics when `handle` returns before calling `set`. [#&#8203;10387](https://github.com/bytecodealliance/wasmtime/pull/10387) - Winch compilation of `replace_lane` instructions with floats has been fixed. [#&#8203;10393](https://github.com/bytecodealliance/wasmtime/pull/10393) - An invalid integer-shift optimization on vector types has been removed. [#&#8203;10413](https://github.com/bytecodealliance/wasmtime/pull/10413) - The DWARF loclist to exprloc optimization has been fixed. [#&#8203;10400](https://github.com/bytecodealliance/wasmtime/pull/10400) - Objects in the DRC collector are now transitively dec-ref's when collected. [#&#8203;10401](https://github.com/bytecodealliance/wasmtime/pull/10401) - A bug with GC rec gropus and registration in an `Engine` has been fixed. [#&#8203;10435](https://github.com/bytecodealliance/wasmtime/pull/10435) - A bug related to GC arrays of GC refs misreported their count of GC edges has been fixed. [#&#8203;10453](https://github.com/bytecodealliance/wasmtime/pull/10453) - A bug related to appropriately adding stack maps for all GC variables has been fixed. [#&#8203;10456](https://github.com/bytecodealliance/wasmtime/pull/10456) [#&#8203;10468](https://github.com/bytecodealliance/wasmtime/pull/10468) - A bug with `array.fill` has been fixed. [#&#8203;10470](https://github.com/bytecodealliance/wasmtime/pull/10470) - GC structs are no longer reordered to optimize their size to fix subtyping. [#&#8203;10463](https://github.com/bytecodealliance/wasmtime/pull/10463) - Panics related to exceptions and components being mixed has been fixed. [#&#8203;10473](https://github.com/bytecodealliance/wasmtime/pull/10473) - Winch stack parameter alignment has been fixed. [#&#8203;10513](https://github.com/bytecodealliance/wasmtime/pull/10513) - Rendering inline function frames in a trap backtrace has been fixed. [#&#8203;10523](https://github.com/bytecodealliance/wasmtime/pull/10523) ### [`v31.0.0`](https://github.com/bytecodealliance/wasmtime/releases/tag/v31.0.0) [Compare Source](https://github.com/bytecodealliance/wasmtime/compare/v30.0.2...v31.0.0) #### 31.0.0 Released 2025-03-20. ##### Added - Winch's implementation of the SIMD proposal for WebAssembly is now feature-complete (but still being fuzzed). [#&#8203;10180](https://github.com/bytecodealliance/wasmtime/pull/10180) [#&#8203;10170](https://github.com/bytecodealliance/wasmtime/pull/10170) [#&#8203;10203](https://github.com/bytecodealliance/wasmtime/pull/10203) [#&#8203;10202](https://github.com/bytecodealliance/wasmtime/pull/10202) [#&#8203;10210](https://github.com/bytecodealliance/wasmtime/pull/10210) [#&#8203;10213](https://github.com/bytecodealliance/wasmtime/pull/10213) [#&#8203;10224](https://github.com/bytecodealliance/wasmtime/pull/10224) [#&#8203;10205](https://github.com/bytecodealliance/wasmtime/pull/10205) [#&#8203;10226](https://github.com/bytecodealliance/wasmtime/pull/10226) [#&#8203;10228](https://github.com/bytecodealliance/wasmtime/pull/10228) [#&#8203;10236](https://github.com/bytecodealliance/wasmtime/pull/10236) [#&#8203;10241](https://github.com/bytecodealliance/wasmtime/pull/10241) [#&#8203;10243](https://github.com/bytecodealliance/wasmtime/pull/10243) [#&#8203;10247](https://github.com/bytecodealliance/wasmtime/pull/10247) [#&#8203;10271](https://github.com/bytecodealliance/wasmtime/pull/10271) [#&#8203;10284](https://github.com/bytecodealliance/wasmtime/pull/10284) [#&#8203;10288](https://github.com/bytecodealliance/wasmtime/pull/10288) [#&#8203;10296](https://github.com/bytecodealliance/wasmtime/pull/10296) - The pytorch implementation in wasmtime-wasi-nn now has GPU support. [#&#8203;10204](https://github.com/bytecodealliance/wasmtime/pull/10204) - Cranelift now supports emitting the AArch64 `extr` instruction. [#&#8203;10229](https://github.com/bytecodealliance/wasmtime/pull/10229) - Cranelift now supports emitting the x64 `shld` instruction. [#&#8203;10233](https://github.com/bytecodealliance/wasmtime/pull/10233) - Initial support for the stack-switching proposal has started to land, but it is not complete just yet. [#&#8203;10251](https://github.com/bytecodealliance/wasmtime/pull/10251) [#&#8203;10265](https://github.com/bytecodealliance/wasmtime/pull/10265) [#&#8203;10255](https://github.com/bytecodealliance/wasmtime/pull/10255) ##### Changed - Pulley's implementation of loads/stores to linear memory has changed to better support optimizations and reduction of interpreter opcodes in the final binary. [#&#8203;10154](https://github.com/bytecodealliance/wasmtime/pull/10154) - Cranelift's verifier now ensures that integers used as address types have the correct width. [#&#8203;10209](https://github.com/bytecodealliance/wasmtime/pull/10209) - Wasmtime and Cranelift's minimum supported version of Rust is now 1.83.0. [#&#8203;10264](https://github.com/bytecodealliance/wasmtime/pull/10264) - Wasmtime now mentions the filename when the input cannot be opened on the CLI. [#&#8203;10292](https://github.com/bytecodealliance/wasmtime/pull/10292) - All types are now generated in `component::bindgen!`, even if they're not reachable. [#&#8203;10311](https://github.com/bytecodealliance/wasmtime/pull/10311) - Tables allocated with the system allocator now use `alloc_zeroed` (aka `calloc`) for allocation. [#&#8203;10313](https://github.com/bytecodealliance/wasmtime/pull/10313) ##### Fixed - GC: the is-null-or-i31ref checks have been fixed. [#&#8203;10221](https://github.com/bytecodealliance/wasmtime/pull/10221) - GC: an incorrect assertion and canonicalized types for runtime usage has been fixed. [#&#8203;10223](https://github.com/bytecodealliance/wasmtime/pull/10223) - GC: subtype checks for imported globals during instantiation have been fixed. [#&#8203;10304](https://github.com/bytecodealliance/wasmtime/pull/10304) - GC: exposing references to wasm in the `gc_alloc_raw` libcall has been fixed. [#&#8203;10322](https://github.com/bytecodealliance/wasmtime/pull/10322) - Winch's fuel checks correctly sync fuel before the check now. [#&#8203;10231](https://github.com/bytecodealliance/wasmtime/pull/10231) - Winch's treatment of stores and other trapping ops has been fixed on AArch64. [#&#8203;10201](https://github.com/bytecodealliance/wasmtime/pull/10201) - Winch's handling of the shadow stack pointer has been fixed on AArch64. [#&#8203;10263](https://github.com/bytecodealliance/wasmtime/pull/10263) - Winch's handling of address calculations has been fixed on AArch64. [#&#8203;10297](https://github.com/bytecodealliance/wasmtime/pull/10297) - Winch's handling of multivalue return of constants has ben fixed. [#&#8203;10315](https://github.com/bytecodealliance/wasmtime/pull/10315) ### [`v30.0.2`](https://github.com/bytecodealliance/wasmtime/releases/tag/v30.0.2) [Compare Source](https://github.com/bytecodealliance/wasmtime/compare/v30.0.1...v30.0.2) #### 30.0.2 Released 2025-02-25. ##### Fixed - MinGW C API builds are now built with a newer version of GCC which seems to fix an issue caused by [#&#8203;9929](https://github.com/bytecodealliance/wasmtime/issues/9929). [#&#8203;10290](https://github.com/bytecodealliance/wasmtime/pull/10290) ##### Changed - The `cranelift-codegen` crate now no longer depends on `arbitrary`, a now-unnecessary dependency. [#&#8203;10217](https://github.com/bytecodealliance/wasmtime/pull/10217) ### [`v30.0.1`](https://github.com/bytecodealliance/wasmtime/releases/tag/v30.0.1) [Compare Source](https://github.com/bytecodealliance/wasmtime/compare/v30.0.0...v30.0.1) #### 30.0.1 Released 2025-02-21. ##### Fixed - Fixes an issue building the `cranelift-assembler-x64` crate on Windows when the Rust toolchain is on a different drive than the project using `wasmtime`. For more details, see the [Zulip discussion]. [#&#8203;10270] [Zulip discussion]: https://bytecodealliance.zulipchat.com/#narrow/channel/217126-wasmtime/topic/Wasmtime.2030.20x64.20assembler.20build.20error.20on.20Windows [#&#8203;10270]: https://github.com/bytecodealliance/wasmtime/pull/10270 ### [`v30.0.0`](https://github.com/bytecodealliance/wasmtime/releases/tag/v30.0.0) [Compare Source](https://github.com/bytecodealliance/wasmtime/compare/v29.0.1...v30.0.0) #### 30.0.0 Released 2025-02-20. ##### Added - New `wasmtime-wasi-io` crate provides a `#![no_std]` wasi:io implementation, factored out of `wasmtime-wasi`. Users of `wasmtime-wasi` don't have to depend on this new crate. [#&#8203;10036](https://github.com/bytecodealliance/wasmtime/pull/10036) - Wasmtime's interpreter, Pulley, is now complete and has been listed as [tier 2]. [#&#8203;9897](https://github.com/bytecodealliance/wasmtime/pull/9897) [#&#8203;9884](https://github.com/bytecodealliance/wasmtime/pull/9884) [#&#8203;9943](https://github.com/bytecodealliance/wasmtime/pull/9943) [#&#8203;9944](https://github.com/bytecodealliance/wasmtime/pull/9944) [#&#8203;9983](https://github.com/bytecodealliance/wasmtime/pull/9983) [#&#8203;9966](https://github.com/bytecodealliance/wasmtime/pull/9966) [#&#8203;9935](https://github.com/bytecodealliance/wasmtime/pull/9935) [#&#8203;10034](https://github.com/bytecodealliance/wasmtime/pull/10034) [#&#8203;10057](https://github.com/bytecodealliance/wasmtime/pull/10057) [#&#8203;10095](https://github.com/bytecodealliance/wasmtime/pull/10095) - Wasmtime's CI now checks that the repository builds for `aarch64-apple-ios`. Note that no tests are run for this target, so it's still [tier 3]. [#&#8203;9888](https://github.com/bytecodealliance/wasmtime/pull/9888) - Winch's support for AArch64 and simd on x64 have continued to progress well. Winch additionally now fully supports the `threads` WebAssembly proposal. [#&#8203;9889](https://github.com/bytecodealliance/wasmtime/pull/9889) [#&#8203;9970](https://github.com/bytecodealliance/wasmtime/pull/9970) [#&#8203;9950](https://github.com/bytecodealliance/wasmtime/pull/9950) [#&#8203;9987](https://github.com/bytecodealliance/wasmtime/pull/9987) [#&#8203;9990](https://github.com/bytecodealliance/wasmtime/pull/9990) [#&#8203;9959](https://github.com/bytecodealliance/wasmtime/pull/9959) [#&#8203;10008](https://github.com/bytecodealliance/wasmtime/pull/10008) [#&#8203;10028](https://github.com/bytecodealliance/wasmtime/pull/10028) [#&#8203;10029](https://github.com/bytecodealliance/wasmtime/pull/10029) [#&#8203;10023](https://github.com/bytecodealliance/wasmtime/pull/10023) [#&#8203;10042](https://github.com/bytecodealliance/wasmtime/pull/10042) [#&#8203;10050](https://github.com/bytecodealliance/wasmtime/pull/10050) [#&#8203;10039](https://github.com/bytecodealliance/wasmtime/pull/10039) [#&#8203;10082](https://github.com/bytecodealliance/wasmtime/pull/10082) [#&#8203;10092](https://github.com/bytecodealliance/wasmtime/pull/10092) [#&#8203;10109](https://github.com/bytecodealliance/wasmtime/pull/10109) [#&#8203;10148](https://github.com/bytecodealliance/wasmtime/pull/10148) [#&#8203;10147](https://github.com/bytecodealliance/wasmtime/pull/10147) - The `memory64` WebAssembly feature is now enabled by default. This WebAssembly proposal is now considered a [tier 1] feature. [#&#8203;9937](https://github.com/bytecodealliance/wasmtime/pull/9937) [#&#8203;10159](https://github.com/bytecodealliance/wasmtime/pull/10159) - Wasmtime's full test suite and CI now includes 32-bit platforms such as x86 and armv7 Linux. These platforms have been added to [tier 3] status and use Pulley as their execution backend. [#&#8203;10025](https://github.com/bytecodealliance/wasmtime/pull/10025) - Initial experimental support for WASIp3 and async features of the Component Model have started to land. These features are not yet ready for general-purpose use. [#&#8203;10044](https://github.com/bytecodealliance/wasmtime/pull/10044) [#&#8203;10047](https://github.com/bytecodealliance/wasmtime/pull/10047) [#&#8203;10083](https://github.com/bytecodealliance/wasmtime/pull/10083) [#&#8203;10103](https://github.com/bytecodealliance/wasmtime/pull/10103) - The `wasmtime` CLI now supports using a TOML configuration file via `--config` in addition to CLI options. [#&#8203;9811](https://github.com/bytecodealliance/wasmtime/pull/9811) [#&#8203;10132](https://github.com/bytecodealliance/wasmtime/pull/10132) - Initial support for a new assembler on x64 has been added. [#&#8203;10110](https://github.com/bytecodealliance/wasmtime/pull/10110) [#&#8203;10178](https://github.com/bytecodealliance/wasmtime/pull/10178) ##### Changed - `wasmtime-wasi` split the `WasiView` trait into `IoView` and `WasiView`, and `wasmtime-wasi-http` re-uses `IoView` in `WasiHttpView`. Details on porting for embedders in PR. [#&#8203;10016](https://github.com/bytecodealliance/wasmtime/pull/10016) - `wasmtime-wasi` renamed some exported types and traits. Embedders which use `Pollable`, `InputStream`, `OutputStream`, `Subscribe`, `HostInputStream`, `HostOutputStream`, `PollableFuture`, or `ClosureFuture` from that crate will need to rename those imports to their new names, describe in PR. [#&#8203;10036](https://github.com/bytecodealliance/wasmtime/pull/10036) - Components using a 64-bit linear memory should never have worked before, but they're now rejected earlier in the validation process. [#&#8203;9952](https://github.com/bytecodealliance/wasmtime/pull/9952) - Module validation is now deterministic in the face of multiple errors. [#&#8203;9947](https://github.com/bytecodealliance/wasmtime/pull/9947) - Wasmtime's minimum supported version of Rust is now 1.82.0. [#&#8203;9956](https://github.com/bytecodealliance/wasmtime/pull/9956) - Cranelift will now deduplicate `trap[n]z` instructions. [#&#8203;10004](https://github.com/bytecodealliance/wasmtime/pull/10004) - The `--emit-clif` option to `wasmtime compile` now emits post-optimization CLIF. [#&#8203;10011](https://github.com/bytecodealliance/wasmtime/pull/10011) - The `signals-based-traps` Cargo feature has been removed in favor of auto-detection of available features based on the `#[cfg]` directives available for the target platform. [#&#8203;9941](https://github.com/bytecodealliance/wasmtime/pull/9941) - The `async_stack_zeroing` configuration knob now covers all stack allocations, not just those from the pooling allocator. [#&#8203;10027](https://github.com/bytecodealliance/wasmtime/pull/10027) - Wasmtime should work-by-default on more platforms, even those where Cranelift has no support for the architecture. This is done by ensuring some architecture and platform-specific bits are removed on unknown platforms (and Pulley is used instead). [#&#8203;10107](https://github.com/bytecodealliance/wasmtime/pull/10107) - Wasmtime now compiles on platforms missing 64-bit atomics. [#&#8203;10134](https://github.com/bytecodealliance/wasmtime/pull/10134) [tier 1]: https://docs.wasmtime.dev/stability-tiers.html#tier-1 [tier 2]: https://docs.wasmtime.dev/stability-tiers.html#tier-2 [tier 3]: https://docs.wasmtime.dev/stability-tiers.html#tier-3 ##### Fixed - Fixed a missing case for `Ref::matches_ty` should return `true`. [#&#8203;9985](https://github.com/bytecodealliance/wasmtime/pull/9985) - A bug with using the `single_pass` register allocation algorithm on x64/s390x has been fixed by refactoring how branches are represented. [#&#8203;10086](https://github.com/bytecodealliance/wasmtime/pull/10086) [#&#8203;10087](https://github.com/bytecodealliance/wasmtime/pull/10087) - A bug with argument extensions on riscv64 has been fixed. [#&#8203;10069](https://github.com/bytecodealliance/wasmtime/pull/10069) - The `PartialEq` implementation for `RegisteredType` has been fixed. [#&#8203;10091](https://github.com/bytecodealliance/wasmtime/pull/10091) - The output of `component::bindgen!` now works with `#![no_std]` crates. [#&#8203;10105](https://github.com/bytecodealliance/wasmtime/pull/10105) - Fix `wasmtime wast` when combined with `--fuel`. [#&#8203;10121](https://github.com/bytecodealliance/wasmtime/pull/10121) - The `wat` feature of the C API is now plumbed correctly in a few more locations. [#&#8203;10124](https://github.com/bytecodealliance/wasmtime/pull/10124) - Spurious wake-ups in `blocking_*` methods of `InputStream` and `OutputStream` have been fixed. [#&#8203;10113](https://github.com/bytecodealliance/wasmtime/pull/10113) ### [`v29.0.1`](https://github.com/bytecodealliance/wasmtime/releases/tag/v29.0.1) [Compare Source](https://github.com/bytecodealliance/wasmtime/compare/v29.0.0...v29.0.1) #### 29.0.1 Released 2025-01-21. ##### Fixed - Fix a missing increment in WASIp1-to-WASIp2 adapter which affected WASI configurations that have multiple preopened directories. [#&#8203;10064](https://github.com/bytecodealliance/wasmtime/pull/10064) ### [`v29.0.0`](https://github.com/bytecodealliance/wasmtime/releases/tag/v29.0.0) [Compare Source](https://github.com/bytecodealliance/wasmtime/compare/v28.0.1...v29.0.0) #### 29.0.0 Released 2025-01-20. ##### Added - Winch now supports epoch-based interruption. [#&#8203;9737](https://github.com/bytecodealliance/wasmtime/pull/9737) - Pulley, Wasmtime's WebAssembly interpreter, has seen quite a lot of progress and support fleshed out. It's still not 100% complete but should be about ready to start kicking the tires. [#&#8203;9744](https://github.com/bytecodealliance/wasmtime/pull/9744) - The Wasmtime CLI now supports a `-Wextended-const` flag to control whether the `extended-const` wasm proposal is enabled or not. [#&#8203;9768](https://github.com/bytecodealliance/wasmtime/pull/9768) - Work continues to progress on the AArch64 Winch backend, bringing it closer to completion. [#&#8203;9762](https://github.com/bytecodealliance/wasmtime/pull/9762) [#&#8203;9767](https://github.com/bytecodealliance/wasmtime/pull/9767) [#&#8203;9751](https://github.com/bytecodealliance/wasmtime/pull/9751) [#&#8203;9784](https://github.com/bytecodealliance/wasmtime/pull/9784) [#&#8203;9781](https://github.com/bytecodealliance/wasmtime/pull/9781) [#&#8203;9792](https://github.com/bytecodealliance/wasmtime/pull/9792) [#&#8203;9787](https://github.com/bytecodealliance/wasmtime/pull/9787) [#&#8203;9798](https://github.com/bytecodealliance/wasmtime/pull/9798) [#&#8203;9850](https://github.com/bytecodealliance/wasmtime/pull/9850) - Wasmtime now supports a "custom code publisher" which can be useful when Wasmtime doesn't have built-in support for a particular environment. [#&#8203;9778](https://github.com/bytecodealliance/wasmtime/pull/9778) - Configuration options have been added for `wasmtime-wasi-http` outgoing bodies. [#&#8203;9800](https://github.com/bytecodealliance/wasmtime/pull/9800) - Log prefixes can now be disabled for the `wasmtime serve` command. [#&#8203;9821](https://github.com/bytecodealliance/wasmtime/pull/9821) - A new `WASMTIME_LOG_NO_CONTEXT` environment variable was added to live alongside `WASMTIME_LOG`. [#&#8203;9902](https://github.com/bytecodealliance/wasmtime/pull/9902) - Release artifacts for aarch64-musl targets are now available. [#&#8203;9934](https://github.com/bytecodealliance/wasmtime/pull/9934) ##### Changed - Wasmtime libcalls now return whether a trap happened rather than raising a trap directly to better prepare for the Pulley interpreter and an eventual implementation of Wasm exception-handling. [#&#8203;9710](https://github.com/bytecodealliance/wasmtime/pull/9710) - Wasmtime will now use the Pulley interpreter by default on platforms that are not supported by Cranelift. [#&#8203;9741](https://github.com/bytecodealliance/wasmtime/pull/9741) - Demangling symbols in profiling and debugging has improved to handle failures to demangle C++ symbols. [#&#8203;9756](https://github.com/bytecodealliance/wasmtime/pull/9756) - WASI WIT files have been updated to 0.2.3. [#&#8203;9807](https://github.com/bytecodealliance/wasmtime/pull/9807) - Wasmtime's `bindgen!` macro in `async` mode no longer uses `#[async_trait]` an instead natively uses `async fn` in traits. [#&#8203;9867](https://github.com/bytecodealliance/wasmtime/pull/9867) - Floats are no longer canonicalized flowing into or out of components. [#&#8203;9879](https://github.com/bytecodealliance/wasmtime/pull/9879) - Instance methods are now translated to static methods in DWARF translation. [#&#8203;9898](https://github.com/bytecodealliance/wasmtime/pull/9898) - The C API now supports debug builtins for debugging guest code. [#&#8203;9915](https://github.com/bytecodealliance/wasmtime/pull/9915) ##### Fixed - The header file for `wasmtime_instance_pre_instantiate` in the C API has been fixed. [#&#8203;9770](https://github.com/bytecodealliance/wasmtime/pull/9770) - WebAssembly DWARF is more conservative in its GC pass during translation to native DWARF. [#&#8203;9829](https://github.com/bytecodealliance/wasmtime/pull/9829) - Debugging intrinsics are fixed on Linux to be exported now. [#&#8203;9866](https://github.com/bytecodealliance/wasmtime/pull/9866) ### [`v28.0.1`](https://github.com/bytecodealliance/wasmtime/releases/tag/v28.0.1) [Compare Source](https://github.com/bytecodealliance/wasmtime/compare/v28.0.0...v28.0.1) #### 28.0.1 Released 2025-01-14. ##### Fixed - Fixed deallocating async stacks when using `Store::into_data`. [#&#8203;10009](https://github.com/bytecodealliance/wasmtime/pull/10009) ### [`v28.0.0`](https://github.com/bytecodealliance/wasmtime/releases/tag/v28.0.0) [Compare Source](https://github.com/bytecodealliance/wasmtime/compare/v27.0.0...v28.0.0) #### 28.0.0 Released 2024-12-20. ##### Added - The ISLE DSL used for Cranelift now has a first-class `bool` type. [#&#8203;9593](https://github.com/bytecodealliance/wasmtime/pull/9593) - Cranelift now supports a new single-pass register allocator designed for compile-time performance (unlike the current default which is optimized for runtime-of-generated-code performance). [#&#8203;9611](https://github.com/bytecodealliance/wasmtime/pull/9611) - The `wasmtime` crate now natively supports the `wasm-wave` crate and its encoding of component value types. [#&#8203;8872](https://github.com/bytecodealliance/wasmtime/pull/8872) - A `Module` can now be created from an already-open file. [#&#8203;9571](https://github.com/bytecodealliance/wasmtime/pull/9571) - A new default-enabled crate feature, `signals-based-traps`, has been added to the `wasmtime` crate. When disabled then runtime signal handling is not required by the host. This is intended to help with future effort to port Wasmtime to more platforms. [#&#8203;9614](https://github.com/bytecodealliance/wasmtime/pull/9614) - Linear memories may now be backed by `malloc` in certain conditions when guard pages are disabled, for example. [#&#8203;9614](https://github.com/bytecodealliance/wasmtime/pull/9614) [#&#8203;9634](https://github.com/bytecodealliance/wasmtime/pull/9634) - Wasmtime's `async` feature no longer requires `std`. [#&#8203;9689](https://github.com/bytecodealliance/wasmtime/pull/9689) - The buffer and budget capacity of `OutgoingBody` in `wasmtime-wasi-http` are now configurable. [#&#8203;9670](https://github.com/bytecodealliance/wasmtime/pull/9670) ##### Changed - Wasmtime's external and internal distinction of "static" and "dynamic" memories has been refactored and reworded. All options are preserved but exported under different names with improved documentation about how they all interact with one another. (and everything should be easier to understand) [#&#8203;9545](https://github.com/bytecodealliance/wasmtime/pull/9545) - Each `Store<T>` now caches a single fiber stack in async mode to avoid allocating/deallocating if the store is used multiple times. [#&#8203;9604](https://github.com/bytecodealliance/wasmtime/pull/9604) - Linear memories now have a 32MiB guard region at the end instead of a 2GiB guard region by default. [#&#8203;9606](https://github.com/bytecodealliance/wasmtime/pull/9606) - Wasmtime will no longer validate dependencies between WebAssembly features, instead delegating this work to `wasmparser`'s validator. [#&#8203;9623](https://github.com/bytecodealliance/wasmtime/pull/9623) - Cranelift's `isle-in-source-tree` feature has been re-worked as an environment variable. [#&#8203;9633](https://github.com/bytecodealliance/wasmtime/pull/9633) - Wasmtime's minimum supported Rust version is now 1.81. [#&#8203;9692](https://github.com/bytecodealliance/wasmtime/pull/9692) - Synthetic types in DWARF are now more efficiently represented. [#&#8203;9700](https://github.com/bytecodealliance/wasmtime/pull/9700) - Debug builtins on Windows are now exported correctly. [#&#8203;9706](https://github.com/bytecodealliance/wasmtime/pull/9706) - Documentation on `Config` now clarifies that defaults of some options may differ depending on the selected target or compiler depending on features supported. [#&#8203;9705](https://github.com/bytecodealliance/wasmtime/pull/9705) - Wasmtime's error-related types now all unconditionally implement the `Error` trait, even in `#[no_std]` mode. [#&#8203;9702](https://github.com/bytecodealliance/wasmtime/pull/9702) ##### Fixed - Field type matching for subtyping with wasm GC has been fixed. [#&#8203;9724](https://github.com/bytecodealliance/wasmtime/pull/9724) - Native unwind info generated for s390x has been fixed in the face of tail calls. [#&#8203;9725](https://github.com/bytecodealliance/wasmtime/pull/9725) ### [`v27.0.0`](https://github.com/bytecodealliance/wasmtime/releases/tag/v27.0.0) [Compare Source](https://github.com/bytecodealliance/wasmtime/compare/v26.0.1...v27.0.0) #### 27.0.0 Released 2024-11-20. ##### Added - Support for the Wasm GC proposal is now complete. A new "null" GC has been also added which does not ever collect garbage. [#&#8203;9389](https://github.com/bytecodealliance/wasmtime/pull/9389) [#&#8203;9392](https://github.com/bytecodealliance/wasmtime/pull/9392) [#&#8203;9401](https://github.com/bytecodealliance/wasmtime/pull/9401) [#&#8203;9435](https://github.com/bytecodealliance/wasmtime/pull/9435) [#&#8203;9437](https://github.com/bytecodealliance/wasmtime/pull/9437) [#&#8203;9438](https://github.com/bytecodealliance/wasmtime/pull/9438) [#&#8203;9446](https://github.com/bytecodealliance/wasmtime/pull/9446) [#&#8203;9448](https://github.com/bytecodealliance/wasmtime/pull/9448) [#&#8203;9454](https://github.com/bytecodealliance/wasmtime/pull/9454) [#&#8203;9455](https://github.com/bytecodealliance/wasmtime/pull/9455) [#&#8203;9484](https://github.com/bytecodealliance/wasmtime/pull/9484) - Unstable WIT APIs now have feature gates configured at link-time and new `-Scli-exit-with-code` / `-Snetwork-error-code` options are available as well. [#&#8203;9381](https://github.com/bytecodealliance/wasmtime/pull/9381) [#&#8203;9276](https://github.com/bytecodealliance/wasmtime/pull/9276) - Initial support for the wide-arithmetic proposal has been implemented. [#&#8203;9403](https://github.com/bytecodealliance/wasmtime/pull/9403) [#&#8203;9500](https://github.com/bytecodealliance/wasmtime/pull/9500) - Guests on s390x now implement the "inline probestacks" for Cranelift to more robustly detect stack overflows. [#&#8203;9423](https://github.com/bytecodealliance/wasmtime/pull/9423) - Missing CLI options for the pooling allocator have been filled out. [#&#8203;9447](https://github.com/bytecodealliance/wasmtime/pull/9447) - Cranelift now supports 128-bit atomics on x64. [#&#8203;9459](https://github.com/bytecodealliance/wasmtime/pull/9459) - A new Cargo feature has been added to the `wasmtime` crate to reexport the `wasmparser` dependency. [#&#8203;9485](https://github.com/bytecodealliance/wasmtime/pull/9485) - Support for a new PyTorch backend for wasi-nn has been added. [#&#8203;9234](https://github.com/bytecodealliance/wasmtime/pull/9234) - A new `-Cnative-unwind-info` flag has been added to the `wasmtime` CLI. [#&#8203;9494](https://github.com/bytecodealliance/wasmtime/pull/9494) - Initial support for illumos has been added. [#&#8203;9535](https://github.com/bytecodealliance/wasmtime/pull/9535) - A new `Caller::get_module_export` API has been added. [#&#8203;9525](https://github.com/bytecodealliance/wasmtime/pull/9525) - Basic debug logging has been added to the debug info transformatino. [#&#8203;9526](https://github.com/bytecodealliance/wasmtime/pull/9526) ##### Changed - The WASI WITs vendored are now updated to 0.2.2. [#&#8203;9395](https://github.com/bytecodealliance/wasmtime/pull/9395) - The `wasmtime-wasi-runtime-config` is now named `wasmtime-wasi-config`. [#&#8203;9404](https://github.com/bytecodealliance/wasmtime/pull/9404) - Documentation on the implementation status of WebAssembly proposals has been updated. [#&#8203;9434](https://github.com/bytecodealliance/wasmtime/pull/9434) - Wasmtime's WASI documentation has been overhauled. [#&#8203;9471](https://github.com/bytecodealliance/wasmtime/pull/9471) - The `wasi_config_preopen_dir` in Wasmtime's C API now takes file/directory permissions. [#&#8203;9477](https://github.com/bytecodealliance/wasmtime/pull/9477) - Detection of libunwind vs libgcc is now done with weak symbols. [#&#8203;9479](https://github.com/bytecodealliance/wasmtime/pull/9479) - Winch has improved detection of unsupported features in a `Config`. [#&#8203;9490](https://github.com/bytecodealliance/wasmtime/pull/9490) - Winch now supports fuel-based interruption. [#&#8203;9472](https://github.com/bytecodealliance/wasmtime/pull/9472) - Wasmtime's minimum supported Rust version is now 1.80. [#&#8203;9496](https://github.com/bytecodealliance/wasmtime/pull/9496) - ISLE no longer supports scheme-style booleans. [#&#8203;9522](https://github.com/bytecodealliance/wasmtime/pull/9522) - ISLE now supports block comments. [#&#8203;9529](https://github.com/bytecodealliance/wasmtime/pull/9529) - Support for shared memory in the C API has been added. [#&#8203;9507](https://github.com/bytecodealliance/wasmtime/pull/9507) - Configuration options for guard size regions have been merged into a single option. [#&#8203;9528](https://github.com/bytecodealliance/wasmtime/pull/9528) ##### Fixed - Double-registration of debug information for modules in components has been fixed. [#&#8203;9470](https://github.com/bytecodealliance/wasmtime/pull/9470) - A panic on AArch64 for vector constants has been fixed. [#&#8203;9482](https://github.com/bytecodealliance/wasmtime/pull/9482) - A miscompile with `sdiv` and `INT_MIN / -1` has been fixed on aarch64. [#&#8203;9541](https://github.com/bytecodealliance/wasmtime/pull/9541) ### [`v26.0.1`](https://github.com/bytecodealliance/wasmtime/releases/tag/v26.0.1) [Compare Source](https://github.com/bytecodealliance/wasmtime/compare/v26.0.0...v26.0.1) #### 26.0.1 Released 2024-11-05. ##### Fixed - Update to cap-std 3.4.1, for [#&#8203;9559](https://github.com/bytecodealliance/wasmtime/issues/9559), which fixes a wasi-filesystem sandbox escape on Windows. [CVE-2024-51745](https://github.com/bytecodealliance/wasmtime/security/advisories/GHSA-c2f5-jxjv-2hh8). ### [`v26.0.0`](https://github.com/bytecodealliance/wasmtime/releases/tag/v26.0.0) [Compare Source](https://github.com/bytecodealliance/wasmtime/compare/v25.0.3...v26.0.0) #### 26.0.0 Released 2024-10-22. ##### Added - The "table64" extension of the memory64 proposals to WebAssembly has been implemented. [#&#8203;9206](https://github.com/bytecodealliance/wasmtime/pull/9206) - Initial support has been added for compiling WebAssembly modules with Pulley, Wasmtime's interpreter. Note that the interpreter is not feature complete yet. [#&#8203;9240](https://github.com/bytecodealliance/wasmtime/pull/9240) - Wasmtime can now execute code without relying on host-based signal handlers. [#&#8203;9230](https://github.com/bytecodealliance/wasmtime/pull/9230) - Work has continued on implementing the GC proposals in Wasmtime. [#&#8203;9246](https://github.com/bytecodealliance/wasmtime/pull/9246) [#&#8203;9244](https://github.com/bytecodealliance/wasmtime/pull/9244) [#&#8203;9271](https://github.com/bytecodealliance/wasmtime/pull/9271) [#&#8203;9275](https://github.com/bytecodealliance/wasmtime/pull/9275) [#&#8203;9278](https://github.com/bytecodealliance/wasmtime/pull/9278) [#&#8203;9282](https://github.com/bytecodealliance/wasmtime/pull/9282) [#&#8203;9285](https://github.com/bytecodealliance/wasmtime/pull/9285) [#&#8203;9326](https://github.com/bytecodealliance/wasmtime/pull/9326) [#&#8203;9341](https://github.com/bytecodealliance/wasmtime/pull/9341) [#&#8203;9358](https://github.com/bytecodealliance/wasmtime/pull/9358) - Support for ARM64 Windows has been finished with support for unwinding. Release binaries are now also available for this platform. [#&#8203;9266](https://github.com/bytecodealliance/wasmtime/pull/9266) [#&#8203;9283](https://github.com/bytecodealliance/wasmtime/pull/9283) - The `bindgen!` macro now supports multiple paths to load WIT from. [#&#8203;9288](https://github.com/bytecodealliance/wasmtime/pull/9288) - A new `-W async-stack-size=N` argument has been added to the CLI. [#&#8203;9302](https://github.com/bytecodealliance/wasmtime/pull/9302) - A new `wasmtime completion` subcommand can be used to generate a completion script for the Wasmtime CLI. [#&#8203;9312](https://github.com/bytecodealliance/wasmtime/pull/9312) - Components now support `initialize_copy_on_write_image` like core modules. [#&#8203;9357](https://github.com/bytecodealliance/wasmtime/pull/9357) - Initial support for the ISLE verifier Crocus has landed. [#&#8203;9178](https://github.com/bytecodealliance/wasmtime/pull/9178) ##### Changed - Wasmtime now requires Rust 1.79.0 to compile. [#&#8203;9202](https://github.com/bytecodealliance/wasmtime/pull/9202) - The `future-trailers.get` in `wasi-http` now returns `none` when trailers are absent. [#&#8203;9208](https://github.com/bytecodealliance/wasmtime/pull/9208) - The Cranelift instructions `iadd_cin` and `isub_bin` were removed. The `isub_borrow` and `iadd_carry` instructions were renamed to `{u,s}add_carry` and `{u,s}sub_borrow`. [#&#8203;9199](https://github.com/bytecodealliance/wasmtime/pull/9199) - Winch now supports multi-value results on AArch64. [#&#8203;9218](https://github.com/bytecodealliance/wasmtime/pull/9218) - Some issues related to `shutdown` have been fixed with WASI sockets. [#&#8203;9225](https://github.com/bytecodealliance/wasmtime/pull/9225) - Cranelift now has a Cargo feature to enable support for all native ISAs and not Pulley. [#&#8203;9237](https://github.com/bytecodealliance/wasmtime/pull/9237) - Cranelift support for `StructArgument` in the arm64, riscv64, and s390x backends has been removed. [#&#8203;9258](https://github.com/bytecodealliance/wasmtime/pull/9258) - The pooling allocator no longer limits instances/memories/tables by default. [#&#8203;9257](https://github.com/bytecodealliance/wasmtime/pull/9257) - Stack overflow on an async stack will now print a message that this happened. [#&#8203;9304](https://github.com/bytecodealliance/wasmtime/pull/9304) - Cranelift's `cranelift-wasm` crate has been removed and folded directly into `wasmtime-cranelift`. [#&#8203;9313](https://github.com/bytecodealliance/wasmtime/pull/9313) - Cranelift's `TrapCode` type is now represented with a single byte. [#&#8203;9338](https://github.com/bytecodealliance/wasmtime/pull/9338) ##### Fixed - Stack slots in Cranelift are now aligned from the start instead of the end. [#&#8203;9279](https://github.com/bytecodealliance/wasmtime/pull/9279) - The WASIp1 adapter now correctly handles allocations where the initial alignment consumes the entire allocation. [#&#8203;9356](https://github.com/bytecodealliance/wasmtime/pull/9356) ### [`v25.0.3`](https://github.com/bytecodealliance/wasmtime/releases/tag/v25.0.3) [Compare Source](https://github.com/bytecodealliance/wasmtime/compare/v25.0.2...v25.0.3) #### 25.0.3 Released 2024-11-05. ##### Fixed - Update to cap-std 3.4.1, for [#&#8203;9559](https://github.com/bytecodealliance/wasmtime/issues/9559), which fixes a wasi-filesystem sandbox escape on Windows. [CVE-2024-51745](https://github.com/bytecodealliance/wasmtime/security/advisories/GHSA-c2f5-jxjv-2hh8). ### [`v25.0.2`](https://github.com/bytecodealliance/wasmtime/releases/tag/v25.0.2) [Compare Source](https://github.com/bytecodealliance/wasmtime/compare/v25.0.1...v25.0.2) #### 25.0.2 Released 2024-10-09. ##### Fixed - Fix a runtime crash when combining tail-calls with host imports that capture a stack trace or trap. [GHSA-q8hx-mm92-4wvg](https://github.com/bytecodealliance/wasmtime/security/advisories/GHSA-q8hx-mm92-4wvg) - Fix a race condition could lead to WebAssembly control-flow integrity and type safety violations. [GHSA-7qmx-3fpx-r45m](https://github.com/bytecodealliance/wasmtime/security/advisories/GHSA-7qmx-3fpx-r45m) ### [`v25.0.1`](https://github.com/bytecodealliance/wasmtime/releases/tag/v25.0.1) [Compare Source](https://github.com/bytecodealliance/wasmtime/compare/v25.0.0...v25.0.1) #### 25.0.1 Released 2024-09-24. ##### Added - The `wasmtime` CLI's `-Wmax-wasm-stack` option now automatically configures the async stack size as well. A new `-Wasync-stack-size` option was additionally added to configure it too. [#&#8203;9302](https://github.com/bytecodealliance/wasmtime/pull/9302) ### [`v25.0.0`](https://github.com/bytecodealliance/wasmtime/releases/tag/v25.0.0) [Compare Source](https://github.com/bytecodealliance/wasmtime/compare/v24.0.4...v25.0.0) #### 25.0.0 Released 2024-09-20. ##### Added - The WinML backend of wasmtime-wasi-nn now supports FP16 and I64. [#&#8203;8964](https://github.com/bytecodealliance/wasmtime/pull/8964) - Pooling allocator configuration options for table elements and core instance size can now be changed on the CLI. [#&#8203;9138](https://github.com/bytecodealliance/wasmtime/pull/9138) - Wasmtime now supports the extended-const WebAssembly proposal. [#&#8203;9141](https://github.com/bytecodealliance/wasmtime/pull/9141) - The `wasmtime` crate embedding API now has `ArrayRef` for allocating wasm GC arrays. [#&#8203;9145](https://github.com/bytecodealliance/wasmtime/pull/9145) - Cranelift now has a `stack_switch` CLIF instruction to be used with the WebAssembly stack switching proposal. [#&#8203;9078](https://github.com/bytecodealliance/wasmtime/pull/9078) - There are now more constructors available on `bindgen!`-generated structures for component exports now which use instantiated components rather than pre-instantiated components. [#&#8203;9177](https://github.com/bytecodealliance/wasmtime/pull/9177) ##### Changed - The host bindgen macro now accepts a new `verbose_tracing` option, which will trace the value of `list` arguments. The new behavior of the `tracing` option is that it does not print `list` values without `verbose_tracing` also being present. [#&#8203;9262](https://github.com/bytecodealliance/wasmtime/pull/9262) - Wasmtime's support for WASI is now listed with the 0.2.1 version instead of 0.2.0. This is expected to not cause fallout or breakage, but please open an issue if you see any problems. [#&#8203;9063](https://github.com/bytecodealliance/wasmtime/pull/9063) - Work continues on Winch's AArch64 backend. [#&#8203;9114](https://github.com/bytecodealliance/wasmtime/pull/9114) [#&#8203;9092](https://github.com/bytecodealliance/wasmtime/pull/9092) [#&#8203;9171](https://github.com/bytecodealliance/wasmtime/pull/9171) - Component model resource methods can now be generated as `async` and will do so by default if async is enabled for all functions. [#&#8203;9091](https://github.com/bytecodealliance/wasmtime/pull/9091) - Work has continued on Wasmtime's interpreter backend, Pulley. [#&#8203;9089](https://github.com/bytecodealliance/wasmtime/pull/9089) - The internal implementation of `input-stream` and `output-stream` for filesystems in `wasmtime-wasi` have been refactored to directly implement the corresponding host traits. This additionally helps cleanup the internal organization of host-side resources in `wasmtime-wasi`. [#&#8203;9129](https://github.com/bytecodealliance/wasmtime/pull/9129) - Wasmtime now uses the new "user" stack maps in Cranelift rather than the old regalloc-based stack maps for GC references. [#&#8203;9082](https://github.com/bytecodealliance/wasmtime/pull/9082) - Wasmtime's handling of WebAssembly features now works slightly differently from before to provide better error messages and fewer panics on unsupported WebAssembly features depending on compiler and target selection. Additionally the reference-types WebAssembly proposal is always on-by-default regardless of crate features. [#&#8203;9158](https://github.com/bytecodealliance/wasmtime/pull/9158) [#&#8203;9162](https://github.com/bytecodealliance/wasmtime/pull/9162) - The `wasmtime` CLI will now use the async version of I/O where possible to properly support `-Wtimeout` and timing out instances blocked in I/O. [#&#8203;9184](https://github.com/bytecodealliance/wasmtime/pull/9184) ##### Fixed - Use `tracing::Instrument` in generated bindings when tracing and async are enabled, ensuring that spans aren't present in traces from unrelated async tasks. [#&#8203;9217](https://github.com/bytecodealliance/wasmtime/pull/9217) [#&#8203;9263](https://github.com/bytecodealliance/wasmtime/pull/9263) - Completed support for the `CallHook` API when using the component model. [#&#8203;9196](https://github.com/bytecodealliance/wasmtime/pull/9196) - The compile time for a component model `enum` type with many cases should be much improved now. [#&#8203;9122](https://github.com/bytecodealliance/wasmtime/pull/9122) - Some minor bugfixes have been made for when Wasmtime is working with split DWARF in WebAssembly files. [#&#8203;9109](https://github.com/bytecodealliance/wasmtime/pull/9109) [#&#8203;9132](https://github.com/bytecodealliance/wasmtime/pull/9132) [#&#8203;9134](https://github.com/bytecodealliance/wasmtime/pull/9134) [#&#8203;9139](https://github.com/bytecodealliance/wasmtime/pull/9139) [#&#8203;9151](https://github.com/bytecodealliance/wasmtime/pull/9151) - An issue with bounds checks and dynamic checks has been fixed in Winch to ensure bounds checks are correctly implemented. [#&#8203;9156](https://github.com/bytecodealliance/wasmtime/pull/9156) ### [`v24.0.4`](https://github.com/bytecodealliance/wasmtime/releases/tag/v24.0.4) [Compare Source](https://github.com/bytecodealliance/wasmtime/compare/v24.0.3...v24.0.4) #### 24.0.4 Released 2025-07-18. ##### Fixed - Fix a panic in the host caused by preview1 guests using `fd_renumber`. [CVE-2025-53901](https://github.com/bytecodealliance/wasmtime/security/advisories/GHSA-fm79-3f68-h2fc). - Fix a panic in the preview1 adapter caused by guests using `fd_renumber`. [#&#8203;11277](https://github.com/bytecodealliance/wasmtime/pull/11277) #### 24.0.3 Released 2025-06-24. ##### Fixed - Fix a panic with host-defined tables/globals and concrete reference types. [#&#8203;11103](https://github.com/bytecodealliance/wasmtime/pull/11103) ### [`v24.0.3`](https://github.com/bytecodealliance/wasmtime/releases/tag/v24.0.3) [Compare Source](https://github.com/bytecodealliance/wasmtime/compare/v24.0.2...v24.0.3) #### 24.0.3 Released 2025-06-24. ##### Fixed - Fix a panic with host-defined tables/globals and concrete reference types. [#&#8203;11103](https://github.com/bytecodealliance/wasmtime/pull/11103) ### [`v24.0.2`](https://github.com/bytecodealliance/wasmtime/releases/tag/v24.0.2) [Compare Source](https://github.com/bytecodealliance/wasmtime/compare/v24.0.1...v24.0.2) #### 24.0.2 Released 2024-11-05. ##### Fixed - Update to cap-std 3.4.1, for [#&#8203;9559](https://github.com/bytecodealliance/wasmtime/issues/9559), which fixes a wasi-filesystem sandbox escape on Windows. [CVE-2024-51745](https://github.com/bytecodealliance/wasmtime/security/advisories/GHSA-c2f5-jxjv-2hh8). ### [`v24.0.1`](https://github.com/bytecodealliance/wasmtime/releases/tag/v24.0.1) [Compare Source](https://github.com/bytecodealliance/wasmtime/compare/v24.0.0...v24.0.1) #### 24.0.1 Released 2024-10-09. ##### Fixed - Fix a runtime crash when combining tail-calls with host imports that capture a stack trace or trap. [GHSA-q8hx-mm92-4wvg](https://github.com/bytecodealliance/wasmtime/security/advisories/GHSA-q8hx-mm92-4wvg) - Fix a race condition could lead to WebAssembly control-flow integrity and type safety violations. [GHSA-7qmx-3fpx-r45m](https://github.com/bytecodealliance/wasmtime/security/advisories/GHSA-7qmx-3fpx-r45m) ### [`v24.0.0`](https://github.com/bytecodealliance/wasmtime/releases/tag/v24.0.0) [Compare Source](https://github.com/bytecodealliance/wasmtime/compare/v23.0.3...v24.0.0) #### 24.0.0 Released 2024-08-20. ##### Added - A new `wasmtime_engine_clone` function was added to the C API. [#&#8203;8907](https://github.com/bytecodealliance/wasmtime/pull/8907) - Wasmtime now has basic support for allocating a `StructRef` in the embedder API. [#&#8203;8933](https://github.com/bytecodealliance/wasmtime/pull/8933) - The `wasmtime run` subcommand now support a `--argv0` flag indicating the value of the first element to arguments reported to wasm if it shouldn't be the default of the wasm binary name itself. [#&#8203;8961](https://github.com/bytecodealliance/wasmtime/pull/8961) - Support for Winch on AArch64 continued to improve. [#&#8203;8921](https://github.com/bytecodealliance/wasmtime/pull/8921) [#&#8203;9018](https://github.com/bytecodealliance/wasmtime/pull/9018) [#&#8203;9033](https://github.com/bytecodealliance/wasmtime/pull/9033) [#&#8203;9051](https://github.com/bytecodealliance/wasmtime/pull/9051) - An initial implementation of the `wasi-runtime-config` proposal was added to Wasmtime. [#&#8203;8950](https://github.com/bytecodealliance/wasmtime/pull/8950) [#&#8203;8970](https://github.com/bytecodealliance/wasmtime/pull/8970) [#&#8203;8981](https://github.com/bytecodealliance/wasmtime/pull/8981) - Initial support for f16 and f128 in Cranelift continued to improve. [#&#8203;8893](https://github.com/bytecodealliance/wasmtime/pull/8893) [#&#8203;9045](https://github.com/bytecodealliance/wasmtime/pull/9045) - More types in `wasmtime-wasi-http` implement the `Debug` trait. [#&#8203;8979](https://github.com/bytecodealliance/wasmtime/pull/8979) - The `wasmtime explore` subcommand now supports exploring CLIF too. [#&#8203;8972](https://github.com/bytecodealliance/wasmtime/pull/8972) - Support for SIMD in Winch has begun, but it is not complete yet. [#&#8203;8990](https://github.com/bytecodealliance/wasmtime/pull/8990) [#&#8203;9006](https://github.com/bytecodealliance/wasmtime/pull/9006) - Initial work on Pulley, an interpreter for Wasmtime, has begun. [#&#8203;9008](https://github.com/bytecodealliance/wasmtime/pull/9008) [#&#8203;9013](https://github.com/bytecodealliance/wasmtime/pull/9013) [#&#8203;9014](https://github.com/bytecodealliance/wasmtime/pull/9014) - The `-Wunknown-imports-trap` flag to `wasmtime run` now supports components. [#&#8203;9021](https://github.com/bytecodealliance/wasmtime/pull/9021) - An initial implementation of the `wasi-keyvalue` proposal was added to Wasmtime. [#&#8203;8983](https://github.com/bytecodealliance/wasmtime/pull/8983) [#&#8203;9032](https://github.com/bytecodealliance/wasmtime/pull/9032) [#&#8203;9050](https://github.com/bytecodealliance/wasmtime/pull/9050) [#&#8203;9062](https://github.com/bytecodealliance/wasmtime/pull/9062) - An `unsafe` API has been added to unload process trap handlers. [#&#8203;9022](https://github.com/bytecodealliance/wasmtime/pull/9022) - The s390x backend now fully supports tail calls. [#&#8203;9052](https://github.com/bytecodealliance/wasmtime/pull/9052) ##### Changed - The `flags` type in the component model now has a hard limit of 32-or-fewer flags. For more information about this transition see [WebAssembly/component-model#370](https://github.com/WebAssembly/component-model/issues/370). [#&#8203;8882](https://github.com/bytecodealliance/wasmtime/pull/8882) - Multiple returns for functions in the component model are now gated by default and are planned to be removed. [#&#8203;8965](https://github.com/bytecodealliance/wasmtime/pull/8965) - TCP streams in WASIp2 will now immediately return `StreamError::Closed` when the TCP stream is closed or shut down. [#&#8203;8968](https://github.com/bytecodealliance/wasmtime/pull/8968) [#&#8203;9055](https://github.com/bytecodealliance/wasmtime/pull/9055) - Cranelift will now perform constant propagation on some floating-point operations. [#&#8203;8954](https://github.com/bytecodealliance/wasmtime/pull/8954) - Wasmtime and Cranelift now require at least Rust 1.78.0 to compile. [#&#8203;9010](https://github.com/bytecodealliance/wasmtime/pull/9010) - The `wasmtime::Val` type now implements the `Copy` trait. [#&#8203;9024](https://github.com/bytecodealliance/wasmtime/pull/9024) - Wasmtime's wasi-nn implementation has been updated to track the upstream specification. [#&#8203;9056](https://github.com/bytecodealliance/wasmtime/pull/9056) - Names provided to `trappable_imports` in `bindgen!` are now validated to be used. [#&#8203;9057](https://github.com/bytecodealliance/wasmtime/pull/9057) - Support for multi-package `*.wit` files now requires a `package ...;` header at the top of the file. [#&#8203;9053](https://github.com/bytecodealliance/wasmtime/pull/9053) ### [`v23.0.3`](https://github.com/bytecodealliance/wasmtime/releases/tag/v23.0.3) [Compare Source](https://github.com/bytecodealliance/wasmtime/compare/v23.0.2...v23.0.3) #### 23.0.3 Released 2024-10-09. ##### Fixed - Fix a runtime crash when combining tail-calls with host imports that capture a stack trace or trap. [GHSA-q8hx-mm92-4wvg](https://github.com/bytecodealliance/wasmtime/security/advisories/GHSA-q8hx-mm92-4wvg) - Fix a race condition could lead to WebAssembly control-flow integrity and type safety violations. [GHSA-7qmx-3fpx-r45m](https://github.com/bytecodealliance/wasmtime/security/advisories/GHSA-7qmx-3fpx-r45m) ### [`v23.0.2`](https://github.com/bytecodealliance/wasmtime/releases/tag/v23.0.2) [Compare Source](https://github.com/bytecodealliance/wasmtime/compare/v23.0.1...v23.0.2) #### 23.0.2 Released 2024-08-12. ##### Changed - Building the c-api from crates.io now correctly configures an `include` directory for header files with configured versions of header files. [#&#8203;9102](https://github.com/bytecodealliance/wasmtime/pull/9102) - Wasmtime no longer requires linking with `libm` in Linux builds, which fixes linking against musl in some cases. [#&#8203;9100](https://github.com/bytecodealliance/wasmtime/pull/9100) ### [`v23.0.1`](https://github.com/bytecodealliance/wasmtime/releases/tag/v23.0.1) [Compare Source](https://github.com/bytecodealliance/wasmtime/compare/v23.0.0...v23.0.1) #### 23.0.1 Released 2024-07-22. ##### Fixed - Fixed some issues when auto-publishing crates to crates.io. [#&#8203;8986](https://github.com/bytecodealliance/wasmtime/pull/8986) ### [`v23.0.0`](https://github.com/bytecodealliance/wasmtime/releases/tag/v23.0.0) [Compare Source](https://github.com/bytecodealliance/wasmtime/compare/v22.0.1...v23.0.0) #### 23.0.0 Released 2024-07-22. ##### Added - Support for DWARF debugging information with native debuggers is now implemented for components. [#&#8203;8693](https://github.com/bytecodealliance/wasmtime/pull/8693) - CLIF frontends can now define their own stack maps. [#&#8203;8728](https://github.com/bytecodealliance/wasmtime/pull/8728) [#&#8203;8876](https://github.com/bytecodealliance/wasmtime/pull/8876) - Wasmtime now supports the custom-page-sizes proposal. [#&#8203;8763](https://github.com/bytecodealliance/wasmtime/pull/8763) - This project now publishes a crate named `wasi-preview1-component-adapter-provider` which provides the WASIp1 adapters as constants in Rust code. [#&#8203;8874](https://github.com/bytecodealliance/wasmtime/pull/8874) ##### Changed - Call hooks now have access to the full `StoreContextMut<T>`. [#&#8203;8791](https://github.com/bytecodealliance/wasmtime/pull/8791) - Call hooks have been moved behind an off-by-default compile-time Cargo feature named `call-hook`. [#&#8203;8795](https://github.com/bytecodealliance/wasmtime/pull/8795) [#&#8203;8808](https://github.com/bytecodealliance/wasmtime/pull/8808) - Wasmtime's minimum supported Rust version is now 1.77.0. [#&#8203;8796](https://github.com/bytecodealliance/wasmtime/pull/8796) - Resumable traps have been removed from Cranelift. [#&#8203;8809](https://github.com/bytecodealliance/wasmtime/pull/8809) - Traps are not GC safepoints any more in Cranelift. [#&#8203;8810](https://github.com/bytecodealliance/wasmtime/pull/8810) - Support for Intel memory protection keys is now disabled by default at compile time and is gated behind a Cargo feature. [#&#8203;8813](https://github.com/bytecodealliance/wasmtime/pull/8813) - Exports from components have been refactored and redesigned to support skipping name lookups at runtime where possible. [#&#8203;8786](https://github.com/bytecodealliance/wasmtime/pull/8786) - Wasmtime's lookup of versioned component exports now takes semver into account in the same manner as imports. [#&#8203;8830](https://github.com/bytecodealliance/wasmtime/pull/8830) - Wasmtime's guest profiler will now take samples at hostcall boundaries. [#&#8203;8802](https://github.com/bytecodealliance/wasmtime/pull/8802) - Wasmtime's pooling allocator now by default allows 32-bit linear memories to grow to their full size of 4G. [#&#8203;8849](https://github.com/bytecodealliance/wasmtime/pull/8849) - The size of WASI adapter binaries has been optimized. [#&#8203;8858](https://github.com/bytecodealliance/wasmtime/pull/8858) [#&#8203;8859](https://github.com/bytecodealliance/wasmtime/pull/8859) - The `wasmtime-wasi-http` crate has been refactored to better match the `wasmtime-wasi` crate. [#&#8203;8861](https://github.com/bytecodealliance/wasmtime/pull/8861) - Support for caching `call_indirect` sites has been removed. [#&#8203;8881](https://github.com/bytecodealliance/wasmtime/pull/8881) - Wasmtime's x86\_64 binary releases are now based on AlmaLinux 8 instead of CentOS 7. [#&#8203;8892](https://github.com/bytecodealliance/wasmtime/pull/8892) ##### Fixed - An issue with generated `.debug_loc` sections for native debuggers has been fixed. [#&#8203;8753](https://github.com/bytecodealliance/wasmtime/pull/8753) - Wasmtime's `no_std` build for riscv64 has been fixed. [#&#8203;8770](https://github.com/bytecodealliance/wasmtime/pull/8770) - A bug related to lost `Waker` instances with async stdio streams has been fixed. [#&#8203;8782](https://github.com/bytecodealliance/wasmtime/pull/8782) - Configuration of `trappable_error_type` has been improved in Wasmtime's `bindgen!` macro. [#&#8203;8833](https://github.com/bytecodealliance/wasmtime/pull/8833) - Prints to stdout/stderr without a newline now work better with `wasmtime serve`. [#&#8203;8877](https://github.com/bytecodealliance/wasmtime/pull/8877) - An issue with `br_if` and stack-related state has been fixed in Winch. [#&#8203;8886](https://github.com/bytecodealliance/wasmtime/pull/8886) ### [`v22.0.1`](https://github.com/bytecodealliance/wasmtime/releases/tag/v22.0.1) [Compare Source](https://github.com/bytecodealliance/wasmtime/compare/v22.0.0...v22.0.1) ##### 22.0.1 Released 2024-10-09. ##### Fixed - Fix a runtime crash when combining tail-calls with host imports that capture a stack trace or trap. [GHSA-q8hx-mm92-4wvg](https://github.com/bytecodealliance/wasmtime/security/advisories/GHSA-q8hx-mm92-4wvg) - Fix a race condition could lead to WebAssembly control-flow integrity and type safety violations. [GHSA-7qmx-3fpx-r45m](https://github.com/bytecodealliance/wasmtime/security/advisories/GHSA-7qmx-3fpx-r45m) </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xMjIuMCIsInVwZGF0ZWRJblZlciI6IjQxLjEyMi4wIiwidGFyZ2V0QnJhbmNoIjoibWFzdGVyIiwibGFiZWxzIjpbXX0=-->
This pull request can be merged automatically.
You are not authorized to merge this pull request.
View command line instructions

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin renovate/wasi-common-37.x:renovate/wasi-common-37.x
git switch renovate/wasi-common-37.x

Merge

Merge the changes and update on Forgejo.

Warning: The "Autodetect manual merge" setting is not enabled for this repository, you will have to mark this pull request as manually merged afterwards.

git switch master
git merge --no-ff renovate/wasi-common-37.x
git switch renovate/wasi-common-37.x
git rebase master
git switch master
git merge --ff-only renovate/wasi-common-37.x
git switch renovate/wasi-common-37.x
git rebase master
git switch master
git merge --no-ff renovate/wasi-common-37.x
git switch master
git merge --squash renovate/wasi-common-37.x
git switch master
git merge --ff-only renovate/wasi-common-37.x
git switch master
git merge renovate/wasi-common-37.x
git push origin master
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: pv/sloan#105
No description provided.