https://github.com/python/cpython/commit/cbd81d59cfea4f7b881642e804646da3a328a712 commit: cbd81d59cfea4f7b881642e804646da3a328a712 branch: main author: Chris Eibl <[email protected]> committer: itamaro <[email protected]> date: 2026-04-12T08:49:18+03:00 summary:
GH-148047: Check early whether tail-calling is possible for MSVC builds on Windows (#148036) Rather than failing late when compiling e.g. a debug configuration ``` build.bat -c debug --tail-call-interp ``` with hundreds of ``` error C4737: Unable to perform required tail call. Performance may be degraded. ``` -- fail early with an explicit error message for configurations that are not supported by MSVC. This is a follow-up on https://github.com/python/cpython/issues/140513 / https://github.com/python/cpython/pull/140548 files: A Misc/NEWS.d/next/Build/2026-04-03-20-09-46.gh-issue-148047.HE6iGK.rst M PCbuild/pythoncore.vcxproj diff --git a/Misc/NEWS.d/next/Build/2026-04-03-20-09-46.gh-issue-148047.HE6iGK.rst b/Misc/NEWS.d/next/Build/2026-04-03-20-09-46.gh-issue-148047.HE6iGK.rst new file mode 100644 index 00000000000000..e43a2695a1316e --- /dev/null +++ b/Misc/NEWS.d/next/Build/2026-04-03-20-09-46.gh-issue-148047.HE6iGK.rst @@ -0,0 +1,2 @@ +Fail fast with an explicit and clear error message if tail-calling is not +possible for MSVC builds on Windows. Patch by Chris Eibl. diff --git a/PCbuild/pythoncore.vcxproj b/PCbuild/pythoncore.vcxproj index 61bee29c0af3d6..9356a66dfb4642 100644 --- a/PCbuild/pythoncore.vcxproj +++ b/PCbuild/pythoncore.vcxproj @@ -749,4 +749,13 @@ <Target Name="_DeletePyBuildDirTxt" BeforeTargets="PrepareForBuild"> <Delete Files="$(OutDir)pybuilddir.txt" /> </Target> + + <Target Name="_CheckTailCalling" BeforeTargets="PrepareForBuild" Condition="'$(UseTailCallInterp)' == 'true' and $(PlatformToolset) != 'ClangCL'"> + <Error Text="MSVC supports tail-calling only for x64." + Condition="$(Platform) != 'x64'" /> + <Error Text="Platform toolset >= v145 is required for tail-calling." + Condition="$(PlatformToolset.Replace('v', '0')) < '145'" /> + <Error Text="MSVC requires optimization to be enabled for tail-calling." + Condition="$(Configuration) == 'Debug'" /> + </Target> </Project> _______________________________________________ Python-checkins mailing list -- [email protected] To unsubscribe send an email to [email protected] https://mail.python.org/mailman3//lists/python-checkins.python.org Member address: [email protected]
