@ -39,6 +39,12 @@ let
# Use this rather than `rec { ... }` below for sake of overlays.
inherit ( pkgs . haskell ) compiler packages ;
# temporarily use python 3.8 since 3.9 fails with musl
# https://github.com/NixOS/nixpkgs/issues/131557
muslArgs = pkgs . lib . optionalAttrs pkgs . stdenv . buildPlatform . isMusl {
python3 = buildPackages . python38 ;
} ;
in {
lib = haskellLib ;
@ -57,7 +63,7 @@ in {
minimal = true ;
} ;
ghc884 = callPackage ../development/compilers/ghc/8.8.4.nix {
ghc884 = callPackage ../development/compilers/ghc/8.8.4.nix ( {
# aarch64 ghc865Binary gets SEGVs due to haskell#15449 or similar
# Musl bindists do not exist for ghc 8.6.5, so we use 8.10.* for them
bootPkgs = if stdenv . isAarch64 || stdenv . targetPlatform . isMusl then
@ -67,8 +73,8 @@ in {
inherit ( buildPackages . python3Packages ) sphinx ;
buildLlvmPackages = buildPackages . llvmPackages_7 ;
llvmPackages = pkgs . llvmPackages_7 ;
} ;
ghc8104 = callPackage ../development/compilers/ghc/8.10.4.nix {
} // muslArgs ) ;
ghc8104 = callPackage ../development/compilers/ghc/8.10.4.nix ( {
# aarch64 ghc865Binary gets SEGVs due to haskell#15449 or similar
# Musl bindists do not exist for ghc 8.6.5, so we use 8.10.* for them
bootPkgs = if stdenv . isAarch64 || stdenv . isAarch32 || stdenv . targetPlatform . isMusl then
@ -78,8 +84,8 @@ in {
inherit ( buildPackages . python3Packages ) sphinx ;
buildLlvmPackages = buildPackages . llvmPackages_9 ;
llvmPackages = pkgs . llvmPackages_9 ;
} ;
ghc901 = callPackage ../development/compilers/ghc/9.0.1.nix {
} // muslArgs ) ;
ghc901 = callPackage ../development/compilers/ghc/9.0.1.nix ( {
# aarch64 ghc8102Binary exceeds max output size on hydra
bootPkgs = if stdenv . isAarch64 || stdenv . isAarch32 then
packages . ghc8102BinaryMinimal
@ -88,14 +94,14 @@ in {
inherit ( buildPackages . python3Packages ) sphinx ;
buildLlvmPackages = buildPackages . llvmPackages_10 ;
llvmPackages = pkgs . llvmPackages_10 ;
} ;
ghcHEAD = callPackage ../development/compilers/ghc/head.nix {
} // muslArgs ) ;
ghcHEAD = callPackage ../development/compilers/ghc/head.nix ( {
bootPkgs = packages . ghc901 ; # no binary yet
inherit ( buildPackages . python3Packages ) sphinx ;
buildLlvmPackages = buildPackages . llvmPackages_10 ;
llvmPackages = pkgs . llvmPackages_10 ;
libffi = pkgs . libffi ;
} ;
} // muslArgs ) ;
# The integer-simple attribute set contains all the GHC compilers
# build with integer-simple instead of integer-gmp.