Skip to content

Commit

Permalink
blog: add release post for Wasmtime 27.0 (#110)
Browse files Browse the repository at this point in the history
* blog: add release post for Wasmtime 27.0

Signed-off-by: Eric Gregory <[email protected]>

* remove vscode file

Signed-off-by: Eric Gregory <[email protected]>

---------

Signed-off-by: Eric Gregory <[email protected]>
  • Loading branch information
ericgregory authored Nov 25, 2024
1 parent d9ef934 commit d91b0b9
Showing 1 changed file with 60 additions and 0 deletions.
60 changes: 60 additions & 0 deletions _posts/2024-11-25-wasmtime-27.0.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
---
title: "Wasmtime 27.0: Complete Wasm GC support, PyTorch backend, and more"
author: "Eric Gregory"
date: "2024-11-25"
github_name: "ericgregory"
excerpt_separator: <!--end_excerpt-->
---

This month's v27.0 release of [Wasmtime](https://github.com/bytecodealliance/wasmtime)&mdash;the fast, secure, and standards-compliant WebAssembly (Wasm) runtime&mdash;includes enhancements such as completed support for the new Wasm garbage collection proposal, a PyTorch backend for `wasi-nn`, link-time feature gate configuration for unstable WIT APIs, and more.

<!--end_excerpt-->

* Wasmtime now fully supports the [WebAssembly Garbage Collection (GC) proposal](https://github.com/WebAssembly/gc). In addition to the GC, Wasmtime now includes a "null" collector that bump-allocates until the heap is exhausted.
* A PyTorch backend [has been added](https://github.com/bytecodealliance/wasmtime/pull/9234) for `wasi-nn`, gated behind a `wasi-nn` feature flag: `--features pytorch`
* Wasmtime's in-repo documentation has been updated to track [the implementation of various Wasm proposals in Wasmtime](https://github.com/bytecodealliance/wasmtime/blob/main/docs/stability-wasm-proposals.md).

## What's new in Wasmtime v27.0

There are a variety of enhancements and fixes in Wasmtime 27.0. You can find the release notes [here](https://github.com/bytecodealliance/wasmtime/releases/tag/v27.0.0).

### Added

* Support for the Wasm GC proposal is now complete. A new "null" GC has also been added, which does not ever collect garbage. [#9389](https://github.com/bytecodealliance/wasmtime/pull/9389) [#9392](https://github.com/bytecodealliance/wasmtime/pull/9392) [#9401](https://github.com/bytecodealliance/wasmtime/pull/9401) [#9435](https://github.com/bytecodealliance/wasmtime/pull/9435) [#9437](https://github.com/bytecodealliance/wasmtime/pull/9437) [#9438](https://github.com/bytecodealliance/wasmtime/pull/9438) [#9446](https://github.com/bytecodealliance/wasmtime/pull/9446) [#9448](https://github.com/bytecodealliance/wasmtime/pull/9448) [#9454](https://github.com/bytecodealliance/wasmtime/pull/9454) [#9455](https://github.com/bytecodealliance/wasmtime/pull/9455) [#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. [#9381](https://github.com/bytecodealliance/wasmtime/pull/9381) [#9276](https://github.com/bytecodealliance/wasmtime/pull/9276)
* Initial support for the wide-arithmetic proposal has been implemented. [#9403](https://github.com/bytecodealliance/wasmtime/pull/9403) [#9500](https://github.com/bytecodealliance/wasmtime/pull/9500)
* Guests on s390x now implement the "inline probestacks" for Cranelift to more robustly detect stack overflows. [#9423](https://github.com/bytecodealliance/wasmtime/pull/9423)
* Missing CLI options for the pooling allocator have been filled out. [#9447](https://github.com/bytecodealliance/wasmtime/pull/9447)
* Cranelift now supports 128-bit atomics on x64. [#9459](https://github.com/bytecodealliance/wasmtime/pull/9459)
* A new Cargo feature has been added to the `wasmtime` crate to reexport the `wasmparser` dependency. [#9485](https://github.com/bytecodealliance/wasmtime/pull/9485)
* Support for a new PyTorch backend for wasi-nn has been added. [#9234](https://github.com/bytecodealliance/wasmtime/pull/9234)
* A new `-Cnative-unwind-info` flag has been added to the `wasmtime` CLI. [#9494](https://github.com/bytecodealliance/wasmtime/pull/9494)
* Initial support for illumos has been added. [#9535](https://github.com/bytecodealliance/wasmtime/pull/9535)
* A new `Caller::get_module_export` API has been added. [#9525](https://github.com/bytecodealliance/wasmtime/pull/9525)
* Basic debug logging has been added to the debug info transformatino. [#9526](https://github.com/bytecodealliance/wasmtime/pull/9526)

### Changed

* The WASI WITs vendored are now updated to 0.2.2. [#9395](https://github.com/bytecodealliance/wasmtime/pull/9395)
* The `wasmtime-wasi-runtime-config` is now named `wasmtime-wasi-config`. [#9404](https://github.com/bytecodealliance/wasmtime/pull/9404)
* Documentation on the implementation status of WebAssembly proposals has been updated. [#9434](https://github.com/bytecodealliance/wasmtime/pull/9434)
* Wasmtime's WASI documentation has been overhauled. [#9471](https://github.com/bytecodealliance/wasmtime/pull/9471)
* The `wasi_config_preopen_dir` in Wasmtime's C API now takes file/directory permissions. [#9477](https://github.com/bytecodealliance/wasmtime/pull/9477)
* Detection of libunwind vs libgcc is now done with weak symbols. [#9479](https://github.com/bytecodealliance/wasmtime/pull/9479)
* Winch has improved detection of unsupported features in a `Config`. [#9490](https://github.com/bytecodealliance/wasmtime/pull/9490)
* Winch now supports fuel-based interruption. [#9472](https://github.com/bytecodealliance/wasmtime/pull/9472)
* Wasmtime's minimum supported Rust version is now 1.80. [#9496](https://github.com/bytecodealliance/wasmtime/pull/9496)
* ISLE no longer supports scheme-style booleans. [#9522](https://github.com/bytecodealliance/wasmtime/pull/9522)
* ISLE now supports block comments. [#9529](https://github.com/bytecodealliance/wasmtime/pull/9529)
* Support for shared memory in the C API has been added. [#9507](https://github.com/bytecodealliance/wasmtime/pull/9507)
* Configuration options for guard size regions have been merged into a single option. [#9528](https://github.com/bytecodealliance/wasmtime/pull/9528)

### Fixed

* Double-registration of debug information for modules in components has been fixed. [#9470](https://github.com/bytecodealliance/wasmtime/pull/9470)
* A panic on AArch64 for vector constants has been fixed. [#9482](https://github.com/bytecodealliance/wasmtime/pull/9482)
* A miscompile with `sdiv` and `INT_MIN / -1` has been fixed on aarch64. [#9541](https://github.com/bytecodealliance/wasmtime/pull/9541)

## Get involved

Thanks to Dan Gohman for his work on this release. If you'd like to get involved with Wasmtime, join our [Zulip chat](https://bytecodealliance.zulipchat.com/) and check out the [Wasmtime contributors' guide](https://docs.wasmtime.dev/contributing.html) for more information.

0 comments on commit d91b0b9

Please sign in to comment.