Skip to content

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

Open
hugovk wants to merge 2 commits into
python:mainfrom
hugovk:3.16-tail-call-reuse-macos2
Open

hugovk wants to merge 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)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

awaiting merge infra CI, GitHub Actions, buildbots, Dependabot, etc. needs backport to 3.14 bugs and security fixes needs backport to 3.15 bugs and security fixes OS-mac skip news

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants