Skip to content
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

rustc: 1.64.0 -> 1.65.0 #199664

Merged
merged 1 commit into from
Nov 14, 2022
Merged

rustc: 1.64.0 -> 1.65.0 #199664

merged 1 commit into from
Nov 14, 2022

Conversation

tjni
Copy link
Contributor

@tjni tjni commented Nov 5, 2022

https://github.com/rust-lang/rust/releases/tag/1.65.0

I'm planning to run as many builds as I can to test this.

Things done
  • Built on platform(s)
    • x86_64-linux
    • aarch64-linux
    • x86_64-darwin
    • aarch64-darwin
  • For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
  • Tested, as applicable:
  • Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
  • Tested basic functionality of all binary files (usually in ./result/bin/)
  • 22.11 Release Notes (or backporting 22.05 Release notes)
    • (Package updates) Added a release notes entry if the change is major or breaking
    • (Module updates) Added a release notes entry if the change is significant
    • (Module addition) Added a release notes entry if adding a new NixOS module
    • (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes
  • Fits CONTRIBUTING.md.

@lblasc
Copy link
Contributor

lblasc commented Nov 5, 2022

Upstream is using llvm15, we should wait for #194634

@tjni
Copy link
Contributor Author

tjni commented Nov 5, 2022

I'm temporarily pulling in unmerged LLVM update into this PR for testing.

@Fuuzetsu
Copy link
Member

Fuuzetsu commented Nov 7, 2022

Might want to take #199300 at the same time as it causes full rust crate rebuilds too (though ofborg seems to not think so?)

@tjni
Copy link
Contributor Author

tjni commented Nov 7, 2022

If yours is ready, I'd put it on staging right away. I'm not yet sure when this will be ready, although I hope it's soon :)

@Fuuzetsu
Copy link
Member

Fuuzetsu commented Nov 7, 2022

If yours is ready, I'd put it on staging right away. I'm not yet sure when this will be ready, although I hope it's soon :)

I can at best send a PR as I don't have commits rights. Feel free to do it yourself if you'd like.

@tjni
Copy link
Contributor Author

tjni commented Nov 7, 2022

I don't have commit rights either, 🤞 your PR is reviewed soon.

@tjni
Copy link
Contributor Author

tjni commented Nov 9, 2022

@oxalica
Copy link
Contributor

oxalica commented Nov 9, 2022

@lblasc

Upstream is using llvm15, we should wait for #194634

I found this in section "Compatibility Notes" of the release note,

  • Update the minimum external LLVM to 13

I guess LLVM 15 is not necessary required?

@lblasc
Copy link
Contributor

lblasc commented Nov 9, 2022

hey @oxalica , off topic, thank you for all the work on rust in nix, on NixCon I heard about nocargo project which is awesome!

About the llvm compatibility, rust 1.65 should work on >=LLVM13, if I'm not mistaken rust upstream is not doing extensive testing on older LLVM versions, in past mismatched LLVM versions between nix and upstream caused some strange build and runtime issues in our monorepo which contains workspace with 80+ crates. That's the only argument I can provide, but sure LLVM14 should work just fine, maybe we can update afterwards.

@kevincox
Copy link
Contributor

I was trying to build 763c18e and it seemed mostly successful. Unfortunately it didn't finish as a few packages appear to be hung:

4/11111/11124 built (179 failed)

However trying to build 137017341b809b8a0f01576849331cbafe756283 I am getting an eval error.

% nixpkgs-review pr --no-shell --post-result -c commit $(c) --build-args '-j4 --cores 32 --max-silent-time 3600'
$ git -c fetch.prune=false fetch --no-tags --force https://github.com/NixOS/nixpkgs staging:refs/nixpkgs-review/0 pull/199664/head:refs/nixpkgs-review/1
$ git worktree add /home/kevincox/.cache/nixpkgs-review/pr-199664-11/nixpkgs 137017341b809b8a0f01576849331cbafe756283
Preparing worktree (detached HEAD 137017341b8)
Updating files: 100% (32616/32616), done.
HEAD is now at 137017341b8 rustc: 1.64.0 -> 1.65.0
error: Function called without required argument "libusb" at /home/kevincox/.cache/nixpkgs-review/pr-199664-11/nixpkgs/pkgs/development/tools/rust/humility/default.nix:4, did you mean "librsb", "libusb1" or "ibus"?
(use '--show-trace' to show detailed location information)
nix --experimental-features nix-command --system x86_64-linux eval --json --impure --expr (import /nix/store/nci1s3y693yifx3kqg0cd81p8alybnqk-nixpkgs-review-2.7.0/lib/python3.10/site-packages/nixpkgs_review/nix/evalAttrs.nix { allowAliases = false; attr-json = /run/user/1000/tmpht_x_zp3; }) failed to run, /run/user/1000/tmpht_x_zp3 was stored inspection
https://github.com/NixOS/nixpkgs/pull/199664 failed to build

@github-actions github-actions bot added 6.topic: kernel The Linux kernel 6.topic: nixos Issues or PRs affecting NixOS modules, or package usability issues specific to NixOS 6.topic: python 6.topic: qt/kde 6.topic: ruby 6.topic: systemd 8.has: changelog 8.has: documentation This PR adds or changes documentation 8.has: module (update) This PR changes an existing module in `nixos/` labels Nov 10, 2022
@ofborg ofborg bot requested review from dtzWill, lovek323 and primeos November 10, 2022 18:05
@kevincox
Copy link
Contributor

kevincox commented Nov 12, 2022

Ignore the previous version of this message, it was triggered by a NIx bug NixOS/nix#6572

error: derivation '/nix/store/j817n3h7wqz7xa4i7i5ljda3wwd5pzdk-shards-0.17.1.drv' requires non-existent output 'lib' from input derivation '/nix/store/v67yvwfsm6s9kp6pfr4vzhfa5yr12srn-crystal-1.2.2.drv'

@tjni
Copy link
Contributor Author

tjni commented Nov 12, 2022

I hope that error is resolved for you soon. It sounds painful from reading the issue.

@kevincox
Copy link
Contributor

It seems to be triggering frequently on that version of this PR for some reason so I'm having trouble testing. Is there anything holding this back though? May make sense to dump it into stshung if we don't have any known issues.

@ofborg ofborg bot requested a review from 06kellyjac November 12, 2022 18:17
@tjni
Copy link
Contributor Author

tjni commented Nov 12, 2022

The main question I would need an owner to resolve is whether we want to track upstream's LLVM exactly. This is requested in a comment that, right now, is in 1_64.nix, which was originally committed in #76100 by @edolstra. @cstrahan @globin and @Havvy are maintainers of rustc whose opinions I think should matter.

If so, we need to wait for #194634 to land. If not, I can update this PR to do without that and create one to follow up when that's available. Without any owner opinion, I plan to wait for the LLVM update to land.

I could not run nixpkgs-review, because it required too much disk space and time. However, I did build a large sample of the applications listed on https://github.com/rust-unofficial/awesome-rust in my aarch64-darwin machine and on an x86_64-Linux machine from GitHub Actions.

If it aids you in testing, on my Cachix cache tjni, I have LLVM 15 built from a previous iteration of #194634. I haven't yet, but I'm going to spin up a GitHub Actions runner to build firefox and thunderbird.

Edit: I built thunderbird successfully. My GitHub Actions runner terminated before firefox could finish, but it ran for quite awhile without any issues.

@tjni tjni mentioned this pull request Nov 14, 2022
13 tasks
@oxalica
Copy link
Contributor

oxalica commented Nov 14, 2022

@lblasc

About the llvm compatibility, rust 1.65 should work on >=LLVM13, if I'm not mistaken rust upstream is not doing extensive testing on older LLVM versions, in past mismatched LLVM versions between nix and upstream caused some strange build and runtime issues in our monorepo which contains workspace with 80+ crates. That's the only argument I can provide, but sure LLVM14 should work just fine, maybe we can update afterwards.

I'd prefer using the current LLVM14 for now if #194634 cannot be merged in the near future. While rust 1.65.0, which is a big update, will be required for more and more crates targeting latest stable compiler, this PR would block all of them.

@kevincox
Copy link
Contributor

I've been building the latest commit and it doesn't appear that there are any major breakages. I think it makes sense to move this into staging.

@tjni
Copy link
Contributor Author

tjni commented Nov 14, 2022

Thanks, everyone. I've updated the commit to use LLVM 14 and extracted the deno fix into #201122.

@tjni tjni marked this pull request as ready for review November 14, 2022 16:28
@tjni tjni requested review from Mic92, LnL7 and zowoq as code owners November 14, 2022 16:28
@zowoq zowoq merged commit eea038c into NixOS:staging Nov 14, 2022
@tjni tjni deleted the rust branch November 14, 2022 21:11
@Mic92
Copy link
Member

Mic92 commented Nov 14, 2022

x86_64-linux: firefox built
aarch64-macos: fd built
aarch64-linux: still building.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

8 participants