@@ -81,24 +81,31 @@ node --experimental-wasm-threads --experimental-wasm-bulk-memory builddir/emscri
8181
8282## wasm32-emscripten limitations and issues
8383
84+ - Heap and stack are limited.
8485- Most stdlib modules with a dependency on external libraries are missing:
8586 `` ctypes `` , `` readline `` , `` sqlite3 `` , `` ssl `` , and more.
8687- Shared extension modules are not implemented yet. All extension modules
8788 are statically linked into the main binary.
89+ The experimental configure option `` --enable-wasm-dynamic-linking `` enables
90+ dynamic extensions.
8891- Processes are not supported. System calls like fork, popen, and subprocess
8992 fail with `` ENOSYS `` or `` ENOSUP `` .
93+ - Only `` AF_INET `` and `` AF_INET6 `` with `` SOCK_STREAM `` (TCP) or
94+ `` SOCK_DGRAM `` (UDP) are available. `` AF_UNIX `` is not supported.
95+ - `` socketpair `` does not work.
9096- Blocking sockets are not available and non-blocking sockets don't work
9197 correctly, e.g. `` socket.accept `` crashes the runtime. `` gethostbyname ``
9298 does not resolve to a real IP address. IPv6 is not available.
9399- The `` select `` module is limited. `` select.select() `` crashes the runtime
94100 due to lack of exectfd support.
95- - The `` *at `` variants of functions (e.g. `` openat `` ) are not available.
96- The `` dir_fd `` argument of * os* module functions can't be used.
97101- Signal support is limited. `` signal.alarm `` , `` itimer `` , `` sigaction ``
98102 are not available or do not work correctly. `` SIGTERM `` exits the runtime.
99103- Most user, group, and permission related function and modules are not
100104 supported or don't work as expected, e.g.`` pwd `` module, `` grp `` module,
101- `` os.setgroups `` , `` os.chown `` , and so on.
105+ `` os.setgroups `` , `` os.chown `` , and so on. `` lchown `` and `lchmod`` are
106+ not available.
107+ - `` umask `` is a no-op.
108+ - hard links (`` os.link `` ) are not supported.
102109- Offset and iovec I/O functions (e.g. `` os.pread `` , `` os.preadv `` ) are not
103110 available.
104111- `` os.mknod `` and `` os.mkfifo ``
@@ -108,17 +115,9 @@ node --experimental-wasm-threads --experimental-wasm-bulk-memory builddir/emscri
108115- `` mmap `` module is unstable. flush (`` msync `` ) can crash the runtime.
109116- Resource-related functions like `` os.nice `` and most functions of the
110117 `` resource `` module are not available.
111- - Some time and datetime features are broken. `` strftime `` and `` strptime ``
112- have known bugs, e.g.
113- [ %% quoting] ( https://github.com/emscripten-core/emscripten/issues/16155 ) ,
114- [ %U off-by-one] ( https://github.com/emscripten-core/emscripten/issues/16156 ) .
115- Extended glibc formatting features are not available.
118+ - glibc extensions for date and time formatting are not available.
116119- `` locales `` module is affected by musl libc issues,
117120 [ bpo-46390] ( https://bugs.python.org/issue46390 ) .
118- - `` uuid `` module is affected by
119- [ memory leak] ( https://github.com/emscripten-core/emscripten/issues/16081 )
120- and crasher in Emscripten's `` freeaddrinfo `` ,
121- - Recursive `` glob `` leaks file descriptors.
122121- Python's object allocator `` obmalloc `` is disabled by default.
123122- `` ensurepip `` is not available.
124123
0 commit comments