Merge pull request #66468 from NixOS/haskell-updates

LTS Haskell 14.0
This commit is contained in:
Peter Simons 2019-08-11 20:50:50 +02:00 committed by GitHub
commit 208aad4691
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
8 changed files with 3199 additions and 7806 deletions

View file

@ -167,9 +167,6 @@ self: super: {
inline-java = addBuildDepend super.inline-java pkgs.jdk;
# https://github.com/mvoidex/hsdev/issues/11
hsdev = dontHaddock super.hsdev;
# Upstream notified by e-mail.
permutation = dontCheck super.permutation;
@ -857,7 +854,7 @@ self: super: {
# Wrap the generated binaries to include their run-time dependencies in
# $PATH. Also, cryptol needs a version of sbl that's newer than what we have
# in LTS-13.x.
cryptol = overrideCabal (super.cryptol.override { sbv = self.sbv_8_3; }) (drv: {
cryptol = overrideCabal super.cryptol (drv: {
buildTools = drv.buildTools or [] ++ [ pkgs.makeWrapper ];
postInstall = drv.postInstall or "" + ''
for b in $out/bin/cryptol $out/bin/cryptol-html; do
@ -1035,8 +1032,6 @@ self: super: {
# https://github.com/dmwit/encoding/pull/3
encoding = appendPatch super.encoding ./patches/encoding-Cabal-2.0.patch;
clock = dontCheck (appendPatch super.clock ./patches/clock-0.7.2.patch);
# Work around overspecified constraint on github ==0.18.
github-backup = doJailbreak super.github-backup;
@ -1094,10 +1089,6 @@ self: super: {
# haskell-names-0.9.4: Break out of “tasty >=0.12 && <1.2”
haskell-names = doJailbreak super.haskell-names;
haskell-names_0_9_6 = super.haskell-names_0_9_6.overrideScope (self: super: {
haskell-src-exts = self.haskell-src-exts_1_21_0;
});
# hdocs-0.5.3.1: Break out of “haddock-api ==2.21.*”
# cannot use doJailbreak due to https://github.com/peti/jailbreak-cabal/issues/7
hdocs = overrideCabal super.hdocs (drv: {
@ -1106,11 +1097,6 @@ self: super: {
'';
});
hsdev_0_3_3_2 = super.hsdev_0_3_3_2.overrideScope (self: super: {
haskell-names = self.haskell-names_0_9_6;
network = self.network_3_0_1_1;
});
# Break out of tasty >=0.10 && <1.2.
aeson-compat = doJailbreak super.aeson-compat;
@ -1120,14 +1106,6 @@ self: super: {
# Generate shell completion.
cabal2nix = generateOptparseApplicativeCompletion "cabal2nix" super.cabal2nix;
stack = generateOptparseApplicativeCompletion "stack" (super.stack.overrideScope (self: super: {
ansi-terminal = self.ansi-terminal_0_9_1;
concurrent-output = self.concurrent-output_1_10_10; # needed for new ansi-terminal version
hi-file-parser = dontCheck (unmarkBroken super.hi-file-parser); # Avoid depending on newer hspec versions.
http-download = dontCheck (unmarkBroken super.http-download);
pantry = dontCheck (unmarkBroken super.pantry);
rio = self.rio_0_1_11_0;
rio-prettyprint = unmarkBroken super.rio-prettyprint;
unliftio = self.unliftio_0_2_12;
}));
# musl fixes
@ -1203,10 +1181,6 @@ self: super: {
# https://github.com/mgajda/json-autotype/issues/25
json-autotype = dontCheck super.json-autotype;
# The LTS-13.x versions doesn't suffice to build these packages.
hlint = super.hlint.overrideScope (self: super: { haskell-src-exts = self.haskell-src-exts_1_21_0; });
hoogle = super.hoogle.overrideScope (self: super: { haskell-src-exts = self.haskell-src-exts_1_21_0; });
# Jailbreak tasty < 1.2: https://github.com/phadej/tdigest/issues/30
tdigest = doJailbreak super.tdigest; # until tdigest > 0.2.1
these = doJailbreak super.these; # until these >= 0.7.6
@ -1244,17 +1218,8 @@ self: super: {
'';
});
# Use latest pandoc despite what LTS says.
# Test suite fails in both 2.5 and 2.6: https://github.com/jgm/pandoc/issues/5309.
cmark-gfm = self.cmark-gfm_0_2_0;
pandoc = dontCheck (doDistribute super.pandoc_2_7_3); # test suite failure: https://github.com/jgm/pandoc/issues/5582
pandoc-citeproc = doDistribute super.pandoc-citeproc_0_16_2;
skylighting = self.skylighting_0_8_2;
skylighting-core = self.skylighting-core_0_8_2;
# Current versions of tasty-hedgehog need hedgehog 1.x, which
# we don't have in LTS-13.x.
tasty-hedgehog = super.tasty-hedgehog.override { hedgehog = self.hedgehog_1_0; };
# test suite failure: https://github.com/jgm/pandoc/issues/5582
pandoc = dontCheck super.pandoc;
# The latest release version is ancient. You really need this tool from git.
haskell-ci = generateOptparseApplicativeCompletion "haskell-ci"
@ -1275,10 +1240,10 @@ self: super: {
yesod-markdown = doJailbreak super.yesod-markdown;
# These packages needs network 3.x, which is not in LTS-13.x.
network-bsd = super.network-bsd.override { network = self.network_3_0_1_1; };
network-bsd_2_8_1_0 = super.network-bsd_2_8_1_0.override { network = self.network_3_0_1_1; };
lambdabot-core = super.lambdabot-core.overrideScope (self: super: { network = self.network_3_0_1_1; hslogger = self.hslogger_1_3_0_0; });
lambdabot-reference-plugins = super.lambdabot-reference-plugins.overrideScope (self: super: { network = self.network_3_0_1_1; hslogger = self.hslogger_1_3_0_0; });
lambdabot-haskell-plugins = super.lambdabot-haskell-plugins.overrideScope (self: super: { network = self.network_3_0_1_1; socks = self.socks_0_6_0; connection = self.connection_0_3_0; haskell-src-exts = self.haskell-src-exts_1_21_0; });
lambdabot-haskell-plugins = super.lambdabot-haskell-plugins.overrideScope (self: super: { network = self.network_3_0_1_1; });
# Some tests depend on a postgresql instance
# Haddock failure: https://github.com/haskell/haddock/issues/979
@ -1308,10 +1273,10 @@ self: super: {
# Test suite won't link for no apparent reason.
constraints-deriving = dontCheck super.constraints-deriving;
# The old LTS-13.x version does not compile.
ip = self.ip_1_5_1;
# need newer version of ghc-libparser
hlint = super.hlint.override { ghc-lib-parser = self.ghc-lib-parser_8_8_0_20190723; };
# Needs deque >= 0.3, but latest version on stackage is 2.7
butcher = super.butcher.override { deque = self.deque_0_4_2_3; };
# https://github.com/sol/hpack/issues/366
hpack = dontCheck super.hpack;
} // import ./configuration-tensorflow.nix {inherit pkgs haskellLib;} self super

View file

@ -39,9 +39,9 @@ self: super: {
# These are now core libraries in GHC 8.4.x.
mtl = self.mtl_2_2_2;
parsec = self.parsec_3_1_13_0;
parsec = self.parsec_3_1_14_0;
stm = self.stm_2_5_0_0;
text = self.text_1_2_3_1;
text = self.text_1_2_4_0;
# Build with the latest Cabal version, which works best albeit not perfectly.
jailbreak-cabal = super.jailbreak-cabal.override { Cabal = self.Cabal_2_2_0_1; };

File diff suppressed because it is too large Load diff

View file

@ -279,10 +279,7 @@ self: super: builtins.intersectAttrs super {
let dontCheckDarwin = if pkgs.stdenv.isDarwin
then dontCheck
else pkgs.lib.id;
in dontCheckDarwin (super.llvm-hs.override {
llvm-config = pkgs.llvm_8;
llvm-hs-pure = super.llvm-hs-pure_8_0_0;
});
in dontCheckDarwin (super.llvm-hs.override { llvm-config = pkgs.llvm_8; });
# Needs help finding LLVM.
spaceprobe = addBuildTool super.spaceprobe self.llvmPackages.llvm;
@ -506,6 +503,12 @@ self: super: builtins.intersectAttrs super {
'';
});
# Break infinite recursion cycle between QuickCheck and splitmix.
splitmix = dontCheck super.splitmix;
# Break infinite recursion cycle between tasty and clock.
clock = dontCheck super.clock;
# loc and loc-test depend on each other for testing. Break that infinite cycle:
loc-test = super.loc-test.override { loc = dontCheck self.loc; };
@ -585,5 +588,7 @@ self: super: builtins.intersectAttrs super {
# Tests require internet
dhall_1_25_0 = dontCheck super.dhall_1_25_0;
http-download = dontCheck super.http-download;
pantry = dontCheck super.pantry;
}

File diff suppressed because it is too large Load diff

View file

@ -1,59 +0,0 @@
diff --git a/System/Clock.hsc b/System/Clock.hsc
index 297607b..c21196b 100644
--- a/System/Clock.hsc
+++ b/System/Clock.hsc
@@ -41,7 +41,9 @@ import GHC.Generics (Generic)
# endif
#endif
-#let alignment t = "%lu", (unsigned long)offsetof(struct {char x__; t (y__); }, y__)
+#if __GLASGOW_HASKELL__ < 800
+# let alignment t = "%lu", (unsigned long)offsetof(struct {char x__; t (y__); }, y__)
+#endif
-- | Clock types. A clock may be system-wide (that is, visible to all processes)
-- or per-process (measuring time that is meaningful only within a process).
diff --git a/cbits/hs_clock_win32.c b/cbits/hs_clock_win32.c
index 5dcc2a9..ebdb7fe 100644
--- a/cbits/hs_clock_win32.c
+++ b/cbits/hs_clock_win32.c
@@ -28,12 +28,22 @@ static void to_timespec_from_100ns(ULONGLONG t_100ns, long long *t)
t[1] = 100*(long)(t_100ns % 10000000UL);
}
+/* See https://ghc.haskell.org/trac/ghc/ticket/15094 */
+#if defined(_WIN32) && !defined(_WIN64)
+__attribute__((optimize("-fno-expensive-optimizations")))
+#endif
void hs_clock_win32_gettime_monotonic(long long* t)
{
LARGE_INTEGER time;
- LARGE_INTEGER frequency;
+ static LARGE_INTEGER frequency;
+ static int hasFreq = 0;
+
QueryPerformanceCounter(&time);
- QueryPerformanceFrequency(&frequency);
+ if (!hasFreq)
+ {
+ hasFreq = 1;
+ QueryPerformanceFrequency(&frequency);
+ }
// seconds
t[0] = time.QuadPart / frequency.QuadPart;
// nanos =
diff --git a/clock.cabal b/clock.cabal
index 0f2d18a..67d232e 100644
--- a/clock.cabal
+++ b/clock.cabal
@@ -41,8 +41,8 @@ description: A package for convenient access to high-resolution clock and
copyright: Copyright © Cetin Sert 2009-2016, Eugene Kirpichov 2010, Finn Espen Gundersen 2013, Gerolf Seitz 2013, Mathieu Boespflug 2014 2015, Chris Done 2015, Dimitri Sabadie 2015, Christian Burger 2015, Mario Longobardi 2016
license: BSD3
license-file: LICENSE
-author: Cetin Sert <cetin@corsis.eu>, Corsis Research
-maintainer: Cetin Sert <cetin@corsis.eu>, Corsis Research
+author: Cetin Sert <cetin@corsis.tech>, Corsis Research
+maintainer: Cetin Sert <cetin@corsis.tech>, Corsis Research
homepage: https://github.com/corsis/clock
bug-reports: https://github.com/corsis/clock/issues
category: System

View file

@ -1,6 +0,0 @@
{ haskellPackages, haskell }:
haskell.lib.justStaticExecutables (haskellPackages.extend (self: super: {
cachix = haskell.lib.doDistribute (self.cachix_0_2_1 or self.cachix);
cachix-api = self.cachix-api_0_2_1 or self.cachix-api;
})).cachix

View file

@ -10247,7 +10247,7 @@ in
c-blosc = callPackage ../development/libraries/c-blosc { };
cachix = callPackage ../development/tools/cachix { };
cachix = haskell.lib.justStaticExecutables haskellPackages.cachix;
capnproto = callPackage ../development/libraries/capnproto { };