Repository navigation
gh-159612: Remove macOS x86_64 from tail-call CI due to LLVM timeouts - #160713
Conversation
itamaro
left a comment
There was a problem hiding this comment.
lgtm
should this have backport labels?
I'll backport all the way. |
|
Thanks @StanFromIreland for the PR 🌮🎉.. I'm working now to backport this PR to: 3.14, 3.15. |
|
GH-160721 is a backport of this pull request to the 3.15 branch. |
|
GH-160722 is a backport of this pull request to the 3.14 branch. |
|
We no longer need to use Homebrew clang for tail-call builds since the current Xcode-supplied tools chains are based on LLVM 21. That's what we use for macOS installer builds with tail-call. I think it's fine to remove this CI testing for Intel Macs as it is a tier-2 platform. But I also would like to see removing the use of Homebrew clang for macOS. AFAIK, the only configuration where Homebrew clang is currently needed is for the specific case of generating the JIT templates, not for building Python itself. |
| export SDKROOT="$(xcrun --show-sdk-path)" | ||
| export PATH="/usr/local/opt/llvm@${{ env.LLVM_VERSION }}/bin:$PATH" | ||
| export PATH="/opt/homebrew/opt/llvm@${{ env.LLVM_VERSION }}/bin:$PATH" | ||
| CC=clang-${{ env.LLVM_VERSION }} ./configure --with-tail-call-interp |
There was a problem hiding this comment.
We no longer need to use Homebrew clang for tail-call builds since the current Xcode-supplied tools chains are based on LLVM 21. That's what we use for macOS installer builds with tail-call. I think it's fine to remove this CI testing for Intel Macs as it is a tier-2 platform. But I also would like to see removing the use of Homebrew clang for macOS. AFAIK, the only configuration where Homebrew clang is currently needed is for the specific case of generating the JIT templates, not for building Python itself.
So remove the "Install dependencies" step? And in this step delete the two exports and change configure to something like CC=clang ./configure --with-tail-call-interp?
There was a problem hiding this comment.
Yes, the two exports should no longer be needed. But, presumably we want to be testing with all of the third-party libs installed? In that case, Homebrew is still needed for those but they may be already installed as part of the image but may need to be updated. Ideally, the build part of the workflow should be the same as reusable-macos.yml except for the --with-tail-call-interp. Or perhaps we no longer need to test both options in CI, just always with --with-tail-call-interp?
As suggested in #160033 (comment) by @itamaro, I propose we remove it rather than try make it work with XCode's Clang since it's Tier 2.