-
-
Notifications
You must be signed in to change notification settings - Fork 31.8k
GH-113464: Get LLVM from cpython-bin-deps
on Windows
#133278
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
Looks great! Though so far, this is the part that makes me sad (watch the timestamps). I guess it's unavoidable though.
Just to confirm, these lines in the build output mean that it's working, yes? (I think the last one isn't from your script, but it's not an error, so that implies success)
|
Another possibility is to integrate the LLVM fetch into the script itself, so that we can check whether the files are up to date first and only download LLVM if it's needed (using/ignoring a separate install, as appropriate - I could see this being a case where we'd prefer to ignore it when we don't know which version it is) |
Do we need to change 18 to 19 here to unify the build? Lines 69 to 76 in a6ddd07
|
Not sure what you mean by "unify the build", but that LLVM version is unrelated. That's for if you want to build all of CPython with LLVM; this change is just for generating the templates the JIT compiler uses, which has stricter version requirements and can be different than the compiler or version used to build the interpreter itself. |
Yeah, it's a bummer that it takes a few minutes (maybe we could trim stuff we don't need from the hosted install, but I imagine most of the size is in the parts that we depend on). But if I understand correctly, it should download only once per machine that's doing Windows builds and remain cached, so it's not like Windows JIT core devs' daily build times just went up or anything. Plus, we don't actually download it unless you're building the JIT, so most people should be unaffected (for now). |
Ah, yeah, I didn't catch that first time through. And yeah, it'll be once per machine. I was mostly thinking about CI, which uses a fresh machine each time, and also CI that bypasses |
Yeah. For the former we need to install it anyways. For the latter, they'll just need to make sure to set the right options to omit the LLVM install when it's not needed if they want to avoid waiting. (Another option could be to make the LLVM install default to "false" in |
This makes LLVM easier to acquire for Windows JIT builds (like the one @zooba is going to do next week). We can now get it from https://github.com/python/cpython-bin-deps/tree/llvm.
I also cleaned up a couple things I tripped over while working on this:
jit_stencils.h
is built (and clean up after itself).jit_stencils.h
unless it's actually changing, to avoid triggering a rebuild.