Skip to content

Commit 8e01d18

Browse files
alexcrichtondicej
andauthored
Add release notes (#12040)
* Add release notes * Update RELEASES.md Co-authored-by: Joel Dice <joel.dice@fermyon.com> --------- Co-authored-by: Joel Dice <joel.dice@fermyon.com>
1 parent 3af1532 commit 8e01d18

File tree

1 file changed

+161
-0
lines changed

1 file changed

+161
-0
lines changed

RELEASES.md

Lines changed: 161 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,169 @@ Unreleased.
44

55
### Added
66

7+
* Initial work has begun to support WebAssembly-level debugging natively in
8+
Wasmtime. This is intended to complement today's preexisting DWARF-level
9+
debugging, but this work will be portable and operate at the WebAssembly level
10+
of abstraction rather than the machine-level. Note that this work is not yet
11+
complete at this time but is expected to get filled out over the coming
12+
releases.
13+
[#11768](https://github.com/bytecodealliance/wasmtime/pull/11768)
14+
[#11769](https://github.com/bytecodealliance/wasmtime/pull/11769)
15+
[#11873](https://github.com/bytecodealliance/wasmtime/pull/11873)
16+
[#11892](https://github.com/bytecodealliance/wasmtime/pull/11892)
17+
[#11895](https://github.com/bytecodealliance/wasmtime/pull/11895)
18+
19+
* The pooling allocator now exposes more metrics about unused slots.
20+
[#11789](https://github.com/bytecodealliance/wasmtime/pull/11789)
21+
22+
* The [Wizer] and [component-init] projects have been merged into Wasmtime under
23+
a new `wasmtime wizer` CLI subcommand and `wasmtime-wizer` crate. This is
24+
mostly a drop-in replacement for both with a minor caveat that the
25+
initialization function is now called `wizer-initialize` instead of
26+
`wizer.initialize` to be compatible with components.
27+
[#11805](https://github.com/bytecodealliance/wasmtime/pull/11805)
28+
[#11851](https://github.com/bytecodealliance/wasmtime/pull/11851)
29+
[#11853](https://github.com/bytecodealliance/wasmtime/pull/11853)
30+
[#11855](https://github.com/bytecodealliance/wasmtime/pull/11855)
31+
[#11857](https://github.com/bytecodealliance/wasmtime/pull/11857)
32+
[#11863](https://github.com/bytecodealliance/wasmtime/pull/11863)
33+
[#11866](https://github.com/bytecodealliance/wasmtime/pull/11866)
34+
[#11867](https://github.com/bytecodealliance/wasmtime/pull/11867)
35+
[#11877](https://github.com/bytecodealliance/wasmtime/pull/11877)
36+
[#11876](https://github.com/bytecodealliance/wasmtime/pull/11876)
37+
[#11878](https://github.com/bytecodealliance/wasmtime/pull/11878)
38+
[#11891](https://github.com/bytecodealliance/wasmtime/pull/11891)
39+
[#11897](https://github.com/bytecodealliance/wasmtime/pull/11897)
40+
[#11898](https://github.com/bytecodealliance/wasmtime/pull/11898)
41+
42+
[Wizer]: https://github.com/bytecodealliance/wizer
43+
[component-init]: https://github.com/dicej/component-init
44+
45+
* The `Config::wasm_feature` method is now public.
46+
[#11812](https://github.com/bytecodealliance/wasmtime/pull/11812)
47+
48+
* Enabling the wasm exceptions proposal is now exposed in the C API.
49+
[#11861](https://github.com/bytecodealliance/wasmtime/pull/11861)
50+
51+
* The `wasmtime` crate now has a `custom-sync-primitives` Cargo feature which
52+
enables using custom synchronization primitives defined by the embedder. This
53+
is useful in `no_std` targets where the default panic-on-contention primitives
54+
are not appropriate.
55+
[#11836](https://github.com/bytecodealliance/wasmtime/pull/11836)
56+
57+
* Wasmtime now supports unsafe intrinsics to be used for compile-time builtins.
58+
This can be used to provide give low-level access to host APIs/memory to a
59+
guest program in a controlled fashion.
60+
[#11825](https://github.com/bytecodealliance/wasmtime/pull/11825)
61+
[#11918](https://github.com/bytecodealliance/wasmtime/pull/11918)
62+
63+
* The `signals_based_traps` configuration option is now exposed in the C API.
64+
[#11879](https://github.com/bytecodealliance/wasmtime/pull/11879)
65+
66+
* A new `EqRef::from_i31` function has been added.
67+
[#11884](https://github.com/bytecodealliance/wasmtime/pull/11884)
68+
69+
* The `wasmtime serve` subcommand will, by default, now reuse instances when
70+
used with WASIp3 components. This increases throughput and additionally
71+
showcases the concurrent features of WASIp3. This can be opted-out-of on the
72+
CLI as well.
73+
[#11807](https://github.com/bytecodealliance/wasmtime/pull/11807)
74+
75+
* The C++ API for components has been filled out and implemented.
76+
[#11880](https://github.com/bytecodealliance/wasmtime/pull/11880)
77+
[#11889](https://github.com/bytecodealliance/wasmtime/pull/11889)
78+
[#11988](https://github.com/bytecodealliance/wasmtime/pull/11988)
79+
80+
* A new `ResourceDynamic` type, similar to `Resource<T>`, has been added to
81+
support host resources that have a dynamic tag at runtime rather than a
82+
statically known tag at compile time. This is then used to implement resources
83+
in the C/C++ API as well.
84+
[#11885](https://github.com/bytecodealliance/wasmtime/pull/11885)
85+
[#11920](https://github.com/bytecodealliance/wasmtime/pull/11920)
86+
87+
* The C/C++ API of Wasmtime now supports the custom-page-sizes wasm proposal.
88+
[#11890](https://github.com/bytecodealliance/wasmtime/pull/11890)
89+
90+
* Initial support has been added for the cooperative multithreading component
91+
model proposal in Wasmtime, built on async primitives.
92+
[#11751](https://github.com/bytecodealliance/wasmtime/pull/11751)
93+
94+
* The `epoch_deadline_callback` Rust API has been bound in C++.
95+
[#11945](https://github.com/bytecodealliance/wasmtime/pull/11945)
96+
97+
* A new `Request::into_http` helper has been added to the WASIp3 implementation
98+
of `wasi:http`.
99+
[#11843](https://github.com/bytecodealliance/wasmtime/pull/11843)
100+
101+
* A `define_unknown_imports_as_traps` function has been added to the C API.
102+
[#11962](https://github.com/bytecodealliance/wasmtime/pull/11962)
103+
104+
* A callback-based implementation of `stdout` and `stderr` has been added to the
105+
C API for WASI configuration.
106+
[#11965](https://github.com/bytecodealliance/wasmtime/pull/11965)
107+
7108
### Changed
8109

110+
* Running async functions in the component model now operates at the
111+
`Store`-level of abstraction rather than an `Instance`.
112+
[#11796](https://github.com/bytecodealliance/wasmtime/pull/11796)
113+
114+
* The `wasmtime serve` subcommand no longer mistakenly spawns an epoch thread
115+
per-request and instead uses a single epoch thread.
116+
[#11817](https://github.com/bytecodealliance/wasmtime/pull/11817)
117+
118+
* The `component-model-async` Cargo feature is now on-by-default. Note that it
119+
is still gated at runtime by default. Also note that Wasmtime 39 does not include
120+
[#12031](https://github.com/bytecodealliance/wasmtime/pull/12031) which means
121+
that components using async produced with the latest `wasm-tools` will not run
122+
in Wasmtime 39. To run async components it's recommended to pin to a
123+
historical version of `wasm-tools` and guest toolchains for now.
124+
[#11822](https://github.com/bytecodealliance/wasmtime/pull/11822)
125+
126+
* Bindings generated by `wiggle` no longer use `async_trait`.
127+
[#11839](https://github.com/bytecodealliance/wasmtime/pull/11839)
128+
129+
* Wasmtime's documentation now has an example of a plugin system using Wasmtime.
130+
[#11848](https://github.com/bytecodealliance/wasmtime/pull/11848)
131+
132+
* Profiling with perfmap or jitdump now uses `O_APPEND` to be more amenable to
133+
other engines in the same process also using perfmap/jitdump.
134+
[#11865](https://github.com/bytecodealliance/wasmtime/pull/11865)
135+
136+
* The `wasmtime-wasi-http` crate now uses `UnsyncBoxBody` to clarify that `Sync`
137+
is not required.
138+
[#11941](https://github.com/bytecodealliance/wasmtime/pull/11941)
139+
140+
* A `.` character is now used instead of `/` int he `bindgen!` macro to separate
141+
interface members.
142+
[#11947](https://github.com/bytecodealliance/wasmtime/pull/11947)
143+
144+
* The `func_new` function for component linkers now provides the type to the
145+
callee so it knows the type that the component that imported it is using.
146+
[#11944](https://github.com/bytecodealliance/wasmtime/pull/11944)
147+
148+
* The `component::Func` type now has a type accessor and the old params/result
149+
accessors were deleted.
150+
[#11943](https://github.com/bytecodealliance/wasmtime/pull/11943)
151+
152+
* Wasmtime now requires Rust 1.89.0 or later to compile.
153+
[#11959](https://github.com/bytecodealliance/wasmtime/pull/11959)
154+
155+
### Fixed
156+
157+
* Some panics handling shapes of components with resources in various locations
158+
has been fixed.
159+
[#11798](https://github.com/bytecodealliance/wasmtime/pull/11798)
160+
161+
* Bitwise float operations in Cranelift have been fixed on aarch64.
162+
[#11811](https://github.com/bytecodealliance/wasmtime/pull/11811)
163+
164+
* An off-by-one in the bounds check of wasm atomic operations has been fixed.
165+
[#11977](https://github.com/bytecodealliance/wasmtime/pull/11977)
166+
167+
* Bounds-check elision now happens again with 4 GiB guard pages.
168+
[#11973](https://github.com/bytecodealliance/wasmtime/pull/11973)
169+
9170
--------------------------------------------------------------------------------
10171

11172
Release notes for previous releases of Wasmtime can be found on the respective

0 commit comments

Comments
 (0)