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

Prune unused/unneeded/old versions of llvm #44372

Open
dezgeg opened this issue Aug 2, 2018 · 19 comments
Open

Prune unused/unneeded/old versions of llvm #44372

dezgeg opened this issue Aug 2, 2018 · 19 comments
Assignees
Labels
6.topic: old-versions Tickets pertaining to ongoing support of outdated versions of packages 9.needs: clean-up

Comments

@dezgeg
Copy link
Contributor

dezgeg commented Aug 2, 2018

We have 8 versions of LLVM currently:

llvm_34
llvm_35
llvm_37
llvm_38
llvm_39
llvm_4
llvm_5
llvm_6

Let's get rid of the older ones where possible.

@vcunat
Copy link
Member

vcunat commented Aug 3, 2018

So... we delete all unreferenced versions (after some time) and then see if someone minds? Is there some other way to find which are likely to be useful?

@vcunat vcunat added this to the 18.09 milestone Aug 3, 2018
@jtojnar
Copy link
Contributor

jtojnar commented Aug 4, 2018

See also #30229

@jtojnar jtojnar added this to To do in Picking up garbage via automation Aug 4, 2018
@vcunat
Copy link
Member

vcunat commented Aug 4, 2018

One alternative might be to at least not (re)building all of them on Hydra all the time, but in any case I'd try to find at least a couple to remove completely.

@copumpkin copumpkin added the 6.topic: old-versions Tickets pertaining to ongoing support of outdated versions of packages label Sep 15, 2018
@copumpkin
Copy link
Member

Huge 👍to this. How much I mind old versions for me is roughly proportional to how long the builds are (if they all take 5 seconds, I don't really care) and how much duplicated code there is between them (LLVM is an awful offender here). As someone who often needs changes to LLVM because of its integration with the Darwin stdenv, old versions of LLVM have been the bane of my existence.

@matthewbauer matthewbauer modified the milestones: 18.09, 19.03 Jan 22, 2019
@lheckemann lheckemann removed this from the 19.03 milestone Feb 25, 2019
@stale

This comment was marked as resolved.

@stale stale bot added the 2.status: stale https://github.com/NixOS/nixpkgs/blob/master/.github/STALE-BOT.md label Jun 3, 2020
@stale stale bot removed the 2.status: stale https://github.com/NixOS/nixpkgs/blob/master/.github/STALE-BOT.md label Apr 26, 2022
@stale stale bot added the 2.status: stale https://github.com/NixOS/nixpkgs/blob/master/.github/STALE-BOT.md label Nov 13, 2022
@mweinelt mweinelt removed the 2.status: stale https://github.com/NixOS/nixpkgs/blob/master/.github/STALE-BOT.md label Feb 20, 2023
@RaitoBezarius
Copy link
Member

RaitoBezarius commented Apr 3, 2023

LLVM5:

LLVM6

  • emacs in withMacports = true;: @NixOS/emacs could you enlighten us?
  • python39Packages.llvmlite: older versions of the Python package

LLVM7

  • mrustc: needs update; latest version uses LLVM 12
  • ghc884: @NixOS/haskell do we need this attr?

@RaitoBezarius RaitoBezarius moved this from To do to In progress in Picking up garbage Apr 3, 2023
@RaitoBezarius RaitoBezarius self-assigned this Apr 3, 2023
@adisbladis
Copy link
Member

emacs in withMacports = true;: https://github.com/orgs/NixOS/teams/emacs could you enlighten us?

I don't have a short and sweet explanation, but more context can be found at #127902.

@RaitoBezarius
Copy link
Member

emacs in withMacports = true;: https://github.com/orgs/NixOS/teams/emacs could you enlighten us?

I don't have a short and sweet explanation, but more context can be found at #127902.

It seems like a packaging mistake: UniformTypeIdentifiers/UniformTypeIdentifiers.h seems to come from a macOS framework: UniformTypeIdentifiers.framework.
The patch mentioned here: #127902 (comment) seems to fix the compilation issue and let us drop the old LLVM requirement I believe.

Of course, it may not fix the underlying issue.

@RaitoBezarius
Copy link
Member

@progval @r-burns What would it take to bump mrustc to use LLVM12? I am fine with bumping it to a unstable version (to target something like Rust 1.54.0 for example).

@maralorn
Copy link
Member

maralorn commented Apr 5, 2023

According to ghc docs https://downloads.haskell.org/ghc/8.8.4/docs/html/users_guide/8.8.1-notes.html#llvm-backend ghc 8.8 is only compatible with LLVM 7. We have not yet decided to drop 8.8.4, yet. So until then, I think it’s best llvm 7 stays.

Otoh @sternenseemann might have more insight.

@RaitoBezarius
Copy link
Member

According to ghc docs https://downloads.haskell.org/ghc/8.8.4/docs/html/users_guide/8.8.1-notes.html#llvm-backend ghc 8.8 is only compatible with LLVM 7. We have not yet decided to drop 8.8.4, yet. So until then, I think it’s best llvm 7 stays.

Otoh @sternenseemann might have more insight.

Do you have a vision on when 8.8.4 will be deprecated/dropped?

@progval
Copy link
Member

progval commented Apr 5, 2023

@RaitoBezarius the latest mrustc tag (v0.10) supports Rust 1.54.0, which does support LLVM 12.0.0 (not sure about >= 12.0.1 though)

@vcunat
Copy link
Member

vcunat commented Apr 5, 2023

The patch bumps should be compatible by design.

@RaitoBezarius
Copy link
Member

@RaitoBezarius the latest mrustc tag (v0.10) supports Rust 1.54.0, which does support LLVM 12.0.0 (not sure about >= 12.0.1 though)

If you have any time to bump it before the branch off, that would be extremely awesome. :)

@r-burns
Copy link
Contributor

r-burns commented Apr 5, 2023

I had some issues with mrustc 0.10 last I tried, but unstable seems to be working okay. I already had a wip bump to unstable, and I was planning to wait until the next mrustc release but I'll go ahead and open a PR later so we can get on rust 1.54 with llvm 12.

@progval progval mentioned this issue Apr 6, 2023
12 tasks
@progval
Copy link
Member

progval commented Apr 6, 2023

WIP at #224970

@sternenseemann
Copy link
Member

LLVM7

Given that this was the default nixpkgs LLVM version not that long ago, I'm not sure if it is prudent to remove it already. In general it seems to me that a push to remove old stuff just for the sake of it is just annoying busywork that usually only has the tangible result of annoying downstream users.

I do not think that removing old versions of LLVM helps us with refactoring the LLVM expressions. Only unifying all LLVM >= 8 expressions is already an incredibly big task. I'd rather recommend having a common expression going forward, i.e. git, 15, 16, … that we continuously update to also support whatever new version comes out.

That being said, GHC 8.8.4 is not strictly needed anymore from a nixpkgs perspective, i.e. it is neither used for bootstrapping nor required by any specific package, but there is also no particular reason to remove it either.

@RaitoBezarius
Copy link
Member

RaitoBezarius commented Oct 30, 2023

Dropping LLVM 5 & 6 for NixOS 23.11.
We can explore LLVM 7 drop for NixOS 24.05 or 24.11 depending on the situation.
In #264364

@RaitoBezarius
Copy link
Member

Dropping only LLVM 5 because GHC 8.6.5 depends on LLVM 6…

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
6.topic: old-versions Tickets pertaining to ongoing support of outdated versions of packages 9.needs: clean-up
Projects
Picking up garbage
  
In progress
Development

No branches or pull requests