diff options
author | Christian Heimes <christian@python.org> | 2022-05-19 10:43:16 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-05-19 10:43:16 (GMT) |
commit | 137fd3d88aa46669f5717734e823f4c594ab2843 (patch) | |
tree | a527865e1f3729ef3d7c69a43d08072d8d837d9c /Tools/wasm/README.md | |
parent | e48ac9c1003c3816198cbfb6132a995150f9b048 (diff) | |
download | cpython-137fd3d88aa46669f5717734e823f4c594ab2843.zip cpython-137fd3d88aa46669f5717734e823f4c594ab2843.tar.gz cpython-137fd3d88aa46669f5717734e823f4c594ab2843.tar.bz2 |
gh-90473: Decrease recursion limit and skip tests on WASI (GH-92803)
Diffstat (limited to 'Tools/wasm/README.md')
-rw-r--r-- | Tools/wasm/README.md | 21 |
1 files changed, 19 insertions, 2 deletions
diff --git a/Tools/wasm/README.md b/Tools/wasm/README.md index 83806f0..977b2bb 100644 --- a/Tools/wasm/README.md +++ b/Tools/wasm/README.md @@ -220,10 +220,27 @@ AddType application/wasm wasm # WASI (wasm32-wasi) -WASI builds require [WASI SDK](https://github.com/WebAssembly/wasi-sdk) and -currently [wasix](https://github.com/singlestore-labs/wasix) for POSIX +WASI builds require [WASI SDK](https://github.com/WebAssembly/wasi-sdk) 15.0+ +and currently [wasix](https://github.com/singlestore-labs/wasix) for POSIX compatibility stubs. +## WASI limitations and issues (WASI SDK 15.0) + +A lot of Emscripten limitations also apply to WASI. Noticable restrictions +are: + +- Call stack size is limited. Default recursion limit and parser stack size + are smaller than in regular Python builds. +- ``socket(2)`` cannot create new socket file descriptors. WASI programs can + call read/write/accept on a file descriptor that is passed into the process. +- ``socket.gethostname()`` and host name resolution APIs like + ``socket.gethostbyname()`` are not implemented and always fail. +- ``chmod(2)`` is not available. It's not possible to modify file permissions, + yet. A future version of WASI may provide a limited ``set_permissions`` API. +- File locking (``fcntl``) is not available. +- ``os.pipe()``, ``os.mkfifo()``, and ``os.mknod()`` are not supported. + + # Detect WebAssembly builds ## Python code |