Merge pull request #94872 from NixOS/haskell-updates

Update Haskell package set to LTS 16.8 (plus other fixes)
This commit is contained in:
Peter Simons 2020-08-07 20:52:48 +02:00 committed by GitHub
commit 99ec166142
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
10 changed files with 1609 additions and 889 deletions

View File

@ -24,7 +24,7 @@
enableRelocatedStaticLibs ? stdenv.targetPlatform != stdenv.hostPlatform
# aarch64 outputs otherwise exceed 2GB limit
, enableProfiliedLibs ? !stdenv.targetPlatform.isAarch64
, enableProfiledLibs ? !stdenv.targetPlatform.isAarch64
, # Whether to build dynamic libs for the standard library (on the target
# platform). Static libs are always built.
@ -68,7 +68,7 @@ let
HADDOCK_DOCS = NO
BUILD_SPHINX_HTML = NO
BUILD_SPHINX_PDF = NO
'' + stdenv.lib.optionalString (!enableProfiliedLibs) ''
'' + stdenv.lib.optionalString (!enableProfiledLibs) ''
GhcLibWays = "v dyn"
'' + stdenv.lib.optionalString enableRelocatedStaticLibs ''
GhcLibHcOpts += -fPIC

View File

@ -23,6 +23,9 @@
, # If enabled, use -fPIC when compiling static libs.
enableRelocatedStaticLibs ? stdenv.targetPlatform != stdenv.hostPlatform
# aarch64 outputs otherwise exceed 2GB limit
, enableProfiledLibs ? !stdenv.targetPlatform.isAarch64
, # Whether to build dynamic libs for the standard library (on the target
# platform). Static libs are always built.
enableShared ? !stdenv.targetPlatform.isWindows && !stdenv.targetPlatform.useiOSPrebuilt
@ -30,9 +33,6 @@
, # Whether to build terminfo.
enableTerminfo ? !stdenv.targetPlatform.isWindows
# aarch64 outputs otherwise exceed 2GB limit
, enableProfiliedLibs ? !stdenv.targetPlatform.isAarch64
, # What flavour to build. An empty string indicates no
# specific flavour and falls back to ghc default values.
ghcFlavour ? stdenv.lib.optionalString (stdenv.targetPlatform != stdenv.hostPlatform)
@ -68,7 +68,7 @@ let
HADDOCK_DOCS = NO
BUILD_SPHINX_HTML = NO
BUILD_SPHINX_PDF = NO
'' + stdenv.lib.optionalString (!enableProfiliedLibs) ''
'' + stdenv.lib.optionalString (!enableProfiledLibs) ''
GhcLibWays = "v dyn"
'' + stdenv.lib.optionalString enableRelocatedStaticLibs ''
GhcLibHcOpts += -fPIC

View File

@ -24,7 +24,7 @@
enableRelocatedStaticLibs ? stdenv.targetPlatform != stdenv.hostPlatform
# aarch64 outputs otherwise exceed 2GB limit
, enableProfiliedLibs ? !stdenv.targetPlatform.isAarch64
, enableProfiledLibs ? !stdenv.targetPlatform.isAarch64
, # Whether to build dynamic libs for the standard library (on the target
# platform). Static libs are always built.
@ -68,7 +68,7 @@ let
HADDOCK_DOCS = NO
BUILD_SPHINX_HTML = NO
BUILD_SPHINX_PDF = NO
'' + stdenv.lib.optionalString (!enableProfiliedLibs) ''
'' + stdenv.lib.optionalString (!enableProfiledLibs) ''
GhcLibWays = "v dyn"
'' + stdenv.lib.optionalString enableRelocatedStaticLibs ''
GhcLibHcOpts += -fPIC

View File

@ -20,9 +20,9 @@
# build-time dependency too.
buildLlvmPackages, llvmPackages
, # If enabled, GHC will be built with the GPL-free but slower integer-simple
# library instead of the faster but GPLed integer-gmp library.
enableIntegerSimple ? !(stdenv.lib.any (stdenv.lib.meta.platformMatch stdenv.hostPlatform) gmp.meta.platforms)
, # If enabled, GHC will be built with the GPL-free but slightly slower native
# bignum backend instead of the faster but GPLed gmp backend.
enableNativeBignum ? !(stdenv.lib.any (stdenv.lib.meta.platformMatch stdenv.hostPlatform) gmp.meta.platforms)
, gmp
, # If enabled, use -fPIC when compiling static libs.
@ -35,7 +35,7 @@
, # Whether to build terminfo.
enableTerminfo ? !stdenv.targetPlatform.isWindows
, version ? "8.11.20200505"
, version ? "8.11.20200731"
, # What flavour to build. An empty string indicates no
# specific flavour and falls back to ghc default values.
ghcFlavour ? stdenv.lib.optionalString (stdenv.targetPlatform != stdenv.hostPlatform)
@ -46,7 +46,7 @@
disableLargeAddressSpace ? stdenv.targetPlatform.isDarwin && stdenv.targetPlatform.isAarch64
}:
assert !enableIntegerSimple -> gmp != null;
assert !enableNativeBignum -> gmp != null;
let
inherit (stdenv) buildPlatform hostPlatform targetPlatform;
@ -64,7 +64,7 @@ let
include mk/flavours/\$(BuildFlavour).mk
endif
DYNAMIC_GHC_PROGRAMS = ${if enableShared then "YES" else "NO"}
INTEGER_LIBRARY = ${if enableIntegerSimple then "integer-simple" else "integer-gmp"}
BIGNUM_BACKEND = ${if enableNativeBignum then "native" else "gmp"}
'' + stdenv.lib.optionalString (targetPlatform != hostPlatform) ''
Stage1Only = ${if targetPlatform.system == hostPlatform.system then "NO" else "YES"}
CrossCompilePrefix = ${targetPrefix}
@ -81,7 +81,7 @@ let
# Splicer will pull out correct variations
libDeps = platform: stdenv.lib.optional enableTerminfo ncurses
++ [libffi]
++ stdenv.lib.optional (!enableIntegerSimple) gmp
++ stdenv.lib.optional (!enableNativeBignum) gmp
++ stdenv.lib.optional (platform.libc != "glibc" && !targetPlatform.isWindows) libiconv
++ stdenv.lib.optional enableDwarf elfutils;
@ -103,8 +103,8 @@ stdenv.mkDerivation (rec {
src = fetchgit {
url = "https://gitlab.haskell.org/ghc/ghc.git/";
rev = "40c71c2cf38b4e134d81b7184a4d5e02949ae70c";
sha256 = "04h9rcyzm9w3an1z00hjs062dp7dl19b8pkyxjsypr7a2i9dmvkb";
rev = "380638a33691ba43fdcd2e18bca636750e5f66f1";
sha256 = "029cgiyhddvwnx5zx31i0vgj13zsvzb8fna99zr6ifscz6x7rid1";
};
enableParallelBuilding = true;
@ -173,7 +173,7 @@ stdenv.mkDerivation (rec {
"--with-system-libffi"
"--with-ffi-includes=${targetPackages.libffi.dev}/include"
"--with-ffi-libraries=${targetPackages.libffi.out}/lib"
] ++ stdenv.lib.optionals (targetPlatform == hostPlatform && !enableIntegerSimple) [
] ++ stdenv.lib.optionals (targetPlatform == hostPlatform && !enableNativeBignum) [
"--with-gmp-includes=${targetPackages.gmp.dev}/include"
"--with-gmp-libraries=${targetPackages.gmp.out}/lib"
] ++ stdenv.lib.optionals (targetPlatform == hostPlatform && hostPlatform.libc != "glibc" && !targetPlatform.isWindows) [

View File

@ -1336,7 +1336,7 @@ self: super: {
})).override {
# we are faster than stack here
hie-bios = dontCheck self.hie-bios_0_6_1;
lsp-test = dontCheck self.lsp-test_0_11_0_3;
lsp-test = dontCheck self.lsp-test_0_11_0_4;
});
haskell-language-server = (overrideCabal super.haskell-language-server
@ -1356,7 +1356,7 @@ self: super: {
ghcide = self.hls-ghcide;
# we are faster than stack here
hie-bios = dontCheck self.hie-bios_0_6_1;
lsp-test = dontCheck self.lsp-test_0_11_0_3;
lsp-test = dontCheck self.lsp-test_0_11_0_4;
};
# https://github.com/kowainik/policeman/issues/57

View File

@ -67,9 +67,9 @@ self: super: {
unliftio-core = doJailbreak super.unliftio-core;
# Use the latest version to fix the build.
dhall = self.dhall_1_33_1;
dhall = self.dhall_1_34_0;
lens = self.lens_4_19_2;
optics-core = self.optics-core_0_3;
optics-core = self.optics-core_0_3_0_1;
repline = self.repline_0_4_0_0;
singletons = self.singletons_2_7;
th-desugar = self.th-desugar_1_11;

View File

@ -26,6 +26,7 @@ self: super: {
filepath = null;
ghc-boot = null;
ghc-boot-th = null;
ghc-bignum = null;
ghc-compact = null;
ghc-heap = null;
ghci = null;

View File

@ -72,7 +72,7 @@ default-package-overrides:
# gi-gdkx11-4.x requires gtk-4.x, which is still under development and
# not yet available in Nixpkgs
- gi-gdkx11 < 4
# LTS Haskell 16.7
# LTS Haskell 16.8
- abstract-deque ==0.3
- abstract-par ==0.3.3
- AC-Angle ==1.0
@ -323,7 +323,7 @@ default-package-overrides:
- bins ==0.1.2.0
- bitarray ==0.0.1.1
- bits ==0.5.2
- bitset-word8 ==0.1.1.1
- bitset-word8 ==0.1.1.2
- bits-extra ==0.0.2.0
- bitvec ==1.0.3.0
- blake2 ==0.3.0
@ -439,9 +439,9 @@ default-package-overrides:
- cipher-des ==0.0.6
- cipher-rc4 ==0.1.4
- circle-packing ==0.1.0.6
- clash-ghc ==1.2.3
- clash-lib ==1.2.3
- clash-prelude ==1.2.3
- clash-ghc ==1.2.4
- clash-lib ==1.2.4
- clash-prelude ==1.2.4
- classy-prelude ==1.5.0
- classy-prelude-conduit ==1.5.0
- classy-prelude-yesod ==1.5.0
@ -518,9 +518,9 @@ default-package-overrides:
- control-monad-omega ==0.3.2
- convertible ==1.1.1.0
- cookie ==0.4.5
- core-data ==0.2.1.5
- core-program ==0.2.4.2
- core-text ==0.2.3.3
- core-data ==0.2.1.7
- core-program ==0.2.4.4
- core-text ==0.2.3.5
- countable ==1.0
- cpio-conduit ==0.7.0
- cpphs ==1.20.9.1
@ -787,7 +787,7 @@ default-package-overrides:
- file-path-th ==0.1.0.0
- filepattern ==0.1.2
- fileplow ==0.1.0.0
- filtrable ==0.1.3.0
- filtrable ==0.1.4.0
- fin ==0.1.1
- FindBin ==0.0.5
- fingertree ==0.1.4.2
@ -976,6 +976,7 @@ default-package-overrides:
- hadoop-streaming ==0.2.0.3
- hakyll ==4.13.4.0
- half ==0.3
- hall-symbols ==0.1.0.6
- hamtsolo ==1.0.3
- HandsomeSoup ==0.4.2
- hapistrano ==0.4.1.0
@ -1046,7 +1047,7 @@ default-package-overrides:
- hint ==0.9.0.3
- hjsmin ==0.2.0.4
- hkd-default ==1.1.0.0
- hkgr ==0.2.6
- hkgr ==0.2.6.1
- hlibcpuid ==0.2.0
- hlibgit2 ==0.18.0.16
- hmatrix ==0.20.0.0
@ -1144,7 +1145,7 @@ default-package-overrides:
- http-link-header ==1.0.3.1
- http-media ==0.8.0.0
- http-reverse-proxy ==0.6.0
- http-streams ==0.8.7.1
- http-streams ==0.8.7.2
- http-types ==0.12.3
- human-readable-duration ==0.2.1.4
- HUnit ==1.6.0.0
@ -1511,7 +1512,7 @@ default-package-overrides:
- MusicBrainz ==0.4.1
- mustache ==2.3.1
- mutable-containers ==0.3.4
- mwc-probability ==2.3.0
- mwc-probability ==2.3.1
- mwc-random ==0.14.0.0
- mx-state-codes ==1.0.0.0
- mysql ==0.1.7
@ -1732,11 +1733,11 @@ default-package-overrides:
- pretty-class ==1.0.1.1
- pretty-hex ==1.1
- prettyprinter ==1.6.2
- prettyprinter-ansi-terminal ==1.1.1.2
- prettyprinter-ansi-terminal ==1.1.2
- prettyprinter-compat-annotated-wl-pprint ==1
- prettyprinter-compat-ansi-wl-pprint ==1.0.1
- prettyprinter-compat-wl-pprint ==1.0.0.1
- prettyprinter-convert-ansi-wl-pprint ==1.1
- prettyprinter-convert-ansi-wl-pprint ==1.1.1
- pretty-relative-time ==0.2.0.0
- pretty-show ==1.10
- pretty-simple ==3.2.3.0
@ -1825,7 +1826,7 @@ default-package-overrides:
- rawstring-qm ==0.2.3.0
- raw-strings-qq ==1.1
- rcu ==0.2.4
- rdf ==0.1.0.3
- rdf ==0.1.0.4
- rdtsc ==1.3.0.1
- re2 ==0.3
- readable ==0.3.1
@ -1914,7 +1915,7 @@ default-package-overrides:
- salve ==1.0.10
- sample-frame ==0.0.3
- sample-frame-np ==0.0.4.1
- sampling ==0.3.4
- sampling ==0.3.5
- say ==0.1.0.1
- sbp ==2.6.3
- scalpel ==0.6.2
@ -2137,6 +2138,7 @@ default-package-overrides:
- syb ==0.7.1
- symbol ==0.2.4
- symengine ==0.1.2.0
- symmetry-operations-symbols ==0.0.1.4
- sysinfo ==0.1.1
- system-argv0 ==0.1.1
- systemd ==2.3.0
@ -2231,10 +2233,10 @@ default-package-overrides:
- th-nowq ==0.1.0.5
- th-orphans ==0.13.10
- th-printf ==0.7
- thread-hierarchy ==0.3.0.1
- thread-hierarchy ==0.3.0.2
- thread-local-storage ==0.2
- threads ==0.5.1.6
- thread-supervisor ==0.1.0.0
- thread-supervisor ==0.1.0.1
- threepenny-gui ==0.9.0.0
- th-reify-compat ==0.0.1.5
- th-reify-many ==0.1.9
@ -2426,9 +2428,9 @@ default-package-overrides:
- wave ==0.2.0
- wcwidth ==0.0.2
- webdriver ==0.9.0.1
- webex-teams-api ==0.2.0.0
- webex-teams-conduit ==0.2.0.0
- webex-teams-pipes ==0.2.0.0
- webex-teams-api ==0.2.0.1
- webex-teams-conduit ==0.2.0.1
- webex-teams-pipes ==0.2.0.1
- webrtc-vad ==0.1.0.3
- websockets ==0.12.7.1
- websockets-snap ==0.10.3.1
@ -3745,6 +3747,7 @@ broken-packages:
- chart-histogram
- Chart-simple
- chart-svg
- chart-svg-various
- chart-unit
- chatter
- chatty-text
@ -7615,6 +7618,7 @@ broken-packages:
- mDNSResponder-client
- mdp
- mealstrom
- mealy
- MeanShift
- Measure
- mecab
@ -8661,6 +8665,8 @@ broken-packages:
- postgresql-simple-sop
- postgresql-simple-typed
- postgresql-syntax
- postgresql-tx-query
- postgresql-tx-squeal
- postgresql-typed
- postgresql-typed-lifted
- postgrest-ws
@ -9334,6 +9340,7 @@ broken-packages:
- SCalendar
- scalendar
- scalp-webhooks
- scalpel-search
- scan-vector-machine
- scc
- scenegraph
@ -10164,6 +10171,7 @@ broken-packages:
- taskell
- TaskMonad
- tasty-auto
- tasty-bdd
- tasty-fail-fast
- tasty-groundhog-converters
- tasty-hedgehog-coverage

File diff suppressed because it is too large Load Diff

View File

@ -8,6 +8,12 @@ let
"ghcjs"
"ghcjs86"
"integer-simple"
"native-bignum"
"ghcHEAD"
];
nativeBignumIncludes = [
"ghcHEAD"
];
haskellLib = import ../development/haskell-modules/lib.nix {
@ -97,6 +103,16 @@ in {
in pkgs.recurseIntoAttrs (pkgs.lib.genAttrs
integerSimpleGhcNames
(name: compiler.${name}.override { enableIntegerSimple = true; }));
# Starting from GHC 9, integer-{simple,gmp} is replaced by ghc-bignum
# with "native" and "gmp" backends.
native-bignum = let
nativeBignumGhcNames = pkgs.lib.filter
(name: builtins.elem name nativeBignumIncludes)
(pkgs.lib.attrNames compiler);
in pkgs.recurseIntoAttrs (pkgs.lib.genAttrs
nativeBignumGhcNames
(name: compiler.${name}.override { enableNativeBignum = true; }));
};
# Default overrides that are applied to all package sets.
@ -170,5 +186,16 @@ in {
};
});
native-bignum = let
nativeBignumGhcNames = pkgs.lib.filter
(name: builtins.elem name nativeBignumIncludes)
(pkgs.lib.attrNames compiler);
in pkgs.lib.genAttrs nativeBignumGhcNames (name: packages.${name}.override {
ghc = bh.compiler.native-bignum.${name};
buildHaskellPackages = bh.packages.native-bignum.${name};
overrides = _self : _super : {
integer-gmp = null;
};
});
};
}