Skip to content

Update Documentation for Emscripten Builds #1621

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 5 commits into
base: main
Choose a base branch
from

Conversation

adqm
Copy link

@adqm adqm commented Aug 2, 2025

This patch includes some updates to the instructions for building for Emscripten, based on discussion from python/cpython#137312 and python/cpython#137025, with the goal of reducing duplicated information between the dev guide and Tools/wasm/README.md in the CPython repo.

Specifically, this patch makes the following changes:

  • updates emsdk version information

  • links to Tools/wasm/README.md for usage instructions beyond what's shown here

  • adds a note about ccache

  • adds a note about minimum Python version required for Tools/wasm/emscripten build


📚 Documentation preview 📚: https://cpython-devguide--1621.org.readthedocs.build/

* update emsdk version information

* link to `Tools/wasm/README.md` for usage instructions beyond what's shown here

* add note about ccache

* add note about minimum Python version for `Tools/wasm/emscripten build`
Copy link
Contributor

@freakboy3742 freakboy3742 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good; a couple of minor corrections/clarifications inline.

CPython you're building:

* For building CPython 3.14, use ``emsdk`` version ``4.0.11``.
* For building CPython 3.13, use ``emsdk`` version ``4.0.5``.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I know this isn't correct... but I don't know what is correct. I'm fairly certian it's 3.something...

However, it might be better to leave this line off entirely. Emscripten isn't Tier 3 for 3.13. Having specific build instructions implies (to me) that it should work, and that definitely won't be the case.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That sounds good to me; sorry for the error! Makes sense only to include it for 3.14+.

Comment on lines +509 to +512
It is possible (but not necessary) to enable ``ccache`` for Emscripten builds
by setting the ``EM_COMPILER_WRAPPER`` environment, but this step will only
take effect if it is done **after** ``emsdk_env.sh`` is sourced (otherwise, the
sourced script removes the environment variable):
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@hoodmane This was the historical guidance for ccache... is it still required now that the --config-cache option is part of the emscripten build script?

Copy link
Contributor

@hoodmane hoodmane Aug 14, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, compilation cache and configure cache are different things.

@hoodmane
Copy link
Contributor

hoodmane commented Aug 3, 2025

I'll review this tomorrow. Thanks @adqm !

@python python deleted a comment from hoodmane Aug 3, 2025
Copy link
Contributor

@freakboy3742 freakboy3742 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'll leave it to @hoodmane to provide final confirmation that this is all correct (including the EM_COMPILER_WRAPPER thing); but otherwise, I'm happy with this.

Copy link
Contributor

@freakboy3742 freakboy3742 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Two minor updates following Hugo's agreement to allow bumping the EMSDK version for RC2.

@hoodmane - are you able to confirm the last details so we can merge this?

Co-authored-by: Russell Keith-Magee <russell@keith-magee.com>
``Tools/wasm/emscripten build`` command (which should be run with a recent
version of Python you have installed on your machine):
``Tools/wasm/emscripten build`` command, which should be run with a recent
version of Python (3.13 or newer) already installed on your machine:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've been running it with 3.12 but it's harmless to say 3.13 here.

Copy link
Contributor

@hoodmane hoodmane left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good to me. Thanks @adqm !

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants