Skip to content

gh-159612: Build macOS CI with the tail-calling interpreter using Xcode clang - #160778

Merged
hugovk merged 2 commits into
python:mainfrom
hugovk:3.16-tail-call-reuse-macos2
Nov 2, 2026
Merged

hugovk merged 2 commits into
python:mainfrom
hugovk:3.16-tail-call-reuse-macos2

Conversation

@hugovk

@hugovk hugovk commented Oct 27, 2026 •

Copy link
Copy Markdown
Member

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-pydebug and --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.yml only ran when certain C files changed, but it was still extra work. This is now saved.

@itamaro itamaro left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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)

@hugovk

hugovk commented Oct 28, 2026

Copy link
Copy Markdown
Member Author

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.

@hugovk
hugovk merged commit 86be79a into python:main Nov 2, 2026
110 of 112 checks passed
@hugovk
hugovk deleted the 3.16-tail-call-reuse-macos2 branch November 2, 2026 10:14
@miss-islington-app

Copy link
Copy Markdown

Thanks @hugovk for the PR 🌮🎉.. I'm working now to backport this PR to: 3.14, 3.15.
🐍🍒⛏🤖

@miss-islington-app

Copy link
Copy Markdown

Sorry, @hugovk, I could not cleanly backport this to 3.14 due to a conflict.

Please backport manually with cherry_picker, see the devguide for more information.

cherry_picker 86be79a2483017f7a233b8a1a7008b8e45129ea1 3.14

@bedevere-app

bedevere-app Bot commented Nov 2, 2026

Copy link
Copy Markdown

GH-161168 is a backport of this pull request to the 3.15 branch.

@bedevere-app bedevere-app Bot removed the needs backport to 3.15 bugs and security fixes label Nov 2, 2026
@bedevere-app

bedevere-app Bot commented Nov 2, 2026

Copy link
Copy Markdown

GH-161169 is a backport of this pull request to the 3.14 branch.

@bedevere-app bedevere-app Bot removed the needs backport to 3.14 bugs and security fixes label Nov 2, 2026
hugovk added a commit that referenced this pull request Nov 2, 2026
…ing Xcode clang (GH-160778) (#161168)

Co-authored-by: Hugo van Kemenade <1324225+hugovk@users.noreply.github.com>
hugovk added a commit that referenced this pull request Nov 2, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

infra CI, GitHub Actions, buildbots, Dependabot, etc. OS-mac skip news

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants