Skip to content

haskell.compiler.ghc963Binary: drop#444249

Merged
wolfgangwalther merged 3 commits intoNixOS:stagingfrom
wolfgangwalther:haskell-drop-ghc963binary-staging
Oct 13, 2025
Merged

haskell.compiler.ghc963Binary: drop#444249
wolfgangwalther merged 3 commits intoNixOS:stagingfrom
wolfgangwalther:haskell-drop-ghc963binary-staging

Conversation

@wolfgangwalther
Copy link
Contributor

@wolfgangwalther wolfgangwalther commented Sep 19, 2025

This bootstraps mostly from ghc984Binary, at least for the major platforms. The bootstrap paths for darwin become (potentially much, with #440976 in mind) shorter. Unfortunately, the bootstrap paths for i686-linux become a bit longer, so it's a trade-off.

TLDR: I think this would be a major step towards consistent bootstrap paths from either GHC 9.4.8 or 9.8.4 for almost everything.

Things done

First, I tried bootstrapping everything from GHC 9.8.4 bindist:

984Binary 9.8.4 9.10.1 9.10.2 9.10.3 9.12.1 9.12.2
aarch64-darwin ✔️ ✔️ ✔️
aarch64-linux ✔️ ✔️ ✔️
aarch64-linux-musl ✔️ ✔️ ✔️
i686-linux
x86_64-darwin ✔️ ✔️ ✔️
x86_64-linux ✔️ ✔️ ✔️
x86_64-linux-musl ✔️ ✔️ ✔️

I only tested GHC 9.12 quickly for aarch64-linux, but that didn't look like it would go well, so backed out that change and kept its current bootstrap path. Since GHC HEAD does bootstrap with 9.8.4, we might look into this again eventually - it could be possible to patch this, so that we can consistently bootstrap from 9.8.4.

I decided to drop GHC 9.10.1, because I had that commit prepared already. Of course we have other options here, such as trying to patch it and/or change its bootstrap path. Personally, I'm not convinced that putting effort into this minor version is needed, though.

I also adjusted bootstrap paths for i686-linux:


Add a 👍 reaction to pull requests you find important.

@nixpkgs-ci nixpkgs-ci bot added 10.rebuild-linux: 501+ This PR causes many rebuilds on Linux and should normally target the staging branches. 10.rebuild-darwin: 501+ This PR causes many rebuilds on Darwin and should normally target the staging branches. 11.by: package-maintainer This PR was created by a maintainer of all the package it changes. 10.rebuild-darwin: 5001+ This PR causes many rebuilds on Darwin and must target the staging branches. 10.rebuild-linux: 5001+ This PR causes many rebuilds on Linux and must target the staging branches. 6.topic: haskell General-purpose, statically typed, purely functional programming language labels Sep 19, 2025
@wolfgangwalther wolfgangwalther force-pushed the haskell-drop-ghc963binary-staging branch from 6e17c67 to b913708 Compare September 19, 2025 10:10
@wolfgangwalther wolfgangwalther marked this pull request as ready for review September 19, 2025 10:12
@mdaniels5757 mdaniels5757 added the 8.has: clean-up This PR removes packages or removes other cruft label Sep 27, 2025
@nixpkgs-ci nixpkgs-ci bot added the 2.status: merge conflict This PR has merge conflicts with the target branch label Oct 7, 2025
@wolfgangwalther wolfgangwalther force-pushed the haskell-drop-ghc963binary-staging branch from 5d12282 to c34189f Compare October 9, 2025 10:28
@wolfgangwalther
Copy link
Contributor Author

Resolved merge conflict.

@sternenseemann are you opposing any of the 4 commits explicitly? If yes, which one and why?

@nixpkgs-ci nixpkgs-ci bot added 2.status: merge conflict This PR has merge conflicts with the target branch and removed 2.status: merge conflict This PR has merge conflicts with the target branch labels Oct 9, 2025
@yuyuyureka
Copy link
Contributor

yuyuyureka commented Oct 12, 2025

As it is, this PR looks like it will rot in a deadlock situation because of the thread above, and I know how bad this can feel for a PR author with no strong opinion on the topic.

I personally tend to agree with emilazy that the native 32-bit bootstrap is not really worth keeping around.
But I also am not a regular contributor to the Haskell parts of nixpkgs (other than @sternenseemann, it seems), so I respect his opinion on this.

@sternenseemann can you confirm once more: If seen as a source of unwanted complexity, is the pkgsi686Linux bootstrap around still important enough to you to warrant keeping it around?

Hadrian is only used for GHC 9.6+ anyway.
@wolfgangwalther wolfgangwalther force-pushed the haskell-drop-ghc963binary-staging branch from adfd727 to c1e465b Compare October 13, 2025 13:26
@wolfgangwalther wolfgangwalther removed the 2.status: merge conflict This PR has merge conflicts with the target branch label Oct 13, 2025
@nixpkgs-ci nixpkgs-ci bot added the 8.has: changelog This PR adds or changes release notes label Oct 13, 2025
@nixpkgs-ci nixpkgs-ci bot added the 8.has: documentation This PR adds or changes documentation label Oct 13, 2025
Copy link
Member

@emilazy emilazy left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM with two things I think should be fixed but aren’t strictly blocking. Since this has a concrete benefit of fixing Musl I think we should land it in the absence of reasons not to.

@sternenseemann
Copy link
Member

I think we can retain i686 without adding conditionals even, I'm currently looking into it.

@emilazy emilazy mentioned this pull request Oct 13, 2025
13 tasks
Latest 9.10.x minor release is 9.10.2, which is also in Stackage 24.8.

Thus, dropping according to the GHC Deprecation Policy.
This bootstraps mostly from ghc984Binary, at least for the major
platforms. The bootstrap paths for darwin become much shorter.
Unfortunately, the bootstrap paths for i686-linux become a bit longer,
so it's a trade-off.
@wolfgangwalther wolfgangwalther force-pushed the haskell-drop-ghc963binary-staging branch from c1e465b to 5df6c9a Compare October 13, 2025 16:24
@nixpkgs-ci nixpkgs-ci bot removed the 8.has: changelog This PR adds or changes release notes label Oct 13, 2025
@wolfgangwalther
Copy link
Contributor Author

I dropped the commit to remove i686 bootstrap.

I think we can retain i686 without adding conditionals even, I'm currently looking into it.

That would be great. Since I already have the conditionals and the PR fixes aarch64-linux musl + shortens the bootstrap path for the default GHC on darwin, I'd like to merge with the conditionals in place for now. If it works out what you try, we can put this on top!

@emilazy addressed your review, can you have another look?

Copy link
Member

@emilazy emilazy left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM.

@nixpkgs-ci nixpkgs-ci bot added the 12.approvals: 1 This PR was reviewed and approved by one person. label Oct 13, 2025
@wolfgangwalther
Copy link
Contributor Author

Let's ship it then and proceed to #440976.

@wolfgangwalther wolfgangwalther added this pull request to the merge queue Oct 13, 2025
Merged via the queue into NixOS:staging with commit 5275582 Oct 13, 2025
29 of 32 checks passed
@wolfgangwalther wolfgangwalther deleted the haskell-drop-ghc963binary-staging branch October 13, 2025 17:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

6.topic: haskell General-purpose, statically typed, purely functional programming language 8.has: clean-up This PR removes packages or removes other cruft 8.has: documentation This PR adds or changes documentation 10.rebuild-darwin: 501+ This PR causes many rebuilds on Darwin and should normally target the staging branches. 10.rebuild-darwin: 5001+ This PR causes many rebuilds on Darwin and must target the staging branches. 10.rebuild-linux: 501+ This PR causes many rebuilds on Linux and should normally target the staging branches. 10.rebuild-linux: 5001+ This PR causes many rebuilds on Linux and must target the staging branches. 11.by: package-maintainer This PR was created by a maintainer of all the package it changes. 12.approvals: 1 This PR was reviewed and approved by one person.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants