From 71d53f7b6a8dfb6ca668a61bed608e5ba4208744 Mon Sep 17 00:00:00 2001 From: Hamish Mackenzie Date: Fri, 9 Dec 2022 22:41:45 +1300 Subject: [PATCH 01/38] Fix TH support in GHC 9.4.3 --- ci.nix | 5 +- compiler/ghc/default.nix | 2 + flake.nix | 9 ++-- .../ghc-pkg/dump-global | 28 +++++++++++ overlays/armv6l-linux.nix | 5 +- overlays/haskell.nix | 46 ++++++++++++++++--- overlays/linux-cross.nix | 10 ++-- overlays/mingw_w64.nix | 6 +-- overlays/windows.nix | 24 +--------- test/th-dlls/cabal.project | 9 ++++ 10 files changed, 98 insertions(+), 46 deletions(-) create mode 100644 test/th-dlls/cabal.project diff --git a/ci.nix b/ci.nix index 4bfd5879c0..2d91b13bad 100644 --- a/ci.nix +++ b/ci.nix @@ -56,6 +56,7 @@ ghc902 = false; ghc924 = false; ghc925 = true; + ghc943 = true; })); crossSystems = nixpkgsName: nixpkgs: compiler-nix-name: # We need to use the actual nixpkgs version we're working with here, since the values @@ -66,8 +67,8 @@ || (system == "x86_64-darwin" && __elem compiler-nix-name ["ghc8107"]))) { inherit (lib.systems.examples) ghcjs; } // lib.optionalAttrs (nixpkgsName == "unstable" - && ((system == "x86_64-linux" && __elem compiler-nix-name ["ghc8107" "ghc902" "ghc925"]) - || (system == "x86_64-darwin" && __elem compiler-nix-name []))) { # TODO add ghc versions when we have more darwin build capacity + && ((system == "x86_64-linux" && __elem compiler-nix-name ["ghc8107" "ghc902" "ghc925" "ghc943"]) + || (system == "x86_64-darwin" && __elem compiler-nix-name ["ghc943"]))) { # TODO add ghc versions when we have more darwin build capacity inherit (lib.systems.examples) mingwW64; } // lib.optionalAttrs (system == "x86_64-linux" && nixpkgsName == "unstable" && __elem compiler-nix-name ["ghc8107" "ghc902" "ghc922" "ghc923" "ghc924" "ghc925"]) { # Musl cross only works on linux diff --git a/compiler/ghc/default.nix b/compiler/ghc/default.nix index f5b03a1a08..97b57df74f 100644 --- a/compiler/ghc/default.nix +++ b/compiler/ghc/default.nix @@ -597,6 +597,8 @@ stdenv.mkDerivation (rec { } // lib.optionalAttrs useHadrian { buildPhase = '' ${hadrian}/bin/hadrian ${hadrianArgs} + '' + lib.optionalString installStage1 '' + ${hadrian}/bin/hadrian ${hadrianArgs} stage1:lib:libiserv '' + lib.optionalString targetPlatform.isMusl '' ${hadrian}/bin/hadrian ${hadrianArgs} stage1:lib:terminfo ''; diff --git a/flake.nix b/flake.nix index 5df540f03b..fa283a21b2 100644 --- a/flake.nix +++ b/flake.nix @@ -147,12 +147,15 @@ packages = ((self.internal.compat { inherit system; }).hix).apps; - ciJobs = + allJobs = let - inherit (legacyPackages) lib; inherit (import ./ci-lib.nix { pkgs = legacyPackagesUnstable; }) stripAttrsForHydra filterDerivations; ci = import ./ci.nix { inherit (self.internal) compat; inherit system; }; - allJobs = stripAttrsForHydra (filterDerivations ci); + in stripAttrsForHydra (filterDerivations ci); + + ciJobs = + let + inherit (legacyPackages) lib; names = x: lib.filter (n: n != "recurseForDerivations" && n != "meta") (builtins.attrNames x); requiredJobs = diff --git a/materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-9.4.3-x86_64-darwin/ghc-pkg/dump-global b/materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-9.4.3-x86_64-darwin/ghc-pkg/dump-global index eec93b76d5..51b5a6161c 100644 --- a/materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-9.4.3-x86_64-darwin/ghc-pkg/dump-global +++ b/materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-9.4.3-x86_64-darwin/ghc-pkg/dump-global @@ -1522,6 +1522,34 @@ haddock-interfaces: ${pkgroot}/../../doc/html/libraries/integer-gmp-1.1/integer-gmp.haddock haddock-html: ${pkgroot}/../../doc/html/libraries/integer-gmp-1.1 --- +name: libiserv +version: 9.4.3 +visibility: public +id: libiserv-9.4.3 +key: libiserv-9.4.3 +license: BSD-3-Clause +copyright: XXX +maintainer: XXX +author: XXX +synopsis: + Provides shared functionality between iserv and iserv-proxy. +description: + Provides shared functionality between iserv and iserv-proxy. +category: Development +exposed: True +exposed-modules: GHCi.Utils IServ +import-dirs: ${pkgroot}/../lib/x86_64-windows-ghc-9.4.3/libiserv-9.4.3 +library-dirs: ${pkgroot}/../lib/x86_64-windows-ghc-9.4.3/libiserv-9.4.3 +dynamic-library-dirs: ${pkgroot}/../lib/x86_64-windows-ghc-9.4.3 +data-dir: ${pkgroot}/../share/x86_64-windows-ghc-9.4.3/libiserv-9.4.3 +hs-libraries: HSlibiserv-9.4.3 +depends: + base-4.17.0.0 binary-0.8.9.1 bytestring-0.11.3.1 containers-0.6.6 + deepseq-1.4.8.0 ghci-9.4.3 +haddock-interfaces: + ${pkgroot}/../../doc/html/libraries/libiserv-9.4.3/libiserv.haddock +haddock-html: ${pkgroot}/../../doc/html/libraries/libiserv-9.4.3 +--- name: mtl version: 2.2.2 visibility: public diff --git a/overlays/armv6l-linux.nix b/overlays/armv6l-linux.nix index fa00db3753..0bddef4fea 100644 --- a/overlays/armv6l-linux.nix +++ b/overlays/armv6l-linux.nix @@ -16,10 +16,7 @@ final: prev: inherit (pkgs) gmp; # iserv-proxy needs to come from the buildPackages, as it needs to run on the # build host. - inherit (final.buildPackages.ghc-extra-packages."${config.compiler.nix-name}".iserv-proxy.components.exes) iserv-proxy; - # remote-iserv however needs to come from the regular packages as it has to - # run on the target host. - inherit (final.ghc-extra-packages."${config.compiler.nix-name}".remote-iserv.components.exes) remote-iserv; + inherit (final.haskell-nix.iserv-proxy-exes.${config.compiler.nix-name}) iserv-proxy iserv-proxy-interpreter; # we need to use openssl.bin here, because the .dll's are in the .bin expression. extra-test-libs = [ # pkgs.rocksdb diff --git a/overlays/haskell.nix b/overlays/haskell.nix index 5d36e4a860..138199c670 100644 --- a/overlays/haskell.nix +++ b/overlays/haskell.nix @@ -883,6 +883,42 @@ final: prev: { # testProjectPlan = withInputs project.plan-nix; withInputs = final.recurseIntoAttrs; + iserv-proxy-exes = __mapAttrs (compiler-nix-name: ghc: + if __compareVersions final.buildPackages.haskell-nix.compiler.${compiler-nix-name}.version "9.4" <0 + then { + inherit (final.buildPackages.ghc-extra-packages."${config.compiler.nix-name}".iserv-proxy.components.exes) iserv-proxy; + # remote-iserv however needs to come from the regular packages as it has to + # run on the target host. + iserv-proxy-interpreter = final.ghc-extra-packages."${config.compiler.nix-name}".remote-iserv.components.exes.remote-iserv; + } + else + let + exes = pkgs: (pkgs.haskell-nix.cabalProject { + name = "iserv-proxy"; + inherit compiler-nix-name; + src = final.buildPackages.haskell-nix.sources.iserv-proxy; + cabalProjectLocal = '' + allow-newer: *:libiserv, *:ghci + ''; + modules = [{ + config = { + reinstallableLibGhc = false; + # Prevent the iserve-proxy-interpreter from depending on itself + # by disabling the `--ghc-option` normally passed to `setupBuildFlags` + # when cross compiling. + setupBuildFlags = final.lib.mkForce []; + }; + options.nonReinstallablePkgs = pkgs.lib.mkOption { + apply = x: x ++ [ "ghci" "exceptions" "stm" "libiserv" ]; + }; + }]; + }).hsPkgs.iserv-proxy.components.exes; + in { + # We need the proxy for the build system and the interpreter for the target + inherit (exes final.buildPackages) iserv-proxy; + inherit (exes final) iserv-proxy-interpreter; + }) final.haskell-nix.compiler; + # Add this to your tests to make all the dependencies of haskell.nix # are tested and cached. Consider using `p.roots` where `p` is a # project as it will automatically match the `compiler-nix-name` @@ -922,14 +958,12 @@ final: prev: { internal-nix-tools = final.buildPackages.haskell-nix.internal-nix-tools; cabal-install = final.buildPackages.haskell-nix.cabal-install.${compiler-nix-name}; internal-cabal-install = final.buildPackages.haskell-nix.internal-cabal-install; - } // final.lib.optionalAttrs (ifdLevel > 1 && !final.stdenv.hostPlatform.isGhcjs) { + } // final.lib.optionalAttrs (ifdLevel > 1 + && final.haskell-nix.haskellLib.isCrossHost # GHCJS builds its own template haskell runner. # These seem to be the only things we use from `ghc-extra-packages` # in haskell.nix itself. - inherit (final.ghc-extra-packages."${compiler-nix-name}" - .iserv-proxy.components.exes) iserv-proxy; - inherit (final.ghc-extra-packages."${compiler-nix-name}" - .remote-iserv.components.exes) remote-iserv; - }); + && !final.stdenv.hostPlatform.isGhcjs) + final.haskell-nix.iserv-proxy-exes.${compiler-nix-name}); }; } diff --git a/overlays/linux-cross.nix b/overlays/linux-cross.nix index 3fbef4b4f8..78ef0a892c 100644 --- a/overlays/linux-cross.nix +++ b/overlays/linux-cross.nix @@ -17,7 +17,7 @@ in , qemu , qemuSuffix ? (qemuByHostPlatform hostPlatform) , iserv-proxy -, remote-iserv +, iserv-proxy-interpreter , gmp , extra-test-libs ? [] , buildPlatform @@ -34,12 +34,12 @@ let # Unset configure flags as configure should have run already unset configureFlags PORT=$((5000 + $RANDOM % 5000)) - (>&2 echo "---> Starting remote-iserv on port $PORT") - ${qemu}/bin/qemu-${qemuSuffix} ${remote-iserv.override (lib.optionalAttrs hostPlatform.isAndroid { setupBuildFlags = ["--ghc-option=-optl-static" ];})}/bin/remote-iserv tmp $PORT & - (>&2 echo "---| remote-iserv should have started on $PORT") + (>&2 echo "---> Starting ${iserv-proxy-interpreter.exeName} on port $PORT") + ${qemu}/bin/qemu-${qemuSuffix} ${iserv-proxy-interpreter.override (lib.optionalAttrs hostPlatform.isAndroid { setupBuildFlags = ["--ghc-option=-optl-static" ];})}/bin/${iserv-proxy-interpreter.exeName} tmp $PORT & + (>&2 echo "---| ${iserv-proxy-interpreter.exeName} should have started on $PORT") RISERV_PID="$!" ${iserv-proxy}/bin/iserv-proxy $@ 127.0.0.1 "$PORT" - (>&2 echo "---> killing remote-iserve...") + (>&2 echo "---> killing ${iserv-proxy-interpreter.exeName}...") kill $RISERV_PID ''; configureFlags = lib.optional hostPlatform.isAarch32 "--disable-split-sections"; diff --git a/overlays/mingw_w64.nix b/overlays/mingw_w64.nix index b8c4b75a71..66f8de1a40 100644 --- a/overlays/mingw_w64.nix +++ b/overlays/mingw_w64.nix @@ -34,7 +34,7 @@ let # due to a too large environment. unset configureFlags PORT=$((5000 + $RANDOM % 5000)) - (>&2 echo "---> Starting iserv-proxy-interpreter on port $PORT") + (>&2 echo "---> Starting ${interpreter.exeName} on port $PORT") REMOTE_ISERV=$(mktemp -d) ln -s ${interpreter}/bin/* $REMOTE_ISERV # See coment in comp-builder.nix for where this comes from and why it's here @@ -54,10 +54,10 @@ let # Not sure why this `unset` helps. It might avoids some kind of overflow issue. We see `wine` fail to start when building `cardano-wallet-cli` test `unit`. unset pkgsHostTargetAsString WINEDLLOVERRIDES="winemac.drv=d" WINEDEBUG=warn-all,fixme-all,-menubuilder,-mscoree,-ole,-secur32,-winediag WINEPREFIX=$TMP ${wine}/bin/wine64 $REMOTE_ISERV/${interpreter.exeName} tmp $PORT & - (>&2 echo "---| iserv-proxy-interpreter should have started on $PORT") + (>&2 echo "---| ${interpreter.exeName} should have started on $PORT") RISERV_PID="$!" ${iserv-proxy}/bin/iserv-proxy $@ 127.0.0.1 "$PORT" - (>&2 echo "---> killing iserv-proxy-interpreter...") + (>&2 echo "---> killing ${interpreter.exeName}...") kill $RISERV_PID ''; diff --git a/overlays/windows.nix b/overlays/windows.nix index e41f39305e..041aaa93c3 100644 --- a/overlays/windows.nix +++ b/overlays/windows.nix @@ -36,28 +36,6 @@ final: prev: defaultModules = prev.haskell-nix.defaultModules ++ [ ({ pkgs, buildModules, config, lib, ... }: let - iserv-proxy-exes = - if __elem config.compiler.nix-name ["ghc865" "ghc881" "ghc882" "ghc883" "ghc884" "ghc8101" "ghc8102" "ghc8103" "ghc8104" "ghc8105" "ghc8106" "ghc8107" "ghc901" "ghc902" "ghc921" "ghc922" "ghc923" "ghc924" "ghc925"] - then { - inherit (final.buildPackages.ghc-extra-packages."${config.compiler.nix-name}".iserv-proxy.components.exes) iserv-proxy; - # remote-iserv however needs to come from the regular packages as it has to - # run on the target host. - iserv-proxy-interpreter = final.ghc-extra-packages."${config.compiler.nix-name}".remote-iserv.components.exes.remote-iserv; - } - else (final.buildPackages.haskell-nix.cabalProject { - name = "iserv-proxy"; - compiler-nix-name = config.compiler.nix-name; - src = final.buildPackages.haskell-nix.sources.iserv-proxy; - cabalProjectLocal = '' - allow-newer: *:libiserv, *:ghci - ''; - modules = [{ - config.reinstallableLibGhc = false; - options.nonReinstallablePkgs = pkgs.lib.mkOption { - apply = x: x ++ [ "ghci" "exceptions" "stm" "libiserv" ]; - }; - }]; - }).hsPkgs.iserv-proxy.components.exes; withTH = import ./mingw_w64.nix { inherit (pkgs.stdenv) hostPlatform; inherit (pkgs) stdenv lib writeScriptBin; @@ -67,7 +45,7 @@ final: prev: inherit (pkgs.buildPackages) symlinkJoin; # iserv-proxy needs to come from the buildPackages, as it needs to run on the # build host. - inherit (iserv-proxy-exes) iserv-proxy iserv-proxy-interpreter; + inherit (final.haskell-nix.iserv-proxy-exes.${config.compiler.nix-name}) iserv-proxy iserv-proxy-interpreter; # we need to use openssl.bin here, because the .dll's are in the .bin expression. # extra-test-libs = [ pkgs.rocksdb pkgs.openssl.bin pkgs.libffi pkgs.gmp ]; } // { diff --git a/test/th-dlls/cabal.project b/test/th-dlls/cabal.project new file mode 100644 index 0000000000..cbd662bae1 --- /dev/null +++ b/test/th-dlls/cabal.project @@ -0,0 +1,9 @@ +packages: . + +-- Needed for ghc 9.4.3 until hackage is updated +source-repository-package + type: git + location: https://github.com/haskell/double-conversion.git + tag: 50623e40e23cb6da8bc673d58932a5e58bdebb01 + --sha256: sha256-9LctKu+GFgGYUf6VPgpSXn0lrCxJezU924BS9ZZrFvo= + From ef7dbb291853737bf69e408c097d33002e1ae41e Mon Sep 17 00:00:00 2001 From: Hamish Mackenzie Date: Mon, 12 Dec 2022 13:02:11 +1300 Subject: [PATCH 02/38] Update materialization --- .../ghc-pkg/dump-global | 28 +++++++++++++++++++ .../ghc-pkg/dump-global | 28 +++++++++++++++++++ .../ghc-pkg/dump-global | 28 +++++++++++++++++++ .../ghc-pkg/dump-global | 28 +++++++++++++++++++ .../ghc-pkg/dump-global | 28 +++++++++++++++++++ .../ghc-pkg/dump-global | 28 +++++++++++++++++++ 6 files changed, 168 insertions(+) diff --git a/materialized/dummy-ghc/x86_64-unknown-linux-musl-x86_64-unknown-linux-musl-ghc-9.4.1-x86_64-linux/ghc-pkg/dump-global b/materialized/dummy-ghc/x86_64-unknown-linux-musl-x86_64-unknown-linux-musl-ghc-9.4.1-x86_64-linux/ghc-pkg/dump-global index 476a24878b..76e3cf69d8 100644 --- a/materialized/dummy-ghc/x86_64-unknown-linux-musl-x86_64-unknown-linux-musl-ghc-9.4.1-x86_64-linux/ghc-pkg/dump-global +++ b/materialized/dummy-ghc/x86_64-unknown-linux-musl-x86_64-unknown-linux-musl-ghc-9.4.1-x86_64-linux/ghc-pkg/dump-global @@ -1439,6 +1439,34 @@ haddock-interfaces: ${pkgroot}/../../doc/html/libraries/integer-gmp-1.1/integer-gmp.haddock haddock-html: ${pkgroot}/../../doc/html/libraries/integer-gmp-1.1 --- +name: libiserv +version: 9.4.1 +visibility: public +id: libiserv-9.4.1 +key: libiserv-9.4.1 +license: BSD-3-Clause +copyright: XXX +maintainer: XXX +author: XXX +synopsis: + Provides shared functionality between iserv and iserv-proxy. +description: + Provides shared functionality between iserv and iserv-proxy. +category: Development +exposed: True +exposed-modules: GHCi.Utils IServ +import-dirs: ${pkgroot}/../lib/x86_64-linux-ghc-9.4.1/libiserv-9.4.1 +library-dirs: ${pkgroot}/../lib/x86_64-linux-ghc-9.4.1/libiserv-9.4.1 +dynamic-library-dirs: ${pkgroot}/../lib/x86_64-linux-ghc-9.4.1 +data-dir: ${pkgroot}/../share/x86_64-linux-ghc-9.4.1/libiserv-9.4.1 +hs-libraries: HSlibiserv-9.4.1 +depends: + base-4.17.0.0 binary-0.8.9.1 bytestring-0.11.3.1 containers-0.6.6 + deepseq-1.4.8.0 ghci-9.4.1 unix-2.7.3 +haddock-interfaces: + ${pkgroot}/../../doc/html/libraries/libiserv-9.4.1/libiserv.haddock +haddock-html: ${pkgroot}/../../doc/html/libraries/libiserv-9.4.1 +--- name: mtl version: 2.2.2 visibility: public diff --git a/materialized/dummy-ghc/x86_64-unknown-linux-musl-x86_64-unknown-linux-musl-ghc-9.4.2-x86_64-linux/ghc-pkg/dump-global b/materialized/dummy-ghc/x86_64-unknown-linux-musl-x86_64-unknown-linux-musl-ghc-9.4.2-x86_64-linux/ghc-pkg/dump-global index 57376c38b4..80eafa4abd 100644 --- a/materialized/dummy-ghc/x86_64-unknown-linux-musl-x86_64-unknown-linux-musl-ghc-9.4.2-x86_64-linux/ghc-pkg/dump-global +++ b/materialized/dummy-ghc/x86_64-unknown-linux-musl-x86_64-unknown-linux-musl-ghc-9.4.2-x86_64-linux/ghc-pkg/dump-global @@ -1439,6 +1439,34 @@ haddock-interfaces: ${pkgroot}/../../doc/html/libraries/integer-gmp-1.1/integer-gmp.haddock haddock-html: ${pkgroot}/../../doc/html/libraries/integer-gmp-1.1 --- +name: libiserv +version: 9.4.2 +visibility: public +id: libiserv-9.4.2 +key: libiserv-9.4.2 +license: BSD-3-Clause +copyright: XXX +maintainer: XXX +author: XXX +synopsis: + Provides shared functionality between iserv and iserv-proxy. +description: + Provides shared functionality between iserv and iserv-proxy. +category: Development +exposed: True +exposed-modules: GHCi.Utils IServ +import-dirs: ${pkgroot}/../lib/x86_64-linux-ghc-9.4.2/libiserv-9.4.2 +library-dirs: ${pkgroot}/../lib/x86_64-linux-ghc-9.4.2/libiserv-9.4.2 +dynamic-library-dirs: ${pkgroot}/../lib/x86_64-linux-ghc-9.4.2 +data-dir: ${pkgroot}/../share/x86_64-linux-ghc-9.4.2/libiserv-9.4.2 +hs-libraries: HSlibiserv-9.4.2 +depends: + base-4.17.0.0 binary-0.8.9.1 bytestring-0.11.3.1 containers-0.6.6 + deepseq-1.4.8.0 ghci-9.4.2 unix-2.7.3 +haddock-interfaces: + ${pkgroot}/../../doc/html/libraries/libiserv-9.4.2/libiserv.haddock +haddock-html: ${pkgroot}/../../doc/html/libraries/libiserv-9.4.2 +--- name: mtl version: 2.2.2 visibility: public diff --git a/materialized/dummy-ghc/x86_64-unknown-linux-musl-x86_64-unknown-linux-musl-ghc-9.4.3-x86_64-linux/ghc-pkg/dump-global b/materialized/dummy-ghc/x86_64-unknown-linux-musl-x86_64-unknown-linux-musl-ghc-9.4.3-x86_64-linux/ghc-pkg/dump-global index c3ee7ac93d..ab7422e46a 100644 --- a/materialized/dummy-ghc/x86_64-unknown-linux-musl-x86_64-unknown-linux-musl-ghc-9.4.3-x86_64-linux/ghc-pkg/dump-global +++ b/materialized/dummy-ghc/x86_64-unknown-linux-musl-x86_64-unknown-linux-musl-ghc-9.4.3-x86_64-linux/ghc-pkg/dump-global @@ -1440,6 +1440,34 @@ haddock-interfaces: ${pkgroot}/../../doc/html/libraries/integer-gmp-1.1/integer-gmp.haddock haddock-html: ${pkgroot}/../../doc/html/libraries/integer-gmp-1.1 --- +name: libiserv +version: 9.4.3 +visibility: public +id: libiserv-9.4.3 +key: libiserv-9.4.3 +license: BSD-3-Clause +copyright: XXX +maintainer: XXX +author: XXX +synopsis: + Provides shared functionality between iserv and iserv-proxy. +description: + Provides shared functionality between iserv and iserv-proxy. +category: Development +exposed: True +exposed-modules: GHCi.Utils IServ +import-dirs: ${pkgroot}/../lib/x86_64-linux-ghc-9.4.3/libiserv-9.4.3 +library-dirs: ${pkgroot}/../lib/x86_64-linux-ghc-9.4.3/libiserv-9.4.3 +dynamic-library-dirs: ${pkgroot}/../lib/x86_64-linux-ghc-9.4.3 +data-dir: ${pkgroot}/../share/x86_64-linux-ghc-9.4.3/libiserv-9.4.3 +hs-libraries: HSlibiserv-9.4.3 +depends: + base-4.17.0.0 binary-0.8.9.1 bytestring-0.11.3.1 containers-0.6.6 + deepseq-1.4.8.0 ghci-9.4.3 unix-2.7.3 +haddock-interfaces: + ${pkgroot}/../../doc/html/libraries/libiserv-9.4.3/libiserv.haddock +haddock-html: ${pkgroot}/../../doc/html/libraries/libiserv-9.4.3 +--- name: mtl version: 2.2.2 visibility: public diff --git a/materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-9.4.1-x86_64-linux/ghc-pkg/dump-global b/materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-9.4.1-x86_64-linux/ghc-pkg/dump-global index 4672c8b30d..c0026ed403 100644 --- a/materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-9.4.1-x86_64-linux/ghc-pkg/dump-global +++ b/materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-9.4.1-x86_64-linux/ghc-pkg/dump-global @@ -1521,6 +1521,34 @@ haddock-interfaces: ${pkgroot}/../../doc/html/libraries/integer-gmp-1.1/integer-gmp.haddock haddock-html: ${pkgroot}/../../doc/html/libraries/integer-gmp-1.1 --- +name: libiserv +version: 9.4.1 +visibility: public +id: libiserv-9.4.1 +key: libiserv-9.4.1 +license: BSD-3-Clause +copyright: XXX +maintainer: XXX +author: XXX +synopsis: + Provides shared functionality between iserv and iserv-proxy. +description: + Provides shared functionality between iserv and iserv-proxy. +category: Development +exposed: True +exposed-modules: GHCi.Utils IServ +import-dirs: ${pkgroot}/../lib/x86_64-windows-ghc-9.4.1/libiserv-9.4.1 +library-dirs: ${pkgroot}/../lib/x86_64-windows-ghc-9.4.1/libiserv-9.4.1 +dynamic-library-dirs: ${pkgroot}/../lib/x86_64-windows-ghc-9.4.1 +data-dir: ${pkgroot}/../share/x86_64-windows-ghc-9.4.1/libiserv-9.4.1 +hs-libraries: HSlibiserv-9.4.1 +depends: + base-4.17.0.0 binary-0.8.9.1 bytestring-0.11.3.1 containers-0.6.6 + deepseq-1.4.8.0 ghci-9.4.1 +haddock-interfaces: + ${pkgroot}/../../doc/html/libraries/libiserv-9.4.1/libiserv.haddock +haddock-html: ${pkgroot}/../../doc/html/libraries/libiserv-9.4.1 +--- name: mtl version: 2.2.2 visibility: public diff --git a/materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-9.4.2-x86_64-linux/ghc-pkg/dump-global b/materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-9.4.2-x86_64-linux/ghc-pkg/dump-global index 3398452a06..b596ae8953 100644 --- a/materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-9.4.2-x86_64-linux/ghc-pkg/dump-global +++ b/materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-9.4.2-x86_64-linux/ghc-pkg/dump-global @@ -1521,6 +1521,34 @@ haddock-interfaces: ${pkgroot}/../../doc/html/libraries/integer-gmp-1.1/integer-gmp.haddock haddock-html: ${pkgroot}/../../doc/html/libraries/integer-gmp-1.1 --- +name: libiserv +version: 9.4.2 +visibility: public +id: libiserv-9.4.2 +key: libiserv-9.4.2 +license: BSD-3-Clause +copyright: XXX +maintainer: XXX +author: XXX +synopsis: + Provides shared functionality between iserv and iserv-proxy. +description: + Provides shared functionality between iserv and iserv-proxy. +category: Development +exposed: True +exposed-modules: GHCi.Utils IServ +import-dirs: ${pkgroot}/../lib/x86_64-windows-ghc-9.4.2/libiserv-9.4.2 +library-dirs: ${pkgroot}/../lib/x86_64-windows-ghc-9.4.2/libiserv-9.4.2 +dynamic-library-dirs: ${pkgroot}/../lib/x86_64-windows-ghc-9.4.2 +data-dir: ${pkgroot}/../share/x86_64-windows-ghc-9.4.2/libiserv-9.4.2 +hs-libraries: HSlibiserv-9.4.2 +depends: + base-4.17.0.0 binary-0.8.9.1 bytestring-0.11.3.1 containers-0.6.6 + deepseq-1.4.8.0 ghci-9.4.2 +haddock-interfaces: + ${pkgroot}/../../doc/html/libraries/libiserv-9.4.2/libiserv.haddock +haddock-html: ${pkgroot}/../../doc/html/libraries/libiserv-9.4.2 +--- name: mtl version: 2.2.2 visibility: public diff --git a/materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-9.4.3-x86_64-linux/ghc-pkg/dump-global b/materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-9.4.3-x86_64-linux/ghc-pkg/dump-global index eec93b76d5..51b5a6161c 100644 --- a/materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-9.4.3-x86_64-linux/ghc-pkg/dump-global +++ b/materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-9.4.3-x86_64-linux/ghc-pkg/dump-global @@ -1522,6 +1522,34 @@ haddock-interfaces: ${pkgroot}/../../doc/html/libraries/integer-gmp-1.1/integer-gmp.haddock haddock-html: ${pkgroot}/../../doc/html/libraries/integer-gmp-1.1 --- +name: libiserv +version: 9.4.3 +visibility: public +id: libiserv-9.4.3 +key: libiserv-9.4.3 +license: BSD-3-Clause +copyright: XXX +maintainer: XXX +author: XXX +synopsis: + Provides shared functionality between iserv and iserv-proxy. +description: + Provides shared functionality between iserv and iserv-proxy. +category: Development +exposed: True +exposed-modules: GHCi.Utils IServ +import-dirs: ${pkgroot}/../lib/x86_64-windows-ghc-9.4.3/libiserv-9.4.3 +library-dirs: ${pkgroot}/../lib/x86_64-windows-ghc-9.4.3/libiserv-9.4.3 +dynamic-library-dirs: ${pkgroot}/../lib/x86_64-windows-ghc-9.4.3 +data-dir: ${pkgroot}/../share/x86_64-windows-ghc-9.4.3/libiserv-9.4.3 +hs-libraries: HSlibiserv-9.4.3 +depends: + base-4.17.0.0 binary-0.8.9.1 bytestring-0.11.3.1 containers-0.6.6 + deepseq-1.4.8.0 ghci-9.4.3 +haddock-interfaces: + ${pkgroot}/../../doc/html/libraries/libiserv-9.4.3/libiserv.haddock +haddock-html: ${pkgroot}/../../doc/html/libraries/libiserv-9.4.3 +--- name: mtl version: 2.2.2 visibility: public From 81f2d36e57c12e5405df2be3e354ebe98a093d74 Mon Sep 17 00:00:00 2001 From: Hamish Mackenzie Date: Wed, 14 Dec 2022 15:15:04 +1300 Subject: [PATCH 03/38] More TH fixes --- flake.lock | 15 ++++++++------- flake.nix | 4 ++-- overlays/haskell.nix | 5 +++-- 3 files changed, 13 insertions(+), 11 deletions(-) diff --git a/flake.lock b/flake.lock index 73c4cb9f81..73dd07d05f 100644 --- a/flake.lock +++ b/flake.lock @@ -337,17 +337,18 @@ "iserv-proxy": { "flake": false, "locked": { - "lastModified": 1639165170, - "narHash": "sha256-QsWL/sBDL5GM8IXd/dE/ORiL4RvteEN+aok23tXgAoc=", - "rev": "6e95df7be6dd29680f983db07a057fc2f34f81f6", - "revCount": 7, + "lastModified": 1670983692, + "narHash": "sha256-avLo34JnI9HNyOuauK5R69usJm+GfW3MlyGlYxZhTgY=", + "ref": "hkm/remote-iserv", + "rev": "50d0abb3317ac439a4e7495b185a64af9b7b9300", + "revCount": 10, "type": "git", - "url": "https://gitlab.haskell.org/ghc/iserv-proxy.git" + "url": "https://gitlab.haskell.org/hamishmack/iserv-proxy.git" }, "original": { - "rev": "6e95df7be6dd29680f983db07a057fc2f34f81f6", + "ref": "hkm/remote-iserv", "type": "git", - "url": "https://gitlab.haskell.org/ghc/iserv-proxy.git" + "url": "https://gitlab.haskell.org/hamishmack/iserv-proxy.git" } }, "lowdown-src": { diff --git a/flake.nix b/flake.nix index fa283a21b2..f0030818ce 100644 --- a/flake.nix +++ b/flake.nix @@ -61,8 +61,8 @@ }; iserv-proxy = { type = "git"; - url = "https://gitlab.haskell.org/ghc/iserv-proxy.git"; - rev = "6e95df7be6dd29680f983db07a057fc2f34f81f6"; + url = "https://gitlab.haskell.org/hamishmack/iserv-proxy.git"; + ref = "hkm/remote-iserv"; flake = false; }; }; diff --git a/overlays/haskell.nix b/overlays/haskell.nix index 138199c670..d831042688 100644 --- a/overlays/haskell.nix +++ b/overlays/haskell.nix @@ -886,10 +886,10 @@ final: prev: { iserv-proxy-exes = __mapAttrs (compiler-nix-name: ghc: if __compareVersions final.buildPackages.haskell-nix.compiler.${compiler-nix-name}.version "9.4" <0 then { - inherit (final.buildPackages.ghc-extra-packages."${config.compiler.nix-name}".iserv-proxy.components.exes) iserv-proxy; + inherit (final.buildPackages.ghc-extra-packages."${compiler-nix-name}".iserv-proxy.components.exes) iserv-proxy; # remote-iserv however needs to come from the regular packages as it has to # run on the target host. - iserv-proxy-interpreter = final.ghc-extra-packages."${config.compiler.nix-name}".remote-iserv.components.exes.remote-iserv; + iserv-proxy-interpreter = final.ghc-extra-packages."${compiler-nix-name}".remote-iserv.components.exes.remote-iserv; } else let @@ -899,6 +899,7 @@ final: prev: { src = final.buildPackages.haskell-nix.sources.iserv-proxy; cabalProjectLocal = '' allow-newer: *:libiserv, *:ghci + allow-older: *:libiserv, *:ghci ''; modules = [{ config = { From c4ca4f9c30bc06ceb7e46501eb42adeaddf1fd56 Mon Sep 17 00:00:00 2001 From: Hamish Mackenzie Date: Wed, 14 Dec 2022 15:27:04 +1300 Subject: [PATCH 04/38] Disable failing test --- test/th-dlls/default.nix | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/test/th-dlls/default.nix b/test/th-dlls/default.nix index 3faa121516..663a507d65 100644 --- a/test/th-dlls/default.nix +++ b/test/th-dlls/default.nix @@ -12,7 +12,10 @@ let packages = project.hsPkgs; in recurseIntoAttrs { - meta.disabled = stdenv.hostPlatform.isGhcjs; + meta.disabled = stdenv.hostPlatform.isGhcjs || + # TH breaks for ghc 9.4.3 cross compile for windows if the library even + # just depends on the `text` package (might be related to the C++ dependency). + (stdenv.hostPlatform.isWindows && __elem compiler-nix-name ["ghc941" "ghc942" "ghc943"]); ifdInputs = { inherit (project) plan-nix; From 8d3ef005621d0a63a34f4555d92af35bd866ce03 Mon Sep 17 00:00:00 2001 From: Hamish Mackenzie Date: Wed, 14 Dec 2022 15:33:44 +1300 Subject: [PATCH 05/38] Disable failing test --- test/th-dlls/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/th-dlls/default.nix b/test/th-dlls/default.nix index 663a507d65..5653652af0 100644 --- a/test/th-dlls/default.nix +++ b/test/th-dlls/default.nix @@ -14,7 +14,7 @@ let in recurseIntoAttrs { meta.disabled = stdenv.hostPlatform.isGhcjs || # TH breaks for ghc 9.4.3 cross compile for windows if the library even - # just depends on the `text` package (might be related to the C++ dependency). + # just depends on the `text` package (this might be related to the C++ dependency). (stdenv.hostPlatform.isWindows && __elem compiler-nix-name ["ghc941" "ghc942" "ghc943"]); ifdInputs = { From a2bc7211eb859da3917e5ea1d9e9321e5afeeeb3 Mon Sep 17 00:00:00 2001 From: Hamish Mackenzie Date: Wed, 14 Dec 2022 15:53:16 +1300 Subject: [PATCH 06/38] Disable failing test --- test/th-dlls/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/th-dlls/default.nix b/test/th-dlls/default.nix index 5653652af0..48f78ff192 100644 --- a/test/th-dlls/default.nix +++ b/test/th-dlls/default.nix @@ -14,7 +14,7 @@ let in recurseIntoAttrs { meta.disabled = stdenv.hostPlatform.isGhcjs || # TH breaks for ghc 9.4.3 cross compile for windows if the library even - # just depends on the `text` package (this might be related to the C++ dependency). + # just depends on the `text` package (this could be related to the C++ dependency). (stdenv.hostPlatform.isWindows && __elem compiler-nix-name ["ghc941" "ghc942" "ghc943"]); ifdInputs = { From 3e5987892ab7469ae3c4a9462cfb9e772ffffeb4 Mon Sep 17 00:00:00 2001 From: Hamish Mackenzie Date: Wed, 14 Dec 2022 16:20:45 +1300 Subject: [PATCH 07/38] Disable failing test --- test/th-dlls/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/th-dlls/default.nix b/test/th-dlls/default.nix index 48f78ff192..76ae5e94c0 100644 --- a/test/th-dlls/default.nix +++ b/test/th-dlls/default.nix @@ -14,7 +14,7 @@ let in recurseIntoAttrs { meta.disabled = stdenv.hostPlatform.isGhcjs || # TH breaks for ghc 9.4.3 cross compile for windows if the library even - # just depends on the `text` package (this could be related to the C++ dependency). + # just depends on the `text` package (this may be related to the C++ dependency). (stdenv.hostPlatform.isWindows && __elem compiler-nix-name ["ghc941" "ghc942" "ghc943"]); ifdInputs = { From c01e28ebc532a57af1f299d3a77c6ce0f1f49c15 Mon Sep 17 00:00:00 2001 From: Hamish Mackenzie Date: Wed, 14 Dec 2022 16:52:59 +1300 Subject: [PATCH 08/38] ifdLevel 0 --- ci.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ci.nix b/ci.nix index 2d91b13bad..ac97fd7989 100644 --- a/ci.nix +++ b/ci.nix @@ -1,6 +1,6 @@ # 'supportedSystems' restricts the set of systems that we will evaluate for. Useful when you're evaluating # on a machine with e.g. no way to build the Darwin IFDs you need! -{ ifdLevel ? 3 +{ ifdLevel ? 0 # Whether or not we are evaluating in restricted mode. This is true in Hydra, but not in Hercules. , restrictEval ? false , checkMaterialization ? false From 725c8889dc21e1d0dddcb68d613c7692a3cb8b32 Mon Sep 17 00:00:00 2001 From: Hamish Mackenzie Date: Wed, 14 Dec 2022 17:38:20 +1300 Subject: [PATCH 09/38] ifdLevel 3 --- ci.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ci.nix b/ci.nix index ac97fd7989..2d91b13bad 100644 --- a/ci.nix +++ b/ci.nix @@ -1,6 +1,6 @@ # 'supportedSystems' restricts the set of systems that we will evaluate for. Useful when you're evaluating # on a machine with e.g. no way to build the Darwin IFDs you need! -{ ifdLevel ? 0 +{ ifdLevel ? 3 # Whether or not we are evaluating in restricted mode. This is true in Hydra, but not in Hercules. , restrictEval ? false , checkMaterialization ? false From 4b2e5a80e7415f60b047d67eb68fa656779456ae Mon Sep 17 00:00:00 2001 From: Hamish Mackenzie Date: Wed, 14 Dec 2022 18:30:45 +1300 Subject: [PATCH 10/38] Fix ci --- ci.nix | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/ci.nix b/ci.nix index 2d91b13bad..ef8ffd2eb1 100644 --- a/ci.nix +++ b/ci.nix @@ -113,11 +113,11 @@ dimension "Nixpkgs version" nixpkgsVersions (nixpkgsName: nixpkgs-pin: } // pkgs.lib.optionalAttrs (runTests && crossSystemName != "aarch64-multiplatform") { # Tests are broken on aarch64 cross https://github.com/input-output-hk/haskell.nix/issues/513 inherit (build) tests; - }) // pkgs.lib.optionalAttrs (ifdLevel >= 2 && crossSystemName != "ghcjs") { - # GHCJS builds its own template haskell runner. - remote-iserv = pkgs.ghc-extra-projects."${compiler-nix-name}".getComponent "remote-iserv:exe:remote-iserv"; - iserv-proxy = pkgs.ghc-extra-projects."${compiler-nix-name}".getComponent "iserv-proxy:exe:iserv-proxy"; - } // pkgs.lib.optionalAttrs (ifdLevel >= 3) { + }) + # GHCJS builds its own template haskell runner. + // pkgs.lib.optionalAttrs (ifdLevel >= 2 && crossSystemName != "ghcjs") + pkgs.haskell-nix.iserv-proxy-exes + // pkgs.lib.optionalAttrs (ifdLevel >= 3) { hello = (pkgs.haskell-nix.hackage-package { name = "hello"; version = "1.0.0.2"; inherit compiler-nix-name; }).getComponent "exe:hello"; }) )) From 338bd570f5c2d18b70b3babd1e1d09ac4220e007 Mon Sep 17 00:00:00 2001 From: Hamish Mackenzie Date: Wed, 4 Jan 2023 14:20:40 +1300 Subject: [PATCH 11/38] Bump stack version --- build.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.nix b/build.nix index d959c769f9..52ffc87e9f 100644 --- a/build.nix +++ b/build.nix @@ -23,7 +23,7 @@ in rec { tools = pkgs.lib.optionalAttrs (ifdLevel >= 3) ( pkgs.recurseIntoAttrs ({ cabal-latest = tool compiler-nix-name "cabal" { inherit evalPackages; }; - stack = tool compiler-nix-name "stack" { version = "2.9.1"; inherit evalPackages; }; + stack = tool compiler-nix-name "stack" { version = "2.9.3"; inherit evalPackages; }; hlint-latest = tool compiler-nix-name "hlint" { inherit evalPackages; version = { From cb0176a58ff8e29fe566e52b3ee5ea51045d426e Mon Sep 17 00:00:00 2001 From: Hamish Mackenzie Date: Wed, 4 Jan 2023 14:32:24 +1300 Subject: [PATCH 12/38] Skip hls for ghc 9.4 for now --- test/haskell-language-server/cabal.nix | 2 +- test/haskell-language-server/stack.nix | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/test/haskell-language-server/cabal.nix b/test/haskell-language-server/cabal.nix index 0df9fec96a..23b43fdf4e 100644 --- a/test/haskell-language-server/cabal.nix +++ b/test/haskell-language-server/cabal.nix @@ -8,5 +8,5 @@ in recurseIntoAttrs { build = project.getComponent "haskell-language-server:exe:haskell-language-server"; # hls does not need to be cross compiled. - meta.disabled = stdenv.hostPlatform != stdenv.buildPlatform; + meta.disabled = stdenv.hostPlatform != stdenv.buildPlatform || __elem compiler-nix-name ["ghc941" "ghc942" "ghc943"]; } diff --git a/test/haskell-language-server/stack.nix b/test/haskell-language-server/stack.nix index 757f712125..3120185298 100644 --- a/test/haskell-language-server/stack.nix +++ b/test/haskell-language-server/stack.nix @@ -22,5 +22,5 @@ in recurseIntoAttrs { build = project.hsPkgs.haskell-language-server.components.exes.haskell-language-server; # Haskell Language Server does not build for GHC 9 or 8.10.7 yet - meta.disabled = __elem compiler-nix-name ["ghc925" "ghc924" "ghc923" "ghc922" "ghc921" "ghc901" "ghc902" "ghc8107" "ghc810420210212" ]; + meta.disabled = __elem compiler-nix-name ["ghc943" "ghc942" "ghc941" "ghc925" "ghc924" "ghc923" "ghc922" "ghc921" "ghc901" "ghc902" "ghc8107" "ghc810420210212" ]; } From 9b2a07691099f8a09b0c1ed8177852fea2af8bec Mon Sep 17 00:00:00 2001 From: Hamish Mackenzie Date: Wed, 4 Jan 2023 14:49:54 +1300 Subject: [PATCH 13/38] Remove redundant quotes --- overlays/haskell.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/overlays/haskell.nix b/overlays/haskell.nix index d831042688..615fac76c4 100644 --- a/overlays/haskell.nix +++ b/overlays/haskell.nix @@ -886,10 +886,10 @@ final: prev: { iserv-proxy-exes = __mapAttrs (compiler-nix-name: ghc: if __compareVersions final.buildPackages.haskell-nix.compiler.${compiler-nix-name}.version "9.4" <0 then { - inherit (final.buildPackages.ghc-extra-packages."${compiler-nix-name}".iserv-proxy.components.exes) iserv-proxy; + inherit (final.buildPackages.ghc-extra-packages.${compiler-nix-name}.iserv-proxy.components.exes) iserv-proxy; # remote-iserv however needs to come from the regular packages as it has to # run on the target host. - iserv-proxy-interpreter = final.ghc-extra-packages."${compiler-nix-name}".remote-iserv.components.exes.remote-iserv; + iserv-proxy-interpreter = final.ghc-extra-packages.${compiler-nix-name}.remote-iserv.components.exes.remote-iserv; } else let From f6acc5909f36b0c3148889153f178506e40471f6 Mon Sep 17 00:00:00 2001 From: Hamish Mackenzie Date: Wed, 4 Jan 2023 14:57:02 +1300 Subject: [PATCH 14/38] Disable ghcjs-overlay test for ghc 9.4 --- test/ghcjs-overlay/default.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/test/ghcjs-overlay/default.nix b/test/ghcjs-overlay/default.nix index f8dc64ce8f..91496863cb 100644 --- a/test/ghcjs-overlay/default.nix +++ b/test/ghcjs-overlay/default.nix @@ -56,6 +56,7 @@ in recurseIntoAttrs { touch $out ''; meta.platforms = platforms.all; + meta.disabled = __elem compiler-nix-name ["ghc941" "ghc942" "ghc943"]; passthru = { inherit project; }; From 266408e2cff674e10fc44104b5af6e5758c27e80 Mon Sep 17 00:00:00 2001 From: Hamish Mackenzie Date: Wed, 4 Jan 2023 14:58:18 +1300 Subject: [PATCH 15/38] Fix for TH on ghc 9.4 --- ci.nix | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/ci.nix b/ci.nix index ef8ffd2eb1..c6a51cd9d6 100644 --- a/ci.nix +++ b/ci.nix @@ -89,11 +89,11 @@ dimension "Nixpkgs version" nixpkgsVersions (nixpkgsName: nixpkgs-pin: # TODO: can we merge this into the general case by picking an appropriate "cross system" to mean native? native = pkgs.recurseIntoAttrs ({ roots = pkgs.haskell-nix.roots' compiler-nix-name ifdLevel; - ghc = pkgs.buildPackages.haskell-nix.compiler."${compiler-nix-name}"; + ghc = pkgs.buildPackages.haskell-nix.compiler.${compiler-nix-name}; } // pkgs.lib.optionalAttrs runTests { inherit (build) tests tools maintainer-scripts maintainer-script-cache; } // pkgs.lib.optionalAttrs (ifdLevel >= 1) { - iserv-proxy = pkgs.ghc-extra-projects."${compiler-nix-name}".getComponent "iserv-proxy:exe:iserv-proxy"; + inherit (pkgs.haskell-nix.iserv-proxy-exes.${compiler-nix-name}) iserv-proxy; } // pkgs.lib.optionalAttrs (ifdLevel >= 3) { hello = (pkgs.haskell-nix.hackage-package { name = "hello"; version = "1.0.0.2"; inherit evalPackages compiler-nix-name; }).getComponent "exe:hello"; }); @@ -105,9 +105,9 @@ dimension "Nixpkgs version" nixpkgsVersions (nixpkgsName: nixpkgs-pin: build = import ./build.nix { inherit pkgs evalPackages ifdLevel compiler-nix-name haskellNix; }; in pkgs.recurseIntoAttrs (pkgs.lib.optionalAttrs (ifdLevel >= 1) ({ roots = pkgs.haskell-nix.roots' compiler-nix-name ifdLevel; - ghc = pkgs.buildPackages.haskell-nix.compiler."${compiler-nix-name}"; + ghc = pkgs.buildPackages.haskell-nix.compiler.${compiler-nix-name}; # TODO: look into cross compiling ghc itself - # ghc = pkgs.haskell-nix.compiler."${compiler-nix-name}"; + # ghc = pkgs.haskell-nix.compiler.${compiler-nix-name}; # TODO: look into making tools work when cross compiling # inherit (build) tools; } // pkgs.lib.optionalAttrs (runTests && crossSystemName != "aarch64-multiplatform") { @@ -116,7 +116,7 @@ dimension "Nixpkgs version" nixpkgsVersions (nixpkgsName: nixpkgs-pin: }) # GHCJS builds its own template haskell runner. // pkgs.lib.optionalAttrs (ifdLevel >= 2 && crossSystemName != "ghcjs") - pkgs.haskell-nix.iserv-proxy-exes + pkgs.haskell-nix.iserv-proxy-exes.${compiler-nix-name} // pkgs.lib.optionalAttrs (ifdLevel >= 3) { hello = (pkgs.haskell-nix.hackage-package { name = "hello"; version = "1.0.0.2"; inherit compiler-nix-name; }).getComponent "exe:hello"; }) From cb0ca4cbc5460dac17c88410b5ff220b14623b22 Mon Sep 17 00:00:00 2001 From: Hamish Mackenzie Date: Wed, 4 Jan 2023 14:58:48 +1300 Subject: [PATCH 16/38] genprimopcode and deriveConstants --- .../ghc943/deriveConstants.nix | 39 ++++++++++++++ .../ghc943/genprimopcode.nix | 40 ++++++++++++++ .../ghc941/.plan.nix/deriveConstants.nix | 48 +++++++++++++++++ .../ghc941/.plan.nix/genprimopcode.nix | 52 +++++++++++++++++++ .../default/ghc941/default.nix | 14 ++++- .../ghc943/.plan.nix/deriveConstants.nix | 48 +++++++++++++++++ .../ghc943/.plan.nix/genprimopcode.nix | 52 +++++++++++++++++++ .../default/ghc943/default.nix | 14 ++++- modules/configuration-nix.nix | 11 ++++ overlays/ghc-packages.nix | 23 +++++--- 10 files changed, 331 insertions(+), 10 deletions(-) create mode 100644 materialized/ghc-boot-packages-nix/ghc943/deriveConstants.nix create mode 100644 materialized/ghc-boot-packages-nix/ghc943/genprimopcode.nix create mode 100644 materialized/ghc-extra-projects/default/ghc941/.plan.nix/deriveConstants.nix create mode 100644 materialized/ghc-extra-projects/default/ghc941/.plan.nix/genprimopcode.nix create mode 100644 materialized/ghc-extra-projects/default/ghc943/.plan.nix/deriveConstants.nix create mode 100644 materialized/ghc-extra-projects/default/ghc943/.plan.nix/genprimopcode.nix diff --git a/materialized/ghc-boot-packages-nix/ghc943/deriveConstants.nix b/materialized/ghc-boot-packages-nix/ghc943/deriveConstants.nix new file mode 100644 index 0000000000..a981b275ae --- /dev/null +++ b/materialized/ghc-boot-packages-nix/ghc943/deriveConstants.nix @@ -0,0 +1,39 @@ +{ system + , compiler + , flags + , pkgs + , hsPkgs + , pkgconfPkgs + , errorHandler + , config + , ... }: + { + flags = {}; + package = { + specVersion = "1.10"; + identifier = { name = "deriveConstants"; version = "0.1"; }; + license = "BSD-3-Clause"; + copyright = "XXX"; + maintainer = "XXX"; + author = "XXX"; + homepage = ""; + url = ""; + synopsis = "Derive header files containing various constants for the GHC build process"; + description = "This utility is responsible for generating a number of C header files\nneeded during the GHC build process. See @rts/include/ghc.mk@ in the GHC\nbuild system for details."; + buildType = "Simple"; + }; + components = { + exes = { + "deriveConstants" = { + depends = [ + (hsPkgs."base" or (errorHandler.buildDepError "base")) + (hsPkgs."containers" or (errorHandler.buildDepError "containers")) + (hsPkgs."process" or (errorHandler.buildDepError "process")) + (hsPkgs."filepath" or (errorHandler.buildDepError "filepath")) + (hsPkgs."directory" or (errorHandler.buildDepError "directory")) + ]; + buildable = true; + }; + }; + }; + } // rec { src = (pkgs.lib).mkDefault ./.; } diff --git a/materialized/ghc-boot-packages-nix/ghc943/genprimopcode.nix b/materialized/ghc-boot-packages-nix/ghc943/genprimopcode.nix new file mode 100644 index 0000000000..a2bc7e09d1 --- /dev/null +++ b/materialized/ghc-boot-packages-nix/ghc943/genprimopcode.nix @@ -0,0 +1,40 @@ +{ system + , compiler + , flags + , pkgs + , hsPkgs + , pkgconfPkgs + , errorHandler + , config + , ... }: + { + flags = { build-tool-depends = true; }; + package = { + specVersion = "2.0"; + identifier = { name = "genprimopcode"; version = "0.1"; }; + license = "BSD-3-Clause"; + copyright = "XXX"; + maintainer = "XXX"; + author = "XXX"; + homepage = ""; + url = ""; + synopsis = "Generates various files implementing GHC's primitive operations."; + description = "This utility reads a textual description of GHC's primitive operations\n(@primops.txt.pp@) and produces a number of outputs. These include,\n\n* the @GHC.Prim@ module included in the @ghc-prim@ package.\n* the @GHC.PrimopWrappers@ module included in the @ghc-prim@ package.\n* an LaTeX document describing the primitive operations."; + buildType = "Simple"; + }; + components = { + exes = { + "genprimopcode" = { + depends = [ + (hsPkgs."base" or (errorHandler.buildDepError "base")) + (hsPkgs."array" or (errorHandler.buildDepError "array")) + ]; + build-tools = (pkgs.lib).optionals (flags.build-tool-depends) [ + (hsPkgs.buildPackages.alex.components.exes.alex or (pkgs.buildPackages.alex or (errorHandler.buildToolDepError "alex:alex"))) + (hsPkgs.buildPackages.happy.components.exes.happy or (pkgs.buildPackages.happy or (errorHandler.buildToolDepError "happy:happy"))) + ]; + buildable = true; + }; + }; + }; + } // rec { src = (pkgs.lib).mkDefault ./.; } diff --git a/materialized/ghc-extra-projects/default/ghc941/.plan.nix/deriveConstants.nix b/materialized/ghc-extra-projects/default/ghc941/.plan.nix/deriveConstants.nix new file mode 100644 index 0000000000..0b0d43f547 --- /dev/null +++ b/materialized/ghc-extra-projects/default/ghc941/.plan.nix/deriveConstants.nix @@ -0,0 +1,48 @@ +{ system + , compiler + , flags + , pkgs + , hsPkgs + , pkgconfPkgs + , errorHandler + , config + , ... }: + { + flags = {}; + package = { + specVersion = "1.10"; + identifier = { name = "deriveConstants"; version = "0.1"; }; + license = "BSD-3-Clause"; + copyright = "XXX"; + maintainer = "XXX"; + author = "XXX"; + homepage = ""; + url = ""; + synopsis = "Derive header files containing various constants for the GHC build process"; + description = "This utility is responsible for generating a number of C header files\nneeded during the GHC build process. See @rts/include/ghc.mk@ in the GHC\nbuild system for details."; + buildType = "Simple"; + isLocal = true; + detailLevel = "FullDetails"; + licenseFiles = []; + dataDir = "."; + dataFiles = []; + extraSrcFiles = []; + extraTmpFiles = []; + extraDocFiles = []; + }; + components = { + exes = { + "deriveConstants" = { + depends = [ + (hsPkgs."base" or (errorHandler.buildDepError "base")) + (hsPkgs."containers" or (errorHandler.buildDepError "containers")) + (hsPkgs."process" or (errorHandler.buildDepError "process")) + (hsPkgs."filepath" or (errorHandler.buildDepError "filepath")) + (hsPkgs."directory" or (errorHandler.buildDepError "directory")) + ]; + buildable = true; + mainPath = [ "Main.hs" ]; + }; + }; + }; + } // rec { src = (pkgs.lib).mkDefault ../utils/deriveConstants; } \ No newline at end of file diff --git a/materialized/ghc-extra-projects/default/ghc941/.plan.nix/genprimopcode.nix b/materialized/ghc-extra-projects/default/ghc941/.plan.nix/genprimopcode.nix new file mode 100644 index 0000000000..b7476019e1 --- /dev/null +++ b/materialized/ghc-extra-projects/default/ghc941/.plan.nix/genprimopcode.nix @@ -0,0 +1,52 @@ +{ system + , compiler + , flags + , pkgs + , hsPkgs + , pkgconfPkgs + , errorHandler + , config + , ... }: + { + flags = { build-tool-depends = true; }; + package = { + specVersion = "2.0"; + identifier = { name = "genprimopcode"; version = "0.1"; }; + license = "BSD-3-Clause"; + copyright = "XXX"; + maintainer = "XXX"; + author = "XXX"; + homepage = ""; + url = ""; + synopsis = "Generates various files implementing GHC's primitive operations."; + description = "This utility reads a textual description of GHC's primitive operations\n(@primops.txt.pp@) and produces a number of outputs. These include,\n\n* the @GHC.Prim@ module included in the @ghc-prim@ package.\n* the @GHC.PrimopWrappers@ module included in the @ghc-prim@ package.\n* an LaTeX document describing the primitive operations."; + buildType = "Simple"; + isLocal = true; + detailLevel = "FullDetails"; + licenseFiles = []; + dataDir = "."; + dataFiles = []; + extraSrcFiles = []; + extraTmpFiles = []; + extraDocFiles = []; + }; + components = { + exes = { + "genprimopcode" = { + depends = [ + (hsPkgs."base" or (errorHandler.buildDepError "base")) + (hsPkgs."array" or (errorHandler.buildDepError "array")) + ]; + build-tools = (pkgs.lib).optionals (flags.build-tool-depends) [ + (hsPkgs.buildPackages.alex.components.exes.alex or (pkgs.buildPackages.alex or (errorHandler.buildToolDepError "alex:alex"))) + (hsPkgs.buildPackages.happy.components.exes.happy or (pkgs.buildPackages.happy or (errorHandler.buildToolDepError "happy:happy"))) + ]; + buildable = true; + modules = [ "Lexer" "Parser" "ParserM" "Syntax" ]; + mainPath = [ + "Main.hs" + ] ++ (pkgs.lib).optional (flags.build-tool-depends) ""; + }; + }; + }; + } // rec { src = (pkgs.lib).mkDefault ../utils/genprimopcode; } \ No newline at end of file diff --git a/materialized/ghc-extra-projects/default/ghc941/default.nix b/materialized/ghc-extra-projects/default/ghc941/default.nix index eb90606e45..1a80dcd1a2 100644 --- a/materialized/ghc-extra-projects/default/ghc941/default.nix +++ b/materialized/ghc-extra-projects/default/ghc941/default.nix @@ -2,11 +2,13 @@ pkgs = hackage: { packages = { + "happy".revision = (((hackage."happy")."1.20.0").revisions).default; "pretty".revision = (((hackage."pretty")."1.1.3.6").revisions).default; "text".revision = (((hackage."text")."2.0.1").revisions).default; "array".revision = (((hackage."array")."0.5.4.0").revisions).default; "Cabal-syntax".revision = (((hackage."Cabal-syntax")."3.8.1.0").revisions).default; "Cabal".revision = (((hackage."Cabal")."3.8.1.0").revisions).default; + "alex".revision = (((hackage."alex")."3.2.7.1").revisions).default; "mtl".revision = (((hackage."mtl")."2.2.2").revisions).default; "parsec".revision = (((hackage."parsec")."3.1.15.0").revisions).default; "bytestring".revision = (((hackage."bytestring")."0.11.3.1").revisions).default; @@ -68,10 +70,12 @@ { packages = { ghc = ./.plan.nix/ghc.nix; + deriveConstants = ./.plan.nix/deriveConstants.nix; remote-iserv = ./.plan.nix/remote-iserv.nix; ghci = ./.plan.nix/ghci.nix; ghc-boot = ./.plan.nix/ghc-boot.nix; iserv = ./.plan.nix/iserv.nix; + genprimopcode = ./.plan.nix/genprimopcode.nix; libiserv = ./.plan.nix/libiserv.nix; hpc = ./.plan.nix/hpc.nix; }; @@ -85,15 +89,19 @@ "dynamic-system-linker" = lib.mkOverride 900 true; "terminfo" = lib.mkOverride 900 true; "internal-interpreter" = lib.mkOverride 900 false; - "build-tool-depends" = lib.mkOverride 900 false; + "build-tool-depends" = lib.mkOverride 900 true; }; }; + "deriveConstants" = { flags = {}; }; "remote-iserv" = { flags = {}; }; "ghci" = { flags = { "internal-interpreter" = lib.mkOverride 900 true; }; }; "ghc-boot" = { flags = {}; }; "iserv" = { flags = {}; }; + "genprimopcode" = { + flags = { "build-tool-depends" = lib.mkOverride 900 true; }; + }; "libiserv" = { flags = { "network" = lib.mkOverride 900 true; }; }; "hpc" = { flags = {}; }; }; @@ -115,6 +123,7 @@ "rts".components.library.planned = lib.mkOverride 900 true; "unix".components.library.planned = lib.mkOverride 900 true; "directory".components.library.planned = lib.mkOverride 900 true; + "happy".components.exes."happy".planned = lib.mkOverride 900 true; "iserv".components.exes."iserv".planned = lib.mkOverride 900 true; "ghc".components.setup.planned = lib.mkOverride 900 true; "time".components.library.planned = lib.mkOverride 900 true; @@ -124,7 +133,9 @@ "template-haskell".components.library.planned = lib.mkOverride 900 true; "stm".components.library.planned = lib.mkOverride 900 true; "ghci".components.library.planned = lib.mkOverride 900 true; + "alex".components.exes."alex".planned = lib.mkOverride 900 true; "ghc-boot".components.library.planned = lib.mkOverride 900 true; + "deriveConstants".components.exes."deriveConstants".planned = lib.mkOverride 900 true; "hpc".components.library.planned = lib.mkOverride 900 true; "ghc-boot".components.setup.planned = lib.mkOverride 900 true; "ghc-heap".components.library.planned = lib.mkOverride 900 true; @@ -133,6 +144,7 @@ "libiserv".components.library.planned = lib.mkOverride 900 true; "parsec".components.library.planned = lib.mkOverride 900 true; "deepseq".components.library.planned = lib.mkOverride 900 true; + "genprimopcode".components.exes."genprimopcode".planned = lib.mkOverride 900 true; "text".components.library.planned = lib.mkOverride 900 true; "base".components.library.planned = lib.mkOverride 900 true; "containers".components.library.planned = lib.mkOverride 900 true; diff --git a/materialized/ghc-extra-projects/default/ghc943/.plan.nix/deriveConstants.nix b/materialized/ghc-extra-projects/default/ghc943/.plan.nix/deriveConstants.nix new file mode 100644 index 0000000000..0b0d43f547 --- /dev/null +++ b/materialized/ghc-extra-projects/default/ghc943/.plan.nix/deriveConstants.nix @@ -0,0 +1,48 @@ +{ system + , compiler + , flags + , pkgs + , hsPkgs + , pkgconfPkgs + , errorHandler + , config + , ... }: + { + flags = {}; + package = { + specVersion = "1.10"; + identifier = { name = "deriveConstants"; version = "0.1"; }; + license = "BSD-3-Clause"; + copyright = "XXX"; + maintainer = "XXX"; + author = "XXX"; + homepage = ""; + url = ""; + synopsis = "Derive header files containing various constants for the GHC build process"; + description = "This utility is responsible for generating a number of C header files\nneeded during the GHC build process. See @rts/include/ghc.mk@ in the GHC\nbuild system for details."; + buildType = "Simple"; + isLocal = true; + detailLevel = "FullDetails"; + licenseFiles = []; + dataDir = "."; + dataFiles = []; + extraSrcFiles = []; + extraTmpFiles = []; + extraDocFiles = []; + }; + components = { + exes = { + "deriveConstants" = { + depends = [ + (hsPkgs."base" or (errorHandler.buildDepError "base")) + (hsPkgs."containers" or (errorHandler.buildDepError "containers")) + (hsPkgs."process" or (errorHandler.buildDepError "process")) + (hsPkgs."filepath" or (errorHandler.buildDepError "filepath")) + (hsPkgs."directory" or (errorHandler.buildDepError "directory")) + ]; + buildable = true; + mainPath = [ "Main.hs" ]; + }; + }; + }; + } // rec { src = (pkgs.lib).mkDefault ../utils/deriveConstants; } \ No newline at end of file diff --git a/materialized/ghc-extra-projects/default/ghc943/.plan.nix/genprimopcode.nix b/materialized/ghc-extra-projects/default/ghc943/.plan.nix/genprimopcode.nix new file mode 100644 index 0000000000..b7476019e1 --- /dev/null +++ b/materialized/ghc-extra-projects/default/ghc943/.plan.nix/genprimopcode.nix @@ -0,0 +1,52 @@ +{ system + , compiler + , flags + , pkgs + , hsPkgs + , pkgconfPkgs + , errorHandler + , config + , ... }: + { + flags = { build-tool-depends = true; }; + package = { + specVersion = "2.0"; + identifier = { name = "genprimopcode"; version = "0.1"; }; + license = "BSD-3-Clause"; + copyright = "XXX"; + maintainer = "XXX"; + author = "XXX"; + homepage = ""; + url = ""; + synopsis = "Generates various files implementing GHC's primitive operations."; + description = "This utility reads a textual description of GHC's primitive operations\n(@primops.txt.pp@) and produces a number of outputs. These include,\n\n* the @GHC.Prim@ module included in the @ghc-prim@ package.\n* the @GHC.PrimopWrappers@ module included in the @ghc-prim@ package.\n* an LaTeX document describing the primitive operations."; + buildType = "Simple"; + isLocal = true; + detailLevel = "FullDetails"; + licenseFiles = []; + dataDir = "."; + dataFiles = []; + extraSrcFiles = []; + extraTmpFiles = []; + extraDocFiles = []; + }; + components = { + exes = { + "genprimopcode" = { + depends = [ + (hsPkgs."base" or (errorHandler.buildDepError "base")) + (hsPkgs."array" or (errorHandler.buildDepError "array")) + ]; + build-tools = (pkgs.lib).optionals (flags.build-tool-depends) [ + (hsPkgs.buildPackages.alex.components.exes.alex or (pkgs.buildPackages.alex or (errorHandler.buildToolDepError "alex:alex"))) + (hsPkgs.buildPackages.happy.components.exes.happy or (pkgs.buildPackages.happy or (errorHandler.buildToolDepError "happy:happy"))) + ]; + buildable = true; + modules = [ "Lexer" "Parser" "ParserM" "Syntax" ]; + mainPath = [ + "Main.hs" + ] ++ (pkgs.lib).optional (flags.build-tool-depends) ""; + }; + }; + }; + } // rec { src = (pkgs.lib).mkDefault ../utils/genprimopcode; } \ No newline at end of file diff --git a/materialized/ghc-extra-projects/default/ghc943/default.nix b/materialized/ghc-extra-projects/default/ghc943/default.nix index 1206ad96de..d718ce5f9b 100644 --- a/materialized/ghc-extra-projects/default/ghc943/default.nix +++ b/materialized/ghc-extra-projects/default/ghc943/default.nix @@ -2,11 +2,13 @@ pkgs = hackage: { packages = { + "happy".revision = (((hackage."happy")."1.20.0").revisions).default; "pretty".revision = (((hackage."pretty")."1.1.3.6").revisions).default; "text".revision = (((hackage."text")."2.0.1").revisions).default; "array".revision = (((hackage."array")."0.5.4.0").revisions).default; "Cabal-syntax".revision = (((hackage."Cabal-syntax")."3.8.1.0").revisions).default; "Cabal".revision = (((hackage."Cabal")."3.8.1.0").revisions).default; + "alex".revision = (((hackage."alex")."3.2.7.1").revisions).default; "mtl".revision = (((hackage."mtl")."2.2.2").revisions).default; "parsec".revision = (((hackage."parsec")."3.1.15.0").revisions).default; "bytestring".revision = (((hackage."bytestring")."0.11.3.1").revisions).default; @@ -68,10 +70,12 @@ { packages = { ghc = ./.plan.nix/ghc.nix; + deriveConstants = ./.plan.nix/deriveConstants.nix; remote-iserv = ./.plan.nix/remote-iserv.nix; ghci = ./.plan.nix/ghci.nix; ghc-boot = ./.plan.nix/ghc-boot.nix; iserv = ./.plan.nix/iserv.nix; + genprimopcode = ./.plan.nix/genprimopcode.nix; libiserv = ./.plan.nix/libiserv.nix; hpc = ./.plan.nix/hpc.nix; }; @@ -85,15 +89,19 @@ "dynamic-system-linker" = lib.mkOverride 900 true; "terminfo" = lib.mkOverride 900 true; "internal-interpreter" = lib.mkOverride 900 false; - "build-tool-depends" = lib.mkOverride 900 false; + "build-tool-depends" = lib.mkOverride 900 true; }; }; + "deriveConstants" = { flags = {}; }; "remote-iserv" = { flags = {}; }; "ghci" = { flags = { "internal-interpreter" = lib.mkOverride 900 true; }; }; "ghc-boot" = { flags = {}; }; "iserv" = { flags = {}; }; + "genprimopcode" = { + flags = { "build-tool-depends" = lib.mkOverride 900 true; }; + }; "libiserv" = { flags = { "network" = lib.mkOverride 900 true; }; }; "hpc" = { flags = {}; }; }; @@ -115,6 +123,7 @@ "rts".components.library.planned = lib.mkOverride 900 true; "unix".components.library.planned = lib.mkOverride 900 true; "directory".components.library.planned = lib.mkOverride 900 true; + "happy".components.exes."happy".planned = lib.mkOverride 900 true; "iserv".components.exes."iserv".planned = lib.mkOverride 900 true; "ghc".components.setup.planned = lib.mkOverride 900 true; "time".components.library.planned = lib.mkOverride 900 true; @@ -124,7 +133,9 @@ "template-haskell".components.library.planned = lib.mkOverride 900 true; "stm".components.library.planned = lib.mkOverride 900 true; "ghci".components.library.planned = lib.mkOverride 900 true; + "alex".components.exes."alex".planned = lib.mkOverride 900 true; "ghc-boot".components.library.planned = lib.mkOverride 900 true; + "deriveConstants".components.exes."deriveConstants".planned = lib.mkOverride 900 true; "hpc".components.library.planned = lib.mkOverride 900 true; "ghc-boot".components.setup.planned = lib.mkOverride 900 true; "ghc-heap".components.library.planned = lib.mkOverride 900 true; @@ -133,6 +144,7 @@ "libiserv".components.library.planned = lib.mkOverride 900 true; "parsec".components.library.planned = lib.mkOverride 900 true; "deepseq".components.library.planned = lib.mkOverride 900 true; + "genprimopcode".components.exes."genprimopcode".planned = lib.mkOverride 900 true; "text".components.library.planned = lib.mkOverride 900 true; "base".components.library.planned = lib.mkOverride 900 true; "containers".components.library.planned = lib.mkOverride 900 true; diff --git a/modules/configuration-nix.nix b/modules/configuration-nix.nix index ddb73fcd08..b1ea09e2e5 100644 --- a/modules/configuration-nix.nix +++ b/modules/configuration-nix.nix @@ -54,6 +54,17 @@ in { (fromUntil "3.4.0.0" "3.5" ../overlays/patches/Cabal/Cabal-3.4-defer-build-tool-depends-7532.patch) (fromUntil "3.4.0.0" "3.5" ../overlays/patches/Cabal/Cabal-3.4-speedup-solver-when-tests-enabled-7490.patch) ]; + + # Avoid dependency on genprimopcode and deriveConstants (cabal does not put these in the plan, + # most likely because it finds them in the PATH). + # See https://github.com/input-output-hk/haskell.nix/issues/1808 + packages.ghc.components.library.build-tools = pkgs.lib.mkForce [ + (config.hsPkgs.buildPackages.alex.components.exes.alex or pkgs.buildPackages.alex) + (config.hsPkgs.buildPackages.happy.components.exes.happy or pkgs.buildPackages.happy) + pkgs.buildPackages.ghc-extra-packages.${config.compiler.nix-name}.genprimopcode.components.exes.genprimopcode + pkgs.buildPackages.ghc-extra-packages.${config.compiler.nix-name}.deriveConstants.components.exes.deriveConstants + ]; + # Remove dependency on hsc2hs (hsc2hs should be in ghc derivation) packages.mintty.components.library.build-tools = pkgs.lib.mkForce []; diff --git a/overlays/ghc-packages.nix b/overlays/ghc-packages.nix index feb965845f..0a8870d287 100644 --- a/overlays/ghc-packages.nix +++ b/overlays/ghc-packages.nix @@ -72,14 +72,21 @@ let } // final.lib.optionalAttrs (!final.stdenv.hostPlatform.isGhcjs) { ghc = "compiler"; ghc-boot = "libraries/ghc-boot"; - } // final.lib.optionalAttrs (builtins.compareVersions ghcVersion "9.4" < 0) { - # The version of `Win32` that comes with ghc 9.4 (2.12.0.0) is older - # than the one in hackage. Including it causes `cabal configure` to fail. - Win32 = "libraries/Win32"; - # As of GHC 9.4 this has been split out of the GHC repo and - # is now in the iserv-proxy flake input - iserv-proxy = "utils/iserv-proxy"; - } // final.lib.optionalAttrs (!final.stdenv.hostPlatform.isGhcjs || builtins.compareVersions ghcVersion "8.10.5" >= 0) { + } // ( + if builtins.compareVersions ghcVersion "9.4" < 0 + then { + # The version of `Win32` that comes with ghc 9.4 (2.12.0.0) is older + # than the one in hackage. Including it causes `cabal configure` to fail. + Win32 = "libraries/Win32"; + # As of GHC 9.4 this has been split out of the GHC repo and + # is now in the iserv-proxy flake input + iserv-proxy = "utils/iserv-proxy"; + } + else { + genprimopcode = "utils/genprimopcode"; + deriveConstants = "utils/deriveConstants"; + } + ) // final.lib.optionalAttrs (!final.stdenv.hostPlatform.isGhcjs || builtins.compareVersions ghcVersion "8.10.5" >= 0) { # Not sure why, but this is missing from older ghcjs versions remote-iserv = "utils/remote-iserv"; } // final.lib.optionalAttrs (builtins.compareVersions ghcVersion "9.0.1" >= 0) { From 56f4818b419839cc60ed5614018bc83282750b0e Mon Sep 17 00:00:00 2001 From: Hamish Mackenzie Date: Wed, 4 Jan 2023 14:59:47 +1300 Subject: [PATCH 17/38] Use binary-dist-dir to install ghc --- compiler/ghc/default.nix | 59 ++++++++++++++++++++++------------------ 1 file changed, 33 insertions(+), 26 deletions(-) diff --git a/compiler/ghc/default.nix b/compiler/ghc/default.nix index 97b57df74f..469ff30600 100644 --- a/compiler/ghc/default.nix +++ b/compiler/ghc/default.nix @@ -172,6 +172,31 @@ let BUILD_PROF_LIBS = NO ''; + # `--with` flags for libraries needed for RTS linker + configureFlags = [ + "--datadir=$doc/share/doc/ghc" + "--with-curses-includes=${targetPackages.ncurses.dev}/include" "--with-curses-libraries=${targetPackages.ncurses.out}/lib" + ] ++ lib.optionals (targetLibffi != null) ["--with-system-libffi" "--with-ffi-includes=${targetLibffi.dev}/include" "--with-ffi-libraries=${targetLibffi.out}/lib" + ] ++ lib.optionals (!enableIntegerSimple) [ + "--with-gmp-includes=${targetGmp.dev}/include" "--with-gmp-libraries=${targetGmp.out}/lib" + ] ++ lib.optional (targetPlatform == hostPlatform && hostPlatform.libc != "glibc" && !targetPlatform.isWindows) [ + "--with-iconv-includes=${libiconv}/include" "--with-iconv-libraries=${libiconv}/lib" + ] ++ lib.optionals (targetPlatform != hostPlatform) [ + "--with-iconv-includes=${targetIconv}/include" "--with-iconv-libraries=${targetIconv}/lib" + ] ++ lib.optionals (targetPlatform != hostPlatform) [ + "--enable-bootstrap-with-devel-snapshot" + ] ++ lib.optionals (disableLargeAddressSpace) [ + "--disable-large-address-space" + ] ++ lib.optionals (targetPlatform.isAarch32) [ + "CFLAGS=-fuse-ld=gold" + "CONF_GCC_LINKER_OPTS_STAGE1=-fuse-ld=gold" + "CONF_GCC_LINKER_OPTS_STAGE2=-fuse-ld=gold" + ] ++ lib.optionals enableDWARF [ + "--enable-dwarf-unwind" + "--with-libdw-includes=${lib.getDev elfutils}/include" + "--with-libdw-libraries=${lib.getLib elfutils}/lib" + ]; + # Splicer will pull out correct variations libDeps = platform: lib.optional enableTerminfo [ targetPackages.ncurses targetPackages.ncurses.dev ] ++ [targetLibffi] @@ -232,7 +257,7 @@ stdenv.mkDerivation (rec { version = ghc-version; name = "${targetPrefix}ghc-${version}"; - inherit src; + inherit src configureFlags; patches = ghc-patches; # configure was run by configured-src already. @@ -308,30 +333,6 @@ stdenv.mkDerivation (rec { ''; configurePlatforms = [ "build" "host" "target" ]; - # `--with` flags for libraries needed for RTS linker - configureFlags = [ - "--datadir=$doc/share/doc/ghc" - "--with-curses-includes=${targetPackages.ncurses.dev}/include" "--with-curses-libraries=${targetPackages.ncurses.out}/lib" - ] ++ lib.optionals (targetLibffi != null) ["--with-system-libffi" "--with-ffi-includes=${targetLibffi.dev}/include" "--with-ffi-libraries=${targetLibffi.out}/lib" - ] ++ lib.optional (!enableIntegerSimple) [ - "--with-gmp-includes=${targetGmp.dev}/include" "--with-gmp-libraries=${targetGmp.out}/lib" - ] ++ lib.optional (targetPlatform == hostPlatform && hostPlatform.libc != "glibc" && !targetPlatform.isWindows) [ - "--with-iconv-includes=${libiconv}/include" "--with-iconv-libraries=${libiconv}/lib" - ] ++ lib.optional (targetPlatform != hostPlatform) [ - "--with-iconv-includes=${targetIconv}/include" "--with-iconv-libraries=${targetIconv}/lib" - ] ++ lib.optionals (targetPlatform != hostPlatform) [ - "--enable-bootstrap-with-devel-snapshot" - ] ++ lib.optionals (disableLargeAddressSpace) [ - "--disable-large-address-space" - ] ++ lib.optionals (targetPlatform.isAarch32) [ - "CFLAGS=-fuse-ld=gold" - "CONF_GCC_LINKER_OPTS_STAGE1=-fuse-ld=gold" - "CONF_GCC_LINKER_OPTS_STAGE2=-fuse-ld=gold" - ] ++ lib.optionals enableDWARF [ - "--enable-dwarf-unwind" - "--with-libdw-includes=${lib.getDev elfutils}/include" - "--with-libdw-libraries=${lib.getLib elfutils}/lib" - ]; enableParallelBuilding = true; postPatch = "patchShebangs ."; @@ -625,7 +626,13 @@ stdenv.mkDerivation (rec { --replace ',("windres command", "/bin/false")' ',("windres command", "${targetCC.bintools.targetPrefix}windres")' '' else '' - ${hadrian}/bin/hadrian ${hadrianArgs} install --prefix=$out + ${hadrian}/bin/hadrian ${hadrianArgs} binary-dist-dir + cd _build/bindist/ghc-* + ./configure --prefix=$out ${lib.concatStringsSep " " configureFlags} + mkdir -p utils + cp -r ../../../utils/completion utils + make install + cd ../../.. runHook postInstall ''; }); From e6fce20cc2a7f10b7d121751866961a2a9056001 Mon Sep 17 00:00:00 2001 From: Hamish Mackenzie Date: Wed, 4 Jan 2023 15:03:44 +1300 Subject: [PATCH 18/38] Skip hls for ghc 9.4 for now --- build.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/build.nix b/build.nix index 52ffc87e9f..9c0b0ea397 100644 --- a/build.nix +++ b/build.nix @@ -40,6 +40,7 @@ in rec { "ghc8107" = "3.4.1"; }.${compiler-nix-name} or "latest"; }; + } // pkgs.lib.optionalAttrs (!__elem compiler-nix-name ["ghc941" "ghc942" "ghc943"]) { hls-latest = tool compiler-nix-name "haskell-language-server" { inherit evalPackages; }; }) ); From 2b24a4a50de9948d659b28eead8bdaae70f62a17 Mon Sep 17 00:00:00 2001 From: Hamish Mackenzie Date: Thu, 5 Jan 2023 01:41:38 +1300 Subject: [PATCH 19/38] Fix for gitlab in flake-compat --- flake.lock | 7 ++++--- flake.nix | 2 +- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/flake.lock b/flake.lock index dc11697d1f..f3d6bac91a 100644 --- a/flake.lock +++ b/flake.lock @@ -155,15 +155,16 @@ "flake-compat": { "flake": false, "locked": { - "lastModified": 1635892615, - "narHash": "sha256-harGbMZr4hzat2BWBU+Y5OYXlu+fVz7E4WeQzHi5o8A=", + "lastModified": 1672831974, + "narHash": "sha256-z9k3MfslLjWQfnjBtEtJZdq3H7kyi2kQtUThfTgdRk0=", "owner": "input-output-hk", "repo": "flake-compat", - "rev": "eca47d3377946315596da653862d341ee5341318", + "rev": "45f2638735f8cdc40fe302742b79f248d23eb368", "type": "github" }, "original": { "owner": "input-output-hk", + "ref": "hkm/gitlab-fix", "repo": "flake-compat", "type": "github" } diff --git a/flake.nix b/flake.nix index f0030818ce..2bae020276 100644 --- a/flake.nix +++ b/flake.nix @@ -9,7 +9,7 @@ nixpkgs-2205 = { url = "github:NixOS/nixpkgs/nixpkgs-22.05-darwin"; }; nixpkgs-2211 = { url = "github:NixOS/nixpkgs/nixpkgs-22.11-darwin"; }; nixpkgs-unstable = { url = "github:NixOS/nixpkgs/nixpkgs-unstable"; }; - flake-compat = { url = "github:input-output-hk/flake-compat"; flake = false; }; + flake-compat = { url = "github:input-output-hk/flake-compat/hkm/gitlab-fix"; flake = false; }; flake-utils = { url = "github:numtide/flake-utils"; }; tullia = { url = "github:input-output-hk/tullia"; From 578a2ff5ff3687e210b42b8e679b1aa548f869c2 Mon Sep 17 00:00:00 2001 From: Hamish Mackenzie Date: Thu, 5 Jan 2023 01:42:28 +1300 Subject: [PATCH 20/38] Fix for installing dwarf enabled ghc --- compiler/ghc/default.nix | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/compiler/ghc/default.nix b/compiler/ghc/default.nix index 469ff30600..3474da9359 100644 --- a/compiler/ghc/default.nix +++ b/compiler/ghc/default.nix @@ -204,7 +204,8 @@ let ++ lib.optional (platform.libc != "glibc" && !targetPlatform.isWindows) libiconv ++ lib.optional (enableNUMA && platform.isLinux && !platform.isAarch32 && !platform.isAndroid) numactl # Even with terminfo disabled some older ghc cross arm and windows compilers do not build unless `ncurses` is found and they seem to want the buildPlatform version - ++ lib.optional (!enableTerminfo && haskell-nix.haskellLib.isCrossTarget && (stdenv.targetPlatform.isAarch64 || stdenv.targetPlatform.isWindows) && builtins.compareVersions ghc-version "8.10" < 0) ncurses.dev; + ++ lib.optional (!enableTerminfo && haskell-nix.haskellLib.isCrossTarget && (stdenv.targetPlatform.isAarch64 || stdenv.targetPlatform.isWindows) && builtins.compareVersions ghc-version "8.10" < 0) ncurses.dev + ++ lib.optional enableDWARF (lib.getLib elfutils); toolsForTarget = if hostPlatform == buildPlatform then From cfeacb517e914dab14901a28d8a3b17f0d43b6d1 Mon Sep 17 00:00:00 2001 From: Hamish Mackenzie Date: Thu, 5 Jan 2023 01:42:57 +1300 Subject: [PATCH 21/38] Fix for building hls 1.9 from hackage --- modules/hackage-quirks.nix | 3 +++ 1 file changed, 3 insertions(+) diff --git a/modules/hackage-quirks.nix b/modules/hackage-quirks.nix index 011e686106..effe8fa46c 100644 --- a/modules/hackage-quirks.nix +++ b/modules/hackage-quirks.nix @@ -56,6 +56,9 @@ in [ package haskell-language-server flags: -qualifyimportednames -stylishhaskell${lib.optionalString (config.compiler-nix-name != "ghc902") " -hlint"} '' + + lib.optionalString (config.version == "1.9.0.0") '' + allow-newer: hls-call-hierarchy-plugin:ghcide, hls-call-hierarchy-plugin:hls-plugin-api + '' # TODO Remove this flag once the hls-haddock-comments-plugin is updated in hackage to work with ghc 9.2 + lib.optionalString (__elem config.compiler-nix-name ["ghc921" "ghc922" "ghc923" "ghc924" "ghc925"]) '' package haskell-language-server From 453de103e9a7ef5054e2fd04878731d66aa21d77 Mon Sep 17 00:00:00 2001 From: Hamish Mackenzie Date: Thu, 5 Jan 2023 01:43:16 +1300 Subject: [PATCH 22/38] disable broken tests --- test/cabal-simple-debug/default.nix | 2 +- test/ghcjs-overlay/default.nix | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/test/cabal-simple-debug/default.nix b/test/cabal-simple-debug/default.nix index 0e65a341a1..1931d0aafa 100644 --- a/test/cabal-simple-debug/default.nix +++ b/test/cabal-simple-debug/default.nix @@ -18,7 +18,7 @@ let in recurseIntoAttrs { # DWARF only works on linux with GHC 8.10.2 and newer # GHC 9.2.1 disabled because of https://github.com/input-output-hk/haskell.nix/issues/1332 - meta.disabled = __elem compiler-nix-name ["ghc865" "ghc884" "ghc921" "ghc922" "ghc923" "ghc924" "ghc925"] + meta.disabled = __elem compiler-nix-name ["ghc865" "ghc884" "ghc921" "ghc922" "ghc923" "ghc924" "ghc925" "ghc941" "ghc942" "ghc943"] || !stdenv.hostPlatform.isLinux || haskellLib.isCrossHost || stdenv.hostPlatform.isMusl || stdenv.hostPlatform.isAarch64; ifdInputs = { inherit (project) plan-nix; diff --git a/test/ghcjs-overlay/default.nix b/test/ghcjs-overlay/default.nix index 91496863cb..7fe0187889 100644 --- a/test/ghcjs-overlay/default.nix +++ b/test/ghcjs-overlay/default.nix @@ -26,6 +26,7 @@ let packages = project.hsPkgs; in recurseIntoAttrs { + meta.disabled = __elem compiler-nix-name ["ghc941" "ghc942" "ghc943"]; ifdInputs = { inherit (project) plan-nix; }; @@ -56,7 +57,6 @@ in recurseIntoAttrs { touch $out ''; meta.platforms = platforms.all; - meta.disabled = __elem compiler-nix-name ["ghc941" "ghc942" "ghc943"]; passthru = { inherit project; }; From aec9447fd9dc5174b2ae0b122bd7d6a1a5fc0d64 Mon Sep 17 00:00:00 2001 From: Hamish Mackenzie Date: Thu, 5 Jan 2023 01:43:39 +1300 Subject: [PATCH 23/38] Update materialized files --- .../ghc943/.plan.nix/deriveConstants.nix | 48 +++++++++++++++++ .../ghc943/.plan.nix/genprimopcode.nix | 52 +++++++++++++++++++ .../windows/ghc943/default.nix | 14 ++++- 3 files changed, 113 insertions(+), 1 deletion(-) create mode 100644 materialized/ghc-extra-projects/windows/ghc943/.plan.nix/deriveConstants.nix create mode 100644 materialized/ghc-extra-projects/windows/ghc943/.plan.nix/genprimopcode.nix diff --git a/materialized/ghc-extra-projects/windows/ghc943/.plan.nix/deriveConstants.nix b/materialized/ghc-extra-projects/windows/ghc943/.plan.nix/deriveConstants.nix new file mode 100644 index 0000000000..0b0d43f547 --- /dev/null +++ b/materialized/ghc-extra-projects/windows/ghc943/.plan.nix/deriveConstants.nix @@ -0,0 +1,48 @@ +{ system + , compiler + , flags + , pkgs + , hsPkgs + , pkgconfPkgs + , errorHandler + , config + , ... }: + { + flags = {}; + package = { + specVersion = "1.10"; + identifier = { name = "deriveConstants"; version = "0.1"; }; + license = "BSD-3-Clause"; + copyright = "XXX"; + maintainer = "XXX"; + author = "XXX"; + homepage = ""; + url = ""; + synopsis = "Derive header files containing various constants for the GHC build process"; + description = "This utility is responsible for generating a number of C header files\nneeded during the GHC build process. See @rts/include/ghc.mk@ in the GHC\nbuild system for details."; + buildType = "Simple"; + isLocal = true; + detailLevel = "FullDetails"; + licenseFiles = []; + dataDir = "."; + dataFiles = []; + extraSrcFiles = []; + extraTmpFiles = []; + extraDocFiles = []; + }; + components = { + exes = { + "deriveConstants" = { + depends = [ + (hsPkgs."base" or (errorHandler.buildDepError "base")) + (hsPkgs."containers" or (errorHandler.buildDepError "containers")) + (hsPkgs."process" or (errorHandler.buildDepError "process")) + (hsPkgs."filepath" or (errorHandler.buildDepError "filepath")) + (hsPkgs."directory" or (errorHandler.buildDepError "directory")) + ]; + buildable = true; + mainPath = [ "Main.hs" ]; + }; + }; + }; + } // rec { src = (pkgs.lib).mkDefault ../utils/deriveConstants; } \ No newline at end of file diff --git a/materialized/ghc-extra-projects/windows/ghc943/.plan.nix/genprimopcode.nix b/materialized/ghc-extra-projects/windows/ghc943/.plan.nix/genprimopcode.nix new file mode 100644 index 0000000000..b7476019e1 --- /dev/null +++ b/materialized/ghc-extra-projects/windows/ghc943/.plan.nix/genprimopcode.nix @@ -0,0 +1,52 @@ +{ system + , compiler + , flags + , pkgs + , hsPkgs + , pkgconfPkgs + , errorHandler + , config + , ... }: + { + flags = { build-tool-depends = true; }; + package = { + specVersion = "2.0"; + identifier = { name = "genprimopcode"; version = "0.1"; }; + license = "BSD-3-Clause"; + copyright = "XXX"; + maintainer = "XXX"; + author = "XXX"; + homepage = ""; + url = ""; + synopsis = "Generates various files implementing GHC's primitive operations."; + description = "This utility reads a textual description of GHC's primitive operations\n(@primops.txt.pp@) and produces a number of outputs. These include,\n\n* the @GHC.Prim@ module included in the @ghc-prim@ package.\n* the @GHC.PrimopWrappers@ module included in the @ghc-prim@ package.\n* an LaTeX document describing the primitive operations."; + buildType = "Simple"; + isLocal = true; + detailLevel = "FullDetails"; + licenseFiles = []; + dataDir = "."; + dataFiles = []; + extraSrcFiles = []; + extraTmpFiles = []; + extraDocFiles = []; + }; + components = { + exes = { + "genprimopcode" = { + depends = [ + (hsPkgs."base" or (errorHandler.buildDepError "base")) + (hsPkgs."array" or (errorHandler.buildDepError "array")) + ]; + build-tools = (pkgs.lib).optionals (flags.build-tool-depends) [ + (hsPkgs.buildPackages.alex.components.exes.alex or (pkgs.buildPackages.alex or (errorHandler.buildToolDepError "alex:alex"))) + (hsPkgs.buildPackages.happy.components.exes.happy or (pkgs.buildPackages.happy or (errorHandler.buildToolDepError "happy:happy"))) + ]; + buildable = true; + modules = [ "Lexer" "Parser" "ParserM" "Syntax" ]; + mainPath = [ + "Main.hs" + ] ++ (pkgs.lib).optional (flags.build-tool-depends) ""; + }; + }; + }; + } // rec { src = (pkgs.lib).mkDefault ../utils/genprimopcode; } \ No newline at end of file diff --git a/materialized/ghc-extra-projects/windows/ghc943/default.nix b/materialized/ghc-extra-projects/windows/ghc943/default.nix index 30fdd854dd..bb5c18cf86 100644 --- a/materialized/ghc-extra-projects/windows/ghc943/default.nix +++ b/materialized/ghc-extra-projects/windows/ghc943/default.nix @@ -2,11 +2,13 @@ pkgs = hackage: { packages = { + "happy".revision = (((hackage."happy")."1.20.0").revisions).default; "pretty".revision = (((hackage."pretty")."1.1.3.6").revisions).default; "text".revision = (((hackage."text")."2.0.1").revisions).default; "array".revision = (((hackage."array")."0.5.4.0").revisions).default; "Cabal-syntax".revision = (((hackage."Cabal-syntax")."3.8.1.0").revisions).default; "Cabal".revision = (((hackage."Cabal")."3.8.1.0").revisions).default; + "alex".revision = (((hackage."alex")."3.2.7.1").revisions).default; "mtl".revision = (((hackage."mtl")."2.2.2").revisions).default; "parsec".revision = (((hackage."parsec")."3.1.15.0").revisions).default; "bytestring".revision = (((hackage."bytestring")."0.11.3.1").revisions).default; @@ -66,10 +68,12 @@ { packages = { ghc = ./.plan.nix/ghc.nix; + deriveConstants = ./.plan.nix/deriveConstants.nix; remote-iserv = ./.plan.nix/remote-iserv.nix; ghci = ./.plan.nix/ghci.nix; ghc-boot = ./.plan.nix/ghc-boot.nix; iserv = ./.plan.nix/iserv.nix; + genprimopcode = ./.plan.nix/genprimopcode.nix; libiserv = ./.plan.nix/libiserv.nix; hpc = ./.plan.nix/hpc.nix; }; @@ -83,15 +87,19 @@ "dynamic-system-linker" = lib.mkOverride 900 true; "terminfo" = lib.mkOverride 900 true; "internal-interpreter" = lib.mkOverride 900 false; - "build-tool-depends" = lib.mkOverride 900 false; + "build-tool-depends" = lib.mkOverride 900 true; }; }; + "deriveConstants" = { flags = {}; }; "remote-iserv" = { flags = {}; }; "ghci" = { flags = { "internal-interpreter" = lib.mkOverride 900 true; }; }; "ghc-boot" = { flags = {}; }; "iserv" = { flags = {}; }; + "genprimopcode" = { + flags = { "build-tool-depends" = lib.mkOverride 900 true; }; + }; "libiserv" = { flags = { "network" = lib.mkOverride 900 true; }; }; "hpc" = { flags = {}; }; }; @@ -113,6 +121,7 @@ "ghc-boot-th".components.library.planned = lib.mkOverride 900 true; "rts".components.library.planned = lib.mkOverride 900 true; "directory".components.library.planned = lib.mkOverride 900 true; + "happy".components.exes."happy".planned = lib.mkOverride 900 true; "iserv".components.exes."iserv".planned = lib.mkOverride 900 true; "ghc".components.setup.planned = lib.mkOverride 900 true; "time".components.library.planned = lib.mkOverride 900 true; @@ -122,7 +131,9 @@ "template-haskell".components.library.planned = lib.mkOverride 900 true; "stm".components.library.planned = lib.mkOverride 900 true; "ghci".components.library.planned = lib.mkOverride 900 true; + "alex".components.exes."alex".planned = lib.mkOverride 900 true; "ghc-boot".components.library.planned = lib.mkOverride 900 true; + "deriveConstants".components.exes."deriveConstants".planned = lib.mkOverride 900 true; "hpc".components.library.planned = lib.mkOverride 900 true; "ghc-boot".components.setup.planned = lib.mkOverride 900 true; "ghc-heap".components.library.planned = lib.mkOverride 900 true; @@ -131,6 +142,7 @@ "libiserv".components.library.planned = lib.mkOverride 900 true; "parsec".components.library.planned = lib.mkOverride 900 true; "deepseq".components.library.planned = lib.mkOverride 900 true; + "genprimopcode".components.exes."genprimopcode".planned = lib.mkOverride 900 true; "text".components.library.planned = lib.mkOverride 900 true; "base".components.library.planned = lib.mkOverride 900 true; "containers".components.library.planned = lib.mkOverride 900 true; From 9334ced230cc8d8802251cbd1cf30acf1c5a9a59 Mon Sep 17 00:00:00 2001 From: Hamish Mackenzie Date: Thu, 5 Jan 2023 17:47:35 +1300 Subject: [PATCH 24/38] More fixes for tests --- build.nix | 8 +++++++- modules/configuration-nix.nix | 13 +++++++------ modules/hackage-quirks.nix | 1 + test/haskell-language-server/cabal.nix | 7 ++++++- 4 files changed, 21 insertions(+), 8 deletions(-) diff --git a/build.nix b/build.nix index 9c0b0ea397..0219f33f77 100644 --- a/build.nix +++ b/build.nix @@ -41,7 +41,13 @@ in rec { }.${compiler-nix-name} or "latest"; }; } // pkgs.lib.optionalAttrs (!__elem compiler-nix-name ["ghc941" "ghc942" "ghc943"]) { - hls-latest = tool compiler-nix-name "haskell-language-server" { inherit evalPackages; }; + hls-latest = tool compiler-nix-name "haskell-language-server" { + inherit evalPackages; + version = + if __compareVersions haskell.compiler.${compiler-nix-name}.version "9.4" < 0 + then "1.8.0.0" + else "latest"; + }; }) ); diff --git a/modules/configuration-nix.nix b/modules/configuration-nix.nix index b1ea09e2e5..f2725ace01 100644 --- a/modules/configuration-nix.nix +++ b/modules/configuration-nix.nix @@ -58,12 +58,13 @@ in { # Avoid dependency on genprimopcode and deriveConstants (cabal does not put these in the plan, # most likely because it finds them in the PATH). # See https://github.com/input-output-hk/haskell.nix/issues/1808 - packages.ghc.components.library.build-tools = pkgs.lib.mkForce [ - (config.hsPkgs.buildPackages.alex.components.exes.alex or pkgs.buildPackages.alex) - (config.hsPkgs.buildPackages.happy.components.exes.happy or pkgs.buildPackages.happy) - pkgs.buildPackages.ghc-extra-packages.${config.compiler.nix-name}.genprimopcode.components.exes.genprimopcode - pkgs.buildPackages.ghc-extra-packages.${config.compiler.nix-name}.deriveConstants.components.exes.deriveConstants - ]; + packages.ghc.components.library.build-tools = pkgs.lib.mkForce ( + pkgs.lib.optionals (__compareVersions config.hsPkgs.ghc.identifier.version "9.4.1" > 0) [ + (config.hsPkgs.buildPackages.alex.components.exes.alex or pkgs.buildPackages.alex) + (config.hsPkgs.buildPackages.happy.components.exes.happy or pkgs.buildPackages.happy) + pkgs.buildPackages.ghc-extra-packages.${config.compiler.nix-name}.genprimopcode.components.exes.genprimopcode + pkgs.buildPackages.ghc-extra-packages.${config.compiler.nix-name}.deriveConstants.components.exes.deriveConstants + ]); # Remove dependency on hsc2hs (hsc2hs should be in ghc derivation) packages.mintty.components.library.build-tools = pkgs.lib.mkForce []; diff --git a/modules/hackage-quirks.nix b/modules/hackage-quirks.nix index effe8fa46c..3f4db3b4de 100644 --- a/modules/hackage-quirks.nix +++ b/modules/hackage-quirks.nix @@ -55,6 +55,7 @@ in [ + lib.optionalString (config.version == "1.8.0.0") '' package haskell-language-server flags: -qualifyimportednames -stylishhaskell${lib.optionalString (config.compiler-nix-name != "ghc902") " -hlint"} + constraints: hls-fourmolu-plugin <1.1.1.0, hls-rename-plugin <1.0.2.0, hls-stan-plugin <1.0.1.0 '' + lib.optionalString (config.version == "1.9.0.0") '' allow-newer: hls-call-hierarchy-plugin:ghcide, hls-call-hierarchy-plugin:hls-plugin-api diff --git a/test/haskell-language-server/cabal.nix b/test/haskell-language-server/cabal.nix index 23b43fdf4e..a00b248d34 100644 --- a/test/haskell-language-server/cabal.nix +++ b/test/haskell-language-server/cabal.nix @@ -1,6 +1,11 @@ { stdenv, testSrc, haskell-nix, compiler-nix-name, evalPackages, recurseIntoAttrs }: let - inherit (haskell-nix.tool compiler-nix-name "haskell-language-server" { inherit evalPackages; }) project; + inherit (haskell-nix.tool compiler-nix-name "haskell-language-server" { + version = + if __compareVersions haskell-nix.compiler.${compiler-nix-name}.version "9.4" < 0 + then "1.8.0.0" + else "latest"; + inherit evalPackages; }) project; in recurseIntoAttrs { ifdInputs = { inherit (project) plan-nix; From 58e953a8158a914e3ceca30f3946c19ca7fe3dcf Mon Sep 17 00:00:00 2001 From: Hamish Mackenzie Date: Thu, 5 Jan 2023 18:47:13 +1300 Subject: [PATCH 25/38] Skip stack build on ghc 9.4 --- build.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.nix b/build.nix index 0219f33f77..3bcd871d98 100644 --- a/build.nix +++ b/build.nix @@ -23,7 +23,6 @@ in rec { tools = pkgs.lib.optionalAttrs (ifdLevel >= 3) ( pkgs.recurseIntoAttrs ({ cabal-latest = tool compiler-nix-name "cabal" { inherit evalPackages; }; - stack = tool compiler-nix-name "stack" { version = "2.9.3"; inherit evalPackages; }; hlint-latest = tool compiler-nix-name "hlint" { inherit evalPackages; version = { @@ -41,6 +40,7 @@ in rec { }.${compiler-nix-name} or "latest"; }; } // pkgs.lib.optionalAttrs (!__elem compiler-nix-name ["ghc941" "ghc942" "ghc943"]) { + stack = tool compiler-nix-name "stack" { version = "2.9.3"; inherit evalPackages; }; hls-latest = tool compiler-nix-name "haskell-language-server" { inherit evalPackages; version = From 46708799562310b5e3fed0ee4cb569eb35a77700 Mon Sep 17 00:00:00 2001 From: Hamish Mackenzie Date: Thu, 5 Jan 2023 20:30:46 +1300 Subject: [PATCH 26/38] Workaround for restrict-eval true --- overlays/haskell.nix | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/overlays/haskell.nix b/overlays/haskell.nix index 615fac76c4..d991f25eac 100644 --- a/overlays/haskell.nix +++ b/overlays/haskell.nix @@ -1,4 +1,4 @@ -{ sources, ... }: +{ sources, ... }: # The haskell.nix infrastructure # # for hygienic reasons we'll use haskell-nix as a prefix. @@ -896,7 +896,18 @@ final: prev: { exes = pkgs: (pkgs.haskell-nix.cabalProject { name = "iserv-proxy"; inherit compiler-nix-name; - src = final.buildPackages.haskell-nix.sources.iserv-proxy; + src = + # Instead of using `sources.iserv-proxy` pull the pin from + # the flake.lock file and use `pkgs.fetchgit`. + # Unlike `sources.iserv-proxy`, this works even when using: + # --option restrict-eval true + let + pins = (__fromJSON (__readFile ../flake.lock)).nodes; + iservProxyPin = pins.iserv-proxy.locked; + in pkgs.fetchgit { + inherit (iservProxyPin) url rev; + sha256 = iservProxyPin.narHash; + }; cabalProjectLocal = '' allow-newer: *:libiserv, *:ghci allow-older: *:libiserv, *:ghci From 96e342507f2294110b0087a77dfa76e4c375abbd Mon Sep 17 00:00:00 2001 From: Hamish Mackenzie Date: Fri, 6 Jan 2023 10:41:24 +1300 Subject: [PATCH 27/38] fix configureFlags --- compiler/ghc/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/compiler/ghc/default.nix b/compiler/ghc/default.nix index 3474da9359..08d1ff8824 100644 --- a/compiler/ghc/default.nix +++ b/compiler/ghc/default.nix @@ -179,7 +179,7 @@ let ] ++ lib.optionals (targetLibffi != null) ["--with-system-libffi" "--with-ffi-includes=${targetLibffi.dev}/include" "--with-ffi-libraries=${targetLibffi.out}/lib" ] ++ lib.optionals (!enableIntegerSimple) [ "--with-gmp-includes=${targetGmp.dev}/include" "--with-gmp-libraries=${targetGmp.out}/lib" - ] ++ lib.optional (targetPlatform == hostPlatform && hostPlatform.libc != "glibc" && !targetPlatform.isWindows) [ + ] ++ lib.optionals (targetPlatform == hostPlatform && hostPlatform.libc != "glibc" && !targetPlatform.isWindows) [ "--with-iconv-includes=${libiconv}/include" "--with-iconv-libraries=${libiconv}/lib" ] ++ lib.optionals (targetPlatform != hostPlatform) [ "--with-iconv-includes=${targetIconv}/include" "--with-iconv-libraries=${targetIconv}/lib" From efc305127617ea83cfa1d365d4df6cecd31e42bf Mon Sep 17 00:00:00 2001 From: Hamish Mackenzie Date: Fri, 6 Jan 2023 17:17:05 +1300 Subject: [PATCH 28/38] Disable broken tests --- test/shell-for-setup-deps/default.nix | 4 +++- test/th-dlls/default.nix | 4 +++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/test/shell-for-setup-deps/default.nix b/test/shell-for-setup-deps/default.nix index 0c22ce56a9..2861b04eb9 100644 --- a/test/shell-for-setup-deps/default.nix +++ b/test/shell-for-setup-deps/default.nix @@ -24,7 +24,9 @@ in recurseIntoAttrs ({ # and corresponding package DBs and a way to use them. # This problem affects musl as well as the build libraries are linked to glibc. meta.disabled = stdenv.buildPlatform != stdenv.hostPlatform - || compiler-nix-name == "ghc901" || compiler-nix-name == "ghc902"; + || compiler-nix-name == "ghc901" || compiler-nix-name == "ghc902" || + # TH breaks for ghc 9.4.3 cross compile for macOS with this test + (stdenv.hostPlatform.isDarwin && __elem compiler-nix-name ["ghc941" "ghc942" "ghc943"]); ifdInputs = { inherit (project) plan-nix; }; diff --git a/test/th-dlls/default.nix b/test/th-dlls/default.nix index 76ae5e94c0..236d7b23f5 100644 --- a/test/th-dlls/default.nix +++ b/test/th-dlls/default.nix @@ -15,7 +15,9 @@ in recurseIntoAttrs { meta.disabled = stdenv.hostPlatform.isGhcjs || # TH breaks for ghc 9.4.3 cross compile for windows if the library even # just depends on the `text` package (this may be related to the C++ dependency). - (stdenv.hostPlatform.isWindows && __elem compiler-nix-name ["ghc941" "ghc942" "ghc943"]); + (stdenv.hostPlatform.isWindows && __elem compiler-nix-name ["ghc941" "ghc942" "ghc943"]) || + # Similar problem on macOS + (stdenv.hostPlatform.isDarwin && __elem compiler-nix-name ["ghc941" "ghc942" "ghc943"]); ifdInputs = { inherit (project) plan-nix; From 994be90c89c74563892a36f1e2b7e5dea2ca332a Mon Sep 17 00:00:00 2001 From: Hamish Mackenzie Date: Fri, 6 Jan 2023 17:17:36 +1300 Subject: [PATCH 29/38] Add materialized files --- .../ghc-pkg/dump-global | 2141 +++++++++++++++++ .../ghc-9.4.2-aarch64-darwin/ghc-pkg/version | 1 + .../ghc-9.4.2-aarch64-darwin/ghc/info | 80 + .../ghc/numeric-version | 1 + .../ghc/supported-languages | 268 +++ .../ghc-9.4.2-aarch64-darwin/ghc/version | 1 + .../ghc941-aarch64/deriveConstants.nix | 39 + .../ghc941-aarch64/genprimopcode.nix | 40 + .../ghc942-aarch64/deriveConstants.nix | 39 + .../ghc942-aarch64/genprimopcode.nix | 40 + .../ghc942/deriveConstants.nix | 39 + .../ghc942/genprimopcode.nix | 40 + .../ghc943-aarch64/deriveConstants.nix | 39 + .../ghc943-aarch64/genprimopcode.nix | 40 + .../ghc942/.plan.nix/deriveConstants.nix | 48 + .../ghc942/.plan.nix/genprimopcode.nix | 52 + .../default/ghc942/default.nix | 14 +- .../windows/ghc941/default.nix | 14 +- .../ghc942/.plan.nix/deriveConstants.nix | 48 + .../ghc942/.plan.nix/genprimopcode.nix | 52 + .../windows/ghc942/default.nix | 14 +- 21 files changed, 3047 insertions(+), 3 deletions(-) create mode 100644 materialized/dummy-ghc/ghc-9.4.2-aarch64-darwin/ghc-pkg/dump-global create mode 100644 materialized/dummy-ghc/ghc-9.4.2-aarch64-darwin/ghc-pkg/version create mode 100644 materialized/dummy-ghc/ghc-9.4.2-aarch64-darwin/ghc/info create mode 100644 materialized/dummy-ghc/ghc-9.4.2-aarch64-darwin/ghc/numeric-version create mode 100644 materialized/dummy-ghc/ghc-9.4.2-aarch64-darwin/ghc/supported-languages create mode 100644 materialized/dummy-ghc/ghc-9.4.2-aarch64-darwin/ghc/version create mode 100644 materialized/ghc-boot-packages-nix/ghc941-aarch64/deriveConstants.nix create mode 100644 materialized/ghc-boot-packages-nix/ghc941-aarch64/genprimopcode.nix create mode 100644 materialized/ghc-boot-packages-nix/ghc942-aarch64/deriveConstants.nix create mode 100644 materialized/ghc-boot-packages-nix/ghc942-aarch64/genprimopcode.nix create mode 100644 materialized/ghc-boot-packages-nix/ghc942/deriveConstants.nix create mode 100644 materialized/ghc-boot-packages-nix/ghc942/genprimopcode.nix create mode 100644 materialized/ghc-boot-packages-nix/ghc943-aarch64/deriveConstants.nix create mode 100644 materialized/ghc-boot-packages-nix/ghc943-aarch64/genprimopcode.nix create mode 100644 materialized/ghc-extra-projects/default/ghc942/.plan.nix/deriveConstants.nix create mode 100644 materialized/ghc-extra-projects/default/ghc942/.plan.nix/genprimopcode.nix create mode 100644 materialized/ghc-extra-projects/windows/ghc942/.plan.nix/deriveConstants.nix create mode 100644 materialized/ghc-extra-projects/windows/ghc942/.plan.nix/genprimopcode.nix diff --git a/materialized/dummy-ghc/ghc-9.4.2-aarch64-darwin/ghc-pkg/dump-global b/materialized/dummy-ghc/ghc-9.4.2-aarch64-darwin/ghc-pkg/dump-global new file mode 100644 index 0000000000..6b6230e9b8 --- /dev/null +++ b/materialized/dummy-ghc/ghc-9.4.2-aarch64-darwin/ghc-pkg/dump-global @@ -0,0 +1,2141 @@ +name: Cabal +version: 3.8.1.0 +visibility: public +id: Cabal-3.8.1.0 +key: Cabal-3.8.1.0 +license: BSD-3-Clause +copyright: 2003-2022, Cabal Development Team (see AUTHORS file) +maintainer: cabal-devel@haskell.org +author: Cabal Development Team +homepage: http://www.haskell.org/cabal/ +synopsis: A framework for packaging Haskell software +description: + The Haskell Common Architecture for Building Applications and + Libraries: a framework defining a common interface for authors to more + easily build their Haskell applications in a portable way. + The Haskell Cabal is part of a larger infrastructure for distributing, + organizing, and cataloging Haskell libraries and tools. +category: Distribution +exposed: True +exposed-modules: + Distribution.Backpack from Cabal-syntax-3.8.1.0:Distribution.Backpack, + Distribution.Backpack.ComponentsGraph, + Distribution.Backpack.Configure, + Distribution.Backpack.ConfiguredComponent, + Distribution.Backpack.DescribeUnitId, + Distribution.Backpack.FullUnitId, + Distribution.Backpack.LinkedComponent, + Distribution.Backpack.ModSubst, Distribution.Backpack.ModuleShape, + Distribution.Backpack.PreModuleShape, + Distribution.CabalSpecVersion from Cabal-syntax-3.8.1.0:Distribution.CabalSpecVersion, + Distribution.Compat.Binary from Cabal-syntax-3.8.1.0:Distribution.Compat.Binary, + Distribution.Compat.CharParsing from Cabal-syntax-3.8.1.0:Distribution.Compat.CharParsing, + Distribution.Compat.CreatePipe, + Distribution.Compat.DList from Cabal-syntax-3.8.1.0:Distribution.Compat.DList, + Distribution.Compat.Directory, Distribution.Compat.Environment, + Distribution.Compat.Exception from Cabal-syntax-3.8.1.0:Distribution.Compat.Exception, + Distribution.Compat.FilePath, + Distribution.Compat.Graph from Cabal-syntax-3.8.1.0:Distribution.Compat.Graph, + Distribution.Compat.Internal.TempFile, + Distribution.Compat.Lens from Cabal-syntax-3.8.1.0:Distribution.Compat.Lens, + Distribution.Compat.MonadFail from Cabal-syntax-3.8.1.0:Distribution.Compat.MonadFail, + Distribution.Compat.Newtype from Cabal-syntax-3.8.1.0:Distribution.Compat.Newtype, + Distribution.Compat.NonEmptySet from Cabal-syntax-3.8.1.0:Distribution.Compat.NonEmptySet, + Distribution.Compat.Parsing from Cabal-syntax-3.8.1.0:Distribution.Compat.Parsing, + Distribution.Compat.Prelude from Cabal-syntax-3.8.1.0:Distribution.Compat.Prelude, + Distribution.Compat.Prelude.Internal, Distribution.Compat.Process, + Distribution.Compat.ResponseFile, + Distribution.Compat.Semigroup from Cabal-syntax-3.8.1.0:Distribution.Compat.Semigroup, + Distribution.Compat.Stack, Distribution.Compat.Time, + Distribution.Compat.Typeable from Cabal-syntax-3.8.1.0:Distribution.Compat.Typeable, + Distribution.Compiler from Cabal-syntax-3.8.1.0:Distribution.Compiler, + Distribution.FieldGrammar from Cabal-syntax-3.8.1.0:Distribution.FieldGrammar, + Distribution.FieldGrammar.Class from Cabal-syntax-3.8.1.0:Distribution.FieldGrammar.Class, + Distribution.FieldGrammar.FieldDescrs from Cabal-syntax-3.8.1.0:Distribution.FieldGrammar.FieldDescrs, + Distribution.FieldGrammar.Newtypes from Cabal-syntax-3.8.1.0:Distribution.FieldGrammar.Newtypes, + Distribution.FieldGrammar.Parsec from Cabal-syntax-3.8.1.0:Distribution.FieldGrammar.Parsec, + Distribution.FieldGrammar.Pretty from Cabal-syntax-3.8.1.0:Distribution.FieldGrammar.Pretty, + Distribution.Fields from Cabal-syntax-3.8.1.0:Distribution.Fields, + Distribution.Fields.ConfVar from Cabal-syntax-3.8.1.0:Distribution.Fields.ConfVar, + Distribution.Fields.Field from Cabal-syntax-3.8.1.0:Distribution.Fields.Field, + Distribution.Fields.Lexer from Cabal-syntax-3.8.1.0:Distribution.Fields.Lexer, + Distribution.Fields.LexerMonad from Cabal-syntax-3.8.1.0:Distribution.Fields.LexerMonad, + Distribution.Fields.ParseResult from Cabal-syntax-3.8.1.0:Distribution.Fields.ParseResult, + Distribution.Fields.Parser from Cabal-syntax-3.8.1.0:Distribution.Fields.Parser, + Distribution.Fields.Pretty from Cabal-syntax-3.8.1.0:Distribution.Fields.Pretty, + Distribution.InstalledPackageInfo from Cabal-syntax-3.8.1.0:Distribution.InstalledPackageInfo, + Distribution.License from Cabal-syntax-3.8.1.0:Distribution.License, + Distribution.Make, + Distribution.ModuleName from Cabal-syntax-3.8.1.0:Distribution.ModuleName, + Distribution.Package from Cabal-syntax-3.8.1.0:Distribution.Package, + Distribution.PackageDescription from Cabal-syntax-3.8.1.0:Distribution.PackageDescription, + Distribution.PackageDescription.Check, + Distribution.PackageDescription.Configuration from Cabal-syntax-3.8.1.0:Distribution.PackageDescription.Configuration, + Distribution.PackageDescription.FieldGrammar from Cabal-syntax-3.8.1.0:Distribution.PackageDescription.FieldGrammar, + Distribution.PackageDescription.Parsec from Cabal-syntax-3.8.1.0:Distribution.PackageDescription.Parsec, + Distribution.PackageDescription.PrettyPrint from Cabal-syntax-3.8.1.0:Distribution.PackageDescription.PrettyPrint, + Distribution.PackageDescription.Quirks from Cabal-syntax-3.8.1.0:Distribution.PackageDescription.Quirks, + Distribution.PackageDescription.Utils from Cabal-syntax-3.8.1.0:Distribution.PackageDescription.Utils, + Distribution.Parsec from Cabal-syntax-3.8.1.0:Distribution.Parsec, + Distribution.Parsec.Error from Cabal-syntax-3.8.1.0:Distribution.Parsec.Error, + Distribution.Parsec.FieldLineStream from Cabal-syntax-3.8.1.0:Distribution.Parsec.FieldLineStream, + Distribution.Parsec.Position from Cabal-syntax-3.8.1.0:Distribution.Parsec.Position, + Distribution.Parsec.Warning from Cabal-syntax-3.8.1.0:Distribution.Parsec.Warning, + Distribution.Pretty from Cabal-syntax-3.8.1.0:Distribution.Pretty, + Distribution.ReadE, + Distribution.SPDX from Cabal-syntax-3.8.1.0:Distribution.SPDX, + Distribution.SPDX.License from Cabal-syntax-3.8.1.0:Distribution.SPDX.License, + Distribution.SPDX.LicenseExceptionId from Cabal-syntax-3.8.1.0:Distribution.SPDX.LicenseExceptionId, + Distribution.SPDX.LicenseExpression from Cabal-syntax-3.8.1.0:Distribution.SPDX.LicenseExpression, + Distribution.SPDX.LicenseId from Cabal-syntax-3.8.1.0:Distribution.SPDX.LicenseId, + Distribution.SPDX.LicenseListVersion from Cabal-syntax-3.8.1.0:Distribution.SPDX.LicenseListVersion, + Distribution.SPDX.LicenseReference from Cabal-syntax-3.8.1.0:Distribution.SPDX.LicenseReference, + Distribution.Simple, Distribution.Simple.Bench, + Distribution.Simple.Build, Distribution.Simple.Build.Macros, + Distribution.Simple.Build.PathsModule, + Distribution.Simple.BuildPaths, Distribution.Simple.BuildTarget, + Distribution.Simple.BuildToolDepends, + Distribution.Simple.CCompiler, Distribution.Simple.Command, + Distribution.Simple.Compiler, Distribution.Simple.Configure, + Distribution.Simple.Flag, Distribution.Simple.GHC, + Distribution.Simple.GHCJS, Distribution.Simple.Glob, + Distribution.Simple.Haddock, Distribution.Simple.HaskellSuite, + Distribution.Simple.Hpc, Distribution.Simple.Install, + Distribution.Simple.InstallDirs, + Distribution.Simple.InstallDirs.Internal, + Distribution.Simple.LocalBuildInfo, + Distribution.Simple.PackageDescription, + Distribution.Simple.PackageIndex, Distribution.Simple.PreProcess, + Distribution.Simple.PreProcess.Unlit, Distribution.Simple.Program, + Distribution.Simple.Program.Ar, + Distribution.Simple.Program.Builtin, + Distribution.Simple.Program.Db, Distribution.Simple.Program.Find, + Distribution.Simple.Program.GHC, Distribution.Simple.Program.HcPkg, + Distribution.Simple.Program.Hpc, + Distribution.Simple.Program.Internal, + Distribution.Simple.Program.Ld, + Distribution.Simple.Program.ResponseFile, + Distribution.Simple.Program.Run, + Distribution.Simple.Program.Script, + Distribution.Simple.Program.Strip, + Distribution.Simple.Program.Types, Distribution.Simple.Register, + Distribution.Simple.Setup, Distribution.Simple.ShowBuildInfo, + Distribution.Simple.SrcDist, Distribution.Simple.Test, + Distribution.Simple.Test.ExeV10, Distribution.Simple.Test.LibV09, + Distribution.Simple.Test.Log, Distribution.Simple.UHC, + Distribution.Simple.UserHooks, Distribution.Simple.Utils, + Distribution.System from Cabal-syntax-3.8.1.0:Distribution.System, + Distribution.TestSuite, + Distribution.Text from Cabal-syntax-3.8.1.0:Distribution.Text, + Distribution.Types.AbiDependency from Cabal-syntax-3.8.1.0:Distribution.Types.AbiDependency, + Distribution.Types.AbiHash from Cabal-syntax-3.8.1.0:Distribution.Types.AbiHash, + Distribution.Types.AnnotatedId, + Distribution.Types.Benchmark from Cabal-syntax-3.8.1.0:Distribution.Types.Benchmark, + Distribution.Types.Benchmark.Lens from Cabal-syntax-3.8.1.0:Distribution.Types.Benchmark.Lens, + Distribution.Types.BenchmarkInterface from Cabal-syntax-3.8.1.0:Distribution.Types.BenchmarkInterface, + Distribution.Types.BenchmarkType from Cabal-syntax-3.8.1.0:Distribution.Types.BenchmarkType, + Distribution.Types.BuildInfo from Cabal-syntax-3.8.1.0:Distribution.Types.BuildInfo, + Distribution.Types.BuildInfo.Lens from Cabal-syntax-3.8.1.0:Distribution.Types.BuildInfo.Lens, + Distribution.Types.BuildType from Cabal-syntax-3.8.1.0:Distribution.Types.BuildType, + Distribution.Types.Component from Cabal-syntax-3.8.1.0:Distribution.Types.Component, + Distribution.Types.ComponentId from Cabal-syntax-3.8.1.0:Distribution.Types.ComponentId, + Distribution.Types.ComponentInclude, + Distribution.Types.ComponentLocalBuildInfo, + Distribution.Types.ComponentName from Cabal-syntax-3.8.1.0:Distribution.Types.ComponentName, + Distribution.Types.ComponentRequestedSpec from Cabal-syntax-3.8.1.0:Distribution.Types.ComponentRequestedSpec, + Distribution.Types.CondTree from Cabal-syntax-3.8.1.0:Distribution.Types.CondTree, + Distribution.Types.Condition from Cabal-syntax-3.8.1.0:Distribution.Types.Condition, + Distribution.Types.ConfVar from Cabal-syntax-3.8.1.0:Distribution.Types.ConfVar, + Distribution.Types.Dependency from Cabal-syntax-3.8.1.0:Distribution.Types.Dependency, + Distribution.Types.DependencyMap from Cabal-syntax-3.8.1.0:Distribution.Types.DependencyMap, + Distribution.Types.DumpBuildInfo, + Distribution.Types.ExeDependency from Cabal-syntax-3.8.1.0:Distribution.Types.ExeDependency, + Distribution.Types.Executable from Cabal-syntax-3.8.1.0:Distribution.Types.Executable, + Distribution.Types.Executable.Lens from Cabal-syntax-3.8.1.0:Distribution.Types.Executable.Lens, + Distribution.Types.ExecutableScope from Cabal-syntax-3.8.1.0:Distribution.Types.ExecutableScope, + Distribution.Types.ExposedModule from Cabal-syntax-3.8.1.0:Distribution.Types.ExposedModule, + Distribution.Types.Flag from Cabal-syntax-3.8.1.0:Distribution.Types.Flag, + Distribution.Types.ForeignLib from Cabal-syntax-3.8.1.0:Distribution.Types.ForeignLib, + Distribution.Types.ForeignLib.Lens from Cabal-syntax-3.8.1.0:Distribution.Types.ForeignLib.Lens, + Distribution.Types.ForeignLibOption from Cabal-syntax-3.8.1.0:Distribution.Types.ForeignLibOption, + Distribution.Types.ForeignLibType from Cabal-syntax-3.8.1.0:Distribution.Types.ForeignLibType, + Distribution.Types.GenericPackageDescription from Cabal-syntax-3.8.1.0:Distribution.Types.GenericPackageDescription, + Distribution.Types.GenericPackageDescription.Lens from Cabal-syntax-3.8.1.0:Distribution.Types.GenericPackageDescription.Lens, + Distribution.Types.GivenComponent, + Distribution.Types.HookedBuildInfo from Cabal-syntax-3.8.1.0:Distribution.Types.HookedBuildInfo, + Distribution.Types.IncludeRenaming from Cabal-syntax-3.8.1.0:Distribution.Types.IncludeRenaming, + Distribution.Types.InstalledPackageInfo from Cabal-syntax-3.8.1.0:Distribution.Types.InstalledPackageInfo, + Distribution.Types.InstalledPackageInfo.FieldGrammar from Cabal-syntax-3.8.1.0:Distribution.Types.InstalledPackageInfo.FieldGrammar, + Distribution.Types.InstalledPackageInfo.Lens from Cabal-syntax-3.8.1.0:Distribution.Types.InstalledPackageInfo.Lens, + Distribution.Types.LegacyExeDependency from Cabal-syntax-3.8.1.0:Distribution.Types.LegacyExeDependency, + Distribution.Types.Lens from Cabal-syntax-3.8.1.0:Distribution.Types.Lens, + Distribution.Types.Library from Cabal-syntax-3.8.1.0:Distribution.Types.Library, + Distribution.Types.Library.Lens from Cabal-syntax-3.8.1.0:Distribution.Types.Library.Lens, + Distribution.Types.LibraryName from Cabal-syntax-3.8.1.0:Distribution.Types.LibraryName, + Distribution.Types.LibraryVisibility from Cabal-syntax-3.8.1.0:Distribution.Types.LibraryVisibility, + Distribution.Types.LocalBuildInfo, + Distribution.Types.Mixin from Cabal-syntax-3.8.1.0:Distribution.Types.Mixin, + Distribution.Types.Module from Cabal-syntax-3.8.1.0:Distribution.Types.Module, + Distribution.Types.ModuleReexport from Cabal-syntax-3.8.1.0:Distribution.Types.ModuleReexport, + Distribution.Types.ModuleRenaming from Cabal-syntax-3.8.1.0:Distribution.Types.ModuleRenaming, + Distribution.Types.MungedPackageId from Cabal-syntax-3.8.1.0:Distribution.Types.MungedPackageId, + Distribution.Types.MungedPackageName from Cabal-syntax-3.8.1.0:Distribution.Types.MungedPackageName, + Distribution.Types.PackageDescription from Cabal-syntax-3.8.1.0:Distribution.Types.PackageDescription, + Distribution.Types.PackageDescription.Lens from Cabal-syntax-3.8.1.0:Distribution.Types.PackageDescription.Lens, + Distribution.Types.PackageId from Cabal-syntax-3.8.1.0:Distribution.Types.PackageId, + Distribution.Types.PackageId.Lens from Cabal-syntax-3.8.1.0:Distribution.Types.PackageId.Lens, + Distribution.Types.PackageName from Cabal-syntax-3.8.1.0:Distribution.Types.PackageName, + Distribution.Types.PackageName.Magic, + Distribution.Types.PackageVersionConstraint from Cabal-syntax-3.8.1.0:Distribution.Types.PackageVersionConstraint, + Distribution.Types.PkgconfigDependency from Cabal-syntax-3.8.1.0:Distribution.Types.PkgconfigDependency, + Distribution.Types.PkgconfigName from Cabal-syntax-3.8.1.0:Distribution.Types.PkgconfigName, + Distribution.Types.PkgconfigVersion from Cabal-syntax-3.8.1.0:Distribution.Types.PkgconfigVersion, + Distribution.Types.PkgconfigVersionRange from Cabal-syntax-3.8.1.0:Distribution.Types.PkgconfigVersionRange, + Distribution.Types.SetupBuildInfo from Cabal-syntax-3.8.1.0:Distribution.Types.SetupBuildInfo, + Distribution.Types.SetupBuildInfo.Lens from Cabal-syntax-3.8.1.0:Distribution.Types.SetupBuildInfo.Lens, + Distribution.Types.SourceRepo from Cabal-syntax-3.8.1.0:Distribution.Types.SourceRepo, + Distribution.Types.SourceRepo.Lens from Cabal-syntax-3.8.1.0:Distribution.Types.SourceRepo.Lens, + Distribution.Types.TargetInfo, + Distribution.Types.TestSuite from Cabal-syntax-3.8.1.0:Distribution.Types.TestSuite, + Distribution.Types.TestSuite.Lens from Cabal-syntax-3.8.1.0:Distribution.Types.TestSuite.Lens, + Distribution.Types.TestSuiteInterface from Cabal-syntax-3.8.1.0:Distribution.Types.TestSuiteInterface, + Distribution.Types.TestType from Cabal-syntax-3.8.1.0:Distribution.Types.TestType, + Distribution.Types.UnitId from Cabal-syntax-3.8.1.0:Distribution.Types.UnitId, + Distribution.Types.UnqualComponentName from Cabal-syntax-3.8.1.0:Distribution.Types.UnqualComponentName, + Distribution.Types.Version from Cabal-syntax-3.8.1.0:Distribution.Types.Version, + Distribution.Types.VersionInterval from Cabal-syntax-3.8.1.0:Distribution.Types.VersionInterval, + Distribution.Types.VersionInterval.Legacy from Cabal-syntax-3.8.1.0:Distribution.Types.VersionInterval.Legacy, + Distribution.Types.VersionRange from Cabal-syntax-3.8.1.0:Distribution.Types.VersionRange, + Distribution.Types.VersionRange.Internal from Cabal-syntax-3.8.1.0:Distribution.Types.VersionRange.Internal, + Distribution.Utils.Base62 from Cabal-syntax-3.8.1.0:Distribution.Utils.Base62, + Distribution.Utils.Generic from Cabal-syntax-3.8.1.0:Distribution.Utils.Generic, + Distribution.Utils.IOData, Distribution.Utils.Json, + Distribution.Utils.LogProgress, + Distribution.Utils.MD5 from Cabal-syntax-3.8.1.0:Distribution.Utils.MD5, + Distribution.Utils.MapAccum, Distribution.Utils.NubList, + Distribution.Utils.Path from Cabal-syntax-3.8.1.0:Distribution.Utils.Path, + Distribution.Utils.Progress, + Distribution.Utils.ShortText from Cabal-syntax-3.8.1.0:Distribution.Utils.ShortText, + Distribution.Utils.String from Cabal-syntax-3.8.1.0:Distribution.Utils.String, + Distribution.Utils.Structured from Cabal-syntax-3.8.1.0:Distribution.Utils.Structured, + Distribution.Verbosity, Distribution.Verbosity.Internal, + Distribution.Version from Cabal-syntax-3.8.1.0:Distribution.Version, + Language.Haskell.Extension from Cabal-syntax-3.8.1.0:Language.Haskell.Extension +hidden-modules: + Distribution.Backpack.PreExistingComponent + Distribution.Backpack.ReadyComponent Distribution.Backpack.MixLink + Distribution.Backpack.ModuleScope Distribution.Backpack.UnifyM + Distribution.Backpack.Id Distribution.Utils.UnionFind + Distribution.Compat.Async Distribution.Compat.CopyFile + Distribution.Compat.GetShortPathName Distribution.Compat.SnocList + Distribution.GetOpt Distribution.Lex + Distribution.Simple.Build.Macros.Z + Distribution.Simple.Build.PathsModule.Z + Distribution.Simple.GHC.EnvironmentParser + Distribution.Simple.GHC.Internal Distribution.Simple.GHC.ImplInfo + Distribution.ZinzaPrelude Paths_Cabal +import-dirs: ${pkgroot}/../lib/aarch64-osx-ghc-9.4.2/Cabal-3.8.1.0 +library-dirs: ${pkgroot}/../lib/aarch64-osx-ghc-9.4.2/Cabal-3.8.1.0 +dynamic-library-dirs: ${pkgroot}/../lib/aarch64-osx-ghc-9.4.2 +data-dir: ${pkgroot}/../share/aarch64-osx-ghc-9.4.2/Cabal-3.8.1.0 +hs-libraries: HSCabal-3.8.1.0 +depends: + Cabal-syntax-3.8.1.0 array-0.5.4.0 base-4.17.0.0 + bytestring-0.11.3.1 containers-0.6.6 deepseq-1.4.8.0 + directory-1.3.7.1 filepath-1.4.2.2 mtl-2.2.2 parsec-3.1.15.0 + pretty-1.1.3.6 process-1.6.15.0 text-2.0.1 time-1.12.2 + transformers-0.5.6.2 unix-2.7.3 +haddock-interfaces: + ${pkgroot}/../../../share/doc/ghc-9.4.2/html/libraries/Cabal-3.8.1.0/Cabal.haddock +haddock-html: + ${pkgroot}/../../../share/doc/ghc-9.4.2/html/libraries/Cabal-3.8.1.0 +--- +name: Cabal-syntax +version: 3.8.1.0 +visibility: public +id: Cabal-syntax-3.8.1.0 +key: Cabal-syntax-3.8.1.0 +license: BSD-3-Clause +copyright: 2003-2022, Cabal Development Team (see AUTHORS file) +maintainer: cabal-devel@haskell.org +author: Cabal Development Team +homepage: http://www.haskell.org/cabal/ +synopsis: A library for working with .cabal files +description: + This library provides tools for reading and manipulating the .cabal file + format. +category: Distribution +exposed: True +exposed-modules: + Distribution.Backpack Distribution.CabalSpecVersion + Distribution.Compat.Binary Distribution.Compat.CharParsing + Distribution.Compat.DList Distribution.Compat.Exception + Distribution.Compat.Graph Distribution.Compat.Lens + Distribution.Compat.MonadFail Distribution.Compat.Newtype + Distribution.Compat.NonEmptySet Distribution.Compat.Parsing + Distribution.Compat.Prelude Distribution.Compat.Semigroup + Distribution.Compat.Typeable Distribution.Compiler + Distribution.FieldGrammar Distribution.FieldGrammar.Class + Distribution.FieldGrammar.FieldDescrs + Distribution.FieldGrammar.Newtypes Distribution.FieldGrammar.Parsec + Distribution.FieldGrammar.Pretty Distribution.Fields + Distribution.Fields.ConfVar Distribution.Fields.Field + Distribution.Fields.Lexer Distribution.Fields.LexerMonad + Distribution.Fields.ParseResult Distribution.Fields.Parser + Distribution.Fields.Pretty Distribution.InstalledPackageInfo + Distribution.License Distribution.ModuleName Distribution.Package + Distribution.PackageDescription + Distribution.PackageDescription.Configuration + Distribution.PackageDescription.FieldGrammar + Distribution.PackageDescription.Parsec + Distribution.PackageDescription.PrettyPrint + Distribution.PackageDescription.Quirks + Distribution.PackageDescription.Utils Distribution.Parsec + Distribution.Parsec.Error Distribution.Parsec.FieldLineStream + Distribution.Parsec.Position Distribution.Parsec.Warning + Distribution.Pretty Distribution.SPDX Distribution.SPDX.License + Distribution.SPDX.LicenseExceptionId + Distribution.SPDX.LicenseExpression Distribution.SPDX.LicenseId + Distribution.SPDX.LicenseListVersion + Distribution.SPDX.LicenseReference Distribution.System + Distribution.Text Distribution.Types.AbiDependency + Distribution.Types.AbiHash Distribution.Types.Benchmark + Distribution.Types.Benchmark.Lens + Distribution.Types.BenchmarkInterface + Distribution.Types.BenchmarkType Distribution.Types.BuildInfo + Distribution.Types.BuildInfo.Lens Distribution.Types.BuildType + Distribution.Types.Component Distribution.Types.ComponentId + Distribution.Types.ComponentName + Distribution.Types.ComponentRequestedSpec + Distribution.Types.CondTree Distribution.Types.Condition + Distribution.Types.ConfVar Distribution.Types.Dependency + Distribution.Types.DependencyMap Distribution.Types.ExeDependency + Distribution.Types.Executable Distribution.Types.Executable.Lens + Distribution.Types.ExecutableScope Distribution.Types.ExposedModule + Distribution.Types.Flag Distribution.Types.ForeignLib + Distribution.Types.ForeignLib.Lens + Distribution.Types.ForeignLibOption + Distribution.Types.ForeignLibType + Distribution.Types.GenericPackageDescription + Distribution.Types.GenericPackageDescription.Lens + Distribution.Types.HookedBuildInfo + Distribution.Types.IncludeRenaming + Distribution.Types.InstalledPackageInfo + Distribution.Types.InstalledPackageInfo.FieldGrammar + Distribution.Types.InstalledPackageInfo.Lens + Distribution.Types.LegacyExeDependency Distribution.Types.Lens + Distribution.Types.Library Distribution.Types.Library.Lens + Distribution.Types.LibraryName Distribution.Types.LibraryVisibility + Distribution.Types.Mixin Distribution.Types.Module + Distribution.Types.ModuleReexport Distribution.Types.ModuleRenaming + Distribution.Types.MungedPackageId + Distribution.Types.MungedPackageName + Distribution.Types.PackageDescription + Distribution.Types.PackageDescription.Lens + Distribution.Types.PackageId Distribution.Types.PackageId.Lens + Distribution.Types.PackageName + Distribution.Types.PackageVersionConstraint + Distribution.Types.PkgconfigDependency + Distribution.Types.PkgconfigName + Distribution.Types.PkgconfigVersion + Distribution.Types.PkgconfigVersionRange + Distribution.Types.SetupBuildInfo + Distribution.Types.SetupBuildInfo.Lens + Distribution.Types.SourceRepo Distribution.Types.SourceRepo.Lens + Distribution.Types.TestSuite Distribution.Types.TestSuite.Lens + Distribution.Types.TestSuiteInterface Distribution.Types.TestType + Distribution.Types.UnitId Distribution.Types.UnqualComponentName + Distribution.Types.Version Distribution.Types.VersionInterval + Distribution.Types.VersionInterval.Legacy + Distribution.Types.VersionRange + Distribution.Types.VersionRange.Internal Distribution.Utils.Base62 + Distribution.Utils.Generic Distribution.Utils.MD5 + Distribution.Utils.Path Distribution.Utils.ShortText + Distribution.Utils.String Distribution.Utils.Structured + Distribution.Version Language.Haskell.Extension +import-dirs: + ${pkgroot}/../lib/aarch64-osx-ghc-9.4.2/Cabal-syntax-3.8.1.0 +library-dirs: + ${pkgroot}/../lib/aarch64-osx-ghc-9.4.2/Cabal-syntax-3.8.1.0 +dynamic-library-dirs: ${pkgroot}/../lib/aarch64-osx-ghc-9.4.2 +data-dir: + ${pkgroot}/../share/aarch64-osx-ghc-9.4.2/Cabal-syntax-3.8.1.0 +hs-libraries: HSCabal-syntax-3.8.1.0 +depends: + array-0.5.4.0 base-4.17.0.0 binary-0.8.9.1 bytestring-0.11.3.1 + containers-0.6.6 deepseq-1.4.8.0 directory-1.3.7.1 filepath-1.4.2.2 + mtl-2.2.2 parsec-3.1.15.0 pretty-1.1.3.6 text-2.0.1 time-1.12.2 + transformers-0.5.6.2 unix-2.7.3 +haddock-interfaces: + ${pkgroot}/../../../share/doc/ghc-9.4.2/html/libraries/Cabal-syntax-3.8.1.0/Cabal-syntax.haddock +haddock-html: + ${pkgroot}/../../../share/doc/ghc-9.4.2/html/libraries/Cabal-syntax-3.8.1.0 +--- +name: array +version: 0.5.4.0 +visibility: public +id: array-0.5.4.0 +key: array-0.5.4.0 +license: BSD-3-Clause +maintainer: libraries@haskell.org +synopsis: Mutable and immutable arrays +description: + In addition to providing the "Data.Array" module + , + this package also defines the classes 'IArray' of + immutable arrays and 'MArray' of arrays mutable within appropriate + monads, as well as some instances of these classes. +category: Data Structures +exposed: True +exposed-modules: + Data.Array Data.Array.Base Data.Array.IArray Data.Array.IO + Data.Array.IO.Internals Data.Array.IO.Safe Data.Array.MArray + Data.Array.MArray.Safe Data.Array.ST Data.Array.ST.Safe + Data.Array.Storable Data.Array.Storable.Internals + Data.Array.Storable.Safe Data.Array.Unboxed Data.Array.Unsafe +import-dirs: ${pkgroot}/../lib/aarch64-osx-ghc-9.4.2/array-0.5.4.0 +library-dirs: ${pkgroot}/../lib/aarch64-osx-ghc-9.4.2/array-0.5.4.0 +dynamic-library-dirs: ${pkgroot}/../lib/aarch64-osx-ghc-9.4.2 +data-dir: ${pkgroot}/../share/aarch64-osx-ghc-9.4.2/array-0.5.4.0 +hs-libraries: HSarray-0.5.4.0 +depends: base-4.17.0.0 +haddock-interfaces: + ${pkgroot}/../../../share/doc/ghc-9.4.2/html/libraries/array-0.5.4.0/array.haddock +haddock-html: + ${pkgroot}/../../../share/doc/ghc-9.4.2/html/libraries/array-0.5.4.0 +--- +name: base +version: 4.17.0.0 +visibility: public +id: base-4.17.0.0 +key: base-4.17.0.0 +license: BSD-3-Clause +maintainer: libraries@haskell.org +synopsis: Basic libraries +description: + This package contains the Standard Haskell "Prelude" and its support libraries, + and a large collection of useful libraries ranging from data + structures to parsing combinators and debugging utilities. +category: Prelude +exposed: True +exposed-modules: + Control.Applicative, Control.Arrow, Control.Category, + Control.Concurrent, Control.Concurrent.Chan, + Control.Concurrent.MVar, Control.Concurrent.QSem, + Control.Concurrent.QSemN, Control.Exception, + Control.Exception.Base, Control.Monad, Control.Monad.Fail, + Control.Monad.Fix, Control.Monad.IO.Class, Control.Monad.Instances, + Control.Monad.ST, Control.Monad.ST.Lazy, + Control.Monad.ST.Lazy.Safe, Control.Monad.ST.Lazy.Unsafe, + Control.Monad.ST.Safe, Control.Monad.ST.Strict, + Control.Monad.ST.Unsafe, Control.Monad.Zip, Data.Array.Byte, + Data.Bifoldable, Data.Bifunctor, Data.Bitraversable, Data.Bits, + Data.Bool, Data.Char, Data.Coerce, Data.Complex, Data.Data, + Data.Dynamic, Data.Either, Data.Eq, Data.Fixed, Data.Foldable, + Data.Function, Data.Functor, Data.Functor.Classes, + Data.Functor.Compose, Data.Functor.Const, + Data.Functor.Contravariant, Data.Functor.Identity, + Data.Functor.Product, Data.Functor.Sum, Data.IORef, Data.Int, + Data.Ix, Data.Kind, Data.List, Data.List.NonEmpty, Data.Maybe, + Data.Monoid, Data.Ord, Data.Proxy, Data.Ratio, Data.STRef, + Data.STRef.Lazy, Data.STRef.Strict, Data.Semigroup, Data.String, + Data.Traversable, Data.Tuple, Data.Type.Bool, Data.Type.Coercion, + Data.Type.Equality, Data.Type.Ord, Data.Typeable, Data.Unique, + Data.Version, Data.Void, Data.Word, Debug.Trace, Foreign, + Foreign.C, Foreign.C.Error, Foreign.C.String, Foreign.C.Types, + Foreign.Concurrent, Foreign.ForeignPtr, Foreign.ForeignPtr.Safe, + Foreign.ForeignPtr.Unsafe, Foreign.Marshal, Foreign.Marshal.Alloc, + Foreign.Marshal.Array, Foreign.Marshal.Error, Foreign.Marshal.Pool, + Foreign.Marshal.Safe, Foreign.Marshal.Unsafe, + Foreign.Marshal.Utils, Foreign.Ptr, Foreign.Safe, + Foreign.StablePtr, Foreign.Storable, GHC.Arr, GHC.ArrayArray, + GHC.Base, GHC.Bits, GHC.ByteOrder, GHC.Char, GHC.Clock, GHC.Conc, + GHC.Conc.IO, GHC.Conc.Signal, GHC.Conc.Sync, GHC.ConsoleHandler, + GHC.Constants, GHC.Desugar, GHC.Enum, GHC.Environment, GHC.Err, + GHC.Event, GHC.Event.TimeOut, GHC.Exception, GHC.Exception.Type, + GHC.ExecutionStack, GHC.ExecutionStack.Internal, GHC.Exts, + GHC.Fingerprint, GHC.Fingerprint.Type, GHC.Float, + GHC.Float.ConversionUtils, GHC.Float.RealFracMethods, GHC.Foreign, + GHC.ForeignPtr, GHC.GHCi, GHC.GHCi.Helpers, GHC.Generics, GHC.IO, + GHC.IO.Buffer, GHC.IO.BufferedIO, GHC.IO.Device, GHC.IO.Encoding, + GHC.IO.Encoding.CodePage, GHC.IO.Encoding.Failure, + GHC.IO.Encoding.Iconv, GHC.IO.Encoding.Latin1, + GHC.IO.Encoding.Types, GHC.IO.Encoding.UTF16, + GHC.IO.Encoding.UTF32, GHC.IO.Encoding.UTF8, GHC.IO.Exception, + GHC.IO.FD, GHC.IO.Handle, GHC.IO.Handle.FD, + GHC.IO.Handle.Internals, GHC.IO.Handle.Lock, GHC.IO.Handle.Text, + GHC.IO.Handle.Types, GHC.IO.IOMode, GHC.IO.StdHandles, + GHC.IO.SubSystem, GHC.IO.Unsafe, GHC.IOArray, GHC.IOPort, + GHC.IORef, GHC.Int, GHC.Integer, GHC.Integer.Logarithms, + GHC.IsList, GHC.Ix, GHC.List, GHC.MVar, GHC.Maybe, GHC.Natural, + GHC.Num, GHC.Num.BigNat from ghc-bignum-1.3:GHC.Num.BigNat, + GHC.Num.Integer from ghc-bignum-1.3:GHC.Num.Integer, + GHC.Num.Natural from ghc-bignum-1.3:GHC.Num.Natural, GHC.OldList, + GHC.OverloadedLabels, GHC.Pack, GHC.Profiling, GHC.Ptr, + GHC.RTS.Flags, GHC.Read, GHC.Real, GHC.Records, GHC.ResponseFile, + GHC.ST, GHC.STRef, GHC.Show, GHC.Stable, GHC.StableName, GHC.Stack, + GHC.Stack.CCS, GHC.Stack.CloneStack, GHC.Stack.Types, + GHC.StaticPtr, GHC.Stats, GHC.Storable, GHC.TopHandler, + GHC.TypeError, GHC.TypeLits, GHC.TypeLits.Internal, GHC.TypeNats, + GHC.TypeNats.Internal, GHC.Unicode, GHC.Weak, GHC.Word, Numeric, + Numeric.Natural, Prelude, System.CPUTime, System.Console.GetOpt, + System.Environment, System.Environment.Blank, System.Exit, + System.IO, System.IO.Error, System.IO.Unsafe, System.Info, + System.Mem, System.Mem.StableName, System.Mem.Weak, + System.Posix.Internals, System.Posix.Types, System.Timeout, + Text.ParserCombinators.ReadP, Text.ParserCombinators.ReadPrec, + Text.Printf, Text.Read, Text.Read.Lex, Text.Show, + Text.Show.Functions, Type.Reflection, Type.Reflection.Unsafe, + Unsafe.Coerce +hidden-modules: + Control.Monad.ST.Imp Control.Monad.ST.Lazy.Imp Data.Functor.Utils + Data.OldList Data.Semigroup.Internal Data.Typeable.Internal + Foreign.ForeignPtr.Imp GHC.IO.Handle.Lock.Common + GHC.IO.Handle.Lock.Flock GHC.IO.Handle.Lock.LinuxOFD + GHC.IO.Handle.Lock.NoOp GHC.IO.Handle.Lock.Windows + GHC.StaticPtr.Internal GHC.Event.Arr GHC.Event.Array + GHC.Event.Internal GHC.Event.Internal.Types GHC.Event.IntTable + GHC.Event.IntVar GHC.Event.PSQ GHC.Event.Unique + System.Environment.ExecutablePath System.CPUTime.Utils + GHC.Event.Control GHC.Event.EPoll GHC.Event.KQueue + GHC.Event.Manager GHC.Event.Poll GHC.Event.Thread + GHC.Event.TimerManager System.CPUTime.Posix.ClockGetTime + System.CPUTime.Posix.Times System.CPUTime.Posix.RUsage + System.CPUTime.Unsupported +import-dirs: ${pkgroot}/../lib/aarch64-osx-ghc-9.4.2/base-4.17.0.0 +library-dirs: + ${pkgroot}/../lib/aarch64-osx-ghc-9.4.2/base-4.17.0.0 +dynamic-library-dirs: + ${pkgroot}/../lib/aarch64-osx-ghc-9.4.2 +data-dir: ${pkgroot}/../share/aarch64-osx-ghc-9.4.2/base-4.17.0.0 +hs-libraries: HSbase-4.17.0.0 +extra-libraries: iconv +include-dirs: + ${pkgroot}/../lib/aarch64-osx-ghc-9.4.2/base-4.17.0.0/include +includes: HsBase.h +depends: ghc-bignum-1.3 ghc-prim-0.9.0 rts-1.0.2 +haddock-interfaces: + ${pkgroot}/../../../share/doc/ghc-9.4.2/html/libraries/base-4.17.0.0/base.haddock +haddock-html: + ${pkgroot}/../../../share/doc/ghc-9.4.2/html/libraries/base-4.17.0.0 +--- +name: binary +version: 0.8.9.1 +visibility: public +id: binary-0.8.9.1 +key: binary-0.8.9.1 +license: BSD-3-Clause +maintainer: Lennart Kolmodin, Don Stewart +author: Lennart Kolmodin +stability: provisional +homepage: https://github.com/kolmodin/binary +synopsis: + Binary serialisation for Haskell values using lazy ByteStrings +description: + Efficient, pure binary serialisation using lazy ByteStrings. + Haskell values may be encoded to and from binary formats, + written to disk as binary, or sent over the network. + The format used can be automatically generated, or + you can choose to implement a custom format if needed. + Serialisation speeds of over 1 G\/sec have been observed, + so this library should be suitable for high performance + scenarios. +category: Data, Parsing +exposed: True +exposed-modules: + Data.Binary Data.Binary.Builder Data.Binary.Get + Data.Binary.Get.Internal Data.Binary.Put +hidden-modules: + Data.Binary.Class Data.Binary.Internal Data.Binary.Generic + Data.Binary.FloatCast +import-dirs: ${pkgroot}/../lib/aarch64-osx-ghc-9.4.2/binary-0.8.9.1 +library-dirs: ${pkgroot}/../lib/aarch64-osx-ghc-9.4.2/binary-0.8.9.1 +dynamic-library-dirs: ${pkgroot}/../lib/aarch64-osx-ghc-9.4.2 +data-dir: ${pkgroot}/../share/aarch64-osx-ghc-9.4.2/binary-0.8.9.1 +hs-libraries: HSbinary-0.8.9.1 +depends: + array-0.5.4.0 base-4.17.0.0 bytestring-0.11.3.1 containers-0.6.6 +haddock-interfaces: + ${pkgroot}/../../../share/doc/ghc-9.4.2/html/libraries/binary-0.8.9.1/binary.haddock +haddock-html: + ${pkgroot}/../../../share/doc/ghc-9.4.2/html/libraries/binary-0.8.9.1 +--- +name: bytestring +version: 0.11.3.1 +visibility: public +id: bytestring-0.11.3.1 +key: bytestring-0.11.3.1 +license: BSD-3-Clause +copyright: + Copyright (c) Don Stewart 2005-2009, + (c) Duncan Coutts 2006-2015, + (c) David Roundy 2003-2005, + (c) Jasper Van der Jeugt 2010, + (c) Simon Meier 2010-2013. +maintainer: + Haskell Bytestring Team , Core Libraries Committee +author: + Don Stewart, + Duncan Coutts +homepage: https://github.com/haskell/bytestring +synopsis: + Fast, compact, strict and lazy byte strings with a list interface +description: + An efficient compact, immutable byte string type (both strict and lazy) + suitable for binary or 8-bit character data. + The 'ByteString' type represents sequences of bytes or 8-bit characters. + It is suitable for high performance use, both in terms of large data + quantities, or high speed requirements. The 'ByteString' functions follow + the same style as Haskell\'s ordinary lists, so it is easy to convert code + from using 'String' to 'ByteString'. + Two 'ByteString' variants are provided: + * Strict 'ByteString's keep the string as a single large array. This + makes them convenient for passing data between C and Haskell. + * Lazy 'ByteString's use a lazy list of strict chunks which makes it + suitable for I\/O streaming tasks. + The @Char8@ modules provide a character-based view of the same + underlying 'ByteString' types. This makes it convenient to handle mixed + binary and 8-bit character content (which is common in many file formats + and network protocols). + The 'Builder' module provides an efficient way to build up 'ByteString's + in an ad-hoc way by repeated concatenation. This is ideal for fast + serialisation or pretty printing. + There is also a 'ShortByteString' type which has a lower memory overhead + and can be converted to or from a 'ByteString'. It is suitable for keeping + many short strings in memory. + 'ByteString's are not designed for Unicode. For Unicode strings you should + use the 'Text' type from the @text@ package. + These modules are intended to be imported qualified, to avoid name clashes + with "Prelude" functions, e.g. + > import qualified Data.ByteString as BS +category: Data +exposed: True +exposed-modules: + Data.ByteString Data.ByteString.Builder + Data.ByteString.Builder.Extra Data.ByteString.Builder.Internal + Data.ByteString.Builder.Prim Data.ByteString.Builder.Prim.Internal + Data.ByteString.Builder.RealFloat Data.ByteString.Char8 + Data.ByteString.Internal Data.ByteString.Lazy + Data.ByteString.Lazy.Char8 Data.ByteString.Lazy.Internal + Data.ByteString.Short Data.ByteString.Short.Internal + Data.ByteString.Unsafe +hidden-modules: + Data.ByteString.Builder.ASCII Data.ByteString.Builder.Prim.ASCII + Data.ByteString.Builder.Prim.Binary + Data.ByteString.Builder.Prim.Internal.Base16 + Data.ByteString.Builder.Prim.Internal.Floating + Data.ByteString.Builder.RealFloat.F2S + Data.ByteString.Builder.RealFloat.D2S + Data.ByteString.Builder.RealFloat.Internal + Data.ByteString.Builder.RealFloat.TableGenerator + Data.ByteString.Lazy.Internal.Deque +import-dirs: ${pkgroot}/../lib/aarch64-osx-ghc-9.4.2/bytestring-0.11.3.1 +library-dirs: ${pkgroot}/../lib/aarch64-osx-ghc-9.4.2/bytestring-0.11.3.1 +dynamic-library-dirs: ${pkgroot}/../lib/aarch64-osx-ghc-9.4.2 +data-dir: + ${pkgroot}/../share/aarch64-osx-ghc-9.4.2/bytestring-0.11.3.1 +hs-libraries: HSbytestring-0.11.3.1 +include-dirs: + ${pkgroot}/../lib/aarch64-osx-ghc-9.4.2/bytestring-0.11.3.1/include +includes: fpstring.h +depends: + base-4.17.0.0 deepseq-1.4.8.0 ghc-prim-0.9.0 + template-haskell-2.19.0.0 +haddock-interfaces: + ${pkgroot}/../../../share/doc/ghc-9.4.2/html/libraries/bytestring-0.11.3.1/bytestring.haddock +haddock-html: + ${pkgroot}/../../../share/doc/ghc-9.4.2/html/libraries/bytestring-0.11.3.1 +--- +name: containers +version: 0.6.6 +visibility: public +id: containers-0.6.6 +key: containers-0.6.6 +license: BSD-3-Clause +maintainer: libraries@haskell.org +synopsis: Assorted concrete container types +description: + This package contains efficient general-purpose implementations + of various immutable container types including sets, maps, sequences, + trees, and graphs. + For a walkthrough of what this package provides with examples of common + operations see the [containers + introduction](https://haskell-containers.readthedocs.io). + The declared cost of each operation is either worst-case or amortized, but + remains valid even if structures are shared. +category: Data Structures +exposed: True +exposed-modules: + Data.Containers.ListUtils Data.Graph Data.IntMap + Data.IntMap.Internal Data.IntMap.Internal.Debug Data.IntMap.Lazy + Data.IntMap.Merge.Lazy Data.IntMap.Merge.Strict Data.IntMap.Strict + Data.IntMap.Strict.Internal Data.IntSet Data.IntSet.Internal + Data.Map Data.Map.Internal Data.Map.Internal.Debug Data.Map.Lazy + Data.Map.Merge.Lazy Data.Map.Merge.Strict Data.Map.Strict + Data.Map.Strict.Internal Data.Sequence Data.Sequence.Internal + Data.Sequence.Internal.Sorting Data.Set Data.Set.Internal Data.Tree + Utils.Containers.Internal.BitQueue + Utils.Containers.Internal.BitUtil + Utils.Containers.Internal.StrictPair +hidden-modules: + Utils.Containers.Internal.State + Utils.Containers.Internal.StrictMaybe + Utils.Containers.Internal.PtrEquality + Utils.Containers.Internal.Coercions + Utils.Containers.Internal.TypeError + Data.Map.Internal.DeprecatedShowTree + Data.IntMap.Internal.DeprecatedDebug +import-dirs: ${pkgroot}/../lib/aarch64-osx-ghc-9.4.2/containers-0.6.6 +library-dirs: ${pkgroot}/../lib/aarch64-osx-ghc-9.4.2/containers-0.6.6 +dynamic-library-dirs: ${pkgroot}/../lib/aarch64-osx-ghc-9.4.2 +data-dir: ${pkgroot}/../share/aarch64-osx-ghc-9.4.2/containers-0.6.6 +hs-libraries: HScontainers-0.6.6 +depends: + array-0.5.4.0 base-4.17.0.0 deepseq-1.4.8.0 + template-haskell-2.19.0.0 +haddock-interfaces: + ${pkgroot}/../../../share/doc/ghc-9.4.2/html/libraries/containers-0.6.6/containers.haddock +haddock-html: + ${pkgroot}/../../../share/doc/ghc-9.4.2/html/libraries/containers-0.6.6 +--- +name: deepseq +version: 1.4.8.0 +visibility: public +id: deepseq-1.4.8.0 +key: deepseq-1.4.8.0 +license: BSD-3-Clause +maintainer: libraries@haskell.org +synopsis: Deep evaluation of data structures +description: + This package provides methods for fully evaluating data structures + (\"deep evaluation\"). Deep evaluation is often used for adding + strictness to a program, e.g. in order to force pending exceptions, + remove space leaks, or force lazy I/O to happen. It is also useful + in parallel programs, to ensure pending work does not migrate to the + wrong thread. + The primary use of this package is via the 'deepseq' function, a + \"deep\" version of 'seq'. It is implemented on top of an 'NFData' + typeclass (\"Normal Form Data\", data structures with no unevaluated + components) which defines strategies for fully evaluating different + data types. See module documentation in "Control.DeepSeq" for more + details. +category: Control +exposed: True +exposed-modules: Control.DeepSeq +hidden-modules: Control.DeepSeq.BackDoor +import-dirs: ${pkgroot}/../lib/aarch64-osx-ghc-9.4.2/deepseq-1.4.8.0 +library-dirs: ${pkgroot}/../lib/aarch64-osx-ghc-9.4.2/deepseq-1.4.8.0 +dynamic-library-dirs: ${pkgroot}/../lib/aarch64-osx-ghc-9.4.2 +data-dir: ${pkgroot}/../share/aarch64-osx-ghc-9.4.2/deepseq-1.4.8.0 +hs-libraries: HSdeepseq-1.4.8.0 +depends: array-0.5.4.0 base-4.17.0.0 ghc-prim-0.9.0 +haddock-interfaces: + ${pkgroot}/../../../share/doc/ghc-9.4.2/html/libraries/deepseq-1.4.8.0/deepseq.haddock +haddock-html: + ${pkgroot}/../../../share/doc/ghc-9.4.2/html/libraries/deepseq-1.4.8.0 +--- +name: directory +version: 1.3.7.1 +visibility: public +id: directory-1.3.7.1 +key: directory-1.3.7.1 +license: BSD-3-Clause +maintainer: libraries@haskell.org +synopsis: Platform-agnostic library for filesystem operations +description: + This library provides a basic set of operations for manipulating files and + directories in a portable way. +category: System +exposed: True +exposed-modules: + System.Directory System.Directory.Internal + System.Directory.Internal.Prelude +hidden-modules: + System.Directory.Internal.C_utimensat + System.Directory.Internal.Common System.Directory.Internal.Config + System.Directory.Internal.Posix System.Directory.Internal.Windows +import-dirs: ${pkgroot}/../lib/aarch64-osx-ghc-9.4.2/directory-1.3.7.1 +library-dirs: ${pkgroot}/../lib/aarch64-osx-ghc-9.4.2/directory-1.3.7.1 +dynamic-library-dirs: ${pkgroot}/../lib/aarch64-osx-ghc-9.4.2 +data-dir: ${pkgroot}/../share/aarch64-osx-ghc-9.4.2/directory-1.3.7.1 +hs-libraries: HSdirectory-1.3.7.1 +depends: base-4.17.0.0 filepath-1.4.2.2 time-1.12.2 unix-2.7.3 +haddock-interfaces: + ${pkgroot}/../../../share/doc/ghc-9.4.2/html/libraries/directory-1.3.7.1/directory.haddock +haddock-html: + ${pkgroot}/../../../share/doc/ghc-9.4.2/html/libraries/directory-1.3.7.1 +--- +name: exceptions +version: 0.10.5 +visibility: public +id: exceptions-0.10.5 +key: exceptions-0.10.5 +license: BSD-3-Clause +copyright: + Copyright (C) 2013-2015 Edward A. Kmett + Copyright (C) 2012 Google Inc. +maintainer: Edward A. Kmett +author: Edward A. Kmett +stability: provisional +homepage: http://github.com/ekmett/exceptions/ +synopsis: Extensible optionally-pure exceptions +description: Extensible optionally-pure exceptions. +category: Control, Exceptions, Monad +exposed: True +exposed-modules: Control.Monad.Catch Control.Monad.Catch.Pure +import-dirs: ${pkgroot}/../lib/aarch64-osx-ghc-9.4.2/exceptions-0.10.5 +library-dirs: ${pkgroot}/../lib/aarch64-osx-ghc-9.4.2/exceptions-0.10.5 +dynamic-library-dirs: ${pkgroot}/../lib/aarch64-osx-ghc-9.4.2 +data-dir: ${pkgroot}/../share/aarch64-osx-ghc-9.4.2/exceptions-0.10.5 +hs-libraries: HSexceptions-0.10.5 +depends: + base-4.17.0.0 mtl-2.2.2 stm-2.5.1.0 template-haskell-2.19.0.0 + transformers-0.5.6.2 +haddock-interfaces: + ${pkgroot}/../../../share/doc/ghc-9.4.2/html/libraries/exceptions-0.10.5/exceptions.haddock +haddock-html: + ${pkgroot}/../../../share/doc/ghc-9.4.2/html/libraries/exceptions-0.10.5 +--- +name: filepath +version: 1.4.2.2 +visibility: public +id: filepath-1.4.2.2 +key: filepath-1.4.2.2 +license: BSD-3-Clause +copyright: Neil Mitchell 2005-2020 +maintainer: Julian Ospald +author: Neil Mitchell +homepage: https://github.com/haskell/filepath#readme +synopsis: Library for manipulating FilePaths in a cross platform way. +description: + This package provides functionality for manipulating @FilePath@ values, and is shipped with both and the . It provides three modules: + * "System.FilePath.Posix" manipulates POSIX\/Linux style @FilePath@ values (with @\/@ as the path separator). + * "System.FilePath.Windows" manipulates Windows style @FilePath@ values (with either @\\@ or @\/@ as the path separator, and deals with drives). + * "System.FilePath" is an alias for the module appropriate to your platform. + All three modules provide the same API, and the same documentation (calling out differences in the different variants). +category: System +exposed: True +exposed-modules: + System.FilePath System.FilePath.Posix System.FilePath.Windows +import-dirs: ${pkgroot}/../lib/aarch64-osx-ghc-9.4.2/filepath-1.4.2.2 +library-dirs: ${pkgroot}/../lib/aarch64-osx-ghc-9.4.2/filepath-1.4.2.2 +dynamic-library-dirs: ${pkgroot}/../lib/aarch64-osx-ghc-9.4.2 +data-dir: ${pkgroot}/../share/aarch64-osx-ghc-9.4.2/filepath-1.4.2.2 +hs-libraries: HSfilepath-1.4.2.2 +depends: base-4.17.0.0 +haddock-interfaces: + ${pkgroot}/../../../share/doc/ghc-9.4.2/html/libraries/filepath-1.4.2.2/filepath.haddock +haddock-html: + ${pkgroot}/../../../share/doc/ghc-9.4.2/html/libraries/filepath-1.4.2.2 +--- +name: ghc +version: 9.4.2 +visibility: public +id: ghc-9.4.2 +key: ghc-9.4.2 +license: BSD-3-Clause +maintainer: glasgow-haskell-users@haskell.org +author: The GHC Team +homepage: http://www.haskell.org/ghc/ +synopsis: The GHC API +description: + GHC's functionality can be useful for more things than just + compiling Haskell programs. Important use cases are programs + that analyse (and perhaps transform) Haskell code. Others + include loading Haskell code dynamically in a GHCi-like manner. + For this reason, a lot of GHC's functionality is made available + through this package. + See + for more information. +category: Development +exposed-modules: + GHC, GHC.Builtin.Names, GHC.Builtin.Names.TH, GHC.Builtin.PrimOps, + GHC.Builtin.PrimOps.Ids, GHC.Builtin.Types, + GHC.Builtin.Types.Literals, GHC.Builtin.Types.Prim, + GHC.Builtin.Uniques, GHC.Builtin.Utils, GHC.ByteCode.Asm, + GHC.ByteCode.InfoTable, GHC.ByteCode.Instr, GHC.ByteCode.Linker, + GHC.ByteCode.Types, GHC.Cmm, GHC.Cmm.BlockId, GHC.Cmm.CLabel, + GHC.Cmm.CallConv, GHC.Cmm.CommonBlockElim, GHC.Cmm.Config, + GHC.Cmm.ContFlowOpt, GHC.Cmm.Dataflow, GHC.Cmm.Dataflow.Block, + GHC.Cmm.Dataflow.Collections, GHC.Cmm.Dataflow.Graph, + GHC.Cmm.Dataflow.Label, GHC.Cmm.DebugBlock, GHC.Cmm.Expr, + GHC.Cmm.Graph, GHC.Cmm.Info, GHC.Cmm.Info.Build, GHC.Cmm.InitFini, + GHC.Cmm.LRegSet, GHC.Cmm.LayoutStack, GHC.Cmm.Lexer, GHC.Cmm.Lint, + GHC.Cmm.Liveness, GHC.Cmm.MachOp, GHC.Cmm.Node, GHC.Cmm.Opt, + GHC.Cmm.Parser, GHC.Cmm.Parser.Monad, GHC.Cmm.Pipeline, + GHC.Cmm.Ppr, GHC.Cmm.Ppr.Decl, GHC.Cmm.Ppr.Expr, GHC.Cmm.ProcPoint, + GHC.Cmm.Sink, GHC.Cmm.Switch, GHC.Cmm.Switch.Implement, + GHC.Cmm.Type, GHC.Cmm.Utils, GHC.CmmToAsm, GHC.CmmToAsm.AArch64, + GHC.CmmToAsm.AArch64.CodeGen, GHC.CmmToAsm.AArch64.Cond, + GHC.CmmToAsm.AArch64.Instr, GHC.CmmToAsm.AArch64.Ppr, + GHC.CmmToAsm.AArch64.RegInfo, GHC.CmmToAsm.AArch64.Regs, + GHC.CmmToAsm.BlockLayout, GHC.CmmToAsm.CFG, + GHC.CmmToAsm.CFG.Dominators, GHC.CmmToAsm.CFG.Weight, + GHC.CmmToAsm.CPrim, GHC.CmmToAsm.Config, GHC.CmmToAsm.Dwarf, + GHC.CmmToAsm.Dwarf.Constants, GHC.CmmToAsm.Dwarf.Types, + GHC.CmmToAsm.Format, GHC.CmmToAsm.Instr, GHC.CmmToAsm.Monad, + GHC.CmmToAsm.PIC, GHC.CmmToAsm.PPC, GHC.CmmToAsm.PPC.CodeGen, + GHC.CmmToAsm.PPC.Cond, GHC.CmmToAsm.PPC.Instr, + GHC.CmmToAsm.PPC.Ppr, GHC.CmmToAsm.PPC.RegInfo, + GHC.CmmToAsm.PPC.Regs, GHC.CmmToAsm.Ppr, GHC.CmmToAsm.Reg.Graph, + GHC.CmmToAsm.Reg.Graph.Base, GHC.CmmToAsm.Reg.Graph.Coalesce, + GHC.CmmToAsm.Reg.Graph.Spill, GHC.CmmToAsm.Reg.Graph.SpillClean, + GHC.CmmToAsm.Reg.Graph.SpillCost, GHC.CmmToAsm.Reg.Graph.Stats, + GHC.CmmToAsm.Reg.Graph.TrivColorable, GHC.CmmToAsm.Reg.Graph.X86, + GHC.CmmToAsm.Reg.Linear, GHC.CmmToAsm.Reg.Linear.AArch64, + GHC.CmmToAsm.Reg.Linear.Base, GHC.CmmToAsm.Reg.Linear.FreeRegs, + GHC.CmmToAsm.Reg.Linear.JoinToTargets, GHC.CmmToAsm.Reg.Linear.PPC, + GHC.CmmToAsm.Reg.Linear.StackMap, GHC.CmmToAsm.Reg.Linear.State, + GHC.CmmToAsm.Reg.Linear.Stats, GHC.CmmToAsm.Reg.Linear.X86, + GHC.CmmToAsm.Reg.Linear.X86_64, GHC.CmmToAsm.Reg.Liveness, + GHC.CmmToAsm.Reg.Target, GHC.CmmToAsm.Reg.Utils, + GHC.CmmToAsm.Types, GHC.CmmToAsm.Utils, GHC.CmmToAsm.X86, + GHC.CmmToAsm.X86.CodeGen, GHC.CmmToAsm.X86.Cond, + GHC.CmmToAsm.X86.Instr, GHC.CmmToAsm.X86.Ppr, + GHC.CmmToAsm.X86.RegInfo, GHC.CmmToAsm.X86.Regs, GHC.CmmToC, + GHC.CmmToLlvm, GHC.CmmToLlvm.Base, GHC.CmmToLlvm.CodeGen, + GHC.CmmToLlvm.Config, GHC.CmmToLlvm.Data, GHC.CmmToLlvm.Mangler, + GHC.CmmToLlvm.Ppr, GHC.CmmToLlvm.Regs, GHC.Core, GHC.Core.Class, + GHC.Core.Coercion, GHC.Core.Coercion.Axiom, GHC.Core.Coercion.Opt, + GHC.Core.ConLike, GHC.Core.DataCon, GHC.Core.FVs, + GHC.Core.FamInstEnv, GHC.Core.InstEnv, GHC.Core.LateCC, + GHC.Core.Lint, GHC.Core.Make, GHC.Core.Map.Expr, GHC.Core.Map.Type, + GHC.Core.Multiplicity, GHC.Core.Opt.Arity, GHC.Core.Opt.CSE, + GHC.Core.Opt.CallArity, GHC.Core.Opt.CallerCC, + GHC.Core.Opt.ConstantFold, GHC.Core.Opt.CprAnal, + GHC.Core.Opt.DmdAnal, GHC.Core.Opt.Exitify, GHC.Core.Opt.FloatIn, + GHC.Core.Opt.FloatOut, GHC.Core.Opt.LiberateCase, + GHC.Core.Opt.Monad, GHC.Core.Opt.OccurAnal, GHC.Core.Opt.Pipeline, + GHC.Core.Opt.SetLevels, GHC.Core.Opt.Simplify, + GHC.Core.Opt.Simplify.Env, GHC.Core.Opt.Simplify.Monad, + GHC.Core.Opt.Simplify.Utils, GHC.Core.Opt.SpecConstr, + GHC.Core.Opt.Specialise, GHC.Core.Opt.StaticArgs, + GHC.Core.Opt.WorkWrap, GHC.Core.Opt.WorkWrap.Utils, + GHC.Core.PatSyn, GHC.Core.Ppr, GHC.Core.Predicate, + GHC.Core.Reduction, GHC.Core.RoughMap, GHC.Core.Rules, + GHC.Core.Seq, GHC.Core.SimpleOpt, GHC.Core.Stats, GHC.Core.Subst, + GHC.Core.Tidy, GHC.Core.TyCo.FVs, GHC.Core.TyCo.Ppr, + GHC.Core.TyCo.Rep, GHC.Core.TyCo.Subst, GHC.Core.TyCo.Tidy, + GHC.Core.TyCon, GHC.Core.TyCon.Env, GHC.Core.TyCon.RecWalk, + GHC.Core.TyCon.Set, GHC.Core.Type, GHC.Core.Unfold, + GHC.Core.Unfold.Make, GHC.Core.Unify, GHC.Core.UsageEnv, + GHC.Core.Utils, GHC.CoreToIface, GHC.CoreToStg, GHC.CoreToStg.Prep, + GHC.Data.Bag, GHC.Data.Bitmap, GHC.Data.Bool, + GHC.Data.BooleanFormula, GHC.Data.EnumSet, GHC.Data.FastMutInt, + GHC.Data.FastString, GHC.Data.FastString.Env, GHC.Data.FiniteMap, + GHC.Data.Graph.Base, GHC.Data.Graph.Color, GHC.Data.Graph.Directed, + GHC.Data.Graph.Ops, GHC.Data.Graph.Ppr, GHC.Data.Graph.UnVar, + GHC.Data.IOEnv, GHC.Data.List.SetOps, GHC.Data.Maybe, + GHC.Data.OrdList, GHC.Data.Pair, GHC.Data.SmallArray, + GHC.Data.Stream, GHC.Data.Strict, GHC.Data.StringBuffer, + GHC.Data.TrieMap, GHC.Data.UnionFind, GHC.Driver.Backend, + GHC.Driver.Backpack, GHC.Driver.Backpack.Syntax, + GHC.Driver.CmdLine, GHC.Driver.CodeOutput, GHC.Driver.Config, + GHC.Driver.Config.Cmm, GHC.Driver.Config.CmmToAsm, + GHC.Driver.Config.CmmToLlvm, GHC.Driver.Config.Diagnostic, + GHC.Driver.Config.Finder, GHC.Driver.Config.HsToCore, + GHC.Driver.Config.Logger, GHC.Driver.Config.Parser, + GHC.Driver.Config.Stg.Debug, GHC.Driver.Config.Stg.Lift, + GHC.Driver.Config.Stg.Pipeline, GHC.Driver.Config.Stg.Ppr, + GHC.Driver.Config.StgToCmm, GHC.Driver.Config.Tidy, GHC.Driver.Env, + GHC.Driver.Env.KnotVars, GHC.Driver.Env.Types, GHC.Driver.Errors, + GHC.Driver.Errors.Ppr, GHC.Driver.Errors.Types, GHC.Driver.Flags, + GHC.Driver.GenerateCgIPEStub, GHC.Driver.Hooks, GHC.Driver.Main, + GHC.Driver.Make, GHC.Driver.MakeFile, GHC.Driver.Monad, + GHC.Driver.Phases, GHC.Driver.Pipeline, + GHC.Driver.Pipeline.Execute, GHC.Driver.Pipeline.LogQueue, + GHC.Driver.Pipeline.Monad, GHC.Driver.Pipeline.Phases, + GHC.Driver.Plugins, GHC.Driver.Ppr, GHC.Driver.Session, GHC.Hs, + GHC.Hs.Binds, GHC.Hs.Decls, GHC.Hs.Doc, GHC.Hs.DocString, + GHC.Hs.Dump, GHC.Hs.Expr, GHC.Hs.Extension, GHC.Hs.ImpExp, + GHC.Hs.Instances, GHC.Hs.Lit, GHC.Hs.Pat, GHC.Hs.Stats, + GHC.Hs.Syn.Type, GHC.Hs.Type, GHC.Hs.Utils, GHC.HsToCore, + GHC.HsToCore.Arrows, GHC.HsToCore.Binds, GHC.HsToCore.Coverage, + GHC.HsToCore.Docs, GHC.HsToCore.Errors.Ppr, + GHC.HsToCore.Errors.Types, GHC.HsToCore.Expr, + GHC.HsToCore.Foreign.Call, GHC.HsToCore.Foreign.Decl, + GHC.HsToCore.GuardedRHSs, GHC.HsToCore.ListComp, + GHC.HsToCore.Match, GHC.HsToCore.Match.Constructor, + GHC.HsToCore.Match.Literal, GHC.HsToCore.Monad, GHC.HsToCore.Pmc, + GHC.HsToCore.Pmc.Check, GHC.HsToCore.Pmc.Desugar, + GHC.HsToCore.Pmc.Ppr, GHC.HsToCore.Pmc.Solver, + GHC.HsToCore.Pmc.Solver.Types, GHC.HsToCore.Pmc.Types, + GHC.HsToCore.Pmc.Utils, GHC.HsToCore.Quote, GHC.HsToCore.Types, + GHC.HsToCore.Usage, GHC.HsToCore.Utils, GHC.Iface.Binary, + GHC.Iface.Env, GHC.Iface.Errors, GHC.Iface.Ext.Ast, + GHC.Iface.Ext.Binary, GHC.Iface.Ext.Debug, GHC.Iface.Ext.Fields, + GHC.Iface.Ext.Types, GHC.Iface.Ext.Utils, GHC.Iface.Load, + GHC.Iface.Make, GHC.Iface.Recomp, GHC.Iface.Recomp.Binary, + GHC.Iface.Recomp.Flags, GHC.Iface.Rename, GHC.Iface.Syntax, + GHC.Iface.Tidy, GHC.Iface.Tidy.StaticPtrTable, GHC.Iface.Type, + GHC.IfaceToCore, GHC.Linker, GHC.Linker.Dynamic, + GHC.Linker.ExtraObj, GHC.Linker.Loader, GHC.Linker.MacOS, + GHC.Linker.Static, GHC.Linker.Static.Utils, GHC.Linker.Types, + GHC.Linker.Unit, GHC.Linker.Windows, GHC.Llvm, GHC.Llvm.MetaData, + GHC.Llvm.Ppr, GHC.Llvm.Syntax, GHC.Llvm.Types, GHC.Parser, + GHC.Parser.Annotation, GHC.Parser.CharClass, + GHC.Parser.Errors.Basic, GHC.Parser.Errors.Ppr, + GHC.Parser.Errors.Types, GHC.Parser.HaddockLex, GHC.Parser.Header, + GHC.Parser.Lexer, GHC.Parser.PostProcess, + GHC.Parser.PostProcess.Haddock, GHC.Parser.Types, GHC.Parser.Utils, + GHC.Platform, GHC.Platform.AArch64, GHC.Platform.ARM, + GHC.Platform.ArchOS from ghc-boot-9.4.2:GHC.Platform.ArchOS, + GHC.Platform.Constants, + GHC.Platform.Host from ghc-boot-9.4.2:GHC.Platform.Host, + GHC.Platform.NoRegs, GHC.Platform.PPC, GHC.Platform.Profile, + GHC.Platform.RISCV64, GHC.Platform.Reg, GHC.Platform.Reg.Class, + GHC.Platform.Regs, GHC.Platform.S390X, GHC.Platform.Ways, + GHC.Platform.X86, GHC.Platform.X86_64, GHC.Plugins, GHC.Prelude, + GHC.Rename.Bind, GHC.Rename.Doc, GHC.Rename.Env, GHC.Rename.Expr, + GHC.Rename.Fixity, GHC.Rename.HsType, GHC.Rename.Module, + GHC.Rename.Names, GHC.Rename.Pat, GHC.Rename.Splice, + GHC.Rename.Unbound, GHC.Rename.Utils, GHC.Runtime.Context, + GHC.Runtime.Debugger, GHC.Runtime.Eval, GHC.Runtime.Eval.Types, + GHC.Runtime.Heap.Inspect, GHC.Runtime.Heap.Layout, + GHC.Runtime.Interpreter, GHC.Runtime.Interpreter.Types, + GHC.Runtime.Loader, GHC.Settings, GHC.Settings.Config, + GHC.Settings.Constants, GHC.Settings.IO, GHC.Stg.BcPrep, + GHC.Stg.CSE, GHC.Stg.Debug, GHC.Stg.FVs, GHC.Stg.InferTags, + GHC.Stg.InferTags.Rewrite, GHC.Stg.InferTags.TagSig, + GHC.Stg.InferTags.Types, GHC.Stg.Lift, GHC.Stg.Lift.Analysis, + GHC.Stg.Lift.Config, GHC.Stg.Lift.Monad, GHC.Stg.Lint, + GHC.Stg.Pipeline, GHC.Stg.Stats, GHC.Stg.Subst, GHC.Stg.Syntax, + GHC.Stg.Unarise, GHC.Stg.Utils, GHC.StgToByteCode, GHC.StgToCmm, + GHC.StgToCmm.ArgRep, GHC.StgToCmm.Bind, GHC.StgToCmm.CgUtils, + GHC.StgToCmm.Closure, GHC.StgToCmm.Config, GHC.StgToCmm.DataCon, + GHC.StgToCmm.Env, GHC.StgToCmm.Expr, GHC.StgToCmm.ExtCode, + GHC.StgToCmm.Foreign, GHC.StgToCmm.Heap, GHC.StgToCmm.Hpc, + GHC.StgToCmm.Layout, GHC.StgToCmm.Lit, GHC.StgToCmm.Monad, + GHC.StgToCmm.Prim, GHC.StgToCmm.Prof, GHC.StgToCmm.Sequel, + GHC.StgToCmm.TagCheck, GHC.StgToCmm.Ticky, GHC.StgToCmm.Types, + GHC.StgToCmm.Utils, GHC.SysTools, GHC.SysTools.Ar, + GHC.SysTools.BaseDir, GHC.SysTools.Elf, GHC.SysTools.Info, + GHC.SysTools.Process, GHC.SysTools.Tasks, GHC.SysTools.Terminal, + GHC.Tc.Deriv, GHC.Tc.Deriv.Functor, GHC.Tc.Deriv.Generate, + GHC.Tc.Deriv.Generics, GHC.Tc.Deriv.Infer, GHC.Tc.Deriv.Utils, + GHC.Tc.Errors, GHC.Tc.Errors.Hole, GHC.Tc.Errors.Hole.FitTypes, + GHC.Tc.Errors.Ppr, GHC.Tc.Errors.Types, GHC.Tc.Gen.Annotation, + GHC.Tc.Gen.App, GHC.Tc.Gen.Arrow, GHC.Tc.Gen.Bind, + GHC.Tc.Gen.Default, GHC.Tc.Gen.Export, GHC.Tc.Gen.Expr, + GHC.Tc.Gen.Foreign, GHC.Tc.Gen.Head, GHC.Tc.Gen.HsType, + GHC.Tc.Gen.Match, GHC.Tc.Gen.Pat, GHC.Tc.Gen.Rule, GHC.Tc.Gen.Sig, + GHC.Tc.Gen.Splice, GHC.Tc.Instance.Class, GHC.Tc.Instance.Family, + GHC.Tc.Instance.FunDeps, GHC.Tc.Instance.Typeable, GHC.Tc.Module, + GHC.Tc.Plugin, GHC.Tc.Solver, GHC.Tc.Solver.Canonical, + GHC.Tc.Solver.InertSet, GHC.Tc.Solver.Interact, + GHC.Tc.Solver.Monad, GHC.Tc.Solver.Rewrite, GHC.Tc.Solver.Types, + GHC.Tc.TyCl, GHC.Tc.TyCl.Build, GHC.Tc.TyCl.Class, + GHC.Tc.TyCl.Instance, GHC.Tc.TyCl.PatSyn, GHC.Tc.TyCl.Utils, + GHC.Tc.Types, GHC.Tc.Types.Constraint, GHC.Tc.Types.EvTerm, + GHC.Tc.Types.Evidence, GHC.Tc.Types.Origin, GHC.Tc.Types.Rank, + GHC.Tc.Utils.Backpack, GHC.Tc.Utils.Concrete, GHC.Tc.Utils.Env, + GHC.Tc.Utils.Instantiate, GHC.Tc.Utils.Monad, GHC.Tc.Utils.TcMType, + GHC.Tc.Utils.TcType, GHC.Tc.Utils.Unify, GHC.Tc.Utils.Zonk, + GHC.Tc.Validity, GHC.ThToHs, GHC.Types.Annotations, + GHC.Types.Avail, GHC.Types.Basic, GHC.Types.BreakInfo, + GHC.Types.CompleteMatch, GHC.Types.CostCentre, + GHC.Types.CostCentre.State, GHC.Types.Cpr, GHC.Types.Demand, + GHC.Types.Error, GHC.Types.FieldLabel, GHC.Types.Fixity, + GHC.Types.Fixity.Env, GHC.Types.ForeignCall, + GHC.Types.ForeignStubs, GHC.Types.Hint, GHC.Types.Hint.Ppr, + GHC.Types.HpcInfo, GHC.Types.IPE, GHC.Types.Id, GHC.Types.Id.Info, + GHC.Types.Id.Make, GHC.Types.Literal, GHC.Types.Meta, + GHC.Types.Name, GHC.Types.Name.Cache, GHC.Types.Name.Env, + GHC.Types.Name.Occurrence, GHC.Types.Name.Ppr, + GHC.Types.Name.Reader, GHC.Types.Name.Set, GHC.Types.Name.Shape, + GHC.Types.PkgQual, GHC.Types.RepType, GHC.Types.SafeHaskell, + GHC.Types.SourceError, GHC.Types.SourceFile, GHC.Types.SourceText, + GHC.Types.SrcLoc, GHC.Types.Target, GHC.Types.Tickish, + GHC.Types.TyThing, GHC.Types.TyThing.Ppr, GHC.Types.TypeEnv, + GHC.Types.Unique, GHC.Types.Unique.DFM, GHC.Types.Unique.DSet, + GHC.Types.Unique.FM, GHC.Types.Unique.Map, + GHC.Types.Unique.MemoFun, GHC.Types.Unique.SDFM, + GHC.Types.Unique.Set, GHC.Types.Unique.Supply, GHC.Types.Var, + GHC.Types.Var.Env, GHC.Types.Var.Set, GHC.Unit, GHC.Unit.Env, + GHC.Unit.External, GHC.Unit.Finder, GHC.Unit.Finder.Types, + GHC.Unit.Home, GHC.Unit.Home.ModInfo, GHC.Unit.Info, + GHC.Unit.Module, GHC.Unit.Module.Deps, GHC.Unit.Module.Env, + GHC.Unit.Module.Graph, GHC.Unit.Module.Imported, + GHC.Unit.Module.Location, GHC.Unit.Module.ModDetails, + GHC.Unit.Module.ModGuts, GHC.Unit.Module.ModIface, + GHC.Unit.Module.ModSummary, GHC.Unit.Module.Name, + GHC.Unit.Module.Status, GHC.Unit.Module.Warnings, GHC.Unit.Parser, + GHC.Unit.Ppr, GHC.Unit.State, GHC.Unit.Types, GHC.Utils.Asm, + GHC.Utils.Binary, GHC.Utils.Binary.Typeable, GHC.Utils.BufHandle, + GHC.Utils.CliOption, GHC.Utils.Constants, GHC.Utils.Error, + GHC.Utils.Exception, GHC.Utils.FV, GHC.Utils.Fingerprint, + GHC.Utils.GlobalVars, GHC.Utils.IO.Unsafe, GHC.Utils.Json, + GHC.Utils.Lexeme, GHC.Utils.Logger, GHC.Utils.Misc, + GHC.Utils.Monad, GHC.Utils.Monad.State.Lazy, + GHC.Utils.Monad.State.Strict, GHC.Utils.Outputable, + GHC.Utils.Panic, GHC.Utils.Panic.Plain, GHC.Utils.Ppr, + GHC.Utils.Ppr.Colour, GHC.Utils.TmpFs, GHC.Utils.Trace, + Language.Haskell.Syntax, Language.Haskell.Syntax.Binds, + Language.Haskell.Syntax.Decls, Language.Haskell.Syntax.Expr, + Language.Haskell.Syntax.Extension, Language.Haskell.Syntax.Lit, + Language.Haskell.Syntax.Pat, Language.Haskell.Syntax.Type +import-dirs: ${pkgroot}/../lib/aarch64-osx-ghc-9.4.2/ghc-9.4.2 +library-dirs: ${pkgroot}/../lib/aarch64-osx-ghc-9.4.2/ghc-9.4.2 +dynamic-library-dirs: ${pkgroot}/../lib/aarch64-osx-ghc-9.4.2 +data-dir: ${pkgroot}/../share/aarch64-osx-ghc-9.4.2/ghc-9.4.2 +hs-libraries: HSghc-9.4.2 +includes: + Unique.h Bytecodes.h ClosureTypes.h FunTypes.h ghc-llvm-version.h +depends: + array-0.5.4.0 base-4.17.0.0 binary-0.8.9.1 bytestring-0.11.3.1 + containers-0.6.6 deepseq-1.4.8.0 directory-1.3.7.1 + exceptions-0.10.5 filepath-1.4.2.2 ghc-boot-9.4.2 ghc-heap-9.4.2 + ghci-9.4.2 hpc-0.6.1.0 process-1.6.15.0 stm-2.5.1.0 + template-haskell-2.19.0.0 terminfo-0.4.1.5 time-1.12.2 + transformers-0.5.6.2 unix-2.7.3 +haddock-interfaces: + ${pkgroot}/../../../share/doc/ghc-9.4.2/html/libraries/ghc-9.4.2/ghc.haddock +haddock-html: + ${pkgroot}/../../../share/doc/ghc-9.4.2/html/libraries/ghc-9.4.2 +--- +name: ghc-bignum +version: 1.3 +visibility: public +id: ghc-bignum-1.3 +key: ghc-bignum-1.3 +license: BSD-3-Clause +maintainer: libraries@haskell.org +author: Sylvain Henry +synopsis: GHC BigNum library +description: + This package provides the low-level implementation of the standard + 'BigNat', 'Natural' and 'Integer' types. +category: Numeric, Algebra, GHC +exposed: True +exposed-modules: + GHC.Num.Backend GHC.Num.Backend.Native GHC.Num.Backend.Selected + GHC.Num.BigNat GHC.Num.Integer GHC.Num.Natural GHC.Num.Primitives + GHC.Num.WordArray +hidden-modules: GHC.Num.Backend.GMP +import-dirs: ${pkgroot}/../lib/aarch64-osx-ghc-9.4.2/ghc-bignum-1.3 +library-dirs: + ${pkgroot}/../lib/aarch64-osx-ghc-9.4.2/ghc-bignum-1.3 +dynamic-library-dirs: + ${pkgroot}/../lib/aarch64-osx-ghc-9.4.2 +data-dir: ${pkgroot}/../share/aarch64-osx-ghc-9.4.2/ghc-bignum-1.3 +hs-libraries: HSghc-bignum-1.3 +extra-libraries: gmp +include-dirs: + ${pkgroot}/../lib/aarch64-osx-ghc-9.4.2/ghc-bignum-1.3/include +depends: ghc-prim-0.9.0 +haddock-interfaces: + ${pkgroot}/../../../share/doc/ghc-9.4.2/html/libraries/ghc-bignum-1.3/ghc-bignum.haddock +haddock-html: + ${pkgroot}/../../../share/doc/ghc-9.4.2/html/libraries/ghc-bignum-1.3 +--- +name: ghc-boot +version: 9.4.2 +visibility: public +id: ghc-boot-9.4.2 +key: ghc-boot-9.4.2 +license: BSD-3-Clause +maintainer: ghc-devs@haskell.org +synopsis: Shared functionality between GHC and its boot libraries +description: + This library is shared between GHC, ghc-pkg, and other boot + libraries. + . + A note about "GHC.Unit.Database": it only deals with the subset of + the package database that the compiler cares about: modules + paths etc and not package metadata like description, authors + etc. It is thus not a library interface to ghc-pkg and is *not* + suitable for modifying GHC package databases. + . + The package database format and this library are constructed in + such a way that while ghc-pkg depends on Cabal, the GHC library + and program do not have to depend on Cabal. +category: GHC +exposed: True +exposed-modules: + GHC.BaseDir, GHC.Data.ShortText, GHC.Data.SizedSeq, + GHC.ForeignSrcLang, + GHC.ForeignSrcLang.Type from ghc-boot-th-9.4.2:GHC.ForeignSrcLang.Type, + GHC.HandleEncoding, GHC.LanguageExtensions, + GHC.LanguageExtensions.Type from ghc-boot-th-9.4.2:GHC.LanguageExtensions.Type, + GHC.Lexeme from ghc-boot-th-9.4.2:GHC.Lexeme, GHC.Platform.ArchOS, + GHC.Platform.Host, GHC.Serialized, GHC.Settings.Utils, + GHC.UniqueSubdir, GHC.Unit.Database, GHC.Utils.Encoding, + GHC.Version +import-dirs: ${pkgroot}/../lib/aarch64-osx-ghc-9.4.2/ghc-boot-9.4.2 +library-dirs: ${pkgroot}/../lib/aarch64-osx-ghc-9.4.2/ghc-boot-9.4.2 +dynamic-library-dirs: ${pkgroot}/../lib/aarch64-osx-ghc-9.4.2 +data-dir: ${pkgroot}/../share/aarch64-osx-ghc-9.4.2/ghc-boot-9.4.2 +hs-libraries: HSghc-boot-9.4.2 +depends: + base-4.17.0.0 binary-0.8.9.1 bytestring-0.11.3.1 containers-0.6.6 + deepseq-1.4.8.0 directory-1.3.7.1 filepath-1.4.2.2 + ghc-boot-th-9.4.2 unix-2.7.3 +haddock-interfaces: + ${pkgroot}/../../../share/doc/ghc-9.4.2/html/libraries/ghc-boot-9.4.2/ghc-boot.haddock +haddock-html: + ${pkgroot}/../../../share/doc/ghc-9.4.2/html/libraries/ghc-boot-9.4.2 +--- +name: ghc-boot-th +version: 9.4.2 +visibility: public +id: ghc-boot-th-9.4.2 +key: ghc-boot-th-9.4.2 +license: BSD-3-Clause +maintainer: ghc-devs@haskell.org +synopsis: + Shared functionality between GHC and the @template-haskell@ + library +description: + This library contains various bits shared between the @ghc@ and + @template-haskell@ libraries. + This package exists to ensure that @template-haskell@ has a + minimal set of transitive dependencies, since it is intended to + be depended upon by user code. +category: GHC +exposed: True +exposed-modules: + GHC.ForeignSrcLang.Type GHC.LanguageExtensions.Type GHC.Lexeme +import-dirs: ${pkgroot}/../lib/aarch64-osx-ghc-9.4.2/ghc-boot-th-9.4.2 +library-dirs: ${pkgroot}/../lib/aarch64-osx-ghc-9.4.2/ghc-boot-th-9.4.2 +dynamic-library-dirs: ${pkgroot}/../lib/aarch64-osx-ghc-9.4.2 +data-dir: ${pkgroot}/../share/aarch64-osx-ghc-9.4.2/ghc-boot-th-9.4.2 +hs-libraries: HSghc-boot-th-9.4.2 +depends: base-4.17.0.0 +haddock-interfaces: + ${pkgroot}/../../../share/doc/ghc-9.4.2/html/libraries/ghc-boot-th-9.4.2/ghc-boot-th.haddock +haddock-html: + ${pkgroot}/../../../share/doc/ghc-9.4.2/html/libraries/ghc-boot-th-9.4.2 +--- +name: ghc-compact +version: 0.1.0.0 +visibility: public +id: ghc-compact-0.1.0.0 +key: ghc-compact-0.1.0.0 +license: BSD-3-Clause +maintainer: libraries@haskell.org +synopsis: In memory storage of deeply evaluated data structure +description: + This package provides minimal functionality for working with + "compact regions", which hold a fully evaluated Haskell object graph. + These regions maintain the invariant that no pointers live inside the struct + that point outside it, which ensures efficient garbage collection without + ever reading the structure contents (effectively, it works as a manually + managed "oldest generation" which is never freed until the whole is + released). + Internally, the struct is stored a single contiguous block of memory, + which allows efficient serialization and deserialization of structs + for distributed computing. + This package provides a low-level API; see also the which provides a user-facing API. +category: Data +exposed: True +exposed-modules: GHC.Compact GHC.Compact.Serialized +import-dirs: ${pkgroot}/../lib/aarch64-osx-ghc-9.4.2/ghc-compact-0.1.0.0 +library-dirs: ${pkgroot}/../lib/aarch64-osx-ghc-9.4.2/ghc-compact-0.1.0.0 +dynamic-library-dirs: ${pkgroot}/../lib/aarch64-osx-ghc-9.4.2 +data-dir: + ${pkgroot}/../share/aarch64-osx-ghc-9.4.2/ghc-compact-0.1.0.0 +hs-libraries: HSghc-compact-0.1.0.0 +depends: base-4.17.0.0 bytestring-0.11.3.1 ghc-prim-0.9.0 +haddock-interfaces: + ${pkgroot}/../../../share/doc/ghc-9.4.2/html/libraries/ghc-compact-0.1.0.0/ghc-compact.haddock +haddock-html: + ${pkgroot}/../../../share/doc/ghc-9.4.2/html/libraries/ghc-compact-0.1.0.0 +--- +name: ghc-heap +version: 9.4.2 +visibility: public +id: ghc-heap-9.4.2 +key: ghc-heap-9.4.2 +license: BSD-3-Clause +maintainer: libraries@haskell.org +synopsis: Functions for walking GHC's heap +description: + This package provides functions for walking the GHC heap data structures + and retrieving information about those data structures. +category: GHC +exposed: True +exposed-modules: + GHC.Exts.Heap GHC.Exts.Heap.ClosureTypes GHC.Exts.Heap.Closures + GHC.Exts.Heap.Constants GHC.Exts.Heap.FFIClosures + GHC.Exts.Heap.FFIClosures_ProfilingDisabled + GHC.Exts.Heap.FFIClosures_ProfilingEnabled GHC.Exts.Heap.InfoTable + GHC.Exts.Heap.InfoTable.Types GHC.Exts.Heap.InfoTableProf + GHC.Exts.Heap.ProfInfo.PeekProfInfo + GHC.Exts.Heap.ProfInfo.PeekProfInfo_ProfilingDisabled + GHC.Exts.Heap.ProfInfo.PeekProfInfo_ProfilingEnabled + GHC.Exts.Heap.ProfInfo.Types GHC.Exts.Heap.Utils +import-dirs: ${pkgroot}/../lib/aarch64-osx-ghc-9.4.2/ghc-heap-9.4.2 +library-dirs: ${pkgroot}/../lib/aarch64-osx-ghc-9.4.2/ghc-heap-9.4.2 +dynamic-library-dirs: ${pkgroot}/../lib/aarch64-osx-ghc-9.4.2 +data-dir: ${pkgroot}/../share/aarch64-osx-ghc-9.4.2/ghc-heap-9.4.2 +hs-libraries: HSghc-heap-9.4.2 +depends: + base-4.17.0.0 containers-0.6.6 ghc-prim-0.9.0 rts-1.0.2 +haddock-interfaces: + ${pkgroot}/../../../share/doc/ghc-9.4.2/html/libraries/ghc-heap-9.4.2/ghc-heap.haddock +haddock-html: + ${pkgroot}/../../../share/doc/ghc-9.4.2/html/libraries/ghc-heap-9.4.2 +--- +name: ghc-prim +version: 0.9.0 +visibility: public +id: ghc-prim-0.9.0 +key: ghc-prim-0.9.0 +license: BSD-3-Clause +maintainer: libraries@haskell.org +synopsis: GHC primitives +description: + This package contains the primitive types and operations supplied by GHC. +category: GHC +exposed: True +exposed-modules: + GHC.CString GHC.Classes GHC.Debug GHC.Magic GHC.Magic.Dict + GHC.Prim.Exception GHC.Prim.Ext GHC.Prim.Panic GHC.Prim.PtrEq + GHC.PrimopWrappers GHC.Tuple GHC.Types GHC.Prim +import-dirs: ${pkgroot}/../lib/aarch64-osx-ghc-9.4.2/ghc-prim-0.9.0 +library-dirs: ${pkgroot}/../lib/aarch64-osx-ghc-9.4.2/ghc-prim-0.9.0 +dynamic-library-dirs: ${pkgroot}/../lib/aarch64-osx-ghc-9.4.2 +data-dir: ${pkgroot}/../share/aarch64-osx-ghc-9.4.2/ghc-prim-0.9.0 +hs-libraries: HSghc-prim-0.9.0 +depends: rts-1.0.2 +haddock-interfaces: + ${pkgroot}/../../../share/doc/ghc-9.4.2/html/libraries/ghc-prim-0.9.0/ghc-prim.haddock +haddock-html: + ${pkgroot}/../../../share/doc/ghc-9.4.2/html/libraries/ghc-prim-0.9.0 +--- +name: ghci +version: 9.4.2 +visibility: public +id: ghci-9.4.2 +key: ghci-9.4.2 +license: BSD-3-Clause +maintainer: ghc-devs@haskell.org +synopsis: The library supporting GHC's interactive interpreter +description: + This library offers interfaces which mediate interactions between the + @ghci@ interactive shell and @iserv@, GHC's out-of-process interpreter + backend. +category: GHC +exposed: True +exposed-modules: + GHCi.BinaryArray GHCi.BreakArray GHCi.CreateBCO GHCi.FFI + GHCi.InfoTable GHCi.Message GHCi.ObjLink GHCi.RemoteTypes + GHCi.ResolvedBCO GHCi.Run GHCi.Signals GHCi.StaticPtrTable GHCi.TH + GHCi.TH.Binary +import-dirs: ${pkgroot}/../lib/aarch64-osx-ghc-9.4.2/ghci-9.4.2 +library-dirs: + ${pkgroot}/../lib/aarch64-osx-ghc-9.4.2/ghci-9.4.2 +dynamic-library-dirs: + ${pkgroot}/../lib/aarch64-osx-ghc-9.4.2 +data-dir: ${pkgroot}/../share/aarch64-osx-ghc-9.4.2/ghci-9.4.2 +hs-libraries: HSghci-9.4.2 +include-dirs: +depends: + array-0.5.4.0 base-4.17.0.0 binary-0.8.9.1 bytestring-0.11.3.1 + containers-0.6.6 deepseq-1.4.8.0 filepath-1.4.2.2 ghc-boot-9.4.2 + ghc-heap-9.4.2 ghc-prim-0.9.0 rts-1.0.2 template-haskell-2.19.0.0 + transformers-0.5.6.2 unix-2.7.3 +haddock-interfaces: + ${pkgroot}/../../../share/doc/ghc-9.4.2/html/libraries/ghci-9.4.2/ghci.haddock +haddock-html: + ${pkgroot}/../../../share/doc/ghc-9.4.2/html/libraries/ghci-9.4.2 +--- +name: haskeline +version: 0.8.2 +visibility: public +id: haskeline-0.8.2 +key: haskeline-0.8.2 +license: BSD-3-Clause +copyright: (c) Judah Jacobson +maintainer: Judah Jacobson +author: Judah Jacobson +stability: Stable +homepage: https://github.com/judah/haskeline +synopsis: + A command-line interface for user input, written in Haskell. +description: + Haskeline provides a user interface for line input in command-line + programs. This library is similar in purpose to readline, but since + it is written in Haskell it is (hopefully) more easily used in other + Haskell programs. + Haskeline runs both on POSIX-compatible systems and on Windows. +category: User Interfaces +exposed: True +exposed-modules: + System.Console.Haskeline System.Console.Haskeline.Completion + System.Console.Haskeline.History System.Console.Haskeline.IO + System.Console.Haskeline.Internal +hidden-modules: + System.Console.Haskeline.Backend + System.Console.Haskeline.Backend.WCWidth + System.Console.Haskeline.Command + System.Console.Haskeline.Command.Completion + System.Console.Haskeline.Command.History + System.Console.Haskeline.Command.KillRing + System.Console.Haskeline.Directory System.Console.Haskeline.Emacs + System.Console.Haskeline.InputT System.Console.Haskeline.Key + System.Console.Haskeline.LineState System.Console.Haskeline.Monads + System.Console.Haskeline.Prefs System.Console.Haskeline.Recover + System.Console.Haskeline.RunCommand System.Console.Haskeline.Term + System.Console.Haskeline.Command.Undo System.Console.Haskeline.Vi + System.Console.Haskeline.Backend.Posix + System.Console.Haskeline.Backend.Posix.Encoder + System.Console.Haskeline.Backend.DumbTerm + System.Console.Haskeline.Backend.Terminfo +import-dirs: ${pkgroot}/../lib/aarch64-osx-ghc-9.4.2/haskeline-0.8.2 +library-dirs: ${pkgroot}/../lib/aarch64-osx-ghc-9.4.2/haskeline-0.8.2 +dynamic-library-dirs: ${pkgroot}/../lib/aarch64-osx-ghc-9.4.2 +data-dir: ${pkgroot}/../share/aarch64-osx-ghc-9.4.2/haskeline-0.8.2 +hs-libraries: HShaskeline-0.8.2 +depends: + base-4.17.0.0 bytestring-0.11.3.1 containers-0.6.6 + directory-1.3.7.1 exceptions-0.10.5 filepath-1.4.2.2 + process-1.6.15.0 stm-2.5.1.0 terminfo-0.4.1.5 transformers-0.5.6.2 + unix-2.7.3 +haddock-interfaces: + ${pkgroot}/../../../share/doc/ghc-9.4.2/html/libraries/haskeline-0.8.2/haskeline.haddock +haddock-html: + ${pkgroot}/../../../share/doc/ghc-9.4.2/html/libraries/haskeline-0.8.2 +--- +name: hpc +version: 0.6.1.0 +visibility: public +id: hpc-0.6.1.0 +key: hpc-0.6.1.0 +license: BSD-3-Clause +maintainer: ghc-devs@haskell.org +author: Andy Gill +synopsis: Code Coverage Library for Haskell +description: + This package provides the code coverage library for Haskell. + See for more + information. +category: Control +exposed: True +exposed-modules: + Trace.Hpc.Mix Trace.Hpc.Reflect Trace.Hpc.Tix Trace.Hpc.Util +import-dirs: ${pkgroot}/../lib/aarch64-osx-ghc-9.4.2/hpc-0.6.1.0 +library-dirs: ${pkgroot}/../lib/aarch64-osx-ghc-9.4.2/hpc-0.6.1.0 +dynamic-library-dirs: ${pkgroot}/../lib/aarch64-osx-ghc-9.4.2 +data-dir: ${pkgroot}/../share/aarch64-osx-ghc-9.4.2/hpc-0.6.1.0 +hs-libraries: HShpc-0.6.1.0 +depends: + base-4.17.0.0 containers-0.6.6 deepseq-1.4.8.0 directory-1.3.7.1 + filepath-1.4.2.2 time-1.12.2 +haddock-interfaces: + ${pkgroot}/../../../share/doc/ghc-9.4.2/html/libraries/hpc-0.6.1.0/hpc.haddock +haddock-html: + ${pkgroot}/../../../share/doc/ghc-9.4.2/html/libraries/hpc-0.6.1.0 +--- +name: integer-gmp +version: 1.1 +visibility: public +id: integer-gmp-1.1 +key: integer-gmp-1.1 +license: BSD-3-Clause +maintainer: hvr@gnu.org +author: Herbert Valerio Riedel +homepage: https://www.haskell.org/ghc/ +synopsis: Integer library based on GMP +description: + This package used to provide an implementation of the standard 'Integer' + type based on the + . + It is now deprecated in favor of the 'ghc-bignum' package. + Its purpose is to provide backward compatibility for codes directly + depending on the `integer-gmp` package. +category: Numeric, Algebra +exposed: True +exposed-modules: GHC.Integer.GMP.Internals +import-dirs: ${pkgroot}/../lib/aarch64-osx-ghc-9.4.2/integer-gmp-1.1 +library-dirs: ${pkgroot}/../lib/aarch64-osx-ghc-9.4.2/integer-gmp-1.1 +dynamic-library-dirs: ${pkgroot}/../lib/aarch64-osx-ghc-9.4.2 +data-dir: ${pkgroot}/../share/aarch64-osx-ghc-9.4.2/integer-gmp-1.1 +hs-libraries: HSinteger-gmp-1.1 +depends: base-4.17.0.0 ghc-bignum-1.3 ghc-prim-0.9.0 +haddock-interfaces: + ${pkgroot}/../../../share/doc/ghc-9.4.2/html/libraries/integer-gmp-1.1/integer-gmp.haddock +haddock-html: + ${pkgroot}/../../../share/doc/ghc-9.4.2/html/libraries/integer-gmp-1.1 +--- +name: libiserv +version: 9.4.2 +visibility: public +id: libiserv-9.4.2 +key: libiserv-9.4.2 +license: BSD-3-Clause +copyright: XXX +maintainer: XXX +author: XXX +synopsis: + Provides shared functionality between iserv and iserv-proxy. +description: + Provides shared functionality between iserv and iserv-proxy. +category: Development +exposed: True +exposed-modules: GHCi.Utils IServ +import-dirs: ${pkgroot}/../lib/aarch64-osx-ghc-9.4.2/libiserv-9.4.2 +library-dirs: ${pkgroot}/../lib/aarch64-osx-ghc-9.4.2/libiserv-9.4.2 +dynamic-library-dirs: ${pkgroot}/../lib/aarch64-osx-ghc-9.4.2 +data-dir: ${pkgroot}/../share/aarch64-osx-ghc-9.4.2/libiserv-9.4.2 +hs-libraries: HSlibiserv-9.4.2 +depends: + base-4.17.0.0 binary-0.8.9.1 bytestring-0.11.3.1 containers-0.6.6 + deepseq-1.4.8.0 ghci-9.4.2 unix-2.7.3 +haddock-interfaces: + ${pkgroot}/../../../share/doc/ghc-9.4.2/html/libraries/libiserv-9.4.2/libiserv.haddock +haddock-html: + ${pkgroot}/../../../share/doc/ghc-9.4.2/html/libraries/libiserv-9.4.2 +--- +name: mtl +version: 2.2.2 +visibility: public +id: mtl-2.2.2 +key: mtl-2.2.2 +license: BSD-3-Clause +maintainer: Edward Kmett +author: Andy Gill +homepage: http://github.com/haskell/mtl +synopsis: Monad classes, using functional dependencies +description: + Monad classes using functional dependencies, with instances + for various monad transformers, inspired by the paper + /Functional Programming with Overloading and Higher-Order Polymorphism/, + by Mark P Jones, in /Advanced School of Functional Programming/, 1995 + (). +category: Control +exposed: True +exposed-modules: + Control.Monad.Cont Control.Monad.Cont.Class Control.Monad.Error + Control.Monad.Error.Class Control.Monad.Except + Control.Monad.Identity Control.Monad.List Control.Monad.RWS + Control.Monad.RWS.Class Control.Monad.RWS.Lazy + Control.Monad.RWS.Strict Control.Monad.Reader + Control.Monad.Reader.Class Control.Monad.State + Control.Monad.State.Class Control.Monad.State.Lazy + Control.Monad.State.Strict Control.Monad.Trans Control.Monad.Writer + Control.Monad.Writer.Class Control.Monad.Writer.Lazy + Control.Monad.Writer.Strict +import-dirs: ${pkgroot}/../lib/aarch64-osx-ghc-9.4.2/mtl-2.2.2 +library-dirs: ${pkgroot}/../lib/aarch64-osx-ghc-9.4.2/mtl-2.2.2 +dynamic-library-dirs: ${pkgroot}/../lib/aarch64-osx-ghc-9.4.2 +data-dir: ${pkgroot}/../share/aarch64-osx-ghc-9.4.2/mtl-2.2.2 +hs-libraries: HSmtl-2.2.2 +depends: base-4.17.0.0 transformers-0.5.6.2 +haddock-interfaces: + ${pkgroot}/../../../share/doc/ghc-9.4.2/html/libraries/mtl-2.2.2/mtl.haddock +haddock-html: + ${pkgroot}/../../../share/doc/ghc-9.4.2/html/libraries/mtl-2.2.2 +--- +name: parsec +version: 3.1.15.0 +visibility: public +id: parsec-3.1.15.0 +key: parsec-3.1.15.0 +license: BSD-2-Clause +maintainer: + Oleg Grenrus , Herbert Valerio Riedel +author: + Daan Leijen , Paolo Martini , Antoine Latter +homepage: https://github.com/haskell/parsec +synopsis: Monadic parser combinators +description: + Parsec is designed from scratch as an industrial-strength parser + library. It is simple, safe, well documented (on the package + homepage), has extensive libraries, good error messages, + and is fast. It is defined as a monad transformer that can be + stacked on arbitrary monads, and it is also parametric in the + input stream type. + The main entry point is the "Text.Parsec" module which provides + defaults for parsing 'Char'acter data. + The "Text.ParserCombinators.Parsec" module hierarchy contains + the legacy @parsec-2@ API and may be removed at some point in + the future. +category: Parsing +exposed: True +exposed-modules: + Text.Parsec Text.Parsec.ByteString Text.Parsec.ByteString.Lazy + Text.Parsec.Char Text.Parsec.Combinator Text.Parsec.Error + Text.Parsec.Expr Text.Parsec.Language Text.Parsec.Perm + Text.Parsec.Pos Text.Parsec.Prim Text.Parsec.String + Text.Parsec.Text Text.Parsec.Text.Lazy Text.Parsec.Token + Text.ParserCombinators.Parsec Text.ParserCombinators.Parsec.Char + Text.ParserCombinators.Parsec.Combinator + Text.ParserCombinators.Parsec.Error + Text.ParserCombinators.Parsec.Expr + Text.ParserCombinators.Parsec.Language + Text.ParserCombinators.Parsec.Perm + Text.ParserCombinators.Parsec.Pos + Text.ParserCombinators.Parsec.Prim + Text.ParserCombinators.Parsec.Token +import-dirs: ${pkgroot}/../lib/aarch64-osx-ghc-9.4.2/parsec-3.1.15.0 +library-dirs: ${pkgroot}/../lib/aarch64-osx-ghc-9.4.2/parsec-3.1.15.0 +dynamic-library-dirs: ${pkgroot}/../lib/aarch64-osx-ghc-9.4.2 +data-dir: ${pkgroot}/../share/aarch64-osx-ghc-9.4.2/parsec-3.1.15.0 +hs-libraries: HSparsec-3.1.15.0 +depends: + base-4.17.0.0 bytestring-0.11.3.1 mtl-2.2.2 text-2.0.1 +haddock-interfaces: + ${pkgroot}/../../../share/doc/ghc-9.4.2/html/libraries/parsec-3.1.15.0/parsec.haddock +haddock-html: + ${pkgroot}/../../../share/doc/ghc-9.4.2/html/libraries/parsec-3.1.15.0 +--- +name: pretty +version: 1.1.3.6 +visibility: public +id: pretty-1.1.3.6 +key: pretty-1.1.3.6 +license: BSD-3-Clause +maintainer: David Terei +stability: Stable +homepage: http://github.com/haskell/pretty +synopsis: Pretty-printing library +description: + This package contains a pretty-printing library, a set of API's + that provides a way to easily print out text in a consistent + format of your choosing. This is useful for compilers and related + tools. + This library was originally designed by John Hughes's and has since + been heavily modified by Simon Peyton Jones. +category: Text +exposed: True +exposed-modules: + Text.PrettyPrint Text.PrettyPrint.Annotated + Text.PrettyPrint.Annotated.HughesPJ + Text.PrettyPrint.Annotated.HughesPJClass Text.PrettyPrint.HughesPJ + Text.PrettyPrint.HughesPJClass +import-dirs: ${pkgroot}/../lib/aarch64-osx-ghc-9.4.2/pretty-1.1.3.6 +library-dirs: ${pkgroot}/../lib/aarch64-osx-ghc-9.4.2/pretty-1.1.3.6 +dynamic-library-dirs: ${pkgroot}/../lib/aarch64-osx-ghc-9.4.2 +data-dir: ${pkgroot}/../share/aarch64-osx-ghc-9.4.2/pretty-1.1.3.6 +hs-libraries: HSpretty-1.1.3.6 +depends: base-4.17.0.0 deepseq-1.4.8.0 ghc-prim-0.9.0 +haddock-interfaces: + ${pkgroot}/../../../share/doc/ghc-9.4.2/html/libraries/pretty-1.1.3.6/pretty.haddock +haddock-html: + ${pkgroot}/../../../share/doc/ghc-9.4.2/html/libraries/pretty-1.1.3.6 +--- +name: process +version: 1.6.15.0 +visibility: public +id: process-1.6.15.0 +key: process-1.6.15.0 +license: BSD-3-Clause +maintainer: libraries@haskell.org +synopsis: Process libraries +description: + This package contains libraries for dealing with system processes. + The typed-process package is a more recent take on a process API, + which uses this package internally. It features better binary + support, easier concurrency, and a more composable API. You can + read more about it at + . +category: System +exposed: True +exposed-modules: System.Cmd System.Process System.Process.Internals +hidden-modules: System.Process.Common System.Process.Posix +import-dirs: ${pkgroot}/../lib/aarch64-osx-ghc-9.4.2/process-1.6.15.0 +library-dirs: ${pkgroot}/../lib/aarch64-osx-ghc-9.4.2/process-1.6.15.0 +dynamic-library-dirs: ${pkgroot}/../lib/aarch64-osx-ghc-9.4.2 +data-dir: ${pkgroot}/../share/aarch64-osx-ghc-9.4.2/process-1.6.15.0 +hs-libraries: HSprocess-1.6.15.0 +include-dirs: + ${pkgroot}/../lib/aarch64-osx-ghc-9.4.2/process-1.6.15.0/include +includes: runProcess.h +depends: + base-4.17.0.0 deepseq-1.4.8.0 directory-1.3.7.1 filepath-1.4.2.2 + unix-2.7.3 +haddock-interfaces: + ${pkgroot}/../../../share/doc/ghc-9.4.2/html/libraries/process-1.6.15.0/process.haddock +haddock-html: + ${pkgroot}/../../../share/doc/ghc-9.4.2/html/libraries/process-1.6.15.0 +--- +name: rts +version: 1.0.2 +visibility: public +id: rts-1.0.2 +key: rts-1.0.2 +license: BSD-3-Clause +maintainer: glasgow-haskell-users@haskell.org +exposed: True +library-dirs: + ${pkgroot}/../lib/aarch64-osx-ghc-9.4.2/rts-1.0.2 +dynamic-library-dirs: + ${pkgroot}/../lib/aarch64-osx-ghc-9.4.2 +data-dir: ${pkgroot}/../share/aarch64-osx-ghc-9.4.2/rts-1.0.2 +hs-libraries: HSrts-1.0.2 +extra-libraries: m dl ffi +include-dirs: + ${pkgroot}/../lib/aarch64-osx-ghc-9.4.2/rts-1.0.2/include +includes: Rts.h +ld-options: + "-Wl,-u,_hs_atomic_add64" "-Wl,-u,_hs_atomic_sub64" + "-Wl,-u,_hs_atomic_and64" "-Wl,-u,_hs_atomic_nand64" + "-Wl,-u,_hs_atomic_or64" "-Wl,-u,_hs_atomic_xor64" + "-Wl,-u,_hs_atomicread64" "-Wl,-u,_hs_atomicwrite64" + "-Wl,-u,_base_GHCziTopHandler_runIO_closure" + "-Wl,-u,_base_GHCziTopHandler_runNonIO_closure" + "-Wl,-u,_ghczmprim_GHCziTuple_Z0T_closure" + "-Wl,-u,_ghczmprim_GHCziTypes_True_closure" + "-Wl,-u,_ghczmprim_GHCziTypes_False_closure" + "-Wl,-u,_base_GHCziPack_unpackCString_closure" + "-Wl,-u,_base_GHCziWeak_runFinalizzerBatch_closure" + "-Wl,-u,_base_GHCziIOziException_stackOverflow_closure" + "-Wl,-u,_base_GHCziIOziException_heapOverflow_closure" + "-Wl,-u,_base_GHCziIOziException_allocationLimitExceeded_closure" + "-Wl,-u,_base_GHCziIOziException_blockedIndefinitelyOnMVar_closure" + "-Wl,-u,_base_GHCziIOziException_blockedIndefinitelyOnSTM_closure" + "-Wl,-u,_base_GHCziIOziException_cannotCompactFunction_closure" + "-Wl,-u,_base_GHCziIOziException_cannotCompactPinned_closure" + "-Wl,-u,_base_GHCziIOziException_cannotCompactMutable_closure" + "-Wl,-u,_base_GHCziIOPort_doubleReadException_closure" + "-Wl,-u,_base_ControlziExceptionziBase_nonTermination_closure" + "-Wl,-u,_base_ControlziExceptionziBase_nestedAtomically_closure" + "-Wl,-u,_base_GHCziEventziThread_blockedOnBadFD_closure" + "-Wl,-u,_base_GHCziConcziSync_runSparks_closure" + "-Wl,-u,_base_GHCziConcziIO_ensureIOManagerIsRunning_closure" + "-Wl,-u,_base_GHCziConcziIO_interruptIOManager_closure" + "-Wl,-u,_base_GHCziConcziIO_ioManagerCapabilitiesChanged_closure" + "-Wl,-u,_base_GHCziConcziSignal_runHandlersPtr_closure" + "-Wl,-u,_base_GHCziTopHandler_flushStdHandles_closure" + "-Wl,-u,_base_GHCziTopHandler_runMainIO_closure" + "-Wl,-u,_ghczmprim_GHCziTypes_Czh_con_info" + "-Wl,-u,_ghczmprim_GHCziTypes_Izh_con_info" + "-Wl,-u,_ghczmprim_GHCziTypes_Fzh_con_info" + "-Wl,-u,_ghczmprim_GHCziTypes_Dzh_con_info" + "-Wl,-u,_ghczmprim_GHCziTypes_Wzh_con_info" + "-Wl,-u,_base_GHCziPtr_Ptr_con_info" + "-Wl,-u,_base_GHCziPtr_FunPtr_con_info" + "-Wl,-u,_base_GHCziInt_I8zh_con_info" + "-Wl,-u,_base_GHCziInt_I16zh_con_info" + "-Wl,-u,_base_GHCziInt_I32zh_con_info" + "-Wl,-u,_base_GHCziInt_I64zh_con_info" + "-Wl,-u,_base_GHCziWord_W8zh_con_info" + "-Wl,-u,_base_GHCziWord_W16zh_con_info" + "-Wl,-u,_base_GHCziWord_W32zh_con_info" + "-Wl,-u,_base_GHCziWord_W64zh_con_info" + "-Wl,-u,_base_GHCziStable_StablePtr_con_info" + "-Wl,-u,_hs_atomic_add8" "-Wl,-u,_hs_atomic_add16" + "-Wl,-u,_hs_atomic_add32" "-Wl,-u,_hs_atomic_sub8" + "-Wl,-u,_hs_atomic_sub16" "-Wl,-u,_hs_atomic_sub32" + "-Wl,-u,_hs_atomic_and8" "-Wl,-u,_hs_atomic_and16" + "-Wl,-u,_hs_atomic_and32" "-Wl,-u,_hs_atomic_nand8" + "-Wl,-u,_hs_atomic_nand16" "-Wl,-u,_hs_atomic_nand32" + "-Wl,-u,_hs_atomic_or8" "-Wl,-u,_hs_atomic_or16" + "-Wl,-u,_hs_atomic_or32" "-Wl,-u,_hs_atomic_xor8" + "-Wl,-u,_hs_atomic_xor16" "-Wl,-u,_hs_atomic_xor32" + "-Wl,-u,_hs_cmpxchg8" "-Wl,-u,_hs_cmpxchg16" "-Wl,-u,_hs_cmpxchg32" + "-Wl,-u,_hs_cmpxchg64" "-Wl,-u,_hs_xchg8" "-Wl,-u,_hs_xchg16" + "-Wl,-u,_hs_xchg32" "-Wl,-u,_hs_xchg64" "-Wl,-u,_hs_atomicread8" + "-Wl,-u,_hs_atomicread16" "-Wl,-u,_hs_atomicread32" + "-Wl,-u,_hs_atomicwrite8" "-Wl,-u,_hs_atomicwrite16" + "-Wl,-u,_hs_atomicwrite32" + "-Wl,-u,_base_GHCziStackziCloneStack_StackSnapshot_closure" + "-Wl,-search_paths_first" "-Wl,-U,___darwin_check_fd_set_overflow" +--- +name: stm +version: 2.5.1.0 +visibility: public +id: stm-2.5.1.0 +key: stm-2.5.1.0 +license: BSD-3-Clause +maintainer: libraries@haskell.org +homepage: https://wiki.haskell.org/Software_transactional_memory +synopsis: Software Transactional Memory +description: + Software Transactional Memory, or STM, is an abstraction for + concurrent communication. The main benefits of STM are + /composability/ and /modularity/. That is, using STM you can write + concurrent abstractions that can be easily composed with any other + abstraction built using STM, without exposing the details of how + your abstraction ensures safety. This is typically not the case + with other forms of concurrent communication, such as locks or + 'MVar's. +category: Concurrency +exposed: True +exposed-modules: + Control.Concurrent.STM Control.Concurrent.STM.TArray + Control.Concurrent.STM.TBQueue Control.Concurrent.STM.TChan + Control.Concurrent.STM.TMVar Control.Concurrent.STM.TQueue + Control.Concurrent.STM.TSem Control.Concurrent.STM.TVar + Control.Monad.STM +hidden-modules: Control.Sequential.STM +import-dirs: ${pkgroot}/../lib/aarch64-osx-ghc-9.4.2/stm-2.5.1.0 +library-dirs: ${pkgroot}/../lib/aarch64-osx-ghc-9.4.2/stm-2.5.1.0 +dynamic-library-dirs: ${pkgroot}/../lib/aarch64-osx-ghc-9.4.2 +data-dir: ${pkgroot}/../share/aarch64-osx-ghc-9.4.2/stm-2.5.1.0 +hs-libraries: HSstm-2.5.1.0 +depends: array-0.5.4.0 base-4.17.0.0 +haddock-interfaces: + ${pkgroot}/../../../share/doc/ghc-9.4.2/html/libraries/stm-2.5.1.0/stm.haddock +haddock-html: + ${pkgroot}/../../../share/doc/ghc-9.4.2/html/libraries/stm-2.5.1.0 +--- +name: template-haskell +version: 2.19.0.0 +visibility: public +id: template-haskell-2.19.0.0 +key: template-haskell-2.19.0.0 +license: BSD-3-Clause +maintainer: libraries@haskell.org +synopsis: Support library for Template Haskell +description: + This package provides modules containing facilities for manipulating + Haskell source code using Template Haskell. + See for more + information. +category: Template Haskell +exposed: True +exposed-modules: + Language.Haskell.TH Language.Haskell.TH.CodeDo + Language.Haskell.TH.LanguageExtensions Language.Haskell.TH.Lib + Language.Haskell.TH.Lib.Internal Language.Haskell.TH.Ppr + Language.Haskell.TH.PprLib Language.Haskell.TH.Quote + Language.Haskell.TH.Syntax +hidden-modules: + Language.Haskell.TH.Lib.Map System.FilePath System.FilePath.Posix + System.FilePath.Windows +import-dirs: + ${pkgroot}/../lib/aarch64-osx-ghc-9.4.2/template-haskell-2.19.0.0 +library-dirs: + ${pkgroot}/../lib/aarch64-osx-ghc-9.4.2/template-haskell-2.19.0.0 +dynamic-library-dirs: ${pkgroot}/../lib/aarch64-osx-ghc-9.4.2 +data-dir: + ${pkgroot}/../share/aarch64-osx-ghc-9.4.2/template-haskell-2.19.0.0 +hs-libraries: HStemplate-haskell-2.19.0.0 +depends: + base-4.17.0.0 ghc-boot-th-9.4.2 ghc-prim-0.9.0 pretty-1.1.3.6 +haddock-interfaces: + ${pkgroot}/../../../share/doc/ghc-9.4.2/html/libraries/template-haskell-2.19.0.0/template-haskell.haddock +haddock-html: + ${pkgroot}/../../../share/doc/ghc-9.4.2/html/libraries/template-haskell-2.19.0.0 +--- +name: terminfo +version: 0.4.1.5 +visibility: public +id: terminfo-0.4.1.5 +key: terminfo-0.4.1.5 +license: BSD-3-Clause +copyright: (c) Judah Jacobson +maintainer: Judah Jacobson +author: Judah Jacobson +stability: Stable +homepage: https://github.com/judah/terminfo +synopsis: Haskell bindings to the terminfo library. +description: + This library provides an interface to the terminfo database (via bindings to the + curses library). allows POSIX + systems to interact with a variety of terminals using a standard set of capabilities. +category: User Interfaces +exposed: True +exposed-modules: + System.Console.Terminfo System.Console.Terminfo.Base + System.Console.Terminfo.Color System.Console.Terminfo.Cursor + System.Console.Terminfo.Edit System.Console.Terminfo.Effects + System.Console.Terminfo.Keys +import-dirs: ${pkgroot}/../lib/aarch64-osx-ghc-9.4.2/terminfo-0.4.1.5 +library-dirs: + ${pkgroot}/../lib/aarch64-osx-ghc-9.4.2/terminfo-0.4.1.5 +dynamic-library-dirs: + ${pkgroot}/../lib/aarch64-osx-ghc-9.4.2 +data-dir: ${pkgroot}/../share/aarch64-osx-ghc-9.4.2/terminfo-0.4.1.5 +hs-libraries: HSterminfo-0.4.1.5 +extra-libraries: tinfo +include-dirs: +depends: base-4.17.0.0 +haddock-interfaces: + ${pkgroot}/../../../share/doc/ghc-9.4.2/html/libraries/terminfo-0.4.1.5/terminfo.haddock +haddock-html: + ${pkgroot}/../../../share/doc/ghc-9.4.2/html/libraries/terminfo-0.4.1.5 +--- +name: text +version: 2.0.1 +visibility: public +id: text-2.0.1 +key: text-2.0.1 +license: BSD-2-Clause +copyright: + 2009-2011 Bryan O'Sullivan, 2008-2009 Tom Harper, 2021 Andrew Lelechenko +maintainer: + Haskell Text Team , Core Libraries Committee +author: Bryan O'Sullivan +homepage: https://github.com/haskell/text +synopsis: An efficient packed Unicode text type. +description: + An efficient packed, immutable Unicode text type (both strict and + lazy). + The 'Text' type represents Unicode character strings, in a time and + space-efficient manner. This package provides text processing + capabilities that are optimized for performance critical use, both + in terms of large data quantities and high speed. + The 'Text' type provides character-encoding, type-safe case + conversion via whole-string case conversion functions (see "Data.Text"). + It also provides a range of functions for converting 'Text' values to + and from 'ByteStrings', using several standard encodings + (see "Data.Text.Encoding"). + Efficient locale-sensitive support for text IO is also supported + (see "Data.Text.IO"). + These modules are intended to be imported qualified, to avoid name + clashes with Prelude functions, e.g. + > import qualified Data.Text as T + == ICU Support + To use an extended and very rich family of functions for working + with Unicode text (including normalization, regular expressions, + non-standard encodings, text breaking, and locales), see + the [text-icu package](https://hackage.haskell.org/package/text-icu) + based on the well-respected and liberally + licensed [ICU library](http://site.icu-project.org/). +category: Data, Text +exposed: True +exposed-modules: + Data.Text Data.Text.Array Data.Text.Encoding + Data.Text.Encoding.Error Data.Text.Foreign Data.Text.IO + Data.Text.Internal Data.Text.Internal.Builder + Data.Text.Internal.Builder.Functions + Data.Text.Internal.Builder.Int.Digits + Data.Text.Internal.Builder.RealFloat.Functions + Data.Text.Internal.ByteStringCompat + Data.Text.Internal.Encoding.Fusion + Data.Text.Internal.Encoding.Fusion.Common + Data.Text.Internal.Encoding.Utf16 Data.Text.Internal.Encoding.Utf32 + Data.Text.Internal.Encoding.Utf8 Data.Text.Internal.Fusion + Data.Text.Internal.Fusion.CaseMapping + Data.Text.Internal.Fusion.Common Data.Text.Internal.Fusion.Size + Data.Text.Internal.Fusion.Types Data.Text.Internal.IO + Data.Text.Internal.Lazy Data.Text.Internal.Lazy.Encoding.Fusion + Data.Text.Internal.Lazy.Fusion Data.Text.Internal.Lazy.Search + Data.Text.Internal.PrimCompat Data.Text.Internal.Private + Data.Text.Internal.Read Data.Text.Internal.Search + Data.Text.Internal.Unsafe Data.Text.Internal.Unsafe.Char + Data.Text.Lazy Data.Text.Lazy.Builder Data.Text.Lazy.Builder.Int + Data.Text.Lazy.Builder.RealFloat Data.Text.Lazy.Encoding + Data.Text.Lazy.IO Data.Text.Lazy.Internal Data.Text.Lazy.Read + Data.Text.Read Data.Text.Unsafe +hidden-modules: Data.Text.Show +import-dirs: ${pkgroot}/../lib/aarch64-osx-ghc-9.4.2/text-2.0.1 +library-dirs: ${pkgroot}/../lib/aarch64-osx-ghc-9.4.2/text-2.0.1 +dynamic-library-dirs: ${pkgroot}/../lib/aarch64-osx-ghc-9.4.2 +data-dir: ${pkgroot}/../share/aarch64-osx-ghc-9.4.2/text-2.0.1 +hs-libraries: HStext-2.0.1 +depends: + array-0.5.4.0 base-4.17.0.0 binary-0.8.9.1 bytestring-0.11.3.1 + deepseq-1.4.8.0 ghc-prim-0.9.0 template-haskell-2.19.0.0 +haddock-interfaces: + ${pkgroot}/../../../share/doc/ghc-9.4.2/html/libraries/text-2.0.1/text.haddock +haddock-html: + ${pkgroot}/../../../share/doc/ghc-9.4.2/html/libraries/text-2.0.1 +--- +name: time +version: 1.12.2 +visibility: public +id: time-1.12.2 +key: time-1.12.2 +license: BSD-2-Clause +maintainer: +author: Ashley Yakeley +stability: stable +homepage: https://github.com/haskell/time +synopsis: A time library +description: Time, clocks and calendars +category: Time +exposed: True +exposed-modules: + Data.Time Data.Time.Calendar Data.Time.Calendar.Easter + Data.Time.Calendar.Julian Data.Time.Calendar.Month + Data.Time.Calendar.MonthDay Data.Time.Calendar.OrdinalDate + Data.Time.Calendar.Quarter Data.Time.Calendar.WeekDate + Data.Time.Clock Data.Time.Clock.POSIX Data.Time.Clock.System + Data.Time.Clock.TAI Data.Time.Format Data.Time.Format.ISO8601 + Data.Time.Format.Internal Data.Time.LocalTime +hidden-modules: + Data.Format Data.Time.Calendar.CalendarDiffDays + Data.Time.Calendar.Days Data.Time.Calendar.Gregorian + Data.Time.Calendar.JulianYearDay Data.Time.Calendar.Private + Data.Time.Calendar.Types Data.Time.Calendar.Week + Data.Time.Clock.Internal.DiffTime + Data.Time.Clock.Internal.AbsoluteTime + Data.Time.Clock.Internal.NominalDiffTime + Data.Time.Clock.Internal.POSIXTime + Data.Time.Clock.Internal.UniversalTime + Data.Time.Clock.Internal.SystemTime + Data.Time.Clock.Internal.UTCTime Data.Time.Clock.Internal.CTimeval + Data.Time.Clock.Internal.CTimespec Data.Time.Clock.Internal.UTCDiff + Data.Time.LocalTime.Internal.TimeZone + Data.Time.LocalTime.Internal.TimeOfDay + Data.Time.LocalTime.Internal.CalendarDiffTime + Data.Time.LocalTime.Internal.LocalTime + Data.Time.LocalTime.Internal.ZonedTime Data.Time.Format.Parse + Data.Time.Format.Locale Data.Time.Format.Format.Class + Data.Time.Format.Format.Instances Data.Time.Format.Parse.Class + Data.Time.Format.Parse.Instances +import-dirs: ${pkgroot}/../lib/aarch64-osx-ghc-9.4.2/time-1.12.2 +library-dirs: ${pkgroot}/../lib/aarch64-osx-ghc-9.4.2/time-1.12.2 +dynamic-library-dirs: ${pkgroot}/../lib/aarch64-osx-ghc-9.4.2 +data-dir: ${pkgroot}/../share/aarch64-osx-ghc-9.4.2/time-1.12.2 +hs-libraries: HStime-1.12.2 +include-dirs: ${pkgroot}/../lib/aarch64-osx-ghc-9.4.2/time-1.12.2/include +depends: base-4.17.0.0 deepseq-1.4.8.0 +haddock-interfaces: + ${pkgroot}/../../../share/doc/ghc-9.4.2/html/libraries/time-1.12.2/time.haddock +haddock-html: + ${pkgroot}/../../../share/doc/ghc-9.4.2/html/libraries/time-1.12.2 +--- +name: transformers +version: 0.5.6.2 +visibility: public +id: transformers-0.5.6.2 +key: transformers-0.5.6.2 +license: BSD-3-Clause +maintainer: Ross Paterson +author: Andy Gill, Ross Paterson +synopsis: Concrete functor and monad transformers +description: + A portable library of functor and monad transformers, inspired by + the paper + * \"Functional Programming with Overloading and Higher-Order + Polymorphism\", by Mark P Jones, + in /Advanced School of Functional Programming/, 1995 + (). + This package contains: + * the monad transformer class (in "Control.Monad.Trans.Class") + * concrete functor and monad transformers, each with associated + operations and functions to lift operations associated with other + transformers. + The package can be used on its own in portable Haskell code, in + which case operations need to be manually lifted through transformer + stacks (see "Control.Monad.Trans.Class" for some examples). + Alternatively, it can be used with the non-portable monad classes in + the @mtl@ or @monads-tf@ packages, which automatically lift operations + introduced by monad transformers through other transformers. +category: Control +exposed: True +exposed-modules: + Control.Applicative.Backwards Control.Applicative.Lift + Control.Monad.Signatures Control.Monad.Trans.Accum + Control.Monad.Trans.Class Control.Monad.Trans.Cont + Control.Monad.Trans.Error Control.Monad.Trans.Except + Control.Monad.Trans.Identity Control.Monad.Trans.List + Control.Monad.Trans.Maybe Control.Monad.Trans.RWS + Control.Monad.Trans.RWS.CPS Control.Monad.Trans.RWS.Lazy + Control.Monad.Trans.RWS.Strict Control.Monad.Trans.Reader + Control.Monad.Trans.Select Control.Monad.Trans.State + Control.Monad.Trans.State.Lazy Control.Monad.Trans.State.Strict + Control.Monad.Trans.Writer Control.Monad.Trans.Writer.CPS + Control.Monad.Trans.Writer.Lazy Control.Monad.Trans.Writer.Strict + Data.Functor.Constant Data.Functor.Reverse +import-dirs: + ${pkgroot}/../lib/aarch64-osx-ghc-9.4.2/transformers-0.5.6.2 +library-dirs: + ${pkgroot}/../lib/aarch64-osx-ghc-9.4.2/transformers-0.5.6.2 +dynamic-library-dirs: ${pkgroot}/../lib/aarch64-osx-ghc-9.4.2 +data-dir: + ${pkgroot}/../share/aarch64-osx-ghc-9.4.2/transformers-0.5.6.2 +hs-libraries: HStransformers-0.5.6.2 +depends: base-4.17.0.0 +haddock-interfaces: + ${pkgroot}/../../../share/doc/ghc-9.4.2/html/libraries/transformers-0.5.6.2/transformers.haddock +haddock-html: + ${pkgroot}/../../../share/doc/ghc-9.4.2/html/libraries/transformers-0.5.6.2 +--- +name: unix +version: 2.7.3 +visibility: public +id: unix-2.7.3 +key: unix-2.7.3 +license: BSD-3-Clause +maintainer: libraries@haskell.org +homepage: https://github.com/haskell/unix +synopsis: POSIX functionality +description: + This package gives you access to the set of operating system + services standardised by + + (or the IEEE Portable Operating System Interface for Computing + Environments - IEEE Std. 1003.1). + The package is not supported under Windows. +category: System +exposed: True +exposed-modules: + System.Posix System.Posix.ByteString + System.Posix.ByteString.FilePath System.Posix.Directory + System.Posix.Directory.ByteString System.Posix.DynamicLinker + System.Posix.DynamicLinker.ByteString + System.Posix.DynamicLinker.Module + System.Posix.DynamicLinker.Module.ByteString + System.Posix.DynamicLinker.Prim System.Posix.Env + System.Posix.Env.ByteString System.Posix.Error System.Posix.Fcntl + System.Posix.Files System.Posix.Files.ByteString System.Posix.IO + System.Posix.IO.ByteString System.Posix.Process + System.Posix.Process.ByteString System.Posix.Process.Internals + System.Posix.Resource System.Posix.Semaphore System.Posix.SharedMem + System.Posix.Signals System.Posix.Signals.Exts System.Posix.Temp + System.Posix.Temp.ByteString System.Posix.Terminal + System.Posix.Terminal.ByteString System.Posix.Time + System.Posix.Unistd System.Posix.User +hidden-modules: + System.Posix.Directory.Common System.Posix.DynamicLinker.Common + System.Posix.Files.Common System.Posix.IO.Common + System.Posix.Process.Common System.Posix.Terminal.Common +import-dirs: ${pkgroot}/../lib/aarch64-osx-ghc-9.4.2/unix-2.7.3 +library-dirs: ${pkgroot}/../lib/aarch64-osx-ghc-9.4.2/unix-2.7.3 +dynamic-library-dirs: ${pkgroot}/../lib/aarch64-osx-ghc-9.4.2 +data-dir: ${pkgroot}/../share/aarch64-osx-ghc-9.4.2/unix-2.7.3 +hs-libraries: HSunix-2.7.3 +include-dirs: ${pkgroot}/../lib/aarch64-osx-ghc-9.4.2/unix-2.7.3/include +includes: HsUnix.h execvpe.h +depends: base-4.17.0.0 bytestring-0.11.3.1 time-1.12.2 +haddock-interfaces: + ${pkgroot}/../../../share/doc/ghc-9.4.2/html/libraries/unix-2.7.3/unix.haddock +haddock-html: + ${pkgroot}/../../../share/doc/ghc-9.4.2/html/libraries/unix-2.7.3 +--- +name: xhtml +version: 3000.2.2.1 +visibility: public +id: xhtml-3000.2.2.1 +key: xhtml-3000.2.2.1 +license: BSD-3-Clause +copyright: + Bjorn Bringert 2004-2006, Andy Gill and the Oregon + Graduate Institute of Science and Technology, 1999-2001 +maintainer: Chris Dornan +author: Bjorn Bringert +stability: Stable +homepage: https://github.com/haskell/xhtml +synopsis: An XHTML combinator library +description: + This package provides combinators for producing + XHTML 1.0, including the Strict, Transitional and + Frameset variants. +category: Web, XML, Pretty Printer +exposed: True +exposed-modules: + Text.XHtml Text.XHtml.Debug Text.XHtml.Frameset Text.XHtml.Strict + Text.XHtml.Table Text.XHtml.Transitional +hidden-modules: + Text.XHtml.Strict.Attributes Text.XHtml.Strict.Elements + Text.XHtml.Frameset.Attributes Text.XHtml.Frameset.Elements + Text.XHtml.Transitional.Attributes Text.XHtml.Transitional.Elements + Text.XHtml.BlockTable Text.XHtml.Extras Text.XHtml.Internals +import-dirs: ${pkgroot}/../lib/aarch64-osx-ghc-9.4.2/xhtml-3000.2.2.1 +library-dirs: ${pkgroot}/../lib/aarch64-osx-ghc-9.4.2/xhtml-3000.2.2.1 +dynamic-library-dirs: ${pkgroot}/../lib/aarch64-osx-ghc-9.4.2 +data-dir: ${pkgroot}/../share/aarch64-osx-ghc-9.4.2/xhtml-3000.2.2.1 +hs-libraries: HSxhtml-3000.2.2.1 +depends: base-4.17.0.0 +haddock-interfaces: + ${pkgroot}/../../../share/doc/ghc-9.4.2/html/libraries/xhtml-3000.2.2.1/xhtml.haddock +haddock-html: + ${pkgroot}/../../../share/doc/ghc-9.4.2/html/libraries/xhtml-3000.2.2.1 +--- +name: system-cxx-std-lib +version: 1.0 +visibility: public +id: system-cxx-std-lib-1.0 +key: system-cxx-std-lib-1.0 +synopsis: + A placeholder for the system's C++ standard library implementation. +category: System +exposed: True +extra-libraries: c++ c++abi diff --git a/materialized/dummy-ghc/ghc-9.4.2-aarch64-darwin/ghc-pkg/version b/materialized/dummy-ghc/ghc-9.4.2-aarch64-darwin/ghc-pkg/version new file mode 100644 index 0000000000..abbe91352d --- /dev/null +++ b/materialized/dummy-ghc/ghc-9.4.2-aarch64-darwin/ghc-pkg/version @@ -0,0 +1 @@ +GHC package manager version 9.4.2 diff --git a/materialized/dummy-ghc/ghc-9.4.2-aarch64-darwin/ghc/info b/materialized/dummy-ghc/ghc-9.4.2-aarch64-darwin/ghc/info new file mode 100644 index 0000000000..10f024dd66 --- /dev/null +++ b/materialized/dummy-ghc/ghc-9.4.2-aarch64-darwin/ghc/info @@ -0,0 +1,80 @@ + [("Project name","The Glorious Glasgow Haskell Compilation System") + ,("GCC extra via C opts","") + ,("C compiler command","clang") + ,("C compiler flags","--target=arm64-apple-darwin ") + ,("C++ compiler command","clang++") + ,("C++ compiler flags","--target=arm64-apple-darwin ") + ,("C compiler link flags","") + ,("C compiler supports -no-pie","NO") + ,("Haskell CPP command","clang") + ,("Haskell CPP flags","-E -undef -traditional -Wno-invalid-pp-token -Wno-unicode -Wno-trigraphs") + ,("ld command","ld") + ,("ld flags","") + ,("ld supports compact unwind","YES") + ,("ld supports build-id","NO") + ,("ld supports filelist","YES") + ,("ld is GNU ld","NO") + ,("Merge objects command","ld") + ,("Merge objects flags","-r") + ,("ar command","ar") + ,("ar flags","qcls") + ,("ar supports at file","NO") + ,("ar supports -L","NO") + ,("ranlib command","ranlib") + ,("otool command","otool") + ,("install_name_tool command","install_name_tool") + ,("touch command","touch") + ,("dllwrap command","/bin/false") + ,("windres command","/bin/false") + ,("libtool command","libtool") + ,("cross compiling","NO") + ,("target platform string","aarch64-apple-darwin") + ,("target os","OSDarwin") + ,("target arch","ArchAArch64") + ,("target word size","8") + ,("target word big endian","NO") + ,("target has GNU nonexec stack","NO") + ,("target has .ident directive","YES") + ,("target has subsections via symbols","NO") + ,("target has RTS linker","YES") + ,("target has libm","YES") + ,("Unregisterised","NO") + ,("LLVM target","arm64-apple-darwin") + ,("LLVM llc command","llc") + ,("LLVM opt command","opt") + ,("LLVM clang command","clang") + ,("Use inplace MinGW toolchain","NO") + ,("Use interpreter","YES") + ,("Support SMP","YES") + ,("RTS ways","debug thr thr_debug thr_p dyn debug_dyn thr_dyn thr_debug_dyn thr_debug_p debug_p") + ,("Tables next to code","YES") + ,("Leading underscore","YES") + ,("Use LibFFI","YES") + ,("RTS expects libdw","NO") + ,("Project version","9.4.2") + ,("Project Git commit id","e8a889a7fc670532a3bf883a3e25acba92e6e6e1") + ,("Project Version Int","904") + ,("Project Patch Level","2") + ,("Project Patch Level1","2") + ,("Project Patch Level2","0") + ,("Booter version","9.0.2") + ,("Stage","2") + ,("Build platform","aarch64-apple-darwin") + ,("Host platform","aarch64-apple-darwin") + ,("Target platform","aarch64-apple-darwin") + ,("Have interpreter","YES") + ,("Object splitting supported","NO") + ,("Have native code generator","YES") + ,("Target default backend","NCG") + ,("Support dynamic-too","YES") + ,("Support parallel --make","YES") + ,("Support reexported-modules","YES") + ,("Support thinning and renaming package flags","YES") + ,("Support Backpack","YES") + ,("Requires unified installed package IDs","YES") + ,("Uses package keys","YES") + ,("Uses unit IDs","YES") + ,("GHC Dynamic","YES") + ,("GHC Profiled","NO") + ,("Debug on","NO") + ] diff --git a/materialized/dummy-ghc/ghc-9.4.2-aarch64-darwin/ghc/numeric-version b/materialized/dummy-ghc/ghc-9.4.2-aarch64-darwin/ghc/numeric-version new file mode 100644 index 0000000000..3c40359d3d --- /dev/null +++ b/materialized/dummy-ghc/ghc-9.4.2-aarch64-darwin/ghc/numeric-version @@ -0,0 +1 @@ +9.4.2 diff --git a/materialized/dummy-ghc/ghc-9.4.2-aarch64-darwin/ghc/supported-languages b/materialized/dummy-ghc/ghc-9.4.2-aarch64-darwin/ghc/supported-languages new file mode 100644 index 0000000000..331def5550 --- /dev/null +++ b/materialized/dummy-ghc/ghc-9.4.2-aarch64-darwin/ghc/supported-languages @@ -0,0 +1,268 @@ +Haskell98 +Haskell2010 +GHC2021 +Unsafe +Trustworthy +Safe +AllowAmbiguousTypes +NoAllowAmbiguousTypes +AlternativeLayoutRule +NoAlternativeLayoutRule +AlternativeLayoutRuleTransitional +NoAlternativeLayoutRuleTransitional +Arrows +NoArrows +AutoDeriveTypeable +NoAutoDeriveTypeable +BangPatterns +NoBangPatterns +BinaryLiterals +NoBinaryLiterals +CApiFFI +NoCApiFFI +CPP +NoCPP +CUSKs +NoCUSKs +ConstrainedClassMethods +NoConstrainedClassMethods +ConstraintKinds +NoConstraintKinds +DataKinds +NoDataKinds +DatatypeContexts +NoDatatypeContexts +DefaultSignatures +NoDefaultSignatures +DeriveAnyClass +NoDeriveAnyClass +DeriveDataTypeable +NoDeriveDataTypeable +DeriveFoldable +NoDeriveFoldable +DeriveFunctor +NoDeriveFunctor +DeriveGeneric +NoDeriveGeneric +DeriveLift +NoDeriveLift +DeriveTraversable +NoDeriveTraversable +DerivingStrategies +NoDerivingStrategies +DerivingVia +NoDerivingVia +DisambiguateRecordFields +NoDisambiguateRecordFields +DoAndIfThenElse +NoDoAndIfThenElse +BlockArguments +NoBlockArguments +DoRec +NoDoRec +DuplicateRecordFields +NoDuplicateRecordFields +FieldSelectors +NoFieldSelectors +EmptyCase +NoEmptyCase +EmptyDataDecls +NoEmptyDataDecls +EmptyDataDeriving +NoEmptyDataDeriving +ExistentialQuantification +NoExistentialQuantification +ExplicitForAll +NoExplicitForAll +ExplicitNamespaces +NoExplicitNamespaces +ExtendedDefaultRules +NoExtendedDefaultRules +FlexibleContexts +NoFlexibleContexts +FlexibleInstances +NoFlexibleInstances +ForeignFunctionInterface +NoForeignFunctionInterface +FunctionalDependencies +NoFunctionalDependencies +GADTSyntax +NoGADTSyntax +GADTs +NoGADTs +GHCForeignImportPrim +NoGHCForeignImportPrim +GeneralizedNewtypeDeriving +NoGeneralizedNewtypeDeriving +GeneralisedNewtypeDeriving +NoGeneralisedNewtypeDeriving +ImplicitParams +NoImplicitParams +ImplicitPrelude +NoImplicitPrelude +ImportQualifiedPost +NoImportQualifiedPost +ImpredicativeTypes +NoImpredicativeTypes +IncoherentInstances +NoIncoherentInstances +TypeFamilyDependencies +NoTypeFamilyDependencies +InstanceSigs +NoInstanceSigs +ApplicativeDo +NoApplicativeDo +InterruptibleFFI +NoInterruptibleFFI +JavaScriptFFI +NoJavaScriptFFI +KindSignatures +NoKindSignatures +LambdaCase +NoLambdaCase +LexicalNegation +NoLexicalNegation +LiberalTypeSynonyms +NoLiberalTypeSynonyms +LinearTypes +NoLinearTypes +MagicHash +NoMagicHash +MonadComprehensions +NoMonadComprehensions +MonoLocalBinds +NoMonoLocalBinds +DeepSubsumption +NoDeepSubsumption +MonomorphismRestriction +NoMonomorphismRestriction +MultiParamTypeClasses +NoMultiParamTypeClasses +MultiWayIf +NoMultiWayIf +NumericUnderscores +NoNumericUnderscores +NPlusKPatterns +NoNPlusKPatterns +NamedFieldPuns +NoNamedFieldPuns +NamedWildCards +NoNamedWildCards +NegativeLiterals +NoNegativeLiterals +HexFloatLiterals +NoHexFloatLiterals +NondecreasingIndentation +NoNondecreasingIndentation +NullaryTypeClasses +NoNullaryTypeClasses +NumDecimals +NoNumDecimals +OverlappingInstances +NoOverlappingInstances +OverloadedLabels +NoOverloadedLabels +OverloadedLists +NoOverloadedLists +OverloadedStrings +NoOverloadedStrings +PackageImports +NoPackageImports +ParallelArrays +NoParallelArrays +ParallelListComp +NoParallelListComp +PartialTypeSignatures +NoPartialTypeSignatures +PatternGuards +NoPatternGuards +PatternSignatures +NoPatternSignatures +PatternSynonyms +NoPatternSynonyms +PolyKinds +NoPolyKinds +PolymorphicComponents +NoPolymorphicComponents +QuantifiedConstraints +NoQuantifiedConstraints +PostfixOperators +NoPostfixOperators +QuasiQuotes +NoQuasiQuotes +QualifiedDo +NoQualifiedDo +Rank2Types +NoRank2Types +RankNTypes +NoRankNTypes +RebindableSyntax +NoRebindableSyntax +OverloadedRecordDot +NoOverloadedRecordDot +OverloadedRecordUpdate +NoOverloadedRecordUpdate +RecordPuns +NoRecordPuns +RecordWildCards +NoRecordWildCards +RecursiveDo +NoRecursiveDo +RelaxedLayout +NoRelaxedLayout +RelaxedPolyRec +NoRelaxedPolyRec +RoleAnnotations +NoRoleAnnotations +ScopedTypeVariables +NoScopedTypeVariables +StandaloneDeriving +NoStandaloneDeriving +StarIsType +NoStarIsType +StaticPointers +NoStaticPointers +Strict +NoStrict +StrictData +NoStrictData +TemplateHaskell +NoTemplateHaskell +TemplateHaskellQuotes +NoTemplateHaskellQuotes +StandaloneKindSignatures +NoStandaloneKindSignatures +TraditionalRecordSyntax +NoTraditionalRecordSyntax +TransformListComp +NoTransformListComp +TupleSections +NoTupleSections +TypeApplications +NoTypeApplications +TypeInType +NoTypeInType +TypeFamilies +NoTypeFamilies +TypeOperators +NoTypeOperators +TypeSynonymInstances +NoTypeSynonymInstances +UnboxedTuples +NoUnboxedTuples +UnboxedSums +NoUnboxedSums +UndecidableInstances +NoUndecidableInstances +UndecidableSuperClasses +NoUndecidableSuperClasses +UnicodeSyntax +NoUnicodeSyntax +UnliftedDatatypes +NoUnliftedDatatypes +UnliftedFFITypes +NoUnliftedFFITypes +UnliftedNewtypes +NoUnliftedNewtypes +ViewPatterns +NoViewPatterns diff --git a/materialized/dummy-ghc/ghc-9.4.2-aarch64-darwin/ghc/version b/materialized/dummy-ghc/ghc-9.4.2-aarch64-darwin/ghc/version new file mode 100644 index 0000000000..38b06e651d --- /dev/null +++ b/materialized/dummy-ghc/ghc-9.4.2-aarch64-darwin/ghc/version @@ -0,0 +1 @@ +The Glorious Glasgow Haskell Compilation System, version 9.4.2 diff --git a/materialized/ghc-boot-packages-nix/ghc941-aarch64/deriveConstants.nix b/materialized/ghc-boot-packages-nix/ghc941-aarch64/deriveConstants.nix new file mode 100644 index 0000000000..a981b275ae --- /dev/null +++ b/materialized/ghc-boot-packages-nix/ghc941-aarch64/deriveConstants.nix @@ -0,0 +1,39 @@ +{ system + , compiler + , flags + , pkgs + , hsPkgs + , pkgconfPkgs + , errorHandler + , config + , ... }: + { + flags = {}; + package = { + specVersion = "1.10"; + identifier = { name = "deriveConstants"; version = "0.1"; }; + license = "BSD-3-Clause"; + copyright = "XXX"; + maintainer = "XXX"; + author = "XXX"; + homepage = ""; + url = ""; + synopsis = "Derive header files containing various constants for the GHC build process"; + description = "This utility is responsible for generating a number of C header files\nneeded during the GHC build process. See @rts/include/ghc.mk@ in the GHC\nbuild system for details."; + buildType = "Simple"; + }; + components = { + exes = { + "deriveConstants" = { + depends = [ + (hsPkgs."base" or (errorHandler.buildDepError "base")) + (hsPkgs."containers" or (errorHandler.buildDepError "containers")) + (hsPkgs."process" or (errorHandler.buildDepError "process")) + (hsPkgs."filepath" or (errorHandler.buildDepError "filepath")) + (hsPkgs."directory" or (errorHandler.buildDepError "directory")) + ]; + buildable = true; + }; + }; + }; + } // rec { src = (pkgs.lib).mkDefault ./.; } diff --git a/materialized/ghc-boot-packages-nix/ghc941-aarch64/genprimopcode.nix b/materialized/ghc-boot-packages-nix/ghc941-aarch64/genprimopcode.nix new file mode 100644 index 0000000000..a2bc7e09d1 --- /dev/null +++ b/materialized/ghc-boot-packages-nix/ghc941-aarch64/genprimopcode.nix @@ -0,0 +1,40 @@ +{ system + , compiler + , flags + , pkgs + , hsPkgs + , pkgconfPkgs + , errorHandler + , config + , ... }: + { + flags = { build-tool-depends = true; }; + package = { + specVersion = "2.0"; + identifier = { name = "genprimopcode"; version = "0.1"; }; + license = "BSD-3-Clause"; + copyright = "XXX"; + maintainer = "XXX"; + author = "XXX"; + homepage = ""; + url = ""; + synopsis = "Generates various files implementing GHC's primitive operations."; + description = "This utility reads a textual description of GHC's primitive operations\n(@primops.txt.pp@) and produces a number of outputs. These include,\n\n* the @GHC.Prim@ module included in the @ghc-prim@ package.\n* the @GHC.PrimopWrappers@ module included in the @ghc-prim@ package.\n* an LaTeX document describing the primitive operations."; + buildType = "Simple"; + }; + components = { + exes = { + "genprimopcode" = { + depends = [ + (hsPkgs."base" or (errorHandler.buildDepError "base")) + (hsPkgs."array" or (errorHandler.buildDepError "array")) + ]; + build-tools = (pkgs.lib).optionals (flags.build-tool-depends) [ + (hsPkgs.buildPackages.alex.components.exes.alex or (pkgs.buildPackages.alex or (errorHandler.buildToolDepError "alex:alex"))) + (hsPkgs.buildPackages.happy.components.exes.happy or (pkgs.buildPackages.happy or (errorHandler.buildToolDepError "happy:happy"))) + ]; + buildable = true; + }; + }; + }; + } // rec { src = (pkgs.lib).mkDefault ./.; } diff --git a/materialized/ghc-boot-packages-nix/ghc942-aarch64/deriveConstants.nix b/materialized/ghc-boot-packages-nix/ghc942-aarch64/deriveConstants.nix new file mode 100644 index 0000000000..a981b275ae --- /dev/null +++ b/materialized/ghc-boot-packages-nix/ghc942-aarch64/deriveConstants.nix @@ -0,0 +1,39 @@ +{ system + , compiler + , flags + , pkgs + , hsPkgs + , pkgconfPkgs + , errorHandler + , config + , ... }: + { + flags = {}; + package = { + specVersion = "1.10"; + identifier = { name = "deriveConstants"; version = "0.1"; }; + license = "BSD-3-Clause"; + copyright = "XXX"; + maintainer = "XXX"; + author = "XXX"; + homepage = ""; + url = ""; + synopsis = "Derive header files containing various constants for the GHC build process"; + description = "This utility is responsible for generating a number of C header files\nneeded during the GHC build process. See @rts/include/ghc.mk@ in the GHC\nbuild system for details."; + buildType = "Simple"; + }; + components = { + exes = { + "deriveConstants" = { + depends = [ + (hsPkgs."base" or (errorHandler.buildDepError "base")) + (hsPkgs."containers" or (errorHandler.buildDepError "containers")) + (hsPkgs."process" or (errorHandler.buildDepError "process")) + (hsPkgs."filepath" or (errorHandler.buildDepError "filepath")) + (hsPkgs."directory" or (errorHandler.buildDepError "directory")) + ]; + buildable = true; + }; + }; + }; + } // rec { src = (pkgs.lib).mkDefault ./.; } diff --git a/materialized/ghc-boot-packages-nix/ghc942-aarch64/genprimopcode.nix b/materialized/ghc-boot-packages-nix/ghc942-aarch64/genprimopcode.nix new file mode 100644 index 0000000000..a2bc7e09d1 --- /dev/null +++ b/materialized/ghc-boot-packages-nix/ghc942-aarch64/genprimopcode.nix @@ -0,0 +1,40 @@ +{ system + , compiler + , flags + , pkgs + , hsPkgs + , pkgconfPkgs + , errorHandler + , config + , ... }: + { + flags = { build-tool-depends = true; }; + package = { + specVersion = "2.0"; + identifier = { name = "genprimopcode"; version = "0.1"; }; + license = "BSD-3-Clause"; + copyright = "XXX"; + maintainer = "XXX"; + author = "XXX"; + homepage = ""; + url = ""; + synopsis = "Generates various files implementing GHC's primitive operations."; + description = "This utility reads a textual description of GHC's primitive operations\n(@primops.txt.pp@) and produces a number of outputs. These include,\n\n* the @GHC.Prim@ module included in the @ghc-prim@ package.\n* the @GHC.PrimopWrappers@ module included in the @ghc-prim@ package.\n* an LaTeX document describing the primitive operations."; + buildType = "Simple"; + }; + components = { + exes = { + "genprimopcode" = { + depends = [ + (hsPkgs."base" or (errorHandler.buildDepError "base")) + (hsPkgs."array" or (errorHandler.buildDepError "array")) + ]; + build-tools = (pkgs.lib).optionals (flags.build-tool-depends) [ + (hsPkgs.buildPackages.alex.components.exes.alex or (pkgs.buildPackages.alex or (errorHandler.buildToolDepError "alex:alex"))) + (hsPkgs.buildPackages.happy.components.exes.happy or (pkgs.buildPackages.happy or (errorHandler.buildToolDepError "happy:happy"))) + ]; + buildable = true; + }; + }; + }; + } // rec { src = (pkgs.lib).mkDefault ./.; } diff --git a/materialized/ghc-boot-packages-nix/ghc942/deriveConstants.nix b/materialized/ghc-boot-packages-nix/ghc942/deriveConstants.nix new file mode 100644 index 0000000000..a981b275ae --- /dev/null +++ b/materialized/ghc-boot-packages-nix/ghc942/deriveConstants.nix @@ -0,0 +1,39 @@ +{ system + , compiler + , flags + , pkgs + , hsPkgs + , pkgconfPkgs + , errorHandler + , config + , ... }: + { + flags = {}; + package = { + specVersion = "1.10"; + identifier = { name = "deriveConstants"; version = "0.1"; }; + license = "BSD-3-Clause"; + copyright = "XXX"; + maintainer = "XXX"; + author = "XXX"; + homepage = ""; + url = ""; + synopsis = "Derive header files containing various constants for the GHC build process"; + description = "This utility is responsible for generating a number of C header files\nneeded during the GHC build process. See @rts/include/ghc.mk@ in the GHC\nbuild system for details."; + buildType = "Simple"; + }; + components = { + exes = { + "deriveConstants" = { + depends = [ + (hsPkgs."base" or (errorHandler.buildDepError "base")) + (hsPkgs."containers" or (errorHandler.buildDepError "containers")) + (hsPkgs."process" or (errorHandler.buildDepError "process")) + (hsPkgs."filepath" or (errorHandler.buildDepError "filepath")) + (hsPkgs."directory" or (errorHandler.buildDepError "directory")) + ]; + buildable = true; + }; + }; + }; + } // rec { src = (pkgs.lib).mkDefault ./.; } diff --git a/materialized/ghc-boot-packages-nix/ghc942/genprimopcode.nix b/materialized/ghc-boot-packages-nix/ghc942/genprimopcode.nix new file mode 100644 index 0000000000..a2bc7e09d1 --- /dev/null +++ b/materialized/ghc-boot-packages-nix/ghc942/genprimopcode.nix @@ -0,0 +1,40 @@ +{ system + , compiler + , flags + , pkgs + , hsPkgs + , pkgconfPkgs + , errorHandler + , config + , ... }: + { + flags = { build-tool-depends = true; }; + package = { + specVersion = "2.0"; + identifier = { name = "genprimopcode"; version = "0.1"; }; + license = "BSD-3-Clause"; + copyright = "XXX"; + maintainer = "XXX"; + author = "XXX"; + homepage = ""; + url = ""; + synopsis = "Generates various files implementing GHC's primitive operations."; + description = "This utility reads a textual description of GHC's primitive operations\n(@primops.txt.pp@) and produces a number of outputs. These include,\n\n* the @GHC.Prim@ module included in the @ghc-prim@ package.\n* the @GHC.PrimopWrappers@ module included in the @ghc-prim@ package.\n* an LaTeX document describing the primitive operations."; + buildType = "Simple"; + }; + components = { + exes = { + "genprimopcode" = { + depends = [ + (hsPkgs."base" or (errorHandler.buildDepError "base")) + (hsPkgs."array" or (errorHandler.buildDepError "array")) + ]; + build-tools = (pkgs.lib).optionals (flags.build-tool-depends) [ + (hsPkgs.buildPackages.alex.components.exes.alex or (pkgs.buildPackages.alex or (errorHandler.buildToolDepError "alex:alex"))) + (hsPkgs.buildPackages.happy.components.exes.happy or (pkgs.buildPackages.happy or (errorHandler.buildToolDepError "happy:happy"))) + ]; + buildable = true; + }; + }; + }; + } // rec { src = (pkgs.lib).mkDefault ./.; } diff --git a/materialized/ghc-boot-packages-nix/ghc943-aarch64/deriveConstants.nix b/materialized/ghc-boot-packages-nix/ghc943-aarch64/deriveConstants.nix new file mode 100644 index 0000000000..a981b275ae --- /dev/null +++ b/materialized/ghc-boot-packages-nix/ghc943-aarch64/deriveConstants.nix @@ -0,0 +1,39 @@ +{ system + , compiler + , flags + , pkgs + , hsPkgs + , pkgconfPkgs + , errorHandler + , config + , ... }: + { + flags = {}; + package = { + specVersion = "1.10"; + identifier = { name = "deriveConstants"; version = "0.1"; }; + license = "BSD-3-Clause"; + copyright = "XXX"; + maintainer = "XXX"; + author = "XXX"; + homepage = ""; + url = ""; + synopsis = "Derive header files containing various constants for the GHC build process"; + description = "This utility is responsible for generating a number of C header files\nneeded during the GHC build process. See @rts/include/ghc.mk@ in the GHC\nbuild system for details."; + buildType = "Simple"; + }; + components = { + exes = { + "deriveConstants" = { + depends = [ + (hsPkgs."base" or (errorHandler.buildDepError "base")) + (hsPkgs."containers" or (errorHandler.buildDepError "containers")) + (hsPkgs."process" or (errorHandler.buildDepError "process")) + (hsPkgs."filepath" or (errorHandler.buildDepError "filepath")) + (hsPkgs."directory" or (errorHandler.buildDepError "directory")) + ]; + buildable = true; + }; + }; + }; + } // rec { src = (pkgs.lib).mkDefault ./.; } diff --git a/materialized/ghc-boot-packages-nix/ghc943-aarch64/genprimopcode.nix b/materialized/ghc-boot-packages-nix/ghc943-aarch64/genprimopcode.nix new file mode 100644 index 0000000000..a2bc7e09d1 --- /dev/null +++ b/materialized/ghc-boot-packages-nix/ghc943-aarch64/genprimopcode.nix @@ -0,0 +1,40 @@ +{ system + , compiler + , flags + , pkgs + , hsPkgs + , pkgconfPkgs + , errorHandler + , config + , ... }: + { + flags = { build-tool-depends = true; }; + package = { + specVersion = "2.0"; + identifier = { name = "genprimopcode"; version = "0.1"; }; + license = "BSD-3-Clause"; + copyright = "XXX"; + maintainer = "XXX"; + author = "XXX"; + homepage = ""; + url = ""; + synopsis = "Generates various files implementing GHC's primitive operations."; + description = "This utility reads a textual description of GHC's primitive operations\n(@primops.txt.pp@) and produces a number of outputs. These include,\n\n* the @GHC.Prim@ module included in the @ghc-prim@ package.\n* the @GHC.PrimopWrappers@ module included in the @ghc-prim@ package.\n* an LaTeX document describing the primitive operations."; + buildType = "Simple"; + }; + components = { + exes = { + "genprimopcode" = { + depends = [ + (hsPkgs."base" or (errorHandler.buildDepError "base")) + (hsPkgs."array" or (errorHandler.buildDepError "array")) + ]; + build-tools = (pkgs.lib).optionals (flags.build-tool-depends) [ + (hsPkgs.buildPackages.alex.components.exes.alex or (pkgs.buildPackages.alex or (errorHandler.buildToolDepError "alex:alex"))) + (hsPkgs.buildPackages.happy.components.exes.happy or (pkgs.buildPackages.happy or (errorHandler.buildToolDepError "happy:happy"))) + ]; + buildable = true; + }; + }; + }; + } // rec { src = (pkgs.lib).mkDefault ./.; } diff --git a/materialized/ghc-extra-projects/default/ghc942/.plan.nix/deriveConstants.nix b/materialized/ghc-extra-projects/default/ghc942/.plan.nix/deriveConstants.nix new file mode 100644 index 0000000000..0b0d43f547 --- /dev/null +++ b/materialized/ghc-extra-projects/default/ghc942/.plan.nix/deriveConstants.nix @@ -0,0 +1,48 @@ +{ system + , compiler + , flags + , pkgs + , hsPkgs + , pkgconfPkgs + , errorHandler + , config + , ... }: + { + flags = {}; + package = { + specVersion = "1.10"; + identifier = { name = "deriveConstants"; version = "0.1"; }; + license = "BSD-3-Clause"; + copyright = "XXX"; + maintainer = "XXX"; + author = "XXX"; + homepage = ""; + url = ""; + synopsis = "Derive header files containing various constants for the GHC build process"; + description = "This utility is responsible for generating a number of C header files\nneeded during the GHC build process. See @rts/include/ghc.mk@ in the GHC\nbuild system for details."; + buildType = "Simple"; + isLocal = true; + detailLevel = "FullDetails"; + licenseFiles = []; + dataDir = "."; + dataFiles = []; + extraSrcFiles = []; + extraTmpFiles = []; + extraDocFiles = []; + }; + components = { + exes = { + "deriveConstants" = { + depends = [ + (hsPkgs."base" or (errorHandler.buildDepError "base")) + (hsPkgs."containers" or (errorHandler.buildDepError "containers")) + (hsPkgs."process" or (errorHandler.buildDepError "process")) + (hsPkgs."filepath" or (errorHandler.buildDepError "filepath")) + (hsPkgs."directory" or (errorHandler.buildDepError "directory")) + ]; + buildable = true; + mainPath = [ "Main.hs" ]; + }; + }; + }; + } // rec { src = (pkgs.lib).mkDefault ../utils/deriveConstants; } \ No newline at end of file diff --git a/materialized/ghc-extra-projects/default/ghc942/.plan.nix/genprimopcode.nix b/materialized/ghc-extra-projects/default/ghc942/.plan.nix/genprimopcode.nix new file mode 100644 index 0000000000..b7476019e1 --- /dev/null +++ b/materialized/ghc-extra-projects/default/ghc942/.plan.nix/genprimopcode.nix @@ -0,0 +1,52 @@ +{ system + , compiler + , flags + , pkgs + , hsPkgs + , pkgconfPkgs + , errorHandler + , config + , ... }: + { + flags = { build-tool-depends = true; }; + package = { + specVersion = "2.0"; + identifier = { name = "genprimopcode"; version = "0.1"; }; + license = "BSD-3-Clause"; + copyright = "XXX"; + maintainer = "XXX"; + author = "XXX"; + homepage = ""; + url = ""; + synopsis = "Generates various files implementing GHC's primitive operations."; + description = "This utility reads a textual description of GHC's primitive operations\n(@primops.txt.pp@) and produces a number of outputs. These include,\n\n* the @GHC.Prim@ module included in the @ghc-prim@ package.\n* the @GHC.PrimopWrappers@ module included in the @ghc-prim@ package.\n* an LaTeX document describing the primitive operations."; + buildType = "Simple"; + isLocal = true; + detailLevel = "FullDetails"; + licenseFiles = []; + dataDir = "."; + dataFiles = []; + extraSrcFiles = []; + extraTmpFiles = []; + extraDocFiles = []; + }; + components = { + exes = { + "genprimopcode" = { + depends = [ + (hsPkgs."base" or (errorHandler.buildDepError "base")) + (hsPkgs."array" or (errorHandler.buildDepError "array")) + ]; + build-tools = (pkgs.lib).optionals (flags.build-tool-depends) [ + (hsPkgs.buildPackages.alex.components.exes.alex or (pkgs.buildPackages.alex or (errorHandler.buildToolDepError "alex:alex"))) + (hsPkgs.buildPackages.happy.components.exes.happy or (pkgs.buildPackages.happy or (errorHandler.buildToolDepError "happy:happy"))) + ]; + buildable = true; + modules = [ "Lexer" "Parser" "ParserM" "Syntax" ]; + mainPath = [ + "Main.hs" + ] ++ (pkgs.lib).optional (flags.build-tool-depends) ""; + }; + }; + }; + } // rec { src = (pkgs.lib).mkDefault ../utils/genprimopcode; } \ No newline at end of file diff --git a/materialized/ghc-extra-projects/default/ghc942/default.nix b/materialized/ghc-extra-projects/default/ghc942/default.nix index 75c4880235..143199690f 100644 --- a/materialized/ghc-extra-projects/default/ghc942/default.nix +++ b/materialized/ghc-extra-projects/default/ghc942/default.nix @@ -2,11 +2,13 @@ pkgs = hackage: { packages = { + "happy".revision = (((hackage."happy")."1.20.0").revisions).default; "pretty".revision = (((hackage."pretty")."1.1.3.6").revisions).default; "text".revision = (((hackage."text")."2.0.1").revisions).default; "array".revision = (((hackage."array")."0.5.4.0").revisions).default; "Cabal-syntax".revision = (((hackage."Cabal-syntax")."3.8.1.0").revisions).default; "Cabal".revision = (((hackage."Cabal")."3.8.1.0").revisions).default; + "alex".revision = (((hackage."alex")."3.2.7.1").revisions).default; "mtl".revision = (((hackage."mtl")."2.2.2").revisions).default; "parsec".revision = (((hackage."parsec")."3.1.15.0").revisions).default; "bytestring".revision = (((hackage."bytestring")."0.11.3.1").revisions).default; @@ -68,10 +70,12 @@ { packages = { ghc = ./.plan.nix/ghc.nix; + deriveConstants = ./.plan.nix/deriveConstants.nix; remote-iserv = ./.plan.nix/remote-iserv.nix; ghci = ./.plan.nix/ghci.nix; ghc-boot = ./.plan.nix/ghc-boot.nix; iserv = ./.plan.nix/iserv.nix; + genprimopcode = ./.plan.nix/genprimopcode.nix; libiserv = ./.plan.nix/libiserv.nix; hpc = ./.plan.nix/hpc.nix; }; @@ -85,15 +89,19 @@ "dynamic-system-linker" = lib.mkOverride 900 true; "terminfo" = lib.mkOverride 900 true; "internal-interpreter" = lib.mkOverride 900 false; - "build-tool-depends" = lib.mkOverride 900 false; + "build-tool-depends" = lib.mkOverride 900 true; }; }; + "deriveConstants" = { flags = {}; }; "remote-iserv" = { flags = {}; }; "ghci" = { flags = { "internal-interpreter" = lib.mkOverride 900 true; }; }; "ghc-boot" = { flags = {}; }; "iserv" = { flags = {}; }; + "genprimopcode" = { + flags = { "build-tool-depends" = lib.mkOverride 900 true; }; + }; "libiserv" = { flags = { "network" = lib.mkOverride 900 true; }; }; "hpc" = { flags = {}; }; }; @@ -115,6 +123,7 @@ "rts".components.library.planned = lib.mkOverride 900 true; "unix".components.library.planned = lib.mkOverride 900 true; "directory".components.library.planned = lib.mkOverride 900 true; + "happy".components.exes."happy".planned = lib.mkOverride 900 true; "iserv".components.exes."iserv".planned = lib.mkOverride 900 true; "ghc".components.setup.planned = lib.mkOverride 900 true; "time".components.library.planned = lib.mkOverride 900 true; @@ -124,7 +133,9 @@ "template-haskell".components.library.planned = lib.mkOverride 900 true; "stm".components.library.planned = lib.mkOverride 900 true; "ghci".components.library.planned = lib.mkOverride 900 true; + "alex".components.exes."alex".planned = lib.mkOverride 900 true; "ghc-boot".components.library.planned = lib.mkOverride 900 true; + "deriveConstants".components.exes."deriveConstants".planned = lib.mkOverride 900 true; "hpc".components.library.planned = lib.mkOverride 900 true; "ghc-boot".components.setup.planned = lib.mkOverride 900 true; "ghc-heap".components.library.planned = lib.mkOverride 900 true; @@ -133,6 +144,7 @@ "libiserv".components.library.planned = lib.mkOverride 900 true; "parsec".components.library.planned = lib.mkOverride 900 true; "deepseq".components.library.planned = lib.mkOverride 900 true; + "genprimopcode".components.exes."genprimopcode".planned = lib.mkOverride 900 true; "text".components.library.planned = lib.mkOverride 900 true; "base".components.library.planned = lib.mkOverride 900 true; "containers".components.library.planned = lib.mkOverride 900 true; diff --git a/materialized/ghc-extra-projects/windows/ghc941/default.nix b/materialized/ghc-extra-projects/windows/ghc941/default.nix index cda2c4e703..c392bad9b0 100644 --- a/materialized/ghc-extra-projects/windows/ghc941/default.nix +++ b/materialized/ghc-extra-projects/windows/ghc941/default.nix @@ -2,11 +2,13 @@ pkgs = hackage: { packages = { + "happy".revision = (((hackage."happy")."1.20.0").revisions).default; "pretty".revision = (((hackage."pretty")."1.1.3.6").revisions).default; "text".revision = (((hackage."text")."2.0.1").revisions).default; "array".revision = (((hackage."array")."0.5.4.0").revisions).default; "Cabal-syntax".revision = (((hackage."Cabal-syntax")."3.8.1.0").revisions).default; "Cabal".revision = (((hackage."Cabal")."3.8.1.0").revisions).default; + "alex".revision = (((hackage."alex")."3.2.7.1").revisions).default; "mtl".revision = (((hackage."mtl")."2.2.2").revisions).default; "parsec".revision = (((hackage."parsec")."3.1.15.0").revisions).default; "bytestring".revision = (((hackage."bytestring")."0.11.3.1").revisions).default; @@ -66,10 +68,12 @@ { packages = { ghc = ./.plan.nix/ghc.nix; + deriveConstants = ./.plan.nix/deriveConstants.nix; remote-iserv = ./.plan.nix/remote-iserv.nix; ghci = ./.plan.nix/ghci.nix; ghc-boot = ./.plan.nix/ghc-boot.nix; iserv = ./.plan.nix/iserv.nix; + genprimopcode = ./.plan.nix/genprimopcode.nix; libiserv = ./.plan.nix/libiserv.nix; hpc = ./.plan.nix/hpc.nix; }; @@ -83,15 +87,19 @@ "dynamic-system-linker" = lib.mkOverride 900 true; "terminfo" = lib.mkOverride 900 true; "internal-interpreter" = lib.mkOverride 900 false; - "build-tool-depends" = lib.mkOverride 900 false; + "build-tool-depends" = lib.mkOverride 900 true; }; }; + "deriveConstants" = { flags = {}; }; "remote-iserv" = { flags = {}; }; "ghci" = { flags = { "internal-interpreter" = lib.mkOverride 900 true; }; }; "ghc-boot" = { flags = {}; }; "iserv" = { flags = {}; }; + "genprimopcode" = { + flags = { "build-tool-depends" = lib.mkOverride 900 true; }; + }; "libiserv" = { flags = { "network" = lib.mkOverride 900 true; }; }; "hpc" = { flags = {}; }; }; @@ -113,6 +121,7 @@ "ghc-boot-th".components.library.planned = lib.mkOverride 900 true; "rts".components.library.planned = lib.mkOverride 900 true; "directory".components.library.planned = lib.mkOverride 900 true; + "happy".components.exes."happy".planned = lib.mkOverride 900 true; "iserv".components.exes."iserv".planned = lib.mkOverride 900 true; "ghc".components.setup.planned = lib.mkOverride 900 true; "time".components.library.planned = lib.mkOverride 900 true; @@ -122,7 +131,9 @@ "template-haskell".components.library.planned = lib.mkOverride 900 true; "stm".components.library.planned = lib.mkOverride 900 true; "ghci".components.library.planned = lib.mkOverride 900 true; + "alex".components.exes."alex".planned = lib.mkOverride 900 true; "ghc-boot".components.library.planned = lib.mkOverride 900 true; + "deriveConstants".components.exes."deriveConstants".planned = lib.mkOverride 900 true; "hpc".components.library.planned = lib.mkOverride 900 true; "ghc-boot".components.setup.planned = lib.mkOverride 900 true; "ghc-heap".components.library.planned = lib.mkOverride 900 true; @@ -131,6 +142,7 @@ "libiserv".components.library.planned = lib.mkOverride 900 true; "parsec".components.library.planned = lib.mkOverride 900 true; "deepseq".components.library.planned = lib.mkOverride 900 true; + "genprimopcode".components.exes."genprimopcode".planned = lib.mkOverride 900 true; "text".components.library.planned = lib.mkOverride 900 true; "base".components.library.planned = lib.mkOverride 900 true; "containers".components.library.planned = lib.mkOverride 900 true; diff --git a/materialized/ghc-extra-projects/windows/ghc942/.plan.nix/deriveConstants.nix b/materialized/ghc-extra-projects/windows/ghc942/.plan.nix/deriveConstants.nix new file mode 100644 index 0000000000..0b0d43f547 --- /dev/null +++ b/materialized/ghc-extra-projects/windows/ghc942/.plan.nix/deriveConstants.nix @@ -0,0 +1,48 @@ +{ system + , compiler + , flags + , pkgs + , hsPkgs + , pkgconfPkgs + , errorHandler + , config + , ... }: + { + flags = {}; + package = { + specVersion = "1.10"; + identifier = { name = "deriveConstants"; version = "0.1"; }; + license = "BSD-3-Clause"; + copyright = "XXX"; + maintainer = "XXX"; + author = "XXX"; + homepage = ""; + url = ""; + synopsis = "Derive header files containing various constants for the GHC build process"; + description = "This utility is responsible for generating a number of C header files\nneeded during the GHC build process. See @rts/include/ghc.mk@ in the GHC\nbuild system for details."; + buildType = "Simple"; + isLocal = true; + detailLevel = "FullDetails"; + licenseFiles = []; + dataDir = "."; + dataFiles = []; + extraSrcFiles = []; + extraTmpFiles = []; + extraDocFiles = []; + }; + components = { + exes = { + "deriveConstants" = { + depends = [ + (hsPkgs."base" or (errorHandler.buildDepError "base")) + (hsPkgs."containers" or (errorHandler.buildDepError "containers")) + (hsPkgs."process" or (errorHandler.buildDepError "process")) + (hsPkgs."filepath" or (errorHandler.buildDepError "filepath")) + (hsPkgs."directory" or (errorHandler.buildDepError "directory")) + ]; + buildable = true; + mainPath = [ "Main.hs" ]; + }; + }; + }; + } // rec { src = (pkgs.lib).mkDefault ../utils/deriveConstants; } \ No newline at end of file diff --git a/materialized/ghc-extra-projects/windows/ghc942/.plan.nix/genprimopcode.nix b/materialized/ghc-extra-projects/windows/ghc942/.plan.nix/genprimopcode.nix new file mode 100644 index 0000000000..b7476019e1 --- /dev/null +++ b/materialized/ghc-extra-projects/windows/ghc942/.plan.nix/genprimopcode.nix @@ -0,0 +1,52 @@ +{ system + , compiler + , flags + , pkgs + , hsPkgs + , pkgconfPkgs + , errorHandler + , config + , ... }: + { + flags = { build-tool-depends = true; }; + package = { + specVersion = "2.0"; + identifier = { name = "genprimopcode"; version = "0.1"; }; + license = "BSD-3-Clause"; + copyright = "XXX"; + maintainer = "XXX"; + author = "XXX"; + homepage = ""; + url = ""; + synopsis = "Generates various files implementing GHC's primitive operations."; + description = "This utility reads a textual description of GHC's primitive operations\n(@primops.txt.pp@) and produces a number of outputs. These include,\n\n* the @GHC.Prim@ module included in the @ghc-prim@ package.\n* the @GHC.PrimopWrappers@ module included in the @ghc-prim@ package.\n* an LaTeX document describing the primitive operations."; + buildType = "Simple"; + isLocal = true; + detailLevel = "FullDetails"; + licenseFiles = []; + dataDir = "."; + dataFiles = []; + extraSrcFiles = []; + extraTmpFiles = []; + extraDocFiles = []; + }; + components = { + exes = { + "genprimopcode" = { + depends = [ + (hsPkgs."base" or (errorHandler.buildDepError "base")) + (hsPkgs."array" or (errorHandler.buildDepError "array")) + ]; + build-tools = (pkgs.lib).optionals (flags.build-tool-depends) [ + (hsPkgs.buildPackages.alex.components.exes.alex or (pkgs.buildPackages.alex or (errorHandler.buildToolDepError "alex:alex"))) + (hsPkgs.buildPackages.happy.components.exes.happy or (pkgs.buildPackages.happy or (errorHandler.buildToolDepError "happy:happy"))) + ]; + buildable = true; + modules = [ "Lexer" "Parser" "ParserM" "Syntax" ]; + mainPath = [ + "Main.hs" + ] ++ (pkgs.lib).optional (flags.build-tool-depends) ""; + }; + }; + }; + } // rec { src = (pkgs.lib).mkDefault ../utils/genprimopcode; } \ No newline at end of file diff --git a/materialized/ghc-extra-projects/windows/ghc942/default.nix b/materialized/ghc-extra-projects/windows/ghc942/default.nix index c1e434303e..9a0dd6f0d3 100644 --- a/materialized/ghc-extra-projects/windows/ghc942/default.nix +++ b/materialized/ghc-extra-projects/windows/ghc942/default.nix @@ -2,11 +2,13 @@ pkgs = hackage: { packages = { + "happy".revision = (((hackage."happy")."1.20.0").revisions).default; "pretty".revision = (((hackage."pretty")."1.1.3.6").revisions).default; "text".revision = (((hackage."text")."2.0.1").revisions).default; "array".revision = (((hackage."array")."0.5.4.0").revisions).default; "Cabal-syntax".revision = (((hackage."Cabal-syntax")."3.8.1.0").revisions).default; "Cabal".revision = (((hackage."Cabal")."3.8.1.0").revisions).default; + "alex".revision = (((hackage."alex")."3.2.7.1").revisions).default; "mtl".revision = (((hackage."mtl")."2.2.2").revisions).default; "parsec".revision = (((hackage."parsec")."3.1.15.0").revisions).default; "bytestring".revision = (((hackage."bytestring")."0.11.3.1").revisions).default; @@ -66,10 +68,12 @@ { packages = { ghc = ./.plan.nix/ghc.nix; + deriveConstants = ./.plan.nix/deriveConstants.nix; remote-iserv = ./.plan.nix/remote-iserv.nix; ghci = ./.plan.nix/ghci.nix; ghc-boot = ./.plan.nix/ghc-boot.nix; iserv = ./.plan.nix/iserv.nix; + genprimopcode = ./.plan.nix/genprimopcode.nix; libiserv = ./.plan.nix/libiserv.nix; hpc = ./.plan.nix/hpc.nix; }; @@ -83,15 +87,19 @@ "dynamic-system-linker" = lib.mkOverride 900 true; "terminfo" = lib.mkOverride 900 true; "internal-interpreter" = lib.mkOverride 900 false; - "build-tool-depends" = lib.mkOverride 900 false; + "build-tool-depends" = lib.mkOverride 900 true; }; }; + "deriveConstants" = { flags = {}; }; "remote-iserv" = { flags = {}; }; "ghci" = { flags = { "internal-interpreter" = lib.mkOverride 900 true; }; }; "ghc-boot" = { flags = {}; }; "iserv" = { flags = {}; }; + "genprimopcode" = { + flags = { "build-tool-depends" = lib.mkOverride 900 true; }; + }; "libiserv" = { flags = { "network" = lib.mkOverride 900 true; }; }; "hpc" = { flags = {}; }; }; @@ -113,6 +121,7 @@ "ghc-boot-th".components.library.planned = lib.mkOverride 900 true; "rts".components.library.planned = lib.mkOverride 900 true; "directory".components.library.planned = lib.mkOverride 900 true; + "happy".components.exes."happy".planned = lib.mkOverride 900 true; "iserv".components.exes."iserv".planned = lib.mkOverride 900 true; "ghc".components.setup.planned = lib.mkOverride 900 true; "time".components.library.planned = lib.mkOverride 900 true; @@ -122,7 +131,9 @@ "template-haskell".components.library.planned = lib.mkOverride 900 true; "stm".components.library.planned = lib.mkOverride 900 true; "ghci".components.library.planned = lib.mkOverride 900 true; + "alex".components.exes."alex".planned = lib.mkOverride 900 true; "ghc-boot".components.library.planned = lib.mkOverride 900 true; + "deriveConstants".components.exes."deriveConstants".planned = lib.mkOverride 900 true; "hpc".components.library.planned = lib.mkOverride 900 true; "ghc-boot".components.setup.planned = lib.mkOverride 900 true; "ghc-heap".components.library.planned = lib.mkOverride 900 true; @@ -131,6 +142,7 @@ "libiserv".components.library.planned = lib.mkOverride 900 true; "parsec".components.library.planned = lib.mkOverride 900 true; "deepseq".components.library.planned = lib.mkOverride 900 true; + "genprimopcode".components.exes."genprimopcode".planned = lib.mkOverride 900 true; "text".components.library.planned = lib.mkOverride 900 true; "base".components.library.planned = lib.mkOverride 900 true; "containers".components.library.planned = lib.mkOverride 900 true; From 5ceea8f22424be8c05afcb7eaae44c750d588e98 Mon Sep 17 00:00:00 2001 From: Hamish Mackenzie Date: Tue, 17 Jan 2023 19:34:25 +1300 Subject: [PATCH 30/38] Materialized files --- .../ghc941/deriveConstants.nix | 39 ++++++++++++++ .../ghc941/genprimopcode.nix | 40 ++++++++++++++ .../ghc941/.plan.nix/deriveConstants.nix | 48 +++++++++++++++++ .../ghc941/.plan.nix/genprimopcode.nix | 52 +++++++++++++++++++ 4 files changed, 179 insertions(+) create mode 100644 materialized/ghc-boot-packages-nix/ghc941/deriveConstants.nix create mode 100644 materialized/ghc-boot-packages-nix/ghc941/genprimopcode.nix create mode 100644 materialized/ghc-extra-projects/windows/ghc941/.plan.nix/deriveConstants.nix create mode 100644 materialized/ghc-extra-projects/windows/ghc941/.plan.nix/genprimopcode.nix diff --git a/materialized/ghc-boot-packages-nix/ghc941/deriveConstants.nix b/materialized/ghc-boot-packages-nix/ghc941/deriveConstants.nix new file mode 100644 index 0000000000..a981b275ae --- /dev/null +++ b/materialized/ghc-boot-packages-nix/ghc941/deriveConstants.nix @@ -0,0 +1,39 @@ +{ system + , compiler + , flags + , pkgs + , hsPkgs + , pkgconfPkgs + , errorHandler + , config + , ... }: + { + flags = {}; + package = { + specVersion = "1.10"; + identifier = { name = "deriveConstants"; version = "0.1"; }; + license = "BSD-3-Clause"; + copyright = "XXX"; + maintainer = "XXX"; + author = "XXX"; + homepage = ""; + url = ""; + synopsis = "Derive header files containing various constants for the GHC build process"; + description = "This utility is responsible for generating a number of C header files\nneeded during the GHC build process. See @rts/include/ghc.mk@ in the GHC\nbuild system for details."; + buildType = "Simple"; + }; + components = { + exes = { + "deriveConstants" = { + depends = [ + (hsPkgs."base" or (errorHandler.buildDepError "base")) + (hsPkgs."containers" or (errorHandler.buildDepError "containers")) + (hsPkgs."process" or (errorHandler.buildDepError "process")) + (hsPkgs."filepath" or (errorHandler.buildDepError "filepath")) + (hsPkgs."directory" or (errorHandler.buildDepError "directory")) + ]; + buildable = true; + }; + }; + }; + } // rec { src = (pkgs.lib).mkDefault ./.; } diff --git a/materialized/ghc-boot-packages-nix/ghc941/genprimopcode.nix b/materialized/ghc-boot-packages-nix/ghc941/genprimopcode.nix new file mode 100644 index 0000000000..a2bc7e09d1 --- /dev/null +++ b/materialized/ghc-boot-packages-nix/ghc941/genprimopcode.nix @@ -0,0 +1,40 @@ +{ system + , compiler + , flags + , pkgs + , hsPkgs + , pkgconfPkgs + , errorHandler + , config + , ... }: + { + flags = { build-tool-depends = true; }; + package = { + specVersion = "2.0"; + identifier = { name = "genprimopcode"; version = "0.1"; }; + license = "BSD-3-Clause"; + copyright = "XXX"; + maintainer = "XXX"; + author = "XXX"; + homepage = ""; + url = ""; + synopsis = "Generates various files implementing GHC's primitive operations."; + description = "This utility reads a textual description of GHC's primitive operations\n(@primops.txt.pp@) and produces a number of outputs. These include,\n\n* the @GHC.Prim@ module included in the @ghc-prim@ package.\n* the @GHC.PrimopWrappers@ module included in the @ghc-prim@ package.\n* an LaTeX document describing the primitive operations."; + buildType = "Simple"; + }; + components = { + exes = { + "genprimopcode" = { + depends = [ + (hsPkgs."base" or (errorHandler.buildDepError "base")) + (hsPkgs."array" or (errorHandler.buildDepError "array")) + ]; + build-tools = (pkgs.lib).optionals (flags.build-tool-depends) [ + (hsPkgs.buildPackages.alex.components.exes.alex or (pkgs.buildPackages.alex or (errorHandler.buildToolDepError "alex:alex"))) + (hsPkgs.buildPackages.happy.components.exes.happy or (pkgs.buildPackages.happy or (errorHandler.buildToolDepError "happy:happy"))) + ]; + buildable = true; + }; + }; + }; + } // rec { src = (pkgs.lib).mkDefault ./.; } diff --git a/materialized/ghc-extra-projects/windows/ghc941/.plan.nix/deriveConstants.nix b/materialized/ghc-extra-projects/windows/ghc941/.plan.nix/deriveConstants.nix new file mode 100644 index 0000000000..0b0d43f547 --- /dev/null +++ b/materialized/ghc-extra-projects/windows/ghc941/.plan.nix/deriveConstants.nix @@ -0,0 +1,48 @@ +{ system + , compiler + , flags + , pkgs + , hsPkgs + , pkgconfPkgs + , errorHandler + , config + , ... }: + { + flags = {}; + package = { + specVersion = "1.10"; + identifier = { name = "deriveConstants"; version = "0.1"; }; + license = "BSD-3-Clause"; + copyright = "XXX"; + maintainer = "XXX"; + author = "XXX"; + homepage = ""; + url = ""; + synopsis = "Derive header files containing various constants for the GHC build process"; + description = "This utility is responsible for generating a number of C header files\nneeded during the GHC build process. See @rts/include/ghc.mk@ in the GHC\nbuild system for details."; + buildType = "Simple"; + isLocal = true; + detailLevel = "FullDetails"; + licenseFiles = []; + dataDir = "."; + dataFiles = []; + extraSrcFiles = []; + extraTmpFiles = []; + extraDocFiles = []; + }; + components = { + exes = { + "deriveConstants" = { + depends = [ + (hsPkgs."base" or (errorHandler.buildDepError "base")) + (hsPkgs."containers" or (errorHandler.buildDepError "containers")) + (hsPkgs."process" or (errorHandler.buildDepError "process")) + (hsPkgs."filepath" or (errorHandler.buildDepError "filepath")) + (hsPkgs."directory" or (errorHandler.buildDepError "directory")) + ]; + buildable = true; + mainPath = [ "Main.hs" ]; + }; + }; + }; + } // rec { src = (pkgs.lib).mkDefault ../utils/deriveConstants; } \ No newline at end of file diff --git a/materialized/ghc-extra-projects/windows/ghc941/.plan.nix/genprimopcode.nix b/materialized/ghc-extra-projects/windows/ghc941/.plan.nix/genprimopcode.nix new file mode 100644 index 0000000000..b7476019e1 --- /dev/null +++ b/materialized/ghc-extra-projects/windows/ghc941/.plan.nix/genprimopcode.nix @@ -0,0 +1,52 @@ +{ system + , compiler + , flags + , pkgs + , hsPkgs + , pkgconfPkgs + , errorHandler + , config + , ... }: + { + flags = { build-tool-depends = true; }; + package = { + specVersion = "2.0"; + identifier = { name = "genprimopcode"; version = "0.1"; }; + license = "BSD-3-Clause"; + copyright = "XXX"; + maintainer = "XXX"; + author = "XXX"; + homepage = ""; + url = ""; + synopsis = "Generates various files implementing GHC's primitive operations."; + description = "This utility reads a textual description of GHC's primitive operations\n(@primops.txt.pp@) and produces a number of outputs. These include,\n\n* the @GHC.Prim@ module included in the @ghc-prim@ package.\n* the @GHC.PrimopWrappers@ module included in the @ghc-prim@ package.\n* an LaTeX document describing the primitive operations."; + buildType = "Simple"; + isLocal = true; + detailLevel = "FullDetails"; + licenseFiles = []; + dataDir = "."; + dataFiles = []; + extraSrcFiles = []; + extraTmpFiles = []; + extraDocFiles = []; + }; + components = { + exes = { + "genprimopcode" = { + depends = [ + (hsPkgs."base" or (errorHandler.buildDepError "base")) + (hsPkgs."array" or (errorHandler.buildDepError "array")) + ]; + build-tools = (pkgs.lib).optionals (flags.build-tool-depends) [ + (hsPkgs.buildPackages.alex.components.exes.alex or (pkgs.buildPackages.alex or (errorHandler.buildToolDepError "alex:alex"))) + (hsPkgs.buildPackages.happy.components.exes.happy or (pkgs.buildPackages.happy or (errorHandler.buildToolDepError "happy:happy"))) + ]; + buildable = true; + modules = [ "Lexer" "Parser" "ParserM" "Syntax" ]; + mainPath = [ + "Main.hs" + ] ++ (pkgs.lib).optional (flags.build-tool-depends) ""; + }; + }; + }; + } // rec { src = (pkgs.lib).mkDefault ../utils/genprimopcode; } \ No newline at end of file From a1122dd01a981ee547e54f282ea71002f7a4aff1 Mon Sep 17 00:00:00 2001 From: Hamish Mackenzie Date: Fri, 20 Jan 2023 01:38:17 +1300 Subject: [PATCH 31/38] Fix for ghc 9.4, macOS and system-cxx-std-lib --- compiler/ghc/default.nix | 14 +++++++++++++- lib/system-nixpkgs-map.nix | 3 ++- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/compiler/ghc/default.nix b/compiler/ghc/default.nix index 08d1ff8824..cd6fa08e3f 100644 --- a/compiler/ghc/default.nix +++ b/compiler/ghc/default.nix @@ -9,7 +9,7 @@ let self = # build-tools , bootPkgs , buildPackages -, autoconf, automake, coreutils, fetchurl, fetchpatch, perl, python3, m4, sphinx, numactl, elfutils +, autoconf, automake, coreutils, fetchurl, fetchpatch, perl, python3, m4, sphinx, numactl, elfutils, libcxx, libcxxabi , autoreconfHook , bash @@ -597,6 +597,12 @@ stdenv.mkDerivation (rec { fi ''; } // lib.optionalAttrs useHadrian { + postConfigure = lib.optionalString stdenv.isDarwin '' + substituteInPlace mk/system-cxx-std-lib-1.0.conf \ + --replace 'dynamic-library-dirs:' 'dynamic-library-dirs: ${libcxx}/lib ${libcxxabi}/lib' + find . -name 'system*.conf*' + cat mk/system-cxx-std-lib-1.0.conf + ''; buildPhase = '' ${hadrian}/bin/hadrian ${hadrianArgs} '' + lib.optionalString installStage1 '' @@ -630,6 +636,12 @@ stdenv.mkDerivation (rec { ${hadrian}/bin/hadrian ${hadrianArgs} binary-dist-dir cd _build/bindist/ghc-* ./configure --prefix=$out ${lib.concatStringsSep " " configureFlags} + ${lib.optionalString stdenv.isDarwin '' + substituteInPlace mk/system-cxx-std-lib-1.0.conf \ + --replace 'dynamic-library-dirs:' 'dynamic-library-dirs: ${libcxx}/lib ${libcxxabi}/lib' + substituteInPlace lib/package.conf.d/system-cxx-std-lib-1.0.conf \ + --replace 'dynamic-library-dirs:' 'dynamic-library-dirs: ${libcxx}/lib ${libcxxabi}/lib' + ''} mkdir -p utils cp -r ../../../utils/completion utils make install diff --git a/lib/system-nixpkgs-map.nix b/lib/system-nixpkgs-map.nix index 83e92a1321..588d9c680d 100644 --- a/lib/system-nixpkgs-map.nix +++ b/lib/system-nixpkgs-map.nix @@ -19,7 +19,8 @@ let in # -- linux { crypto = [ openssl ]; - "c++" = []; # no libc++ + "c++" = [ libcxx ]; + "c++abi" = [ libcxxabi ]; system-cxx-std-lib = []; "stdc++" = gcclibs; "stdc++-6" = gcclibs; From daaad40eea1534a13dc0f05ab986f2a83f5087e8 Mon Sep 17 00:00:00 2001 From: Hamish Mackenzie Date: Fri, 20 Jan 2023 23:22:03 +1300 Subject: [PATCH 32/38] Fix C++ DLL issue for GHC 9.4 --- builder/comp-builder.nix | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/builder/comp-builder.nix b/builder/comp-builder.nix index e6e5523403..7092a8b8e7 100644 --- a/builder/comp-builder.nix +++ b/builder/comp-builder.nix @@ -1,4 +1,4 @@ -{ pkgs, stdenv, buildPackages, ghc, lib, gobject-introspection ? null, haskellLib, makeConfigFiles, haddockBuilder, ghcForComponent, hsPkgs, compiler, runCommand, libffi, gmp, zlib, ncurses, nodejs }@defaults: +{ pkgs, stdenv, buildPackages, ghc, lib, gobject-introspection ? null, haskellLib, makeConfigFiles, haddockBuilder, ghcForComponent, hsPkgs, compiler, runCommand, libffi, gmp, windows, zlib, ncurses, nodejs }@defaults: lib.makeOverridable ( let self = { componentId @@ -556,7 +556,10 @@ let '') + (lib.optionalString (stdenv.hostPlatform.isWindows && (haskellLib.mayHaveExecutable componentId)) ('' echo "Symlink libffi and gmp .dlls ..." - for p in ${lib.concatStringsSep " " [ libffi gmp ]}; do + for p in ${lib.concatStringsSep " " ([ libffi gmp ] ++ + # Also include C++ and mcfgthreads DLLs for GHC 9.4.1 and newer + lib.optionals (builtins.compareVersions defaults.ghc.version "9.4.1" >= 0) + [ buildPackages.gcc-unwrapped windows.mcfgthreads ])}; do find "$p" -iname '*.dll' -exec ln -s {} $out/bin \; done '' From 732fccb05e060cd4bceb78d9de5381ccc84bc046 Mon Sep 17 00:00:00 2001 From: Hamish Mackenzie Date: Fri, 20 Jan 2023 23:23:54 +1300 Subject: [PATCH 33/38] Build 9.4 cross compilers with 9.4 --- overlays/bootstrap.nix | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/overlays/bootstrap.nix b/overlays/bootstrap.nix index d3bd5c0cf2..e5c06bd3e6 100644 --- a/overlays/bootstrap.nix +++ b/overlays/bootstrap.nix @@ -699,7 +699,9 @@ in { bootPkgs = bootPkgs // { alex = final.buildPackages.haskell-nix.tool "ghc902" "alex" "3.2.7.1"; happy = final.buildPackages.haskell-nix.tool "ghc902" "happy" "1.20.0"; - ghc = final.buildPackages.buildPackages.haskell-nix.compiler.ghc902; + ghc = if final.buildPlatform != final.targetPlatform + then final.buildPackages.buildPackages.haskell-nix.compiler.ghc941 + else final.buildPackages.buildPackages.haskell-nix.compiler.ghc902; }; inherit sphinx installDeps; @@ -721,7 +723,9 @@ in { bootPkgs = bootPkgs // { alex = final.buildPackages.haskell-nix.tool "ghc902" "alex" "3.2.7.1"; happy = final.buildPackages.haskell-nix.tool "ghc902" "happy" "1.20.0"; - ghc = final.buildPackages.buildPackages.haskell-nix.compiler.ghc902; + ghc = if final.buildPlatform != final.targetPlatform + then final.buildPackages.buildPackages.haskell-nix.compiler.ghc942 + else final.buildPackages.buildPackages.haskell-nix.compiler.ghc902; }; inherit sphinx installDeps; @@ -743,7 +747,9 @@ in { bootPkgs = bootPkgs // { alex = final.buildPackages.haskell-nix.tool "ghc902" "alex" "3.2.7.1"; happy = final.buildPackages.haskell-nix.tool "ghc902" "happy" "1.20.0"; - ghc = final.buildPackages.buildPackages.haskell-nix.compiler.ghc902; + ghc = if final.buildPlatform != final.targetPlatform + then final.buildPackages.buildPackages.haskell-nix.compiler.ghc943 + else final.buildPackages.buildPackages.haskell-nix.compiler.ghc902; }; inherit sphinx installDeps; From 0d8b03446167af94c290d786eaf88fe0497926b5 Mon Sep 17 00:00:00 2001 From: Hamish Mackenzie Date: Mon, 23 Jan 2023 12:08:30 +1300 Subject: [PATCH 34/38] Disable windows cross compile on macOS for now --- ci.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ci.nix b/ci.nix index c6a51cd9d6..c18b3cb3ed 100644 --- a/ci.nix +++ b/ci.nix @@ -68,7 +68,7 @@ inherit (lib.systems.examples) ghcjs; } // lib.optionalAttrs (nixpkgsName == "unstable" && ((system == "x86_64-linux" && __elem compiler-nix-name ["ghc8107" "ghc902" "ghc925" "ghc943"]) - || (system == "x86_64-darwin" && __elem compiler-nix-name ["ghc943"]))) { # TODO add ghc versions when we have more darwin build capacity + || (system == "x86_64-darwin" && __elem compiler-nix-name []))) { # TODO add ghc versions when we have more darwin build capacity inherit (lib.systems.examples) mingwW64; } // lib.optionalAttrs (system == "x86_64-linux" && nixpkgsName == "unstable" && __elem compiler-nix-name ["ghc8107" "ghc902" "ghc922" "ghc923" "ghc924" "ghc925"]) { # Musl cross only works on linux From b272d92b0d0ab9b9ac11e97a288cd05682b4b4e8 Mon Sep 17 00:00:00 2001 From: Hamish Mackenzie Date: Mon, 23 Jan 2023 12:34:09 +1300 Subject: [PATCH 35/38] Add check for roots --- nix-tools/.buildkite/nix-tools-build.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/nix-tools/.buildkite/nix-tools-build.sh b/nix-tools/.buildkite/nix-tools-build.sh index 3edb84469b..18d216daea 100755 --- a/nix-tools/.buildkite/nix-tools-build.sh +++ b/nix-tools/.buildkite/nix-tools-build.sh @@ -61,6 +61,8 @@ echo echo "--- Test index file truncation" shopt -s nullglob +echo "Look for roots that may prevent nix-store --delete working" +for a in /nix/store/*-00-index.tar.gz; do nix-store --query --roots $a; done for a in /nix/store/*-00-index.tar.gz; do nix-store --delete $a; done shopt -u nullglob From aa435a54a1afb864dc2c628ea02e61d13f49fb40 Mon Sep 17 00:00:00 2001 From: Hamish Mackenzie Date: Mon, 23 Jan 2023 13:01:04 +1300 Subject: [PATCH 36/38] Try adding sleep --- nix-tools/.buildkite/nix-tools-build.sh | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/nix-tools/.buildkite/nix-tools-build.sh b/nix-tools/.buildkite/nix-tools-build.sh index 18d216daea..9b39d1b57a 100755 --- a/nix-tools/.buildkite/nix-tools-build.sh +++ b/nix-tools/.buildkite/nix-tools-build.sh @@ -60,9 +60,13 @@ nix build -f .buildkite/nix2 nix-tools.components.exes --no-link echo echo "--- Test index file truncation" +# Wait for processes that may still have nix roots to flush and exit +sleep 5 + shopt -s nullglob echo "Look for roots that may prevent nix-store --delete working" for a in /nix/store/*-00-index.tar.gz; do nix-store --query --roots $a; done +sleep 5 for a in /nix/store/*-00-index.tar.gz; do nix-store --delete $a; done shopt -u nullglob From 8c9101a61b8c9b444a3a8c5a6454d16745682501 Mon Sep 17 00:00:00 2001 From: Hamish Mackenzie Date: Mon, 23 Jan 2023 13:31:47 +1300 Subject: [PATCH 37/38] Use --check --- nix-tools/.buildkite/nix-tools-build.sh | 12 +----------- 1 file changed, 1 insertion(+), 11 deletions(-) diff --git a/nix-tools/.buildkite/nix-tools-build.sh b/nix-tools/.buildkite/nix-tools-build.sh index 9b39d1b57a..e9e6ac9307 100755 --- a/nix-tools/.buildkite/nix-tools-build.sh +++ b/nix-tools/.buildkite/nix-tools-build.sh @@ -60,17 +60,7 @@ nix build -f .buildkite/nix2 nix-tools.components.exes --no-link echo echo "--- Test index file truncation" -# Wait for processes that may still have nix roots to flush and exit -sleep 5 - -shopt -s nullglob -echo "Look for roots that may prevent nix-store --delete working" -for a in /nix/store/*-00-index.tar.gz; do nix-store --query --roots $a; done -sleep 5 -for a in /nix/store/*-00-index.tar.gz; do nix-store --delete $a; done -shopt -u nullglob - -nix build -f test/truncate-index.nix --no-link \ +nix build --check -f test/truncate-index.nix --no-link \ --arg nix-tools-path ./.buildkite/nix2 \ --argstr index-state "$index_state" \ --argstr hash "$expected_hash" \ From f305c8be5e3259d9e708917e3cc680feeda7560b Mon Sep 17 00:00:00 2001 From: Hamish Mackenzie Date: Mon, 23 Jan 2023 13:48:23 +1300 Subject: [PATCH 38/38] Use nix-build --- nix-tools/.buildkite/nix-tools-build.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/nix-tools/.buildkite/nix-tools-build.sh b/nix-tools/.buildkite/nix-tools-build.sh index e9e6ac9307..ade6c15b2d 100755 --- a/nix-tools/.buildkite/nix-tools-build.sh +++ b/nix-tools/.buildkite/nix-tools-build.sh @@ -60,8 +60,8 @@ nix build -f .buildkite/nix2 nix-tools.components.exes --no-link echo echo "--- Test index file truncation" -nix build --check -f test/truncate-index.nix --no-link \ +nix-build --check test/truncate-index.nix --no-link \ --arg nix-tools-path ./.buildkite/nix2 \ --argstr index-state "$index_state" \ --argstr hash "$expected_hash" \ - indexTruncated + -A indexTruncated