GH-148047: Check early whether tail-calling is possible for MSVC builds on Windows#148036
GH-148047: Check early whether tail-calling is possible for MSVC builds on Windows#148036itamaro merged 5 commits into
Conversation
|
TSan https://github.com/python/cpython/actions/runs/23948631142/job/69850491565?pr=148036 failure for sure unreleated: this is a pure Windows change and would result in a build error on onsupported (Windows) hosts when using I've checked manually that I get all the expected errors for unsupported configurations. |
Sorry, something went wrong.
|
Please open a separate issue for this, rather than reusing the same closed issue. Thanks! |
Sorry, something went wrong.
itamaro
left a comment
There was a problem hiding this comment.
Overall looks good, thank you for this!
Sorry, something went wrong.
|
A Python core developer has requested some changes be made to your pull request before we can consider merging it. If you could please address their requests along with any other requests in other reviews from core developers that would be appreciated. Once you have made the requested changes, please leave a comment on this pull request containing the phrase |
Sorry, something went wrong.
cbd81d5
into
python:main
Apr 12, 2026
⚠️⚠️⚠️ Buildbot failure ⚠️⚠️⚠️Hi! The buildbot x86 Debian Installed with X 3.x (no tier) has failed when building commit cbd81d5. What do you need to do:
You can take a look at the buildbot page here: https://buildbot.python.org/#/builders/1244/builds/7983 Summary of the results of the build (if available): == Click to see traceback logsTraceback (most recent call last):
File �[35m"/buildbot/buildarea/3.x.ware-debian-x86.installed/build/target/lib/python3.15/contextlib.py"�[0m, line �[35m85�[0m, in �[35minner�[0m
return func(*args, **kwds)
File �[35m"/buildbot/buildarea/3.x.ware-debian-x86.installed/build/target/lib/python3.15/test/_test_multiprocessing.py"�[0m, line �[35m649�[0m, in �[35mtest_interrupt�[0m
exitcode = self._kill_process(multiprocessing.Process.interrupt)
File �[35m"/buildbot/buildarea/3.x.ware-debian-x86.installed/build/target/lib/python3.15/contextlib.py"�[0m, line �[35m85�[0m, in �[35minner�[0m
return func(*args, **kwds)
File �[35m"/buildbot/buildarea/3.x.ware-debian-x86.installed/build/target/lib/python3.15/test/_test_multiprocessing.py"�[0m, line �[35m630�[0m, in �[35m_kill_process�[0m
self.assertEqual(�[31mjoin�[0m�[1;31m()�[0m, None)
�[31m~~~~�[0m�[1;31m^^�[0m
File �[35m"/buildbot/buildarea/3.x.ware-debian-x86.installed/build/target/lib/python3.15/test/_test_multiprocessing.py"�[0m, line �[35m303�[0m, in �[35m__call__�[0m
return �[31mself.func�[0m�[1;31m(*args, **kwds)�[0m
�[31m~~~~~~~~~�[0m�[1;31m^^^^^^^^^^^^^^^�[0m
File �[35m"/buildbot/buildarea/3.x.ware-debian-x86.installed/build/target/lib/python3.15/multiprocessing/process.py"�[0m, line �[35m156�[0m, in �[35mjoin�[0m
res = self._popen.wait(timeout)
File �[35m"/buildbot/buildarea/3.x.ware-debian-x86.installed/build/target/lib/python3.15/multiprocessing/popen_fork.py"�[0m, line �[35m44�[0m, in �[35mwait�[0m
return �[31mself.poll�[0m�[1;31m(os.WNOHANG if timeout == 0.0 else 0)�[0m
�[31m~~~~~~~~~�[0m�[1;31m^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^�[0m
File �[35m"/buildbot/buildarea/3.x.ware-debian-x86.installed/build/target/lib/python3.15/multiprocessing/popen_fork.py"�[0m, line �[35m28�[0m, in �[35mpoll�[0m
pid, sts = �[31mos.waitpid�[0m�[1;31m(self.pid, flag)�[0m
�[31m~~~~~~~~~~�[0m�[1;31m^^^^^^^^^^^^^^^^�[0m
File �[35m"/buildbot/buildarea/3.x.ware-debian-x86.installed/build/target/lib/python3.15/test/_test_multiprocessing.py"�[0m, line �[35m626�[0m, in �[35mhandler�[0m
raise RuntimeError('join took too long: %s' % p)
�[1;35mRuntimeError�[0m: �[35mjoin took too long: <Process name='Process-158' pid=28453 parent=26696 started daemon>�[0m
Traceback (most recent call last):
File �[35m"/buildbot/buildarea/3.x.ware-debian-x86.installed/build/target/lib/python3.15/contextlib.py"�[0m, line �[35m85�[0m, in �[35minner�[0m
return func(*args, **kwds)
File �[35m"/buildbot/buildarea/3.x.ware-debian-x86.installed/build/target/lib/python3.15/test/_test_multiprocessing.py"�[0m, line �[35m649�[0m, in �[35mtest_interrupt�[0m
exitcode = self._kill_process(multiprocessing.Process.interrupt)
File �[35m"/buildbot/buildarea/3.x.ware-debian-x86.installed/build/target/lib/python3.15/contextlib.py"�[0m, line �[35m85�[0m, in �[35minner�[0m
return func(*args, **kwds)
File �[35m"/buildbot/buildarea/3.x.ware-debian-x86.installed/build/target/lib/python3.15/test/_test_multiprocessing.py"�[0m, line �[35m630�[0m, in �[35m_kill_process�[0m
self.assertEqual(�[31mjoin�[0m�[1;31m()�[0m, None)
�[31m~~~~�[0m�[1;31m^^�[0m
File �[35m"/buildbot/buildarea/3.x.ware-debian-x86.installed/build/target/lib/python3.15/test/_test_multiprocessing.py"�[0m, line �[35m303�[0m, in �[35m__call__�[0m
return �[31mself.func�[0m�[1;31m(*args, **kwds)�[0m
�[31m~~~~~~~~~�[0m�[1;31m^^^^^^^^^^^^^^^�[0m
File �[35m"/buildbot/buildarea/3.x.ware-debian-x86.installed/build/target/lib/python3.15/multiprocessing/process.py"�[0m, line �[35m156�[0m, in �[35mjoin�[0m
res = self._popen.wait(timeout)
File �[35m"/buildbot/buildarea/3.x.ware-debian-x86.installed/build/target/lib/python3.15/multiprocessing/popen_fork.py"�[0m, line �[35m44�[0m, in �[35mwait�[0m
return �[31mself.poll�[0m�[1;31m(os.WNOHANG if timeout == 0.0 else 0)�[0m
�[31m~~~~~~~~~�[0m�[1;31m^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^�[0m
File �[35m"/buildbot/buildarea/3.x.ware-debian-x86.installed/build/target/lib/python3.15/multiprocessing/popen_fork.py"�[0m, line �[35m28�[0m, in �[35mpoll�[0m
pid, sts = �[31mos.waitpid�[0m�[1;31m(self.pid, flag)�[0m
�[31m~~~~~~~~~~�[0m�[1;31m^^^^^^^^^^^^^^^^�[0m
File �[35m"/buildbot/buildarea/3.x.ware-debian-x86.installed/build/target/lib/python3.15/test/_test_multiprocessing.py"�[0m, line �[35m626�[0m, in �[35mhandler�[0m
raise RuntimeError('join took too long: %s' % p)
�[1;35mRuntimeError�[0m: �[35mjoin took too long: <Process name='Process-1' pid=2089 parent=2087 started daemon>�[0m
|
Sorry, something went wrong.
|
Really sorry @chris-eibl, but I'm going to revert this change. I think users can just let the compiler fail to build if it's not available. |
Sorry, something went wrong.
… for MSVC builds on Windows (python#148036)" This reverts commit cbd81d5.
No worries, totally fine with me. That's why we have discussions and reviews. Sorry for the churn. |
Sorry, something went wrong.
|
No problem, nothing to apologise for! |
Sorry, something went wrong.
…lling is possible for MSVC builds on Windows (python#148036)" (python#148558) This reverts commit cbd81d5.
Rather than failing late when compiling e.g. a debug configuration
with hundreds of
lets fail early with an explicit error message for configurations that are not supported by MSVC.
This is a follow-up on #140513 / #140548.