Build tail-calling Python 3.15 on Windows#970
Conversation
|
The |
|
VS 2026 is now available in beta in the |
|
Hmm it seems the TC interpreter doesn't support FT Python at the moment. That's probably a bug in CPython. Could you please open an issue and we'll look into it? |
|
Tracked upstream here python/cpython#144549 |
|
Alright, the bug has been fixed upstream, and should be released for Python 3.15a6 which is in 4 days time on 10 Feb. |
Awesome! I was about to file an issue but had to step out to walk my dog. Nice to see the issue reported in fixed before I got back 😄 |
Fidget-Spinner
left a comment
There was a problem hiding this comment.
I don't know this repo that well, but LGTM from the CPython side of things.
|
It seems it's using VS2022 to build the 3.15 interpreter instead of VS2026. |
| IF "%MATRIX_VS_VERSION%"=="2026" ( | ||
| call "C:\Program Files\Microsoft Visual Studio\18\Enterprise\VC\Auxiliary\Build\%MATRIX_VCVARS%" | ||
| ) ELSE ( | ||
| call "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\%MATRIX_VCVARS%" | ||
| ) |
There was a problem hiding this comment.
Can we just template the year via an environment variable too? lol
There was a problem hiding this comment.
VS 2026 uses 18 for the directory, vs 2022 for VS 2022. We could template the Visual Studio directory as another variable but the version is sufficient it just needs some lookup logic.
|
Oh dear, CI seems to get stuck building openssl with crypto libraries with platformtoolset v145. https://github.com/astral-sh/python-build-standalone/actions/runs/21767390686/job/62806779374?pr=970 |
But OpenSSL built fine on the GIL version and back in https://github.com/astral-sh/python-build-standalone/actions/runs/21735578158/job/62699943965 with the v145 toolset. Maybe this is just flaky? |
|
Ah proceeding again. I've noticed the logs sometimes get out of sync. |
| # Build tail-calling Python for 3.15+ | ||
| # TODO(jjh) Remove 'not freethreaded' when 3.15.0a6 released | ||
| if python_version.startswith("3.15") and platform == "x64" and not freethreaded: | ||
| args.append("/property:PlatformToolset=v145") |
There was a problem hiding this comment.
Just a heads up: since python/cpython#144679, the PlatformToolset doesn't have to be specified any longer if VS2026 is used to build.
Build Python 3.15 with tail-calling enabled on Windows.
Use Visual Studio 2026 and v145 platform toolset for this build.
closes #933