Repository navigation
gh-159612: Build macOS CI with the tail-calling interpreter using Xcode clang - #160778
Conversation
itamaro
left a comment
There was a problem hiding this comment.
this looks good to me, but makes me think - why not have configure detect tail-call support and enable it automatically for supported toolchains? (when the flag is not specified; if the flag is specified it should win)
|
Sometimes a compiler claims support for something, but still has bugs, so it's not ready to be used everywhere. Especially if it's experimental for some compilers. |
|
Thanks @hugovk for the PR 🌮🎉.. I'm working now to backport this PR to: 3.14, 3.15. |
|
Sorry, @hugovk, I could not cleanly backport this to Please backport manually with cherry_picker, see the devguide for more information. |
|
GH-161168 is a backport of this pull request to the 3.15 branch. |
|
GH-161169 is a backport of this pull request to the 3.14 branch. |
This is the second suggestion at #160713 (comment).
The macOS installer uses tail-calling. This moves the tail-calling CI from a dedicated workflow, into the main workflow. This means we get coverage of tail-calling across ARM and Intel and free-threading.
Computed gotos (the non-tail-call on macOS) is still covered by most of buildbots.
One difference, we're now testing with
--with-pydebugand--fast-ci. The main effect is debug slows it a bit, and resource testing is enabled so more tests are covered, but in practice it doesn't make any difference: the three jobs take ~57m16s before, 52m16s after.We also save some CI time: the macOS job in
.github/workflows/tail-call.ymlonly ran when certain C files changed, but it was still extra work. This is now saved.