From 165e383a1a83e17ae79811aa672d808f2b1056df Mon Sep 17 00:00:00 2001 From: sternenseemann Date: Tue, 3 Sep 2024 16:40:15 +0200 Subject: [PATCH 01/50] all-cabal-hashes: 2024-08-19T17:17:03Z -> 2024-09-03T10:29:19Z This commit has been generated by maintainers/scripts/haskell/update-hackage.sh and maintainers/scripts/haskell/regenerate-hackage-packages.sh. --- pkgs/data/misc/hackage/pin.json | 8 +- .../haskell-modules/hackage-packages.nix | 1835 +++++++++++++---- 2 files changed, 1460 insertions(+), 383 deletions(-) diff --git a/pkgs/data/misc/hackage/pin.json b/pkgs/data/misc/hackage/pin.json index 6449d77aee043..97532fab180f9 100644 --- a/pkgs/data/misc/hackage/pin.json +++ b/pkgs/data/misc/hackage/pin.json @@ -1,6 +1,6 @@ { - "commit": "4670ba3f52eae6737137ddcb817182f3daad4f26", - "url": "https://github.com/commercialhaskell/all-cabal-hashes/archive/4670ba3f52eae6737137ddcb817182f3daad4f26.tar.gz", - "sha256": "18q5shdmh12147502135q6132rmzp29qfjhwrcjwidl0pi9ki70i", - "msg": "Update from Hackage at 2024-08-19T17:17:03Z" + "commit": "5d97d9c05e76d8cecb68f1e9063afb39ca0fb26b", + "url": "https://github.com/commercialhaskell/all-cabal-hashes/archive/5d97d9c05e76d8cecb68f1e9063afb39ca0fb26b.tar.gz", + "sha256": "1ic4wn5immv06m1m2cq6mzrrgrxbidxmj39licxlkmnm9jlwzjwr", + "msg": "Update from Hackage at 2024-09-03T10:29:19Z" } diff --git a/pkgs/development/haskell-modules/hackage-packages.nix b/pkgs/development/haskell-modules/hackage-packages.nix index ab91a00f78d39..e58c9503b44ff 100644 --- a/pkgs/development/haskell-modules/hackage-packages.nix +++ b/pkgs/development/haskell-modules/hackage-packages.nix @@ -2124,7 +2124,7 @@ self: { license = lib.licenses.mit; }) {}; - "Blammo_2_1_0_0" = callPackage + "Blammo_2_1_1_0" = callPackage ({ mkDerivation, aeson, base, bytestring, containers, dlist , envparse, exceptions, fast-logger, hspec, lens, markdown-unlit , monad-logger-aeson, mtl, text, time, unliftio, unliftio-core @@ -2132,8 +2132,8 @@ self: { }: mkDerivation { pname = "Blammo"; - version = "2.1.0.0"; - sha256 = "0cdif1n1s7isqhfdwk3azdbipwpsxzf7g274hllclx9fbg6l48y9"; + version = "2.1.1.0"; + sha256 = "0n0vybpqvdi20jgdmzpbcb87a96s7npa1gbmvqplc0sqlnrx2cx6"; libraryHaskellDepends = [ aeson base bytestring containers dlist envparse exceptions fast-logger lens monad-logger-aeson mtl text time unliftio @@ -3365,6 +3365,25 @@ self: { license = lib.licenses.mit; }) {}; + "ChasingBottoms_1_3_1_15" = callPackage + ({ mkDerivation, array, base, containers, mtl, QuickCheck, random + , syb + }: + mkDerivation { + pname = "ChasingBottoms"; + version = "1.3.1.15"; + sha256 = "0if8h6xq10y1xa90cwmx2jkxjn9628rzs8y6fsjmpjdcvcyr5wnj"; + libraryHaskellDepends = [ + base containers mtl QuickCheck random syb + ]; + testHaskellDepends = [ + array base containers mtl QuickCheck random syb + ]; + description = "For testing partial and infinite values"; + license = lib.licenses.mit; + hydraPlatforms = lib.platforms.none; + }) {}; + "CheatSheet" = callPackage ({ mkDerivation, base, containers, directory }: mkDerivation { @@ -14360,17 +14379,17 @@ self: { "MicroHs" = callPackage ({ mkDerivation, base, deepseq, directory, ghc-prim, haskeline - , process, time + , process, text, time }: mkDerivation { pname = "MicroHs"; - version = "0.9.16.0"; - sha256 = "0p3lzl1yh1r25s7mr0pipf6ym56syydi9ljbkyfp1i0yv4ynqy17"; + version = "0.9.17.0"; + sha256 = "00dvbpdpbx1dh44rixsw16gb748bdxiizdivnl3i4v9826hfx8x0"; isLibrary = false; isExecutable = true; enableSeparateDataOutput = true; executableHaskellDepends = [ - base deepseq directory ghc-prim haskeline process time + base deepseq directory ghc-prim haskeline process text time ]; description = "A compiler for Haskell"; license = lib.licenses.asl20; @@ -26117,8 +26136,8 @@ self: { pname = "aeson"; version = "2.2.3.0"; sha256 = "1akbrh8iz47f0ai30yabg1n4vcf1fx0a9gzj45fx0si553s5r8ns"; - revision = "1"; - editedCabalFile = "0q1nw6p4p0c4mjgi4hmiqj7npb5kbdsdbprq90a7mn5qnnfd4rpg"; + revision = "2"; + editedCabalFile = "0rl8llwk5cjxdryar3yy5pa6gc4vj7f5m0jwxjjim0ksgpba47q1"; libraryHaskellDepends = [ base bytestring character-ps containers data-fix deepseq dlist exceptions generically ghc-prim hashable indexed-traversable @@ -38161,24 +38180,25 @@ self: { }) {}; "api-tools" = callPackage - ({ mkDerivation, aeson, aeson-pretty, alex, array, attoparsec, base - , base16-bytestring, base64-bytestring, bytestring - , case-insensitive, cborg, containers, criterion, deepseq, happy - , lens, QuickCheck, regex-base, regex-tdfa, safe, safecopy - , scientific, serialise, tasty, tasty-hunit, tasty-quickcheck - , template-haskell, text, time, unordered-containers, vector + ({ mkDerivation, aeson, aeson-pretty, alex, array, attoparsec + , attoparsec-aeson, base, base16-bytestring, base64-bytestring + , bytestring, case-insensitive, cborg, containers, criterion + , deepseq, happy, lens, QuickCheck, regex-base, regex-tdfa, safe + , safecopy, scientific, serialise, tasty, tasty-hunit + , tasty-quickcheck, template-haskell, text, time + , unordered-containers, vector }: mkDerivation { pname = "api-tools"; - version = "0.10.1.0"; - sha256 = "1lmgjixga0jsli98xs6yi09pcgn9d44h9hd2gy17d30mzlyfrpx4"; + version = "0.10.1.1"; + sha256 = "19sfnzbyjl19rm0hyz5w9lpw4dsp4dns74jwn2d7ga6rzp2jp59z"; isLibrary = true; isExecutable = true; libraryHaskellDepends = [ - aeson aeson-pretty array attoparsec base base16-bytestring - base64-bytestring bytestring case-insensitive cborg containers - deepseq lens QuickCheck regex-base regex-tdfa safe safecopy - scientific serialise template-haskell text time + aeson aeson-pretty array attoparsec attoparsec-aeson base + base16-bytestring base64-bytestring bytestring case-insensitive + cborg containers deepseq lens QuickCheck regex-base regex-tdfa safe + safecopy scientific serialise template-haskell text time unordered-containers vector ]; libraryToolDepends = [ alex happy ]; @@ -42790,6 +42810,8 @@ self: { pname = "attoparsec-iso8601"; version = "1.1.1.0"; sha256 = "0yn9l9drza1wcj59a9dzm4vnihwmsxk6zd3fqg6kgww1an8x3k9l"; + revision = "1"; + editedCabalFile = "0chjsgkkdvnj6zps4gj80dwdfxmic1dal0cs5jfmrw8jalkqflzl"; libraryHaskellDepends = [ attoparsec base integer-conversion text time time-compat ]; @@ -43335,15 +43357,15 @@ self: { license = lib.licenses.mit; }) {}; - "autodocodec_0_4_2_0" = callPackage + "autodocodec_0_4_2_2" = callPackage ({ mkDerivation, aeson, base, bytestring, containers, dlist , doctest, hashable, mtl, scientific, text, time , unordered-containers, validity, validity-scientific, vector }: mkDerivation { pname = "autodocodec"; - version = "0.4.2.0"; - sha256 = "041lkn9msxgbq9fkn90a44j3cygn98l6c90f7mjwzg6a2519r6fh"; + version = "0.4.2.2"; + sha256 = "1m6mhss3iw49xsc0yr663hy9prkwwwsbzg82mi27z4iq4v0hdmm6"; libraryHaskellDepends = [ aeson base bytestring containers dlist hashable mtl scientific text time unordered-containers validity validity-scientific vector @@ -43360,8 +43382,8 @@ self: { }: mkDerivation { pname = "autodocodec-nix"; - version = "0.0.1.0"; - sha256 = "1v38vdf0p110swj5gq2j8mz08gwy33myf602kn2wqz142mjsl2q6"; + version = "0.0.1.4"; + sha256 = "1awfc6gvmqs5gz0vb6gihs3f8csrqhk1b8yni21np72y2j29pzfw"; libraryHaskellDepends = [ aeson autodocodec base containers scientific text unordered-containers vector @@ -44206,20 +44228,19 @@ self: { }) {}; "aws-arn" = callPackage - ({ mkDerivation, base, deriving-compat, hashable, profunctors - , tagged, tasty, tasty-discover, tasty-hunit, text + ({ mkDerivation, base, deriving-compat, hashable, microlens-pro + , profunctors, tagged, tasty, tasty-discover, tasty-hunit, text }: mkDerivation { pname = "aws-arn"; - version = "0.3.1.0"; - sha256 = "09jd8lf6w76adkcq5kycj1nwhr7qpn5ivm6dap3zlkngp0z9sdqb"; - revision = "1"; - editedCabalFile = "029q777z4pd0vnj9c4v1ivzjb7azj6aq8gb55bwidw21lq55p98r"; + version = "0.3.2.0"; + sha256 = "14384l3k5c1qj830lq8jv22gx9ciklsvcap247p02wq2qwrp1rfy"; libraryHaskellDepends = [ - base deriving-compat hashable profunctors tagged text + base deriving-compat hashable microlens-pro profunctors tagged text ]; testHaskellDepends = [ - base deriving-compat profunctors tagged tasty tasty-hunit text + base deriving-compat microlens-pro profunctors tagged tasty + tasty-hunit text ]; testToolDepends = [ tasty-discover ]; description = "Types and optics for manipulating Amazon Resource Names (ARNs)"; @@ -47730,8 +47751,8 @@ self: { pname = "beam-postgres"; version = "0.5.3.1"; sha256 = "19gagw9r2wfy398calkcnilsgl89sjpy8vj9bdswg390mw15m41n"; - revision = "1"; - editedCabalFile = "17ssja9yy1yzjyngrvyr72gr8hrvkw4q8w8cb20kdfrz0m83c17w"; + revision = "2"; + editedCabalFile = "11f3jxljrfa4rva21r561w7vxafv63wmmsa9cq8bydcp3gzlgr4p"; libraryHaskellDepends = [ aeson attoparsec base beam-core beam-migrate bytestring case-insensitive conduit free hashable haskell-src-exts lifted-base @@ -47823,15 +47844,15 @@ self: { }) {}; "bearriver" = callPackage - ({ mkDerivation, base, deepseq, dunai, MonadRandom, mtl + ({ mkDerivation, base, deepseq, dunai, mtl, random , simple-affine-space, transformers }: mkDerivation { pname = "bearriver"; - version = "0.14.9"; - sha256 = "10xcl4nms1bcfni9z7mqirf6ifii99y6yb16r2pwrfs20vnhwx7w"; + version = "0.14.10"; + sha256 = "0fyjrwb3f7sqs1bbiga98h6bylgvmqfpqg59p07lhv4hrrgmx8ff"; libraryHaskellDepends = [ - base deepseq dunai MonadRandom mtl simple-affine-space transformers + base deepseq dunai mtl random simple-affine-space transformers ]; description = "FRP Yampa replacement implemented with Monadic Stream Functions"; license = lib.licenses.bsd3; @@ -48923,6 +48944,8 @@ self: { pname = "bin"; version = "0.1.4"; sha256 = "0amz5naq6p2jpm4rb9ycjg7j75qylp3d689cl55f71rs2idrazpp"; + revision = "1"; + editedCabalFile = "1bxybxc32zzwrpmvbl0a0scz7zpi6dhm4pgv2zrbnmf40s858mjm"; libraryHaskellDepends = [ base boring dec deepseq fin hashable QuickCheck some ]; @@ -52568,8 +52591,8 @@ self: { pname = "blaze-svg"; version = "0.3.7"; sha256 = "0pqnx1zrvm2pliya76f4m8d6aycncfp08c2n1fiyzvl1fgk62z2c"; - revision = "1"; - editedCabalFile = "0szq7fnck2fchhck7984zar92da2lc63gjy4p7zx0975jxx0xrg9"; + revision = "2"; + editedCabalFile = "0d8wylydvflhd1yyd91a8ss8khxr5j83f7j7h6qn36zagnyci1f5"; libraryHaskellDepends = [ base blaze-markup mtl ]; description = "SVG combinator library"; license = lib.licenses.bsd3; @@ -52796,8 +52819,8 @@ self: { }: mkDerivation { pname = "blockfrost-api"; - version = "0.10.0.0"; - sha256 = "1l7sj5b4f8byvmz9090wl6rq6fdhx2y8xiqnwcxmn3z487858w6w"; + version = "0.11.0.0"; + sha256 = "1lqbpjzvz5rc3bkfgk09mgz6p99cxy19yx2azyshb37xxiaj8www"; libraryHaskellDepends = [ aeson base bytestring containers data-default-class deriving-aeson lens safe-money servant servant-docs servant-multipart-api @@ -53214,8 +53237,10 @@ self: { ({ mkDerivation, bluefin-internal }: mkDerivation { pname = "bluefin"; - version = "0.0.6.1"; - sha256 = "1ihs05h8mbp205swlx2zbh3fi2d9m33sg06d43nqxmrgdvbh57rd"; + version = "0.0.7.0"; + sha256 = "1nr6kcckhz3k7nfzavjf24c655ccin0fnyxl238asic01h1d1bny"; + revision = "1"; + editedCabalFile = "1z6y9m8ikhy1h9hjvb3dccpqb567svzavl42i9s74aiybz3gs2gv"; libraryHaskellDepends = [ bluefin-internal ]; description = "The Bluefin effect system"; license = lib.licenses.mit; @@ -53241,15 +53266,16 @@ self: { }) {}; "bluefin-internal" = callPackage - ({ mkDerivation, base, monad-control, transformers + ({ mkDerivation, async, base, monad-control, transformers , transformers-base, unliftio-core }: mkDerivation { pname = "bluefin-internal"; - version = "0.0.6.1"; - sha256 = "12k7h2qs912nyy482h2cddwp0xafdk8pj7zc983lhw07pwdy0mi4"; + version = "0.0.7.0"; + sha256 = "1p6fz1nd4976ibb23ni8fdrp9i47m29gfq9v77rlp6biqappjakv"; libraryHaskellDepends = [ - base monad-control transformers transformers-base unliftio-core + async base monad-control transformers transformers-base + unliftio-core ]; testHaskellDepends = [ base ]; description = "The Bluefin effect system, internals"; @@ -55082,8 +55108,8 @@ self: { }: mkDerivation { pname = "brick-panes"; - version = "1.0.1.0"; - sha256 = "0ngw5mwnv92w6hyyz6jcjsz2cs4ix4dyd6z41ggjy0lzjxd40gsq"; + version = "1.0.2.0"; + sha256 = "1rdkwvsmm0dyzinvvc4z933vdz7hj9kz7zvbmnmmlpffbal1avjf"; isLibrary = true; isExecutable = true; libraryHaskellDepends = [ base brick containers microlens vty ]; @@ -56235,22 +56261,22 @@ self: { "build-env" = callPackage ({ mkDerivation, aeson, async, base, bytestring, containers - , directory, filepath, optparse-applicative, process, temporary - , text, time, transformers + , directory, filepath, optparse-applicative, process + , semaphore-compat, temporary, text, time, transformers }: mkDerivation { pname = "build-env"; - version = "1.1.0.0"; - sha256 = "07gw9wzyx92as7didf32b6q8nmjifsxg4z27gqb61dnq7hrrjhf4"; + version = "1.2.0.0"; + sha256 = "1qc03fvhj6as656g5krzvvrmqkkbxybyw4q1jgh8aw3n4mr76lbm"; isLibrary = true; isExecutable = true; libraryHaskellDepends = [ aeson async base bytestring containers directory filepath process - temporary text time transformers + semaphore-compat temporary text time transformers ]; executableHaskellDepends = [ base bytestring containers directory filepath optparse-applicative - text + semaphore-compat text ]; description = "Compute, fetch and install Cabal build plans into a local environment"; license = lib.licenses.bsd3; @@ -57485,6 +57511,23 @@ self: { license = lib.licenses.bsd3; }) {}; + "bytestring-lexing_0_5_0_14" = callPackage + ({ mkDerivation, base, bytestring, tasty, tasty-quickcheck + , tasty-smallcheck + }: + mkDerivation { + pname = "bytestring-lexing"; + version = "0.5.0.14"; + sha256 = "10r12gsms3bmakxfsqg24l7v87lq4hxgz3g8c3mz8wdcd5bds4l0"; + libraryHaskellDepends = [ base bytestring ]; + testHaskellDepends = [ + base bytestring tasty tasty-quickcheck tasty-smallcheck + ]; + description = "Efficiently parse and produce common integral and fractional numbers"; + license = lib.licenses.bsd3; + hydraPlatforms = lib.platforms.none; + }) {}; + "bytestring-mmap" = callPackage ({ mkDerivation, base, bytestring, unix }: mkDerivation { @@ -57715,6 +57758,28 @@ self: { license = lib.licenses.bsd3; }) {}; + "bytestring-trie_0_2_7_5" = callPackage + ({ mkDerivation, base, binary, bytestring, criterion, deepseq + , QuickCheck, smallcheck, tasty, tasty-hunit, tasty-quickcheck + , tasty-smallcheck + }: + mkDerivation { + pname = "bytestring-trie"; + version = "0.2.7.5"; + sha256 = "02z15mqn7rlpa6w41mwibhm3v33p03dp3mdv1b3q4s1jkn63lw2d"; + libraryHaskellDepends = [ base binary bytestring deepseq ]; + testHaskellDepends = [ + base binary bytestring deepseq QuickCheck smallcheck tasty + tasty-hunit tasty-quickcheck tasty-smallcheck + ]; + benchmarkHaskellDepends = [ + base binary bytestring criterion deepseq QuickCheck + ]; + description = "An efficient finite map from bytestrings to values"; + license = lib.licenses.bsd3; + hydraPlatforms = lib.platforms.none; + }) {}; + "bytestring-typenats" = callPackage ({ mkDerivation, base, binary, blake2, bytestring, cereal , criterion, cryptohash, deepseq, entropy, QuickCheck @@ -58271,6 +58336,32 @@ self: { broken = true; }) {youProbablyWantCapitalCabal = null;}; + "cabal-add" = callPackage + ({ mkDerivation, base, bytestring, Cabal, cabal-install-parsers + , Cabal-syntax, containers, Diff, directory, filepath, mtl + , optparse-applicative, process, string-qq, tasty, temporary + }: + mkDerivation { + pname = "cabal-add"; + version = "0.1"; + sha256 = "1szbi0z8yf98641rwnj856gcfsvvflxwrfxraxy6rl60m7i0mab1"; + isLibrary = true; + isExecutable = true; + libraryHaskellDepends = [ + base bytestring Cabal Cabal-syntax containers mtl + ]; + executableHaskellDepends = [ + base bytestring Cabal cabal-install-parsers directory filepath + optparse-applicative process + ]; + testHaskellDepends = [ + base Diff directory process string-qq tasty temporary + ]; + description = "Extend Cabal build-depends from the command line"; + license = lib.licenses.bsd3; + mainProgram = "cabal-add"; + }) {}; + "cabal-appimage" = callPackage ({ mkDerivation, base, Cabal, filepath }: mkDerivation { @@ -58282,6 +58373,18 @@ self: { license = lib.licenses.agpl3Only; }) {}; + "cabal-appimage_0_4_0_5" = callPackage + ({ mkDerivation, base, Cabal, filepath }: + mkDerivation { + pname = "cabal-appimage"; + version = "0.4.0.5"; + sha256 = "0ir952hdpyf62xc799fq22qmj7n09cbc0v3jldlr40iv0200isr2"; + libraryHaskellDepends = [ base Cabal filepath ]; + description = "Cabal support for creating AppImage applications"; + license = lib.licenses.agpl3Only; + hydraPlatforms = lib.platforms.none; + }) {}; + "cabal-audit" = callPackage ({ mkDerivation, base, Cabal, directory, filepath, HTTP , optparse-applicative @@ -73069,6 +73172,33 @@ self: { license = lib.licenses.mit; }) {}; + "conduit_1_3_6" = callPackage + ({ mkDerivation, base, bytestring, containers, deepseq, directory + , exceptions, filepath, gauge, hspec, mono-traversable, mtl + , mwc-random, primitive, QuickCheck, resourcet, safe, silently + , split, text, transformers, unix, unliftio, unliftio-core, vector + }: + mkDerivation { + pname = "conduit"; + version = "1.3.6"; + sha256 = "13aivqg5js60yvcbpbl7fgrxa5z2wswrmjjlm1bhrcj2qx49mrik"; + libraryHaskellDepends = [ + base bytestring directory exceptions filepath mono-traversable mtl + primitive resourcet text transformers unix unliftio-core vector + ]; + testHaskellDepends = [ + base bytestring containers directory exceptions filepath hspec + mono-traversable mtl QuickCheck resourcet safe silently split text + transformers unliftio vector + ]; + benchmarkHaskellDepends = [ + base containers deepseq gauge hspec mwc-random transformers vector + ]; + description = "Streaming data processing library"; + license = lib.licenses.mit; + hydraPlatforms = lib.platforms.none; + }) {}; + "conduit-aeson" = callPackage ({ mkDerivation, aeson, attoparsec, attoparsec-aeson, base , bytestring, conduit, conduit-extra, containers, doctest, hspec @@ -74930,21 +75060,22 @@ self: { "consumers" = callPackage ({ mkDerivation, base, containers, exceptions, hpqtypes , hpqtypes-extras, HUnit, lifted-base, lifted-threads, log-base - , monad-control, monad-loops, monad-time, mtl, stm, text, text-show - , time, transformers, transformers-base + , monad-control, monad-time, mtl, safe-exceptions, stm, text + , text-show, time, transformers, transformers-base }: mkDerivation { pname = "consumers"; - version = "2.3.1.0"; - sha256 = "084i9lgrdn0f7pwk9b7rap66rg5z5f24az41jw7a9g9ddfq39fai"; + version = "2.3.2.0"; + sha256 = "1kj7ng8cpwvbc8x3bzcnkk19g3hrcy3v2c5kpxqn52x607c9flmf"; libraryHaskellDepends = [ base containers exceptions hpqtypes lifted-base lifted-threads - log-base monad-control monad-time mtl stm time transformers-base + log-base monad-control monad-time mtl safe-exceptions stm text time + transformers-base ]; testHaskellDepends = [ base exceptions hpqtypes hpqtypes-extras HUnit log-base - monad-control monad-loops monad-time mtl stm text text-show time - transformers transformers-base + monad-control monad-time mtl stm text text-show time transformers + transformers-base ]; description = "Concurrent PostgreSQL data consumers"; license = lib.licenses.bsd3; @@ -78652,20 +78783,22 @@ self: { }) {}; "crucible" = callPackage - ({ mkDerivation, base, bimap, bv-sized, containers, exceptions, fgl - , hashable, hspec, json, lens, mtl, panic, parameterized-utils - , prettyprinter, QuickCheck, tasty, tasty-hspec, tasty-hunit - , tasty-quickcheck, template-haskell, text, th-abstraction, time - , transformers, unordered-containers, vector, what4 + ({ mkDerivation, async, base, bimap, bv-sized, containers + , exceptions, fgl, hashable, hspec, json, lens, mtl, panic + , parameterized-utils, prettyprinter, QuickCheck, tasty + , tasty-hspec, tasty-hunit, tasty-quickcheck, template-haskell + , text, th-abstraction, time, transformers, unordered-containers + , vector, what4 }: mkDerivation { pname = "crucible"; - version = "0.7"; - sha256 = "0wz71bx59bysylb8w05d59awh6l9bbw3na6xk4j9dprjx5caccjk"; + version = "0.7.1"; + sha256 = "1c9a8km88ngxghn35f6wnaddm534ixmz1iciyn0whl0xmp27f4zv"; libraryHaskellDepends = [ - base bimap bv-sized containers exceptions fgl hashable json lens - mtl panic parameterized-utils prettyprinter template-haskell text - th-abstraction time transformers unordered-containers vector what4 + async base bimap bv-sized containers exceptions fgl hashable json + lens mtl panic parameterized-utils prettyprinter template-haskell + text th-abstraction time transformers unordered-containers vector + what4 ]; testHaskellDepends = [ base containers hspec mtl panic parameterized-utils QuickCheck @@ -78686,8 +78819,8 @@ self: { }: mkDerivation { pname = "crucible-llvm"; - version = "0.6"; - sha256 = "0mjyldz65qssx31fryv74wmkfz68j735cvcp6qd2z02p73fbbdi7"; + version = "0.7"; + sha256 = "0v4d3c971w6acka4s1lg9iai55ghk054hkkka5jbinyhhymmaf0k"; libraryHaskellDepends = [ attoparsec base bv-sized bytestring containers crucible crucible-symio extra itanium-abi lens llvm-pretty mtl @@ -78711,8 +78844,8 @@ self: { }: mkDerivation { pname = "crucible-symio"; - version = "0.1"; - sha256 = "0b6c1sk7lg8qf3v1z4shzqwqcbwqbf4sir28iz52063pakvgr4q8"; + version = "0.1.1"; + sha256 = "0c96c0iqdx2ahc9sjslck1bfnjkha1kii1p3izhw9b9d34h339d7"; libraryHaskellDepends = [ aeson base bv-sized bytestring containers crucible directory filemanip filepath IntervalMap lens mtl parameterized-utils text @@ -78773,8 +78906,8 @@ self: { }: mkDerivation { pname = "crux"; - version = "0.7"; - sha256 = "0bbkg6l5322a50wgfdswq9m75vinm5xfv7lwl4sfy6604ckjy85i"; + version = "0.7.1"; + sha256 = "0l5nl9rv3kl07pwvj7dpw6njr6bh127ckallnlgkvp7c8l4cxgdy"; libraryHaskellDepends = [ aeson ansi-terminal async attoparsec base bv-sized bytestring config-schema config-value containers contravariant crucible @@ -78799,8 +78932,8 @@ self: { }: mkDerivation { pname = "crux-llvm"; - version = "0.8"; - sha256 = "116vgh9h2dmx1cahs2kl7rm46v9wn88x6i1pjp5m1z6mw9694xh4"; + version = "0.9"; + sha256 = "0nrqaqs9l3kyj954swlln12b75xszcwrgwscc5n0r0pmi6sszrqj"; isLibrary = true; isExecutable = true; enableSeparateDataOutput = true; @@ -79538,8 +79671,8 @@ self: { ({ mkDerivation, alex, ansi-terminal, arithmoi, array, async, base , base-compat, blaze-html, bv-sized, bytestring, containers , criterion, criterion-measurement, cryptohash-sha1, deepseq - , directory, exceptions, extra, filepath, ghc-bignum, ghc-prim - , gitrev, GraphSCC, happy, haskeline, heredoc, hgmp, language-c99 + , directory, exceptions, extra, file-embed, filepath, ghc-bignum + , ghc-prim, gitrev, GraphSCC, happy, haskeline, hgmp, language-c99 , language-c99-simple, libBF, libffi, MemoTrie, monad-control , monadLib, mtl, optparse-applicative, panic, parameterized-utils , pretty, pretty-show, prettyprinter, process, sbv, simple-smt, stm @@ -79548,15 +79681,15 @@ self: { }: mkDerivation { pname = "cryptol"; - version = "3.1.0"; - sha256 = "00qb0pmhmjcfkg6a7x948azp35rriajh4bfa1r8yb78in0ahyngj"; + version = "3.2.0"; + sha256 = "0nx25dfsnz1sd33kzicz9wqw4nsjv5s86s9w83mnh93xpmjqj1zd"; isLibrary = true; isExecutable = true; enableSeparateDataOutput = true; libraryHaskellDepends = [ arithmoi array async base base-compat bv-sized bytestring containers criterion-measurement cryptohash-sha1 deepseq directory - exceptions filepath ghc-bignum ghc-prim gitrev GraphSCC heredoc + exceptions file-embed filepath ghc-bignum ghc-prim gitrev GraphSCC hgmp language-c99 language-c99-simple libBF libffi MemoTrie monad-control monadLib mtl panic parameterized-utils pretty pretty-show prettyprinter process sbv simple-smt stm strict text @@ -80689,8 +80822,8 @@ self: { ({ mkDerivation, aeson, base, bytestring, curl, text }: mkDerivation { pname = "curl-aeson"; - version = "0.1.0.1"; - sha256 = "1hiz2rwbycl2nx5k1157nnl661rk1gkj7m4vc4qac1saqvf9jxdz"; + version = "0.1.0.2"; + sha256 = "0dsgc8sfydk1a73i3n66l7ffdprhd9w7q8ls1m5cj9fvwqpzb0rg"; libraryHaskellDepends = [ aeson base bytestring curl text ]; description = "Communicate with web services using JSON"; license = lib.licenses.bsd3; @@ -80955,8 +81088,8 @@ self: { }: mkDerivation { pname = "curryer-rpc"; - version = "0.3.6"; - sha256 = "0likxfgjv287c7xf5xq6hrzfqmh0vn6lv93s3chbp75gfxs8pwls"; + version = "0.3.7"; + sha256 = "1g8afbpayw6hcbgrfzqpipp3r0657mcimlmpizdxdk5xbl2j2r03"; isLibrary = true; isExecutable = true; libraryHaskellDepends = [ @@ -82917,14 +83050,16 @@ self: { "data-effects" = callPackage ({ mkDerivation, base, data-default, data-effects-core - , data-effects-th, tasty, tasty-discover, tasty-hunit, these + , data-effects-th, lens, tasty, tasty-discover, tasty-hunit, text + , these, time }: mkDerivation { pname = "data-effects"; - version = "0.1.0.0"; - sha256 = "0rq882lpi3j6g1pj3p60lqb2ad1is9zppng6vxh1vagjfk0jpj87"; + version = "0.1.1.0"; + sha256 = "0ypwb4618hjsvsdrwb1xbdq427g1bfc5dm9xibjbm2yrami16qr2"; libraryHaskellDepends = [ - base data-default data-effects-core data-effects-th these + base data-default data-effects-core data-effects-th lens text these + time ]; testHaskellDepends = [ base tasty tasty-hunit ]; testToolDepends = [ tasty-discover ]; @@ -82958,8 +83093,8 @@ self: { }: mkDerivation { pname = "data-effects-th"; - version = "0.1.0.0"; - sha256 = "1vq976iyn0k95p884pvwgq154jfjidbs7dyrql4hhldncz2v2j85"; + version = "0.1.1.0"; + sha256 = "0xs8n5f6v3dani9j2rpl75d8bx02295aimy0fh714qqwg1cmiml6"; libraryHaskellDepends = [ base containers data-default data-effects-core either extra formatting infinite-list lens mtl template-haskell text @@ -88802,8 +88937,8 @@ self: { ({ mkDerivation, aeson, base, containers, QuickCheck, random }: mkDerivation { pname = "dhscanner-ast"; - version = "0.1.0.2"; - sha256 = "1q8wklhn4nyw2ryb8bdgfwvx4v5maf2minms5zkigqb1rh1snc8g"; + version = "0.1.0.3"; + sha256 = "1xksb6ilmdihq9rx6fcabwphlvwdsjss34aw1iqgc8gsiw60lm8c"; libraryHaskellDepends = [ aeson base containers ]; testHaskellDepends = [ base QuickCheck random ]; description = "abstract syntax tree for multiple programming languages"; @@ -88816,8 +88951,8 @@ self: { }: mkDerivation { pname = "dhscanner-bitcode"; - version = "0.1.0.1"; - sha256 = "036m2iix36ybcc8bqr9wz92rp4zq63qzyqgbm8bzk79zwdc432q2"; + version = "0.1.0.2"; + sha256 = "1ixm87h6ycbzf7b6jzwivcnvw96xlm8gmcw032hk54z8c9szrx3d"; libraryHaskellDepends = [ aeson base containers dhscanner-ast ]; testHaskellDepends = [ base containers dhscanner-ast QuickCheck random @@ -89331,8 +89466,8 @@ self: { pname = "diagrams-lib"; version = "1.4.6.2"; sha256 = "0qz5yrrg4k4f72fg20b1rq5mk7n7q531qmj0irpg9lmrr596bdh9"; - revision = "2"; - editedCabalFile = "1mdz1s014pn3v7b301d409zv5npw1gkdqkq2hzn8klnawcnmng57"; + revision = "3"; + editedCabalFile = "0sffvdkbxm1lsl2b7sd6psrrnc4lcc1c5ipvc2hhpmzzmfyc49fc"; libraryHaskellDepends = [ active adjunctions array base bytestring cereal colour containers data-default-class diagrams-core diagrams-solve directory @@ -89429,8 +89564,8 @@ self: { pname = "diagrams-postscript"; version = "1.5.1.1"; sha256 = "1kwb100k3qif9gc8kgvglya5by61522128cxsjrxk5a8dzpgwal4"; - revision = "3"; - editedCabalFile = "1yd084lqh2fs2m42a0744b7xlpsxk59ivjnaq99jkf1d6xq8kpak"; + revision = "4"; + editedCabalFile = "1wm9y3dj5bg6k2jm1ycy8sdg54pzgy2lrhdv9wm2n8jhhk3884qy"; libraryHaskellDepends = [ base bytestring containers data-default-class diagrams-core diagrams-lib hashable lens monoid-extras mtl semigroups split @@ -89466,8 +89601,8 @@ self: { pname = "diagrams-rasterific"; version = "1.4.2.3"; sha256 = "0n46scybjs8mnhrnh5z3nkrah6f8v1rv4cca8k8mqzsf8ss30q5l"; - revision = "2"; - editedCabalFile = "1v8djd4qndmkl8lc966pkh9gbgb8rkwqg2395xad6i03gqxvl55d"; + revision = "3"; + editedCabalFile = "0yz8vkxp8vi3di8wli6m8090vs56mngv3wr9riam896n1z0xqzg7"; libraryHaskellDepends = [ base bytestring containers data-default-class diagrams-core diagrams-lib file-embed filepath FontyFruity hashable JuicyPixels @@ -89552,6 +89687,26 @@ self: { license = lib.licenses.bsd3; }) {}; + "diagrams-svg_1_4_3_2" = callPackage + ({ mkDerivation, base, base64-bytestring, bytestring, colour + , containers, diagrams-core, diagrams-lib, filepath, hashable + , JuicyPixels, lens, monoid-extras, mtl, optparse-applicative + , semigroups, split, svg-builder, text + }: + mkDerivation { + pname = "diagrams-svg"; + version = "1.4.3.2"; + sha256 = "06syqgwprbzrmjylbw9rn7f4vz6fzbw0g0052mnzs92w5ddhkivg"; + libraryHaskellDepends = [ + base base64-bytestring bytestring colour containers diagrams-core + diagrams-lib filepath hashable JuicyPixels lens monoid-extras mtl + optparse-applicative semigroups split svg-builder text + ]; + description = "SVG backend for diagrams drawing EDSL"; + license = lib.licenses.bsd3; + hydraPlatforms = lib.platforms.none; + }) {}; + "diagrams-tikz" = callPackage ({ mkDerivation, base, diagrams-core, diagrams-lib, dlist, mtl }: mkDerivation { @@ -90400,6 +90555,25 @@ self: { license = lib.licenses.bsd3; }) {}; + "dimensional_1_6" = callPackage + ({ mkDerivation, base, criterion, deepseq, exact-pi, hspec + , hspec-discover, ieee754, numtype-dk, QuickCheck, vector + }: + mkDerivation { + pname = "dimensional"; + version = "1.6"; + sha256 = "05ikvdpl9j94alyf3r9fwfwn354z4gifbhp1fasspmd9s0bhi7wl"; + libraryHaskellDepends = [ + base deepseq exact-pi ieee754 numtype-dk vector + ]; + testHaskellDepends = [ base hspec QuickCheck ]; + testToolDepends = [ hspec-discover ]; + benchmarkHaskellDepends = [ base criterion deepseq ]; + description = "Statically checked physical dimensions"; + license = lib.licenses.bsd3; + hydraPlatforms = lib.platforms.none; + }) {}; + "dimensional-codata" = callPackage ({ mkDerivation, base, dimensional, numtype-dk }: mkDerivation { @@ -91991,8 +92165,8 @@ self: { }: mkDerivation { pname = "distributed-process-simplelocalnet"; - version = "0.3.0"; - sha256 = "1y9jxn1f56k5845dynac5hapfgsq66wibw2ypdzsp2lqh4ggs2jz"; + version = "0.3.1"; + sha256 = "06p7cynv7z4h62srzq99fi5v23v66g93k77wb6xiv0va83nqa0xr"; libraryHaskellDepends = [ base binary bytestring containers data-accessor distributed-process exceptions network network-multicast network-transport @@ -92099,16 +92273,16 @@ self: { ({ mkDerivation, ansi-terminal, base, binary, bytestring , distributed-process, distributed-static, exceptions, HUnit , network, network-transport, network-transport-inmemory, random - , rematch, setenv, stm, test-framework, test-framework-hunit + , rematch, stm, test-framework, test-framework-hunit }: mkDerivation { pname = "distributed-process-tests"; - version = "0.4.12"; - sha256 = "1jr7xgmwsy89hyih81w54bid8664rgqd8mxvwcd6xa6b41n90r7f"; + version = "0.5.0"; + sha256 = "01rpq0hgmvx7703xdx8x0ycfkbj7bpp3yqfxgzm8xy20d98cf9z7"; libraryHaskellDepends = [ ansi-terminal base binary bytestring distributed-process distributed-static exceptions HUnit network network-transport - random rematch setenv stm test-framework test-framework-hunit + random rematch stm test-framework test-framework-hunit ]; testHaskellDepends = [ base network network-transport network-transport-inmemory @@ -95694,8 +95868,8 @@ self: { }: mkDerivation { pname = "dunai"; - version = "0.13.0"; - sha256 = "1zbdl440xgb9s6nkqxg7fa2pc7m75w0bbndlfks4jqr1jq9f4hfh"; + version = "0.13.1"; + sha256 = "1hamj3yv6v0rdr06889iidhzpz6jbskq3bc5gbf45gzvq7bvcds7"; libraryHaskellDepends = [ base MonadRandom simple-affine-space transformers transformers-base ]; @@ -95726,8 +95900,8 @@ self: { ({ mkDerivation, base, dunai, normaldistribution, QuickCheck }: mkDerivation { pname = "dunai-test"; - version = "0.13.0"; - sha256 = "14ckh9bshfjcinj637cmbfq6jx85ga0z98v3sqm66jw84zdqr4sy"; + version = "0.13.1"; + sha256 = "0hm5c9n890cxnw0pp62vqlw7yqmrzy2xb0inhbzcjm49i5gacfdq"; libraryHaskellDepends = [ base dunai normaldistribution QuickCheck ]; @@ -98267,6 +98441,8 @@ self: { pname = "ekg"; version = "0.4.1.0"; sha256 = "03dgsgf67clk4wqrk69jqfh0ap406k0hgz257j0f5kixpws42ahp"; + revision = "1"; + editedCabalFile = "0frwz3jyxj0laaanzq39p74lzgq6cjxzhky51fkwa63qmlv5qfda"; enableSeparateDataOutput = true; libraryHaskellDepends = [ aeson base bytestring ekg-core ekg-json filepath network snap-core @@ -98410,6 +98586,8 @@ self: { pname = "ekg-json"; version = "0.1.1.0"; sha256 = "0wwzv2hfznd19385imajcarj0c42c3zczg3hlh39afy5k71hgvpp"; + revision = "1"; + editedCabalFile = "0zwmllpmczf9h6y8fagzinxin321z0fyxiyxlyw191i8zp57m579"; libraryHaskellDepends = [ aeson base ekg-core text unordered-containers ]; @@ -98443,10 +98621,8 @@ self: { }: mkDerivation { pname = "ekg-prometheus-adapter"; - version = "0.1.0.4"; - sha256 = "1i9bqbn8zj7hbkc7iypmjji4sh8s2h9jix2ngp77mkmii6wblfx2"; - revision = "1"; - editedCabalFile = "1aq3x5j33bb0rwlip0p3y6ppk8m1x8k3hnrwnb7pca98gyz8fm6r"; + version = "0.1.0.5"; + sha256 = "0k4dkf42jh4d19dj5x7crby5agb3rl62cd7zmd4zsnb3vih44v8y"; libraryHaskellDepends = [ base containers ekg-core microlens-th prometheus text transformers unordered-containers @@ -99228,8 +99404,8 @@ self: { }: mkDerivation { pname = "elminator"; - version = "0.2.4.2"; - sha256 = "1icmj116hlmgjbss1fnbzav327dl5ga8l092791rc5bf6m0m644z"; + version = "0.2.4.4"; + sha256 = "03sgjinzkdwmflcirzri3qyp180g35rib34kljd5yb0vskb3sa0g"; libraryHaskellDepends = [ aeson base containers mtl template-haskell text ]; @@ -101750,8 +101926,8 @@ self: { }: mkDerivation { pname = "escaped"; - version = "1.0.0.0"; - sha256 = "1fpnaj0ycjhb73skv5dxrycwyyvy0rripvcag88hsjyh1ybxx91v"; + version = "1.1.0.0"; + sha256 = "0xbpnvr4l7041m9zysn3gi589pp0snwmvpngvfb83jl3qh1j75ak"; isLibrary = true; isExecutable = true; libraryHaskellDepends = [ @@ -105972,8 +106148,8 @@ self: { }: mkDerivation { pname = "fast-builder"; - version = "0.1.3.0"; - sha256 = "0j2dfh6y689sk5ahh232zl8glbmwp34xnqkmaq9n9jwbddw4fg5z"; + version = "0.1.4.0"; + sha256 = "0v8nzzlnk5zvyfd4k8xakxdrgi0m23mk8k2bglm1447fgg6s02ma"; libraryHaskellDepends = [ base bytestring ghc-prim ]; testHaskellDepends = [ base bytestring process QuickCheck stm ]; benchmarkHaskellDepends = [ @@ -108832,6 +109008,8 @@ self: { pname = "fin"; version = "0.3.1"; sha256 = "1y98g48dr046d1v300aj10dq5mrn79yj769gcld01834xi0ng010"; + revision = "1"; + editedCabalFile = "1q6hq4m95b89ig3c21p36ng904vj84r5ga3brj589ifs068lpvv4"; libraryHaskellDepends = [ base boring dec deepseq hashable QuickCheck some universe-base ]; @@ -111538,6 +111716,8 @@ self: { pname = "foldl"; version = "1.4.16"; sha256 = "18bbhz0bjxb30ni9m9nm4aj8klakkd2fbjaymg8j3f0kdki3isj9"; + revision = "1"; + editedCabalFile = "1p628vf9s2ypblfsc5i1vb9xchy6big5nggcqns9xznncvpp23zc"; libraryHaskellDepends = [ base bytestring comonad containers contravariant hashable primitive profunctors random semigroupoids text transformers @@ -111550,6 +111730,29 @@ self: { maintainers = [ lib.maintainers.Gabriella439 ]; }) {}; + "foldl_1_4_17" = callPackage + ({ mkDerivation, base, bytestring, comonad, containers + , contravariant, criterion, doctest, hashable, primitive + , profunctors, random, semigroupoids, text, transformers + , unordered-containers, vector + }: + mkDerivation { + pname = "foldl"; + version = "1.4.17"; + sha256 = "1bk02j6niyw39279cf1im62lzd3gz8dc9qa7kgplz3fyb4chswgm"; + libraryHaskellDepends = [ + base bytestring comonad containers contravariant hashable primitive + profunctors random semigroupoids text transformers + unordered-containers vector + ]; + testHaskellDepends = [ base doctest ]; + benchmarkHaskellDepends = [ base criterion profunctors ]; + description = "Composable, streaming, and efficient left folds"; + license = lib.licenses.bsd3; + hydraPlatforms = lib.platforms.none; + maintainers = [ lib.maintainers.Gabriella439 ]; + }) {}; + "foldl-exceptions" = callPackage ({ mkDerivation, base, foldl, hedgehog, safe-exceptions }: mkDerivation { @@ -113424,8 +113627,8 @@ self: { }: mkDerivation { pname = "free-algebras"; - version = "0.1.1.0"; - sha256 = "16y0jvvsz1wr1w0hibnh94r438576ciq5snwjha8ca5b4c9ym980"; + version = "0.1.2.0"; + sha256 = "1q8l0ysn18v1qgi91b4nj26pv9iq1pwilzg19ql36aji193cirxy"; libraryHaskellDepends = [ base containers data-fix dlist free groups kan-extensions mtl transformers @@ -113473,6 +113676,8 @@ self: { pname = "free-category"; version = "0.0.4.5"; sha256 = "0ag52rmxrlhf5afk6nhrcpqwknvqrk9rhfn977zn1i0ad5b6ghag"; + revision = "1"; + editedCabalFile = "12fcz3ja47z0ri3f8nyj7pwizlbgir66z37z01x7l48d0lbg6jgj"; libraryHaskellDepends = [ base free-algebras ]; testHaskellDepends = [ base free-algebras QuickCheck tasty tasty-quickcheck @@ -114550,6 +114755,27 @@ self: { mainProgram = "frquotes"; }) {}; + "fs-api" = callPackage + ({ mkDerivation, base, bytestring, containers, deepseq, digest + , directory, filepath, io-classes, primitive, safe-wild-cards + , tasty, tasty-quickcheck, temporary, text, unix, unix-bytestring + }: + mkDerivation { + pname = "fs-api"; + version = "0.3.0.0"; + sha256 = "1l8rs0r6vbjb06qb5cd2qc9b8lb4cd0n159907q5s5zvm9nfgmd1"; + libraryHaskellDepends = [ + base bytestring containers deepseq digest directory filepath + io-classes primitive safe-wild-cards text unix unix-bytestring + ]; + testHaskellDepends = [ + base bytestring filepath primitive tasty tasty-quickcheck temporary + text + ]; + description = "Abstract interface for the file system"; + license = lib.licenses.asl20; + }) {}; + "fs-events" = callPackage ({ mkDerivation, base }: mkDerivation { @@ -114563,6 +114789,30 @@ self: { broken = true; }) {}; + "fs-sim" = callPackage + ({ mkDerivation, base, base16-bytestring, bifunctors, bytestring + , containers, fs-api, generics-sop, io-classes, mtl, pretty-show + , primitive, QuickCheck, quickcheck-state-machine, random + , safe-wild-cards, strict-stm, tasty, tasty-hunit, tasty-quickcheck + , temporary, text + }: + mkDerivation { + pname = "fs-sim"; + version = "0.3.0.0"; + sha256 = "0wphs3i5f400i313qgii0z76mk3xqvzr5swnmhyc67kcl50l807q"; + libraryHaskellDepends = [ + base base16-bytestring bytestring containers fs-api io-classes mtl + primitive QuickCheck safe-wild-cards strict-stm text + ]; + testHaskellDepends = [ + base bifunctors bytestring containers fs-api generics-sop + pretty-show primitive QuickCheck quickcheck-state-machine random + strict-stm tasty tasty-hunit tasty-quickcheck temporary text + ]; + description = "Simulated file systems"; + license = lib.licenses.asl20; + }) {}; + "fsh-csv" = callPackage ({ mkDerivation, base, hint }: mkDerivation { @@ -115636,6 +115886,27 @@ self: { license = lib.licenses.bsd3; }) {}; + "fused-effects_1_1_2_3" = callPackage + ({ mkDerivation, base, containers, hedgehog, hedgehog-fn + , inspection-testing, markdown-unlit, tasty-bench, transformers + , unliftio-core + }: + mkDerivation { + pname = "fused-effects"; + version = "1.1.2.3"; + sha256 = "0z0gwkb3rw9jpa3zxz5w3fc0x54xww0p5wzp4f0xdargjy1jhmk0"; + libraryHaskellDepends = [ base transformers unliftio-core ]; + testHaskellDepends = [ + base containers hedgehog hedgehog-fn inspection-testing + transformers + ]; + testToolDepends = [ markdown-unlit ]; + benchmarkHaskellDepends = [ base tasty-bench transformers ]; + description = "A fast, flexible, fused effect system"; + license = lib.licenses.bsd3; + hydraPlatforms = lib.platforms.none; + }) {}; + "fused-effects-exceptions" = callPackage ({ mkDerivation, base, fused-effects, markdown-unlit, tasty , tasty-hunit, transformers @@ -115844,8 +116115,8 @@ self: { }: mkDerivation { pname = "futhark"; - version = "0.25.20"; - sha256 = "149fzcd6rijr5vzpn42xfjr8k9pgijmqm4c754na1vj8d926sjgw"; + version = "0.25.21"; + sha256 = "1qhidm4vlpqh99mk6nn0kx95wbfhkkjy0dfcfvblkp03ckg0qbhm"; isLibrary = true; isExecutable = true; libraryHaskellDepends = [ @@ -120240,8 +120511,8 @@ self: { ({ mkDerivation, base, deepseq, ghc-heap, ghc-prim }: mkDerivation { pname = "ghc-datasize"; - version = "0.2.6"; - sha256 = "0nprk7mzr6n63ihjdqrs2kd16hzl72n04zi3hpsjlszy8gzizqg5"; + version = "0.2.7"; + sha256 = "0xndiq2049nrfwrgzdz1m0rkskiqcsblkfxwijxf0lzy4avj4bh1"; libraryHaskellDepends = [ base deepseq ghc-heap ghc-prim ]; description = "Determine the size of data structures in GHC's memory"; license = lib.licenses.bsd3; @@ -121758,8 +122029,8 @@ self: { }: mkDerivation { pname = "ghc-tags-core"; - version = "0.6.1.0"; - sha256 = "0x2l1n8fsg7z0x3bvqa806l4ldzxjsapfv9cf3fnvandh9d2dc4p"; + version = "0.6.1.1"; + sha256 = "1p1ykmbq16lg30s2cnwds16aiq4wxiv9s59sa933fk9mv2841gb1"; libraryHaskellDepends = [ attoparsec base bytestring containers deepseq filepath ghc text ]; @@ -121790,8 +122061,8 @@ self: { }: mkDerivation { pname = "ghc-tags-plugin"; - version = "0.6.1.0"; - sha256 = "1c3vr9754szadl4bj98hmjz5jmqahggakm7x3838cccqbdrpxyh0"; + version = "0.6.1.1"; + sha256 = "1w1m942hzw63igdjvhb15n5w0yzkm2hp5lyv1dl815dvzj0bn8kq"; isLibrary = true; isExecutable = true; libraryHaskellDepends = [ @@ -124690,8 +124961,8 @@ self: { }: mkDerivation { pname = "git-annex"; - version = "10.20240808"; - sha256 = "0593kq47kv8zqlknsicih5kh0f0qxy3xwadaqmi5gffrjpvapdf5"; + version = "10.20240831"; + sha256 = "1ly9iirr0669i5aq3k1lf60sg5z3p08kn4jnvnjcx0l114b67q3j"; configureFlags = [ "-fassistant" "-f-benchmark" "-fcrypton" "-fdbus" "-f-debuglocks" "-fmagicmime" "-fpairing" "-fproduction" "-ftorrentparser" @@ -139483,17 +139754,17 @@ self: { }) {}; "hashes" = callPackage - ({ mkDerivation, base, bytestring, criterion, openssl, QuickCheck - , sha-validation, sydtest, vector + ({ mkDerivation, base, bytestring, criterion, hspec, openssl + , QuickCheck, sha-validation, vector }: mkDerivation { pname = "hashes"; - version = "0.3.0"; - sha256 = "007hn43jnz0pgv49if9g4z3r13q8kkla9w15ggbdrc2hksdbzf3v"; + version = "0.3.0.1"; + sha256 = "0frrqa16p855qgs2lphdl9ka803j3xra7jw31s51r6xdh2ilb9jd"; libraryHaskellDepends = [ base bytestring ]; librarySystemDepends = [ openssl ]; testHaskellDepends = [ - base bytestring QuickCheck sha-validation sydtest vector + base bytestring hspec QuickCheck sha-validation vector ]; testSystemDepends = [ openssl ]; benchmarkHaskellDepends = [ base bytestring criterion ]; @@ -144115,19 +144386,20 @@ self: { }) {}; "hasmtlib" = callPackage - ({ mkDerivation, attoparsec, base, bitvec, bytestring, containers - , data-default, dependent-map, finite-typelits, lens, mtl - , smtlib-backends, smtlib-backends-process, some, text, utf8-string - , vector-sized + ({ mkDerivation, array, attoparsec, base, bitvec, bytestring + , containers, data-default, dependent-map, finite-typelits, lens + , mtl, smtlib-backends, smtlib-backends-process, some, text + , unordered-containers, utf8-string, vector-sized }: mkDerivation { pname = "hasmtlib"; - version = "2.3.2"; - sha256 = "11vbxn0lkfnasc9qvk8bjqd7nk7fwbs9zjgwwsfzgz5ann3aja8p"; + version = "2.6.1"; + sha256 = "004dic90jsf65z6y8zv0ik3bb9ln1zw5b42kgdm5a4cg97q02fy2"; libraryHaskellDepends = [ - attoparsec base bitvec bytestring containers data-default + array attoparsec base bitvec bytestring containers data-default dependent-map finite-typelits lens mtl smtlib-backends - smtlib-backends-process some text utf8-string vector-sized + smtlib-backends-process some text unordered-containers utf8-string + vector-sized ]; description = "A monad for interfacing with external SMT solvers"; license = lib.licenses.gpl3Only; @@ -144210,7 +144482,7 @@ self: { license = lib.licenses.mit; }) {}; - "hasql_1_8" = callPackage + "hasql_1_8_0_2" = callPackage ({ mkDerivation, aeson, attoparsec, base, bytestring , bytestring-strict-builder, contravariant, contravariant-extras , criterion, dlist, hashable, hashtables, hspec, hspec-discover @@ -144221,8 +144493,8 @@ self: { }: mkDerivation { pname = "hasql"; - version = "1.8"; - sha256 = "0jaapi6p45iy1z62pi81h1w52icvk1lbd7nsx16wnl6h9bx10mr4"; + version = "1.8.0.2"; + sha256 = "0dgvbvvkn7d5khz5p97ndbw6j72zram986yn6m519ng3c30d51q9"; libraryHaskellDepends = [ aeson attoparsec base bytestring bytestring-strict-builder contravariant dlist hashable hashtables iproute mtl @@ -147848,8 +148120,8 @@ self: { }: mkDerivation { pname = "heftia"; - version = "0.2.0.0"; - sha256 = "1kqpg346sbavphq00spl9pmj1f7d9n467zc8qil82q71nsmhqni3"; + version = "0.3.0.0"; + sha256 = "1brmn77ihnx2a7w64ikw9n8ym4gkaw7zkz5ycrc5dfzsl9ai220s"; libraryHaskellDepends = [ base constraints data-effects extensible free kan-extensions membership mtl singletons-base singletons-th transformers @@ -147864,25 +148136,27 @@ self: { "heftia-effects" = callPackage ({ mkDerivation, base, containers, data-effects, extensible, extra - , free, ghc-typelits-knownnat, heftia, loglevel, mtl, tasty - , tasty-discover, tasty-hunit, text, time, transformers, unliftio + , free, ghc-typelits-knownnat, heftia, hspec, mtl, tasty + , tasty-discover, tasty-hspec, text, time, transformers + , unbounded-delays, unliftio }: mkDerivation { pname = "heftia-effects"; - version = "0.2.0.0"; - sha256 = "0jk9gmrh1y9dzxsva4azbd74bgxfqswh4awsxgmpqigg1g36m6sh"; + version = "0.3.0.0"; + sha256 = "00lgnsnyn0rwhgnzfdq6kq5wxcs3w6d6awcj65kikhp9ysnv0j5n"; isLibrary = true; isExecutable = true; libraryHaskellDepends = [ - base containers data-effects extensible free ghc-typelits-knownnat - heftia mtl transformers unliftio + base containers data-effects extensible extra free + ghc-typelits-knownnat heftia mtl time transformers unbounded-delays + unliftio ]; executableHaskellDepends = [ - base data-effects extra ghc-typelits-knownnat heftia loglevel text - time + base data-effects extra ghc-typelits-knownnat heftia text time ]; testHaskellDepends = [ - base data-effects ghc-typelits-knownnat heftia tasty tasty-hunit + base data-effects ghc-typelits-knownnat heftia hspec tasty + tasty-hspec unliftio ]; testToolDepends = [ tasty-discover ]; description = "higher-order effects done right"; @@ -149490,6 +149764,19 @@ self: { license = lib.licenses.bsd3; }) {}; + "hexml_0_3_5" = callPackage + ({ mkDerivation, base, bytestring, extra }: + mkDerivation { + pname = "hexml"; + version = "0.3.5"; + sha256 = "15mjy6cxihh4bwdi0mh2vawqimpylzvl0jnpxwgalg96dsnj30a1"; + libraryHaskellDepends = [ base bytestring extra ]; + testHaskellDepends = [ base bytestring ]; + description = "XML subset DOM parser"; + license = lib.licenses.bsd3; + hydraPlatforms = lib.platforms.none; + }) {}; + "hexml-lens" = callPackage ({ mkDerivation, base, bytestring, contravariant, foundation, hexml , hspec, lens, profunctors, text, wreq @@ -151128,6 +151415,8 @@ self: { pname = "higgledy"; version = "0.4.2.1"; sha256 = "0gwlksxqfngd3ikc5nlbh7jq42l8siriqmgbravkvk1f78p1rcy3"; + revision = "1"; + editedCabalFile = "1qfknh9696gywnwrp45xrqzw1dqv1pr3gsla9fw9rr4i28pbd4br"; setupHaskellDepends = [ base Cabal cabal-doctest ]; libraryHaskellDepends = [ barbies base generic-lens generic-lens-core named QuickCheck @@ -153530,7 +153819,7 @@ self: { license = lib.licenses.bsd3; hydraPlatforms = lib.platforms.none; broken = true; - }) {inherit (pkgs) fam;}; + }) {fam = null;}; "hlibgit2" = callPackage ({ mkDerivation, base, bindings-DSL, git, openssl, process, zlib }: @@ -159267,6 +159556,28 @@ self: { license = lib.licenses.bsd3; }) {GeoIP = null;}; + "hs-asapo" = callPackage + ({ mkDerivation, base, bytestring, cabal-doctest, clock, doctest + , libasapo-consumer, libasapo-producer, optparse-applicative, text + , time, timerep + }: + mkDerivation { + pname = "hs-asapo"; + version = "0.9.0"; + sha256 = "0629yz0zpq6zyqxxczmpv246nz4mv2vz1nv46w72cqz4b5mbanmf"; + setupHaskellDepends = [ base cabal-doctest ]; + libraryHaskellDepends = [ + base bytestring clock text time timerep + ]; + libraryPkgconfigDepends = [ libasapo-consumer libasapo-producer ]; + testHaskellDepends = [ + base bytestring clock doctest text time timerep + ]; + benchmarkHaskellDepends = [ base optparse-applicative text time ]; + description = "Haskell bindings for ASAP:O"; + license = lib.licenses.mit; + }) {libasapo-consumer = null; libasapo-producer = null;}; + "hs-aws-lambda" = callPackage ({ mkDerivation, aeson, base, base64, bytestring, case-insensitive , containers, deepseq, http-client, http-types, safe-exceptions @@ -159597,6 +159908,22 @@ self: { broken = true; }) {}; + "hs-highlight" = callPackage + ({ mkDerivation, base, bytestring, hspec }: + mkDerivation { + pname = "hs-highlight"; + version = "1.0.3"; + sha256 = "0m6x96v5h2xdw618y5ljp0cpy52np8lvd126sp7mqfqr318vx51x"; + isLibrary = true; + isExecutable = true; + libraryHaskellDepends = [ base bytestring ]; + executableHaskellDepends = [ base ]; + testHaskellDepends = [ base hspec ]; + description = "A tool to highlight terminal strings"; + license = lib.licenses.mit; + mainProgram = "test-exe"; + }) {}; + "hs-inspector" = callPackage ({ mkDerivation, base, haskell-src, hspec }: mkDerivation { @@ -162881,6 +163208,8 @@ self: { pname = "hslua-module-zip"; version = "1.1.3"; sha256 = "1fws5jwf1zwqilgm05y28ywgxavygnjpdlj43nhfg8cmng1p0kyq"; + revision = "1"; + editedCabalFile = "1ml14hycwh4wg8351b8dq94qyppkzhw8jk0b0dgahqvy7p5w86y3"; libraryHaskellDepends = [ base bytestring filepath hslua-core hslua-list hslua-marshalling hslua-packaging hslua-typing text time zip-archive @@ -163790,14 +164119,14 @@ self: { license = lib.licenses.bsd3; }) {}; - "hspec-hedgehog_0_2_0_0" = callPackage + "hspec-hedgehog_0_3_0_0" = callPackage ({ mkDerivation, base, hedgehog, hspec, hspec-core, hspec-discover , HUnit, QuickCheck, splitmix }: mkDerivation { pname = "hspec-hedgehog"; - version = "0.2.0.0"; - sha256 = "1xf0sl6sliri7cc6wp5h9l90a732fkycmr71af2jv6yr8nv5rpak"; + version = "0.3.0.0"; + sha256 = "1px71jwxvqdh837fvlmx4smcvci9bbkygb7n10vasfpyb2k0yhzy"; libraryHaskellDepends = [ base hedgehog hspec hspec-core QuickCheck splitmix ]; @@ -165853,8 +166182,8 @@ self: { ({ mkDerivation, base, http-api-data, text }: mkDerivation { pname = "htmx"; - version = "0.1.0.0"; - sha256 = "0b2rjq3qv68vr7ljy844w9fiz93f0v0y2dykybhl5addbyz6z4nm"; + version = "0.1.0.1"; + sha256 = "06wnjhjgimggfhl2510lxwabqr5hdzb7yqlbmv9mi01c50q6idam"; libraryHaskellDepends = [ base http-api-data text ]; description = "Use htmx with various haskell libraries"; license = lib.licenses.mit; @@ -165878,8 +166207,8 @@ self: { ({ mkDerivation, base, htmx, htmx-lucid, lucid2, servant, text }: mkDerivation { pname = "htmx-servant"; - version = "0.2.0.0"; - sha256 = "0xckwxigcjfsf9idw056fnks7b3chdd9bawilwf252mcm45ywaqy"; + version = "0.2.0.1"; + sha256 = "0vwj3d34ada0iskjr4k7a75x6hf750b71acjphnwddpqf233mfla"; libraryHaskellDepends = [ base htmx htmx-lucid lucid2 servant text ]; @@ -166227,8 +166556,8 @@ self: { }: mkDerivation { pname = "http-barf"; - version = "0.1.0.0"; - sha256 = "0x5aczgzg1ck0yb7mjphl8p45y3kdg83zrzr5l2pvmpb5i6y7v6r"; + version = "0.1.1.0"; + sha256 = "1x1jmyqyrh4jmagml1vnjaf2hr5qvs1fjnvabslvvz33hx601398"; libraryHaskellDepends = [ aeson base bytestring http-client http-client-tls mtl vector ]; @@ -166579,6 +166908,37 @@ self: { license = lib.licenses.bsd3; }) {}; + "http-conduit_2_3_9" = callPackage + ({ mkDerivation, aeson, attoparsec, attoparsec-aeson, base + , blaze-builder, bytestring, case-insensitive, conduit + , conduit-extra, cookie, crypton-connection, data-default-class + , hspec, http-client, http-client-tls, http-types, HUnit, mtl + , network, resourcet, streaming-commons, temporary, text, time, tls + , transformers, unliftio, unliftio-core, utf8-string, wai + , wai-conduit, warp, warp-tls + }: + mkDerivation { + pname = "http-conduit"; + version = "2.3.9"; + sha256 = "0mg9l71lcilgc5mfc6syw71hqk17jc7f880s63zrwvfxnhc2cvi9"; + libraryHaskellDepends = [ + aeson attoparsec attoparsec-aeson base bytestring conduit + conduit-extra http-client http-client-tls http-types mtl resourcet + transformers unliftio-core + ]; + testHaskellDepends = [ + aeson attoparsec-aeson base blaze-builder bytestring + case-insensitive conduit conduit-extra cookie crypton-connection + data-default-class hspec http-client http-types HUnit network + resourcet streaming-commons temporary text time tls transformers + unliftio utf8-string wai wai-conduit warp warp-tls + ]; + doCheck = false; + description = "HTTP client package with conduit interface and HTTPS support"; + license = lib.licenses.bsd3; + hydraPlatforms = lib.platforms.none; + }) {}; + "http-conduit-browser" = callPackage ({ mkDerivation, base, base64-bytestring, blaze-builder, bytestring , case-insensitive, conduit, containers, cookie, data-default @@ -166814,8 +167174,8 @@ self: { }: mkDerivation { pname = "http-interchange"; - version = "0.3.2.1"; - sha256 = "1jji8wjdivpwd4zmhljn39d2rwvrlyxz7gmnacm8qkjmfhkhppkq"; + version = "0.3.2.2"; + sha256 = "0smmf2c86s01vp8vdyjl2hcqmq3q95r8ngdvs2d8drr7llf0dizv"; libraryHaskellDepends = [ base bytebuild byteslice bytesmith contiguous primitive text ]; @@ -167225,8 +167585,8 @@ self: { }: mkDerivation { pname = "http-semantics"; - version = "0.2.0"; - sha256 = "0n37zspfc6n5rswn10rxg21azkc40a60sl3c2f0zvzkqvsvfp0q3"; + version = "0.2.1"; + sha256 = "1nzxqrlxmkld86msmdp1zaqvsw3jbbj63n7r0bpgmyq7nnxqxiks"; libraryHaskellDepends = [ array base bytestring case-insensitive http-types network network-byte-order time-manager utf8-string @@ -167456,24 +167816,24 @@ self: { license = lib.licenses.bsd3; }) {}; - "http2_5_3_2" = callPackage + "http2_5_3_4" = callPackage ({ mkDerivation, aeson, aeson-pretty, array, async, base , base16-bytestring, bytestring, case-insensitive, containers - , crypton, directory, filepath, gauge, Glob, hspec, hspec-discover - , http-semantics, http-types, network, network-byte-order - , network-control, network-run, random, stm, text, time-manager - , typed-process, unix-time, unliftio, unordered-containers - , utf8-string, vector + , criterion, crypton, directory, filepath, Glob, hspec + , hspec-discover, http-semantics, http-types, iproute, network + , network-byte-order, network-control, network-run, random, stm + , text, time-manager, typed-process, unix-time, unliftio + , unordered-containers, utf8-string, vector }: mkDerivation { pname = "http2"; - version = "5.3.2"; - sha256 = "18nhxfshlddf8dgl1lbnkswjrm1zw91hsbcmvlw9ninnaqvzz93k"; + version = "5.3.4"; + sha256 = "006l2asgkcgdiyknl363n3wfdmaxbqnnf9kls4ljqxvc677l2jj3"; isLibrary = true; isExecutable = true; libraryHaskellDepends = [ array async base bytestring case-insensitive containers - http-semantics http-types network network-byte-order + http-semantics http-types iproute network network-byte-order network-control stm time-manager unix-time unliftio utf8-string ]; testHaskellDepends = [ @@ -167484,8 +167844,8 @@ self: { ]; testToolDepends = [ hspec-discover ]; benchmarkHaskellDepends = [ - array base bytestring case-insensitive containers gauge - network-byte-order stm + array base bytestring case-insensitive containers criterion + network-byte-order stm unliftio ]; description = "HTTP/2 library"; license = lib.licenses.bsd3; @@ -167637,8 +167997,8 @@ self: { }: mkDerivation { pname = "http3"; - version = "0.0.17"; - sha256 = "1dq8qbrq1gfpdvkahpxgg11diyfqk59srnp4hl8sbw0fsdxmiawp"; + version = "0.0.18"; + sha256 = "1wmh13irvsfkbzmg1xh5p68xqhvs21hr9dk3dk845xdn269vxidq"; isLibrary = true; isExecutable = true; libraryHaskellDepends = [ @@ -169483,8 +169843,8 @@ self: { }: mkDerivation { pname = "hw-polysemy"; - version = "0.2.14.0"; - sha256 = "0scmhk2wwgf4dpwwjw3idhhjqma58i0smcc2s2amgbw294bjnxw4"; + version = "0.2.14.2"; + sha256 = "08cllz3vm444yzvds9b5057l235gs5ardy9x9fbkagdryids6afp"; libraryHaskellDepends = [ aeson aeson-pretty async base binary bytestring contravariant Diff directory exceptions filepath generic-lens ghc-prim http-conduit @@ -176679,18 +177039,21 @@ self: { }) {}; "io-classes" = callPackage - ({ mkDerivation, array, async, base, bytestring, mtl, primitive - , stm, time + ({ mkDerivation, array, async, base, bytestring, deepseq, nothunks + , primitive, QuickCheck, stm, tasty, tasty-quickcheck, time }: mkDerivation { pname = "io-classes"; - version = "1.5.0.0"; - sha256 = "1iwzmi6z3v9sx7n3x8yg1xa262i898f6vddxhx9lhgby0hw3r4i9"; - revision = "1"; - editedCabalFile = "0mqx8dq16y6ig3gxn7cdr6h3d6via1j5q8n7a3s8sln0apkak440"; + version = "1.7.0.0"; + sha256 = "1lnp09xmkl63zfy3ly5lmy1fsidngzksh35ws753s9287wc9fxbh"; + revision = "2"; + editedCabalFile = "1lkffla90j6fp64kbw220dsqxy0cqwa0987ssp24skkkgk5j0132"; libraryHaskellDepends = [ - array async base bytestring mtl primitive stm time + array async base bytestring deepseq nothunks primitive QuickCheck + stm time ]; + testHaskellDepends = [ base QuickCheck tasty tasty-quickcheck ]; + doHaddock = false; description = "Type classes for concurrency with STM, ST and timing"; license = lib.licenses.asl20; }) {}; @@ -176778,20 +177141,21 @@ self: { "io-sim" = callPackage ({ mkDerivation, array, base, containers, criterion, deepseq , exceptions, io-classes, nothunks, parallel, primitive, psqueues - , QuickCheck, quiet, si-timers, strict-stm, tasty, tasty-hunit - , tasty-quickcheck, time + , QuickCheck, quiet, tasty, tasty-hunit, tasty-quickcheck, time }: mkDerivation { pname = "io-sim"; - version = "1.5.0.0"; - sha256 = "0074ngiwrs7fnrllnzh7dz5k1f5dv65d7b9bjmx6kzfn38pmmn0v"; + version = "1.6.0.0"; + sha256 = "0ripyhcmvvlqhb2v2gnbvbmb6bi7pqlcnly7cs7a5rxb9iww4qla"; + revision = "3"; + editedCabalFile = "16if6l47s01q7lbx8b1ymi4gj6bzd53jajm89gwnrg8033mbx6cy"; libraryHaskellDepends = [ base containers deepseq exceptions io-classes nothunks parallel - primitive psqueues QuickCheck quiet si-timers strict-stm time + primitive psqueues QuickCheck quiet time ]; testHaskellDepends = [ - array base containers io-classes QuickCheck si-timers strict-stm - tasty tasty-hunit tasty-quickcheck time + array base containers io-classes QuickCheck tasty tasty-hunit + tasty-quickcheck time ]; benchmarkHaskellDepends = [ base criterion io-classes ]; description = "A pure simulator for monadic concurrency with STM"; @@ -177650,27 +178014,24 @@ self: { }) {}; "iri" = callPackage - ({ mkDerivation, attoparsec, base, bytestring, contravariant - , hashable, ip, profunctors, ptr, punycode, QuickCheck - , quickcheck-instances, rerebase, semigroups, tasty, tasty-hunit - , tasty-quickcheck, template-haskell, text, text-builder, th-lift + ({ mkDerivation, attoparsec, base, bytestring, cereal + , contravariant, hashable, ip, mtl, profunctors, ptr, rerebase + , tasty, tasty-hunit, template-haskell, text, text-builder, th-lift , th-lift-instances, unordered-containers, vector, vector-builder - , vector-instances + , vector-instances, wide-word }: mkDerivation { pname = "iri"; - version = "0.4"; - sha256 = "0v790f2fl4hcb6069ak5cscd156ry3065cshjh9c30239allw7m5"; + version = "0.5.1"; + sha256 = "0r1isflm644d823vwimrcmh4s8ash84gi4hgav1gxgiryw9j013n"; libraryHaskellDepends = [ - attoparsec base bytestring contravariant hashable ip profunctors - ptr punycode semigroups template-haskell text text-builder th-lift + attoparsec base bytestring cereal contravariant hashable ip mtl + profunctors ptr template-haskell text text-builder th-lift th-lift-instances unordered-containers vector vector-builder - vector-instances - ]; - testHaskellDepends = [ - QuickCheck quickcheck-instances rerebase tasty tasty-hunit - tasty-quickcheck + vector-instances wide-word ]; + testHaskellDepends = [ rerebase tasty tasty-hunit ]; + doHaddock = false; description = "RFC-based resource identifier library"; license = lib.licenses.mit; hydraPlatforms = lib.platforms.none; @@ -183181,7 +183542,7 @@ self: { license = lib.licenses.bsd3; }) {}; - "katip_0_8_8_1" = callPackage + "katip_0_8_8_2" = callPackage ({ mkDerivation, aeson, async, auto-update, base, blaze-builder , bytestring, containers, criterion, deepseq, directory, either , filepath, hostname, microlens, microlens-th, monad-control, mtl @@ -183194,8 +183555,8 @@ self: { }: mkDerivation { pname = "katip"; - version = "0.8.8.1"; - sha256 = "1745h9rkrm8dzvx1px62vq1rbgnwqxwrrz72m6vc4yyj1pzhhykc"; + version = "0.8.8.2"; + sha256 = "12g0i1ndzzkgf0qgkxx525d742mkfnsdwb9rhi6z8jn5hc38sps4"; libraryHaskellDepends = [ aeson async auto-update base bytestring containers either hostname microlens microlens-th monad-control mtl old-locale resourcet @@ -189895,6 +190256,22 @@ self: { license = lib.licenses.mit; }) {}; + "lazyppl" = callPackage + ({ mkDerivation, base, containers, hmatrix, log-domain + , math-functions, monad-extras, mtl, random, transformers + }: + mkDerivation { + pname = "lazyppl"; + version = "1.0"; + sha256 = "1agm2d6yxsn9m46lljcnys85nwr29nhghffwhr6y9xgpdrf6gvzw"; + libraryHaskellDepends = [ + base containers hmatrix log-domain math-functions monad-extras mtl + random transformers + ]; + description = "Lazy Probabilistic Programming Library"; + license = lib.licenses.mit; + }) {}; + "lazyset" = callPackage ({ mkDerivation, base, containers, data-ordlist, HUnit, time , timeit @@ -192576,12 +192953,16 @@ self: { ({ mkDerivation, base, hspec, QuickCheck, split }: mkDerivation { pname = "libroman"; - version = "3.1.1"; - sha256 = "11yg74v290s4dy5bn94hb0lwncbbxqljgjldaxr80iy9c52z9hzi"; + version = "3.2.0"; + sha256 = "0y1n3c5a2qmazaifi760lsiy17vbmnhrm8v1ixs54y1ww75gpgw6"; + isLibrary = true; + isExecutable = true; libraryHaskellDepends = [ base split ]; + executableHaskellDepends = [ base ]; testHaskellDepends = [ base hspec QuickCheck ]; description = "Use Roman Numerals as a Numeric Datatype (sort of)"; license = lib.licenses.bsd3; + mainProgram = "roman"; }) {}; "libsecp256k1" = callPackage @@ -192735,10 +193116,8 @@ self: { }: mkDerivation { pname = "libsystemd-journal"; - version = "1.4.5.1"; - sha256 = "1d2pm38nq8bk55lva1y1p5789qdkcmmc1z376lnjs4f0jgb6pnhn"; - revision = "1"; - editedCabalFile = "0daj8yrxp9zph3jgyxp10gj0pi0yba58jv7iy67j6zi23hbzm6ar"; + version = "1.4.6.0"; + sha256 = "0wxf56i9mv6fm40rwzawbf829z73r4x7jchgardl770dg5zmy9yb"; libraryHaskellDepends = [ base bytestring hashable hsyslog pipes pipes-safe semigroups text transformers uniplate unix-bytestring unordered-containers uuid @@ -193270,8 +193649,8 @@ self: { }: mkDerivation { pname = "lifx-lan"; - version = "0.8.2"; - sha256 = "17n684whz5b80zg1jr7l5dp5qz2fa6g3hgqn5b8mjhqlrgqsmfwn"; + version = "0.8.3"; + sha256 = "0077wdyrfz20lrd55lzv3bd1ab9cckppkm1gyzp1g23b8xwdayz5"; libraryHaskellDepends = [ ansi-terminal base binary bytestring colour composition containers extra monad-loops mtl network random safe text time transformers @@ -194826,13 +195205,13 @@ self: { , optparse-applicative, parallel, parser-combinators, pretty , process, rest-rewrite, smtlib-backends, smtlib-backends-process , stm, store, syb, tagged, tasty, tasty-ant-xml, tasty-hunit - , tasty-quickcheck, tasty-rerun, text, transformers, typed-process + , tasty-quickcheck, tasty-rerun, text, transformers , unordered-containers, vector, z3 }: mkDerivation { pname = "liquid-fixpoint"; - version = "0.9.6.3"; - sha256 = "0vir7l5wpbpcgvydncxsn6yk6xi2v8ax4r75zb4cn0sl4cyswp4m"; + version = "0.9.6.3.1"; + sha256 = "1lad9s2slvbz0msdk43554h73zhw8cxcbj7fnj2nbj0rni8q0i0i"; configureFlags = [ "-fbuild-external" ]; isLibrary = true; isExecutable = true; @@ -194842,14 +195221,14 @@ self: { fgl filepath hashable intern lens-family megaparsec mtl parallel parser-combinators pretty process rest-rewrite smtlib-backends smtlib-backends-process stm store syb text transformers - typed-process unordered-containers vector + unordered-containers vector ]; executableHaskellDepends = [ base ]; testHaskellDepends = [ base containers directory filepath hashable mtl optparse-applicative process stm tagged tasty tasty-ant-xml tasty-hunit tasty-quickcheck tasty-rerun text transformers - typed-process unordered-containers + unordered-containers ]; testSystemDepends = [ git nettools z3 ]; doCheck = false; @@ -194918,10 +195297,8 @@ self: { }: mkDerivation { pname = "liquid-prelude"; - version = "0.9.2.8.1"; - sha256 = "1yan7blwns2r39qgrrzn2q7z9j6m72jllnl523w61frr7yzlxkck"; - revision = "1"; - editedCabalFile = "08zwppn1jpf1cpz1f3pq18wxdl20spmkkfj604kn8x0bz4d0386d"; + version = "0.9.2.8.2"; + sha256 = "0ldap73vg5qxw9fh2mmfinhg78wpqf8nnpd4kd7abpxlpmni8d3r"; setupHaskellDepends = [ base Cabal liquidhaskell-boot ]; libraryHaskellDepends = [ base bytestring containers ghc-prim liquidhaskell @@ -194948,15 +195325,16 @@ self: { "liquidhaskell" = callPackage ({ mkDerivation, base, bytestring, Cabal, containers, ghc-bignum - , ghc-prim, liquidhaskell-boot, z3 + , ghc-internal, ghc-prim, liquidhaskell-boot, z3 }: mkDerivation { pname = "liquidhaskell"; - version = "0.9.8.1"; - sha256 = "0dak8ixjylm4lznzddn4zcjdb8nm9ha5l6p29l6bhk54gfzccsn8"; + version = "0.9.10.1"; + sha256 = "1r3syj0c2v8x3xd2bqywf8f596r9mnf85mr2r9xvfxxd6dlmyz85"; setupHaskellDepends = [ base Cabal liquidhaskell-boot ]; libraryHaskellDepends = [ - base bytestring containers ghc-bignum ghc-prim liquidhaskell-boot + base bytestring containers ghc-bignum ghc-internal ghc-prim + liquidhaskell-boot ]; testSystemDepends = [ z3 ]; description = "Liquid Types for Haskell"; @@ -194968,16 +195346,16 @@ self: { ({ mkDerivation, aeson, base, binary, bytestring, Cabal, cereal , cmdargs, containers, data-default, data-fix, deepseq, Diff , directory, exceptions, extra, filepath, fingertree, free, ghc - , ghc-boot, ghc-paths, ghc-prim, githash, gitrev, hashable - , hscolour, liquid-fixpoint, megaparsec, mtl, optparse-applicative - , pretty, recursion-schemes, split, syb, tasty, tasty-ant-xml - , tasty-hunit, template-haskell, temporary, text, th-compat, time - , transformers, unordered-containers, vector + , ghc-boot, ghc-internal, ghc-paths, ghc-prim, githash, gitrev + , hashable, hscolour, liquid-fixpoint, megaparsec, mtl + , optparse-applicative, pretty, recursion-schemes, split, syb + , tasty, tasty-ant-xml, tasty-hunit, template-haskell, temporary + , text, th-compat, time, transformers, unordered-containers, vector }: mkDerivation { pname = "liquidhaskell-boot"; - version = "0.9.8.1"; - sha256 = "00cm1myw2l051nspx04vn332jxn2wary2mn5yhv0pqsvi28j2vnw"; + version = "0.9.10.1"; + sha256 = "11dl8lsw0wqacfjhvs03ymrsv2gxfkgjv5mbp30vmd0c3gb34fgl"; libraryHaskellDepends = [ aeson base binary bytestring Cabal cereal cmdargs containers data-default data-fix deepseq Diff directory exceptions extra @@ -194988,8 +195366,9 @@ self: { unordered-containers vector ]; testHaskellDepends = [ - base directory filepath ghc ghc-paths liquid-fixpoint megaparsec - syb tasty tasty-ant-xml tasty-hunit time + base directory filepath ghc ghc-internal ghc-paths ghc-prim + liquid-fixpoint megaparsec syb tasty tasty-ant-xml tasty-hunit + template-haskell time unordered-containers ]; description = "Liquid Types for Haskell"; license = lib.licenses.bsd3; @@ -196172,8 +196551,8 @@ self: { }: mkDerivation { pname = "llvm-pretty"; - version = "0.12.0.0"; - sha256 = "1xdlic9rl63617qqwxlf2sn0j67wsnarhllf1k5anzgprd64vylj"; + version = "0.12.1.0"; + sha256 = "113avpn33gyh65yd0bbfwni044ih5vcbnv8l43siy8a4asp0xfwi"; libraryHaskellDepends = [ base containers microlens microlens-th monadLib parsec pretty syb template-haskell th-abstraction @@ -196199,8 +196578,8 @@ self: { }: mkDerivation { pname = "llvm-pretty-bc-parser"; - version = "0.4.1.0"; - sha256 = "1nc8znxzzg2qgn3x52a310rn8lg647k495927k6zfs2x07chy5gh"; + version = "0.4.2.0"; + sha256 = "1y0wvczlrmx990c9i697vy30bpl7109k9psxpldd3857cadmkmdi"; isLibrary = true; isExecutable = true; libraryHaskellDepends = [ @@ -198812,6 +199191,21 @@ self: { license = lib.licenses.mit; }) {inherit (pkgs) lua5_4;}; + "lua_2_3_3" = callPackage + ({ mkDerivation, base, lua5_4, tasty, tasty-hunit }: + mkDerivation { + pname = "lua"; + version = "2.3.3"; + sha256 = "0xvhfq8ms5wbchrscxaqf4a9panfnzgz5xdlg86790nydab2kals"; + configureFlags = [ "-fsystem-lua" "-f-use-pkgconfig" ]; + libraryHaskellDepends = [ base ]; + librarySystemDepends = [ lua5_4 ]; + testHaskellDepends = [ base tasty tasty-hunit ]; + description = "Lua, an embeddable scripting language"; + license = lib.licenses.mit; + hydraPlatforms = lib.platforms.none; + }) {inherit (pkgs) lua5_4;}; + "lua-arbitrary" = callPackage ({ mkDerivation, base, lua, QuickCheck }: mkDerivation { @@ -202955,8 +203349,8 @@ self: { }: mkDerivation { pname = "matterhorn"; - version = "90000.0.0"; - sha256 = "0vc63h1xcg578c88wra66lb1x4spqqbcg5kfgjqqy3klqs2qz0sp"; + version = "90000.0.1"; + sha256 = "09zgjg6ymclxjbmlcrvwhd9nfjiqnx13ln52gvgk6wxkksdxb614"; isLibrary = true; isExecutable = true; enableSeparateDataOutput = true; @@ -204065,6 +204459,8 @@ self: { pname = "melf"; version = "1.3.1"; sha256 = "0ivfzsw36qy0m93h353r3963vmhirzg3a5mirqn1hfbsk24xf1dx"; + revision = "2"; + editedCabalFile = "0q822xj2z2xbdi8wk0dyny9k3lbpx6c3dmxrlimdnz43218x58rn"; isLibrary = true; isExecutable = true; enableSeparateDataOutput = true; @@ -210271,11 +210667,11 @@ self: { ({ mkDerivation, base }: mkDerivation { pname = "monadLib"; - version = "3.10.1"; - sha256 = "0n5fmmsc0qww0nz3k2j4j68qdpq3px46abl9igvv06iz2xi8b778"; + version = "3.10.3"; + sha256 = "048xk3zr7237c0mzr6lfca3qsgh60icnp8vw3vg2pj12z8id62ka"; libraryHaskellDepends = [ base ]; description = "A collection of monad transformers"; - license = lib.licenses.bsd3; + license = lib.licenses.isc; }) {}; "monadLib-compose" = callPackage @@ -218651,15 +219047,15 @@ self: { license = lib.licenses.bsd3; }) {}; - "network_3_2_1_0" = callPackage + "network_3_2_2_0" = callPackage ({ mkDerivation, base, bytestring, deepseq, directory, hspec - , hspec-discover, HUnit, QuickCheck, temporary + , hspec-discover, HUnit, QuickCheck, stm, temporary }: mkDerivation { pname = "network"; - version = "3.2.1.0"; - sha256 = "00fjgg9zj5nhw1ra8kqaaa3cxzkf0lxnzcfdqvagxx7fdvbwdw4h"; - libraryHaskellDepends = [ base bytestring deepseq directory ]; + version = "3.2.2.0"; + sha256 = "033zcj1ibrw49h4rbkhbznyz0na25zyaihh2m35wqlkgji3lkc7g"; + libraryHaskellDepends = [ base bytestring deepseq directory stm ]; testHaskellDepends = [ base bytestring directory hspec HUnit QuickCheck temporary ]; @@ -220510,8 +220906,8 @@ self: { }: mkDerivation { pname = "ngx-export-tools-extra"; - version = "1.2.8.1"; - sha256 = "0x56jxbswzs371z8a93h5zbda4h6y9l2jnlp15h5vg9lsn2fhrnw"; + version = "1.2.9.1"; + sha256 = "0mafzhc6lnari85ng2iw025nhyvwsqkaamxf6jlkkm45k9zsa59y"; libraryHaskellDepends = [ aeson array async base base64 binary bytestring case-insensitive containers ede enclosed-exceptions http-client @@ -225260,10 +225656,10 @@ self: { ({ mkDerivation, base, containers, ghc, safe }: mkDerivation { pname = "om-plugin-imports"; - version = "0.3.0.0.9.10"; - sha256 = "0x3h9maja4vq3zzh0swi6yfhc149gh4m01mdbhy0v2l6054mfl51"; + version = "0.4.0.0.9.10"; + sha256 = "07ghwn2jpy580mzf70x0rawmxsqsbyy1adp204vydxapp04xbv0k"; libraryHaskellDepends = [ base containers ghc safe ]; - description = "Plugin-based import warnings"; + description = "Plugin-based explicit import generation"; license = lib.licenses.mit; hydraPlatforms = lib.platforms.none; broken = true; @@ -232136,8 +232532,8 @@ self: { pname = "parameterized-utils"; version = "2.1.8.0"; sha256 = "026lrdnw5rjvny380rmrzpwhmcfgp551whbk0mnx2y2q6ij0sjfm"; - revision = "1"; - editedCabalFile = "0c253mwkk7a58frhavl9nzwlmps4kzvi5a5hsdv6mbsaqq5vq7vw"; + revision = "2"; + editedCabalFile = "1kk13926s885fxss2hz6h438k526s8agnhg8v199qam862f16yhh"; libraryHaskellDepends = [ base base-orphans constraints containers deepseq ghc-prim hashable hashtables indexed-traversable lens mtl profunctors @@ -235879,6 +236275,45 @@ self: { maintainers = [ lib.maintainers.psibi ]; }) {}; + "persistent_2_14_6_3" = callPackage + ({ mkDerivation, aeson, attoparsec, attoparsec-aeson, base + , base64-bytestring, blaze-html, bytestring, conduit, containers + , criterion, deepseq, fast-logger, file-embed, hspec, http-api-data + , lift-type, monad-logger, mtl, path-pieces, QuickCheck + , quickcheck-instances, resource-pool, resourcet, scientific + , shakespeare, silently, template-haskell, text, th-lift-instances + , time, transformers, unliftio, unliftio-core, unordered-containers + , vault, vector + }: + mkDerivation { + pname = "persistent"; + version = "2.14.6.3"; + sha256 = "1nqmd1ml1s4cm9hwfz9cz5qj4i9zm8ip69gmgysfgbs0h64f7w2d"; + libraryHaskellDepends = [ + aeson attoparsec attoparsec-aeson base base64-bytestring blaze-html + bytestring conduit containers deepseq fast-logger http-api-data + lift-type monad-logger mtl path-pieces resource-pool resourcet + scientific silently template-haskell text th-lift-instances time + transformers unliftio unliftio-core unordered-containers vault + vector + ]; + testHaskellDepends = [ + aeson attoparsec base base64-bytestring blaze-html bytestring + conduit containers deepseq fast-logger hspec http-api-data + monad-logger mtl path-pieces QuickCheck quickcheck-instances + resource-pool resourcet scientific shakespeare silently + template-haskell text th-lift-instances time transformers unliftio + unliftio-core unordered-containers vector + ]; + benchmarkHaskellDepends = [ + base criterion deepseq file-embed template-haskell text + ]; + description = "Type-safe, multi-backend data serialization"; + license = lib.licenses.mit; + hydraPlatforms = lib.platforms.none; + maintainers = [ lib.maintainers.psibi ]; + }) {}; + "persistent-audit" = callPackage ({ mkDerivation, aeson, attoparsec, base, bytestring , getopt-generics, hashable, hspec, mongoDB, persistent @@ -236393,6 +236828,8 @@ self: { pname = "persistent-postgresql"; version = "2.13.6.2"; sha256 = "1z6cy54qnxpml86b6dr67kin6ww0dfn9vg3bzb3iw5s9srf7zwn2"; + revision = "1"; + editedCabalFile = "1a58a602nnwrb3s72q12piw18r458w3ha9nfjmpz5na566ndqmgl"; isLibrary = true; isExecutable = true; libraryHaskellDepends = [ @@ -237245,8 +237682,8 @@ self: { ({ mkDerivation, base, bytestring, containers, QuickCheck, text }: mkDerivation { pname = "phaser"; - version = "1.0.1.0"; - sha256 = "0c4b5mx2nz8r0bpk29knzgs1hq5f69wsscplk7dcfsqwkngid930"; + version = "1.0.2.0"; + sha256 = "1zykmcbhi8plrdp9n1idz3n0181ml9q5k1zj508f6a2pvyl4jcxa"; libraryHaskellDepends = [ base bytestring containers text ]; testHaskellDepends = [ base bytestring containers QuickCheck text @@ -241106,8 +241543,8 @@ self: { }: mkDerivation { pname = "plots"; - version = "0.1.1.4"; - sha256 = "1b68dd1xk6kqfgyypddk4zcllm8lnfxz2a2fhvb4d09ar3ix7s40"; + version = "0.1.1.5"; + sha256 = "0dgjg1idfhmnzdy7c2my1ri98psbm8jq67ssnb2iss4ay9fs13fw"; libraryHaskellDepends = [ adjunctions base base-orphans colour containers data-default diagrams-core diagrams-lib directory distributive filepath @@ -242272,6 +242709,8 @@ self: { pname = "polysemy-blockfrost"; version = "0.1.4.0"; sha256 = "0l4qna29fv8z2mh9aywp30mmlpw73hn40gwkzhpv8hjdlppvlri1"; + revision = "1"; + editedCabalFile = "1jljm9ajc8nkqgbm0by2mnascflypw47l6zr22msifxrmlvvyik7"; libraryHaskellDepends = [ base blockfrost-api blockfrost-client polysemy polysemy-plugin text ]; @@ -244479,14 +244918,14 @@ self: { license = lib.licenses.bsd3; }) {inherit (pkgs) postgresql;}; - "postgresql-libpq_0_10_2_0" = callPackage + "postgresql-libpq_0_11_0_0" = callPackage ({ mkDerivation, base, bytestring, postgresql-libpq-configure , tasty, tasty-hunit, unix }: mkDerivation { pname = "postgresql-libpq"; - version = "0.10.2.0"; - sha256 = "1vsb95m7k7j7k1156bb2kn1iavj4x3mvczpybw0mypa76a1ppsck"; + version = "0.11.0.0"; + sha256 = "18yj7vb51r72ybzi7849w83b79gydnh7az1wkc037fz6iwhb2jh3"; libraryHaskellDepends = [ base bytestring postgresql-libpq-configure unix ]; @@ -244500,8 +244939,8 @@ self: { ({ mkDerivation, base }: mkDerivation { pname = "postgresql-libpq-configure"; - version = "0.10"; - sha256 = "00483rfqa65ivxlm3smbr3n4k397izifarjx408pnibqcj4s6yd7"; + version = "0.11"; + sha256 = "1n5jjnnflh2ldqvcs44al572240s2435bh5m761hrpbmai5y6kwd"; libraryHaskellDepends = [ base ]; doHaddock = false; description = "low-level binding to libpq: configure based provider"; @@ -244531,8 +244970,8 @@ self: { ({ mkDerivation, base, libpq }: mkDerivation { pname = "postgresql-libpq-pkgconfig"; - version = "0.10"; - sha256 = "1vjfq3iiwygfyb16q84xfa1zhhr63ammfdzq6ks1si02na3k3paw"; + version = "0.11"; + sha256 = "19n0kqpx0qbhfcpw61n6wg8ll421bsyqmfgsyh6zs7laykhhmigr"; libraryHaskellDepends = [ base ]; libraryPkgconfigDepends = [ libpq ]; doHaddock = false; @@ -244819,8 +245258,8 @@ self: { pname = "postgresql-simple"; version = "0.7.0.0"; sha256 = "0gm1wk2zq35h46v0l1qc0z63jv3gxgqd059j1mcmww80a6sipf4c"; - revision = "2"; - editedCabalFile = "0y86qpm3pffk08d6smpqjfbqmn7bh8yyahc901vk86aln22nqf6w"; + revision = "3"; + editedCabalFile = "1vbdiniz18m1kk4wxdnc43ry7gq00vxxvklmnrn8v3vc5r55inka"; libraryHaskellDepends = [ aeson attoparsec base bytestring case-insensitive containers hashable Only postgresql-libpq scientific template-haskell text @@ -245973,8 +246412,8 @@ self: { ({ mkDerivation, adjunctions, base, deepseq, lens, mtl }: mkDerivation { pname = "predicate-transformers"; - version = "0.13.0.0"; - sha256 = "1ki2qqbraddncvg7ya9l5l6f362cxvrp0ygn6hvdl3xcljzq0hqr"; + version = "0.15.0.0"; + sha256 = "0kjmdbm0a7c2vik0hansvkri7c9zp5cfazgk00r65syflsgfk91s"; libraryHaskellDepends = [ adjunctions base deepseq lens mtl ]; description = "A library for writing predicates and transformations over predicates in Haskell"; license = lib.licenses.bsd3; @@ -248821,8 +249260,8 @@ self: { }: mkDerivation { pname = "project-m36"; - version = "1.0.2"; - sha256 = "0sbp2g5cpw46v3xjj5c3jpznc1sfhdn4ycvfp8ci03m88mp8bjsm"; + version = "1.1.0"; + sha256 = "1nqdfvzq4pm8dgds0r7k5fv4sw10nfygnz0w9dvb118s14sap1fi"; isLibrary = true; isExecutable = true; libraryHaskellDepends = [ @@ -249346,8 +249785,8 @@ self: { ({ mkDerivation, base, containers }: mkDerivation { pname = "propeller"; - version = "0.3.0.0"; - sha256 = "0nx76898abx6p71z8bn0sdxi7728zk6dfxgdcz2lp002mbjiawqb"; + version = "0.4.0.0"; + sha256 = "07mj8qj4m43ap7y6mh622qh0n0z9pq2i5rxpqrk89fwjcl26gsrm"; libraryHaskellDepends = [ base containers ]; testHaskellDepends = [ base containers ]; description = "A Propagator Library"; @@ -249452,6 +249891,8 @@ self: { pname = "proquint"; version = "0.1.0.0"; sha256 = "04hhvrrclyav0nhk6zqp9s58vxad8ndi6yw851qprd6h7wr57wg5"; + revision = "1"; + editedCabalFile = "1p3s3jpck7w9h5qxqp9w59mmf6yr9bgx339l1m01f6yjq720a6l6"; libraryHaskellDepends = [ array base ]; testHaskellDepends = [ base tasty tasty-hunit tasty-quickcheck ]; description = "Proquints: Identifiers that are Readable, Spellable, and Pronounceable"; @@ -250319,6 +250760,8 @@ self: { pname = "pseudo-boolean"; version = "0.1.11.0"; sha256 = "04hkg7nlyrziq3pm44sqr6b5zjb5x3d70xqzblp3h7f1sc6839rr"; + revision = "1"; + editedCabalFile = "1myzfrrjj9j0xd9la3iv9jzlgir6l5wxmh279rykjw2whkys20ry"; libraryHaskellDepends = [ attoparsec base bytestring bytestring-builder containers deepseq dlist hashable megaparsec parsec void @@ -250434,6 +250877,8 @@ self: { pname = "psqueues"; version = "0.2.8.0"; sha256 = "0qp48qxqfz3bzl10l1wq3fi2j88bcx71a8g5x3qdaia884wf4vdk"; + revision = "1"; + editedCabalFile = "0yp0i8fkm0gczdgki0qmvcnj5wvrfxjcs7cpmm4ifi9z857l9dy6"; libraryHaskellDepends = [ base deepseq ghc-prim hashable ]; testHaskellDepends = [ array base deepseq ghc-prim hashable HUnit QuickCheck tagged tasty @@ -253082,6 +253527,8 @@ self: { pname = "quic"; version = "0.2.2"; sha256 = "0bx6bccnfrqm7593mwi1c52pmb2dimxp3pllc6m818bgwrkii61w"; + revision = "2"; + editedCabalFile = "1mkqx0kadpd99d4izkqg7wm86ffvxr0xvz3p424563dx4k1c2apk"; isLibrary = true; isExecutable = true; libraryHaskellDepends = [ @@ -253417,10 +253864,8 @@ self: { }: mkDerivation { pname = "quickcheck-lockstep"; - version = "0.5.0"; - sha256 = "0ap8qgv33a6rwvvplmmf2hh68hk257l0maznkvlmi7cds6z90bk4"; - revision = "1"; - editedCabalFile = "19iqirk5k92l8k04clppvv84i0z9kfvbffk0jwvljs4jn35qx5mq"; + version = "0.5.1"; + sha256 = "0dsklypvflwgaj6fdh52sw2bzznz1kmmcdbs39nsjji7bkbn7gqp"; libraryHaskellDepends = [ base constraints containers mtl QuickCheck quickcheck-dynamic ]; @@ -254770,23 +255215,25 @@ self: { }) {}; "rails-session" = callPackage - ({ mkDerivation, base, base-compat, base16-bytestring - , base64-bytestring, bytestring, containers, cryptonite, filepath - , hspec, http-types, pbkdf, ruby-marshal, semigroups, string-conv - , tasty, tasty-hspec, transformers, vector + ({ mkDerivation, aeson, aeson-qq, base, base-compat + , base16-bytestring, base64-bytestring, bytestring, containers + , crypton, filepath, hspec, http-types, memory, pbkdf, ruby-marshal + , semigroups, string-conv, tasty, tasty-hspec, text, transformers + , vector }: mkDerivation { pname = "rails-session"; - version = "0.1.3.0"; - sha256 = "0fybpyg5si9rizifxdghilffvqmszm8h7w5v8b7xdmsw1i5gv56m"; + version = "0.1.4.0"; + sha256 = "1gmy0xf7fsjaadmawzssaas7ngwgil9sgnw7s0xhqx1kxz2860sz"; + enableSeparateDataOutput = true; libraryHaskellDepends = [ - base base-compat base16-bytestring base64-bytestring bytestring - containers cryptonite http-types pbkdf ruby-marshal string-conv - vector + aeson base base-compat base16-bytestring base64-bytestring + bytestring containers crypton http-types memory pbkdf ruby-marshal + string-conv text vector ]; testHaskellDepends = [ - base bytestring filepath hspec ruby-marshal semigroups tasty - tasty-hspec transformers vector + aeson aeson-qq base bytestring filepath hspec ruby-marshal + semigroups tasty tasty-hspec text transformers vector ]; description = "Decrypt Ruby on Rails sessions in Haskell"; license = lib.licenses.bsd3; @@ -254959,6 +255406,8 @@ self: { pname = "ral"; version = "0.2.2"; sha256 = "1c301l9mcq86wkgb4x8vhjrzb0nmv75dsixg5bgmwqp8rbh0xis6"; + revision = "1"; + editedCabalFile = "1j3fqas4xxjs59x8flgm7y7hd21cxs3ahx2zgx5294f844bgkjxb"; libraryHaskellDepends = [ adjunctions base bin boring deepseq distributive fin hashable indexed-traversable QuickCheck semigroupoids @@ -256575,6 +257024,48 @@ self: { hydraPlatforms = lib.platforms.none; }) {}; + "rds-data" = callPackage + ({ mkDerivation, aeson, aeson-pretty, amazonka, amazonka-core + , amazonka-rds, amazonka-rds-data, amazonka-secretsmanager, base + , base64-bytestring, bytestring, contravariant, generic-lens + , hedgehog, hedgehog-extras, http-client, hw-polysemy, microlens + , mtl, optparse-applicative, polysemy-log, polysemy-plugin + , polysemy-time, resourcet, stm, tasty, tasty-discover + , tasty-hedgehog, testcontainers, text, time, transformers, ulid + , uuid + }: + mkDerivation { + pname = "rds-data"; + version = "0.0.0.2"; + sha256 = "1gfqxffl7fncmwriyrc328imkv98vwls4jdva5klgaw3gwrq1l2x"; + isLibrary = false; + isExecutable = true; + libraryHaskellDepends = [ + aeson amazonka amazonka-core amazonka-rds amazonka-rds-data + amazonka-secretsmanager base base64-bytestring bytestring + contravariant generic-lens hw-polysemy microlens mtl polysemy-log + polysemy-plugin text time transformers ulid uuid + ]; + executableHaskellDepends = [ + aeson amazonka amazonka-rds-data base bytestring generic-lens + hedgehog http-client hw-polysemy microlens optparse-applicative + polysemy-log polysemy-plugin polysemy-time resourcet stm + testcontainers text time ulid uuid + ]; + testHaskellDepends = [ + aeson aeson-pretty amazonka amazonka-core amazonka-rds + amazonka-rds-data amazonka-secretsmanager base base64-bytestring + bytestring generic-lens hedgehog hedgehog-extras hw-polysemy + microlens polysemy-log polysemy-plugin tasty tasty-discover + tasty-hedgehog testcontainers text time ulid uuid + ]; + testToolDepends = [ tasty-discover ]; + doHaddock = false; + description = "Codecs for use with AWS rds-data"; + license = lib.licenses.bsd3; + mainProgram = "rds-data"; + }) {}; + "rds-data-codecs" = callPackage ({ mkDerivation, aeson, aeson-pretty, amazonka, amazonka-core , amazonka-rds-data, base, bytestring, contravariant, doctest @@ -256816,8 +257307,8 @@ self: { pname = "reactive-banana"; version = "1.3.2.0"; sha256 = "0mrsw3hkl0sgwcbay4m1lzs4bilss80g9p6njbbhapbfjyzsr36k"; - revision = "3"; - editedCabalFile = "0gwky9jadzy025w1d4r3k1kf8g1i4y0v15j8di14402gzpin9n4j"; + revision = "4"; + editedCabalFile = "1nijajqvp7i5jq99y9c3z969ljgagkarpn5ikbd3bir2msz54pyn"; libraryHaskellDepends = [ base containers deepseq hashable pqueue semigroups stm these transformers unordered-containers vault @@ -259462,17 +259953,17 @@ self: { "reflex-sdl2" = callPackage ({ mkDerivation, async, base, containers, dependent-sum - , exception-transformers, mtl, primitive, ref-tf, reflex, sdl2, stm + , exception-transformers, mtl, ref-tf, reflex, sdl2, stm }: mkDerivation { pname = "reflex-sdl2"; - version = "0.3.0.0"; - sha256 = "1mjynfdxnjdd308jp2gcpl8x00pmzshm81ramls7hzmkkvfm2xdb"; + version = "0.3.0.3"; + sha256 = "10lc0arzn2sxb69sah13fkn4zd2hsj2gwnblr4djzwzap409xiyh"; isLibrary = true; isExecutable = true; libraryHaskellDepends = [ async base containers dependent-sum exception-transformers mtl - primitive ref-tf reflex sdl2 stm + ref-tf reflex sdl2 stm ]; executableHaskellDepends = [ base mtl reflex ]; description = "SDL2 and reflex FRP"; @@ -263006,6 +263497,32 @@ self: { pname = "rest-rewrite"; version = "0.4.3"; sha256 = "0rvqagskkibwadqdkfqqjp0vrdxfn1hnb6g27ps7h160knygaa1d"; + revision = "1"; + editedCabalFile = "0m0m3brlxx945lrr34wpmn5jgzdpw9ck0qxj23s8av4rlh1a9hx1"; + libraryHaskellDepends = [ + base containers hashable monad-loops mtl parsec process QuickCheck + text time unordered-containers + ]; + testHaskellDepends = [ + base containers hashable mtl QuickCheck text time + unordered-containers + ]; + testSystemDepends = [ graphviz z3 ]; + doHaddock = false; + description = "Rewriting library with online termination checking"; + license = lib.licenses.bsd3; + maintainers = [ lib.maintainers.tbidne ]; + }) {inherit (pkgs) graphviz; inherit (pkgs) z3;}; + + "rest-rewrite_0_4_4" = callPackage + ({ mkDerivation, base, containers, graphviz, hashable, monad-loops + , mtl, parsec, process, QuickCheck, text, time + , unordered-containers, z3 + }: + mkDerivation { + pname = "rest-rewrite"; + version = "0.4.4"; + sha256 = "03jn5wclljkfdj1nvzbs5jvgsh343g1qr864pivgmxbc5ngrdk91"; libraryHaskellDepends = [ base containers hashable monad-loops mtl parsec process QuickCheck text time unordered-containers @@ -263018,6 +263535,7 @@ self: { doHaddock = false; description = "Rewriting library with online termination checking"; license = lib.licenses.bsd3; + hydraPlatforms = lib.platforms.none; maintainers = [ lib.maintainers.tbidne ]; }) {inherit (pkgs) graphviz; inherit (pkgs) z3;}; @@ -264387,8 +264905,8 @@ self: { }: mkDerivation { pname = "ridley"; - version = "0.3.4.1"; - sha256 = "03y25hcmh38psf5gs28aa21ibkcg16d3kk2xmv073v50b14dxysr"; + version = "0.4.0.0"; + sha256 = "0g6bxxmlnlcbic8v91wah5xw0a1b4fy81y328j49dyi3xcf88nka"; isLibrary = true; isExecutable = true; libraryHaskellDepends = [ @@ -266875,8 +267393,8 @@ self: { pname = "ruby-marshal"; version = "0.2.1"; sha256 = "18kdagf0lyghpaffzgw42ql1wrqkh13rfqjpj23i09i67pqrv3lk"; - revision = "1"; - editedCabalFile = "0f3jdq5ca12mbgawziakl0bw14gy1ycmvyp4ljffsghcg5fghxg9"; + revision = "2"; + editedCabalFile = "0sm6gk2v7f3hsr5y22g35bl2fdia5827bfk8pnrv3sf61fjh6mrd"; libraryHaskellDepends = [ base bytestring cereal containers fail mtl string-conv vector ]; @@ -269338,7 +269856,7 @@ self: { license = lib.licenses.mit; }) {}; - "sbp_6_0_1" = callPackage + "sbp_6_1_0" = callPackage ({ mkDerivation, aeson, aeson-pretty, array, base , base64-bytestring, basic-prelude, binary, binary-conduit , bytestring, cmdargs, conduit, conduit-extra, data-binary-ieee754 @@ -269347,8 +269865,8 @@ self: { }: mkDerivation { pname = "sbp"; - version = "6.0.1"; - sha256 = "12q23hdj8xddq9kq73nqf50qwdazqlv6xrb0dyxs5xg3kvlpccwq"; + version = "6.1.0"; + sha256 = "1ihnsxil3f1fccm6zf3daiw12qblmxmrpfs6spqnh2jfyxgmrmkx"; isLibrary = true; isExecutable = true; libraryHaskellDepends = [ @@ -272013,15 +272531,15 @@ self: { license = lib.licenses.mit; }) {inherit (pkgs) secp256k1;}; - "secp256k1-haskell_1_2_0" = callPackage + "secp256k1-haskell_1_4_0" = callPackage ({ mkDerivation, base, base16, bytestring, deepseq, entropy , hashable, hspec, hspec-discover, HUnit, monad-par, mtl , QuickCheck, secp256k1, string-conversions, unliftio-core }: mkDerivation { pname = "secp256k1-haskell"; - version = "1.2.0"; - sha256 = "1lr2sq8r3sx41f99pvga9ck0vw0sy7034zra80gxq1hnifjnd5q3"; + version = "1.4.0"; + sha256 = "1nba3f1952p229wbjmbpx80h212mmf1njvyxikiw9c4vpkfksx8b"; libraryHaskellDepends = [ base base16 bytestring deepseq entropy hashable QuickCheck string-conversions unliftio-core @@ -273339,6 +273857,30 @@ self: { license = lib.licenses.gpl3Only; }) {}; + "sequence-formats_1_8_1_1" = callPackage + ({ mkDerivation, attoparsec, base, bytestring, containers, errors + , exceptions, foldl, hspec, lens-family, pipes, pipes-attoparsec + , pipes-bytestring, pipes-safe, pipes-zlib, tasty, tasty-hunit + , transformers, vector + }: + mkDerivation { + pname = "sequence-formats"; + version = "1.8.1.1"; + sha256 = "09k7iqi1cjynxvdqihg6p98isx9i7z3xiw5h9gll5d2hyz040vya"; + libraryHaskellDepends = [ + attoparsec base bytestring containers errors exceptions foldl + lens-family pipes pipes-attoparsec pipes-bytestring pipes-safe + pipes-zlib transformers vector + ]; + testHaskellDepends = [ + base bytestring containers foldl hspec pipes pipes-safe tasty + tasty-hunit transformers vector + ]; + description = "A package with basic parsing utilities for several Bioinformatic data formats"; + license = lib.licenses.gpl3Only; + hydraPlatforms = lib.platforms.none; + }) {}; + "sequenceTools" = callPackage ({ mkDerivation, ansi-wl-pprint, base, bytestring, foldl, hspec , lens-family, optparse-applicative, pipes, pipes-group @@ -273735,6 +274277,33 @@ self: { license = lib.licenses.bsd3; }) {}; + "servant_0_20_2" = callPackage + ({ mkDerivation, aeson, attoparsec, base, bifunctors, bytestring + , case-insensitive, constraints, containers, deepseq, hspec + , hspec-discover, http-api-data, http-media, http-types, mmorph + , mtl, network-uri, QuickCheck, quickcheck-instances + , singleton-bool, sop-core, text, transformers, vault + }: + mkDerivation { + pname = "servant"; + version = "0.20.2"; + sha256 = "0rakyjrmn05sb2gxk4bkxlb23zfwm1pjkdg9mh7b4hjgsdwy4fba"; + libraryHaskellDepends = [ + aeson attoparsec base bifunctors bytestring case-insensitive + constraints containers deepseq http-api-data http-media http-types + mmorph mtl network-uri QuickCheck singleton-bool sop-core text + transformers vault + ]; + testHaskellDepends = [ + aeson base bytestring hspec http-media mtl QuickCheck + quickcheck-instances text + ]; + testToolDepends = [ hspec-discover ]; + description = "A family of combinators for defining webservices APIs"; + license = lib.licenses.bsd3; + hydraPlatforms = lib.platforms.none; + }) {}; + "servant-JuicyPixels" = callPackage ({ mkDerivation, base, bytestring, http-media, JuicyPixels, servant , servant-server, wai, warp @@ -273850,6 +274419,22 @@ self: { license = lib.licenses.bsd3; }) {}; + "servant-auth_0_4_2_0" = callPackage + ({ mkDerivation, aeson, base, containers, jose, lens, servant, text + , unordered-containers + }: + mkDerivation { + pname = "servant-auth"; + version = "0.4.2.0"; + sha256 = "0h71v9n3vd1ca9kav2b6w53wnk950hxlgp3hcnhyk7yd9aph4nwx"; + libraryHaskellDepends = [ + aeson base containers jose lens servant text unordered-containers + ]; + description = "Authentication combinators for servant"; + license = lib.licenses.bsd3; + hydraPlatforms = lib.platforms.none; + }) {}; + "servant-auth-client" = callPackage ({ mkDerivation, aeson, base, bytestring, containers, hspec , hspec-discover, http-client, http-types, jose, QuickCheck @@ -273876,6 +274461,31 @@ self: { license = lib.licenses.bsd3; }) {}; + "servant-auth-client_0_4_2_0" = callPackage + ({ mkDerivation, aeson, base, bytestring, containers, hspec + , hspec-discover, http-client, http-types, jose, QuickCheck + , servant, servant-auth, servant-auth-server, servant-client + , servant-client-core, servant-server, time, transformers, wai + , warp + }: + mkDerivation { + pname = "servant-auth-client"; + version = "0.4.2.0"; + sha256 = "1pvqiygnwnkj6y4mi03qnpjlp305cjmpzp7nrqmc2p6qwnl2l4q9"; + libraryHaskellDepends = [ + base bytestring containers servant servant-auth servant-client-core + ]; + testHaskellDepends = [ + aeson base bytestring hspec http-client http-types jose QuickCheck + servant servant-auth servant-auth-server servant-client + servant-server time transformers wai warp + ]; + testToolDepends = [ hspec-discover ]; + description = "servant-client/servant-auth compatibility"; + license = lib.licenses.bsd3; + hydraPlatforms = lib.platforms.none; + }) {}; + "servant-auth-cookie" = callPackage ({ mkDerivation, base, base64-bytestring, blaze-builder, bytestring , cereal, cereal-time, cookie, criterion, cryptonite, data-default @@ -273932,6 +274542,29 @@ self: { license = lib.licenses.bsd3; }) {}; + "servant-auth-docs_0_2_11_0" = callPackage + ({ mkDerivation, base, Cabal, cabal-doctest, doctest, hspec + , hspec-discover, lens, QuickCheck, servant, servant-auth + , servant-docs, template-haskell, text + }: + mkDerivation { + pname = "servant-auth-docs"; + version = "0.2.11.0"; + sha256 = "127w2ggii2vqs60cnd5ir4azyrxnm7mhfydi156liykk2v8jkkaj"; + setupHaskellDepends = [ base Cabal cabal-doctest ]; + libraryHaskellDepends = [ + base lens servant servant-auth servant-docs + ]; + testHaskellDepends = [ + base doctest hspec lens QuickCheck servant servant-auth + servant-docs template-haskell text + ]; + testToolDepends = [ hspec-discover ]; + description = "servant-docs/servant-auth compatibility"; + license = lib.licenses.bsd3; + hydraPlatforms = lib.platforms.none; + }) {}; + "servant-auth-hmac" = callPackage ({ mkDerivation, aeson, attoparsec, base, base64-bytestring , blaze-html, blaze-markup, bytestring, case-insensitive, cereal @@ -274001,6 +274634,36 @@ self: { broken = true; }) {}; + "servant-auth-server_0_4_9_0" = callPackage + ({ mkDerivation, aeson, base, base64-bytestring, blaze-builder + , bytestring, case-insensitive, cookie, data-default-class, entropy + , hspec, hspec-discover, http-client, http-types, jose, lens + , lens-aeson, markdown-unlit, memory, monad-time, mtl, QuickCheck + , servant, servant-auth, servant-server, tagged, text, time + , transformers, unordered-containers, wai, warp, wreq + }: + mkDerivation { + pname = "servant-auth-server"; + version = "0.4.9.0"; + sha256 = "0fhk2z9n9ax4g7iisdgcd87wgj9wvazhl86kjh364gsj1g8a5y99"; + libraryHaskellDepends = [ + aeson base base64-bytestring blaze-builder bytestring + case-insensitive cookie data-default-class entropy http-types jose + lens memory monad-time mtl servant servant-auth servant-server + tagged text time unordered-containers wai + ]; + testHaskellDepends = [ + aeson base bytestring case-insensitive hspec http-client http-types + jose lens lens-aeson mtl QuickCheck servant servant-auth + servant-server text time transformers wai warp wreq + ]; + testToolDepends = [ hspec-discover markdown-unlit ]; + description = "servant-server/servant-auth compatibility"; + license = lib.licenses.bsd3; + hydraPlatforms = lib.platforms.none; + broken = true; + }) {}; + "servant-auth-swagger" = callPackage ({ mkDerivation, base, hspec, hspec-discover, lens, QuickCheck , servant, servant-auth, servant-swagger, swagger2, text @@ -274023,6 +274686,27 @@ self: { license = lib.licenses.bsd3; }) {}; + "servant-auth-swagger_0_2_11_0" = callPackage + ({ mkDerivation, base, hspec, hspec-discover, lens, QuickCheck + , servant, servant-auth, servant-swagger, swagger2, text + }: + mkDerivation { + pname = "servant-auth-swagger"; + version = "0.2.11.0"; + sha256 = "1h5ckkai4qxz9c2a62l2lv0ss8az5j1lwyzs4g652zffrgx9qk28"; + libraryHaskellDepends = [ + base lens servant servant-auth servant-swagger swagger2 text + ]; + testHaskellDepends = [ + base hspec lens QuickCheck servant servant-auth servant-swagger + swagger2 text + ]; + testToolDepends = [ hspec-discover ]; + description = "servant-swagger/servant-auth compatibility"; + license = lib.licenses.bsd3; + hydraPlatforms = lib.platforms.none; + }) {}; + "servant-auth-token" = callPackage ({ mkDerivation, aeson-injector, base, byteable, bytestring , containers, http-api-data, mtl, pwstore-fast, servant @@ -274354,6 +275038,37 @@ self: { license = lib.licenses.bsd3; }) {}; + "servant-client_0_20_2" = callPackage + ({ mkDerivation, aeson, base, base-compat, bytestring, containers + , deepseq, entropy, exceptions, hspec, hspec-discover + , http-api-data, http-client, http-media, http-types, HUnit + , kan-extensions, markdown-unlit, monad-control, mtl, network + , QuickCheck, semigroupoids, servant, servant-client-core + , servant-server, sop-core, stm, text, time, transformers + , transformers-base, wai, warp + }: + mkDerivation { + pname = "servant-client"; + version = "0.20.2"; + sha256 = "026bp0qk2bx672834yjxmqrfacyzzdssm89bd0niz1xzxzmw5r7g"; + libraryHaskellDepends = [ + base base-compat bytestring containers deepseq exceptions + http-client http-media http-types kan-extensions monad-control mtl + semigroupoids servant servant-client-core stm time transformers + transformers-base + ]; + testHaskellDepends = [ + aeson base base-compat bytestring entropy hspec http-api-data + http-client http-types HUnit markdown-unlit mtl network QuickCheck + servant servant-client-core servant-server sop-core stm text + transformers wai warp + ]; + testToolDepends = [ hspec-discover markdown-unlit ]; + description = "Automatic derivation of querying functions for servant"; + license = lib.licenses.bsd3; + hydraPlatforms = lib.platforms.none; + }) {}; + "servant-client-core" = callPackage ({ mkDerivation, aeson, base, base-compat, base64-bytestring , bytestring, constraints, containers, deepseq, exceptions, free @@ -274379,6 +275094,28 @@ self: { license = lib.licenses.bsd3; }) {}; + "servant-client-core_0_20_2" = callPackage + ({ mkDerivation, aeson, base, base-compat, base64-bytestring + , bytestring, constraints, containers, deepseq, exceptions, free + , hspec, hspec-discover, http-media, http-types, network-uri + , QuickCheck, safe, servant, sop-core, template-haskell, text + }: + mkDerivation { + pname = "servant-client-core"; + version = "0.20.2"; + sha256 = "10nv810ns8v1d9a2fkg9bgi7h9gm4yap1y6mg2r15d569i27rrvc"; + libraryHaskellDepends = [ + aeson base base-compat base64-bytestring bytestring constraints + containers deepseq exceptions free http-media http-types + network-uri safe servant sop-core template-haskell text + ]; + testHaskellDepends = [ base base-compat deepseq hspec QuickCheck ]; + testToolDepends = [ hspec-discover ]; + description = "Core functionality and class for client function generation for servant APIs"; + license = lib.licenses.bsd3; + hydraPlatforms = lib.platforms.none; + }) {}; + "servant-client-js" = callPackage ({ mkDerivation, base, binary, bytestring, case-insensitive , containers, exceptions, http-media, http-types, jsaddle @@ -274470,6 +275207,27 @@ self: { license = lib.licenses.bsd3; }) {}; + "servant-conduit_0_16_1" = callPackage + ({ mkDerivation, base, base-compat, bytestring, conduit + , http-client, http-media, mtl, resourcet, servant, servant-client + , servant-server, unliftio-core, wai, warp + }: + mkDerivation { + pname = "servant-conduit"; + version = "0.16.1"; + sha256 = "0qxddrkqbglb1ifrcjg8bx86in0na3pmsvgb5q5486bzzsximl48"; + libraryHaskellDepends = [ + base bytestring conduit mtl resourcet servant unliftio-core + ]; + testHaskellDepends = [ + base base-compat bytestring conduit http-client http-media + resourcet servant servant-client servant-server wai warp + ]; + description = "Servant Stream support for conduit"; + license = lib.licenses.bsd3; + hydraPlatforms = lib.platforms.none; + }) {}; + "servant-csharp" = callPackage ({ mkDerivation, aeson, base, bytestring, directory, filepath , heredocs, http-types, lens, mtl, servant, servant-foreign @@ -274583,6 +275341,36 @@ self: { mainProgram = "greet-docs"; }) {}; + "servant-docs_0_13_1" = callPackage + ({ mkDerivation, aeson, aeson-pretty, base, base-compat, bytestring + , case-insensitive, hashable, http-media, http-types, lens, servant + , string-conversions, tasty, tasty-golden, tasty-hunit, text + , transformers, universe-base, unordered-containers + }: + mkDerivation { + pname = "servant-docs"; + version = "0.13.1"; + sha256 = "1gdv5yrdqfsb4am8rn9fj7gl4f1nswlcbqnp6kc33j5z0mv35z4y"; + isLibrary = true; + isExecutable = true; + libraryHaskellDepends = [ + aeson aeson-pretty base base-compat bytestring case-insensitive + hashable http-media http-types lens servant string-conversions text + universe-base unordered-containers + ]; + executableHaskellDepends = [ + aeson base lens servant string-conversions text + ]; + testHaskellDepends = [ + aeson base base-compat lens servant string-conversions tasty + tasty-golden tasty-hunit transformers + ]; + description = "generate API docs for your servant webservice"; + license = lib.licenses.bsd3; + hydraPlatforms = lib.platforms.none; + mainProgram = "greet-docs"; + }) {}; + "servant-docs-simple" = callPackage ({ mkDerivation, aeson, aeson-pretty, base, bytestring, hspec , hspec-core, prettyprinter, raw-strings-qq, servant, text @@ -274820,6 +275608,24 @@ self: { license = lib.licenses.bsd3; }) {}; + "servant-foreign_0_16_1" = callPackage + ({ mkDerivation, base, base-compat, hspec, hspec-discover + , http-types, lens, servant, text + }: + mkDerivation { + pname = "servant-foreign"; + version = "0.16.1"; + sha256 = "15a5cfiihmav7yq6nfp5f365649q054nk02hpf3lsaw8alpbivpp"; + libraryHaskellDepends = [ + base base-compat http-types lens servant text + ]; + testHaskellDepends = [ base hspec servant ]; + testToolDepends = [ hspec-discover ]; + description = "Helpers for generating clients for servant APIs in any programming language"; + license = lib.licenses.bsd3; + hydraPlatforms = lib.platforms.none; + }) {}; + "servant-gdp" = callPackage ({ mkDerivation, aeson, base, gdp, servant-server, text }: mkDerivation { @@ -275023,6 +275829,40 @@ self: { broken = true; }) {}; + "servant-http-streams_0_20_2" = callPackage + ({ mkDerivation, aeson, base, base-compat, bytestring + , case-insensitive, containers, deepseq, entropy, exceptions, hspec + , hspec-discover, http-api-data, http-common, http-media + , http-streams, http-types, HUnit, io-streams, kan-extensions + , markdown-unlit, monad-control, mtl, network, QuickCheck + , semigroupoids, servant, servant-client-core, servant-server, stm + , text, time, transformers, transformers-base, transformers-compat + , wai, warp + }: + mkDerivation { + pname = "servant-http-streams"; + version = "0.20.2"; + sha256 = "029i6rqmj6q5fn32vimr92rwgfb0c5l5cm19ncrw48nh78pgp0zm"; + libraryHaskellDepends = [ + base base-compat bytestring case-insensitive containers deepseq + exceptions http-common http-media http-streams http-types + io-streams kan-extensions monad-control mtl semigroupoids servant + servant-client-core text time transformers transformers-base + transformers-compat + ]; + testHaskellDepends = [ + aeson base base-compat bytestring deepseq entropy hspec + http-api-data http-streams http-types HUnit kan-extensions + markdown-unlit mtl network QuickCheck servant servant-client-core + servant-server stm text transformers transformers-compat wai warp + ]; + testToolDepends = [ hspec-discover markdown-unlit ]; + description = "Automatic derivation of querying functions for servant"; + license = lib.licenses.bsd3; + hydraPlatforms = lib.platforms.none; + broken = true; + }) {}; + "servant-http2-client" = callPackage ({ mkDerivation, aeson, async, base, binary, bytestring , case-insensitive, containers, data-default-class, exceptions @@ -275189,6 +276029,26 @@ self: { broken = true; }) {}; + "servant-lint" = callPackage + ({ mkDerivation, base, bytestring, containers, safe-coloured-text + , servant, servant-server, sydtest, text + }: + mkDerivation { + pname = "servant-lint"; + version = "0.1.0.0"; + sha256 = "1y9fc8kp8mclxm0njpdn121k7qa4f4vnwkcxr658pd26g34daqqk"; + libraryHaskellDepends = [ + base bytestring containers safe-coloured-text servant + servant-server text + ]; + testHaskellDepends = [ + base bytestring containers safe-coloured-text servant + servant-server sydtest text + ]; + description = "Lint Servant Routes"; + license = lib.licenses.bsd3; + }) {}; + "servant-lucid" = callPackage ({ mkDerivation, base, http-media, lucid, servant, servant-server , text, wai, warp @@ -275225,6 +276085,25 @@ self: { license = lib.licenses.bsd3; }) {}; + "servant-machines_0_16_1" = callPackage + ({ mkDerivation, base, base-compat, bytestring, http-client + , http-media, machines, mtl, servant, servant-client + , servant-server, wai, warp + }: + mkDerivation { + pname = "servant-machines"; + version = "0.16.1"; + sha256 = "0qhy99bx9lv35jpz5k19391z2ph91a7yp8z3ffcsc6lj4gd5nnak"; + libraryHaskellDepends = [ base bytestring machines mtl servant ]; + testHaskellDepends = [ + base base-compat bytestring http-client http-media machines servant + servant-client servant-server wai warp + ]; + description = "Servant Stream support for machines"; + license = lib.licenses.bsd3; + hydraPlatforms = lib.platforms.none; + }) {}; + "servant-match" = callPackage ({ mkDerivation, base, bytestring, hspec, http-types, network-uri , servant, text, utf8-string @@ -275572,6 +276451,28 @@ self: { license = lib.licenses.bsd3; }) {}; + "servant-pipes_0_16_1" = callPackage + ({ mkDerivation, base, base-compat, bytestring, http-client + , http-media, monad-control, mtl, pipes, pipes-bytestring + , pipes-safe, servant, servant-client, servant-server, wai, warp + }: + mkDerivation { + pname = "servant-pipes"; + version = "0.16.1"; + sha256 = "0n5l2dwnp0p8gjnz05rqiwxbn0qvngkrlc76ywvampvp1m4kbmhl"; + libraryHaskellDepends = [ + base bytestring monad-control mtl pipes pipes-safe servant + ]; + testHaskellDepends = [ + base base-compat bytestring http-client http-media pipes + pipes-bytestring pipes-safe servant servant-client servant-server + wai warp + ]; + description = "Servant Stream support for pipes"; + license = lib.licenses.bsd3; + hydraPlatforms = lib.platforms.none; + }) {}; + "servant-polysemy" = callPackage ({ mkDerivation, base, deepseq, http-client, http-client-tls, lens , mtl, polysemy, polysemy-plugin, polysemy-zoo, servant @@ -275818,8 +276719,8 @@ self: { }: mkDerivation { pname = "servant-quickcheck"; - version = "0.1.0.0"; - sha256 = "0bb6h0x1hcms10qmwxka7b6y8b1pigwa639sw0n1dn2jipzwxbla"; + version = "0.1.1.0"; + sha256 = "0hzfwqxbcgf9mxzlhw53pv99jxlpib56xjsnh8yw15j2pgb908qs"; libraryHaskellDepends = [ aeson base base-compat-batteries bytestring case-insensitive clock data-default-class hspec http-client http-media http-types mtl @@ -276142,6 +277043,42 @@ self: { mainProgram = "greet"; }) {}; + "servant-server_0_20_2" = callPackage + ({ mkDerivation, aeson, base, base-compat, base64-bytestring + , bytestring, constraints, containers, directory, exceptions + , filepath, hspec, hspec-discover, hspec-wai, http-api-data + , http-media, http-types, monad-control, mtl, network, resourcet + , safe, servant, should-not-typecheck, sop-core, tagged, temporary + , text, transformers, transformers-base, wai, wai-app-static + , wai-extra, warp, word8 + }: + mkDerivation { + pname = "servant-server"; + version = "0.20.2"; + sha256 = "0fqgnzzgbj4w441h3v841lav7gxazakz04s354r24pq4rh6m1kqy"; + isLibrary = true; + isExecutable = true; + libraryHaskellDepends = [ + base base64-bytestring bytestring constraints containers exceptions + filepath http-api-data http-media http-types monad-control mtl + network resourcet servant sop-core tagged text transformers + transformers-base wai wai-app-static word8 + ]; + executableHaskellDepends = [ + aeson base base-compat text wai warp + ]; + testHaskellDepends = [ + aeson base base-compat base64-bytestring bytestring directory hspec + hspec-wai http-types mtl resourcet safe servant + should-not-typecheck temporary text wai wai-extra + ]; + testToolDepends = [ hspec-discover ]; + description = "A family of combinators for defining webservices APIs and serving them"; + license = lib.licenses.bsd3; + hydraPlatforms = lib.platforms.none; + mainProgram = "greet"; + }) {}; + "servant-server-namedargs" = callPackage ({ mkDerivation, base, bytestring, http-api-data, http-types, named , servant, servant-namedargs, servant-server, string-conversions @@ -276446,6 +277383,35 @@ self: { license = lib.licenses.bsd3; }) {}; + "servant-swagger_1_2_1" = callPackage + ({ mkDerivation, aeson, aeson-pretty, base, base-compat, bytestring + , Cabal, cabal-doctest, directory, doctest, filepath, hspec + , hspec-discover, http-media, insert-ordered-containers, lens + , lens-aeson, QuickCheck, servant, singleton-bool, swagger2 + , template-haskell, text, time, unordered-containers, utf8-string + , vector + }: + mkDerivation { + pname = "servant-swagger"; + version = "1.2.1"; + sha256 = "18cvybmmp8cp8scpb7hncgn8jra8v82mby1bibysn6xbjy5pqlxq"; + setupHaskellDepends = [ base Cabal cabal-doctest ]; + libraryHaskellDepends = [ + aeson aeson-pretty base base-compat bytestring hspec http-media + insert-ordered-containers lens QuickCheck servant singleton-bool + swagger2 text unordered-containers + ]; + testHaskellDepends = [ + aeson base base-compat directory doctest filepath hspec lens + lens-aeson QuickCheck servant swagger2 template-haskell text time + utf8-string vector + ]; + testToolDepends = [ hspec-discover ]; + description = "Generate a Swagger/OpenAPI/OAS 2.0 specification for your servant API."; + license = lib.licenses.bsd3; + hydraPlatforms = lib.platforms.none; + }) {}; + "servant-swagger-tags" = callPackage ({ mkDerivation, base, insert-ordered-containers, lens, servant , servant-mock, servant-server, servant-swagger, swagger2, text @@ -277074,8 +278040,8 @@ self: { }: mkDerivation { pname = "serversession-backend-persistent"; - version = "2.0.1"; - sha256 = "1x08a5xhg2f48hjj651gchn17k7fg1n4a64vmyzy2ps2xrgqr2sy"; + version = "2.0.2"; + sha256 = "19jsswwc38514fqg2asshsvx1x3zx930887k63my4dmidyvvqmwd"; libraryHaskellDepends = [ aeson base base64-bytestring bytestring cereal path-pieces persistent serversession tagged text time transformers @@ -294280,6 +295246,19 @@ self: { license = lib.licenses.mit; }) {}; + "strict-mutable-base" = callPackage + ({ mkDerivation, base, deepseq }: + mkDerivation { + pname = "strict-mutable-base"; + version = "1.0.0.0"; + sha256 = "06d46902d79ryg7yy2zc973mgjdr3rc2i486xs6f8lhnrlwq9v3n"; + revision = "1"; + editedCabalFile = "1nqhm00lr9ashsjd38dwax2mn228kqjqshqx39plsjnf25kri5xq"; + libraryHaskellDepends = [ base deepseq ]; + description = "Strict variants of mutable data types from base"; + license = lib.licenses.bsd3; + }) {}; + "strict-mvar" = callPackage ({ mkDerivation, base, io-classes, io-sim, nothunks, QuickCheck , tasty, tasty-quickcheck @@ -294326,6 +295305,8 @@ self: { pname = "strict-tuple"; version = "0.1.5.4"; sha256 = "1znx5lmi7lgn4jzkr73lsc2xac0ypl65bx0pa1hxrc4c74ilysbk"; + revision = "1"; + editedCabalFile = "05s4z3crwb0akjfgcgrqrmzd690wn5s765srhmwdg6b1is8zm1zn"; libraryHaskellDepends = [ base bifunctors deepseq hashable ]; testHaskellDepends = [ base ]; description = "Strict tuples"; @@ -296945,8 +297926,8 @@ self: { pname = "svg-builder"; version = "0.1.1"; sha256 = "1k420f497lzkymmxin88ql6ib8dziic43avykv31yq65rgrf7l2g"; - revision = "9"; - editedCabalFile = "0ca6bgv5xrk6pz12j35jv1gbp06z6kk7fs7nc1bwjjxy6c6x4vm5"; + revision = "10"; + editedCabalFile = "1a57i9fgmjaz2m68i21dp6hi1qwfmza0d1rcygvq61sxrr9gvfpr"; libraryHaskellDepends = [ base blaze-builder bytestring hashable text unordered-containers ]; @@ -296975,8 +297956,8 @@ self: { ({ mkDerivation, base, blaze-markup, blaze-svg, directory, text }: mkDerivation { pname = "svg-icons"; - version = "3.9"; - sha256 = "1iyj0g9plzvih50j9sx41dpksj4avllr9csf8sp577zrq334r1l1"; + version = "3.10"; + sha256 = "15sgf8k8akvgv8xb884l9g5iydfybgp1l6aqndi749qpl8qy5a46"; isLibrary = true; isExecutable = true; libraryHaskellDepends = [ @@ -303347,8 +304328,8 @@ self: { }: mkDerivation { pname = "telegram-bot-simple"; - version = "0.14.1"; - sha256 = "0v025wkhjnxjqzisj3x1gfv1qk9c17j2czdf0iv5fsxdkz2vc949"; + version = "0.14.2"; + sha256 = "10jwvx6m8zqzicfy3iyc9igxlnzyd8h320280q9s53420gzfpdf4"; isLibrary = true; isExecutable = true; libraryHaskellDepends = [ @@ -304339,19 +305320,17 @@ self: { }) {}; "tensort" = callPackage - ({ mkDerivation, base, mtl, QuickCheck, random, random-shuffle - , time - }: + ({ mkDerivation, base, mtl, QuickCheck, random, random-shuffle }: mkDerivation { pname = "tensort"; - version = "0.2.0.3"; - sha256 = "0qkm7iy00z13drs1f3fd3zl6cc45c7s2k8pn6ya7pmpji424dwiw"; + version = "1.0.1.2"; + sha256 = "1hg647gjx24g38vnnkg61i9i42dinf27j3rr80wqm6wrkl7jzxvd"; isLibrary = true; isExecutable = true; libraryHaskellDepends = [ base mtl random random-shuffle ]; - executableHaskellDepends = [ base time ]; + executableHaskellDepends = [ base ]; testHaskellDepends = [ base mtl QuickCheck ]; - description = "Tunable sorting for responsive robustness and beyond!"; + description = "Tunable sorting for responsive robustness and beyond"; license = lib.licenses.mit; mainProgram = "tensort"; }) {}; @@ -306088,6 +307067,8 @@ self: { pname = "text-iso8601"; version = "0.1.1"; sha256 = "00l2m3xj39mrz7lbmbnir4k9jbn3jm3xa2q6zkh0zr7arsvx5slx"; + revision = "1"; + editedCabalFile = "0gfpfvsnd06rpnqwb24cqzs9v80f4zn15in9aslvjyc45rnhzx8a"; libraryHaskellDepends = [ base integer-conversion text time time-compat ]; @@ -308859,6 +309840,32 @@ self: { hydraPlatforms = lib.platforms.none; }) {}; + "tiktoken" = callPackage + ({ mkDerivation, base, base64, bytestring, containers, deepseq + , filepath, megaparsec, pcre-light, quickcheck-instances + , raw-strings-qq, tasty, tasty-bench, tasty-quickcheck + , tasty-silver, text, unordered-containers + }: + mkDerivation { + pname = "tiktoken"; + version = "1.0.3"; + sha256 = "0hy3y9rdgjirk8ji7458qnc7h9d2b6yipfri25qkay96kq91kmj6"; + enableSeparateDataOutput = true; + libraryHaskellDepends = [ + base base64 bytestring containers deepseq filepath megaparsec + pcre-light raw-strings-qq text unordered-containers + ]; + testHaskellDepends = [ + base bytestring quickcheck-instances tasty tasty-quickcheck + tasty-silver text + ]; + benchmarkHaskellDepends = [ + base bytestring deepseq filepath tasty-bench + ]; + description = "Haskell implementation of tiktoken"; + license = lib.licenses.bsd3; + }) {}; + "tikzsd" = callPackage ({ mkDerivation, array, base, containers, lens, mtl, parsec , transformers @@ -309493,19 +310500,17 @@ self: { "timeline" = callPackage ({ mkDerivation, base, bytestring, containers, hashable, hedgehog - , indexed-traversable, semigroupoids, tasty, tasty-discover - , tasty-golden, tasty-hedgehog, tasty-hunit, template-haskell, text - , th-compat, time, transformers + , indexed-traversable, tasty, tasty-discover, tasty-golden + , tasty-hedgehog, tasty-hunit, template-haskell, text, th-compat + , time, transformers }: mkDerivation { pname = "timeline"; - version = "0.1.0.0"; - sha256 = "0ya56j51vgg380yylpakfgr5srv20ybiyy7yhfyxz21sdgz7f168"; - revision = "6"; - editedCabalFile = "0wn1mvgqh4b9yrgbcmz6yks51bsidj40irb6j1w3am20k7mdb6rq"; + version = "0.1.1.0"; + sha256 = "15npn5wfhdg2mcvr92n7c9k7jj1jcifm6rcpmyi64mcfsb2g1ry6"; libraryHaskellDepends = [ - base containers hedgehog indexed-traversable semigroupoids - template-haskell text th-compat time + base containers hedgehog indexed-traversable template-haskell text + th-compat time ]; testHaskellDepends = [ base bytestring containers hashable hedgehog indexed-traversable @@ -317110,6 +318115,28 @@ self: { license = lib.licenses.mit; }) {}; + "typed-process_0_2_12_0" = callPackage + ({ mkDerivation, async, base, base64-bytestring, bytestring, hspec + , hspec-discover, process, stm, temporary, transformers + , unliftio-core + }: + mkDerivation { + pname = "typed-process"; + version = "0.2.12.0"; + sha256 = "1q8v2vn1p2sygjym4aamfv53hyabq081aryf807p5pjix0x3vvjc"; + libraryHaskellDepends = [ + async base bytestring process stm transformers unliftio-core + ]; + testHaskellDepends = [ + async base base64-bytestring bytestring hspec process stm temporary + transformers unliftio-core + ]; + testToolDepends = [ hspec-discover ]; + description = "Run external processes, with strong typing of streams"; + license = lib.licenses.mit; + hydraPlatforms = lib.platforms.none; + }) {}; + "typed-process-effectful" = callPackage ({ mkDerivation, base, bytestring, effectful, effectful-core, tasty , tasty-hunit, typed-process @@ -317133,15 +318160,19 @@ self: { "typed-session" = callPackage ({ mkDerivation, base, containers, fused-effects , fused-effects-random, io-classes, io-sim, random + , template-haskell, typed-session-state-algorithm }: mkDerivation { pname = "typed-session"; - version = "0.1.0.0"; - sha256 = "172gsby1jpqvyqpfh6jjnq7crhqmac9ka9h7kil4zk3b4sig5hz1"; - libraryHaskellDepends = [ base containers io-classes ]; + version = "0.2.0.1"; + sha256 = "1xi0ys8hhqa2jkdwm0a6r92lwcl4lqcnvi61yqci9vc41rpcazhj"; + libraryHaskellDepends = [ + base containers io-classes template-haskell + typed-session-state-algorithm + ]; testHaskellDepends = [ base containers fused-effects fused-effects-random io-classes - io-sim random + io-sim random template-haskell ]; description = "typed session framework"; license = lib.licenses.mit; @@ -317149,6 +318180,23 @@ self: { broken = true; }) {}; + "typed-session-state-algorithm" = callPackage + ({ mkDerivation, base, containers, fused-effects, megaparsec + , parser-combinators, prettyprinter, raw-strings-qq + }: + mkDerivation { + pname = "typed-session-state-algorithm"; + version = "0.4.2.1"; + sha256 = "0gzzqg0jcnlbm0v4zmbjl379qzwmb93hg1ph8ibp55zxr98chk4z"; + libraryHaskellDepends = [ + base containers fused-effects megaparsec parser-combinators + prettyprinter + ]; + testHaskellDepends = [ base raw-strings-qq ]; + description = "Automatically generate status for typed-session"; + license = lib.licenses.mit; + }) {}; + "typed-spreadsheet" = callPackage ({ mkDerivation, async, base, diagrams-cairo, diagrams-gtk , diagrams-lib, foldl, gtk, microlens, stm, text, transformers @@ -318775,8 +319823,8 @@ self: { }: mkDerivation { pname = "uncertain"; - version = "0.3.1.0"; - sha256 = "1wkgk6504qyirr2bq3m4pqgwdvrpnrig1bnzcls0r7krsig8arvg"; + version = "0.4.0.0"; + sha256 = "1v7q6ajyqx3m06w2iy6dxkbfk6f3878zmii892k4m5a0hzi82x0c"; libraryHaskellDepends = [ ad base base-compat containers free mwc-random primitive transformers @@ -319364,10 +320412,8 @@ self: { ({ mkDerivation, base, containers, logict, mtl }: mkDerivation { pname = "unification-fd"; - version = "0.11.2"; - sha256 = "1lyx3g10llkr7vl7c2j15ddlqrkz2r684d1laza7nvq97amrqnqv"; - revision = "1"; - editedCabalFile = "07xmrqmk99lnp3jyk0dqgnpprm3ghnyjdqva0y13ddh3nw8iiqdj"; + version = "0.11.2.2"; + sha256 = "0jgy507dy1j566j46gndd8b2543n847myibg2i22yw8chdpl15kc"; libraryHaskellDepends = [ base containers logict mtl ]; description = "Simple generic unification algorithms"; license = lib.licenses.bsd3; @@ -320549,6 +321595,18 @@ self: { license = lib.licenses.bsd3; }) {}; + "unix-bytestring_0_4_0_2" = callPackage + ({ mkDerivation, base, bytestring }: + mkDerivation { + pname = "unix-bytestring"; + version = "0.4.0.2"; + sha256 = "0pmkd5cvq3knsyl5izxpxs44axrf943xv4pwa1x20wmsg30fqmd2"; + libraryHaskellDepends = [ base bytestring ]; + description = "Unix/Posix-specific functions for ByteStrings"; + license = lib.licenses.bsd3; + hydraPlatforms = lib.platforms.none; + }) {}; + "unix-compat" = callPackage ({ mkDerivation, base, directory, extra, hspec, HUnit , monad-parallel, temporary, unix @@ -323107,12 +324165,12 @@ self: { }) {}; "uulib" = callPackage - ({ mkDerivation, base, ghc-prim }: + ({ mkDerivation, base }: mkDerivation { pname = "uulib"; - version = "0.9.24"; - sha256 = "10j40q1b1fkx0fv56cn0kkilbqhyh6xxya536xlbx365lnc1rk0i"; - libraryHaskellDepends = [ base ghc-prim ]; + version = "0.9.25"; + sha256 = "03ykq4ij56kkzmr1yfxs3z5zx4yqzscilfxpskyppjk6cj6nh2qq"; + libraryHaskellDepends = [ base ]; description = "Haskell Utrecht Tools Library"; license = lib.licenses.bsd3; }) {}; @@ -324070,8 +325128,8 @@ self: { pname = "vault"; version = "0.3.1.5"; sha256 = "181ksk1yixjg0jiggw5jvm8am8m8c7lim4xaixf8qnaqvxm6namc"; - revision = "7"; - editedCabalFile = "0jbbjmh3h9pkj1mfafysny20ynfl58ifchizn13dkqvclpkr770h"; + revision = "8"; + editedCabalFile = "0nabd5r1j6aq5ys3lsjh4i2ii9rza7923b5mg3vfbkj72w3dvgqv"; libraryHaskellDepends = [ base containers hashable unordered-containers ]; @@ -324384,6 +325442,8 @@ self: { pname = "vec"; version = "0.5.1"; sha256 = "0rswq31fjsqzzq88b920hz0j8v0rdjhb04v4fr10cdqbnxaqglb0"; + revision = "1"; + editedCabalFile = "0znfs73x9amng298hzi98cy15fbgx5hdkcfslwmdqsyarr9v0ffx"; libraryHaskellDepends = [ adjunctions base boring deepseq distributive fin hashable indexed-traversable QuickCheck semigroupoids transformers @@ -324974,6 +326034,8 @@ self: { pname = "vector-space"; version = "0.19"; sha256 = "09gbkwq0z47ahc5brq72i7xr7rwqvl3sy04j1h4my5ij282d25w9"; + revision = "1"; + editedCabalFile = "1bjnjz2r25jkjc5wr3fxfynnrqj6ilwcnms06k0qqm5lg71y0zv2"; libraryHaskellDepends = [ base Boolean MemoTrie NumInstances ]; description = "Vector & affine spaces, linear maps, and derivatives"; license = lib.licenses.bsd3; @@ -332399,8 +333461,8 @@ self: { }: mkDerivation { pname = "window-utils"; - version = "0.2.1.0"; - sha256 = "1db4dnvg5s790yql75spqy446317a16f92hni8sbzdh541aahw73"; + version = "0.2.2.0"; + sha256 = "08s9rjpc2idrb5mgrnbwj2d0m8aj33g4v9djyvrkqnq5jb8mbzrz"; libraryHaskellDepends = [ base bytestring JuicyPixels text vector X11 ]; @@ -334813,6 +335875,21 @@ self: { broken = true; }) {}; + "x-sum-type-boilerplate" = callPackage + ({ mkDerivation, base, hspec, hspec-discover, template-haskell }: + mkDerivation { + pname = "x-sum-type-boilerplate"; + version = "0.1.4"; + sha256 = "1wcbv3jyfdqgff493wc00cxi1iq4myfygwzscpv8s5wyc9pfn30s"; + libraryHaskellDepends = [ base template-haskell ]; + testHaskellDepends = [ + base hspec hspec-discover template-haskell + ]; + testToolDepends = [ hspec-discover ]; + description = "(Forked) Library for reducing the boilerplate involved with sum types"; + license = lib.licenses.mit; + }) {}; + "x11-xim" = callPackage ({ mkDerivation, base, utf8-string, X11 }: mkDerivation { @@ -336724,16 +337801,16 @@ self: { "xmonad-contrib" = callPackage ({ mkDerivation, base, bytestring, containers, deepseq, directory - , filepath, hspec, mtl, process, QuickCheck, random, time, unix - , utf8-string, X11, X11-xft, xmonad + , filepath, hspec, mtl, process, QuickCheck, random, time + , transformers, unix, utf8-string, X11, X11-xft, xmonad }: mkDerivation { pname = "xmonad-contrib"; - version = "0.18.0"; - sha256 = "1ccccz7jmksm2j5maqdfq2z135ggpdh0fl92k87w05663hxq1cb4"; + version = "0.18.1"; + sha256 = "0ck4hq9yhdzggrs3q4ji6nbg6zwhmhc0ckf9vr9d716d98h9swq5"; libraryHaskellDepends = [ base bytestring containers deepseq directory filepath mtl process - random time unix utf8-string X11 X11-xft xmonad + random time transformers unix utf8-string X11 X11-xft xmonad ]; testHaskellDepends = [ base bytestring containers deepseq directory hspec mtl process @@ -336837,8 +337914,8 @@ self: { }: mkDerivation { pname = "xmonad-extras"; - version = "0.17.1"; - sha256 = "08kq9w38jk4nwb2dmqbmybiz50zy81md9sbjmwrkw5wjcdxgsgch"; + version = "0.17.2"; + sha256 = "0rcvmd6m17n8pqi9ky29hd431iniq3vck08wjvyxxgfvq3m842i8"; configureFlags = [ "-f-with_hlist" "-fwith_parsec" "-fwith_split" ]; From 84d63aeb6b1f48cfd94c650c19250ae7de790757 Mon Sep 17 00:00:00 2001 From: Marcin Serwin Date: Tue, 3 Sep 2024 19:47:44 +0200 Subject: [PATCH 02/50] haskellPackages.diohsc: unbreak --- pkgs/development/haskell-modules/configuration-common.nix | 5 +++++ .../haskell-modules/configuration-hackage2nix/broken.yaml | 1 - 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/pkgs/development/haskell-modules/configuration-common.nix b/pkgs/development/haskell-modules/configuration-common.nix index 23139af6fda2b..b35c954b3ffa1 100644 --- a/pkgs/development/haskell-modules/configuration-common.nix +++ b/pkgs/development/haskell-modules/configuration-common.nix @@ -2044,6 +2044,11 @@ self: super: { tls = self.tls_2_0_6; }); + # Requests version 2 of tls + diohsc = super.diohsc.overrideScope (self: super: { + tls = self.tls_2_0_6; + }); + # Need https://github.com/obsidiansystems/cli-extras/pull/12 and more cli-extras = doJailbreak super.cli-extras; diff --git a/pkgs/development/haskell-modules/configuration-hackage2nix/broken.yaml b/pkgs/development/haskell-modules/configuration-hackage2nix/broken.yaml index f76679137c904..ae2fbe6a6ef73 100644 --- a/pkgs/development/haskell-modules/configuration-hackage2nix/broken.yaml +++ b/pkgs/development/haskell-modules/configuration-hackage2nix/broken.yaml @@ -1319,7 +1319,6 @@ broken-packages: - dijkstra-simple # failure in job https://hydra.nixos.org/build/233218373 at 2023-09-02 - DimensionalHash # failure in job https://hydra.nixos.org/build/233230945 at 2023-09-02 - dino # failure in job https://hydra.nixos.org/build/252725815 at 2024-03-16 - - diohsc # failure in job https://hydra.nixos.org/build/259625302 at 2024-05-15 - diophantine # failure in job https://hydra.nixos.org/build/233229215 at 2023-09-02 - diplomacy # failure in job https://hydra.nixos.org/build/233207895 at 2023-09-02 - direct-binary-files # failure in job https://hydra.nixos.org/build/233246387 at 2023-09-02 From a46668992ced17930e731494019155fb5e380ec2 Mon Sep 17 00:00:00 2001 From: Eldritch Cookie Date: Fri, 6 Sep 2024 11:11:22 -0300 Subject: [PATCH 03/50] haskell.packages.ghc910: fixed some packages fixed auto-update, http2, network-control, network-run and time-manager by choosing different version. fixed dejafu and tasty-coverage by jailbreaking. fixed bsb-http-chunked, hinotify and warp by disabling test suite. --- .../haskell-modules/configuration-ghc-9.10.x.nix | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/pkgs/development/haskell-modules/configuration-ghc-9.10.x.nix b/pkgs/development/haskell-modules/configuration-ghc-9.10.x.nix index 0dd47690b4dc2..665cfecb26aad 100644 --- a/pkgs/development/haskell-modules/configuration-ghc-9.10.x.nix +++ b/pkgs/development/haskell-modules/configuration-ghc-9.10.x.nix @@ -67,14 +67,18 @@ self: super: { aeson = doDistribute self.aeson_2_2_3_0; apply-refact = doDistribute self.apply-refact_0_14_0_0; attoparsec-aeson = doDistribute self.attoparsec-aeson_2_2_2_0; + auto-update = super.auto-update_0_2_1; extensions = doDistribute self.extensions_0_1_0_2; fourmolu = doDistribute self.fourmolu_0_16_2_0; hashable = doDistribute self.hashable_1_4_7_0; integer-conversion = doDistribute self.integer-conversion_0_1_1; ghc-lib-parser = doDistribute self.ghc-lib-parser_9_10_1_20240511; ghc-lib-parser-ex = doDistribute self.ghc-lib-parser-ex_9_10_0_0; + http2 = super.http2_5_3_4; lens = doDistribute self.lens_5_3_2; lukko = doDistribute self.lukko_0_1_2; + network-control = super.network-control_0_1_3; + network-run = super.network-run_0_4_0; ormolu = doDistribute self.ormolu_0_7_7_0; primitive = doDistribute (dontCheck self.primitive_0_9_0_0); # tests introduce a recursive dependency via hspec quickcheck-instances = doDistribute self.quickcheck-instances_0_3_31; @@ -82,6 +86,7 @@ self: super: { rerebase = doDistribute self.rerebase_1_21_1; scientific = doDistribute self.scientific_0_3_8_0; semirings = doDistribute self.semirings_0_7; + time-manager = super.time-manager_0_1_0; th-abstraction = doDistribute self.th-abstraction_0_7_0_0; uuid-types = doDistribute self.uuid-types_1_0_6; @@ -101,9 +106,11 @@ self: super: { # base64 = doJailbreak super.base64; # base <4.20 commutative-semigroups = doJailbreak super.commutative-semigroups; # base <4.20 + dejafu = doJailbreak super.dejafu; # containers <0.7 floskell = doJailbreak super.floskell; # base <4.20 lucid = doJailbreak super.lucid; # base <4.20 tar = doJailbreak super.tar; # base <4.20 + tasty-coverage = doJailbreak super.tasty-coverage; # base <4.20, filepath <1.5 tree-diff = doJailbreak super.tree-diff; # base <4.20 time-compat = doJailbreak super.time-compat; # base <4.20 @@ -123,6 +130,9 @@ self: super: { lukko_0_1_2 = dontCheck super.lukko_0_1_2; # doesn't compile with tasty ==1.4.* resolv = dontCheck super.resolv; # doesn't compile with filepath ==1.5.* primitive-unlifted = dontCheck super.primitive-unlifted; # doesn't compile with primitive ==0.9.* + bsb-http-chunked = pkgs.haskell.lib.dontCheck super.bsb-http-chunked; # https://github.com/sjakobi/bsb-http-chunked/issues/45 + hinotify = pkgs.haskell.lib.dontCheck super.hinotify; # https://github.com/kolmodin/hinotify/issues/38 + warp = pkgs.haskell.lib.dontCheck super.warp_3_4_1; # test suite assumes it can freely call curl haskell-language-server = disableCabalFlag "retrie" (disableCabalFlag "hlint" (disableCabalFlag "stylishhaskel" (super.haskell-language-server.override {stylish-haskell = null;retrie = null;apply-refact=null;hlint = null;}))); From 04f0edfeb5ae6ccd0a4e54e63c63bccb65695471 Mon Sep 17 00:00:00 2001 From: maralorn Date: Sat, 7 Sep 2024 16:10:42 +0200 Subject: [PATCH 04/50] haskellPackages: regenerate package set based on current config This commit has been generated by maintainers/scripts/haskell/regenerate-hackage-packages.sh --- .../configuration-hackage2nix/transitive-broken.yaml | 7 ++++++- pkgs/development/haskell-modules/hackage-packages.nix | 4 ++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/pkgs/development/haskell-modules/configuration-hackage2nix/transitive-broken.yaml b/pkgs/development/haskell-modules/configuration-hackage2nix/transitive-broken.yaml index 2471fca15bfef..95c274e419bf1 100644 --- a/pkgs/development/haskell-modules/configuration-hackage2nix/transitive-broken.yaml +++ b/pkgs/development/haskell-modules/configuration-hackage2nix/transitive-broken.yaml @@ -572,6 +572,7 @@ dont-distribute-packages: - aviation-weight-balance - awesomium - awesomium-glut + - aws-arn - aws-configuration-tools - aws-dynamodb-conduit - aws-dynamodb-streams @@ -1440,6 +1441,8 @@ dont-distribute-packages: - frpnow-gtk - frpnow-gtk3 - frpnow-vty + - fs-api + - fs-sim - ftdi - ftp-client-conduit - ftree @@ -3157,7 +3160,7 @@ dont-distribute-packages: - poseidon - poseidon-postgis - postgresql-common-persistent - - postgresql-libpq_0_10_2_0 + - postgresql-libpq_0_11_0_0 - postgresql-pure - postgresql-simple-ltree - postgresql-simple-queue @@ -3306,6 +3309,7 @@ dont-distribute-packages: - rc - rdf4h-vocab-activitystreams - rdioh + - rds-data - react-flux-servant - reactive - reactive-banana-sdl @@ -3561,6 +3565,7 @@ dont-distribute-packages: - serv - serv-wai - servant-aeson-generics-typescript + - servant-auth-client_0_4_2_0 - servant-auth-hmac - servant-auth-token - servant-auth-token-acid diff --git a/pkgs/development/haskell-modules/hackage-packages.nix b/pkgs/development/haskell-modules/hackage-packages.nix index e58c9503b44ff..84985a12fe778 100644 --- a/pkgs/development/haskell-modules/hackage-packages.nix +++ b/pkgs/development/haskell-modules/hackage-packages.nix @@ -44245,6 +44245,7 @@ self: { testToolDepends = [ tasty-discover ]; description = "Types and optics for manipulating Amazon Resource Names (ARNs)"; license = lib.licenses.bsd3; + hydraPlatforms = lib.platforms.none; }) {}; "aws-cloudfront-signed-cookies" = callPackage @@ -114774,6 +114775,7 @@ self: { ]; description = "Abstract interface for the file system"; license = lib.licenses.asl20; + hydraPlatforms = lib.platforms.none; }) {}; "fs-events" = callPackage @@ -114811,6 +114813,7 @@ self: { ]; description = "Simulated file systems"; license = lib.licenses.asl20; + hydraPlatforms = lib.platforms.none; }) {}; "fsh-csv" = callPackage @@ -257063,6 +257066,7 @@ self: { doHaddock = false; description = "Codecs for use with AWS rds-data"; license = lib.licenses.bsd3; + hydraPlatforms = lib.platforms.none; mainProgram = "rds-data"; }) {}; From ae3938baff8c4b0177bfb5b876172b0fa56ced74 Mon Sep 17 00:00:00 2001 From: maralorn Date: Sat, 7 Sep 2024 16:11:30 +0200 Subject: [PATCH 05/50] haskellPackages.clash-prelude: Unmark broken Builds without problem --- .../configuration-hackage2nix/broken.yaml | 1 - .../transitive-broken.yaml | 15 --------------- .../haskell-modules/hackage-packages.nix | 17 ----------------- 3 files changed, 33 deletions(-) diff --git a/pkgs/development/haskell-modules/configuration-hackage2nix/broken.yaml b/pkgs/development/haskell-modules/configuration-hackage2nix/broken.yaml index f76679137c904..69c1d1eb9d1da 100644 --- a/pkgs/development/haskell-modules/configuration-hackage2nix/broken.yaml +++ b/pkgs/development/haskell-modules/configuration-hackage2nix/broken.yaml @@ -799,7 +799,6 @@ broken-packages: - clanki # failure in job https://hydra.nixos.org/build/233196970 at 2023-09-02 - clarifai # failure in job https://hydra.nixos.org/build/233229480 at 2023-09-02 - CLASE # failure in job https://hydra.nixos.org/build/233234459 at 2023-09-02 - - clash-prelude # failure in job https://hydra.nixos.org/build/233252128 at 2023-09-02 - Clash-Royale-Hack-Cheats # failure in job https://hydra.nixos.org/build/233216034 at 2023-09-02 - ClasshSS # failure in job https://hydra.nixos.org/build/255688076 at 2024-04-16 - ClassLaws # failure in job https://hydra.nixos.org/build/233243019 at 2023-09-02 diff --git a/pkgs/development/haskell-modules/configuration-hackage2nix/transitive-broken.yaml b/pkgs/development/haskell-modules/configuration-hackage2nix/transitive-broken.yaml index 95c274e419bf1..ee17921d4a8f8 100644 --- a/pkgs/development/haskell-modules/configuration-hackage2nix/transitive-broken.yaml +++ b/pkgs/development/haskell-modules/configuration-hackage2nix/transitive-broken.yaml @@ -825,7 +825,6 @@ dont-distribute-packages: - chu2 - chuchu - chunks - - circuit-notation - citation-resolve - citeproc-hs-pandoc-filter - clac @@ -833,17 +832,7 @@ dont-distribute-packages: - claferIG - claferwiki - clash - - clash-ghc - - clash-lib - clash-lib-hedgehog - - clash-multisignal - - clash-prelude-hedgehog - - clash-prelude-quickcheck - - clash-shake - - clash-systemverilog - - clash-verilog - - clash-vhdl - - clashilator - classify-frog - classy-effects - classy-effects-th @@ -2283,7 +2272,6 @@ dont-distribute-packages: - hyperpublic - i - iException - - ice40-prim - ide-backend - ide-backend-server - ideas-math @@ -2576,7 +2564,6 @@ dont-distribute-packages: - linnet-conduit - linux-ptrace - lio-eci11 - - lion - liquid-base - liquid-bytestring - liquid-containers @@ -3407,8 +3394,6 @@ dont-distribute-packages: - restricted-workers - rethinkdb-model - rethinkdb-wereHamster - - retroclash-lib - - retroclash-sim - rewrite - rewriting - rezoom diff --git a/pkgs/development/haskell-modules/hackage-packages.nix b/pkgs/development/haskell-modules/hackage-packages.nix index 84985a12fe778..10121915e83ba 100644 --- a/pkgs/development/haskell-modules/hackage-packages.nix +++ b/pkgs/development/haskell-modules/hackage-packages.nix @@ -66009,7 +66009,6 @@ self: { testHaskellDepends = [ base clash-prelude ]; description = "A source plugin for manipulating circuits in clash with a arrow notation"; license = lib.licenses.bsd3; - hydraPlatforms = lib.platforms.none; }) {}; "circular" = callPackage @@ -66529,7 +66528,6 @@ self: { executableHaskellDepends = [ base ]; description = "Clash: a functional hardware description language - GHC frontend"; license = lib.licenses.bsd2; - hydraPlatforms = lib.platforms.none; }) {}; "clash-lib" = callPackage @@ -66581,7 +66579,6 @@ self: { ]; description = "Clash: a functional hardware description language - As a library"; license = lib.licenses.bsd2; - hydraPlatforms = lib.platforms.none; mainProgram = "v16-upgrade-primitives"; }) {}; @@ -66618,7 +66615,6 @@ self: { base clash-prelude deepseq ghc-typelits-knownnat QuickCheck ]; license = lib.licenses.bsd3; - hydraPlatforms = lib.platforms.none; }) {}; "clash-prelude" = callPackage @@ -66660,8 +66656,6 @@ self: { ]; description = "Clash: a functional hardware description language - Prelude library"; license = lib.licenses.bsd2; - hydraPlatforms = lib.platforms.none; - broken = true; }) {}; "clash-prelude-hedgehog" = callPackage @@ -66678,7 +66672,6 @@ self: { ]; description = "Hedgehog Generators for clash-prelude"; license = lib.licenses.bsd2; - hydraPlatforms = lib.platforms.none; }) {}; "clash-prelude-quickcheck" = callPackage @@ -66691,7 +66684,6 @@ self: { libraryHaskellDepends = [ base clash-prelude QuickCheck ]; description = "QuickCheck instances for various types in the CλaSH Prelude"; license = "unknown"; - hydraPlatforms = lib.platforms.none; }) {}; "clash-shake" = callPackage @@ -66711,7 +66703,6 @@ self: { ]; description = "Shake rules for building Clash programs"; license = lib.licenses.mit; - hydraPlatforms = lib.platforms.none; }) {}; "clash-systemverilog" = callPackage @@ -66729,7 +66720,6 @@ self: { ]; description = "CAES Language for Synchronous Hardware - SystemVerilog backend"; license = lib.licenses.bsd2; - hydraPlatforms = lib.platforms.none; }) {}; "clash-verilog" = callPackage @@ -66747,7 +66737,6 @@ self: { ]; description = "CAES Language for Synchronous Hardware - Verilog backend"; license = lib.licenses.bsd2; - hydraPlatforms = lib.platforms.none; }) {}; "clash-vhdl" = callPackage @@ -66765,7 +66754,6 @@ self: { ]; description = "CAES Language for Synchronous Hardware - VHDL backend"; license = lib.licenses.bsd2; - hydraPlatforms = lib.platforms.none; }) {}; "clashilator" = callPackage @@ -66789,7 +66777,6 @@ self: { ]; description = "Automated Clash to Verilator bridge"; license = lib.licenses.mit; - hydraPlatforms = lib.platforms.none; mainProgram = "clashilator"; }) {}; @@ -171919,7 +171906,6 @@ self: { ]; description = "Lattice iCE40 Primitive IP"; license = lib.licenses.bsd3; - hydraPlatforms = lib.platforms.none; }) {}; "icepeak" = callPackage @@ -195106,7 +195092,6 @@ self: { ]; description = "RISC-V Core"; license = lib.licenses.bsd3; - hydraPlatforms = lib.platforms.none; }) {}; "lipsum-gen" = callPackage @@ -263921,7 +263906,6 @@ self: { ]; description = "Code shared across the code samples in the book \"Retrocomputing with Clash\""; license = lib.licenses.mit; - hydraPlatforms = lib.platforms.none; }) {}; "retroclash-sim" = callPackage @@ -263943,7 +263927,6 @@ self: { ]; description = "High-level simulators from the book \"Retrocomputing with Clash\""; license = lib.licenses.mit; - hydraPlatforms = lib.platforms.none; }) {}; "retry" = callPackage From 85fcc86a724bd1548b6c2936174fa1e7782fcef0 Mon Sep 17 00:00:00 2001 From: Marcin Serwin Date: Sat, 7 Sep 2024 20:02:03 +0200 Subject: [PATCH 06/50] Regenerate hackage-packages --- pkgs/development/haskell-modules/hackage-packages.nix | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/pkgs/development/haskell-modules/hackage-packages.nix b/pkgs/development/haskell-modules/hackage-packages.nix index ab91a00f78d39..cc0445bde58f8 100644 --- a/pkgs/development/haskell-modules/hackage-packages.nix +++ b/pkgs/development/haskell-modules/hackage-packages.nix @@ -90550,9 +90550,7 @@ self: { ]; description = "Gemini client"; license = lib.licenses.gpl3Only; - hydraPlatforms = lib.platforms.none; mainProgram = "diohsc"; - broken = true; }) {}; "diophantine" = callPackage @@ -153530,7 +153528,7 @@ self: { license = lib.licenses.bsd3; hydraPlatforms = lib.platforms.none; broken = true; - }) {inherit (pkgs) fam;}; + }) {fam = null;}; "hlibgit2" = callPackage ({ mkDerivation, base, bindings-DSL, git, openssl, process, zlib }: From bfc503e1bec3d68073831b54438207fa56431a28 Mon Sep 17 00:00:00 2001 From: Marcin Serwin Date: Sat, 7 Sep 2024 20:11:46 +0200 Subject: [PATCH 07/50] Add info about override removal --- pkgs/development/haskell-modules/configuration-common.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/development/haskell-modules/configuration-common.nix b/pkgs/development/haskell-modules/configuration-common.nix index b35c954b3ffa1..4672d23e48ca4 100644 --- a/pkgs/development/haskell-modules/configuration-common.nix +++ b/pkgs/development/haskell-modules/configuration-common.nix @@ -2044,7 +2044,7 @@ self: super: { tls = self.tls_2_0_6; }); - # Requests version 2 of tls + # Requests version 2 of tls, can be removed once it's the default diohsc = super.diohsc.overrideScope (self: super: { tls = self.tls_2_0_6; }); From e2af344be55ec2e783a8dcdb63791c20c163a1c6 Mon Sep 17 00:00:00 2001 From: Finn Landweber Date: Tue, 3 Sep 2024 21:50:23 +0200 Subject: [PATCH 08/50] haskellPackages.system-fileio: disable checks --- pkgs/development/haskell-modules/configuration-common.nix | 5 +++-- pkgs/development/haskell-modules/configuration-darwin.nix | 3 --- pkgs/development/haskell-modules/configuration-ghc-8.6.x.nix | 1 - .../haskell-modules/configuration-hackage2nix/broken.yaml | 1 - 4 files changed, 3 insertions(+), 7 deletions(-) diff --git a/pkgs/development/haskell-modules/configuration-common.nix b/pkgs/development/haskell-modules/configuration-common.nix index 23139af6fda2b..9209523242ebe 100644 --- a/pkgs/development/haskell-modules/configuration-common.nix +++ b/pkgs/development/haskell-modules/configuration-common.nix @@ -2548,8 +2548,9 @@ self: super: { relative = "dependent-sum-template"; }) super.dependent-sum-template; - # Too strict bounds on chell: https://github.com/fpco/haskell-filesystem/issues/24 - system-fileio = doJailbreak super.system-fileio; + # doJailbreak: too strict bounds on chell: https://github.com/fpco/haskell-filesystem/issues/24 + # dontCheck: tests don't typecheck after ghc 8.4 (possibly introduced by api change of unix library) + system-fileio = doJailbreak (dontCheck super.system-fileio); # Bounds too strict on base and ghc-prim: https://github.com/tibbe/ekg-core/pull/43 (merged); waiting on hackage release ekg-core = assert super.ekg-core.version == "0.1.1.7"; doJailbreak super.ekg-core; diff --git a/pkgs/development/haskell-modules/configuration-darwin.nix b/pkgs/development/haskell-modules/configuration-darwin.nix index 5933627583a6f..3159f3b315368 100644 --- a/pkgs/development/haskell-modules/configuration-darwin.nix +++ b/pkgs/development/haskell-modules/configuration-darwin.nix @@ -83,9 +83,6 @@ self: super: ({ with-utf8 = addExtraLibrary pkgs.libiconv super.with-utf8; with-utf8_1_1_0_0 = addExtraLibrary pkgs.libiconv super.with-utf8_1_1_0_0; - # the system-fileio tests use canonicalizePath, which fails in the sandbox - system-fileio = dontCheck super.system-fileio; - git-annex = overrideCabal (drv: { # We can't use testFlags since git-annex side steps the Cabal test mechanism preCheck = drv.preCheck or "" + '' diff --git a/pkgs/development/haskell-modules/configuration-ghc-8.6.x.nix b/pkgs/development/haskell-modules/configuration-ghc-8.6.x.nix index 4a194192ee4b4..4272012f27a32 100644 --- a/pkgs/development/haskell-modules/configuration-ghc-8.6.x.nix +++ b/pkgs/development/haskell-modules/configuration-ghc-8.6.x.nix @@ -69,7 +69,6 @@ self: super: { hpc-coveralls = doJailbreak super.hpc-coveralls; # https://github.com/guillaume-nargeot/hpc-coveralls/issues/82 http-api-data = doJailbreak super.http-api-data; persistent-sqlite = dontCheck super.persistent-sqlite; - system-fileio = dontCheck super.system-fileio; # avoid dependency on broken "patience" unicode-transforms = dontCheck super.unicode-transforms; wl-pprint-extras = doJailbreak super.wl-pprint-extras; # containers >=0.4 && <0.6 is too tight; https://github.com/ekmett/wl-pprint-extras/issues/17 RSA = dontCheck super.RSA; # https://github.com/GaloisInc/RSA/issues/14 diff --git a/pkgs/development/haskell-modules/configuration-hackage2nix/broken.yaml b/pkgs/development/haskell-modules/configuration-hackage2nix/broken.yaml index 69c1d1eb9d1da..4e6717de27ba6 100644 --- a/pkgs/development/haskell-modules/configuration-hackage2nix/broken.yaml +++ b/pkgs/development/haskell-modules/configuration-hackage2nix/broken.yaml @@ -5887,7 +5887,6 @@ broken-packages: - system-command # failure in job https://hydra.nixos.org/build/233239356 at 2023-09-02 - systemd-ntfy # failure in job https://hydra.nixos.org/build/236686880 at 2023-10-04 - system-extra # failure in job https://hydra.nixos.org/build/233203137 at 2023-09-02 - - system-fileio # failure in job https://hydra.nixos.org/build/252731084 at 2024-03-16 - system-inotify # failure in job https://hydra.nixos.org/build/233206871 at 2023-09-02 - system-lifted # failure in job https://hydra.nixos.org/build/233236013 at 2023-09-02 - system-linux-proc # failure in job https://hydra.nixos.org/build/233209447 at 2023-09-02 From 67a00dc8b4633cff6b374a1075ea232b97ae70f2 Mon Sep 17 00:00:00 2001 From: Finn Landweber Date: Tue, 3 Sep 2024 22:19:38 +0200 Subject: [PATCH 09/50] haskellPackages: regenerate package set based on current config This commit has been generated by maintainers/scripts/haskell/regenerate-hackage-packages.sh --- .../configuration-hackage2nix/transitive-broken.yaml | 10 ---------- .../development/haskell-modules/hackage-packages.nix | 12 ------------ 2 files changed, 22 deletions(-) diff --git a/pkgs/development/haskell-modules/configuration-hackage2nix/transitive-broken.yaml b/pkgs/development/haskell-modules/configuration-hackage2nix/transitive-broken.yaml index ee17921d4a8f8..de9e5924c7856 100644 --- a/pkgs/development/haskell-modules/configuration-hackage2nix/transitive-broken.yaml +++ b/pkgs/development/haskell-modules/configuration-hackage2nix/transitive-broken.yaml @@ -483,8 +483,6 @@ dont-distribute-packages: - ampersand - amqp-streamly - analyze-client - - anansi - - anansi-hscolour - anatomy - animate-example - animate-frames @@ -674,7 +672,6 @@ dont-distribute-packages: - bitmaps - bittorrent - bla - - blacktip - blakesum-demo - blastxml - blatex @@ -1114,7 +1111,6 @@ dont-distribute-packages: - devtools - dewdrop - dfinity-radix-tree - - dhall-lex - dhall-secret - dia-functions - diagrams-reflex @@ -1134,7 +1130,6 @@ dont-distribute-packages: - direct-rocksdb - directory-contents - dirfiles - - dirstream - discogs-haskell - discord-gateway - discord-hs @@ -2157,7 +2152,6 @@ dont-distribute-packages: - hs-pkpass - hs-profunctors - hs-sdl-term-emulator - - hs2ats - hs2dot - hsbackup - hsbencher-codespeed @@ -2179,7 +2173,6 @@ dont-distribute-packages: - hsinspect-lsp - hslogstash - hsparql - - hspec-dirstream - hspec-expectations-pretty - hspec-pg-transact - hspec-setup @@ -2491,7 +2484,6 @@ dont-distribute-packages: - landlock - lang - language-Modula2 - - language-ats - language-boogie - language-ecmascript-analysis - language-eiffel @@ -3545,7 +3537,6 @@ dont-distribute-packages: - seqloc-datafiles - sequor - serdoc-binary - - serial-test-generators - serpentine - serv - serv-wai @@ -4287,7 +4278,6 @@ dont-distribute-packages: - yesod-raml-bin - yesod-raml-docs - yesod-raml-mock - - yesod-routes-flow - yesod-routes-typescript - yesod-session-redis - yesod-worker diff --git a/pkgs/development/haskell-modules/hackage-packages.nix b/pkgs/development/haskell-modules/hackage-packages.nix index 10121915e83ba..f6db267928bae 100644 --- a/pkgs/development/haskell-modules/hackage-packages.nix +++ b/pkgs/development/haskell-modules/hackage-packages.nix @@ -36529,7 +36529,6 @@ self: { ]; description = "Simple literate programming preprocessor"; license = lib.licenses.gpl3Only; - hydraPlatforms = lib.platforms.none; mainProgram = "anansi"; }) {}; @@ -36546,7 +36545,6 @@ self: { ]; description = "Colorized looms for Anansi"; license = lib.licenses.gpl3Only; - hydraPlatforms = lib.platforms.none; }) {}; "anansi-pandoc" = callPackage @@ -52097,7 +52095,6 @@ self: { ]; description = "Decentralized, k-ordered unique ID generator"; license = lib.licenses.asl20; - hydraPlatforms = lib.platforms.none; }) {}; "blagda" = callPackage @@ -88568,7 +88565,6 @@ self: { benchmarkHaskellDepends = [ base bytestring criterion ]; description = "Lexer for the Dhall language"; license = lib.licenses.bsd3; - hydraPlatforms = lib.platforms.none; }) {}; "dhall-lsp-server" = callPackage @@ -91148,7 +91144,6 @@ self: { ]; description = "Easily stream directory contents in constant memory"; license = lib.licenses.bsd3; - hydraPlatforms = lib.platforms.none; maintainers = [ lib.maintainers.Gabriella439 ]; }) {}; @@ -161010,7 +161005,6 @@ self: { benchmarkHaskellDepends = [ base criterion ]; description = "Create ATS types from Haskell types"; license = lib.licenses.bsd3; - hydraPlatforms = lib.platforms.none; mainProgram = "hs2ats"; }) {}; @@ -163833,7 +163827,6 @@ self: { testHaskellDepends = [ base hspec ]; description = "Helper functions to simplify adding integration tests"; license = lib.licenses.bsd3; - hydraPlatforms = lib.platforms.none; }) {}; "hspec-discover_2_7_10" = callPackage @@ -187760,7 +187753,6 @@ self: { benchmarkHaskellDepends = [ base criterion ]; description = "Parser and pretty-printer for ATS"; license = lib.licenses.bsd3; - hydraPlatforms = lib.platforms.none; }) {}; "language-avro" = callPackage @@ -274059,7 +274051,6 @@ self: { ]; description = "Test your 'Aeson' 'Serialize' and 'Binary' instances for stability over time"; license = lib.licenses.mit; - hydraPlatforms = lib.platforms.none; }) {}; "serialise" = callPackage @@ -300398,8 +300389,6 @@ self: { ]; description = "Consistent filesystem interaction across GHC versions (deprecated)"; license = lib.licenses.mit; - hydraPlatforms = lib.platforms.none; - broken = true; }) {}; "system-filepath" = callPackage @@ -341825,7 +341814,6 @@ self: { ]; description = "Generate Flow routes for Yesod"; license = lib.licenses.mit; - hydraPlatforms = lib.platforms.none; }) {}; "yesod-routes-typescript" = callPackage From cd31b044130aa79baf368c5c3adb799cf5e3f00b Mon Sep 17 00:00:00 2001 From: Alex Tunstall Date: Sun, 23 Jul 2023 09:30:35 +0100 Subject: [PATCH 10/50] haskell.compiler.ghc*: set stage 0 tools This is easy in comparison since these tools won't end up in GHC's settings nor need to be available at runtime, so we can use the *_FOR_BUILD environment variables. It is important to add buildCC to depsBuildBuild to engage the stdenv/wrapper script machinery properly. Co-authored-by: sternenseemann --- pkgs/development/compilers/ghc/8.10.7.nix | 11 ++++++++++- pkgs/development/compilers/ghc/common-hadrian.nix | 10 ++++++++++ .../compilers/ghc/common-make-native-bignum.nix | 12 +++++++++++- 3 files changed, 31 insertions(+), 2 deletions(-) diff --git a/pkgs/development/compilers/ghc/8.10.7.nix b/pkgs/development/compilers/ghc/8.10.7.nix index a6694e2e99c9c..9bcf8eb1fecea 100644 --- a/pkgs/development/compilers/ghc/8.10.7.nix +++ b/pkgs/development/compilers/ghc/8.10.7.nix @@ -1,4 +1,4 @@ -{ lib, stdenv, pkgsBuildTarget, pkgsHostTarget, targetPackages +{ lib, stdenv, pkgsBuildTarget, pkgsHostTarget, buildPackages, targetPackages # build-tools , bootPkgs @@ -134,6 +134,7 @@ let pkgsBuildTarget.targetPackages.stdenv.cc ] ++ lib.optional useLLVM buildTargetLlvmPackages.llvm; + buildCC = buildPackages.stdenv.cc; targetCC = builtins.head toolsForTarget; # toolPath calculates the absolute path to the name tool associated with a @@ -299,6 +300,10 @@ stdenv.mkDerivation (rec { # LLVM backend on Darwin needs clang: https://downloads.haskell.org/~ghc/latest/docs/html/users_guide/codegens.html#llvm-code-generator-fllvm export CLANG="${buildTargetLlvmPackages.clang}/bin/${buildTargetLlvmPackages.clang.targetPrefix}clang" '' + '' + # No need for absolute paths since these tools only need to work during the build + export CC_STAGE0="$CC_FOR_BUILD" + export LD_STAGE0="$LD_FOR_BUILD" + export AR_STAGE0="$AR_FOR_BUILD" echo -n "${buildMK}" > mk/build.mk sed -i -e 's|-isysroot /Developer/SDKs/MacOSX10.5.sdk||' configure @@ -372,6 +377,10 @@ stdenv.mkDerivation (rec { sphinx ]; + # Used by the STAGE0 compiler to build stage1 + depsBuildBuild = [ + buildCC + ]; # For building runtime libs depsBuildTarget = toolsForTarget; diff --git a/pkgs/development/compilers/ghc/common-hadrian.nix b/pkgs/development/compilers/ghc/common-hadrian.nix index b6d4d7236fe6b..aefaf5b70aaf9 100644 --- a/pkgs/development/compilers/ghc/common-hadrian.nix +++ b/pkgs/development/compilers/ghc/common-hadrian.nix @@ -12,6 +12,7 @@ , stdenv , pkgsBuildTarget , pkgsHostTarget +, buildPackages , targetPackages , fetchpatch @@ -265,6 +266,7 @@ let else pkgsBuildTarget.targetPackages.stdenv.cc) ] ++ lib.optional useLLVM buildTargetLlvmPackages.llvm; + buildCC = buildPackages.stdenv.cc; targetCC = builtins.head toolsForTarget; # toolPath calculates the absolute path to the name tool associated with a @@ -346,6 +348,10 @@ stdenv.mkDerivation ({ for env in $(env | grep '^TARGET_' | sed -E 's|\+?=.*||'); do export "''${env#TARGET_}=''${!env}" done + # No need for absolute paths since these tools only need to work during the build + export CC_STAGE0="$CC_FOR_BUILD" + export LD_STAGE0="$LD_FOR_BUILD" + export AR_STAGE0="$AR_FOR_BUILD" # GHC is a bit confused on its cross terminology, as these would normally be # the *host* tools. export CC="${toolPath "cc" targetCC}" @@ -484,6 +490,10 @@ stdenv.mkDerivation ({ # For building runtime libs depsBuildTarget = toolsForTarget; + # Used by the STAGE0 compiler to build stage1 + depsBuildBuild = [ + buildCC + ]; buildInputs = [ perl bash ] ++ (libDeps hostPlatform); diff --git a/pkgs/development/compilers/ghc/common-make-native-bignum.nix b/pkgs/development/compilers/ghc/common-make-native-bignum.nix index 2b23cd75a0ed7..3788efeda8ba4 100644 --- a/pkgs/development/compilers/ghc/common-make-native-bignum.nix +++ b/pkgs/development/compilers/ghc/common-make-native-bignum.nix @@ -3,7 +3,7 @@ , url ? "https://downloads.haskell.org/ghc/${version}/ghc-${version}-src.tar.xz" }: -{ lib, stdenv, pkgsBuildTarget, pkgsHostTarget, targetPackages +{ lib, stdenv, pkgsBuildTarget, pkgsHostTarget, buildPackages, targetPackages # build-tools , bootPkgs @@ -134,6 +134,7 @@ let pkgsBuildTarget.targetPackages.stdenv.cc ] ++ lib.optional useLLVM buildTargetLlvmPackages.llvm; + buildCC = buildPackages.stdenv.cc; targetCC = builtins.head toolsForTarget; # toolPath calculates the absolute path to the name tool associated with a @@ -305,6 +306,11 @@ stdenv.mkDerivation (rec { export CLANG="${buildTargetLlvmPackages.clang}/bin/${buildTargetLlvmPackages.clang.targetPrefix}clang" '' + '' + # No need for absolute paths since these tools only need to work during the build + export CC_STAGE0="$CC_FOR_BUILD" + export LD_STAGE0="$LD_FOR_BUILD" + export AR_STAGE0="$AR_FOR_BUILD" + echo -n "${buildMK}" > mk/build.mk '' + lib.optionalString (lib.versionOlder version "9.2" || lib.versionAtLeast version "9.4") '' @@ -393,6 +399,10 @@ stdenv.mkDerivation (rec { xattr ]; + # Used by the STAGE0 compiler to build stage1 + depsBuildBuild = [ + buildCC + ]; # For building runtime libs depsBuildTarget = toolsForTarget; From 4b00fbf16307a1501bd57370cf334a905554ee90 Mon Sep 17 00:00:00 2001 From: Alex Tunstall Date: Sun, 23 Jul 2023 09:50:55 +0100 Subject: [PATCH 11/50] haskell.compiler.ghc*: correctly account for ncurses in cross 1. Explicitly set WITH_TERMINFO. We usually match GHC's behavior well, but it is better to tie the Nix option to make explicitly. Unfortunately, the same is very complicated to achieve with hadrian (iirc). 2. Disable enableTerminfo if we are cross-compiling. This matches the behavior of GHC's build system, so we'll have to match it now. It also reduces the ncurses-related headache a bit. 3. Stop passing --with-curses* flags. Unfortunately, GHC does not account for the fact that different platforms need different ncurses libraries. This is somewhat migitated by the fact that ncurses is only ever needed for the build platform if we are cross compiling, but I seem to remember it leaking into the final GHC somehow. A more reliable alternative is relying on the cc/ld wrapper scripts, as they'll always pull out the correct ncurses out of the environment when GHC's build system passes -lcurses. 4. Unconditionally add ncurses to depsBuildBuild. Stage0 unconditionally builds terminfo (maybe the stage1 compiler needs it?), so we need to make sure that ncurses for the build platform is available. Co-authored-by: sternenseemann --- pkgs/development/compilers/ghc/8.10.7.nix | 10 ++++++++-- pkgs/development/compilers/ghc/common-hadrian.nix | 11 +++++++++-- .../compilers/ghc/common-make-native-bignum.nix | 10 ++++++++-- 3 files changed, 25 insertions(+), 6 deletions(-) diff --git a/pkgs/development/compilers/ghc/8.10.7.nix b/pkgs/development/compilers/ghc/8.10.7.nix index 9bcf8eb1fecea..873925417c16c 100644 --- a/pkgs/development/compilers/ghc/8.10.7.nix +++ b/pkgs/development/compilers/ghc/8.10.7.nix @@ -39,7 +39,10 @@ enableShared ? !stdenv.targetPlatform.isWindows && !stdenv.targetPlatform.useiOSPrebuilt , # Whether to build terminfo. - enableTerminfo ? !stdenv.targetPlatform.isWindows + enableTerminfo ? !(stdenv.targetPlatform.isWindows + # terminfo can't be built for cross + || (stdenv.buildPlatform != stdenv.hostPlatform) + || (stdenv.hostPlatform != stdenv.targetPlatform)) , # What flavour to build. An empty string indicates no # specific flavour and falls back to ghc default values. @@ -86,6 +89,8 @@ let endif BUILD_SPHINX_HTML = ${if enableDocs then "YES" else "NO"} BUILD_SPHINX_PDF = NO + + WITH_TERMINFO = ${if enableTerminfo then "YES" else "NO"} '' + # Note [HADDOCK_DOCS]: # Unfortunately currently `HADDOCK_DOCS` controls both whether the `haddock` @@ -341,7 +346,6 @@ stdenv.mkDerivation (rec { # `--with` flags for libraries needed for RTS linker configureFlags = [ "--datadir=$doc/share/doc/ghc" - "--with-curses-includes=${ncurses.dev}/include" "--with-curses-libraries=${ncurses.out}/lib" ] ++ lib.optionals (args.${libffi_name} != null) [ "--with-system-libffi" "--with-ffi-includes=${targetPackages.${libffi_name}.dev}/include" @@ -380,6 +384,8 @@ stdenv.mkDerivation (rec { # Used by the STAGE0 compiler to build stage1 depsBuildBuild = [ buildCC + # stage0 builds terminfo unconditionally, so we always need ncurses + ncurses ]; # For building runtime libs depsBuildTarget = toolsForTarget; diff --git a/pkgs/development/compilers/ghc/common-hadrian.nix b/pkgs/development/compilers/ghc/common-hadrian.nix index aefaf5b70aaf9..78e0e2dd167e0 100644 --- a/pkgs/development/compilers/ghc/common-hadrian.nix +++ b/pkgs/development/compilers/ghc/common-hadrian.nix @@ -66,8 +66,14 @@ enableShared ? with stdenv.targetPlatform; !isWindows && !useiOSPrebuilt && !isStatic && !isGhcjs , # Whether to build terminfo. + # FIXME(@sternenseemann): This actually doesn't influence what hadrian does, + # just what buildInputs etc. looks like. It would be best if we could actually + # tell it what to do like it was possible with make. enableTerminfo ? !(stdenv.targetPlatform.isWindows - || stdenv.targetPlatform.isGhcjs) + || stdenv.targetPlatform.isGhcjs + # terminfo can't be built for cross + || (stdenv.buildPlatform != stdenv.hostPlatform) + || (stdenv.hostPlatform != stdenv.targetPlatform)) , # Libdw.c only supports x86_64, i686 and s390x as of 2022-08-04 enableDwarf ? (stdenv.targetPlatform.isx86 || @@ -439,7 +445,6 @@ stdenv.mkDerivation ({ # `--with` flags for libraries needed for RTS linker configureFlags = [ "--datadir=$doc/share/doc/ghc" - "--with-curses-includes=${ncurses.dev}/include" "--with-curses-libraries=${ncurses.out}/lib" ] ++ lib.optionals (libffi != null && !targetPlatform.isGhcjs) [ "--with-system-libffi" "--with-ffi-includes=${targetPackages.libffi.dev}/include" @@ -493,6 +498,8 @@ stdenv.mkDerivation ({ # Used by the STAGE0 compiler to build stage1 depsBuildBuild = [ buildCC + # stage0 builds terminfo unconditionally, so we always need ncurses + ncurses ]; buildInputs = [ perl bash ] ++ (libDeps hostPlatform); diff --git a/pkgs/development/compilers/ghc/common-make-native-bignum.nix b/pkgs/development/compilers/ghc/common-make-native-bignum.nix index 3788efeda8ba4..3d5d9d6329a50 100644 --- a/pkgs/development/compilers/ghc/common-make-native-bignum.nix +++ b/pkgs/development/compilers/ghc/common-make-native-bignum.nix @@ -42,7 +42,10 @@ enableShared ? with stdenv.targetPlatform; !isWindows && !useiOSPrebuilt && !isStatic , # Whether to build terminfo. - enableTerminfo ? !stdenv.targetPlatform.isWindows + enableTerminfo ? !(stdenv.targetPlatform.isWindows + # terminfo can't be built for cross + || (stdenv.buildPlatform != stdenv.hostPlatform) + || (stdenv.hostPlatform != stdenv.targetPlatform)) , # What flavour to build. An empty string indicates no # specific flavour and falls back to ghc default values. @@ -88,6 +91,8 @@ let endif BUILD_SPHINX_HTML = ${if enableDocs then "YES" else "NO"} BUILD_SPHINX_PDF = NO + + WITH_TERMINFO = ${if enableTerminfo then "YES" else "NO"} '' + # Note [HADDOCK_DOCS]: # Unfortunately currently `HADDOCK_DOCS` controls both whether the `haddock` @@ -359,7 +364,6 @@ stdenv.mkDerivation (rec { # `--with` flags for libraries needed for RTS linker configureFlags = [ "--datadir=$doc/share/doc/ghc" - "--with-curses-includes=${ncurses.dev}/include" "--with-curses-libraries=${ncurses.out}/lib" ] ++ lib.optionals (libffi != null) [ "--with-system-libffi" "--with-ffi-includes=${targetPackages.libffi.dev}/include" @@ -402,6 +406,8 @@ stdenv.mkDerivation (rec { # Used by the STAGE0 compiler to build stage1 depsBuildBuild = [ buildCC + # stage0 builds terminfo unconditionally, so we always need ncurses + ncurses ]; # For building runtime libs depsBuildTarget = toolsForTarget; From 1261fe024fada592533a61a1f6ca1e03be50a4c6 Mon Sep 17 00:00:00 2001 From: Alex Tunstall Date: Sun, 23 Jul 2023 09:43:41 +0100 Subject: [PATCH 12/50] =?UTF-8?q?haskell.compiler.ghc*:=20fall=20back=20to?= =?UTF-8?q?=20host=20libs=20for=20=E2=80=9Ccross=20native=E2=80=9D=20ghc?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The goal of this commit is basically to eliminate the use of targetPackages for finding libraries. Instead, we introduce a `targetLibs` set that can be used instead. The libraries in there philosophically come from targetPackages since they are used by the core libs and will be linked against user code. However, when cross compiling GHC it's always a native compiler, so we can and have to use pkgsHostTarget (targetPackages would be empty). This is explained more in the acccompanying comment. An alternative to this approach is not to pass in the libraries explicitly via `--with-*` flags and rely on cc-wrapper and splicing to pick the correct library. This works well for ncurses and probably merits testing for other libraries as well since it's very simple. It would need to be verified, however, that configure doesn't discover the “wrong” library and leaks it somewhere. Co-authored-by: sternenseemann --- pkgs/development/compilers/ghc/8.10.7.nix | 39 ++++++++++++++++--- .../compilers/ghc/common-hadrian.nix | 35 ++++++++++++++--- .../ghc/common-make-native-bignum.nix | 30 ++++++++++++-- 3 files changed, 89 insertions(+), 15 deletions(-) diff --git a/pkgs/development/compilers/ghc/8.10.7.nix b/pkgs/development/compilers/ghc/8.10.7.nix index 873925417c16c..8874f4221e814 100644 --- a/pkgs/development/compilers/ghc/8.10.7.nix +++ b/pkgs/development/compilers/ghc/8.10.7.nix @@ -72,7 +72,6 @@ assert !enableIntegerSimple -> gmp != null; assert (stdenv.targetPlatform != stdenv.hostPlatform) -> !enableHaddockProgram; let - libffi_name = if stdenv.isDarwin && stdenv.isAarch64 then "libffi" else "libffi_3_3"; inherit (stdenv) buildPlatform hostPlatform targetPlatform; inherit (bootPkgs) ghc; @@ -191,6 +190,36 @@ let (lib.optionalString enableIntegerSimple "-integer-simple") ]; + libffi_name = if stdenv.isDarwin && stdenv.isAarch64 then "libffi" else "libffi_3_3"; + + # These libraries are library dependencies of the standard libraries bundled + # by GHC (core libs) users will link their compiled artifacts again. Thus, + # they should be taken from targetPackages. + # + # We need to use pkgsHostTarget if we are cross compiling a native GHC compiler, + # though (when native compiling GHC, pkgsHostTarget == targetPackages): + # + # 1. targetPackages would be empty(-ish) in this situation since we can't + # execute cross compiled compilers in order to obtain the libraries + # that would be in targetPackages. + # 2. pkgsHostTarget is fine to use since hostPlatform == targetPlatform in this + # situation. + # 3. The core libs used by the final GHC (stage 2) for user artifacts are also + # used to build stage 2 GHC itself, i.e. the core libs are both host and + # target. + targetLibs = + let + basePackageSet = + if hostPlatform != targetPlatform + then targetPackages + else pkgsHostTarget; + in + { + inherit (basePackageSet) gmp; + # dynamic inherits are not possible in Nix + libffi = basePackageSet.${libffi_name}; + }; + in # C compiler, bintools and LLVM are used at build time, but will also leak into @@ -348,11 +377,11 @@ stdenv.mkDerivation (rec { "--datadir=$doc/share/doc/ghc" ] ++ lib.optionals (args.${libffi_name} != null) [ "--with-system-libffi" - "--with-ffi-includes=${targetPackages.${libffi_name}.dev}/include" - "--with-ffi-libraries=${targetPackages.${libffi_name}.out}/lib" + "--with-ffi-includes=${targetLibs.libffi.dev}/include" + "--with-ffi-libraries=${targetLibs.libffi.out}/lib" ] ++ lib.optionals (targetPlatform == hostPlatform && !enableIntegerSimple) [ - "--with-gmp-includes=${targetPackages.gmp.dev}/include" - "--with-gmp-libraries=${targetPackages.gmp.out}/lib" + "--with-gmp-includes=${targetLibs.gmp.dev}/include" + "--with-gmp-libraries=${targetLibs.gmp.out}/lib" ] ++ lib.optionals (targetPlatform == hostPlatform && hostPlatform.libc != "glibc" && !targetPlatform.isWindows) [ "--with-iconv-includes=${libiconv}/include" "--with-iconv-libraries=${libiconv}/lib" diff --git a/pkgs/development/compilers/ghc/common-hadrian.nix b/pkgs/development/compilers/ghc/common-hadrian.nix index 78e0e2dd167e0..11d6059a5616d 100644 --- a/pkgs/development/compilers/ghc/common-hadrian.nix +++ b/pkgs/development/compilers/ghc/common-hadrian.nix @@ -324,6 +324,29 @@ let (lib.optionalString enableNativeBignum "-native-bignum") ]; + # These libraries are library dependencies of the standard libraries bundled + # by GHC (core libs) users will link their compiled artifacts again. Thus, + # they should be taken from targetPackages. + # + # We need to use pkgsHostTarget if we are cross compiling a native GHC compiler, + # though (when native compiling GHC, pkgsHostTarget == targetPackages): + # + # 1. targetPackages would be empty(-ish) in this situation since we can't + # execute cross compiled compilers in order to obtain the libraries + # that would be in targetPackages. + # 2. pkgsHostTarget is fine to use since hostPlatform == targetPlatform in this + # situation. + # 3. The core libs used by the final GHC (stage 2) for user artifacts are also + # used to build stage 2 GHC itself, i.e. the core libs are both host and + # target. + targetLibs = { + inherit + (if hostPlatform != targetPlatform then targetPackages else pkgsHostTarget) + elfutils + gmp + libffi; + }; + in # C compiler, bintools and LLVM are used at build time, but will also leak into @@ -447,11 +470,11 @@ stdenv.mkDerivation ({ "--datadir=$doc/share/doc/ghc" ] ++ lib.optionals (libffi != null && !targetPlatform.isGhcjs) [ "--with-system-libffi" - "--with-ffi-includes=${targetPackages.libffi.dev}/include" - "--with-ffi-libraries=${targetPackages.libffi.out}/lib" + "--with-ffi-includes=${targetLibs.libffi.dev}/include" + "--with-ffi-libraries=${targetLibs.libffi.out}/lib" ] ++ lib.optionals (targetPlatform == hostPlatform && !enableNativeBignum) [ - "--with-gmp-includes=${targetPackages.gmp.dev}/include" - "--with-gmp-libraries=${targetPackages.gmp.out}/lib" + "--with-gmp-includes=${targetLibs.gmp.dev}/include" + "--with-gmp-libraries=${targetLibs.gmp.out}/lib" ] ++ lib.optionals (targetPlatform == hostPlatform && hostPlatform.libc != "glibc" && !targetPlatform.isWindows) [ "--with-iconv-includes=${libiconv}/include" "--with-iconv-libraries=${libiconv}/lib" @@ -465,8 +488,8 @@ stdenv.mkDerivation ({ "--disable-large-address-space" ] ++ lib.optionals enableDwarf [ "--enable-dwarf-unwind" - "--with-libdw-includes=${lib.getDev targetPackages.elfutils}/include" - "--with-libdw-libraries=${lib.getLib targetPackages.elfutils}/lib" + "--with-libdw-includes=${lib.getDev targetLibs.elfutils}/include" + "--with-libdw-libraries=${lib.getLib targetLibs.elfutils}/lib" ] ++ lib.optionals targetPlatform.isDarwin [ # Darwin uses llvm-ar. GHC will try to use `-L` with `ar` when it is `llvm-ar` # but it doesn’t currently work because Cabal never uses `-L` on Darwin. See: diff --git a/pkgs/development/compilers/ghc/common-make-native-bignum.nix b/pkgs/development/compilers/ghc/common-make-native-bignum.nix index 3d5d9d6329a50..812bb8fa95ab3 100644 --- a/pkgs/development/compilers/ghc/common-make-native-bignum.nix +++ b/pkgs/development/compilers/ghc/common-make-native-bignum.nix @@ -191,6 +191,28 @@ let (lib.optionalString enableNativeBignum "-native-bignum") ]; + # These libraries are library dependencies of the standard libraries bundled + # by GHC (core libs) users will link their compiled artifacts again. Thus, + # they should be taken from targetPackages. + # + # We need to use pkgsHostTarget if we are cross compiling a native GHC compiler, + # though (when native compiling GHC, pkgsHostTarget == targetPackages): + # + # 1. targetPackages would be empty(-ish) in this situation since we can't + # execute cross compiled compilers in order to obtain the libraries + # that would be in targetPackages. + # 2. pkgsHostTarget is fine to use since hostPlatform == targetPlatform in this + # situation. + # 3. The core libs used by the final GHC (stage 2) for user artifacts are also + # used to build stage 2 GHC itself, i.e. the core libs are both host and + # target. + targetLibs = { + inherit + (if hostPlatform != targetPlatform then targetPackages else pkgsHostTarget) + gmp + libffi; + }; + in # C compiler, bintools and LLVM are used at build time, but will also leak into @@ -366,11 +388,11 @@ stdenv.mkDerivation (rec { "--datadir=$doc/share/doc/ghc" ] ++ lib.optionals (libffi != null) [ "--with-system-libffi" - "--with-ffi-includes=${targetPackages.libffi.dev}/include" - "--with-ffi-libraries=${targetPackages.libffi.out}/lib" + "--with-ffi-includes=${targetLibs.libffi.dev}/include" + "--with-ffi-libraries=${targetLibs.libffi.out}/lib" ] ++ lib.optionals (targetPlatform == hostPlatform && !enableNativeBignum) [ - "--with-gmp-includes=${targetPackages.gmp.dev}/include" - "--with-gmp-libraries=${targetPackages.gmp.out}/lib" + "--with-gmp-includes=${targetLibs.gmp.dev}/include" + "--with-gmp-libraries=${targetLibs.gmp.out}/lib" ] ++ lib.optionals (targetPlatform == hostPlatform && hostPlatform.libc != "glibc" && !targetPlatform.isWindows) [ "--with-iconv-includes=${libiconv}/include" "--with-iconv-libraries=${libiconv}/lib" From d5f666f593f04e79750a2663703651f990942fc6 Mon Sep 17 00:00:00 2001 From: Alex Tunstall Date: Sun, 23 Jul 2023 09:56:56 +0100 Subject: [PATCH 13/50] haskell.compiler.ghc*: don't configure --host --- pkgs/development/compilers/ghc/8.10.7.nix | 7 +++++-- .../compilers/ghc/common-make-native-bignum.nix | 7 +++++-- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/pkgs/development/compilers/ghc/8.10.7.nix b/pkgs/development/compilers/ghc/8.10.7.nix index 8874f4221e814..8601a1361f1f6 100644 --- a/pkgs/development/compilers/ghc/8.10.7.nix +++ b/pkgs/development/compilers/ghc/8.10.7.nix @@ -368,9 +368,12 @@ stdenv.mkDerivation (rec { done ''; + # Although it is usually correct to pass --host, we don't do that here because + # GHC's usage of build, host, and target is non-standard. + # See https://gitlab.haskell.org/ghc/ghc/-/wikis/building/cross-compiling # TODO(@Ericson2314): Always pass "--target" and always prefix. - configurePlatforms = [ "build" "host" ] - ++ lib.optional (targetPlatform != hostPlatform) "target"; + configurePlatforms = [ "build" ] + ++ lib.optional (buildPlatform != hostPlatform || targetPlatform != hostPlatform) "target"; # `--with` flags for libraries needed for RTS linker configureFlags = [ diff --git a/pkgs/development/compilers/ghc/common-make-native-bignum.nix b/pkgs/development/compilers/ghc/common-make-native-bignum.nix index 812bb8fa95ab3..4992be47cf7bb 100644 --- a/pkgs/development/compilers/ghc/common-make-native-bignum.nix +++ b/pkgs/development/compilers/ghc/common-make-native-bignum.nix @@ -379,9 +379,12 @@ stdenv.mkDerivation (rec { 'MinBootGhcVersion="8.10"' ''; + # Although it is usually correct to pass --host, we don't do that here because + # GHC's usage of build, host, and target is non-standard. + # See https://gitlab.haskell.org/ghc/ghc/-/wikis/building/cross-compiling # TODO(@Ericson2314): Always pass "--target" and always prefix. - configurePlatforms = [ "build" "host" ] - ++ lib.optional (targetPlatform != hostPlatform) "target"; + configurePlatforms = [ "build" ] + ++ lib.optional (buildPlatform != hostPlatform || targetPlatform != hostPlatform) "target"; # `--with` flags for libraries needed for RTS linker configureFlags = [ From bd331dc379a1f3e6967d7e98e032a860ed30fccb Mon Sep 17 00:00:00 2001 From: sternenseemann Date: Sun, 14 Apr 2024 15:05:58 +0200 Subject: [PATCH 14/50] ghc-settings-edit: init at 0.1.0 --- .../haskell-modules/non-hackage-packages.nix | 2 + .../haskell/ghc-settings-edit/default.nix | 33 ++++++ .../ghc-settings-edit/ghc-settings-edit.lhs | 109 ++++++++++++++++++ 3 files changed, 144 insertions(+) create mode 100644 pkgs/development/tools/haskell/ghc-settings-edit/default.nix create mode 100644 pkgs/development/tools/haskell/ghc-settings-edit/ghc-settings-edit.lhs diff --git a/pkgs/development/haskell-modules/non-hackage-packages.nix b/pkgs/development/haskell-modules/non-hackage-packages.nix index bb995435fc600..c5cfbcec0313b 100644 --- a/pkgs/development/haskell-modules/non-hackage-packages.nix +++ b/pkgs/development/haskell-modules/non-hackage-packages.nix @@ -17,6 +17,8 @@ self: super: { # from the latest master instead of the current version on Hackage. cabal2nix-unstable = self.callPackage ./cabal2nix-unstable.nix { }; + ghc-settings-edit = self.callPackage ../tools/haskell/ghc-settings-edit { }; + # https://github.com/channable/vaultenv/issues/1 vaultenv = self.callPackage ../tools/haskell/vaultenv { }; diff --git a/pkgs/development/tools/haskell/ghc-settings-edit/default.nix b/pkgs/development/tools/haskell/ghc-settings-edit/default.nix new file mode 100644 index 0000000000000..f1f08b620588c --- /dev/null +++ b/pkgs/development/tools/haskell/ghc-settings-edit/default.nix @@ -0,0 +1,33 @@ +{ + stdenv, + ghc, + lib, +}: + +stdenv.mkDerivation { + pname = "ghc-settings-edit"; + version = "0.1.0"; + # See the source code for an explanation + src = ./ghc-settings-edit.lhs; + dontUnpack = true; + dontBuild = true; + + nativeBuildInputs = [ ghc ]; + installPhase = '' + runHook preInstall + + mkdir -p "$out/bin" + ${ghc.targetPrefix}ghc --make "$src" -o "$out/bin/ghc-settings-edit" + + runHook postInstall + ''; + + meta = { + license = [ + lib.licenses.mit + lib.licenses.bsd3 + ]; + platforms = lib.platforms.all; + description = "Tool for editing GHC's settings file"; + }; +} diff --git a/pkgs/development/tools/haskell/ghc-settings-edit/ghc-settings-edit.lhs b/pkgs/development/tools/haskell/ghc-settings-edit/ghc-settings-edit.lhs new file mode 100644 index 0000000000000..3b37bafe0d622 --- /dev/null +++ b/pkgs/development/tools/haskell/ghc-settings-edit/ghc-settings-edit.lhs @@ -0,0 +1,109 @@ +ghc-settings-edit is a small tool for changing certain fields in the settings +file that is part of every GHC installation (usually located at +lib/ghc-$version/lib/settings or lib/ghc-$version/settings). This is sometimes +necessary because GHC's build process leaks the tools used at build time into +the final settings file. This is fine, as long as the build and host platform +of the GHC build is the same since it will be possible to execute the tools +used at build time at run time. In case we are cross compiling GHC itself, +the settings file needs to be changed so that the correct tools are used in the +final installation. The GHC build system itself doesn't allow for this due to +its somewhat peculiar bootstrapping mechanism. + +This tool was originally written by sternenseemann and is licensed under the MIT +license (as is nixpkgs) as well as the BSD 3 Clause license since it incorporates +some code from GHC. It is primarily intended for use in nixpkgs, so it should be +considered unstable: No guarantees about the stability of its command line +interface are made at this time. + +> -- SPDX-License-Identifier: MIT AND BSD-3-Clause +> {-# LANGUAGE LambdaCase #-} +> module Main where + +ghc-settings-edit requires no additional dependencies to the ones already +required to bootstrap GHC. This means that it only depends on GHC and core +libraries shipped with the compiler (base and containers). This property should +be preserved going forward as to not needlessly complicate bootstrapping GHC +in nixpkgs. Additionally, a wide range of library versions and thus GHC versions +should be supported (via CPP if necessary). + +> import Control.Monad (foldM) +> import qualified Data.Map.Lazy as Map +> import System.Environment (getArgs, getProgName) +> import Text.Read (readEither) + +Note that the containers dependency is needed to represent the contents of the +settings file. In theory, [(String, String)] (think lookup) would suffice, but +base doesn't provide any facilities for updating such lists. To avoid needlessly +reinventing the wheel here, we depend on an extra core library. + +> type SettingsMap = Map.Map String String + +ghc-settings-edit accepts the following arguments: + +- The path to the settings file which is edited in place. +- For every field in the settings file to be updated, two arguments need to be + passed: the name of the field and its new value. Any number of these pairs + may be provided. If a field is missing from the given settings file, + it won't be added (see also below). + +> usage :: String -> String +> usage name = "Usage: " ++ name ++ " FILE [KEY NEWVAL [KEY2 NEWVAL2 ...]]" + +The arguments and the contents of the settings file are fed into the performEdits +function which implements the main logic of ghc-settings-edit (except IO). + +> performEdits :: [String] -> String -> Either String String +> performEdits editArgs settingsString = do + +First, the settings file is parsed and read into the SettingsMap structure. For +parsing, we can simply rely read, as GHC uses the familiar Read/Show format +(plus some formatting) for storing its settings. This is the main reason +ghc-settings-edit is written in Haskell: We don't need to roll our own parser. + +> settingsMap <- Map.fromList <$> readEither settingsString + +We also need to parse the remaining command line arguments (after the path) +which means splitting them into pairs of arguments describing the individual +edits. We use the chunkList utility function from GHC for this which is vendored +below. Since it doesn't guarantee that all sublists have the exact length given, +we'll have to check the length of the returned “pairs” later. + +> let edits = chunkList 2 editArgs + +Since each edit is a transformation of the SettingsMap, we use a fold to go +through the edits. The Either monad allows us to bail out if one is malformed. +The use of Map.adjust ensures that fields that aren't present in the original +settings file aren't added since the corresponding GHC installation wouldn't +understand them. Note that this is done silently which may be suboptimal: +It could be better to fail. + +> show . Map.toList <$> foldM applyEdit settingsMap edits +> where +> applyEdit :: SettingsMap -> [String] -> Either String SettingsMap +> applyEdit m [key, newValue] = Right $ Map.adjust (const newValue) key m +> applyEdit _ _ = Left "Uneven number of edit arguments provided" + +main just wraps performEdits and takes care of reading from and writing to the +given file. + +> main :: IO () +> main = +> getArgs >>= \case +> (settingsFile:edits) -> do +> orig <- readFile settingsFile +> case performEdits edits orig of +> Right edited -> writeFile settingsFile edited +> Left errorMsg -> error errorMsg +> _ -> do +> name <- getProgName +> error $ usage name + +As mentioned, chunkList is taken from GHC, specifically GHC.Utils.Misc of GHC +verson 9.8.2. We don't depend on the ghc library directly (which would be +possible in theory) since there are no stability guarantees or deprecation +windows for the ghc's public library. + +> -- | Split a list into chunks of /n/ elements +> chunkList :: Int -> [a] -> [[a]] +> chunkList _ [] = [] +> chunkList n xs = as : chunkList n bs where (as,bs) = splitAt n xs From 884a76c5e61c25d94695433101b9a9d46814193d Mon Sep 17 00:00:00 2001 From: Alex Tunstall Date: Sun, 23 Jul 2023 10:01:19 +0100 Subject: [PATCH 15/50] haskell.compiler.ghc*: use host->target CC and tools in settings GHC's build system assumes that the C compiler, tools etc. discovered during configure can also be used at runtime. This means that the CC, LD, AR etc. variables given at runtime are used to populate the settings file which GHC uses to lookup the tools it needs. The implicit assumption of this mechanism is that the build and runtime environment of GHC are similar enough and PATH is used to find the tools. I. e. if we set CC=clang, we wouldn't need to worry about this as much. We, however, pass absolute paths which is useful since it allows GHC to work outside of stdenv (as long as e. g. no FFI is involved). Even so, until now, we didn't really have any problems stemming from this, as we used pkgsBuildTarget to get everything we need. The compiler we'd want to execute would in principle need to come from pkgsHostTarget. 1. For native compilers, all package sets are the same since build == host == target. 2. For cross compilers build == host, so pkgsBuildTarget is practically the same as pkgsHostTarget. When cross-compiling a native compiler, build != host, so we need to actually ensure that GHC uses different tools at runtime compared to bootstrapping. There is currently no intended way to achieve this, so we use a custom tool to edit the settings file. An alternative would be to patch the build system, but this would be difficult to maintain. We could go down this route if there's interest from upstream to provide a proper way to specify the runtime tools. Co-authored-by: sternenseemann --- pkgs/development/compilers/ghc/8.10.7.nix | 21 +++++++++++------ .../compilers/ghc/common-hadrian.nix | 23 +++++++++++++++---- .../ghc/common-make-native-bignum.nix | 21 +++++++++++------ 3 files changed, 47 insertions(+), 18 deletions(-) diff --git a/pkgs/development/compilers/ghc/8.10.7.nix b/pkgs/development/compilers/ghc/8.10.7.nix index 8601a1361f1f6..59f02b7ab57c7 100644 --- a/pkgs/development/compilers/ghc/8.10.7.nix +++ b/pkgs/development/compilers/ghc/8.10.7.nix @@ -140,6 +140,7 @@ let buildCC = buildPackages.stdenv.cc; targetCC = builtins.head toolsForTarget; + installCC = pkgsHostTarget.targetPackages.stdenv.cc; # toolPath calculates the absolute path to the name tool associated with a # given `stdenv.cc` derivation, i.e. it picks the correct derivation to take @@ -222,13 +223,6 @@ let in -# C compiler, bintools and LLVM are used at build time, but will also leak into -# the resulting GHC's settings file and used at runtime. This means that we are -# currently only able to build GHC if hostPlatform == buildPlatform. -assert targetCC == pkgsHostTarget.targetPackages.stdenv.cc; -assert buildTargetLlvmPackages.llvm == llvmPackages.llvm; -assert stdenv.targetPlatform.isDarwin -> buildTargetLlvmPackages.clang == llvmPackages.clang; - stdenv.mkDerivation (rec { version = "8.10.7"; pname = "${targetPrefix}ghc${variantSuffix}"; @@ -407,6 +401,7 @@ stdenv.mkDerivation (rec { nativeBuildInputs = [ perl autoreconfHook autoconf automake m4 python3 ghc bootPkgs.alex bootPkgs.happy bootPkgs.hscolour + bootPkgs.ghc-settings-edit ] ++ lib.optionals (stdenv.isDarwin && stdenv.isAarch64) [ autoSignDarwinBinariesHook ] ++ lib.optionals enableDocs [ @@ -449,6 +444,18 @@ stdenv.mkDerivation (rec { requiredSystemFeatures = [ "big-parallel" ]; postInstall = '' + settingsFile="$out/lib/${targetPrefix}${passthru.haskellCompilerName}/settings" + + # Make the installed GHC use the host->target tools. + ghc-settings-edit "$settingsFile" \ + "C compiler command" "${toolPath "cc" installCC}" \ + "Haskell CPP command" "${toolPath "cc" installCC}" \ + "C++ compiler command" "${toolPath "c++" installCC}" \ + "ld command" "${toolPath "ld${lib.optionalString useLdGold ".gold"}" installCC}" \ + "Merge objects command" "${toolPath "ld${lib.optionalString useLdGold ".gold"}" installCC}" \ + "ar command" "${toolPath "ar" installCC}" \ + "ranlib command" "${toolPath "ranlib" installCC}" + # Install the bash completion file. install -D -m 444 utils/completion/ghc.bash $out/share/bash-completion/completions/${targetPrefix}ghc ''; diff --git a/pkgs/development/compilers/ghc/common-hadrian.nix b/pkgs/development/compilers/ghc/common-hadrian.nix index 11d6059a5616d..4487eac6c378c 100644 --- a/pkgs/development/compilers/ghc/common-hadrian.nix +++ b/pkgs/development/compilers/ghc/common-hadrian.nix @@ -274,6 +274,7 @@ let buildCC = buildPackages.stdenv.cc; targetCC = builtins.head toolsForTarget; + installCC = pkgsHostTarget.targetPackages.stdenv.cc; # toolPath calculates the absolute path to the name tool associated with a # given `stdenv.cc` derivation, i.e. it picks the correct derivation to take @@ -347,6 +348,9 @@ let libffi; }; + # Our Cabal compiler name + haskellCompilerName = "ghc-${version}"; + in # C compiler, bintools and LLVM are used at build time, but will also leak into @@ -510,6 +514,8 @@ stdenv.mkDerivation ({ autoconf automake m4 # Python is used in a few scripts invoked by hadrian to generate e.g. rts headers. python3 + # Tool used to update GHC's settings file in postInstall + bootPkgs.ghc-settings-edit ] ++ lib.optionals (stdenv.isDarwin && stdenv.isAarch64) [ autoSignDarwinBinariesHook ] ++ lib.optionals enableDocs [ @@ -593,19 +599,28 @@ stdenv.mkDerivation ({ # leave bindist directory popd + settingsFile="$out/lib/${targetPrefix}${haskellCompilerName}/lib/settings" + + # Make the installed GHC use the host->target tools. + ghc-settings-edit "$settingsFile" \ + "C compiler command" "${toolPath "cc" installCC}" \ + "Haskell CPP command" "${toolPath "cc" installCC}" \ + "C++ compiler command" "${toolPath "c++" installCC}" \ + "ld command" "${toolPath "ld${lib.optionalString useLdGold ".gold"}" installCC}" \ + "Merge objects command" "${toolPath "ld${lib.optionalString useLdGold ".gold"}" installCC}" \ + "ar command" "${toolPath "ar" installCC}" \ + "ranlib command" "${toolPath "ranlib" installCC}" + # Install the bash completion file. install -Dm 644 utils/completion/ghc.bash $out/share/bash-completion/completions/${targetPrefix}ghc ''; passthru = { - inherit bootPkgs targetPrefix; + inherit bootPkgs targetPrefix haskellCompilerName; inherit llvmPackages; inherit enableShared; - # Our Cabal compiler name - haskellCompilerName = "ghc-${version}"; - # Expose hadrian used for bootstrapping, for debugging purposes inherit hadrian; diff --git a/pkgs/development/compilers/ghc/common-make-native-bignum.nix b/pkgs/development/compilers/ghc/common-make-native-bignum.nix index 4992be47cf7bb..4067bc084fecc 100644 --- a/pkgs/development/compilers/ghc/common-make-native-bignum.nix +++ b/pkgs/development/compilers/ghc/common-make-native-bignum.nix @@ -141,6 +141,7 @@ let buildCC = buildPackages.stdenv.cc; targetCC = builtins.head toolsForTarget; + installCC = pkgsHostTarget.targetPackages.stdenv.cc; # toolPath calculates the absolute path to the name tool associated with a # given `stdenv.cc` derivation, i.e. it picks the correct derivation to take @@ -215,13 +216,6 @@ let in -# C compiler, bintools and LLVM are used at build time, but will also leak into -# the resulting GHC's settings file and used at runtime. This means that we are -# currently only able to build GHC if hostPlatform == buildPlatform. -assert targetCC == pkgsHostTarget.targetPackages.stdenv.cc; -assert buildTargetLlvmPackages.llvm == llvmPackages.llvm; -assert stdenv.targetPlatform.isDarwin -> buildTargetLlvmPackages.clang == llvmPackages.clang; - stdenv.mkDerivation (rec { pname = "${targetPrefix}ghc${variantSuffix}"; inherit version; @@ -418,6 +412,7 @@ stdenv.mkDerivation (rec { nativeBuildInputs = [ perl autoconf automake m4 python3 ghc bootPkgs.alex bootPkgs.happy bootPkgs.hscolour + bootPkgs.ghc-settings-edit ] ++ lib.optionals (stdenv.isDarwin && stdenv.isAarch64) [ autoSignDarwinBinariesHook ] ++ lib.optionals enableDocs [ @@ -464,6 +459,18 @@ stdenv.mkDerivation (rec { requiredSystemFeatures = [ "big-parallel" ]; postInstall = '' + settingsFile="$out/lib/${targetPrefix}${passthru.haskellCompilerName}/settings" + + # Make the installed GHC use the host->target tools. + ghc-settings-edit "$settingsFile" \ + "C compiler command" "${toolPath "cc" installCC}" \ + "Haskell CPP command" "${toolPath "cc" installCC}" \ + "C++ compiler command" "${toolPath "c++" installCC}" \ + "ld command" "${toolPath "ld${lib.optionalString useLdGold ".gold"}" installCC}" \ + "Merge objects command" "${toolPath "ld${lib.optionalString useLdGold ".gold"}" installCC}" \ + "ar command" "${toolPath "ar" installCC}" \ + "ranlib command" "${toolPath "ranlib" installCC}" + # Install the bash completion file. install -D -m 444 utils/completion/ghc.bash $out/share/bash-completion/completions/${targetPrefix}ghc ''; From f8650440993dfbe139fe94d6c0c727f52c640b73 Mon Sep 17 00:00:00 2001 From: Alex Tunstall Date: Sun, 23 Jul 2023 10:10:04 +0100 Subject: [PATCH 16/50] haskell.compiler.ghc*: don't cross-compile haddock --- pkgs/development/compilers/ghc/8.10.7.nix | 4 ++-- pkgs/development/compilers/ghc/common-make-native-bignum.nix | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/pkgs/development/compilers/ghc/8.10.7.nix b/pkgs/development/compilers/ghc/8.10.7.nix index 59f02b7ab57c7..f0514b71e9cd6 100644 --- a/pkgs/development/compilers/ghc/8.10.7.nix +++ b/pkgs/development/compilers/ghc/8.10.7.nix @@ -58,7 +58,7 @@ , enableHaddockProgram ? # Disabled for cross; see note [HADDOCK_DOCS]. - (stdenv.targetPlatform == stdenv.hostPlatform) + (stdenv.buildPlatform == stdenv.hostPlatform && stdenv.targetPlatform == stdenv.hostPlatform) , # Whether to disable the large address space allocator # necessary fix for iOS: https://www.reddit.com/r/haskell/comments/4ttdz1/building_an_osxi386_to_iosarm64_cross_compiler/d5qvd67/ @@ -69,7 +69,7 @@ assert !enableIntegerSimple -> gmp != null; # Cross cannot currently build the `haddock` program for silly reasons, # see note [HADDOCK_DOCS]. -assert (stdenv.targetPlatform != stdenv.hostPlatform) -> !enableHaddockProgram; +assert (stdenv.buildPlatform != stdenv.hostPlatform || stdenv.targetPlatform != stdenv.hostPlatform) -> !enableHaddockProgram; let inherit (stdenv) buildPlatform hostPlatform targetPlatform; diff --git a/pkgs/development/compilers/ghc/common-make-native-bignum.nix b/pkgs/development/compilers/ghc/common-make-native-bignum.nix index 4067bc084fecc..4dff963c85510 100644 --- a/pkgs/development/compilers/ghc/common-make-native-bignum.nix +++ b/pkgs/development/compilers/ghc/common-make-native-bignum.nix @@ -61,7 +61,7 @@ , enableHaddockProgram ? # Disabled for cross; see note [HADDOCK_DOCS]. - (stdenv.targetPlatform == stdenv.hostPlatform) + (stdenv.buildPlatform == stdenv.hostPlatform && stdenv.targetPlatform == stdenv.hostPlatform) , # Whether to disable the large address space allocator # necessary fix for iOS: https://www.reddit.com/r/haskell/comments/4ttdz1/building_an_osxi386_to_iosarm64_cross_compiler/d5qvd67/ @@ -72,7 +72,7 @@ assert !enableNativeBignum -> gmp != null; # Cross cannot currently build the `haddock` program for silly reasons, # see note [HADDOCK_DOCS]. -assert (stdenv.targetPlatform != stdenv.hostPlatform) -> !enableHaddockProgram; +assert (stdenv.buildPlatform != stdenv.hostPlatform || stdenv.targetPlatform != stdenv.hostPlatform) -> !enableHaddockProgram; let inherit (stdenv) buildPlatform hostPlatform targetPlatform; From 35d77dde973460069f7a409268d7db93faab9309 Mon Sep 17 00:00:00 2001 From: Alex Tunstall Date: Sun, 23 Jul 2023 10:12:19 +0100 Subject: [PATCH 17/50] haskell.compiler.ghc*: add enableUnregisterised --- pkgs/development/compilers/ghc/8.10.7.nix | 8 ++++++++ pkgs/development/compilers/ghc/common-hadrian.nix | 8 ++++++++ .../compilers/ghc/common-make-native-bignum.nix | 10 ++++++++++ 3 files changed, 26 insertions(+) diff --git a/pkgs/development/compilers/ghc/8.10.7.nix b/pkgs/development/compilers/ghc/8.10.7.nix index f0514b71e9cd6..e223ef157df90 100644 --- a/pkgs/development/compilers/ghc/8.10.7.nix +++ b/pkgs/development/compilers/ghc/8.10.7.nix @@ -63,6 +63,12 @@ , # Whether to disable the large address space allocator # necessary fix for iOS: https://www.reddit.com/r/haskell/comments/4ttdz1/building_an_osxi386_to_iosarm64_cross_compiler/d5qvd67/ disableLargeAddressSpace ? stdenv.targetPlatform.isiOS + +, # Whether to build an unregisterised version of GHC. + # GHC will normally auto-detect whether it can do a registered build, but this + # option will force it to do an unregistered build when set to true. + # See https://gitlab.haskell.org/ghc/ghc/-/wikis/building/unregisterised + enableUnregisterised ? false }@args: assert !enableIntegerSimple -> gmp != null; @@ -390,6 +396,8 @@ stdenv.mkDerivation (rec { "CONF_GCC_LINKER_OPTS_STAGE2=-fuse-ld=gold" ] ++ lib.optionals (disableLargeAddressSpace) [ "--disable-large-address-space" + ] ++ lib.optionals enableUnregisterised [ + "--enable-unregisterised" ]; # Make sure we never relax`$PATH` and hooks support for compatibility. diff --git a/pkgs/development/compilers/ghc/common-hadrian.nix b/pkgs/development/compilers/ghc/common-hadrian.nix index 4487eac6c378c..f534ad3afd3e9 100644 --- a/pkgs/development/compilers/ghc/common-hadrian.nix +++ b/pkgs/development/compilers/ghc/common-hadrian.nix @@ -229,6 +229,12 @@ , # Whether to disable the large address space allocator # necessary fix for iOS: https://www.reddit.com/r/haskell/comments/4ttdz1/building_an_osxi386_to_iosarm64_cross_compiler/d5qvd67/ disableLargeAddressSpace ? stdenv.targetPlatform.isiOS + +, # Whether to build an unregisterised version of GHC. + # GHC will normally auto-detect whether it can do a registered build, but this + # option will force it to do an unregistered build when set to true. + # See https://gitlab.haskell.org/ghc/ghc/-/wikis/building/unregisterised + enableUnregisterised ? false }: assert !enableNativeBignum -> gmp != null; @@ -500,6 +506,8 @@ stdenv.mkDerivation ({ # https://gitlab.haskell.org/ghc/ghc/-/issues/23188 # https://github.com/haskell/cabal/issues/8882 "fp_cv_prog_ar_supports_dash_l=no" + ] ++ lib.optionals enableUnregisterised [ + "--enable-unregisterised" ]; # Make sure we never relax`$PATH` and hooks support for compatibility. diff --git a/pkgs/development/compilers/ghc/common-make-native-bignum.nix b/pkgs/development/compilers/ghc/common-make-native-bignum.nix index 4dff963c85510..e8cec98aaa364 100644 --- a/pkgs/development/compilers/ghc/common-make-native-bignum.nix +++ b/pkgs/development/compilers/ghc/common-make-native-bignum.nix @@ -66,6 +66,14 @@ , # Whether to disable the large address space allocator # necessary fix for iOS: https://www.reddit.com/r/haskell/comments/4ttdz1/building_an_osxi386_to_iosarm64_cross_compiler/d5qvd67/ disableLargeAddressSpace ? stdenv.targetPlatform.isiOS + +, # Whether to build an unregisterised version of GHC. + # GHC will normally auto-detect whether it can do a registered build, but this + # option will force it to do an unregistered build when set to true. + # See https://gitlab.haskell.org/ghc/ghc/-/wikis/building/unregisterised + # Registerised RV64 compiler produces programs that segfault + # See https://gitlab.haskell.org/ghc/ghc/-/issues/23957 + enableUnregisterised ? stdenv.hostPlatform.isRiscV64 || stdenv.targetPlatform.isRiscV64 }: assert !enableNativeBignum -> gmp != null; @@ -401,6 +409,8 @@ stdenv.mkDerivation (rec { "CONF_GCC_LINKER_OPTS_STAGE2=-fuse-ld=gold" ] ++ lib.optionals (disableLargeAddressSpace) [ "--disable-large-address-space" + ] ++ lib.optionals enableUnregisterised [ + "--enable-unregisterised" ]; # Make sure we never relax`$PATH` and hooks support for compatibility. From d3bad452401c87015cf3a1ad754a6d14eb5e48fc Mon Sep 17 00:00:00 2001 From: Alex Tunstall Date: Sun, 23 Jul 2023 10:13:50 +0100 Subject: [PATCH 18/50] haskell.compiler.ghc*: assert cross is possible --- pkgs/development/compilers/ghc/8.10.7.nix | 3 +++ pkgs/development/compilers/ghc/common-hadrian.nix | 13 ++++++------- .../compilers/ghc/common-make-native-bignum.nix | 3 +++ 3 files changed, 12 insertions(+), 7 deletions(-) diff --git a/pkgs/development/compilers/ghc/8.10.7.nix b/pkgs/development/compilers/ghc/8.10.7.nix index e223ef157df90..7597e40bfe9ef 100644 --- a/pkgs/development/compilers/ghc/8.10.7.nix +++ b/pkgs/development/compilers/ghc/8.10.7.nix @@ -77,6 +77,9 @@ assert !enableIntegerSimple -> gmp != null; # see note [HADDOCK_DOCS]. assert (stdenv.buildPlatform != stdenv.hostPlatform || stdenv.targetPlatform != stdenv.hostPlatform) -> !enableHaddockProgram; +# GHC does not support building when all 3 platforms are different. +assert stdenv.buildPlatform == stdenv.hostPlatform || stdenv.hostPlatform == stdenv.targetPlatform; + let inherit (stdenv) buildPlatform hostPlatform targetPlatform; diff --git a/pkgs/development/compilers/ghc/common-hadrian.nix b/pkgs/development/compilers/ghc/common-hadrian.nix index f534ad3afd3e9..a38706554dccb 100644 --- a/pkgs/development/compilers/ghc/common-hadrian.nix +++ b/pkgs/development/compilers/ghc/common-hadrian.nix @@ -239,6 +239,12 @@ assert !enableNativeBignum -> gmp != null; +# GHC does not support building when all 3 platforms are different. +assert stdenv.buildPlatform == stdenv.hostPlatform || stdenv.hostPlatform == stdenv.targetPlatform; + +# It is currently impossible to cross-compile GHC with Hadrian. +assert stdenv.buildPlatform == stdenv.hostPlatform; + let inherit (stdenv) buildPlatform hostPlatform targetPlatform; @@ -359,13 +365,6 @@ let in -# C compiler, bintools and LLVM are used at build time, but will also leak into -# the resulting GHC's settings file and used at runtime. This means that we are -# currently only able to build GHC if hostPlatform == buildPlatform. -assert !targetPlatform.isGhcjs -> targetCC == pkgsHostTarget.targetPackages.stdenv.cc; -assert buildTargetLlvmPackages.llvm == llvmPackages.llvm; -assert stdenv.targetPlatform.isDarwin -> buildTargetLlvmPackages.clang == llvmPackages.clang; - stdenv.mkDerivation ({ pname = "${targetPrefix}ghc${variantSuffix}"; inherit version; diff --git a/pkgs/development/compilers/ghc/common-make-native-bignum.nix b/pkgs/development/compilers/ghc/common-make-native-bignum.nix index e8cec98aaa364..dc8ddfd0d9c0d 100644 --- a/pkgs/development/compilers/ghc/common-make-native-bignum.nix +++ b/pkgs/development/compilers/ghc/common-make-native-bignum.nix @@ -82,6 +82,9 @@ assert !enableNativeBignum -> gmp != null; # see note [HADDOCK_DOCS]. assert (stdenv.buildPlatform != stdenv.hostPlatform || stdenv.targetPlatform != stdenv.hostPlatform) -> !enableHaddockProgram; +# GHC does not support building when all 3 platforms are different. +assert stdenv.buildPlatform == stdenv.hostPlatform || stdenv.hostPlatform == stdenv.targetPlatform; + let inherit (stdenv) buildPlatform hostPlatform targetPlatform; From 322bab828488c44c434b2fab7fcb15b640970cc8 Mon Sep 17 00:00:00 2001 From: Alex Tunstall Date: Sun, 23 Jul 2023 10:16:26 +0100 Subject: [PATCH 19/50] haskell.compiler.ghc*: allow all platforms Propagating the supported platforms of the boot compiler doesn't make much sense when unregistered cross-compilation is possible. --- pkgs/development/compilers/ghc/8.10.7.nix | 3 ++- pkgs/development/compilers/ghc/common-hadrian.nix | 3 ++- pkgs/development/compilers/ghc/common-make-native-bignum.nix | 3 ++- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/pkgs/development/compilers/ghc/8.10.7.nix b/pkgs/development/compilers/ghc/8.10.7.nix index 7597e40bfe9ef..294ec4d8c3c84 100644 --- a/pkgs/development/compilers/ghc/8.10.7.nix +++ b/pkgs/development/compilers/ghc/8.10.7.nix @@ -492,7 +492,8 @@ stdenv.mkDerivation (rec { guibou ] ++ lib.teams.haskell.members; timeout = 24 * 3600; - inherit (ghc.meta) license platforms; + platforms = lib.platforms.all; + inherit (ghc.meta) license; }; } // lib.optionalAttrs targetPlatform.useAndroidPrebuilt { diff --git a/pkgs/development/compilers/ghc/common-hadrian.nix b/pkgs/development/compilers/ghc/common-hadrian.nix index a38706554dccb..efdf6865bea03 100644 --- a/pkgs/development/compilers/ghc/common-hadrian.nix +++ b/pkgs/development/compilers/ghc/common-hadrian.nix @@ -643,7 +643,8 @@ stdenv.mkDerivation ({ guibou ] ++ lib.teams.haskell.members; timeout = 24 * 3600; - inherit (ghc.meta) license platforms; + platforms = lib.platforms.all; + inherit (ghc.meta) license; }; dontStrip = targetPlatform.useAndroidPrebuilt || targetPlatform.isWasm; diff --git a/pkgs/development/compilers/ghc/common-make-native-bignum.nix b/pkgs/development/compilers/ghc/common-make-native-bignum.nix index dc8ddfd0d9c0d..b3f04952de77c 100644 --- a/pkgs/development/compilers/ghc/common-make-native-bignum.nix +++ b/pkgs/development/compilers/ghc/common-make-native-bignum.nix @@ -509,7 +509,8 @@ stdenv.mkDerivation (rec { guibou ] ++ lib.teams.haskell.members; timeout = 24 * 3600; - inherit (ghc.meta) license platforms; + platforms = lib.platforms.all; + inherit (ghc.meta) license; }; } // lib.optionalAttrs targetPlatform.useAndroidPrebuilt { From bd373f03a0f4320df4f7ef42125ea27f6699353e Mon Sep 17 00:00:00 2001 From: Alex Tunstall Date: Sun, 23 Jul 2023 10:18:58 +0100 Subject: [PATCH 20/50] haskell.compiler.ghc*: use GHC from pkgsBuildBuild --- pkgs/top-level/haskell-packages.nix | 167 ++++++++++++++-------------- 1 file changed, 84 insertions(+), 83 deletions(-) diff --git a/pkgs/top-level/haskell-packages.nix b/pkgs/top-level/haskell-packages.nix index 6193d9d217ae9..2d54063e00746 100644 --- a/pkgs/top-level/haskell-packages.nix +++ b/pkgs/top-level/haskell-packages.nix @@ -1,4 +1,4 @@ -{ buildPackages, pkgsBuildTarget, pkgs, newScope, stdenv }: +{ buildPackages, pkgsBuildBuild, pkgsBuildTarget, pkgs, newScope, stdenv }: let # These are attributes in compiler that support integer-simple. @@ -52,7 +52,8 @@ in { package-list = callPackage ../development/haskell-modules/package-list.nix {}; - compiler = { + # Always get boot compilers from `pkgsBuildBuild` + compiler = let bb = pkgsBuildBuild.haskell; in { ghc865Binary = callPackage ../development/compilers/ghc/8.6.5-binary.nix { # Should be llvmPackages_6 which has been removed from nixpkgs llvmPackages = null; @@ -73,11 +74,11 @@ in { ghc8107 = callPackage ../development/compilers/ghc/8.10.7.nix { bootPkgs = # the oldest ghc with aarch64-darwin support is 8.10.5 - if stdenv.hostPlatform.isPower64 && stdenv.hostPlatform.isLittleEndian then + if stdenv.buildPlatform.isPower64 && stdenv.buildPlatform.isLittleEndian then # to my (@a-m-joseph) knowledge there are no newer official binaries for this platform - packages.ghc865Binary + bb.packages.ghc865Binary else - packages.ghc8107Binary; + bb.packages.ghc8107Binary; inherit (buildPackages.python311Packages) sphinx; # a distutils issue with 3.12 python3 = buildPackages.python311; # so that we don't have two of them # Need to use apple's patched xattr until @@ -91,10 +92,10 @@ in { ghc902 = callPackage ../development/compilers/ghc/9.0.2.nix { bootPkgs = # the oldest ghc with aarch64-darwin support is 8.10.5 - if stdenv.hostPlatform.isPower64 && stdenv.hostPlatform.isLittleEndian then - packages.ghc810 + if stdenv.buildPlatform.isPower64 && stdenv.buildPlatform.isLittleEndian then + bb.packages.ghc810 else - packages.ghc8107Binary; + bb.packages.ghc8107Binary; inherit (buildPackages.python311Packages) sphinx; # a distutils issue with 3.12 python3 = buildPackages.python311; # so that we don't have two of them inherit (buildPackages.darwin) autoSignDarwinBinariesHook xattr; @@ -104,10 +105,10 @@ in { ghc90 = compiler.ghc902; ghc925 = callPackage ../development/compilers/ghc/9.2.5.nix { bootPkgs = - if stdenv.hostPlatform.isPower64 && stdenv.hostPlatform.isLittleEndian then - packages.ghc810 + if stdenv.buildPlatform.isPower64 && stdenv.buildPlatform.isLittleEndian then + bb.packages.ghc810 else - packages.ghc8107Binary; + bb.packages.ghc8107Binary; inherit (buildPackages.python311Packages) sphinx; # a distutils issue with 3.12 python3 = buildPackages.python311; # so that we don't have two of them # Need to use apple's patched xattr until @@ -119,10 +120,10 @@ in { }; ghc926 = callPackage ../development/compilers/ghc/9.2.6.nix { bootPkgs = - if stdenv.hostPlatform.isPower64 && stdenv.hostPlatform.isLittleEndian then - packages.ghc810 + if stdenv.buildPlatform.isPower64 && stdenv.buildPlatform.isLittleEndian then + bb.packages.ghc810 else - packages.ghc8107Binary; + bb.packages.ghc8107Binary; inherit (buildPackages.python311Packages) sphinx; # a distutils issue with 3.12 python3 = buildPackages.python311; # so that we don't have two of them # Need to use apple's patched xattr until @@ -134,10 +135,10 @@ in { }; ghc927 = callPackage ../development/compilers/ghc/9.2.7.nix { bootPkgs = - if stdenv.hostPlatform.isPower64 && stdenv.hostPlatform.isLittleEndian then - packages.ghc810 + if stdenv.buildPlatform.isPower64 && stdenv.buildPlatform.isLittleEndian then + bb.packages.ghc810 else - packages.ghc8107Binary; + bb.packages.ghc8107Binary; inherit (buildPackages.python311Packages) sphinx; # a distutils issue with 3.12 python3 = buildPackages.python311; # so that we don't have two of them # Need to use apple's patched xattr until @@ -149,10 +150,10 @@ in { }; ghc928 = callPackage ../development/compilers/ghc/9.2.8.nix { bootPkgs = - if stdenv.hostPlatform.isPower64 && stdenv.hostPlatform.isLittleEndian then - packages.ghc810 + if stdenv.buildPlatform.isPower64 && stdenv.buildPlatform.isLittleEndian then + bb.packages.ghc810 else - packages.ghc8107Binary; + bb.packages.ghc8107Binary; inherit (buildPackages.python311Packages) sphinx; # a distutils issue with 3.12 python3 = buildPackages.python311; # so that we don't have two of them # Need to use apple's patched xattr until @@ -170,14 +171,14 @@ in { # Use 8.10 as a workaround where possible to keep bootstrap path short. # On ARM text won't build with GHC 8.10.* - if stdenv.hostPlatform.isAarch then + if stdenv.buildPlatform.isAarch then # TODO(@sternenseemann): package bindist - packages.ghc902 + bb.packages.ghc902 # No suitable bindists for powerpc64le - else if stdenv.hostPlatform.isPower64 && stdenv.hostPlatform.isLittleEndian then - packages.ghc902 + else if stdenv.buildPlatform.isPower64 && stdenv.buildPlatform.isLittleEndian then + bb.packages.ghc902 else - packages.ghc8107Binary; + bb.packages.ghc8107Binary; inherit (buildPackages.python311Packages) sphinx; # a distutils issue with 3.12 python3 = buildPackages.python311; # so that we don't have two of them # Need to use apple's patched xattr until @@ -195,14 +196,14 @@ in { # Use 8.10 as a workaround where possible to keep bootstrap path short. # On ARM text won't build with GHC 8.10.* - if stdenv.hostPlatform.isAarch then + if stdenv.buildPlatform.isAarch then # TODO(@sternenseemann): package bindist - packages.ghc902 + bb.packages.ghc902 # No suitable bindists for powerpc64le - else if stdenv.hostPlatform.isPower64 && stdenv.hostPlatform.isLittleEndian then - packages.ghc902 + else if stdenv.buildPlatform.isPower64 && stdenv.buildPlatform.isLittleEndian then + bb.packages.ghc902 else - packages.ghc8107Binary; + bb.packages.ghc8107Binary; inherit (buildPackages.python311Packages) sphinx; # a distutils issue with 3.12 python3 = buildPackages.python311; # so that we don't have two of them # Need to use apple's patched xattr until @@ -220,14 +221,14 @@ in { # Use 8.10 as a workaround where possible to keep bootstrap path short. # On ARM text won't build with GHC 8.10.* - if stdenv.hostPlatform.isAarch then + if stdenv.buildPlatform.isAarch then # TODO(@sternenseemann): package bindist - packages.ghc902 + bb.packages.ghc902 # No suitable bindists for powerpc64le - else if stdenv.hostPlatform.isPower64 && stdenv.hostPlatform.isLittleEndian then - packages.ghc902 + else if stdenv.buildPlatform.isPower64 && stdenv.buildPlatform.isLittleEndian then + bb.packages.ghc902 else - packages.ghc8107Binary; + bb.packages.ghc8107Binary; inherit (buildPackages.python3Packages) sphinx; # Need to use apple's patched xattr until # https://github.com/xattr/xattr/issues/44 and @@ -244,14 +245,14 @@ in { # Use 8.10 as a workaround where possible to keep bootstrap path short. # On ARM text won't build with GHC 8.10.* - if stdenv.hostPlatform.isAarch then + if stdenv.buildPlatform.isAarch then # TODO(@sternenseemann): package bindist - packages.ghc902 + bb.packages.ghc902 # No suitable bindists for powerpc64le - else if stdenv.hostPlatform.isPower64 && stdenv.hostPlatform.isLittleEndian then - packages.ghc902 + else if stdenv.buildPlatform.isPower64 && stdenv.buildPlatform.isLittleEndian then + bb.packages.ghc902 else - packages.ghc8107Binary; + bb.packages.ghc8107Binary; inherit (buildPackages.python3Packages) sphinx; # Need to use apple's patched xattr until # https://github.com/xattr/xattr/issues/44 and @@ -265,12 +266,12 @@ in { ghc963 = callPackage ../development/compilers/ghc/9.6.3.nix { bootPkgs = # For GHC 9.2 no armv7l bindists are available. - if stdenv.hostPlatform.isAarch32 then - packages.ghc928 - else if stdenv.hostPlatform.isPower64 && stdenv.hostPlatform.isLittleEndian then - packages.ghc928 + if stdenv.buildPlatform.isAarch32 then + bb.packages.ghc928 + else if stdenv.buildPlatform.isPower64 && stdenv.buildPlatform.isLittleEndian then + bb.packages.ghc928 else - packages.ghc924Binary; + bb.packages.ghc924Binary; inherit (buildPackages.python3Packages) sphinx; # Need to use apple's patched xattr until # https://github.com/xattr/xattr/issues/44 and @@ -283,12 +284,12 @@ in { ghc964 = callPackage ../development/compilers/ghc/9.6.4.nix { bootPkgs = # For GHC 9.2 no armv7l bindists are available. - if stdenv.hostPlatform.isAarch32 then - packages.ghc928 - else if stdenv.hostPlatform.isPower64 && stdenv.hostPlatform.isLittleEndian then - packages.ghc928 + if stdenv.buildPlatform.isAarch32 then + bb.packages.ghc928 + else if stdenv.buildPlatform.isPower64 && stdenv.buildPlatform.isLittleEndian then + bb.packages.ghc928 else - packages.ghc924Binary; + bb.packages.ghc924Binary; inherit (buildPackages.python3Packages) sphinx; # Need to use apple's patched xattr until # https://github.com/xattr/xattr/issues/44 and @@ -301,12 +302,12 @@ in { ghc965 = callPackage ../development/compilers/ghc/9.6.5.nix { bootPkgs = # For GHC 9.2 no armv7l bindists are available. - if stdenv.hostPlatform.isAarch32 then - packages.ghc928 - else if stdenv.hostPlatform.isPower64 && stdenv.hostPlatform.isLittleEndian then - packages.ghc928 + if stdenv.buildPlatform.isAarch32 then + bb.packages.ghc928 + else if stdenv.buildPlatform.isPower64 && stdenv.buildPlatform.isLittleEndian then + bb.packages.ghc928 else - packages.ghc924Binary; + bb.packages.ghc924Binary; inherit (buildPackages.python3Packages) sphinx; # Need to use apple's patched xattr until # https://github.com/xattr/xattr/issues/44 and @@ -319,12 +320,12 @@ in { ghc966 = callPackage ../development/compilers/ghc/9.6.6.nix { bootPkgs = # For GHC 9.2 no armv7l bindists are available. - if stdenv.hostPlatform.isAarch32 then - packages.ghc928 - else if stdenv.hostPlatform.isPower64 && stdenv.hostPlatform.isLittleEndian then - packages.ghc928 + if stdenv.buildPlatform.isAarch32 then + bb.packages.ghc928 + else if stdenv.buildPlatform.isPower64 && stdenv.buildPlatform.isLittleEndian then + bb.packages.ghc928 else - packages.ghc924Binary; + bb.packages.ghc924Binary; inherit (buildPackages.python3Packages) sphinx; # Need to use apple's patched xattr until # https://github.com/xattr/xattr/issues/44 and @@ -338,12 +339,12 @@ in { ghc981 = callPackage ../development/compilers/ghc/9.8.1.nix { bootPkgs = # For GHC 9.6 no armv7l bindists are available. - if stdenv.hostPlatform.isAarch32 then - packages.ghc963 - else if stdenv.hostPlatform.isPower64 && stdenv.hostPlatform.isLittleEndian then - packages.ghc963 + if stdenv.buildPlatform.isAarch32 then + bb.packages.ghc963 + else if stdenv.buildPlatform.isPower64 && stdenv.buildPlatform.isLittleEndian then + bb.packages.ghc963 else - packages.ghc963Binary; + bb.packages.ghc963Binary; inherit (buildPackages.python3Packages) sphinx; # Need to use apple's patched xattr until # https://github.com/xattr/xattr/issues/44 and @@ -356,12 +357,12 @@ in { ghc982 = callPackage ../development/compilers/ghc/9.8.2.nix { bootPkgs = # For GHC 9.6 no armv7l bindists are available. - if stdenv.hostPlatform.isAarch32 then - packages.ghc963 - else if stdenv.hostPlatform.isPower64 && stdenv.hostPlatform.isLittleEndian then - packages.ghc963 + if stdenv.buildPlatform.isAarch32 then + bb.packages.ghc963 + else if stdenv.buildPlatform.isPower64 && stdenv.buildPlatform.isLittleEndian then + bb.packages.ghc963 else - packages.ghc963Binary; + bb.packages.ghc963Binary; inherit (buildPackages.python3Packages) sphinx; # Need to use apple's patched xattr until # https://github.com/xattr/xattr/issues/44 and @@ -375,19 +376,19 @@ in { ghc9101 = callPackage ../development/compilers/ghc/9.10.1.nix { bootPkgs = # For GHC 9.6 no armv7l bindists are available. - if stdenv.hostPlatform.isAarch32 then - packages.ghc963 - else if stdenv.hostPlatform.isPower64 && stdenv.hostPlatform.isLittleEndian then - packages.ghc963 - else if stdenv.hostPlatform.isDarwin then + if stdenv.buildPlatform.isAarch32 then + bb.packages.ghc963 + else if stdenv.buildPlatform.isPower64 && stdenv.buildPlatform.isLittleEndian then + bb.packages.ghc963 + else if stdenv.buildPlatform.isDarwin then # it seems like the GHC 9.6.* bindists are built with a different # toolchain than we are using (which I'm guessing from the fact # that 9.6.4 bindists pass linker flags our ld doesn't support). # With both 9.6.3 and 9.6.4 binary it is impossible to link against # the clock package (probably a hsc2hs problem). - packages.ghc963 + bb.packages.ghc963 else - packages.ghc963Binary; + bb.packages.ghc963Binary; inherit (buildPackages.python3Packages) sphinx; # Need to use apple's patched xattr until # https://github.com/xattr/xattr/issues/44 and @@ -401,12 +402,12 @@ in { ghcHEAD = callPackage ../development/compilers/ghc/head.nix { bootPkgs = # For GHC 9.6 no armv7l bindists are available. - if stdenv.hostPlatform.isAarch32 then - packages.ghc963 - else if stdenv.hostPlatform.isPower64 && stdenv.hostPlatform.isLittleEndian then - packages.ghc963 + if stdenv.buildPlatform.isAarch32 then + bb.packages.ghc963 + else if stdenv.buildPlatform.isPower64 && stdenv.buildPlatform.isLittleEndian then + bb.packages.ghc963 else - packages.ghc963Binary; + bb.packages.ghc963Binary; inherit (buildPackages.python3Packages) sphinx; # Need to use apple's patched xattr until # https://github.com/xattr/xattr/issues/44 and @@ -419,7 +420,7 @@ in { ghcjs = compiler.ghcjs810; ghcjs810 = callPackage ../development/compilers/ghcjs/8.10 { - bootPkgs = packages.ghc810; + bootPkgs = bb.packages.ghc810; ghcjsSrcJson = ../development/compilers/ghcjs/8.10/git.json; stage0 = ../development/compilers/ghcjs/8.10/stage0.nix; }; From eeeeb555e2ce5e767674a9275d218bbea843486a Mon Sep 17 00:00:00 2001 From: Alex Tunstall Date: Fri, 29 Mar 2024 10:05:19 +0000 Subject: [PATCH 21/50] tests.cross.sanity: Add GHC to catch regressions This is to ensure that Haskell users on platforms that lack official bindists still have a convenient means of getting GHC running natively. In my admittedly somewhat limited testing on RISC-V, GHC 8.10.7 is able to bootstrap native builds for 9.2.8 and 9.4.5. GHC 9.2.8 and 9.4.5 are unable to bootstrap themselves and 9.6.2 when cross-compiled. If you're looking at this commit to see whether you can safely upgrade the compiler used here to remove 8.10, please try cross-compiling 9.0 or later and then booting a native GHC with it. --- pkgs/test/cross/default.nix | 2 ++ 1 file changed, 2 insertions(+) diff --git a/pkgs/test/cross/default.nix b/pkgs/test/cross/default.nix index bd233db4cd50f..f07e9c6220de7 100644 --- a/pkgs/test/cross/default.nix +++ b/pkgs/test/cross/default.nix @@ -146,6 +146,8 @@ let pkgs.pkgsCross.mips64el-linux-gnuabi64.stdenv pkgs.pkgsCross.mips64el-linux-gnuabin32.stdenv pkgs.pkgsCross.mingwW64.stdenv + # Uses the expression that is used by the most cross-compil_ed_ GHCs + pkgs.pkgsCross.riscv64.haskell.compiler.native-bignum.ghc948 ] ++ lib.optionals (with pkgs.stdenv.buildPlatform; isx86_64 && isLinux) [ # Musl-to-glibc cross on the same architecture tends to turn up From 8b6009f8526822e1e01c9428f99de4ef8983b816 Mon Sep 17 00:00:00 2001 From: sternenseemann Date: Thu, 5 Sep 2024 18:51:27 +0200 Subject: [PATCH 22/50] haskell.compiler.ghc96: fix incorrect unlit path for cross compilers Hadrian started installing unlit with a targetPrefix (if applicable) which wasn't the case with make before. Unfortunately, the logic to generate the settings file wasn't updated, so GHC 9.6.* cross compilers expect to find an unlit binary without a target prefix. Upstream issue: https://gitlab.haskell.org/ghc/ghc/-/issues/23317 --- pkgs/development/compilers/ghc/common-hadrian.nix | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/pkgs/development/compilers/ghc/common-hadrian.nix b/pkgs/development/compilers/ghc/common-hadrian.nix index efdf6865bea03..a2fddfc53764f 100644 --- a/pkgs/development/compilers/ghc/common-hadrian.nix +++ b/pkgs/development/compilers/ghc/common-hadrian.nix @@ -617,6 +617,15 @@ stdenv.mkDerivation ({ "Merge objects command" "${toolPath "ld${lib.optionalString useLdGold ".gold"}" installCC}" \ "ar command" "${toolPath "ar" installCC}" \ "ranlib command" "${toolPath "ranlib" installCC}" + '' + # Work around a GHC bug which causes unlit to be installed under a different + # name than is used in the settings file. + # https://gitlab.haskell.org/ghc/ghc/-/issues/23317 + + lib.optionalString (lib.versionOlder version "9.8") '' + ghc-settings-edit "$settingsFile" \ + "unlit command" "\$topdir/bin/${targetPrefix}unlit" + '' + + '' # Install the bash completion file. install -Dm 644 utils/completion/ghc.bash $out/share/bash-completion/completions/${targetPrefix}ghc From 8c08fb1090b4e24e22b1a5973557d0e322170d81 Mon Sep 17 00:00:00 2001 From: sternenseemann Date: Thu, 5 Sep 2024 18:56:06 +0200 Subject: [PATCH 23/50] haskell.compiler.ghc9{6,8,10}: update comment about stage selection The build platform doesn't matter for checking which stage is our final stage! Stage2 means host and target are sufficiently similar, Stage1 means host and target may differ. --- pkgs/development/compilers/ghc/common-hadrian.nix | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/pkgs/development/compilers/ghc/common-hadrian.nix b/pkgs/development/compilers/ghc/common-hadrian.nix index a2fddfc53764f..644481bb3081b 100644 --- a/pkgs/development/compilers/ghc/common-hadrian.nix +++ b/pkgs/development/compilers/ghc/common-hadrian.nix @@ -124,9 +124,8 @@ -- no way to set this via the command line finalStage :: Stage finalStage = ${ - # Always build the stage 2 compiler if possible. Note we can currently - # assume hostPlatform == buildPlatform. - # TODO(@sternenseemann): improve this condition when we can cross-compile GHC + # Always build the stage 2 compiler if possible. + # TODO(@sternensemann): unify condition with make-built GHCs if stdenv.hostPlatform.canExecute stdenv.targetPlatform then "Stage2" # native compiler or “native” cross e.g. pkgsStatic else "Stage1" # cross compiler From de13f8f45475ca2d7c8a9baa378f92e835703939 Mon Sep 17 00:00:00 2001 From: sternenseemann Date: Thu, 5 Sep 2024 23:41:28 +0200 Subject: [PATCH 24/50] haskell.compiler.*: set cctools tools in settings if applicable --- pkgs/development/compilers/ghc/8.10.7.nix | 7 +++++++ pkgs/development/compilers/ghc/common-hadrian.nix | 5 +++++ .../compilers/ghc/common-make-native-bignum.nix | 7 +++++++ 3 files changed, 19 insertions(+) diff --git a/pkgs/development/compilers/ghc/8.10.7.nix b/pkgs/development/compilers/ghc/8.10.7.nix index 294ec4d8c3c84..3fe17f620d074 100644 --- a/pkgs/development/compilers/ghc/8.10.7.nix +++ b/pkgs/development/compilers/ghc/8.10.7.nix @@ -466,6 +466,13 @@ stdenv.mkDerivation (rec { "Merge objects command" "${toolPath "ld${lib.optionalString useLdGold ".gold"}" installCC}" \ "ar command" "${toolPath "ar" installCC}" \ "ranlib command" "${toolPath "ranlib" installCC}" + '' + + lib.optionalString (stdenv.targetPlatform.linker == "cctools") '' + ghc-settings-edit "$settingsFile" \ + "otool command" "${toolPath "otool" installCC}" \ + "install_name_tool command" "${toolPath "install_name_tool" installCC}" + '' + + '' # Install the bash completion file. install -D -m 444 utils/completion/ghc.bash $out/share/bash-completion/completions/${targetPrefix}ghc diff --git a/pkgs/development/compilers/ghc/common-hadrian.nix b/pkgs/development/compilers/ghc/common-hadrian.nix index 644481bb3081b..7ccd781544848 100644 --- a/pkgs/development/compilers/ghc/common-hadrian.nix +++ b/pkgs/development/compilers/ghc/common-hadrian.nix @@ -617,6 +617,11 @@ stdenv.mkDerivation ({ "ar command" "${toolPath "ar" installCC}" \ "ranlib command" "${toolPath "ranlib" installCC}" '' + + lib.optionalString (stdenv.targetPlatform.linker == "cctools") '' + ghc-settings-edit "$settingsFile" \ + "otool command" "${toolPath "otool" installCC}" \ + "install_name_tool command" "${toolPath "install_name_tool" installCC}" + '' # Work around a GHC bug which causes unlit to be installed under a different # name than is used in the settings file. # https://gitlab.haskell.org/ghc/ghc/-/issues/23317 diff --git a/pkgs/development/compilers/ghc/common-make-native-bignum.nix b/pkgs/development/compilers/ghc/common-make-native-bignum.nix index b3f04952de77c..d121baf21c24c 100644 --- a/pkgs/development/compilers/ghc/common-make-native-bignum.nix +++ b/pkgs/development/compilers/ghc/common-make-native-bignum.nix @@ -483,6 +483,13 @@ stdenv.mkDerivation (rec { "Merge objects command" "${toolPath "ld${lib.optionalString useLdGold ".gold"}" installCC}" \ "ar command" "${toolPath "ar" installCC}" \ "ranlib command" "${toolPath "ranlib" installCC}" + '' + + lib.optionalString (stdenv.targetPlatform.linker == "cctools") '' + ghc-settings-edit "$settingsFile" \ + "otool command" "${toolPath "otool" installCC}" \ + "install_name_tool command" "${toolPath "install_name_tool" installCC}" + '' + + '' # Install the bash completion file. install -D -m 444 utils/completion/ghc.bash $out/share/bash-completion/completions/${targetPrefix}ghc From 2dae22748f572b52002767e3fcf86b0f70d50cdc Mon Sep 17 00:00:00 2001 From: sternenseemann Date: Thu, 5 Sep 2024 23:44:11 +0200 Subject: [PATCH 25/50] haskell.compiler.*: set correct runtime LLVM tools in settings Note that the clang command should be adapted in the future as done for CLANG in #338782. --- pkgs/development/compilers/ghc/8.10.7.nix | 10 ++++++++++ pkgs/development/compilers/ghc/common-hadrian.nix | 10 ++++++++++ .../compilers/ghc/common-make-native-bignum.nix | 10 ++++++++++ 3 files changed, 30 insertions(+) diff --git a/pkgs/development/compilers/ghc/8.10.7.nix b/pkgs/development/compilers/ghc/8.10.7.nix index 3fe17f620d074..bf1c27f2a812e 100644 --- a/pkgs/development/compilers/ghc/8.10.7.nix +++ b/pkgs/development/compilers/ghc/8.10.7.nix @@ -472,6 +472,16 @@ stdenv.mkDerivation (rec { "otool command" "${toolPath "otool" installCC}" \ "install_name_tool command" "${toolPath "install_name_tool" installCC}" '' + + lib.optionalString useLLVM '' + ghc-settings-edit "$settingsFile" \ + "LLVM llc command" "${lib.getBin llvmPackages.llvm}/bin/llc" \ + "LLVM opt command" "${lib.getBin llvmPackages.llvm}/bin/opt" + '' + # FIXME(@sternenseemann): use installCC instead if possible + + lib.optionalString (useLLVM && stdenv.targetPlatform.isDarwin) '' + ghc-settings-edit "$settingsFile" \ + "LLVM clang command" "${llvmPackages.clang}/bin/${llvmPackages.clang.targetPrefix}clang" + '' + '' # Install the bash completion file. diff --git a/pkgs/development/compilers/ghc/common-hadrian.nix b/pkgs/development/compilers/ghc/common-hadrian.nix index 7ccd781544848..f9b24f291aaa0 100644 --- a/pkgs/development/compilers/ghc/common-hadrian.nix +++ b/pkgs/development/compilers/ghc/common-hadrian.nix @@ -622,6 +622,16 @@ stdenv.mkDerivation ({ "otool command" "${toolPath "otool" installCC}" \ "install_name_tool command" "${toolPath "install_name_tool" installCC}" '' + + lib.optionalString useLLVM '' + ghc-settings-edit "$settingsFile" \ + "LLVM llc command" "${lib.getBin llvmPackages.llvm}/bin/llc" \ + "LLVM opt command" "${lib.getBin llvmPackages.llvm}/bin/opt" + '' + # FIXME(@sternenseemann): use installCC instead if possible + + lib.optionalString (useLLVM && stdenv.targetPlatform.isDarwin) '' + ghc-settings-edit "$settingsFile" \ + "LLVM clang command" "${llvmPackages.clang}/bin/${llvmPackages.clang.targetPrefix}clang" + '' # Work around a GHC bug which causes unlit to be installed under a different # name than is used in the settings file. # https://gitlab.haskell.org/ghc/ghc/-/issues/23317 diff --git a/pkgs/development/compilers/ghc/common-make-native-bignum.nix b/pkgs/development/compilers/ghc/common-make-native-bignum.nix index d121baf21c24c..03d7697e2de39 100644 --- a/pkgs/development/compilers/ghc/common-make-native-bignum.nix +++ b/pkgs/development/compilers/ghc/common-make-native-bignum.nix @@ -489,6 +489,16 @@ stdenv.mkDerivation (rec { "otool command" "${toolPath "otool" installCC}" \ "install_name_tool command" "${toolPath "install_name_tool" installCC}" '' + + lib.optionalString useLLVM '' + ghc-settings-edit "$settingsFile" \ + "LLVM llc command" "${lib.getBin llvmPackages.llvm}/bin/llc" \ + "LLVM opt command" "${lib.getBin llvmPackages.llvm}/bin/opt" + '' + # FIXME(@sternenseemann): use installCC instead if possible + + lib.optionalString (useLLVM && stdenv.targetPlatform.isDarwin) '' + ghc-settings-edit "$settingsFile" \ + "LLVM clang command" "${llvmPackages.clang}/bin/${llvmPackages.clang.targetPrefix}clang" + '' + '' # Install the bash completion file. From 5cd41e16a64f45e8688a0f028bd74f54b8cc6d80 Mon Sep 17 00:00:00 2001 From: sternenseemann Date: Mon, 9 Sep 2024 11:47:55 +0200 Subject: [PATCH 26/50] release-haskell.nix: don't try to build pkgsMusl on non x86_64-linux Since 322bab828488c44c434b2fab7fcb15b640970cc8, ghc no longer self reports its restricted platforms for e.g. pkgsMusl, so we need to reflect this in the jobset in order to keep the evaluation errors tab clean. --- pkgs/top-level/release-haskell.nix | 39 ++++++++++++++++-------------- 1 file changed, 21 insertions(+), 18 deletions(-) diff --git a/pkgs/top-level/release-haskell.nix b/pkgs/top-level/release-haskell.nix index 65f0ad17b5127..f882cb4fa2f45 100644 --- a/pkgs/top-level/release-haskell.nix +++ b/pkgs/top-level/release-haskell.nix @@ -394,19 +394,7 @@ let }; # GHCs linked to musl. - pkgsMusl.haskell.compiler = lib.recursiveUpdate - (packagePlatforms pkgs.pkgsMusl.haskell.compiler) - { - # remove musl ghc865Binary since it is known to be broken and - # causes an evaluation error on darwin. - ghc865Binary = {}; - - ghcjs = {}; - ghcjs810 = {}; - }; - - # Get some cache going for MUSL-enabled GHC. - pkgsMusl.haskellPackages = + pkgsMusl = removePlatforms [ # pkgsMusl is compiled natively with musl. It is not @@ -420,11 +408,26 @@ let "aarch64-darwin" ] { - inherit (packagePlatforms pkgs.pkgsMusl.haskellPackages) - hello - lens - random - ; + haskell.compiler = lib.recursiveUpdate + (packagePlatforms pkgs.pkgsMusl.haskell.compiler) + { + # remove musl ghc865Binary since it is known to be broken and + # causes an evaluation error on darwin. + ghc865Binary = {}; + + ghcjs = {}; + ghcjs810 = {}; + }; + + # Get some cache going for MUSL-enabled GHC. + haskellPackages = + { + inherit (packagePlatforms pkgs.pkgsMusl.haskellPackages) + hello + lens + random + ; + }; }; # Test some statically linked packages to catch regressions From 7fff04332d2c70b64c6929e92aa5f90361dfff4e Mon Sep 17 00:00:00 2001 From: sternenseemann Date: Mon, 9 Sep 2024 12:04:18 +0200 Subject: [PATCH 27/50] haskell.compiler.ghc{96,98,910}: use emscripten installCC for ghcjs An oversight in 884a76c5e61c25d94695433101b9a9d46814193d: We need to mirror the isGhcjs condition of targetCC (toolsForTarget) for installCC as well. (Note that in practice, targetCC == installCC for ghcjs since it is cross-only (?).) --- pkgs/development/compilers/ghc/common-hadrian.nix | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/pkgs/development/compilers/ghc/common-hadrian.nix b/pkgs/development/compilers/ghc/common-hadrian.nix index f9b24f291aaa0..1727cf0f871d9 100644 --- a/pkgs/development/compilers/ghc/common-hadrian.nix +++ b/pkgs/development/compilers/ghc/common-hadrian.nix @@ -285,7 +285,10 @@ let buildCC = buildPackages.stdenv.cc; targetCC = builtins.head toolsForTarget; - installCC = pkgsHostTarget.targetPackages.stdenv.cc; + installCC = + if targetPlatform.isGhcjs + then pkgsHostTarget.emscripten + else pkgsHostTarget.targetPackages.stdenv.cc; # toolPath calculates the absolute path to the name tool associated with a # given `stdenv.cc` derivation, i.e. it picks the correct derivation to take From 4888c3cd8b6e1eba35a5904bc0f71995f1393c4e Mon Sep 17 00:00:00 2001 From: sternenseemann Date: Wed, 11 Sep 2024 13:40:21 +0200 Subject: [PATCH 28/50] haskellPackages.ghc-settings-edit: build using Cabal This allows us to reuse our existing infrastructure which alreday contains workarounds for various issues. Prior to this, ghc-settings-edit wouldn't compile with musl for some reason. --- .../tools/haskell/ghc-settings-edit/Setup.hs | 2 + .../haskell/ghc-settings-edit/default.nix | 46 +++++++++---------- .../ghc-settings-edit/ghc-settings-edit.cabal | 22 +++++++++ 3 files changed, 46 insertions(+), 24 deletions(-) create mode 100644 pkgs/development/tools/haskell/ghc-settings-edit/Setup.hs create mode 100644 pkgs/development/tools/haskell/ghc-settings-edit/ghc-settings-edit.cabal diff --git a/pkgs/development/tools/haskell/ghc-settings-edit/Setup.hs b/pkgs/development/tools/haskell/ghc-settings-edit/Setup.hs new file mode 100644 index 0000000000000..9a994af677b0d --- /dev/null +++ b/pkgs/development/tools/haskell/ghc-settings-edit/Setup.hs @@ -0,0 +1,2 @@ +import Distribution.Simple +main = defaultMain diff --git a/pkgs/development/tools/haskell/ghc-settings-edit/default.nix b/pkgs/development/tools/haskell/ghc-settings-edit/default.nix index f1f08b620588c..fa5146a128bbf 100644 --- a/pkgs/development/tools/haskell/ghc-settings-edit/default.nix +++ b/pkgs/development/tools/haskell/ghc-settings-edit/default.nix @@ -1,33 +1,31 @@ { - stdenv, - ghc, + mkDerivation, + base, + containers, lib, }: -stdenv.mkDerivation { +mkDerivation { pname = "ghc-settings-edit"; version = "0.1.0"; - # See the source code for an explanation - src = ./ghc-settings-edit.lhs; - dontUnpack = true; - dontBuild = true; - - nativeBuildInputs = [ ghc ]; - installPhase = '' - runHook preInstall - - mkdir -p "$out/bin" - ${ghc.targetPrefix}ghc --make "$src" -o "$out/bin/ghc-settings-edit" - - runHook postInstall - ''; - - meta = { - license = [ - lib.licenses.mit - lib.licenses.bsd3 + src = lib.fileset.toSource { + root = ./.; + fileset = lib.fileset.unions [ + ./Setup.hs + ./ghc-settings-edit.lhs + ./ghc-settings-edit.cabal ]; - platforms = lib.platforms.all; - description = "Tool for editing GHC's settings file"; }; + isLibrary = false; + isExecutable = true; + executableHaskellDepends = [ + base + containers + ]; + license = [ + lib.licenses.mit + lib.licenses.bsd3 + ]; + description = "Tool for editing GHC's settings file"; + mainProgram = "ghc-settings-edit"; } diff --git a/pkgs/development/tools/haskell/ghc-settings-edit/ghc-settings-edit.cabal b/pkgs/development/tools/haskell/ghc-settings-edit/ghc-settings-edit.cabal new file mode 100644 index 0000000000000..e31515c6391fc --- /dev/null +++ b/pkgs/development/tools/haskell/ghc-settings-edit/ghc-settings-edit.cabal @@ -0,0 +1,22 @@ +cabal-version: 2.2 +name: ghc-settings-edit +version: 0.1.0 +synopsis: Tool for editing GHC's settings file +-- TODO: description for hackage +-- TODO: category for hackage +license: MIT AND BSD-3-Clause +author: sternenseemann +-- FIXME: must be email for potential Hackage upload +maintainer: @NixOS/haskell +copyright: © 2024 The Nixpkgs/NixOS contributors +stability: experimental +build-type: Simple +bug-reports: https://github.com/NixOS/nixpkgs/issues + +executable ghc-settings-edit + default-language: Haskell2010 + -- TODO: bounds for hackage + build-depends: base + , containers + main-is: ghc-settings-edit.lhs + hs-source-dirs: . From 46460a759d07e6922b179678c41f03bd27bb5a36 Mon Sep 17 00:00:00 2001 From: sternenseemann Date: Wed, 11 Sep 2024 20:47:02 +0200 Subject: [PATCH 29/50] git-annex: update sha256 for 10.20240831 --- pkgs/development/haskell-modules/configuration-common.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/development/haskell-modules/configuration-common.nix b/pkgs/development/haskell-modules/configuration-common.nix index c11cc81347daf..fd9710402b022 100644 --- a/pkgs/development/haskell-modules/configuration-common.nix +++ b/pkgs/development/haskell-modules/configuration-common.nix @@ -404,7 +404,7 @@ self: super: { name = "git-annex-${super.git-annex.version}-src"; url = "git://git-annex.branchable.com/"; rev = "refs/tags/" + super.git-annex.version; - sha256 = "1h0vbz95jgj8c380rpy688frnbwind5c2y3ylaw06l2l3j6gdaq3"; + sha256 = "0j037sis64gnrll7ajg48cvzzvxqsrhj7vnhiwcqv8wbmbfv0avn"; # delete android and Android directories which cause issues on # darwin (case insensitive directory). Since we don't need them # during the build process, we can delete it to prevent a hash From cc27161f1ce3a5f5526d0ff2aa61107fcfdce3fc Mon Sep 17 00:00:00 2001 From: sternenseemann Date: Fri, 13 Sep 2024 03:04:59 +0200 Subject: [PATCH 30/50] haskellPackages.weeder: 2.8.0 -> 2.9.0 --- .../haskell-modules/configuration-common.nix | 7 ++++ .../configuration-hackage2nix/main.yaml | 2 -- .../haskell-modules/hackage-packages.nix | 32 ------------------- 3 files changed, 7 insertions(+), 34 deletions(-) diff --git a/pkgs/development/haskell-modules/configuration-common.nix b/pkgs/development/haskell-modules/configuration-common.nix index fd9710402b022..5c35cba3a70a9 100644 --- a/pkgs/development/haskell-modules/configuration-common.nix +++ b/pkgs/development/haskell-modules/configuration-common.nix @@ -185,6 +185,13 @@ self: super: { http-api-data = doJailbreak super.http-api-data; tasty-discover = doJailbreak super.tasty-discover; + # Out of date test data: https://github.com/ocharles/weeder/issues/176 + weeder = appendPatch (pkgs.fetchpatch { + name = "weeder-2.9.0-test-fix-expected.patch"; + url = "https://github.com/ocharles/weeder/commit/56028d0c80fe89d4f2ae25275aedb72714fec7da.patch"; + sha256 = "10zkvclyir3zf21v41zdsvg68vrkq89n64kv9k54742am2i4aygf"; + }) super.weeder; + # Allow aeson == 2.1.* # https://github.com/hdgarrood/aeson-better-errors/issues/23 aeson-better-errors = lib.pipe super.aeson-better-errors [ diff --git a/pkgs/development/haskell-modules/configuration-hackage2nix/main.yaml b/pkgs/development/haskell-modules/configuration-hackage2nix/main.yaml index cb0e9538c9017..54de9da13f790 100644 --- a/pkgs/development/haskell-modules/configuration-hackage2nix/main.yaml +++ b/pkgs/development/haskell-modules/configuration-hackage2nix/main.yaml @@ -34,8 +34,6 @@ default-package-overrides: - chs-cabal < 0.1.1.2 # Incompatible with Cabal < 3.12 # 2024-08-17: Stackage doesn't contain hnix-store-core >= 0.8 yet, so we need to restrict hnix-store-remote - hnix-store-remote < 0.7 - # 2024-08-26: test failure for >= 2.9 https://github.com/ocharles/weeder/issues/176 - - weeder < 2.9.0 extra-packages: diff --git a/pkgs/development/haskell-modules/hackage-packages.nix b/pkgs/development/haskell-modules/hackage-packages.nix index f46ba590af11e..867105f67a8e9 100644 --- a/pkgs/development/haskell-modules/hackage-packages.nix +++ b/pkgs/development/haskell-modules/hackage-packages.nix @@ -332494,37 +332494,6 @@ self: { }) {}; "weeder" = callPackage - ({ mkDerivation, aeson, algebraic-graphs, async, base, bytestring - , containers, directory, filepath, generic-lens, ghc, hspec, lens - , mtl, optparse-applicative, parallel, process, regex-tdfa, text - , toml-reader, transformers - }: - mkDerivation { - pname = "weeder"; - version = "2.8.0"; - sha256 = "086vni1i0sqy2xva63xdx1ppvwygyn1dav2bykggd6j1jrwi0m5p"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - algebraic-graphs async base bytestring containers directory - filepath generic-lens ghc lens mtl optparse-applicative parallel - regex-tdfa text toml-reader transformers - ]; - executableHaskellDepends = [ - base bytestring containers directory filepath ghc - optparse-applicative transformers - ]; - testHaskellDepends = [ - aeson algebraic-graphs base containers directory filepath ghc hspec - process text toml-reader - ]; - description = "Detect dead code"; - license = lib.licenses.bsd3; - mainProgram = "weeder"; - maintainers = [ lib.maintainers.maralorn ]; - }) {}; - - "weeder_2_9_0" = callPackage ({ mkDerivation, aeson, algebraic-graphs, async, base, bytestring , containers, directory, filepath, generic-lens, ghc, Glob , hspec-discover, hspec-expectations, lens, mtl @@ -332551,7 +332520,6 @@ self: { testToolDepends = [ hspec-discover ]; description = "Detect dead code"; license = lib.licenses.bsd3; - hydraPlatforms = lib.platforms.none; mainProgram = "weeder"; maintainers = [ lib.maintainers.maralorn ]; }) {}; From 9d2a706ae7b358268e77a281a86facbd271df515 Mon Sep 17 00:00:00 2001 From: sternenseemann Date: Fri, 13 Sep 2024 03:12:15 +0200 Subject: [PATCH 31/50] haskellPackages.xmonad-contrib: restrict to < 0.18.1 to match xmonad We can't update to xmonad >= 0.18 yet since Stackage LTS only includes 0.17.*. --- .../haskell-modules/configuration-common.nix | 5 ++++ .../configuration-hackage2nix/main.yaml | 2 ++ .../haskell-modules/hackage-packages.nix | 26 +++++++++++++++++++ 3 files changed, 33 insertions(+) diff --git a/pkgs/development/haskell-modules/configuration-common.nix b/pkgs/development/haskell-modules/configuration-common.nix index 5c35cba3a70a9..6e6792c1a7fc4 100644 --- a/pkgs/development/haskell-modules/configuration-common.nix +++ b/pkgs/development/haskell-modules/configuration-common.nix @@ -1464,6 +1464,11 @@ self: super: { ''; }) super.hledger-flow; + # xmonad-contrib >= 0.18.1 for latest XMonad + xmonad-contrib_0_18_1 = super.xmonad-contrib_0_18_1.override { + xmonad = self.xmonad_0_18_0; + }; + # Chart-tests needs and compiles some modules from Chart itself Chart-tests = overrideCabal (old: { # https://github.com/timbod7/haskell-chart/issues/233 diff --git a/pkgs/development/haskell-modules/configuration-hackage2nix/main.yaml b/pkgs/development/haskell-modules/configuration-hackage2nix/main.yaml index 54de9da13f790..15bb0c4217820 100644 --- a/pkgs/development/haskell-modules/configuration-hackage2nix/main.yaml +++ b/pkgs/development/haskell-modules/configuration-hackage2nix/main.yaml @@ -34,6 +34,8 @@ default-package-overrides: - chs-cabal < 0.1.1.2 # Incompatible with Cabal < 3.12 # 2024-08-17: Stackage doesn't contain hnix-store-core >= 0.8 yet, so we need to restrict hnix-store-remote - hnix-store-remote < 0.7 + # 2024-09-12: match xmonad 0.17.* from Stackage LTS + - xmonad-contrib < 0.18.1 extra-packages: diff --git a/pkgs/development/haskell-modules/hackage-packages.nix b/pkgs/development/haskell-modules/hackage-packages.nix index 867105f67a8e9..46071ca84040c 100644 --- a/pkgs/development/haskell-modules/hackage-packages.nix +++ b/pkgs/development/haskell-modules/hackage-packages.nix @@ -337742,6 +337742,31 @@ self: { }) {}; "xmonad-contrib" = callPackage + ({ mkDerivation, base, bytestring, containers, deepseq, directory + , filepath, hspec, mtl, process, QuickCheck, random, time, unix + , utf8-string, X11, X11-xft, xmonad + }: + mkDerivation { + pname = "xmonad-contrib"; + version = "0.18.0"; + sha256 = "1ccccz7jmksm2j5maqdfq2z135ggpdh0fl92k87w05663hxq1cb4"; + libraryHaskellDepends = [ + base bytestring containers deepseq directory filepath mtl process + random time unix utf8-string X11 X11-xft xmonad + ]; + testHaskellDepends = [ + base bytestring containers deepseq directory hspec mtl process + QuickCheck random time unix utf8-string X11 xmonad + ]; + description = "Community-maintained extensions for xmonad"; + license = lib.licenses.bsd3; + maintainers = [ + lib.maintainers.dschrempf lib.maintainers.ivanbrennan + lib.maintainers.peti lib.maintainers.slotThe + ]; + }) {}; + + "xmonad-contrib_0_18_1" = callPackage ({ mkDerivation, base, bytestring, containers, deepseq, directory , filepath, hspec, mtl, process, QuickCheck, random, time , transformers, unix, utf8-string, X11, X11-xft, xmonad @@ -337760,6 +337785,7 @@ self: { ]; description = "Community-maintained extensions for xmonad"; license = lib.licenses.bsd3; + hydraPlatforms = lib.platforms.none; maintainers = [ lib.maintainers.dschrempf lib.maintainers.ivanbrennan lib.maintainers.peti lib.maintainers.slotThe From b039994dad3a4288dfdffe388cf97faf39240c5a Mon Sep 17 00:00:00 2001 From: sternenseemann Date: Sun, 1 Sep 2024 13:32:41 +0200 Subject: [PATCH 32/50] haskell.compiler.ghc*: use matching CLANG & CC on Darwin with LLVM The Darwin LLVM backend of GHC (which is mostly interesting for GHC < 9.2) uses clang as configured via the CLANG environment variable as an assembler. Since it processes outputs of clang as configured via the CC variable, we need to make sure these versions match or risk CLANG clang not understanding the output of CC clang. In the past this wasn't really a problem as due to the fairly old default clang version in the stdenv, clang 11 would be used for CC. CLANG would always be a newer version and deal with the output without any problems. Ever since the upgrade of the default clang version for darwin (bcbdb800cf7659d6ff36ac114121a056fe8c9656), CC would often be a newer version of clang than CLANG, causing build problems in some packages like crypton (for GHC 8.10.7 and 9.0.2 on aarch64-darwin where the darwin LLVM backend was actually used). --- pkgs/development/compilers/ghc/8.10.7.nix | 23 ++++++++++++++++--- .../compilers/ghc/common-hadrian.nix | 23 ++++++++++++++++--- .../ghc/common-make-native-bignum.nix | 23 ++++++++++++++++--- 3 files changed, 60 insertions(+), 9 deletions(-) diff --git a/pkgs/development/compilers/ghc/8.10.7.nix b/pkgs/development/compilers/ghc/8.10.7.nix index bf1c27f2a812e..81ec3eb84d112 100644 --- a/pkgs/development/compilers/ghc/8.10.7.nix +++ b/pkgs/development/compilers/ghc/8.10.7.nix @@ -184,6 +184,9 @@ let if stdenv.targetPlatform.isDarwin then cc.bintools else cc.bintools.bintools; + + # clang is used as an assembler on darwin with the LLVM backend + clang = cc; }.${name}; in "${tools}/bin/${tools.targetPrefix}${name}"; @@ -335,7 +338,17 @@ stdenv.mkDerivation (rec { export OPT="${lib.getBin buildTargetLlvmPackages.llvm}/bin/opt" '' + lib.optionalString (useLLVM && stdenv.targetPlatform.isDarwin) '' # LLVM backend on Darwin needs clang: https://downloads.haskell.org/~ghc/latest/docs/html/users_guide/codegens.html#llvm-code-generator-fllvm - export CLANG="${buildTargetLlvmPackages.clang}/bin/${buildTargetLlvmPackages.clang.targetPrefix}clang" + # The executable we specify via $CLANG is used as an assembler (exclusively, it seems, but this isn't + # clarified in any user facing documentation). As such, it'll be called on assembly produced by $CC + # which usually comes from the darwin stdenv. To prevent a situation where $CLANG doesn't understand + # the assembly it is given, we need to make sure that it matches the LLVM version of $CC if possible. + # It is unclear (at the time of writing 2024-09-01) whether $CC should match the LLVM version we use + # for llc and opt which would require using a custom darwin stdenv for targetCC. + export CLANG="${ + if targetCC.isClang + then toolPath "clang" targetCC + else "${buildTargetLlvmPackages.clang}/bin/${buildTargetLlvmPackages.clang.targetPrefix}clang" + }" '' + '' # No need for absolute paths since these tools only need to work during the build export CC_STAGE0="$CC_FOR_BUILD" @@ -477,10 +490,14 @@ stdenv.mkDerivation (rec { "LLVM llc command" "${lib.getBin llvmPackages.llvm}/bin/llc" \ "LLVM opt command" "${lib.getBin llvmPackages.llvm}/bin/opt" '' - # FIXME(@sternenseemann): use installCC instead if possible + lib.optionalString (useLLVM && stdenv.targetPlatform.isDarwin) '' ghc-settings-edit "$settingsFile" \ - "LLVM clang command" "${llvmPackages.clang}/bin/${llvmPackages.clang.targetPrefix}clang" + "LLVM clang command" "${ + # See comment for CLANG in preConfigure + if installCC.isClang + then toolPath "clang" installCC + else "${llvmPackages.clang}/bin/${llvmPackages.clang.targetPrefix}clang" + }" '' + '' diff --git a/pkgs/development/compilers/ghc/common-hadrian.nix b/pkgs/development/compilers/ghc/common-hadrian.nix index 1727cf0f871d9..6a95bf009ac88 100644 --- a/pkgs/development/compilers/ghc/common-hadrian.nix +++ b/pkgs/development/compilers/ghc/common-hadrian.nix @@ -323,6 +323,9 @@ let if stdenv.targetPlatform.isDarwin then cc.bintools else cc.bintools.bintools; + + # clang is used as an assembler on darwin with the LLVM backend + clang = cc; }.${name}; in "${tools}/bin/${tools.targetPrefix}${name}"; @@ -412,7 +415,17 @@ stdenv.mkDerivation ({ export OPT="${lib.getBin buildTargetLlvmPackages.llvm}/bin/opt" '' + lib.optionalString (useLLVM && stdenv.targetPlatform.isDarwin) '' # LLVM backend on Darwin needs clang: https://downloads.haskell.org/~ghc/latest/docs/html/users_guide/codegens.html#llvm-code-generator-fllvm - export CLANG="${buildTargetLlvmPackages.clang}/bin/${buildTargetLlvmPackages.clang.targetPrefix}clang" + # The executable we specify via $CLANG is used as an assembler (exclusively, it seems, but this isn't + # clarified in any user facing documentation). As such, it'll be called on assembly produced by $CC + # which usually comes from the darwin stdenv. To prevent a situation where $CLANG doesn't understand + # the assembly it is given, we need to make sure that it matches the LLVM version of $CC if possible. + # It is unclear (at the time of writing 2024-09-01) whether $CC should match the LLVM version we use + # for llc and opt which would require using a custom darwin stdenv for targetCC. + export CLANG="${ + if targetCC.isClang + then toolPath "clang" targetCC + else "${buildTargetLlvmPackages.clang}/bin/${buildTargetLlvmPackages.clang.targetPrefix}clang" + }" '' + lib.optionalString (stdenv.isLinux && hostPlatform.libc == "glibc") '' export LOCALE_ARCHIVE="${glibcLocales}/lib/locale/locale-archive" @@ -630,10 +643,14 @@ stdenv.mkDerivation ({ "LLVM llc command" "${lib.getBin llvmPackages.llvm}/bin/llc" \ "LLVM opt command" "${lib.getBin llvmPackages.llvm}/bin/opt" '' - # FIXME(@sternenseemann): use installCC instead if possible + lib.optionalString (useLLVM && stdenv.targetPlatform.isDarwin) '' ghc-settings-edit "$settingsFile" \ - "LLVM clang command" "${llvmPackages.clang}/bin/${llvmPackages.clang.targetPrefix}clang" + "LLVM clang command" "${ + # See comment for CLANG in preConfigure + if installCC.isClang + then toolPath "clang" installCC + else "${llvmPackages.clang}/bin/${llvmPackages.clang.targetPrefix}clang" + }" '' # Work around a GHC bug which causes unlit to be installed under a different # name than is used in the settings file. diff --git a/pkgs/development/compilers/ghc/common-make-native-bignum.nix b/pkgs/development/compilers/ghc/common-make-native-bignum.nix index 03d7697e2de39..b1b139a290d86 100644 --- a/pkgs/development/compilers/ghc/common-make-native-bignum.nix +++ b/pkgs/development/compilers/ghc/common-make-native-bignum.nix @@ -187,6 +187,9 @@ let if stdenv.targetPlatform.isDarwin then cc.bintools else cc.bintools.bintools; + + # clang is used as an assembler on darwin with the LLVM backend + clang = cc; }.${name}; in "${tools}/bin/${tools.targetPrefix}${name}"; @@ -335,7 +338,17 @@ stdenv.mkDerivation (rec { export OPT="${lib.getBin buildTargetLlvmPackages.llvm}/bin/opt" '' + lib.optionalString (useLLVM && stdenv.targetPlatform.isDarwin) '' # LLVM backend on Darwin needs clang: https://downloads.haskell.org/~ghc/latest/docs/html/users_guide/codegens.html#llvm-code-generator-fllvm - export CLANG="${buildTargetLlvmPackages.clang}/bin/${buildTargetLlvmPackages.clang.targetPrefix}clang" + # The executable we specify via $CLANG is used as an assembler (exclusively, it seems, but this isn't + # clarified in any user facing documentation). As such, it'll be called on assembly produced by $CC + # which usually comes from the darwin stdenv. To prevent a situation where $CLANG doesn't understand + # the assembly it is given, we need to make sure that it matches the LLVM version of $CC if possible. + # It is unclear (at the time of writing 2024-09-01) whether $CC should match the LLVM version we use + # for llc and opt which would require using a custom darwin stdenv for targetCC. + export CLANG="${ + if targetCC.isClang + then toolPath "clang" targetCC + else "${buildTargetLlvmPackages.clang}/bin/${buildTargetLlvmPackages.clang.targetPrefix}clang" + }" '' + '' # No need for absolute paths since these tools only need to work during the build @@ -494,10 +507,14 @@ stdenv.mkDerivation (rec { "LLVM llc command" "${lib.getBin llvmPackages.llvm}/bin/llc" \ "LLVM opt command" "${lib.getBin llvmPackages.llvm}/bin/opt" '' - # FIXME(@sternenseemann): use installCC instead if possible + lib.optionalString (useLLVM && stdenv.targetPlatform.isDarwin) '' ghc-settings-edit "$settingsFile" \ - "LLVM clang command" "${llvmPackages.clang}/bin/${llvmPackages.clang.targetPrefix}clang" + "LLVM clang command" "${ + # See comment for CLANG in preConfigure + if installCC.isClang + then toolPath "clang" installCC + else "${llvmPackages.clang}/bin/${llvmPackages.clang.targetPrefix}clang" + }" '' + '' From 9ee18fb33e0679ffc83246c8d5890febdda32d3b Mon Sep 17 00:00:00 2001 From: maralorn Date: Mon, 16 Sep 2024 23:30:52 +0200 Subject: [PATCH 33/50] haskell.packages.ghc910.hoogle: Enable hydra job --- pkgs/top-level/release-haskell.nix | 1 - 1 file changed, 1 deletion(-) diff --git a/pkgs/top-level/release-haskell.nix b/pkgs/top-level/release-haskell.nix index f882cb4fa2f45..bf077ef44f98f 100644 --- a/pkgs/top-level/release-haskell.nix +++ b/pkgs/top-level/release-haskell.nix @@ -552,7 +552,6 @@ let compilerNames.ghc9101 ] released; hoogle = lib.subtractLists [ - compilerNames.ghc9101 ] released; hlint = lib.subtractLists [ compilerNames.ghc902 From f716fa5303f16769af69b424ca0600cbc5877f1f Mon Sep 17 00:00:00 2001 From: sternenseemann Date: Sun, 15 Sep 2024 11:10:09 +0200 Subject: [PATCH 34/50] haskell.compiler.*: pass --with-curses-* flags again MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit We reuse the targetLibs logic for this since it is more or less the same story. However, the terminfo library is only built when GHC is neither a cross-compiler nor being cross-compiled. Therefore ncurses (if used) will only ever come from pkgsHostTarget. In the other cases ncurses is still passed via depsBuildBuild for the stage1 compiler. This commit tries to resolve the problem that the package-db doesn't include library and include dirs of ncurses for the terminfo package, causing library loading and linking problems in downstream packages, e.g. dhall-docs and dhall-toml. This problem was introduced in 4b00fbf16307a1501bd57370cf334a905554ee90. With this in mind, not passing --with-curses-* – as long as the terminfo package isn't built – seems fine. --- pkgs/development/compilers/ghc/8.10.7.nix | 5 ++++- pkgs/development/compilers/ghc/common-hadrian.nix | 6 +++++- .../development/compilers/ghc/common-make-native-bignum.nix | 6 +++++- 3 files changed, 14 insertions(+), 3 deletions(-) diff --git a/pkgs/development/compilers/ghc/8.10.7.nix b/pkgs/development/compilers/ghc/8.10.7.nix index 81ec3eb84d112..da6ec060ce03d 100644 --- a/pkgs/development/compilers/ghc/8.10.7.nix +++ b/pkgs/development/compilers/ghc/8.10.7.nix @@ -228,7 +228,7 @@ let else pkgsHostTarget; in { - inherit (basePackageSet) gmp; + inherit (basePackageSet) gmp ncurses; # dynamic inherits are not possible in Nix libffi = basePackageSet.${libffi_name}; }; @@ -394,6 +394,9 @@ stdenv.mkDerivation (rec { # `--with` flags for libraries needed for RTS linker configureFlags = [ "--datadir=$doc/share/doc/ghc" + ] ++ lib.optionals enableTerminfo [ + "--with-curses-includes=${lib.getDev targetLibs.ncurses}/include" + "--with-curses-libraries=${lib.getLib targetLibs.ncurses}/lib" ] ++ lib.optionals (args.${libffi_name} != null) [ "--with-system-libffi" "--with-ffi-includes=${targetLibs.libffi.dev}/include" diff --git a/pkgs/development/compilers/ghc/common-hadrian.nix b/pkgs/development/compilers/ghc/common-hadrian.nix index 6a95bf009ac88..f9c81dd4b203f 100644 --- a/pkgs/development/compilers/ghc/common-hadrian.nix +++ b/pkgs/development/compilers/ghc/common-hadrian.nix @@ -362,7 +362,8 @@ let (if hostPlatform != targetPlatform then targetPackages else pkgsHostTarget) elfutils gmp - libffi; + libffi + ncurses; }; # Our Cabal compiler name @@ -492,6 +493,9 @@ stdenv.mkDerivation ({ # `--with` flags for libraries needed for RTS linker configureFlags = [ "--datadir=$doc/share/doc/ghc" + ] ++ lib.optionals enableTerminfo [ + "--with-curses-includes=${lib.getDev targetLibs.ncurses}/include" + "--with-curses-libraries=${lib.getLib targetLibs.ncurses}/lib" ] ++ lib.optionals (libffi != null && !targetPlatform.isGhcjs) [ "--with-system-libffi" "--with-ffi-includes=${targetLibs.libffi.dev}/include" diff --git a/pkgs/development/compilers/ghc/common-make-native-bignum.nix b/pkgs/development/compilers/ghc/common-make-native-bignum.nix index b1b139a290d86..66e38154e9797 100644 --- a/pkgs/development/compilers/ghc/common-make-native-bignum.nix +++ b/pkgs/development/compilers/ghc/common-make-native-bignum.nix @@ -225,7 +225,8 @@ let inherit (if hostPlatform != targetPlatform then targetPackages else pkgsHostTarget) gmp - libffi; + libffi + ncurses; }; in @@ -407,6 +408,9 @@ stdenv.mkDerivation (rec { # `--with` flags for libraries needed for RTS linker configureFlags = [ "--datadir=$doc/share/doc/ghc" + ] ++ lib.optionals enableTerminfo [ + "--with-curses-includes=${lib.getDev targetLibs.ncurses}/include" + "--with-curses-libraries=${lib.getLib targetLibs.ncurses}/lib" ] ++ lib.optionals (libffi != null) [ "--with-system-libffi" "--with-ffi-includes=${targetLibs.libffi.dev}/include" From 2c878dce6a6aa04d944f4a97f7e9291acee82545 Mon Sep 17 00:00:00 2001 From: sternenseemann Date: Wed, 18 Sep 2024 14:35:24 +0200 Subject: [PATCH 35/50] top-level/release-haskell.nix: reflect removal of mailctl See fc086f122c34e8937bc127bcea948a75983d8a82 --- pkgs/top-level/release-haskell.nix | 1 - 1 file changed, 1 deletion(-) diff --git a/pkgs/top-level/release-haskell.nix b/pkgs/top-level/release-haskell.nix index bf077ef44f98f..547af2e4a22ad 100644 --- a/pkgs/top-level/release-haskell.nix +++ b/pkgs/top-level/release-haskell.nix @@ -327,7 +327,6 @@ let lambdabot lhs2tex madlang - mailctl matterhorn mkjson mueval From 6c00c676f1cf0aa0aedd3c77e77d93b4c912356a Mon Sep 17 00:00:00 2001 From: sternenseemann Date: Wed, 18 Sep 2024 14:38:17 +0200 Subject: [PATCH 36/50] haskell.compiler.ghc96*: use patch for unlit workaround That's a bit cleaner and more robust in case this will be backported to 9.6.7 (should it happen). --- .../development/compilers/ghc/common-hadrian.nix | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/pkgs/development/compilers/ghc/common-hadrian.nix b/pkgs/development/compilers/ghc/common-hadrian.nix index f9c81dd4b203f..eba0761334d24 100644 --- a/pkgs/development/compilers/ghc/common-hadrian.nix +++ b/pkgs/development/compilers/ghc/common-hadrian.nix @@ -184,6 +184,15 @@ hash = "sha256-MpvTmFFsNiPDoOp9BhZyWeapeibQ77zgEV+xzZ1UAXs="; }) ] + ++ lib.optionals (lib.versionAtLeast version "9.6" && lib.versionOlder version "9.8") [ + # Fix unlit being installed under a different name than is used in the + # settings file: https://gitlab.haskell.org/ghc/ghc/-/issues/23317 + (fetchpatch { + name = "ghc-9.6-fix-unlit-path.patch"; + url = "https://gitlab.haskell.org/ghc/ghc/-/commit/8fde4ac84ec7b1ead238cb158bbef48555d12af9.patch"; + hash = "sha256-3+CyRBpebEZi8YpS22SsdGQHqi0drR7cCKPtKbR3zyE="; + }) + ] ++ lib.optionals (stdenv.targetPlatform.isDarwin && stdenv.targetPlatform.isAarch64) [ # Prevent the paths module from emitting symbols that we don't use # when building with separate outputs. @@ -656,13 +665,6 @@ stdenv.mkDerivation ({ else "${llvmPackages.clang}/bin/${llvmPackages.clang.targetPrefix}clang" }" '' - # Work around a GHC bug which causes unlit to be installed under a different - # name than is used in the settings file. - # https://gitlab.haskell.org/ghc/ghc/-/issues/23317 - + lib.optionalString (lib.versionOlder version "9.8") '' - ghc-settings-edit "$settingsFile" \ - "unlit command" "\$topdir/bin/${targetPrefix}unlit" - '' + '' # Install the bash completion file. From 8bf0041dc66713c90b626ed890138d87fa7c5555 Mon Sep 17 00:00:00 2001 From: Alex Tunstall Date: Tue, 17 Sep 2024 11:49:48 +0100 Subject: [PATCH 37/50] haskell.compiler.ghc9*: fix rpath on aarch64-linux MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit In #339272, an elusive regression was found where the stage 2 binaries held a reference to the boot compiler in their rpath. This issue only affected GHC 9.6 versions built on aarch64-linux. For still unknown reason, this issue goes away when using a source built GHC instead of the binary GHC we derive from upstream's bindists. Knowing more would be great, obviously, but at least this issue goes away with GHC 9.8.*… Co-authored-by: sternenseemann --- pkgs/top-level/haskell-packages.nix | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/pkgs/top-level/haskell-packages.nix b/pkgs/top-level/haskell-packages.nix index 2d54063e00746..168a1baaf851b 100644 --- a/pkgs/top-level/haskell-packages.nix +++ b/pkgs/top-level/haskell-packages.nix @@ -270,6 +270,11 @@ in { bb.packages.ghc928 else if stdenv.buildPlatform.isPower64 && stdenv.buildPlatform.isLittleEndian then bb.packages.ghc928 + else if stdenv.buildPlatform.isAarch64 && stdenv.buildPlatform.isLinux then + # For unknown reasons, compiling with a bindist GHC causes the final + # GHC's rpaths to contain the boot compiler on aarch64-linux / GHC 9.6.*. + # Note: Unclear if this is due to host or build aarch64-linux. + bb.packages.ghc928 else bb.packages.ghc924Binary; inherit (buildPackages.python3Packages) sphinx; @@ -288,6 +293,11 @@ in { bb.packages.ghc928 else if stdenv.buildPlatform.isPower64 && stdenv.buildPlatform.isLittleEndian then bb.packages.ghc928 + else if stdenv.buildPlatform.isAarch64 && stdenv.buildPlatform.isLinux then + # For unknown reasons, compiling with a bindist GHC causes the final + # GHC's rpaths to contain the boot compiler on aarch64-linux / GHC 9.6.*. + # Note: Unclear if this is due to host or build aarch64-linux. + bb.packages.ghc928 else bb.packages.ghc924Binary; inherit (buildPackages.python3Packages) sphinx; @@ -306,6 +316,11 @@ in { bb.packages.ghc928 else if stdenv.buildPlatform.isPower64 && stdenv.buildPlatform.isLittleEndian then bb.packages.ghc928 + else if stdenv.buildPlatform.isAarch64 && stdenv.buildPlatform.isLinux then + # For unknown reasons, compiling with a bindist GHC causes the final + # GHC's rpaths to contain the boot compiler on aarch64-linux / GHC 9.6.*. + # Note: Unclear if this is due to host or build aarch64-linux. + bb.packages.ghc928 else bb.packages.ghc924Binary; inherit (buildPackages.python3Packages) sphinx; @@ -324,6 +339,11 @@ in { bb.packages.ghc928 else if stdenv.buildPlatform.isPower64 && stdenv.buildPlatform.isLittleEndian then bb.packages.ghc928 + else if stdenv.buildPlatform.isAarch64 && stdenv.buildPlatform.isLinux then + # For unknown reasons, compiling with a bindist GHC causes the final + # GHC's rpaths to contain the boot compiler on aarch64-linux / GHC 9.6.*. + # Note: Unclear if this is due to host or build aarch64-linux. + bb.packages.ghc928 else bb.packages.ghc924Binary; inherit (buildPackages.python3Packages) sphinx; From e04b930173c29ec175ef26bdf787945eb7460f1e Mon Sep 17 00:00:00 2001 From: sternenseemann Date: Thu, 19 Sep 2024 13:43:06 +0200 Subject: [PATCH 38/50] haskell.compiler.*: check that there are no references to stage0 This is a safeguard against a problem we had with 9.6. Unfortunately, since the cc wrapper emits `-L` and `-rpath` flags based on platform config (e.g. aarch64-unknown-linux), not platform role (e.g. build), stdenv itself doesn't prevent ghc from being linked against the boot compiler when building a native or cross-compiling GHC (since host == build). With disallowedReferences, the build will fail if such a problem is re-introduced. --- pkgs/development/compilers/ghc/8.10.7.nix | 6 ++++++ pkgs/development/compilers/ghc/common-hadrian.nix | 6 ++++++ .../development/compilers/ghc/common-make-native-bignum.nix | 6 ++++++ 3 files changed, 18 insertions(+) diff --git a/pkgs/development/compilers/ghc/8.10.7.nix b/pkgs/development/compilers/ghc/8.10.7.nix index da6ec060ce03d..21e19837757bc 100644 --- a/pkgs/development/compilers/ghc/8.10.7.nix +++ b/pkgs/development/compilers/ghc/8.10.7.nix @@ -444,6 +444,12 @@ stdenv.mkDerivation (rec { # For building runtime libs depsBuildTarget = toolsForTarget; + # Prevent stage0 ghc from leaking into the final result. This was an issue + # with GHC 9.6. + disallowedReferences = [ + bootPkgs.ghc + ]; + buildInputs = [ perl bash ] ++ (libDeps hostPlatform); depsTargetTarget = map lib.getDev (libDeps targetPlatform); diff --git a/pkgs/development/compilers/ghc/common-hadrian.nix b/pkgs/development/compilers/ghc/common-hadrian.nix index eba0761334d24..1ef7c63522543 100644 --- a/pkgs/development/compilers/ghc/common-hadrian.nix +++ b/pkgs/development/compilers/ghc/common-hadrian.nix @@ -566,6 +566,12 @@ stdenv.mkDerivation ({ ncurses ]; + # Prevent stage0 ghc from leaking into the final result. This was an issue + # with GHC 9.6. + disallowedReferences = [ + bootPkgs.ghc + ]; + buildInputs = [ perl bash ] ++ (libDeps hostPlatform); depsTargetTarget = map lib.getDev (libDeps targetPlatform); diff --git a/pkgs/development/compilers/ghc/common-make-native-bignum.nix b/pkgs/development/compilers/ghc/common-make-native-bignum.nix index 66e38154e9797..29c68c8373d2e 100644 --- a/pkgs/development/compilers/ghc/common-make-native-bignum.nix +++ b/pkgs/development/compilers/ghc/common-make-native-bignum.nix @@ -462,6 +462,12 @@ stdenv.mkDerivation (rec { # For building runtime libs depsBuildTarget = toolsForTarget; + # Prevent stage0 ghc from leaking into the final result. This was an issue + # with GHC 9.6. + disallowedReferences = [ + bootPkgs.ghc + ]; + buildInputs = [ perl bash ] ++ (libDeps hostPlatform); depsTargetTarget = map lib.getDev (libDeps targetPlatform); From 4903ac938b7d1c3dd1b40a0f8e97abcf904b30c3 Mon Sep 17 00:00:00 2001 From: sternenseemann Date: Thu, 19 Sep 2024 13:15:08 +0200 Subject: [PATCH 39/50] haskell.compiler.*: remove perl from buildInputs perl is only needed in some situations as a build time dependency to run build scripts. The final GHC doesn't require perl. --- pkgs/development/compilers/ghc/8.10.7.nix | 2 +- pkgs/development/compilers/ghc/common-hadrian.nix | 2 +- pkgs/development/compilers/ghc/common-make-native-bignum.nix | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/development/compilers/ghc/8.10.7.nix b/pkgs/development/compilers/ghc/8.10.7.nix index 21e19837757bc..1b6bb9ffa925b 100644 --- a/pkgs/development/compilers/ghc/8.10.7.nix +++ b/pkgs/development/compilers/ghc/8.10.7.nix @@ -450,7 +450,7 @@ stdenv.mkDerivation (rec { bootPkgs.ghc ]; - buildInputs = [ perl bash ] ++ (libDeps hostPlatform); + buildInputs = [ bash ] ++ (libDeps hostPlatform); depsTargetTarget = map lib.getDev (libDeps targetPlatform); depsTargetTargetPropagated = map (lib.getOutput "out") (libDeps targetPlatform); diff --git a/pkgs/development/compilers/ghc/common-hadrian.nix b/pkgs/development/compilers/ghc/common-hadrian.nix index 1ef7c63522543..f97c355593cc1 100644 --- a/pkgs/development/compilers/ghc/common-hadrian.nix +++ b/pkgs/development/compilers/ghc/common-hadrian.nix @@ -572,7 +572,7 @@ stdenv.mkDerivation ({ bootPkgs.ghc ]; - buildInputs = [ perl bash ] ++ (libDeps hostPlatform); + buildInputs = [ bash ] ++ (libDeps hostPlatform); depsTargetTarget = map lib.getDev (libDeps targetPlatform); depsTargetTargetPropagated = map (lib.getOutput "out") (libDeps targetPlatform); diff --git a/pkgs/development/compilers/ghc/common-make-native-bignum.nix b/pkgs/development/compilers/ghc/common-make-native-bignum.nix index 29c68c8373d2e..d028d4535aec7 100644 --- a/pkgs/development/compilers/ghc/common-make-native-bignum.nix +++ b/pkgs/development/compilers/ghc/common-make-native-bignum.nix @@ -468,7 +468,7 @@ stdenv.mkDerivation (rec { bootPkgs.ghc ]; - buildInputs = [ perl bash ] ++ (libDeps hostPlatform); + buildInputs = [ bash ] ++ (libDeps hostPlatform); depsTargetTarget = map lib.getDev (libDeps targetPlatform); depsTargetTargetPropagated = map (lib.getOutput "out") (libDeps targetPlatform); From 097aff7affd0d4bc909797468a1455fcade840de Mon Sep 17 00:00:00 2001 From: sternenseemann Date: Thu, 19 Sep 2024 13:09:46 +0200 Subject: [PATCH 40/50] haskell.compiler.*: move bootPkgs.ghc to depsBuildBuild The stage0 ghc is build->build since it builds the stage1 compiler which has build for its host platform (i.e. is build->target relative to the entire GHC derivation). Also annotate a bit more around the use of pkgsBuildBuild and the boot compiler and make it more explicit where it comes from in the derivation. --- pkgs/development/compilers/ghc/8.10.7.nix | 11 ++++++----- pkgs/development/compilers/ghc/common-hadrian.nix | 11 ++++++----- .../compilers/ghc/common-make-native-bignum.nix | 11 ++++++----- pkgs/top-level/haskell-packages.nix | 12 +++++++++++- 4 files changed, 29 insertions(+), 16 deletions(-) diff --git a/pkgs/development/compilers/ghc/8.10.7.nix b/pkgs/development/compilers/ghc/8.10.7.nix index 1b6bb9ffa925b..4a973b0006729 100644 --- a/pkgs/development/compilers/ghc/8.10.7.nix +++ b/pkgs/development/compilers/ghc/8.10.7.nix @@ -83,8 +83,6 @@ assert stdenv.buildPlatform == stdenv.hostPlatform || stdenv.hostPlatform == std let inherit (stdenv) buildPlatform hostPlatform targetPlatform; - inherit (bootPkgs) ghc; - # TODO(@Ericson2314) Make unconditional targetPrefix = lib.optionalString (targetPlatform != hostPlatform) @@ -427,7 +425,7 @@ stdenv.mkDerivation (rec { nativeBuildInputs = [ perl autoreconfHook autoconf automake m4 python3 - ghc bootPkgs.alex bootPkgs.happy bootPkgs.hscolour + bootPkgs.alex bootPkgs.happy bootPkgs.hscolour bootPkgs.ghc-settings-edit ] ++ lib.optionals (stdenv.isDarwin && stdenv.isAarch64) [ autoSignDarwinBinariesHook @@ -435,8 +433,11 @@ stdenv.mkDerivation (rec { sphinx ]; - # Used by the STAGE0 compiler to build stage1 + # Stage0 compiler and the tools/libs it needs to build Stage1. Stage0 is + # build->build, Stage1 is build->target (which may be the same as + # host->target) depsBuildBuild = [ + bootPkgs.ghc buildCC # stage0 builds terminfo unconditionally, so we always need ncurses ncurses @@ -536,7 +537,7 @@ stdenv.mkDerivation (rec { ] ++ lib.teams.haskell.members; timeout = 24 * 3600; platforms = lib.platforms.all; - inherit (ghc.meta) license; + inherit (bootPkgs.ghc.meta) license; }; } // lib.optionalAttrs targetPlatform.useAndroidPrebuilt { diff --git a/pkgs/development/compilers/ghc/common-hadrian.nix b/pkgs/development/compilers/ghc/common-hadrian.nix index f97c355593cc1..2b3dd4ff4985e 100644 --- a/pkgs/development/compilers/ghc/common-hadrian.nix +++ b/pkgs/development/compilers/ghc/common-hadrian.nix @@ -256,8 +256,6 @@ assert stdenv.buildPlatform == stdenv.hostPlatform; let inherit (stdenv) buildPlatform hostPlatform targetPlatform; - inherit (bootPkgs) ghc; - # TODO(@Ericson2314) Make unconditional targetPrefix = lib.optionalString (targetPlatform != hostPlatform) @@ -544,7 +542,7 @@ stdenv.mkDerivation ({ dontAddExtraLibs = true; nativeBuildInputs = [ - perl ghc hadrian bootPkgs.alex bootPkgs.happy bootPkgs.hscolour + perl hadrian bootPkgs.alex bootPkgs.happy bootPkgs.hscolour # autoconf and friends are necessary for hadrian to create the bindist autoconf automake m4 # Python is used in a few scripts invoked by hadrian to generate e.g. rts headers. @@ -559,8 +557,11 @@ stdenv.mkDerivation ({ # For building runtime libs depsBuildTarget = toolsForTarget; - # Used by the STAGE0 compiler to build stage1 + # Stage0 compiler and the tools/libs it needs to build Stage1. Stage0 is + # build->build, Stage1 is build->target (which may be the same as + # host->target) depsBuildBuild = [ + bootPkgs.ghc buildCC # stage0 builds terminfo unconditionally, so we always need ncurses ncurses @@ -699,7 +700,7 @@ stdenv.mkDerivation ({ ] ++ lib.teams.haskell.members; timeout = 24 * 3600; platforms = lib.platforms.all; - inherit (ghc.meta) license; + inherit (bootPkgs.ghc.meta) license; }; dontStrip = targetPlatform.useAndroidPrebuilt || targetPlatform.isWasm; diff --git a/pkgs/development/compilers/ghc/common-make-native-bignum.nix b/pkgs/development/compilers/ghc/common-make-native-bignum.nix index d028d4535aec7..f92bba3f5b5a8 100644 --- a/pkgs/development/compilers/ghc/common-make-native-bignum.nix +++ b/pkgs/development/compilers/ghc/common-make-native-bignum.nix @@ -88,8 +88,6 @@ assert stdenv.buildPlatform == stdenv.hostPlatform || stdenv.hostPlatform == std let inherit (stdenv) buildPlatform hostPlatform targetPlatform; - inherit (bootPkgs) ghc; - # TODO(@Ericson2314) Make unconditional targetPrefix = lib.optionalString (targetPlatform != hostPlatform) @@ -441,7 +439,7 @@ stdenv.mkDerivation (rec { nativeBuildInputs = [ perl autoconf automake m4 python3 - ghc bootPkgs.alex bootPkgs.happy bootPkgs.hscolour + bootPkgs.alex bootPkgs.happy bootPkgs.hscolour bootPkgs.ghc-settings-edit ] ++ lib.optionals (stdenv.isDarwin && stdenv.isAarch64) [ autoSignDarwinBinariesHook @@ -453,8 +451,11 @@ stdenv.mkDerivation (rec { xattr ]; - # Used by the STAGE0 compiler to build stage1 + # Stage0 compiler and the tools/libs it needs to build Stage1. Stage0 is + # build->build, Stage1 is build->target (which may be the same as + # host->target) depsBuildBuild = [ + bootPkgs.ghc buildCC # stage0 builds terminfo unconditionally, so we always need ncurses ncurses @@ -554,7 +555,7 @@ stdenv.mkDerivation (rec { ] ++ lib.teams.haskell.members; timeout = 24 * 3600; platforms = lib.platforms.all; - inherit (ghc.meta) license; + inherit (bootPkgs.ghc.meta) license; }; } // lib.optionalAttrs targetPlatform.useAndroidPrebuilt { diff --git a/pkgs/top-level/haskell-packages.nix b/pkgs/top-level/haskell-packages.nix index 168a1baaf851b..ae8eb3f1d6cc4 100644 --- a/pkgs/top-level/haskell-packages.nix +++ b/pkgs/top-level/haskell-packages.nix @@ -52,7 +52,17 @@ in { package-list = callPackage ../development/haskell-modules/package-list.nix {}; - # Always get boot compilers from `pkgsBuildBuild` + # Always get boot compilers from `pkgsBuildBuild`. The boot (stage0) compiler + # is used to build another compiler (stage1) that'll be used to build the + # final compiler (stage2) (except when building a cross-compiler). This means + # that stage1's host platform is the same as stage0: build. Consequently, + # stage0 needs to be build->build. + # + # Note that we use bb.haskell.packages.*. haskell.packages.*.ghc is similar to + # stdenv: The ghc comes from the previous package set, i.e. this predicate holds: + # `name: pkgs: pkgs.haskell.packages.${name}.ghc == pkgs.buildPackages.haskell.compiler.${name}.ghc`. + # This isn't problematic since pkgsBuildBuild.buildPackages is also build->build, + # just something to keep in mind. compiler = let bb = pkgsBuildBuild.haskell; in { ghc865Binary = callPackage ../development/compilers/ghc/8.6.5-binary.nix { # Should be llvmPackages_6 which has been removed from nixpkgs From 69830dad8faab63c1c767ccfc3478c32a35e3510 Mon Sep 17 00:00:00 2001 From: sternenseemann Date: Thu, 19 Sep 2024 14:01:13 +0200 Subject: [PATCH 41/50] top-level/release-haskell.nix: add jobs for cross compiled GHCs --- pkgs/top-level/release-haskell.nix | 78 ++++++++++++++++++++---------- 1 file changed, 53 insertions(+), 25 deletions(-) diff --git a/pkgs/top-level/release-haskell.nix b/pkgs/top-level/release-haskell.nix index 547af2e4a22ad..88518f6b1d2e6 100644 --- a/pkgs/top-level/release-haskell.nix +++ b/pkgs/top-level/release-haskell.nix @@ -475,37 +475,65 @@ let }; }; - pkgsCross.ghcjs = - removePlatforms - [ - # Hydra output size of 3GB is exceeded - "aarch64-linux" - ] - { - haskellPackages = { - inherit (packagePlatforms pkgs.pkgsCross.ghcjs.haskellPackages) - ghc - hello - microlens - ; + pkgsCross = { + ghcjs = + removePlatforms + [ + # Hydra output size of 3GB is exceeded + "aarch64-linux" + ] + { + haskellPackages = { + inherit (packagePlatforms pkgs.pkgsCross.ghcjs.haskellPackages) + ghc + hello + microlens + ; + }; + + haskell.packages.ghc98 = { + inherit (packagePlatforms pkgs.pkgsCross.ghcjs.haskell.packages.ghc98) + ghc + hello + microlens + ; + }; + + haskell.packages.ghcHEAD = { + inherit (packagePlatforms pkgs.pkgsCross.ghcjs.haskell.packages.ghcHEAD) + ghc + hello + microlens + ; + }; }; - haskell.packages.ghc98 = { - inherit (packagePlatforms pkgs.pkgsCross.ghcjs.haskell.packages.ghc98) - ghc - hello - microlens + riscv64 = { + # Cross compilation of GHC + haskell.compiler = { + inherit (packagePlatforms pkgs.pkgsCross.riscv64.haskell.compiler) + # Our oldest GHC which still uses its own expression. 8.10.7 can + # theoretically be used to chain bootstrap all GHCs on riscv64 + # which doesn't have official bindists. + ghc8107 + # Latest GHC we are able to cross-compile. + ghc948 ; - }; + }; + }; - haskell.packages.ghcHEAD = { - inherit (packagePlatforms pkgs.pkgsCross.ghcjs.haskell.packages.ghcHEAD) - ghc - hello - microlens + aarch64-multiplatform = { + # Cross compilation of GHC + haskell.compiler = { + inherit (packagePlatforms pkgs.pkgsCross.aarch64-multiplatform.haskell.compiler) + # Uses a separate expression and LLVM backend for aarch64. + ghc8107 + # Latest GHC we are able to cross-compile. Uses NCG backend. + ghc948 ; - }; }; + }; + }; }) (versionedCompilerJobs { # Packages which should be checked on more than the From f3f40a16c748534cead9acea568aac46b4005611 Mon Sep 17 00:00:00 2001 From: sternenseemann Date: Thu, 19 Sep 2024 15:27:09 +0200 Subject: [PATCH 42/50] binutils: CoreServices depends on host, not build platform This was introduced in 879556bea51ce and 33c0dd692b0cbc47e6edb4e5c158378fe4962769. See: https://github.com/NixOS/nixpkgs/commit/33c0dd692b0cbc47e6edb4e5c158378fe4962769#r146876310. --- pkgs/development/tools/misc/binutils/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/tools/misc/binutils/default.nix b/pkgs/development/tools/misc/binutils/default.nix index 491bfc19ae0fc..cbc6351d5545f 100644 --- a/pkgs/development/tools/misc/binutils/default.nix +++ b/pkgs/development/tools/misc/binutils/default.nix @@ -84,7 +84,7 @@ stdenv.mkDerivation (finalAttrs: { # not need to know binutils' BINDIR at all. It's an absolute path # where libraries are stored. ./plugins-no-BINDIR.patch - ] ++ lib.optionals buildPlatform.isDarwin [ + ] ++ lib.optionals hostPlatform.isDarwin [ # Note: Conditional to avoid Linux rebuilds on staging-next. Remove the conditional with the next update. # ld64 needs `-undefined dynamic_lookup` to link `libctf-nobfd.dylib`, but the Darwin # version detection in `libtool.m4` fails to detect the Darwin version correctly. @@ -122,7 +122,7 @@ stdenv.mkDerivation (finalAttrs: { ++ lib.optionals targetPlatform.isVc4 [ flex ] ; - buildInputs = [ zlib gettext ] ++ lib.optionals buildPlatform.isDarwin [ CoreServices ]; + buildInputs = [ zlib gettext ] ++ lib.optionals hostPlatform.isDarwin [ CoreServices ]; inherit noSysDirs; From e2d259ebc05f57cf74677cb924febefe2c0b71e2 Mon Sep 17 00:00:00 2001 From: Rodney Lorrimar Date: Wed, 18 Sep 2024 12:36:19 +0800 Subject: [PATCH 43/50] pkgs.haskell.lib: Add disableParallelBuilding function --- doc/languages-frameworks/haskell.section.md | 3 +++ pkgs/development/haskell-modules/configuration-common.nix | 4 +--- .../haskell-modules/configuration-ghc-9.10.x.nix | 1 - .../haskell-modules/configuration-ghc-9.12.x.nix | 1 - .../haskell-modules/configuration-ghc-9.6.x.nix | 2 -- .../haskell-modules/configuration-ghc-9.8.x.nix | 1 - .../haskell-modules/configuration-ghcjs-9.x.nix | 6 ------ pkgs/development/haskell-modules/lib/compose.nix | 7 +++++++ pkgs/development/haskell-modules/lib/default.nix | 2 ++ 9 files changed, 13 insertions(+), 14 deletions(-) diff --git a/doc/languages-frameworks/haskell.section.md b/doc/languages-frameworks/haskell.section.md index e8970b2d03354..247daf8d1dbe8 100644 --- a/doc/languages-frameworks/haskell.section.md +++ b/doc/languages-frameworks/haskell.section.md @@ -1076,6 +1076,9 @@ benchmark component. `disableLibraryProfiling drv` : Sets the `enableLibraryProfiling` argument to `false` for `drv`. +`disableParallelBuilding drv` +: Sets the `enableParallelBuilding` argument to `false` for `drv`. + #### Library functions in the Haskell package sets {#haskell-package-set-lib-functions} Some library functions depend on packages from the Haskell package sets. Thus they are diff --git a/pkgs/development/haskell-modules/configuration-common.nix b/pkgs/development/haskell-modules/configuration-common.nix index fc9829b0576cf..00b300a664d68 100644 --- a/pkgs/development/haskell-modules/configuration-common.nix +++ b/pkgs/development/haskell-modules/configuration-common.nix @@ -2458,9 +2458,7 @@ self: super: { # See: https://gitlab.haskell.org/ghc/ghc/-/issues/17188 # # Overwrite the build cores - raaz = overrideCabal (drv: { - enableParallelBuilding = false; - }) super.raaz; + raaz = disableParallelBuilding super.raaz; # https://github.com/andreymulik/sdp/issues/3 sdp = disableLibraryProfiling super.sdp; diff --git a/pkgs/development/haskell-modules/configuration-ghc-9.10.x.nix b/pkgs/development/haskell-modules/configuration-ghc-9.10.x.nix index 665cfecb26aad..e0ca8e9e442dd 100644 --- a/pkgs/development/haskell-modules/configuration-ghc-9.10.x.nix +++ b/pkgs/development/haskell-modules/configuration-ghc-9.10.x.nix @@ -5,7 +5,6 @@ with haskellLib; let inherit (pkgs) lib; - disableParallelBuilding = haskellLib.overrideCabal (drv: { enableParallelBuilding = false; }); in self: super: { diff --git a/pkgs/development/haskell-modules/configuration-ghc-9.12.x.nix b/pkgs/development/haskell-modules/configuration-ghc-9.12.x.nix index 98a8cb4d49b80..068e18c880cec 100644 --- a/pkgs/development/haskell-modules/configuration-ghc-9.12.x.nix +++ b/pkgs/development/haskell-modules/configuration-ghc-9.12.x.nix @@ -3,7 +3,6 @@ let inherit (pkgs) lib; - disableParallelBuilding = haskellLib.overrideCabal (drv: { enableParallelBuilding = false; }); in self: super: { diff --git a/pkgs/development/haskell-modules/configuration-ghc-9.6.x.nix b/pkgs/development/haskell-modules/configuration-ghc-9.6.x.nix index 90d8bc7ff0346..f893846cab2dc 100644 --- a/pkgs/development/haskell-modules/configuration-ghc-9.6.x.nix +++ b/pkgs/development/haskell-modules/configuration-ghc-9.6.x.nix @@ -15,8 +15,6 @@ let builtins.throw "Check if '${msg}' was resolved in ${pkg.pname} ${pkg.version} and update or remove this"; jailbreakForCurrentVersion = p: v: checkAgainAfter p v "bad bounds" (doJailbreak p); - # Workaround for a ghc-9.6 issue: https://gitlab.haskell.org/ghc/ghc/-/issues/23392 - disableParallelBuilding = overrideCabal (drv: { enableParallelBuilding = false; }); in self: super: { diff --git a/pkgs/development/haskell-modules/configuration-ghc-9.8.x.nix b/pkgs/development/haskell-modules/configuration-ghc-9.8.x.nix index 9094f1f8e9eaf..712ea1bbf5787 100644 --- a/pkgs/development/haskell-modules/configuration-ghc-9.8.x.nix +++ b/pkgs/development/haskell-modules/configuration-ghc-9.8.x.nix @@ -5,7 +5,6 @@ with haskellLib; let inherit (pkgs.stdenv.hostPlatform) isDarwin; - disableParallelBuilding = haskellLib.overrideCabal (drv: { enableParallelBuilding = false; }); in self: super: { diff --git a/pkgs/development/haskell-modules/configuration-ghcjs-9.x.nix b/pkgs/development/haskell-modules/configuration-ghcjs-9.x.nix index 044a3a8f69d8e..448f04228bec2 100644 --- a/pkgs/development/haskell-modules/configuration-ghcjs-9.x.nix +++ b/pkgs/development/haskell-modules/configuration-ghcjs-9.x.nix @@ -2,12 +2,6 @@ with haskellLib; -let - disableParallelBuilding = overrideCabal (drv: { - enableParallelBuilding = false; - }); -in - # cabal2nix doesn't properly add dependencies conditional on arch(javascript) (self: super: { diff --git a/pkgs/development/haskell-modules/lib/compose.nix b/pkgs/development/haskell-modules/lib/compose.nix index 09de1d228d942..3661c74d499a2 100644 --- a/pkgs/development/haskell-modules/lib/compose.nix +++ b/pkgs/development/haskell-modules/lib/compose.nix @@ -184,6 +184,13 @@ rec { markBrokenVersion = version: drv: assert drv.version == version; markBroken drv; markUnbroken = overrideCabal (drv: { broken = false; }); + /* disableParallelBuilding drops the -j option from the GHC + command line for the given package. This can be useful in rare + situations where parallel building of a package causes GHC to + fail for some reason. + */ + disableParallelBuilding = overrideCabal (drv: { enableParallelBuilding = false; }); + enableLibraryProfiling = overrideCabal (drv: { enableLibraryProfiling = true; }); disableLibraryProfiling = overrideCabal (drv: { enableLibraryProfiling = false; }); diff --git a/pkgs/development/haskell-modules/lib/default.nix b/pkgs/development/haskell-modules/lib/default.nix index 2bcd8f25d1146..976e62afc630d 100644 --- a/pkgs/development/haskell-modules/lib/default.nix +++ b/pkgs/development/haskell-modules/lib/default.nix @@ -176,6 +176,8 @@ rec { markBrokenVersion = compose.markBrokenVersion; markUnbroken = compose.markUnbroken; + disableParallelBuilding = compose.disableParallelBuilding; + enableLibraryProfiling = compose.enableLibraryProfiling; disableLibraryProfiling = compose.disableLibraryProfiling; From 931fd13dd21ddb2940887709664e85908c47f533 Mon Sep 17 00:00:00 2001 From: Rodney Lorrimar Date: Wed, 18 Sep 2024 12:40:23 +0800 Subject: [PATCH 44/50] haskellPackages.gi-gtk: Re-enable parallel building The GHC bug isn't fixed, but there has been a workaround added to haskell-gi 0.26.10 to avoid triggering the problem. 1. https://gitlab.haskell.org/ghc/ghc/-/issues/23392 2. https://hackage.haskell.org/package/haskell-gi-0.26.10/changelog --- pkgs/development/haskell-modules/configuration-ghc-9.10.x.nix | 3 --- pkgs/development/haskell-modules/configuration-ghc-9.12.x.nix | 2 -- pkgs/development/haskell-modules/configuration-ghc-9.6.x.nix | 3 --- pkgs/development/haskell-modules/configuration-ghc-9.8.x.nix | 3 --- 4 files changed, 11 deletions(-) diff --git a/pkgs/development/haskell-modules/configuration-ghc-9.10.x.nix b/pkgs/development/haskell-modules/configuration-ghc-9.10.x.nix index e0ca8e9e442dd..972cbc4c7e03b 100644 --- a/pkgs/development/haskell-modules/configuration-ghc-9.10.x.nix +++ b/pkgs/development/haskell-modules/configuration-ghc-9.10.x.nix @@ -54,9 +54,6 @@ self: super: { unix = null; xhtml = null; - # https://gitlab.haskell.org/ghc/ghc/-/issues/23392 - gi-gtk = disableParallelBuilding super.gi-gtk; - # # Version upgrades # diff --git a/pkgs/development/haskell-modules/configuration-ghc-9.12.x.nix b/pkgs/development/haskell-modules/configuration-ghc-9.12.x.nix index 068e18c880cec..adc1896306202 100644 --- a/pkgs/development/haskell-modules/configuration-ghc-9.12.x.nix +++ b/pkgs/development/haskell-modules/configuration-ghc-9.12.x.nix @@ -52,6 +52,4 @@ self: super: { unix = null; xhtml = null; - # https://gitlab.haskell.org/ghc/ghc/-/issues/23392 - gi-gtk = disableParallelBuilding super.gi-gtk; } diff --git a/pkgs/development/haskell-modules/configuration-ghc-9.6.x.nix b/pkgs/development/haskell-modules/configuration-ghc-9.6.x.nix index f893846cab2dc..b6485a111b20e 100644 --- a/pkgs/development/haskell-modules/configuration-ghc-9.6.x.nix +++ b/pkgs/development/haskell-modules/configuration-ghc-9.6.x.nix @@ -107,9 +107,6 @@ self: super: { package-version # doctest <0.21, tasty-hedgehog <1.4 ; - # Avoid triggering an issue in ghc-9.6.2 - gi-gtk = disableParallelBuilding super.gi-gtk; - # Pending text-2.0 support https://github.com/gtk2hs/gtk2hs/issues/327 gtk = doJailbreak super.gtk; diff --git a/pkgs/development/haskell-modules/configuration-ghc-9.8.x.nix b/pkgs/development/haskell-modules/configuration-ghc-9.8.x.nix index 712ea1bbf5787..7e89ea668e028 100644 --- a/pkgs/development/haskell-modules/configuration-ghc-9.8.x.nix +++ b/pkgs/development/haskell-modules/configuration-ghc-9.8.x.nix @@ -145,7 +145,4 @@ self: super: { sha256 = "sha256-umjwgdSKebJdRrXjwHhsi8HBqotx1vFibY9ttLkyT/0="; }) super.reflex; - # https://gitlab.haskell.org/ghc/ghc/-/issues/23392 - gi-gtk = disableParallelBuilding super.gi-gtk; - } From 0cac1f100d430a58733616e9fbe7010374b05112 Mon Sep 17 00:00:00 2001 From: sternenseemann Date: Mon, 23 Sep 2024 16:18:13 +0200 Subject: [PATCH 45/50] haskell.compiler.*: don't declare stage0 ghc as dep to stdenv Some GHC bindists have a normal `$out/lib` directory which contains symlinks to all core libs. Because it is a normal lib directory, the bintools setup hook will pick up on it and cause ld to pass the appropriate -L and -rpath flags. We do not want this to happen, especially in the case of the stage2 compiler. Not only will the final ghc have an unnecessary reference (and thus increased closure size) to the binary ghc, but the extra libraries in the rpath mess with the rts and cause e.g. segfaults in GHCi. Unfortunately, there is no way to prevent this. It is a fundamental flaw in the cc and bintools wrappers that they do not actually distinguish between the roles of dependencies (build, host, target). Instead the mangleVar* function will translate the dependencies split up by roles into platforms. This means that the wrappers can't distinguish between depsBuildBuild and depsHostTarget (== buildInputs) when natively compiling. As long as we are natively compiling the wrappers will put the stage0 ghc (be it in depsBuildBuild, nativeBuildInputs etc.) into the linker flags of the final ghc. The solution is to sidestep the issue. We just had ghc in depsBuildBuild to have it added to PATH. GHC itself will pass the appropriate linker flags if necessary. To avoid the setup hooks picking up on the GHC libraries we just don't put it into depsBuildBuild or any other dependency list. Since the GHC build system accepts the GHC binary via an absolute path, we don't even need to add the stage0 GHC to PATH. --- pkgs/development/compilers/ghc/8.10.7.nix | 12 +++++++---- .../compilers/ghc/common-hadrian.nix | 13 ++++++++---- .../ghc/common-make-native-bignum.nix | 12 +++++++---- pkgs/top-level/haskell-packages.nix | 20 ------------------- 4 files changed, 25 insertions(+), 32 deletions(-) diff --git a/pkgs/development/compilers/ghc/8.10.7.nix b/pkgs/development/compilers/ghc/8.10.7.nix index 4a973b0006729..82096646c9a26 100644 --- a/pkgs/development/compilers/ghc/8.10.7.nix +++ b/pkgs/development/compilers/ghc/8.10.7.nix @@ -316,6 +316,8 @@ stdenv.mkDerivation (rec { for env in $(env | grep '^TARGET_' | sed -E 's|\+?=.*||'); do export "''${env#TARGET_}=''${!env}" done + # Stage0 (build->build) which builds stage 1 + export GHC="${bootPkgs.ghc}/bin/ghc" # GHC is a bit confused on its cross terminology, as these would normally be # the *host* tools. export CC="${toolPath "cc" targetCC}" @@ -433,11 +435,13 @@ stdenv.mkDerivation (rec { sphinx ]; - # Stage0 compiler and the tools/libs it needs to build Stage1. Stage0 is - # build->build, Stage1 is build->target (which may be the same as - # host->target) + # Everything the stage0 compiler needs to build stage1: CC, bintools, extra libs. + # See also GHC, {CC,LD,AR}_STAGE0 in preConfigure. depsBuildBuild = [ - bootPkgs.ghc + # N.B. We do not declare bootPkgs.ghc in any of the stdenv.mkDerivation + # dependency lists to prevent the bintools setup hook from adding ghc's + # lib directory to the linker flags. Instead we tell configure about it + # via the GHC environment variable. buildCC # stage0 builds terminfo unconditionally, so we always need ncurses ncurses diff --git a/pkgs/development/compilers/ghc/common-hadrian.nix b/pkgs/development/compilers/ghc/common-hadrian.nix index 2b3dd4ff4985e..52b9c5938fec0 100644 --- a/pkgs/development/compilers/ghc/common-hadrian.nix +++ b/pkgs/development/compilers/ghc/common-hadrian.nix @@ -403,6 +403,9 @@ stdenv.mkDerivation ({ export CC_STAGE0="$CC_FOR_BUILD" export LD_STAGE0="$LD_FOR_BUILD" export AR_STAGE0="$AR_FOR_BUILD" + + # Stage0 (build->build) which builds stage 1 + export GHC="${bootPkgs.ghc}/bin/ghc" # GHC is a bit confused on its cross terminology, as these would normally be # the *host* tools. export CC="${toolPath "cc" targetCC}" @@ -557,11 +560,13 @@ stdenv.mkDerivation ({ # For building runtime libs depsBuildTarget = toolsForTarget; - # Stage0 compiler and the tools/libs it needs to build Stage1. Stage0 is - # build->build, Stage1 is build->target (which may be the same as - # host->target) + # Everything the stage0 compiler needs to build stage1: CC, bintools, extra libs. + # See also GHC, {CC,LD,AR}_STAGE0 in preConfigure. depsBuildBuild = [ - bootPkgs.ghc + # N.B. We do not declare bootPkgs.ghc in any of the stdenv.mkDerivation + # dependency lists to prevent the bintools setup hook from adding ghc's + # lib directory to the linker flags. Instead we tell configure about it + # via the GHC environment variable. buildCC # stage0 builds terminfo unconditionally, so we always need ncurses ncurses diff --git a/pkgs/development/compilers/ghc/common-make-native-bignum.nix b/pkgs/development/compilers/ghc/common-make-native-bignum.nix index f92bba3f5b5a8..2e3c60cd99da9 100644 --- a/pkgs/development/compilers/ghc/common-make-native-bignum.nix +++ b/pkgs/development/compilers/ghc/common-make-native-bignum.nix @@ -317,6 +317,8 @@ stdenv.mkDerivation (rec { for env in $(env | grep '^TARGET_' | sed -E 's|\+?=.*||'); do export "''${env#TARGET_}=''${!env}" done + # Stage0 (build->build) which builds stage 1 + export GHC="${bootPkgs.ghc}/bin/ghc" # GHC is a bit confused on its cross terminology, as these would normally be # the *host* tools. export CC="${toolPath "cc" targetCC}" @@ -451,11 +453,13 @@ stdenv.mkDerivation (rec { xattr ]; - # Stage0 compiler and the tools/libs it needs to build Stage1. Stage0 is - # build->build, Stage1 is build->target (which may be the same as - # host->target) + # Everything the stage0 compiler needs to build stage1: CC, bintools, extra libs. + # See also GHC, {CC,LD,AR}_STAGE0 in preConfigure. depsBuildBuild = [ - bootPkgs.ghc + # N.B. We do not declare bootPkgs.ghc in any of the stdenv.mkDerivation + # dependency lists to prevent the bintools setup hook from adding ghc's + # lib directory to the linker flags. Instead we tell configure about it + # via the GHC environment variable. buildCC # stage0 builds terminfo unconditionally, so we always need ncurses ncurses diff --git a/pkgs/top-level/haskell-packages.nix b/pkgs/top-level/haskell-packages.nix index ae8eb3f1d6cc4..7db5618ec3140 100644 --- a/pkgs/top-level/haskell-packages.nix +++ b/pkgs/top-level/haskell-packages.nix @@ -280,11 +280,6 @@ in { bb.packages.ghc928 else if stdenv.buildPlatform.isPower64 && stdenv.buildPlatform.isLittleEndian then bb.packages.ghc928 - else if stdenv.buildPlatform.isAarch64 && stdenv.buildPlatform.isLinux then - # For unknown reasons, compiling with a bindist GHC causes the final - # GHC's rpaths to contain the boot compiler on aarch64-linux / GHC 9.6.*. - # Note: Unclear if this is due to host or build aarch64-linux. - bb.packages.ghc928 else bb.packages.ghc924Binary; inherit (buildPackages.python3Packages) sphinx; @@ -303,11 +298,6 @@ in { bb.packages.ghc928 else if stdenv.buildPlatform.isPower64 && stdenv.buildPlatform.isLittleEndian then bb.packages.ghc928 - else if stdenv.buildPlatform.isAarch64 && stdenv.buildPlatform.isLinux then - # For unknown reasons, compiling with a bindist GHC causes the final - # GHC's rpaths to contain the boot compiler on aarch64-linux / GHC 9.6.*. - # Note: Unclear if this is due to host or build aarch64-linux. - bb.packages.ghc928 else bb.packages.ghc924Binary; inherit (buildPackages.python3Packages) sphinx; @@ -326,11 +316,6 @@ in { bb.packages.ghc928 else if stdenv.buildPlatform.isPower64 && stdenv.buildPlatform.isLittleEndian then bb.packages.ghc928 - else if stdenv.buildPlatform.isAarch64 && stdenv.buildPlatform.isLinux then - # For unknown reasons, compiling with a bindist GHC causes the final - # GHC's rpaths to contain the boot compiler on aarch64-linux / GHC 9.6.*. - # Note: Unclear if this is due to host or build aarch64-linux. - bb.packages.ghc928 else bb.packages.ghc924Binary; inherit (buildPackages.python3Packages) sphinx; @@ -349,11 +334,6 @@ in { bb.packages.ghc928 else if stdenv.buildPlatform.isPower64 && stdenv.buildPlatform.isLittleEndian then bb.packages.ghc928 - else if stdenv.buildPlatform.isAarch64 && stdenv.buildPlatform.isLinux then - # For unknown reasons, compiling with a bindist GHC causes the final - # GHC's rpaths to contain the boot compiler on aarch64-linux / GHC 9.6.*. - # Note: Unclear if this is due to host or build aarch64-linux. - bb.packages.ghc928 else bb.packages.ghc924Binary; inherit (buildPackages.python3Packages) sphinx; From 5ad0f9ac30f8172da997fc9fc6804e34500a1d1b Mon Sep 17 00:00:00 2001 From: sternenseemann Date: Mon, 23 Sep 2024 17:55:06 +0200 Subject: [PATCH 46/50] haskell.compiler.*: let configure know about objdump This seems to be a build time only dependency as there is no corresponding settings entry. --- pkgs/development/compilers/ghc/8.10.7.nix | 2 ++ pkgs/development/compilers/ghc/common-hadrian.nix | 2 ++ pkgs/development/compilers/ghc/common-make-native-bignum.nix | 2 ++ 3 files changed, 6 insertions(+) diff --git a/pkgs/development/compilers/ghc/8.10.7.nix b/pkgs/development/compilers/ghc/8.10.7.nix index 82096646c9a26..9b54c33093326 100644 --- a/pkgs/development/compilers/ghc/8.10.7.nix +++ b/pkgs/development/compilers/ghc/8.10.7.nix @@ -164,6 +164,7 @@ let ranlib = cc.bintools.bintools; nm = cc.bintools.bintools; readelf = cc.bintools.bintools; + objdump = cc.bintools; ld = cc.bintools; "ld.gold" = cc.bintools; @@ -330,6 +331,7 @@ stdenv.mkDerivation (rec { export RANLIB="${toolPath "ranlib" targetCC}" export READELF="${toolPath "readelf" targetCC}" export STRIP="${toolPath "strip" targetCC}" + export OBJDUMP="${toolPath "objdump" targetCC}" '' + lib.optionalString (stdenv.targetPlatform.linker == "cctools") '' export OTOOL="${toolPath "otool" targetCC}" export INSTALL_NAME_TOOL="${toolPath "install_name_tool" targetCC}" diff --git a/pkgs/development/compilers/ghc/common-hadrian.nix b/pkgs/development/compilers/ghc/common-hadrian.nix index 52b9c5938fec0..365640bce385c 100644 --- a/pkgs/development/compilers/ghc/common-hadrian.nix +++ b/pkgs/development/compilers/ghc/common-hadrian.nix @@ -312,6 +312,7 @@ let ranlib = cc.bintools.bintools; nm = cc.bintools.bintools; readelf = cc.bintools.bintools; + objdump = cc.bintools; ld = cc.bintools; "ld.gold" = cc.bintools; @@ -418,6 +419,7 @@ stdenv.mkDerivation ({ export RANLIB="${toolPath "ranlib" targetCC}" export READELF="${toolPath "readelf" targetCC}" export STRIP="${toolPath "strip" targetCC}" + export OBJDUMP="${toolPath "objdump" targetCC}" '' + lib.optionalString (stdenv.targetPlatform.linker == "cctools") '' export OTOOL="${toolPath "otool" targetCC}" export INSTALL_NAME_TOOL="${toolPath "install_name_tool" targetCC}" diff --git a/pkgs/development/compilers/ghc/common-make-native-bignum.nix b/pkgs/development/compilers/ghc/common-make-native-bignum.nix index 2e3c60cd99da9..f8f69f7a03773 100644 --- a/pkgs/development/compilers/ghc/common-make-native-bignum.nix +++ b/pkgs/development/compilers/ghc/common-make-native-bignum.nix @@ -167,6 +167,7 @@ let ranlib = cc.bintools.bintools; nm = cc.bintools.bintools; readelf = cc.bintools.bintools; + objdump = cc.bintools; ld = cc.bintools; "ld.gold" = cc.bintools; @@ -331,6 +332,7 @@ stdenv.mkDerivation (rec { export RANLIB="${toolPath "ranlib" targetCC}" export READELF="${toolPath "readelf" targetCC}" export STRIP="${toolPath "strip" targetCC}" + export OBJDUMP="${toolPath "objdump" targetCC}" '' + lib.optionalString (stdenv.targetPlatform.linker == "cctools") '' export OTOOL="${toolPath "otool" targetCC}" export INSTALL_NAME_TOOL="${toolPath "install_name_tool" targetCC}" From 5b15a1f577931e4685cab06cdf782538e0e1deff Mon Sep 17 00:00:00 2001 From: sternenseemann Date: Mon, 23 Sep 2024 18:00:05 +0200 Subject: [PATCH 47/50] haskell.compiler.*: use symlinks from bintool wrapper if possible Ideally we don't want to use bintools.bintools and also not really encode knowledge of what is wrapped and what not in our GHC derivation. Unfortunately, not all tools are part of the wrapper derivation as well. This should be gradually improved (e.g. in the case of the darwin tools and strip). --- pkgs/development/compilers/ghc/8.10.7.nix | 10 +++++----- pkgs/development/compilers/ghc/common-hadrian.nix | 10 +++++----- .../compilers/ghc/common-make-native-bignum.nix | 10 +++++----- 3 files changed, 15 insertions(+), 15 deletions(-) diff --git a/pkgs/development/compilers/ghc/8.10.7.nix b/pkgs/development/compilers/ghc/8.10.7.nix index 9b54c33093326..6b26f2fb85179 100644 --- a/pkgs/development/compilers/ghc/8.10.7.nix +++ b/pkgs/development/compilers/ghc/8.10.7.nix @@ -158,12 +158,12 @@ let tools = { "cc" = cc; "c++" = cc; - as = cc.bintools.bintools; + as = cc.bintools; - ar = cc.bintools.bintools; - ranlib = cc.bintools.bintools; - nm = cc.bintools.bintools; - readelf = cc.bintools.bintools; + ar = cc.bintools; + ranlib = cc.bintools; + nm = cc.bintools; + readelf = cc.bintools; objdump = cc.bintools; ld = cc.bintools; diff --git a/pkgs/development/compilers/ghc/common-hadrian.nix b/pkgs/development/compilers/ghc/common-hadrian.nix index 365640bce385c..b5eeb2012bdbe 100644 --- a/pkgs/development/compilers/ghc/common-hadrian.nix +++ b/pkgs/development/compilers/ghc/common-hadrian.nix @@ -306,12 +306,12 @@ let tools = { "cc" = cc; "c++" = cc; - as = cc.bintools.bintools; + as = cc.bintools; - ar = cc.bintools.bintools; - ranlib = cc.bintools.bintools; - nm = cc.bintools.bintools; - readelf = cc.bintools.bintools; + ar = cc.bintools; + ranlib = cc.bintools; + nm = cc.bintools; + readelf = cc.bintools; objdump = cc.bintools; ld = cc.bintools; diff --git a/pkgs/development/compilers/ghc/common-make-native-bignum.nix b/pkgs/development/compilers/ghc/common-make-native-bignum.nix index f8f69f7a03773..a26336ac6fe8c 100644 --- a/pkgs/development/compilers/ghc/common-make-native-bignum.nix +++ b/pkgs/development/compilers/ghc/common-make-native-bignum.nix @@ -161,12 +161,12 @@ let tools = { "cc" = cc; "c++" = cc; - as = cc.bintools.bintools; + as = cc.bintools; - ar = cc.bintools.bintools; - ranlib = cc.bintools.bintools; - nm = cc.bintools.bintools; - readelf = cc.bintools.bintools; + ar = cc.bintools; + ranlib = cc.bintools; + nm = cc.bintools; + readelf = cc.bintools; objdump = cc.bintools; ld = cc.bintools; From e742aa029a0105eb404927c6862d12348c45e262 Mon Sep 17 00:00:00 2001 From: sternenseemann Date: Wed, 2 Oct 2024 00:27:53 +0200 Subject: [PATCH 48/50] haskellPackages: mark builds failing on hydra as broken This commit has been generated by maintainers/scripts/haskell/mark-broken.sh based on *evaluation [1809145](https://hydra.nixos.org/eval/1809145) of nixpkgs commit [3c833cf](https://github.com/NixOS/nixpkgs/commits/3c833cfcd12780ede91248757e0b4ab758d80a37) as of 2024-10-01 18:51 UTC* from the haskell-updates jobset on hydra under https://hydra.nixos.org/jobset/nixpkgs/haskell-updates --- .../configuration-hackage2nix/broken.yaml | 17 ++++++++ .../transitive-broken.yaml | 6 +++ .../haskell-modules/hackage-packages.nix | 40 +++++++++++++++++++ 3 files changed, 63 insertions(+) diff --git a/pkgs/development/haskell-modules/configuration-hackage2nix/broken.yaml b/pkgs/development/haskell-modules/configuration-hackage2nix/broken.yaml index f354cf1433f89..ba659b51711ef 100644 --- a/pkgs/development/haskell-modules/configuration-hackage2nix/broken.yaml +++ b/pkgs/development/haskell-modules/configuration-hackage2nix/broken.yaml @@ -158,6 +158,7 @@ broken-packages: - amqp-conduit # failure in job https://hydra.nixos.org/build/233228080 at 2023-09-02 - amqp-worker # failure in job https://hydra.nixos.org/build/236675859 at 2023-10-04 - analyze # failure in job https://hydra.nixos.org/build/233251441 at 2023-09-02 + - anansi # failure in job https://hydra.nixos.org/build/273451545 at 2024-10-01 - anansi-pandoc # failure in job https://hydra.nixos.org/build/233252389 at 2023-09-02 - android-activity # failure in job https://hydra.nixos.org/build/233203400 at 2023-09-02 - android # failure in job https://hydra.nixos.org/build/233222148 at 2023-09-02 @@ -611,6 +612,7 @@ broken-packages: - cabal2ebuild # failure in job https://hydra.nixos.org/build/233221248 at 2023-09-02 - cabal2ghci # failure in job https://hydra.nixos.org/build/233233018 at 2023-09-02 - cabal2json # failure in job https://hydra.nixos.org/build/233196099 at 2023-09-02 + - cabal-add # failure in job https://hydra.nixos.org/build/273461296 at 2024-10-01 - cabal-audit # failure in job https://hydra.nixos.org/build/233193414 at 2023-09-02 - cabal-auto-expose # failure in job https://hydra.nixos.org/build/233195440 at 2023-09-02 - cabal-build-programs # failure in job https://hydra.nixos.org/build/257091363 at 2024-04-27 @@ -799,7 +801,13 @@ broken-packages: - clanki # failure in job https://hydra.nixos.org/build/233196970 at 2023-09-02 - clarifai # failure in job https://hydra.nixos.org/build/233229480 at 2023-09-02 - CLASE # failure in job https://hydra.nixos.org/build/233234459 at 2023-09-02 + - clashilator # failure in job https://hydra.nixos.org/build/273442437 at 2024-10-01 + - clash-multisignal # failure in job https://hydra.nixos.org/build/273463331 at 2024-10-01 + - clash-prelude-quickcheck # failure in job https://hydra.nixos.org/build/273453747 at 2024-10-01 - Clash-Royale-Hack-Cheats # failure in job https://hydra.nixos.org/build/233216034 at 2023-09-02 + - clash-systemverilog # failure in job https://hydra.nixos.org/build/273453889 at 2024-10-01 + - clash-verilog # failure in job https://hydra.nixos.org/build/273466517 at 2024-10-01 + - clash-vhdl # failure in job https://hydra.nixos.org/build/273460098 at 2024-10-01 - ClasshSS # failure in job https://hydra.nixos.org/build/255688076 at 2024-04-16 - ClassLaws # failure in job https://hydra.nixos.org/build/233243019 at 2023-09-02 - classy-effects-base # failure in updateAutotoolsGnuConfigScriptsPhase in job https://hydra.nixos.org/build/237233636 at 2023-10-21 @@ -1327,6 +1335,7 @@ broken-packages: - directory-ospath-streaming # failure in job https://hydra.nixos.org/build/233240003 at 2023-09-02 - direct-plugins # failure in job https://hydra.nixos.org/build/233211547 at 2023-09-02 - direm # failure in job https://hydra.nixos.org/build/233211496 at 2023-09-02 + - dirstream # failure in job https://hydra.nixos.org/build/273442606 at 2024-10-01 - disco # failure in job https://hydra.nixos.org/build/233212298 at 2023-09-02 - discordian-calendar # failure in job https://hydra.nixos.org/build/233218124 at 2023-09-02 - discord-types # failure in job https://hydra.nixos.org/build/233251778 at 2023-09-02 @@ -2789,6 +2798,7 @@ broken-packages: - hs2ps # failure in job https://hydra.nixos.org/build/233258362 at 2023-09-02 - hsakamai # failure in job https://hydra.nixos.org/build/252722933 at 2024-03-16 - hsaml2 # failure in job https://hydra.nixos.org/build/233252618 at 2023-09-02 + - hs-asapo # failure in job https://hydra.nixos.org/build/273456994 at 2024-10-01 - hsautogui # failure in job https://hydra.nixos.org/build/253687662 at 2024-03-31 - hsay # failure in job https://hydra.nixos.org/build/233218925 at 2023-09-02 - hsbc # failure in job https://hydra.nixos.org/build/233206310 at 2023-09-02 @@ -4807,6 +4817,7 @@ broken-packages: - proof-assistant-bot # failure in job https://hydra.nixos.org/build/234974688 at 2023-09-13 - proof-combinators # failure in job https://hydra.nixos.org/build/233210521 at 2023-09-02 - PropaFP # failure in job https://hydra.nixos.org/build/233206496 at 2023-09-02 + - propeller # failure in job https://hydra.nixos.org/build/273449652 at 2024-10-01 - Proper # failure in job https://hydra.nixos.org/build/233194417 at 2023-09-02 - properties # failure in job https://hydra.nixos.org/build/233240862 at 2023-09-02 - property-list # failure in job https://hydra.nixos.org/build/233254907 at 2023-09-02 @@ -5498,6 +5509,7 @@ broken-packages: - sint # failure in job https://hydra.nixos.org/build/233238431 at 2023-09-02 - siphash # failure in job https://hydra.nixos.org/build/233199344 at 2023-09-02 - sitepipe # failure in job https://hydra.nixos.org/build/233201989 at 2023-09-02 + - si-timers # failure in job https://hydra.nixos.org/build/273467737 at 2024-10-01 - sixfiguregroup # failure in job https://hydra.nixos.org/build/233252141 at 2023-09-02 - sixty-five-oh-two # failure in job https://hydra.nixos.org/build/252714578 at 2024-03-16 - sized-grid # failure in job https://hydra.nixos.org/build/233239056 at 2023-09-02 @@ -5781,7 +5793,9 @@ broken-packages: - strict-ghc-plugin # failure in job https://hydra.nixos.org/build/233246830 at 2023-09-02 - strict-impl-params # failure in job https://hydra.nixos.org/build/252732248 at 2024-03-16 - strictly # failure in job https://hydra.nixos.org/build/233197142 at 2023-09-02 + - strict-mvar # failure in job https://hydra.nixos.org/build/273459853 at 2024-10-01 - strict-optics # failure in job https://hydra.nixos.org/build/267983907 at 2024-07-31 + - strict-stm # failure in job https://hydra.nixos.org/build/273449297 at 2024-10-01 - strict-tuple-lens # failure in job https://hydra.nixos.org/build/233194548 at 2023-09-02 - strict-writer # failure in job https://hydra.nixos.org/build/252725649 at 2024-03-16 - string-class # failure in job https://hydra.nixos.org/build/233230041 at 2023-09-02 @@ -6092,6 +6106,7 @@ broken-packages: - tiger # failure in job https://hydra.nixos.org/build/233249333 at 2023-09-02 - TigerHash # failure in job https://hydra.nixos.org/build/233208162 at 2023-09-02 - tightrope # failure in job https://hydra.nixos.org/build/233215237 at 2023-09-02 + - tiktoken # failure in job https://hydra.nixos.org/build/273448419 at 2024-10-01 - tikzsd # failure in job https://hydra.nixos.org/build/233224431 at 2023-09-02 - timecalc # failure in job https://hydra.nixos.org/build/233207970 at 2023-09-02 - time-extras # failure in job https://hydra.nixos.org/build/233204030 at 2023-09-02 @@ -6259,6 +6274,7 @@ broken-packages: - typed-process-effectful # failure in job https://hydra.nixos.org/build/236684332 at 2023-10-04 - typedquery # failure in job https://hydra.nixos.org/build/233215307 at 2023-09-02 - typed-session # failure in job https://hydra.nixos.org/build/270089993 at 2024-08-31 + - typed-session-state-algorithm # failure in job https://hydra.nixos.org/build/273462641 at 2024-10-01 - typed-spreadsheet # failure in job https://hydra.nixos.org/build/233248967 at 2023-09-02 - typed-time # failure in job https://hydra.nixos.org/build/233246930 at 2023-09-02 - typed-wire # failure in job https://hydra.nixos.org/build/233237626 at 2023-09-02 @@ -6315,6 +6331,7 @@ broken-packages: - unboxed # failure in job https://hydra.nixos.org/build/233219555 at 2023-09-02 - unboxed-references # failure in job https://hydra.nixos.org/build/233192713 at 2023-09-02 - unbreak # failure in job https://hydra.nixos.org/build/233242560 at 2023-09-02 + - uncertain # failure in job https://hydra.nixos.org/build/273461304 at 2024-10-01 - unescaping-print # failure in job https://hydra.nixos.org/build/252736030 at 2024-03-16 - unfix-binders # failure in job https://hydra.nixos.org/build/233259262 at 2023-09-02 - unfoldable # failure in job https://hydra.nixos.org/build/252721990 at 2024-03-16 diff --git a/pkgs/development/haskell-modules/configuration-hackage2nix/transitive-broken.yaml b/pkgs/development/haskell-modules/configuration-hackage2nix/transitive-broken.yaml index de9e5924c7856..721cb18a84756 100644 --- a/pkgs/development/haskell-modules/configuration-hackage2nix/transitive-broken.yaml +++ b/pkgs/development/haskell-modules/configuration-hackage2nix/transitive-broken.yaml @@ -483,6 +483,7 @@ dont-distribute-packages: - ampersand - amqp-streamly - analyze-client + - anansi-hscolour - anatomy - animate-example - animate-frames @@ -1111,6 +1112,7 @@ dont-distribute-packages: - devtools - dewdrop - dfinity-radix-tree + - dhall-lex - dhall-secret - dia-functions - diagrams-reflex @@ -2152,6 +2154,7 @@ dont-distribute-packages: - hs-pkpass - hs-profunctors - hs-sdl-term-emulator + - hs2ats - hs2dot - hsbackup - hsbencher-codespeed @@ -2173,6 +2176,7 @@ dont-distribute-packages: - hsinspect-lsp - hslogstash - hsparql + - hspec-dirstream - hspec-expectations-pretty - hspec-pg-transact - hspec-setup @@ -2321,6 +2325,7 @@ dont-distribute-packages: - introduction-test - intset - invertible-hlist + - io-classes-mtl - ion - ipatch - ipc @@ -2484,6 +2489,7 @@ dont-distribute-packages: - landlock - lang - language-Modula2 + - language-ats - language-boogie - language-ecmascript-analysis - language-eiffel diff --git a/pkgs/development/haskell-modules/hackage-packages.nix b/pkgs/development/haskell-modules/hackage-packages.nix index 46071ca84040c..5502eb1703785 100644 --- a/pkgs/development/haskell-modules/hackage-packages.nix +++ b/pkgs/development/haskell-modules/hackage-packages.nix @@ -36529,7 +36529,9 @@ self: { ]; description = "Simple literate programming preprocessor"; license = lib.licenses.gpl3Only; + hydraPlatforms = lib.platforms.none; mainProgram = "anansi"; + broken = true; }) {}; "anansi-hscolour" = callPackage @@ -36545,6 +36547,7 @@ self: { ]; description = "Colorized looms for Anansi"; license = lib.licenses.gpl3Only; + hydraPlatforms = lib.platforms.none; }) {}; "anansi-pandoc" = callPackage @@ -58357,7 +58360,9 @@ self: { ]; description = "Extend Cabal build-depends from the command line"; license = lib.licenses.bsd3; + hydraPlatforms = lib.platforms.none; mainProgram = "cabal-add"; + broken = true; }) {}; "cabal-appimage" = callPackage @@ -66612,6 +66617,8 @@ self: { base clash-prelude deepseq ghc-typelits-knownnat QuickCheck ]; license = lib.licenses.bsd3; + hydraPlatforms = lib.platforms.none; + broken = true; }) {}; "clash-prelude" = callPackage @@ -66681,6 +66688,8 @@ self: { libraryHaskellDepends = [ base clash-prelude QuickCheck ]; description = "QuickCheck instances for various types in the CλaSH Prelude"; license = "unknown"; + hydraPlatforms = lib.platforms.none; + broken = true; }) {}; "clash-shake" = callPackage @@ -66717,6 +66726,8 @@ self: { ]; description = "CAES Language for Synchronous Hardware - SystemVerilog backend"; license = lib.licenses.bsd2; + hydraPlatforms = lib.platforms.none; + broken = true; }) {}; "clash-verilog" = callPackage @@ -66734,6 +66745,8 @@ self: { ]; description = "CAES Language for Synchronous Hardware - Verilog backend"; license = lib.licenses.bsd2; + hydraPlatforms = lib.platforms.none; + broken = true; }) {}; "clash-vhdl" = callPackage @@ -66751,6 +66764,8 @@ self: { ]; description = "CAES Language for Synchronous Hardware - VHDL backend"; license = lib.licenses.bsd2; + hydraPlatforms = lib.platforms.none; + broken = true; }) {}; "clashilator" = callPackage @@ -66774,7 +66789,9 @@ self: { ]; description = "Automated Clash to Verilator bridge"; license = lib.licenses.mit; + hydraPlatforms = lib.platforms.none; mainProgram = "clashilator"; + broken = true; }) {}; "classify" = callPackage @@ -88565,6 +88582,7 @@ self: { benchmarkHaskellDepends = [ base bytestring criterion ]; description = "Lexer for the Dhall language"; license = lib.licenses.bsd3; + hydraPlatforms = lib.platforms.none; }) {}; "dhall-lsp-server" = callPackage @@ -91142,7 +91160,9 @@ self: { ]; description = "Easily stream directory contents in constant memory"; license = lib.licenses.bsd3; + hydraPlatforms = lib.platforms.none; maintainers = [ lib.maintainers.Gabriella439 ]; + broken = true; }) {}; "dirtree" = callPackage @@ -159559,6 +159579,8 @@ self: { benchmarkHaskellDepends = [ base optparse-applicative text time ]; description = "Haskell bindings for ASAP:O"; license = lib.licenses.mit; + hydraPlatforms = lib.platforms.none; + broken = true; }) {libasapo-consumer = null; libasapo-producer = null;}; "hs-aws-lambda" = callPackage @@ -161003,6 +161025,7 @@ self: { benchmarkHaskellDepends = [ base criterion ]; description = "Create ATS types from Haskell types"; license = lib.licenses.bsd3; + hydraPlatforms = lib.platforms.none; mainProgram = "hs2ats"; }) {}; @@ -163825,6 +163848,7 @@ self: { testHaskellDepends = [ base hspec ]; description = "Helper functions to simplify adding integration tests"; license = lib.licenses.bsd3; + hydraPlatforms = lib.platforms.none; }) {}; "hspec-discover_2_7_10" = callPackage @@ -177049,6 +177073,7 @@ self: { libraryHaskellDepends = [ array base io-classes mtl si-timers ]; description = "Experimental MTL instances for io-classes"; license = lib.licenses.asl20; + hydraPlatforms = lib.platforms.none; }) {}; "io-machine" = callPackage @@ -187751,6 +187776,7 @@ self: { benchmarkHaskellDepends = [ base criterion ]; description = "Parser and pretty-printer for ATS"; license = lib.licenses.bsd3; + hydraPlatforms = lib.platforms.none; }) {}; "language-avro" = callPackage @@ -249769,6 +249795,8 @@ self: { testHaskellDepends = [ base containers ]; description = "A Propagator Library"; license = lib.licenses.bsd3; + hydraPlatforms = lib.platforms.none; + broken = true; }) {}; "propellor" = callPackage @@ -280754,6 +280782,8 @@ self: { testHaskellDepends = [ base QuickCheck tasty tasty-quickcheck ]; description = "timers using SI units (seconds)"; license = lib.licenses.asl20; + hydraPlatforms = lib.platforms.none; + broken = true; }) {}; "sibe" = callPackage @@ -295249,6 +295279,8 @@ self: { ]; description = "Strict MVars for IO and IOSim"; license = lib.licenses.asl20; + hydraPlatforms = lib.platforms.none; + broken = true; }) {}; "strict-optics" = callPackage @@ -295273,6 +295305,8 @@ self: { libraryHaskellDepends = [ array base io-classes stm ]; description = "Strict STM interface polymorphic over stm implementation"; license = lib.licenses.asl20; + hydraPlatforms = lib.platforms.none; + broken = true; }) {}; "strict-tuple" = callPackage @@ -309838,6 +309872,8 @@ self: { ]; description = "Haskell implementation of tiktoken"; license = lib.licenses.bsd3; + hydraPlatforms = lib.platforms.none; + broken = true; }) {}; "tikzsd" = callPackage @@ -318169,6 +318205,8 @@ self: { testHaskellDepends = [ base raw-strings-qq ]; description = "Automatically generate status for typed-session"; license = lib.licenses.mit; + hydraPlatforms = lib.platforms.none; + broken = true; }) {}; "typed-spreadsheet" = callPackage @@ -319805,6 +319843,8 @@ self: { ]; description = "Manipulating numbers with inherent experimental/measurement uncertainty"; license = lib.licenses.bsd3; + hydraPlatforms = lib.platforms.none; + broken = true; }) {}; "unconstrained" = callPackage From 5fd2fd5dbaa5915d49f2cad218f139f2a143ab30 Mon Sep 17 00:00:00 2001 From: Jun Matsushita Date: Wed, 2 Oct 2024 16:55:34 +0200 Subject: [PATCH 49/50] Update release-haskell.nix ghc9101 is fully supported since haskell-language-server-2.9.0.0 https://github.com/haskell/haskell-language-server/pull/4319/files#diff-79cf716c1820425aff19ccc293f5526d96964620e8686a6da542d9c416474b7b Also ties loose end from https://github.com/NixOS/nixpkgs/pull/337720#issuecomment-2312726359 --- pkgs/top-level/release-haskell.nix | 2 -- 1 file changed, 2 deletions(-) diff --git a/pkgs/top-level/release-haskell.nix b/pkgs/top-level/release-haskell.nix index 88518f6b1d2e6..79d9c35e62c45 100644 --- a/pkgs/top-level/release-haskell.nix +++ b/pkgs/top-level/release-haskell.nix @@ -575,8 +575,6 @@ let compilerNames.ghc8107 # Support ceased as of 2.5.0.0 compilerNames.ghc902 - # No support yet (2024-05-12) - compilerNames.ghc9101 ] released; hoogle = lib.subtractLists [ ] released; From 804e7c5173ec7c1eaf5365b0dbb3c9329f9da11a Mon Sep 17 00:00:00 2001 From: sternenseemann Date: Sat, 5 Oct 2024 12:55:30 +0200 Subject: [PATCH 50/50] haskell.compiler.*: don't build profiled libs when host == riscv64 Curiously when building a cross compiled riscv64 GHC, the libraries (for the target) turn out way bigger than when building a riscv64 cross compiler. Profiling libraries are not necessary for bootstrapping GHC, so we can disable them for now. We may want to revisit this condition, though, once we have a native bootstrapping path for riscv64-linux set up. --- pkgs/development/compilers/ghc/8.10.7.nix | 4 +++- pkgs/development/compilers/ghc/common-hadrian.nix | 4 +++- pkgs/development/compilers/ghc/common-make-native-bignum.nix | 4 +++- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/pkgs/development/compilers/ghc/8.10.7.nix b/pkgs/development/compilers/ghc/8.10.7.nix index b769f55839b3e..2f031e6fbf4a8 100644 --- a/pkgs/development/compilers/ghc/8.10.7.nix +++ b/pkgs/development/compilers/ghc/8.10.7.nix @@ -32,7 +32,9 @@ , # If enabled, use -fPIC when compiling static libs. enableRelocatedStaticLibs ? stdenv.targetPlatform != stdenv.hostPlatform -, enableProfiledLibs ? true + # Exceeds Hydra output limit (at the time of writing ~3GB) when cross compiled to riscv64. + # A riscv64 cross-compiler fits into the limit comfortably. +, enableProfiledLibs ? !stdenv.hostPlatform.isRiscV64 , # Whether to build dynamic libs for the standard library (on the target # platform). Static libs are always built. diff --git a/pkgs/development/compilers/ghc/common-hadrian.nix b/pkgs/development/compilers/ghc/common-hadrian.nix index dd7ffaa532d75..43a8310836ad3 100644 --- a/pkgs/development/compilers/ghc/common-hadrian.nix +++ b/pkgs/development/compilers/ghc/common-hadrian.nix @@ -59,7 +59,9 @@ , # If enabled, use -fPIC when compiling static libs. enableRelocatedStaticLibs ? stdenv.targetPlatform != stdenv.hostPlatform -, enableProfiledLibs ? true + # Exceeds Hydra output limit (at the time of writing ~3GB) when cross compiled to riscv64. + # A riscv64 cross-compiler fits into the limit comfortably. +, enableProfiledLibs ? !stdenv.hostPlatform.isRiscV64 , # Whether to build dynamic libs for the standard library (on the target # platform). Static libs are always built. diff --git a/pkgs/development/compilers/ghc/common-make-native-bignum.nix b/pkgs/development/compilers/ghc/common-make-native-bignum.nix index 223b9d8244ff9..7593a175c77cd 100644 --- a/pkgs/development/compilers/ghc/common-make-native-bignum.nix +++ b/pkgs/development/compilers/ghc/common-make-native-bignum.nix @@ -35,7 +35,9 @@ , # If enabled, use -fPIC when compiling static libs. enableRelocatedStaticLibs ? stdenv.targetPlatform != stdenv.hostPlatform -, enableProfiledLibs ? true + # Exceeds Hydra output limit (at the time of writing ~3GB) when cross compiled to riscv64. + # A riscv64 cross-compiler fits into the limit comfortably. +, enableProfiledLibs ? !stdenv.hostPlatform.isRiscV64 , # Whether to build dynamic libs for the standard library (on the target # platform). Static libs are always built.