Skip to content

Commit f34746b

Browse files
committed
Document component model proposal statuses
Currently we don't actually have any documentation for the status of various changes to the component model and how they're implemented in Wasmtime. WASI 0.3.1 requires that the map and implements features are active, and we didn't previously have a place to look at to see the status of the implementation of these features. I've attempted to write things down here and fill in the boxes for the various proposals/changes in-flight.
1 parent e6a948e commit f34746b

1 file changed

Lines changed: 41 additions & 1 deletion

File tree

docs/stability-wasm-proposals.md

Lines changed: 41 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -111,12 +111,52 @@ The emoji legend is:
111111
[`custom-page-sizes`]: https://github.com/WebAssembly/custom-page-sizes
112112
[`compact-import-section`]: https://github.com/WebAssembly/compact-import-section
113113

114+
## Component-model Proposals
115+
116+
Changes to the component model aren't currently of the same shape as changes to
117+
core WebAssembly itself. There are not proposal repositories at this time but
118+
instead the main specification has "emoji gates" where parts of the
119+
specification are considered gated when the descriptive text or binary form is
120+
annotated with a specific emoji. This is the status of the emojis and
121+
implementations within Wasmtime.
122+
123+
**On-by-default proposals**
124+
125+
| Proposal | Emoji | Phase 4 | Tests | Finished | Fuzzed | API | C API |
126+
|---------------------------|-------|---------|-------|----------|--------|-----|--------|
127+
| async | 🔀 |||||| 🚧[^c1]|
128+
129+
**Off-by-default proposals**
130+
131+
| Proposal | Emoji | Phase 4 | Tests | Finished | Fuzzed | API | C API |
132+
|---------------------------|-------|---------|-------|----------|--------|-----|--------|
133+
| map | 🗺️ |||||||
134+
| implements | 🏷️ |||||||
135+
| more async options [^c2] | 🚝 |||||||
136+
| stackful async [^c2] | 🚟 |||||||
137+
| threading | 🧵 |||||||
138+
| fixed-length-lists | 🔧 ||| 🚧 ||||
139+
| memory64 | 🐘 || 🚧 | 🚧 || 🚧 ||
140+
| error-context [^c2] | 📝 ||||| 🚧 ||
141+
| values | 🪙 |||||||
142+
| nested names | 🪺 |||||||
143+
| canonical names | 🔗 |||||||
144+
| shared-everything-threads | 🧵② |||||||
145+
146+
[^c1]: Tracked in [#13705](https://github.com/bytecodealliance/wasmtime/issues/13705)
147+
[^c2]: These features were sliced out of the original async proposal for the
148+
component model but the implementation remains in Wasmtime.
149+
150+
151+
114152
## Feature requirements
115153

116154
For each column in the above tables, this is a further explanation of its meaning:
117155

118156
* **Phase 4** - The proposal must be in phase 4, or greater, of [the
119-
WebAssembly standardization process][phases].
157+
WebAssembly standardization process][phases]. For component model proposals
158+
this means that the WASI subgroup has voted to include this feature in a
159+
release of WASI
120160

121161
* **Tests** - All spec tests must be passing in Wasmtime and where appropriate
122162
Wasmtime-specific tests, for example for the API, should be passing. Tests

0 commit comments

Comments
 (0)