core/pkgs/by-name/ha/haskell/packages.nix

36 lines
1.5 KiB
Nix
Raw Normal View History

2024-05-14 02:37:40 +00:00
{ ... }:
res: pkgs: super:
with pkgs;
{
haskell = callPackage ./haskell-packages.nix { };
haskellPackages = dontRecurseIntoAttrs
# Prefer native-bignum to avoid linking issues with gmp
# GHC 9.6 rts can't be built statically with hadrian, so we need to use 9.4
# until 9.8 is ready
(if stdenv.hostPlatform.isStatic then haskell.packages.native-bignum.ghc94
# JS backend can't use gmp
else if stdenv.hostPlatform.isGhcjs then haskell.packages.native-bignum.ghc96
else haskell.packages.ghc96)
// { __recurseIntoDerivationForReleaseJobs = true; };
# haskellPackages.ghc is build->host (it exposes the compiler used to build the
# set, similarly to stdenv.cc), but pkgs.ghc should be host->target to be more
# consistent with the gcc, gnat, clang etc. derivations
#
# We use targetPackages.haskellPackages.ghc if available since this also has
# the withPackages wrapper available. In the final cross-compiled package set
# however, targetPackages won't be populated, so we need to fall back to the
# plain, cross-compiled compiler (which is only theoretical at the moment).
ghc = targetPackages.haskellPackages.ghc or
# Prefer native-bignum to avoid linking issues with gmp
# Use 9.4 for static over broken 9.6
(if stdenv.targetPlatform.isStatic then haskell.compiler.native-bignum.ghc94
# JS backend can't use GMP
else if stdenv.targetPlatform.isGhcjs then haskell.compiler.native-bignum.ghc96
else haskell.compiler.ghc96);
nixfmt = haskellPackages.nixfmt.bin;
}