-
Notifications
You must be signed in to change notification settings - Fork 10
Open
Description
The deterministic profile excludes all rules marked \exprofiles{\PROFDET}. It defines a sub-language that does not exhibit any incidental non-deterministic behaviour:
All [:ref:`NaN <syntax-nan>`](https://github.com/WebAssembly/relaxed-simd/blob/main/document/core/appendix/profiles.rst#id22) values [:ref:`generated <aux-nans>`](https://github.com/WebAssembly/relaxed-simd/blob/main/document/core/appendix/profiles.rst#id24) by [:ref:`floating-point instructions <syntax-instr-numeric>`](https://github.com/WebAssembly/relaxed-simd/blob/main/document/core/appendix/profiles.rst#id26) are canonical and positive.
Even under this profile, the [|MEMORYGROW|](https://github.com/WebAssembly/relaxed-simd/blob/main/document/core/appendix/profiles.rst#id32) and [|TABLEGROW|](https://github.com/WebAssembly/relaxed-simd/blob/main/document/core/appendix/profiles.rst#id34) instructions technically remain [:ref:`non-deterministic <exec-memory.grow>`](https://github.com/WebAssembly/relaxed-simd/blob/main/document/core/appendix/profiles.rst#id28), in order to be able to indicate resource exhaustion.
When threads is merged in the future, is this expected to include shared memory and instructions that operate on it?
If so, then deterministic may not be the best name as that's a huge source of non-determinism. Not sure on a better name though.
If not, then what is the expected ecosystem that will be adopting the 'deterministic' profile? At least for browsers, we'd maybe have an opt-in preference for this for variants like Tor. Other than that, I had heard that having a deterministic variants of these relaxed-simd instructions could be valuable for cloud platforms but I would guess they would also like to have shared memory.
cc'ing @rossberg as I think this came from the profiles proposal originally.
Metadata
Metadata
Assignees
Labels
No labels