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. |
sternenseemann
left a comment
There was a problem hiding this comment.
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. |
jonringer
left a comment
There was a problem hiding this comment.
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
mweinelt
left a comment
There was a problem hiding this comment.
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 = trueset innix.conf? (See Nix manual)nix-shell -p nixpkgs-review --run "nixpkgs-review wip"./result/bin/)