<feed xmlns='http://www.w3.org/2005/Atom'>
<title>cpython.git/Python/emscripten_syscalls.c, branch v3.15.0a1</title>
<subtitle>https://github.com/python/cpython.git</subtitle>
<link rel='alternate' type='text/html' href='http://service.techsat.com/oss-git/cpython.git/'/>
<entry>
<title>gh-124621: Emscripten: Fix __syscall_ioctl patch (GH-136993)</title>
<updated>2025-07-22T13:05:26Z</updated>
<author>
<name>Hood Chatham</name>
<email>roberthoodchatham@gmail.com</email>
</author>
<published>2025-07-22T13:05:26Z</published>
<link rel='alternate' type='text/html' href='http://service.techsat.com/oss-git/cpython.git/commit/?id=12d2f373b9f70ce43a985ada2832ca31ca66fc20'/>
<id>12d2f373b9f70ce43a985ada2832ca31ca66fc20</id>
<content type='text'>
If there is an error, we have to return `-errno` not positive errno.
Included in backport of GH-136931: #136988
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
If there is an error, we have to return `-errno` not positive errno.
Included in backport of GH-136931: #136988
</pre>
</div>
</content>
</entry>
<entry>
<title>gh-124621: Emscripten: Support pyrepl in browser (GH-136931)</title>
<updated>2025-07-22T10:13:38Z</updated>
<author>
<name>Hood Chatham</name>
<email>roberthoodchatham@gmail.com</email>
</author>
<published>2025-07-22T10:13:38Z</published>
<link rel='alternate' type='text/html' href='http://service.techsat.com/oss-git/cpython.git/commit/?id=c933a6bb329bb97bc7e448388dad1b74f7ca4baa'/>
<id>c933a6bb329bb97bc7e448388dad1b74f7ca4baa</id>
<content type='text'>
Basic support for pyrepl in Emscripten. Limitations:
* requires JSPI
* no signal handling implemented

As followup work, it would be nice to implement a webworker variant
for when JSPI is not available and proper signal handling.

Because it requires JSPI, it doesn't work in Safari. Firefox requires
setting an experimental flag. All the Chromiums have full support since
May. Until we make it work without JSPI, let's keep the original web_example
around.

Co-authored-by: Łukasz Langa &lt;lukasz@langa.pl&gt;
Co-authored-by: Éric &lt;merwok@netwok.org&gt;</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Basic support for pyrepl in Emscripten. Limitations:
* requires JSPI
* no signal handling implemented

As followup work, it would be nice to implement a webworker variant
for when JSPI is not available and proper signal handling.

Because it requires JSPI, it doesn't work in Safari. Firefox requires
setting an experimental flag. All the Chromiums have full support since
May. Until we make it work without JSPI, let's keep the original web_example
around.

Co-authored-by: Łukasz Langa &lt;lukasz@langa.pl&gt;
Co-authored-by: Éric &lt;merwok@netwok.org&gt;</pre>
</div>
</content>
</entry>
<entry>
<title>gh-136251: Improvements to WASM demo REPL (GH-136252)</title>
<updated>2025-07-21T09:56:45Z</updated>
<author>
<name>adam j hartz</name>
<email>adam@smatz.net</email>
</author>
<published>2025-07-21T09:56:45Z</published>
<link rel='alternate' type='text/html' href='http://service.techsat.com/oss-git/cpython.git/commit/?id=d1d526afe7ce62c787b150652a2ba136cb949d74'/>
<id>d1d526afe7ce62c787b150652a2ba136cb949d74</id>
<content type='text'>
Co-authored-by: Hood Chatham &lt;roberthoodchatham@gmail.com&gt;</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Co-authored-by: Hood Chatham &lt;roberthoodchatham@gmail.com&gt;</pre>
</div>
</content>
</entry>
<entry>
<title>gh-124621: Emscripten: Fix regression in use-after-close error handling (#136837)</title>
<updated>2025-07-19T19:43:50Z</updated>
<author>
<name>Hood Chatham</name>
<email>roberthoodchatham@gmail.com</email>
</author>
<published>2025-07-19T19:43:50Z</published>
<link rel='alternate' type='text/html' href='http://service.techsat.com/oss-git/cpython.git/commit/?id=800d37feca2e0ea3343995b3b817b653db2f9034'/>
<id>800d37feca2e0ea3343995b3b817b653db2f9034</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>gh-124621: Emscripten: Add support for async input devices (GH-136822)</title>
<updated>2025-07-19T15:14:29Z</updated>
<author>
<name>Hood Chatham</name>
<email>roberthoodchatham@gmail.com</email>
</author>
<published>2025-07-19T15:14:29Z</published>
<link rel='alternate' type='text/html' href='http://service.techsat.com/oss-git/cpython.git/commit/?id=7ae4749d064bd49b0dd96172fee20c1f1678d9e9'/>
<id>7ae4749d064bd49b0dd96172fee20c1f1678d9e9</id>
<content type='text'>
This is useful for implementing proper `input()`. It requires the
JavaScript engine to support the wasm JSPI spec which is now stage 4.
It is supported on Chrome since version 137 and on Firefox and node
behind a flag.

We override the `__wasi_fd_read()` syscall with our own variant that
checks for a readAsync operation. If it has it, we use our own async
variant of `fd_read()`, otherwise we use the original `fd_read()`.
We also add a variant of `FS.createDevice()` called
`FS.createAsyncInputDevice()`.

Finally, if JSPI is available, we wrap the `main()` symbol with
`WebAssembly.promising()` so that we can stack switch from `fd_read()`.
If JSPI is not available, attempting to read from an AsyncInputDevice
will raise an `OSError`.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This is useful for implementing proper `input()`. It requires the
JavaScript engine to support the wasm JSPI spec which is now stage 4.
It is supported on Chrome since version 137 and on Firefox and node
behind a flag.

We override the `__wasi_fd_read()` syscall with our own variant that
checks for a readAsync operation. If it has it, we use our own async
variant of `fd_read()`, otherwise we use the original `fd_read()`.
We also add a variant of `FS.createDevice()` called
`FS.createAsyncInputDevice()`.

Finally, if JSPI is available, we wrap the `main()` symbol with
`WebAssembly.promising()` so that we can stack switch from `fd_read()`.
If JSPI is not available, attempting to read from an AsyncInputDevice
will raise an `OSError`.
</pre>
</div>
</content>
</entry>
<entry>
<title>gh-127146: Emscripten: Make os.umask() actually work (#136706)</title>
<updated>2025-07-16T13:33:15Z</updated>
<author>
<name>Hood Chatham</name>
<email>roberthoodchatham@gmail.com</email>
</author>
<published>2025-07-16T13:33:15Z</published>
<link rel='alternate' type='text/html' href='http://service.techsat.com/oss-git/cpython.git/commit/?id=12e52cad718723636a96042f9399634392285c44'/>
<id>12e52cad718723636a96042f9399634392285c44</id>
<content type='text'>
Provide a stub implementation of umask that is enough to get some tests passing.
More work is needed upstream in Emscripten to make all umask tests to pass.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Provide a stub implementation of umask that is enough to get some tests passing.
More work is needed upstream in Emscripten to make all umask tests to pass.</pre>
</div>
</content>
</entry>
<entry>
<title>gh-127146: Report uid in Emscripten + node as native uid (#136509)</title>
<updated>2025-07-16T04:17:16Z</updated>
<author>
<name>Hood Chatham</name>
<email>roberthoodchatham@gmail.com</email>
</author>
<published>2025-07-16T04:17:16Z</published>
<link rel='alternate' type='text/html' href='http://service.techsat.com/oss-git/cpython.git/commit/?id=e81c4e84b3a8688a367099e3adf9b2fcf914447f'/>
<id>e81c4e84b3a8688a367099e3adf9b2fcf914447f</id>
<content type='text'>
Corrects the handling of getuid on emscripten, which was consistently reporting as 0.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Corrects the handling of getuid on emscripten, which was consistently reporting as 0.
</pre>
</div>
</content>
</entry>
</feed>
