3 ms·
tl;dr SIMD - new: vector types - 128-bit width FP and integer types and values for SIMD, with related instructions (and validation thereof) plus memory instruc
by paulsmith 4y ago
tl;dr SIMD
- new: vector types - 128-bit width FP and integer types and values for SIMD, with related instructions (and validation thereof) plus memory instructions for wide loads, and support in the runtime for wide values (consts, etc.), and in the text and binary formats
- value types (i32, i64, f32, f64) are now called number types
- new: reference types - basically function pointers and pointers to objects in the host, values of which can be stored in tables, with related instructions for accessing them and checking for null
- new: table instructions - get, set, size, grow, fill, copy, etc.
- element and data segments - not new but expanded definition and given more runtime support (added to the store, can be referenced by address like other runtime objects), plus new indices for referencing segments and their modes (basically, how they are initialized during instantiation)
- limited form of subtyping allowed when importing external values
- result types can be a sequence of values (i.e., multiple return values from functions)
- new instructions to avoid trapping on floating-point to integer conversions ("saturation")
- simonw 4y agoThis is exactly what I was looking for, thanks very much!
- teabee89 4y agoThere's also: Multiple values[1] "Generalized the result type of blocks and functions to allow for multiple values; in addition, introduced the ability to have block parameters: - Function types allow more than one result - Block types can be arbitrary function types" [1] https://www.w3.org/TR/wasm-core-2/appendix/changes.html#multiple-values https://www.w3.org/TR/wasm-core-2/appendix/changes.html#mult...