-
-
Notifications
You must be signed in to change notification settings - Fork 168
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
Enable the tail call interpreter on 3.14+ clang builds #524
Conversation
Coool |
cpython-unix/build-cpython.sh
Outdated
@@ -348,6 +348,12 @@ if [ "${PYBUILD_PLATFORM}" != "macos" ]; then | |||
fi | |||
fi | |||
|
|||
# On Python 3.14+, enable the tail calling interpreter which is more performant. | |||
# https://docs.python.org/3.14/using/configure.html#cmdoption-with-tail-call-interp | |||
if [ -n "${PYTHON_MEETS_MINIMUM_VERSION_3_14}" ]; then |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
For the time being, you also need to check that the current toolchain is clang-19 or higher and the arch is aarch64/x86_64. GCC doesn't support this.
Btw, not sure why Aarch64-linux-gnu is failing. It's using gcc but I was under the impression that had clang support. That's a separate thing altogether though.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think we use gcc when we cross-compile — #484 tracks switching to native runners so we can use clang and PGO.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
(there was some confusion about this in #484 (comment) so we'll see..)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM, to my untrained eye at least.
If you want a quick and dirty test that it's doing something for performance. Try running alpha4 vs alpha5 on this short pystones benchmark script. I got a 25% speedup or so on my computer https://gist.github.com/Fidget-Spinner/e7bf204bf605680b0fc1540fe3777acf |
CI passed on 1f3cccd — rebasing onto |
A quick bench of 2to3 on a not so quiet machine
And the pystones bench
|
No description provided.