-
-
Notifications
You must be signed in to change notification settings - Fork 14.7k
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
Linux bump default LLVM to 11 #142593
Linux bump default LLVM to 11 #142593
Conversation
As we're working on this, I'd like to suggest that we send fixes straight to master/staging as their own PRs where doing so wouldn't break builds on LLVM 7. That should keep PRs small, and make things much easier to review. |
Looks like there's about 6-7k newly failing builds, this is the comparison I'm using. Looks like the cups patch I already got rid of is the main issue. I will rebase this on the Darwin bump as soon as 2 builds I'm running to check the changes finish. |
This pull request has been mentioned on NixOS Discourse. There might be relevant details there: |
dd84d8e
to
959dfb3
Compare
Just rebased on staging-next since all the release-related stuff has cooled down and the bump on Darwin seems to have gone into staging-next OK. Here's a new comparison. |
Seems like 400 potential new regressions compared to current master? https://hydra.nixos.org/eval/1732639?compare=trunk#tabs-now-fail |
@sternenseemann, yep, what number of failures would be considered good enough? Should I rebase this on master or staging-next again to get a more recent comparison? The staging-next evaluation this one is based on has even more failures when compared to trunk. |
72418ac
to
f29a0d4
Compare
So, in this staging-next comparison, from ~ two weeks ago, the main cause of failures seemed to be ispc. This has since been worked around in 981170a so I rebased the branch again. How do we move this forward? Last comparison we had 23 newly introduced failures as compared to staging-next. Is the goal/requirement to introduce 0 new failures? |
No, even |
Update the default LLVM version on Linux to stay synchronized with Darwin, where LLVM is tied to the stdenv.
f29a0d4
to
c9e78d5
Compare
c9e78d5
to
dc56a79
Compare
Ok, so this is the comparison for the previous evaluation. This confirmed that I did indeed break ispc. Turns out when removing the LLVM 11 specific arguments I removed |
The ispc failure (and Blender) is fixed now. Zcash was also using an LLVM stdenv but seems to work fine with a GNU stdenv so I'm not sure that's still necessary? @vcunat was so kind as to check that I believe this means there's no more serious failures so this is ready for review/testing. |
@alyssais, @sternenseemann, @vcunat, I believe this is ready for review. |
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.
Haven't checked if relying on the default version in all cases is wise (depends on the package), but probably doesn't matter in the grand scheme of things (every default LLVM update will need careful checking for regressions).
My motivation for using the default is an assumption that most things that explicitly specify LLVM 11 probably do so because the default isn't recent enough. |
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.
According to the hydra eval, most failures are related to the recent python310 bump
# nix-review-tool output
x86_64-linux python3.10-unittest2-1.1.0 | 91
x86_64-linux python3.10-debugpy-1.5.1 | 58
x86_64-linux python3.10-imagecodecs-lite-2019.12.3 | 29
x86_64-linux python3.10-eventlet-0.33.0 | 27
x86_64-linux sybil-2.0.1 | 19
x86_64-linux python3.10-pytest-4.6.11 | 18
x86_64-linux python3.10-semver-2.13.0 | 17
x86_64-linux python3.9-pygame-2.1.0 | 14
x86_64-linux python3.10-tensorflow-tensorboard-2.6.0 | 12
x86_64-linux webkitgtk-2.34.3 | 11
x86_64-linux python3.10-mpi4py-3.0.3 | 9
x86_64-linux python3.10-commoncode-30.0.0 | 9
x86_64-linux python3.10-sanic-21.9.3 | 9
x86_64-linux python3.10-cssutils-2.3.0 | 8
x86_64-linux python3.10-unicodedata2-13.0.0-2 | 7
x86_64-linux python3.10-mocket-3.10.3 | 7
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.
Current comparison against trunk looks very good indeed.
Thanks, @jonringer and @mweinelt! |
Motivation for this change
#126411 bumps the default version of LLVM for x86_64 Darwin, which is tied to the stdenv. This brings it in line with aarch64-darwin but takes it out of sync with the default LLVM for Linux. This is not ideal because fixes for one LLVM version could introduce failures for another version, which would require introducing branching on the LLVM version to resolve.
This PR builds on #126411 and is currently mostly to get a Hydra evaluation for Linux to see how much work bumping would take.
Things done
sandbox = true
set innix.conf
? (See Nix manual)nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
./result/bin/
)