GH-139922: Tail calling for MSVC (VS 2026)#143068
Conversation
|
In the future, please communicate if you want to supercede a PR for other contributors. It's often considered not good etiquette to take over another person's PR unless they explicitly allow it. However, I'm more than happy to let you take over the PR in this case. |
Sorry, something went wrong.
Sorry, wasn't ment as superseding, more as a follow up and maybe just a draft for new discussions. Thought about you're gonna take whatever deems appropriate back into your original PR ... If this here is going to fly, I'd like to include you and Brandt as authors for the commits, but don't know how atm ... |
Sorry, something went wrong.
|
Sorry, something went wrong.
Oh I'm happy to be superseded. If you'd like to attribute commit history though, you can just push a trivial commit with the co-author info like Hugo pointed out, and when I squash and merge I'll use that. |
Sorry, something went wrong.
Co-Authored-By: Ken Jin <28750310+Fidget-Spinner@users.noreply.github.com> Co-Authored-By: Brandt Bucher <brandt@python.org>
|
Try pulling |
Sorry, something went wrong.
Done |
Sorry, something went wrong.
Co-authored-by: Hugo van Kemenade <1324225+hugovk@users.noreply.github.com>
I could not add this one to batch, so have to do it separately Co-authored-by: Hugo van Kemenade <1324225+hugovk@users.noreply.github.com>
|
https://github.com/python/cpython/actions/runs/20437258430/job/58722460806 failed inbetween I've found this: #143073 Hopefully, this will fix it ... |
Sorry, something went wrong.
try to fix "Native Windows MSVC (release)"
|
Just ignore the JIT problems for now. The new JIT executor management has a known bug #143026 |
Sorry, something went wrong.
|
🤖 New build scheduled with the buildbot fleet by @Fidget-Spinner for commit da1adaf 🤖 Results will be shown at: https://buildbot.python.org/all/#/grid?branch=refs%2Fpull%2F143068%2Fmerge If you want to schedule another build, you need to add the 🔨 test-with-refleak-buildbots label again. |
Sorry, something went wrong.
|
Benchmark results are within noise for the default interpreter https://github.com/facebookexperimental/free-threading-benchmarking/blob/main/results/bm-20251222-3.15.0a3%2B-da1adaf/bm-20251222-vultr-x86_64-chris%252deibl-msvc_tail_call_new-3.15.0a3%2B-da1adaf-vs-base.md Refleak bots are green. |
Sorry, something went wrong.
Fidget-Spinner
left a comment
There was a problem hiding this comment.
Once again:
- This PR is the successor of one that has been up for 2 months already #139962 . We've had enough discussion there to get a sensing of what we want.
- Refleak tests are green, performance results are within noise for the default (computed goto) interpreter.
- This PR adds CI for the new configuration, which is also green.
- I have discussed this feature with the other core devs a few months back on our bi-weekly perf meetings. Everyone was in agreement that adding scopes to MSVC is fine as it isn't that invasive.
- This PR is the minimal changeset required to get TC working on MSVC.
- It uses the techniques suggested by Mark in the other PR (just adding scopes and commenting on them). So I expect he should be okay with the overall design I hope. I understand he might disagree on some of the smaller changes.
- It LGTM, from my review of the changes.
Therefore, I'm merging this PR.
Any follow-ups can be done on future PRs. Any discussion about the design can be done on the issue itself.
Sorry, something went wrong.
be3c131
into
python:main
Dec 22, 2025
So much has happened on main that I started fresh over and sqash merged the needed things from #139962 onto latest main (mostly because I wanted to use it for my own experiments on main again).
Based on @markshannon's work in #142228 I've factored out
_Py_VectorCallInstrumentation_StackRefSteal, because then @Fidget-Spinner's #138115 is not needed in this PR and can be done in a follow-up. An alternative would be to keep it and pasststateinto thePy_*_StackRefStealfunctions.