This issue is intended as a place for discussion about approaches we can all use to improve our assurances that we correctly implement this proposal. A place to share relevant papers, moonshot ideas, etc...
Unlike many other Wasm proposals,1 we can't effectively exercise this proposal's additions to the language by just simply generating pseudo-random Wasm modules that contain this proposal's new instruction and feeding those into the system under test.
Off the top of my head, we need to additionally do things like
- actually spawn multiple threads
- check whether the dynamic trace of accesses across threads is valid given the happens-before relationships imposed by those operations used to make those accesses
- ideally avoid dead locks in these generated concurrent programs
This issue is intended as a place for discussion about approaches we can all use to improve our assurances that we correctly implement this proposal. A place to share relevant papers, moonshot ideas, etc...
Unlike many other Wasm proposals,1 we can't effectively exercise this proposal's additions to the language by just simply generating pseudo-random Wasm modules that contain this proposal's new instruction and feeding those into the system under test.
Off the top of my head, we need to additionally do things like
Footnotes
To some degree everything here applies equally to the original threads proposal, but shared-everything threads expands the scope much further. ↩