GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — GH-141362: Make `get_externals` handle fetching platform-specific release artifacts by savannahostrowski · Pull Request #142405 · python/cpython

Conversation

@savannahostrowski

@savannahostrowski savannahostrowski commented Dec 8, 2025 •
edited by bedevere-app Bot
Loading

Uh oh!

There was an error while loading. Please reload this page.

Copy link
Copy Markdown
Member

This PR adds support for downloading platform-specific LLVM binaries (AMD64, ARM64) instead of using a single binary with emulation (see https://github.com/python/cpython-bin-deps/releases/tag/llvm-21.1.4.0 for release artifacts). Since this won't naturally trigger jit.yml, you can see a successful run here, including print statements to show that we are in fact downloading the correct binary 😄.

  • Issue: Make get_externals handle fetching platform-specific release artifacts #141362

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

diegorusso reacted with heart emoji
All reactions
  • ❤️ 1 reaction
savannahostrowski added 10 commits December 7, 2025 20:36
@savannahostrowski
Add logic for downloading platform-specific tarball
16cf550
@savannahostrowski
Update docs
a81e0a8
@savannahostrowski
Test windows
97ca117
@savannahostrowski
Handle i686
ff270de
@savannahostrowski
Temp remove dep on interpreter job
345b71f
@savannahostrowski
Fix filter
0fac493
@savannahostrowski
Add debug
78602bf
@savannahostrowski
Undo debugging
4944126
@savannahostrowski
Clean up docs
db8b2a4
@savannahostrowski
Update generic binary message
46c9cd0
@savannahostrowski savannahostrowski added the skip news label Dec 8, 2025
@savannahostrowski
savannahostrowski requested a review from brandtbucher as a code owner December 8, 2025 05:59
@savannahostrowski savannahostrowski added the topic-JIT label Dec 8, 2025
@savannahostrowski
savannahostrowski requested review from a team and diegorusso as code owners December 8, 2025 05:59
@bedevere-app bedevere-app Bot added the awaiting core review label Dec 8, 2025
@bedevere-app bedevere-app Bot mentioned this pull request Dec 8, 2025
Make get_externals handle fetching platform-specific release artifacts #141362
Closed
zooba
zooba reviewed Dec 8, 2025
View reviewed changes
Comment thread PCbuild/get_external.py Resolved

Uh oh!

There was an error while loading. Please reload this page.

diegorusso
diegorusso reviewed Dec 8, 2025
View reviewed changes
Comment thread PCbuild/get_external.py Resolved

Uh oh!

There was an error while loading. Please reload this page.

@savannahostrowski
Address PR comment to use PreferredToolArchitecture
8f6d84a
@savannahostrowski
savannahostrowski requested review from AA-Turner, ezio-melotti and hugovk as code owners December 8, 2025 15:20
@savannahostrowski
Hm, undo?
4755b8d
savannahostrowski
savannahostrowski commented Dec 8, 2025
View reviewed changes
Comment thread .github/workflows/jit.yml Resolved

Uh oh!

There was an error while loading. Please reload this page.

@savannahostrowski
Add PreferredToolArchitecture env var back
84b07ff
zooba
zooba reviewed Dec 9, 2025
View reviewed changes
Comment thread PCbuild/get_external.py Resolved

Uh oh!

There was an error while loading. Please reload this page.

savannahostrowski and others added 2 commits December 9, 2025 13:11
@savannahostrowski @zooba
Update PCbuild/get_external.py
bca672a
Co-authored-by: Steve Dower <[email protected]>
@savannahostrowski
Merge branch 'main' into platform-binaries-jit
e59e905
@diegorusso

diegorusso commented Dec 11, 2025

Copy link
Copy Markdown
Contributor

I have a comment not related to this PR, but I just want to have your input @zooba

don't think we care about building on true 32-bit OS anymore.

This is fair but what about running on a true 32-bit OS? I see i686-pc-windows-msvc is "still" in tier-1. It made sense 10-15 years ago, but what about today? Is it still so popular/used out there?
The reason I'm asking is because failures on this platform will be hard to reproduce for the lack of HW/SW as it won't be accessible to everyone.
My suggestion is to demote it to tier-2, similarly to what we have done with x86_64-apple-darwin.

I'm more than happy to move the conversation on DPO if you think we need more discussion.

savannahostrowski reacted with thumbs up emoji
All reactions
  • 👍 1 reaction

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

savannahostrowski added 3 commits December 11, 2025 09:21
@savannahostrowski
Remove test comment
3652f0b
@savannahostrowski
Merge branch 'platform-binaries-jit' of https://github.com/savannahos…
f2bd62f
…trowski/cpython into platform-binaries-jit
@savannahostrowski
Merge branch 'main' into platform-binaries-jit
783249f
@chris-eibl

chris-eibl commented Dec 11, 2025

Copy link
Copy Markdown
Member

This is fair but what about running on a true 32-bit OS?

Yeah, especially since the JIT is having a hard time on x86 due to spilling (because there are so few registers).

@brandtbucher 's PR for preserve_none x86 llvm/llvm-project#150106 will help, but it seems stalled.

Tailcalling doesn't work on Windows x86 (upcoming #139962), because MSVC doesn't support it for x86 (at least not in VS 2026, no idea whether this will ever be supported).

There was a long discussion in https://discuss.python.org/t/consider-downgrading-windows-32-bit-from-tier-1-to-tier-2-or-tier-3-in-python-3-13/33719, but the outcome was to keep Windows x86 in tier-1.

And the 32bit installer link was ranked after the 64bit installer on python.org so unaware people less likely choose it over 64bit 🚀

The reason I'm asking is because failures on this platform will be hard to reproduce for the lack of HW/SW as it won't be accessible to everyone.

Even though Windows 10 is EOL (which was the last one where you could choose between 32bit/64bit when installing) and Windows 11 is 64bit only during installing, there is the compatibility layer to run 32bit software in 64bit Windows.
This compatibility will most probably be kept by MS for another decade (or forever), and so we can still test it. And I think it's these users we care about: having legacy software that is not yet ported to 64bit and embeds Python or imports a 32bit Python DLL.

My suggestion is to demote it to tier-2, similarly to what we have done with x86_64-apple-darwin.

One outcome in the above discussion was, that 1

the cost of supporting 32-bit Windows specifically is probably not very high for CPython

This might no longer be true for the JIT?

Footnotes

  1. https://discuss.python.org/t/consider-downgrading-windows-32-bit-from-tier-1-to-tier-2-or-tier-3-in-python-3-13/33719/23 ↩

diegorusso and savannahostrowski reacted with thumbs up emoji
All reactions
  • 👍 2 reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

diegorusso
diegorusso approved these changes Dec 11, 2025
View reviewed changes

@diegorusso diegorusso left a comment

Copy link
Copy Markdown
Contributor

There was a problem hiding this comment.

Choose a reason for hiding this comment

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

Thanks Savannah for your patience on getting this implemented. I think it behaves as it should be and LGTM. I prefer though if you have the blessing of some Windows expert :)

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

chris-eibl reacted with thumbs up emoji
All reactions
  • 👍 1 reaction
@bedevere-app bedevere-app Bot added awaiting merge and removed awaiting core review labels Dec 11, 2025
@chris-eibl

chris-eibl commented Dec 11, 2025

Copy link
Copy Markdown
Member

LGTM.

Maybe we can somewhere document that get_external.py does react on the environment variable PreferredToolArchitecture to override the llvm tool architecture that is used to build the stencils? E.g. in Tools/README.md?

Sorry to be picky. Final decision is anyway up to Steve ...

savannahostrowski and diegorusso reacted with thumbs up emoji
All reactions
  • 👍 2 reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

savannahostrowski added 2 commits December 11, 2025 15:09
@savannahostrowski
Add documentation
d44665f
@savannahostrowski
More docs
749dc1a
savannahostrowski
savannahostrowski commented Dec 11, 2025
View reviewed changes
Comment thread Tools/jit/README.md Resolved

Uh oh!

There was an error while loading. Please reload this page.

@savannahostrowski
Remove extra space
bcfec3f
chris-eibl
chris-eibl reviewed Dec 11, 2025
View reviewed changes
Comment thread Tools/jit/README.md Resolved

Uh oh!

There was an error while loading. Please reload this page.

@savannahostrowski @chris-eibl
Update Tools/jit/README.md
e750eb0
Co-authored-by: Chris Eibl <[email protected]>
@chris-eibl
chris-eibl self-requested a review December 11, 2025 23:30
chris-eibl
chris-eibl approved these changes Dec 11, 2025
View reviewed changes

@chris-eibl chris-eibl left a comment •
edited
Loading

Uh oh!

There was an error while loading. Please reload this page.

Copy link
Copy Markdown
Member

There was a problem hiding this comment.

Choose a reason for hiding this comment

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

Thanks Savannah!

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

savannahostrowski reacted with heart emoji
All reactions
  • ❤️ 1 reaction
@savannahostrowski

savannahostrowski commented Dec 11, 2025

Copy link
Copy Markdown
Member Author

Thanks for reviewing @chris-eibl! Appreciate it!

chris-eibl reacted with heart emoji
All reactions
  • ❤️ 1 reaction

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@savannahostrowski

savannahostrowski commented Dec 12, 2025

Copy link
Copy Markdown
Member Author

Given that this has gotten a stamp from Diego and Chris (and I know Steve is out for quite some time), I will merge this. I am happy to revisit any and all parts if there is additional feedback! Thank you all for the reviews!

hugovk reacted with thumbs up emoji diegorusso and chris-eibl reacted with heart emoji
All reactions
  • 👍 1 reaction
  • ❤️ 2 reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@savannahostrowski
Merge branch 'main' into platform-binaries-jit
e29ae88
@savannahostrowski
savannahostrowski enabled auto-merge (squash) December 12, 2025 20:57
@savannahostrowski
savannahostrowski merged commit c90863a into python:main Dec 12, 2025
54 checks passed

Uh oh!

There was an error while loading. Please reload this page.

@bedevere-app bedevere-app Bot removed the awaiting merge label Dec 12, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Reviewers

@zooba zooba zooba left review comments
@chris-eibl chris-eibl chris-eibl approved these changes
@diegorusso diegorusso diegorusso approved these changes
@brandtbucher brandtbucher Awaiting requested review from brandtbucher brandtbucher is a code owner
@ezio-melotti ezio-melotti Awaiting requested review from ezio-melotti
@hugovk hugovk Awaiting requested review from hugovk
@AA-Turner AA-Turner Awaiting requested review from AA-Turner

Uh oh!

There was an error while loading. Please reload this page.

Assignees

No one assigned

Labels

skip news topic-JIT

Projects

None yet

Milestone

No milestone

Development

Successfully merging this pull request may close these issues.

Uh oh!

There was an error while loading. Please reload this page.

4 participants

@savannahostrowski @diegorusso @chris-eibl @zooba
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.