The compilers themselves can pull them from `bootPkgs`, where they
should always come from anyways. This enforces that, simplifies that
code, and allows use to avoid more `rec { ... }` too.
Fixes mass build failures in these package sets,
due to "unknown pacakge: integer-simple".
Attributes that demonstrate this (see before/after):
* haskell.packages.integer-simple.ghc843.hello
* haskell.packages.integer-simple.ghc802.scientific
The second one is from the NixOS manual, FWIW.
Setting haskell.packageOverrides like so:
haskell = super.haskell // {
packageOverrides = self: super: {
my-package = ...;
my-other-package = ...;
};
};
causes all compiler-specific package sets to be overridden with those
overrides.
None of these old compilers are used anywhere in Nixpkgs, and keeping those
builds working in the face of regular updates of GCC, binutils, and whatnot is
too much effort for no obvious benefit.
- ghc versions 6.10.4, 6.12.3, and 7.2.2 are broken, and 6.10.2-binary is no
longer necessary after those versions have been dropped
- halvm version 2.4.0 hasn't compiled in a long time
- uhc version 1.1.9.4 hasn't compiled in a long time
We support only the last three major releases, i.e. 7.10.x is the latest
compiler we worry about.
The *compiler* is still there, though; it's just the package set that's been
removed.
This change brings development feedback loop improvement
from a couple of ghc rebuilds to only one for working on generic
builder.
To completely eliminate the rebuilds, use two nixpkgs clones
and point boot packages to the unmodified one.
- The haskell lib is very close to not relying on Nixpkgs. I think
this is good---simpler to think about and matches Nixpkgs's lib.
- The haskell lib is only imported once
- stdenv is exposed more shallowly so it can be overriden more easily.
I'll eventually use this on Darwin to avoid the Sierra shared
library problems (unless changes are to be made system-wide).
Closes https://github.com/NixOS/nixpkgs/pull/27840.