-
-
Notifications
You must be signed in to change notification settings - Fork 138
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
Initial attempt at support for Python 3.13. #264
Conversation
Thank you for this PR! I glanced at this and it seems to have all the components for 3.13 support. Let's see what CI says... |
Once the CI is happy I'll rebase this and squash it down to one commit, and them mark it ready for review. |
The builds are failing because the patches for |
A bit more progress this morning. A couple of new patches, disabling one (for apple-cross support), but a local Linux build still fails, just much much farther into the process. |
Well, I think I've reached the end of what I can reasonably accomplish at this point. The current build failure (in |
Edit: Perhaps not actually, while it uses |
Here's the build changes in the release notes |
I presume the newly bundled mimalloc is going to require some sort of handling. Still not quite sure what's causing this particular failure though. |
python-build-standalone is likely seeing this error because we statically compile extension modules. This configuration isn't well tested by upstream CPython. So it's likely that nobody has noticed yet. Since this source file was generated by clinic, it is possibly a bug in the clinic code generator, which may want to emit the missing |
I'm very excited to start testing free-threading support after this is fixed and merged! |
Issue opened: python/cpython#119661 |
In the interests of saving the GitHub Actions runners from running jobs that will fail anyway, I'm running local builds now :-) The patch from Victor for the clinic modules was successful, those build properly now. The next problem is:
I suspect that support for building against |
Turns out that one was easy to fix... I'm continuing onwards :-) |
OK, new status report: the actual CPython build succeeds, but then the process stops because |
|
Here's a hacky patch that gets to the next failure :) zanieb@805c76f |
I've just updated to 3.13.0b2, and removed the patch that was only needed until that release. |
The next problem I'm encountering is during validation:
which is confusing because at least some of these look correct in Edit: Resolved now. |
I left a FIXME in |
Great I'll take a swing at updating that. |
Now I have a spicy failure on just the PGO builds
|
And this error on the MUSL builds
|
A little more progress... the branch is now building 3.13.0rc1, and it appears that the PGO and MUSL issues are all that is left on Linux. There are still problems on Windows and macOS which are quite beyond my ability to troubleshoot. |
I got Windows building over in zanieb#7 — I condensed that into a single commit zanieb@2110d43 |
I also got the 3.13 musl builds working over in zanieb#6 Now it's really just the PGO problems (and some complexity around the macOS target version) |
With zanieb#6 (comment) I fixed the PGO build failures on Linux :) |
And now in zanieb#8 it looks like I've got the macOS builds passing. Tomorrow I'll polish it and put up a new pull request. |
Fantastic! |
Closing in favor of #319. |
A continuation of the wonderful work by @kpfleming in #264 Adds initial support for Python 3.13 using CPython 3.13.0rc1. There are a few caveats and interesting details: - BOLT is disabled. There's a segmentation fault in the tests with the BOLT instrumented binaries. The BOLT optimizations are not critical, so we'll follow up on this separately. [See more context](zanieb#6 (comment)). - `mpdecimal` is now built from source on Windows. We already did this in Unix builds, but in Windows we were still using the bundled library. The bundled library is no longer used upstream and it seemed prudent to switch though it will remain available until 3.15. [See more context](zanieb#6 (comment)). - Apple cross-compilation is not available. I have a patch that adds support, but need to test it and it's not needed for these builds. [See more context](zanieb@447fb86). - `run_tests.py` was removed upstream. We provide a compatibility script that calls the appropriate command still so that our distributions are stable. We may want to change how `run_tests.py` is declared in the distribution metadata though. [See more context](#319 (comment)) .
No description provided.