all-hies is not (yet) compatible with recent nixpkgs
Ptival opened this issue · 8 comments
It seems that at some point (EDIT: July 1st 2020 NixOS/nixpkgs@e640908 ) nixpkgs is using glibc-2.31.
When using all-hies, it yields:
error: attribute 'glibc-2.31' missing, at /nix/store/l08w605fsy1gh904g2q42p314v8mbdmf-source/build.nix:4:10
It seems indeed all-hies has explicit support for 2.27 and 2.30.
Is this something easy to add, or is it a complex issue?
Currently glibc 2.27 and glibc 2.30 are supported, which come from nixpkgs 19.09 and 20.03 respectively. This is because haskell.nix only does CI builds for those: https://github.com/input-output-hk/haskell.nix/blob/master/ci.nix#L11-L14. Supporting glibc 2.31 would mean to use an additional nixpkgs version and building all of the GHC bootstrapping stuff without any caches.
I guess that might be fine though, it will just take a while. Wanna try making a PR for this? It should essentially just be a new line here with a pinned nixpkgs version from e.g. the last nixos-unstable: https://github.com/Infinisil/all-hies/blob/09ba836904fa290b5e37d5403150ea0c921661fb/sources.nix#L9-L12
Also these entries should be duplicated with glibc 2.31 so CI builds those: https://github.com/Infinisil/all-hies/blob/09ba836904fa290b5e37d5403150ea0c921661fb/.github/workflows/builds.yaml#L41-L46
I can look into it, and maybe emit some warning message about the fact that this will take a while because it's not using CI.
Oh it will use all-hies CI if you add the lines to builds.yaml. CI itself will just take a while to finish because the haskell.nix CI doesn't have anything cached already. End users won't notice this
Wonderful!
Would live here a double minor tangential note:
- Nixpkgs yesterday dropped GHC 8.4.4 support, Nixpkgs policy is to preserve the last 3 major GHC versions.
- GHC 8.8.4 arrived into Nixpkgs, and also was seen in the backport process.
Unfortunately 8.8.4 can't be supported because haskell-ide-engine itself doesn't support it (unless somebody adds support for it)
Well, it is a perpetual timeout cycle we would always have. GHC 8.8.3 is good enough, almost ideal HIE is better than no HIE, as it is said ideal should not be the rival of the great. You already done a great work here. My note is closed.
Closing all issues for deprecation and archival, refer to https://github.com/haskell/haskell-language-server instead