-
Notifications
You must be signed in to change notification settings - Fork 12.9k
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
use download-ci-llvm=true
in the default compiler config
#129473
Conversation
This PR modifies If appropriate, please update |
src/llvm-project
submodule with download-ci-llvm = "if-unchanged"
src/llvm-project
with download-ci-llvm = "if-unchanged"
For context I have been using |
I think this will regress #122787 ?
You could set "download-ci-llvm" to true if you don't want to fetch llvm tree. |
I don't see why it would, the only thing that is changing with this PR is the detection of git changes under Maybe I'm missing something. Idk.
Sure, and that's what I'm doing in the mean time, but it sometimes happens that my |
If |
In addition, I believe fetching the LLVM submodule for |
427f039
to
29886a3
Compare
I've changed the code so that if
or when they clone the repo with It's also worth nothing that when Another interesting think is that
And yet it uses This last point is especially interesting as the "compiler" profile claims to be exactly what I want and yet in practice isn't anymore. |
That's a good point, but since Remove the "codegen" profile from bootstrap, I believe some people have switched from the Other than that, I believe the current approach makes more sense than what this PR proposes (we wouldn't really want to force people to handle llvm submodule manually). |
I think it's fine and even desirable for the default compiler profile to avoid checking out LLVM whenever possible, as long as there's a reasonable way to get it checked out for the minority of contributors who actively want it, and things continue to work seamlessly after it is checked out. IMO:
The comments in |
@onur-ozkan Do you also see this as a reasonable (enough) workflow for contributors ? |
It seems fine to me, but I think this should be discussed in the |
Well I would argue that this PR restore the previous behavior and that #129365 was the one that change it and broke the previously working workflow that I used. But very well, I will start a T-compiler topic. |
I think there was a miscommunication. This PR doesn’t really make sense to me (see #129473 (comment)). I was referring to setting |
29886a3
to
9fed172
Compare
This PR modifies If appropriate, please update This PR modifies If appropriate, please update |
9fed172
to
634a2c2
Compare
As discussed in the Zulip thread I've updated this PR to instead make
|
src/llvm-project
with download-ci-llvm = "if-unchanged"
src/llvm-project
with default compiler config
Summary of my thoughts:
The whole premise of wanting to break |
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.
LGTM, thanks! Feel free to r=me with/without the suggestions.
I don't really think ending up with a huge mistake is possible with this PR. We have two options, and neither of them would lead to a a huge mistake. With the other option (using |
src/llvm-project
with default compiler configdownload-ci-llvm=true
in the default compiler config
As far as I’m aware, |
☔ The latest upstream changes (presumably #129176) made this pull request unmergeable. Please resolve the merge conflicts. |
and make it the default for the compiler profile, as to prevent unnecessarily checking out `src/llvm-project` with `"if-unchanged"`.
13522e7
to
5f367bb
Compare
Rebased to fix the conflicts. @bors r=onur-ozkan |
…r-ozkan use `download-ci-llvm=true` in the default compiler config rust-lang@1ca2708 made it so that the `src/llvm-project` submodule has to be checkout for `download-ci-llvm = "if-unchanged"` to know if the submodule has been changed, but that is not required, if the submodule hasn't been checkout it cannot have been modified. ~~This PR restore the previous behavior by only updating the submodule if it has already been checkout.~~ This PR makes `download-ci-llvm = true` check if CI llvm is available and make it the default for the compiler profile, as to prevent unnecessarily checking out `src/llvm-project` with `"if-unchanged"`. r? `@onur-ozkan`
…iaskrgr Rollup of 7 pull requests Successful merges: - rust-lang#129337 (rustdoc rfc#3662 changes under unstable flags) - rust-lang#129473 (use `download-ci-llvm=true` in the default compiler config) - rust-lang#129529 (Add test to build crates used by r-a on stable) - rust-lang#130025 (Also emit `missing_docs` lint with `--test` to fulfil expectations) - rust-lang#130070 (Rename variant `AddrOfRegion` of `RegionVariableOrigin` to `BorrowRegion`) - rust-lang#130087 (remove 'const' from 'Option::iter') - rust-lang#130092 (Fixes typo in wasm32-wasip2 doc comment) r? `@ghost` `@rustbot` modify labels: rollup
…r-ozkan use `download-ci-llvm=true` in the default compiler config rust-lang@1ca2708 made it so that the `src/llvm-project` submodule has to be checkout for `download-ci-llvm = "if-unchanged"` to know if the submodule has been changed, but that is not required, if the submodule hasn't been checkout it cannot have been modified. ~~This PR restore the previous behavior by only updating the submodule if it has already been checkout.~~ This PR makes `download-ci-llvm = true` check if CI llvm is available and make it the default for the compiler profile, as to prevent unnecessarily checking out `src/llvm-project` with `"if-unchanged"`. r? ``@onur-ozkan``
…iaskrgr Rollup of 7 pull requests Successful merges: - rust-lang#129473 (use `download-ci-llvm=true` in the default compiler config) - rust-lang#129529 (Add test to build crates used by r-a on stable) - rust-lang#130025 (Also emit `missing_docs` lint with `--test` to fulfil expectations) - rust-lang#130048 (run-make-support: Add llvm-pdbutil) - rust-lang#130070 (Rename variant `AddrOfRegion` of `RegionVariableOrigin` to `BorrowRegion`) - rust-lang#130087 (remove 'const' from 'Option::iter') - rust-lang#130092 (Fixes typo in wasm32-wasip2 doc comment) r? `@ghost` `@rustbot` modify labels: rollup
…r-ozkan use `download-ci-llvm=true` in the default compiler config rust-lang@1ca2708 made it so that the `src/llvm-project` submodule has to be checkout for `download-ci-llvm = "if-unchanged"` to know if the submodule has been changed, but that is not required, if the submodule hasn't been checkout it cannot have been modified. ~~This PR restore the previous behavior by only updating the submodule if it has already been checkout.~~ This PR makes `download-ci-llvm = true` check if CI llvm is available and make it the default for the compiler profile, as to prevent unnecessarily checking out `src/llvm-project` with `"if-unchanged"`. r? ```@onur-ozkan```
…r-ozkan use `download-ci-llvm=true` in the default compiler config rust-lang@1ca2708 made it so that the `src/llvm-project` submodule has to be checkout for `download-ci-llvm = "if-unchanged"` to know if the submodule has been changed, but that is not required, if the submodule hasn't been checkout it cannot have been modified. ~~This PR restore the previous behavior by only updating the submodule if it has already been checkout.~~ This PR makes `download-ci-llvm = true` check if CI llvm is available and make it the default for the compiler profile, as to prevent unnecessarily checking out `src/llvm-project` with `"if-unchanged"`. r? ````@onur-ozkan````
…kingjubilee Rollup of 14 pull requests Successful merges: - rust-lang#128316 (Stabilize most of `io_error_more`) - rust-lang#129473 (use `download-ci-llvm=true` in the default compiler config) - rust-lang#129529 (Add test to build crates used by r-a on stable) - rust-lang#129778 (interpret: make typed copies lossy wrt provenance and padding) - rust-lang#129981 (Remove `serialized_bitcode` from `LtoModuleCodegen`.) - rust-lang#130025 (Also emit `missing_docs` lint with `--test` to fulfil expectations) - rust-lang#130040 (unify `llvm-bitcode-linker`, `wasm-component-ld` and llvm-tools logics) - rust-lang#130094 (Inform the solver if evaluation is concurrent) - rust-lang#130132 ([illumos] enable SIGSEGV handler to detect stack overflows) - rust-lang#130146 (bootstrap `naked_asm!` for `compiler-builtins`) - rust-lang#130149 (Helper function for formatting with `LifetimeSuggestionPosition`) - rust-lang#130152 (adapt a test for llvm 20) - rust-lang#130162 (bump download-ci-llvm-stamp) - rust-lang#130164 (move some const fn out of the const_ptr_as_ref feature) r? `@ghost` `@rustbot` modify labels: rollup
…kingjubilee Rollup of 11 pull requests Successful merges: - rust-lang#128316 (Stabilize most of `io_error_more`) - rust-lang#129473 (use `download-ci-llvm=true` in the default compiler config) - rust-lang#129529 (Add test to build crates used by r-a on stable) - rust-lang#129981 (Remove `serialized_bitcode` from `LtoModuleCodegen`.) - rust-lang#130094 (Inform the solver if evaluation is concurrent) - rust-lang#130132 ([illumos] enable SIGSEGV handler to detect stack overflows) - rust-lang#130146 (bootstrap `naked_asm!` for `compiler-builtins`) - rust-lang#130149 (Helper function for formatting with `LifetimeSuggestionPosition`) - rust-lang#130152 (adapt a test for llvm 20) - rust-lang#130162 (bump download-ci-llvm-stamp) - rust-lang#130164 (move some const fn out of the const_ptr_as_ref feature) r? `@ghost` `@rustbot` modify labels: rollup
…kingjubilee Rollup of 11 pull requests Successful merges: - rust-lang#128316 (Stabilize most of `io_error_more`) - rust-lang#129473 (use `download-ci-llvm=true` in the default compiler config) - rust-lang#129529 (Add test to build crates used by r-a on stable) - rust-lang#129981 (Remove `serialized_bitcode` from `LtoModuleCodegen`.) - rust-lang#130094 (Inform the solver if evaluation is concurrent) - rust-lang#130132 ([illumos] enable SIGSEGV handler to detect stack overflows) - rust-lang#130146 (bootstrap `naked_asm!` for `compiler-builtins`) - rust-lang#130149 (Helper function for formatting with `LifetimeSuggestionPosition`) - rust-lang#130152 (adapt a test for llvm 20) - rust-lang#130162 (bump download-ci-llvm-stamp) - rust-lang#130164 (move some const fn out of the const_ptr_as_ref feature) r? `@ghost` `@rustbot` modify labels: rollup
Rollup merge of rust-lang#129473 - Urgau:fix-llvm-if-unchanged, r=onur-ozkan use `download-ci-llvm=true` in the default compiler config rust-lang@1ca2708 made it so that the `src/llvm-project` submodule has to be checkout for `download-ci-llvm = "if-unchanged"` to know if the submodule has been changed, but that is not required, if the submodule hasn't been checkout it cannot have been modified. ~~This PR restore the previous behavior by only updating the submodule if it has already been checkout.~~ This PR makes `download-ci-llvm = true` check if CI llvm is available and make it the default for the compiler profile, as to prevent unnecessarily checking out `src/llvm-project` with `"if-unchanged"`. r? `````@onur-ozkan`````
…=Kobzol change `download-ci-llvm` default from `if-unchanged` to `true` Since rust-lang#129473 and rust-lang#130202, using `download-ci-llvm=true` is now the better default and it also fixes rust-lang#130515.
1ca2708 made it so that the
src/llvm-project
submodule has to be checkout fordownload-ci-llvm = "if-unchanged"
to know if the submodule has been changed, but that is not required, if the submodule hasn't been checkout it cannot have been modified.This PR restore the previous behavior by only updating the submodule if it has already been checkout.This PR makes
download-ci-llvm = true
check if CI llvm is available and make it the default for the compiler profile, as to prevent unnecessarily checking outsrc/llvm-project
with"if-unchanged"
.r? @onur-ozkan