@@ -81,24 +81,31 @@ node --experimental-wasm-threads --experimental-wasm-bulk-memory builddir/emscri
81
81
82
82
## wasm32-emscripten limitations and issues
83
83
84
+ - Heap and stack are limited.
84
85
- Most stdlib modules with a dependency on external libraries are missing:
85
86
`` ctypes `` , `` readline `` , `` sqlite3 `` , `` ssl `` , and more.
86
87
- Shared extension modules are not implemented yet. All extension modules
87
88
are statically linked into the main binary.
89
+ The experimental configure option `` --enable-wasm-dynamic-linking `` enables
90
+ dynamic extensions.
88
91
- Processes are not supported. System calls like fork, popen, and subprocess
89
92
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.
90
96
- Blocking sockets are not available and non-blocking sockets don't work
91
97
correctly, e.g. `` socket.accept `` crashes the runtime. `` gethostbyname ``
92
98
does not resolve to a real IP address. IPv6 is not available.
93
99
- The `` select `` module is limited. `` select.select() `` crashes the runtime
94
100
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.
97
101
- Signal support is limited. `` signal.alarm `` , `` itimer `` , `` sigaction ``
98
102
are not available or do not work correctly. `` SIGTERM `` exits the runtime.
99
103
- Most user, group, and permission related function and modules are not
100
104
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.
102
109
- Offset and iovec I/O functions (e.g. `` os.pread `` , `` os.preadv `` ) are not
103
110
available.
104
111
- `` os.mknod `` and `` os.mkfifo ``
@@ -108,17 +115,9 @@ node --experimental-wasm-threads --experimental-wasm-bulk-memory builddir/emscri
108
115
- `` mmap `` module is unstable. flush (`` msync `` ) can crash the runtime.
109
116
- Resource-related functions like `` os.nice `` and most functions of the
110
117
`` 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.
116
119
- `` locales `` module is affected by musl libc issues,
117
120
[ 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.
122
121
- Python's object allocator `` obmalloc `` is disabled by default.
123
122
- `` ensurepip `` is not available.
124
123
0 commit comments