Uh oh!
There was an error while loading. Please reload this page.
gh-124621: Emscripten: Support pyrepl in browser - #136931
Conversation
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.
hoodmane
commented
Jul 21, 2025
@adqm If you want to work on any of the followup tasks, let me know. I'm happy to meet / provide suggestions as well if you need them. |
hoodmane
commented
Jul 21, 2025
!buildbot emscripten |
bedevere-bot
commented
Jul 21, 2025
🤖 New build scheduled with the buildbot fleet by @hoodmane for commit 50c9932 🤖 Results will be shown at: https://buildbot.python.org/all/#/grid?branch=refs%2Fpull%2F136931%2Fmerge The command will test the builders whose names match following regular expression: The builders matched are:
|
hoodmane
commented
Jul 21, 2025
!buildbot emscripten |
bedevere-bot
commented
Jul 21, 2025
🤖 New build scheduled with the buildbot fleet by @hoodmane for commit c83eb65 🤖 Results will be shown at: https://buildbot.python.org/all/#/grid?branch=refs%2Fpull%2F136931%2Fmerge The command will test the builders whose names match following regular expression: The builders matched are:
|
hoodmane
commented
Jul 21, 2025
!buildbot emscripten |
bedevere-bot
commented
Jul 21, 2025
🤖 New build scheduled with the buildbot fleet by @hoodmane for commit 60e65f5 🤖 Results will be shown at: https://buildbot.python.org/all/#/grid?branch=refs%2Fpull%2F136931%2Fmerge The command will test the builders whose names match following regular expression: The builders matched are:
|
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Co-authored-by: Éric <merwok@netwok.org>
Sorry, @hoodmane and @ambv, I could not cleanly backport this to |
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 <lukasz@langa.pl> Co-authored-by: Éric <merwok@netwok.org> (cherry picked from commit c933a6b)
GH-136978 is a backport of this pull request to the 3.14 branch. |
…GH-136931) 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. (cherry picked from commit c933a6b) Co-authored-by: Hood Chatham <roberthoodchatham@gmail.com> Co-authored-by: Łukasz Langa <lukasz@langa.pl> Co-authored-by: Éric <merwok@netwok.org>
GH-136988 is a backport of this pull request to the 3.14 branch. |
If there is an error, we have to return `-errno` not positive errno. Included in backport of pythonGH-136931: python#136988
…H-136988) 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. (cherry picked from commit c933a6b) Co-authored-by: Hood Chatham <roberthoodchatham@gmail.com> Co-authored-by: Łukasz Langa <lukasz@langa.pl> Co-authored-by: Éric <merwok@netwok.org>
adqm
commented
Jul 23, 2025
Exciting stuff!
@hoodmane, I'm certainly happy to help where I can, which is probably more on the web-UI side than on the low-level-details side (though I'd be happy to learn more there, too). If there are particular things you think it would be helpful for me to look at, just let me know; otherwise, I'll poke at the demo and see where to go from there. Happy to coordinate however makes sense for you. |
hoodmane
commented
Jul 23, 2025
Help with the UI or anything is very welcome! |
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 <lukasz@langa.pl> Co-authored-by: Éric <merwok@netwok.org>
If there is an error, we have to return `-errno` not positive errno. Included in backport of pythonGH-136931: python#136988
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 <lukasz@langa.pl> Co-authored-by: Éric <merwok@netwok.org>
If there is an error, we have to return `-errno` not positive errno. Included in backport of pythonGH-136931: python#136988
…GH-136931) (pythonGH-136988) 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. (cherry picked from commit c933a6b) Co-authored-by: Hood Chatham <roberthoodchatham@gmail.com> Co-authored-by: Łukasz Langa <lukasz@langa.pl> Co-authored-by: Éric <merwok@netwok.org>
Basic support for pyrepl in Emscripten. Limitations:
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.
cc @ambv