-
Notifications
You must be signed in to change notification settings - Fork 13.3k
download bootstrap binary from ci #140069
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
base: master
Are you sure you want to change the base?
download bootstrap binary from ci #140069
Conversation
r? @onur-ozkan rustbot has assigned @onur-ozkan. Use |
This comment has been minimized.
This comment has been minimized.
I don't have space to review this. r? Kobzol (feel free to reroll) |
c04a7bc
to
eced81c
Compare
This comment has been minimized.
This comment has been minimized.
eced81c
to
895fe51
Compare
This comment has been minimized.
This comment has been minimized.
895fe51
to
73c500a
Compare
this misses the point. the point of precompiled bootstrap is to allow us not to require python at all. if we use the python script to download, all we gain is slightly faster compiles at the cost of a lot more complexity. |
oh, apparently that’s not what i said two years ago. oops. probably just ignore anything i say then, i don’t have context on this anymore. |
Removing the Python logic is an ongoing process. But even if we get rid of most of the Python scripts, we will still need something that will be responsible for setting up bootstrap. That something can be either shell scripts (but that would suck, as it's not cross-platform), some small amount of Python or e.g. a Rust Cargo script. We could even distribute bootstrap through rustup. That's still up to debate, I guess. |
Should we go ahead and close this, along with the upstream issue? |
I was planning to keep shell scripts as tiny as possible, (e.g., setting up the bootstrap toolchain and using it to run a program that configures and runs bootstrap). So, after the migration work, it would look like this:
I am still waiting for #119899, I don't want to deal with 2 major tasks simultaneously. I did a bit of work on Python removal before (I almost done the most logic of 1. above), I will rebase it and continue from there. Personally, I am not particularly interested in this work. That is another reason I did not want to review it as I do not feel comfortable engaging with it. It's either not worth, or at |
I can't speak for other bootstrap team members, but I kinda don't want to download a precompiled bootstrap from CI in addition to CI LLVM and CI rustc. IME, for library and compiler workflows, building bootstrap is relatively fast (approx. 22 seconds on a dev desktop fresh). I feel very iffy about downloading bootstrap itself, because if this logic has issues then it becomes very very nasty to debug, what bootstrap binary other contributor runs on their system does not necessarily match what's built from HEAD... Something like what Onur proposed seems much less risky to me, at least. |
FWIW, we already have Python scripts that predownload Rust and Cargo that is used to build bootstrap, so in terms of download logic bugs, that situation wouldn't become worse here. We have discussed this sometime in the past on Zulip, but what I would like the most is to simply say that you need to have a recent-ish Rust compiler available locally in order to build rustc. At this day and age, with rustup and Rust compilers being available in distro repositories, I don't think that it's too weird of a requirement (today you need to have a shell interpreter and Python available). If we consider this requirement to be fine, then we can simply redirect |
closes: #99989