Skip to content

Conversation

@mr-c
Copy link
Contributor

@mr-c mr-c commented Dec 1, 2025

Fixes the issue reported at mypyc/librt#14 (comment)

For Python 3.12, the pyodide_2024_0 ABI requires emscripten 3.1.58, which uses an older version of SIMDe that doesn't include all the NEON 64-bit intrinsics we need.

So we use the 32-bit NEON intrinsics implementation of base64 for Pyodide on Python 3.12, and use the 64-bit NEON intrinsics implementations of base64 for Pyodide on Python 3.13.

Pyodide for Python 3.13, the pyodide_2025_0 ABI, uses emscripten 4.0.9

Emscripten versdion 3.1.63 appears to be the first version with the updated SIMDe versions:

emscripten-core/emscripten@6223c43

For Python 3.12, pyodide requires emscripten 3.1.{46,52,58}, which uses an older
version of SIMDe that doesn't include all the NEON 64-bit intrinsics we need.

So we use the 32-bit NEON intrinsics implementation of base64 for Pyodide on
Python 3.12, and use the 64-bit NEON intrinsics implementations of
base64 for Pyodide on Python 3.13.

Pyodide for Python 3.13 uses emscripten 4.0.{6,8,9}

Emscripten versdion 3.1.63 appears to be the first version with the
updated SIMDe versions:

emscripten-core/emscripten@6223c43
@mr-c
Copy link
Contributor Author

mr-c commented Dec 1, 2025

I tested locally with the librt smoke tests using pyodide & Python 3.13 and Python 3.12 😃

@mr-c
Copy link
Contributor Author

mr-c commented Dec 1, 2025

cc @ilevkivskyi @emmatyping @JukkaL

Copy link
Member

@ilevkivskyi ilevkivskyi left a comment

Choose a reason for hiding this comment

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

Nice, thanks!

@mr-c
Copy link
Contributor Author

mr-c commented Dec 1, 2025

Thank you @ilevkivskyi

test builds are running over in the librt repo: https://github.com/mypyc/librt/actions/runs/19826036041/job/56799561968?pr=19

@ilevkivskyi ilevkivskyi merged commit ad0f41e into python:master Dec 1, 2025
13 checks passed
@mr-c mr-c deleted the pyodide_2024_py312 branch December 1, 2025 14:54
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.

2 participants