This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author christian.heimes
Recipients christian.heimes
Date 2022-01-09.14:47:43
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1641739663.52.0.433507958543.issue46315@roundup.psfhosted.org>
In-reply-to
Content
WASI is another WebAssembly platform similar to Emscripten (bpo-40280). Simply speaking Emscripten binaries (wasm32-emscripten) run inside a browser while WASI binaries target standalone runtimes like wasmtime [2][3] on the host. The lines are a bit blurry, as it is possible to run WASI binaries in the browser with help of JS-polyfills. WASI provides compile once, run anyway with JIT/AOT and sandboxing.

WASI is still under development and is lacking several core features:

- threading support and pthread API
- sockets
- signals are emulated (_WASI_EMULATED_SIGNAL and -lwasi-emulated-signal)
- DAC APIs like chmod, umask
- user-related APIs like pwd, grp
- dup(), dup2(), F_DUPFD

For 3.11 I plan to fix our use of #ifdef HAVE_FEATURE to make it easier to experiment with WASI. The pthread APIs need stubs, which I won't commit to 3.11 upstream yet.

[1] https://wasi.dev/
[2] https://github.com/bytecodealliance/wasmtime
[3] https://hacks.mozilla.org/2019/03/standardizing-wasi-a-webassembly-system-interface/
History
Date User Action Args
2022-01-09 14:47:43christian.heimessetrecipients: + christian.heimes
2022-01-09 14:47:43christian.heimessetmessageid: <1641739663.52.0.433507958543.issue46315@roundup.psfhosted.org>
2022-01-09 14:47:43christian.heimeslinkissue46315 messages
2022-01-09 14:47:43christian.heimescreate