-
Notifications
You must be signed in to change notification settings - Fork 2.2k
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
[WIP] Python 3.12 [ci skip] #46205
[WIP] Python 3.12 [ci skip] #46205
Conversation
6300546
to
7320569
Compare
The list of
|
36bfe48
to
81f3e70
Compare
I believe it's time to start retiring
Dependants of
Related: Upstream explicitly disclaims support for Python 3.12 in PySide 2 EDIT: With an update of |
I think there is a PyQt5 segfault problem. See, e.g., EDIT: resolved by pulling |
6e6dd4b
to
36da526
Compare
@leahneukirchen To get Vim to compile, I added
I don't know if there are any adverse effects here, or whether an earlier version should be specified via the argument. |
29cc8d9
to
85a0e74
Compare
Most packages aren't run through checks, although I do check some. We don't have the resources to verify that all Python packages pass checks when doing these massive updates. The new gmpy2 and mpmath pass checks, but I didn't go further than that. |
Ok, I'll investigate, but in principle I would assume sympy is broken with 3.12. I'd rather void stays in the non-bleeding edge... I'm working on cypari2 now. Note that fpylll and sagemath should suffer from the same issue: cpython doesn't want us to look inside longint, but they don't want to offer a C alternative (they want us to use There seems to be a "cheating" way which is to peek inside the structs, i.e. change |
I pushed a couple of upstream changes to support Python 3.12 in sympy, and the only test that still reports a failure is a deprecation warning. (I believe many of the failing tests fixed by one of the patches do nothing more substantial than silence unexpected deprecation warnings, which are meaningless failures anyway.) I don't have a strong opinion about how to resolve the long representation problem in fpylll, cypari2 or sagemath. Ideally upstream decides on a path forward and we backport it. Going through the Python interpreter seems like a suboptimal approach, but is consistent with CPython's intention to conceal implementation details and allow future optimizations. If our package upstreams don't have an accepted patch, the "cheat" (going through |
See: https://github.com/tornaria/void-packages/tree/py312 I'll do fpylll and sagemath tomorrow, and do PRs to upstream that fix. Hopefully I can use the same .h file for all projects, and the api and the 3.12 implementation is taken verbatim from python so it should be easier to move forward in case python 3.13 changes again. |
Better link: ahesford/void-packages@py312...tornaria:void-packages:py312 So far cypari and fpylll are working (tested x86_64 and i686). Patches taken from submitted upstream PRs (sagemath/cypari2#138 and fplll/fpylll#254). @ahesford: if you squash, you may want to rename the commit to "patch and rebuild". I'm now building sagemath deps. I expect a similar fix will suffice. |
df0ff03
to
73fd7c1
Compare
f2py in numpy is broken. Steps to reproduce: With python 3.11, it works:
With python 3.12, it doesn't work:
|
BTW, it's also the case that For sagemath, we only call f2py as a module so 1.26 with python 3.11 is ok. |
dfa70f7
to
b08ed85
Compare
I have a candidate for sagemath here: ahesford/void-packages@py312...tornaria:void-packages:py312. I split the patches in two:
|
1c6cdc8
to
14cae67
Compare
Just to follow up on my earlier comment, you should be able to build Vim with Python 3.12 without need to use tricks like turning on stable ABI now (fixed in vim/vim#13290). The flag to use stable ABI is fine to use btw, it's just unnecessary since you aren't using dynamic library loading anyway. |
Thanks for the heads-up. |
As summer (in the northern hemisphere) turns to autumn, and the leaves begin to turn, so too does the Python version begin to turn... this time to 3.12.
[ci skip]