diff --git a/.github/workflows/pipeline.yml b/.github/workflows/pipeline.yml index 80458f2bb..edec39f69 100644 --- a/.github/workflows/pipeline.yml +++ b/.github/workflows/pipeline.yml @@ -1,4 +1,4 @@ -name: "Run tests with ghc966" +name: "Run tests with ghc967" on: pull_request: @@ -22,120 +22,120 @@ jobs: runs-on: [self-hosted, linux] steps: - uses: actions/checkout@v4 - - name: "Run tests with ghc966: Running the nix-build tests..." - run: "./test/tests.sh ghc966 nix-build" + - name: "Run tests with ghc967: Running the nix-build tests..." + run: "./test/tests.sh ghc967 nix-build" unit-tests: runs-on: [self-hosted, linux] steps: - uses: actions/checkout@v4 - - name: "Run tests with ghc966: Running the unit tests..." - run: "./test/tests.sh ghc966 unit-tests" + - name: "Run tests with ghc967: Running the unit tests..." + run: "./test/tests.sh ghc967 unit-tests" runghc: runs-on: [self-hosted, linux] steps: - uses: actions/checkout@v4 - - name: "Run tests with ghc966: Checking that a nix-shell works for runghc..." - run: "./test/tests.sh ghc966 runghc" + - name: "Run tests with ghc967: Checking that a nix-shell works for runghc..." + run: "./test/tests.sh ghc967 runghc" cabal: runs-on: [self-hosted, linux] steps: - uses: actions/checkout@v4 - - name: "Run tests with ghc966: Checking that a nix-shell works for cabal..." - run: "./test/tests.sh ghc966 cabal" + - name: "Run tests with ghc967: Checking that a nix-shell works for cabal..." + run: "./test/tests.sh ghc967 cabal" cabal-doExactConfig: runs-on: [self-hosted, linux] steps: - uses: actions/checkout@v4 - - name: "Run tests with ghc966: Checking that a nix-shell works for cabal (doExactConfig component)..." - run: "./test/tests.sh ghc966 cabal-doExactConfig" + - name: "Run tests with ghc967: Checking that a nix-shell works for cabal (doExactConfig component)..." + run: "./test/tests.sh ghc967 cabal-doExactConfig" tests-benchmarks: runs-on: [self-hosted, linux] steps: - uses: actions/checkout@v4 - - name: "Run tests with ghc966: Checking that a nix-shell works for a project with test-suite build-tools and benchmarks..." - run: "./test/tests.sh ghc966 tests-benchmarks" + - name: "Run tests with ghc967: Checking that a nix-shell works for a project with test-suite build-tools and benchmarks..." + run: "./test/tests.sh ghc967 tests-benchmarks" multi-target: runs-on: [self-hosted, linux] steps: - uses: actions/checkout@v4 - - name: "Run tests with ghc966: Checking that a nix-shell works for a multi-target project..." - run: "./test/tests.sh ghc966 multi-target" + - name: "Run tests with ghc967: Checking that a nix-shell works for a multi-target project..." + run: "./test/tests.sh ghc967 multi-target" shellFor-single-package: runs-on: [self-hosted, linux] steps: - uses: actions/checkout@v4 - - name: "Run tests with ghc966: Checking shellFor works for a cabal project, multiple packages..." - run: "./test/tests.sh ghc966 shellFor-single-package" + - name: "Run tests with ghc967: Checking shellFor works for a cabal project, multiple packages..." + run: "./test/tests.sh ghc967 shellFor-single-package" shellFor-multiple-package: runs-on: [self-hosted, linux] steps: - uses: actions/checkout@v4 - - name: "Run tests with ghc966: Checking shellFor works for a cabal project, single package...y" - run: "./test/tests.sh ghc966 shellFor-multiple-package" + - name: "Run tests with ghc967: Checking shellFor works for a cabal project, single package...y" + run: "./test/tests.sh ghc967 shellFor-multiple-package" shellFor-hoogle: runs-on: [self-hosted, linux] steps: - uses: actions/checkout@v4 - - name: "Run tests with ghc966: Checking shellFor works for a cabal project, single package..." - run: "./test/tests.sh ghc966 shellFor-hoogle" + - name: "Run tests with ghc967: Checking shellFor works for a cabal project, single package..." + run: "./test/tests.sh ghc967 shellFor-hoogle" shellFor-not-depends: runs-on: [self-hosted, linux] steps: - uses: actions/checkout@v4 - - name: "Run tests with ghc966: Checking shellFor does not depend on given packages...y" - run: "./test/tests.sh ghc966 shellFor-not-depends" + - name: "Run tests with ghc967: Checking shellFor does not depend on given packages...y" + run: "./test/tests.sh ghc967 shellFor-not-depends" maintainer-scripts: runs-on: [self-hosted, linux] steps: - uses: actions/checkout@v4 - - name: "Run tests with ghc966: Checking the maintainer scripts...y" - run: "./test/tests.sh ghc966 maintainer-scripts" + - name: "Run tests with ghc967: Checking the maintainer scripts...y" + run: "./test/tests.sh ghc967 maintainer-scripts" plan-extra-hackages: runs-on: [self-hosted, linux] steps: - uses: actions/checkout@v4 - - name: "Run tests with ghc966: Checking that plan construction works with extra Hackages..." - run: "./test/tests.sh ghc966 plan-extra-hackages" + - name: "Run tests with ghc967: Checking that plan construction works with extra Hackages..." + run: "./test/tests.sh ghc967 plan-extra-hackages" build-extra-hackages: runs-on: [self-hosted, linux] steps: - uses: actions/checkout@v4 - - name: "Run tests with ghc966: Checking that package with extra Hackages can be build..." - run: "./test/tests.sh ghc966 build-extra-hackages" + - name: "Run tests with ghc967: Checking that package with extra Hackages can be build..." + run: "./test/tests.sh ghc967 build-extra-hackages" hix: runs-on: [self-hosted, linux] steps: - uses: actions/checkout@v4 - - name: "Run tests with ghc966: End-2-end test of hix project initialization and flakes development shell ..." - run: "./test/tests.sh ghc966 hix" + - name: "Run tests with ghc967: End-2-end test of hix project initialization and flakes development shell ..." + run: "./test/tests.sh ghc967 hix" # template: # runs-on: [self-hosted, linux] # steps: # - uses: actions/checkout@v4 -# - name: "Run tests with ghc966: End-2-end test of hix project initialization and flakes development shell ..." -# run: "./test/tests.sh ghc966 template" +# - name: "Run tests with ghc967: End-2-end test of hix project initialization and flakes development shell ..." +# run: "./test/tests.sh ghc967 template" docs: runs-on: [self-hosted, linux] steps: - uses: actions/checkout@v4 - name: "Test examples in documentation ..." - run: "./test/tests.sh ghc966 docs" + run: "./test/tests.sh ghc967 docs" hydra-ifdLevel-0-and-1: runs-on: [self-hosted, linux] @@ -178,9 +178,9 @@ jobs: runs-on: [self-hosted, linux] steps: - uses: actions/checkout@v4 - - name: "Check closure size with ghc966" + - name: "Check closure size with ghc967" run: | - nix-build build.nix -A maintainer-scripts.check-closure-size --argstr compiler-nix-name ghc966 -o check-closure-size.sh + nix-build build.nix -A maintainer-scripts.check-closure-size --argstr compiler-nix-name ghc967 -o check-closure-size.sh echo "+++ Closure size (MB)" ./check-closure-size.sh @@ -208,7 +208,7 @@ jobs: - uses: actions/checkout@v4 - name: "Make sure non store paths like can be used as src" run: | - nix-build build.nix -A maintainer-scripts.check-path-support --argstr compiler-nix-name ghc966 -o check-path-support.sh + nix-build build.nix -A maintainer-scripts.check-path-support --argstr compiler-nix-name ghc967 -o check-path-support.sh ./check-path-support.sh haskell-nix-roots-do-not-require-IFDs: @@ -218,12 +218,12 @@ jobs: - name: "Check that the haskell.nix roots do not require IFDs" run: nix build .#roots.x86_64-linux --accept-flake-config --option allow-import-from-derivation false - hydra-without-remote-builders-ghc966: + hydra-without-remote-builders-ghc967: runs-on: [self-hosted, linux] steps: - uses: actions/checkout@v4 - - name: "Check that evaluation of hydra jobs works without using remote builders for GHC 8.10.7" - run: nix path-info --derivation .#requiredJobs.x86_64-darwin.required-unstable-ghc966-native --show-trace --builders '' + - name: "Check that evaluation of hydra jobs works without using remote builders for GHC 9.6.7" + run: nix path-info --derivation .#requiredJobs.x86_64-darwin.required-unstable-ghc967-native --show-trace --builders '' hydra-without-remote-builders-ghc9101: runs-on: [self-hosted, linux] diff --git a/ci.nix b/ci.nix index a97f42734..42d3ea0f3 100644 --- a/ci.nix +++ b/ci.nix @@ -64,7 +64,6 @@ ghc912 = true; } // nixpkgs.lib.optionalAttrs (nixpkgsName == "unstable") { ghc96 = true; - ghc96X = true; ghc98 = true; ghc98llvm = false; ghc910 = true; @@ -80,13 +79,13 @@ && (__match ".*llvm" compiler-nix-name == null) && ((system == "x86_64-linux" && !builtins.elem compiler-nix-name ["ghc902" "ghc928" "ghc948"]) || (system == "aarch64-linux" && !builtins.elem compiler-nix-name ["ghc902" "ghc928" "ghc948"]) - || (system == "x86_64-darwin" && !builtins.elem compiler-nix-name ["ghc902" "ghc928" "ghc948" "ghc966" "ghc96720250227" "ghc982" "ghc983" "ghc984"]) - || (system == "aarch64-darwin" && !builtins.elem compiler-nix-name ["ghc902" "ghc928" "ghc948" "ghc966" "ghc96720250227" "ghc982" "ghc983" "ghc984"]) + || (system == "x86_64-darwin" && !builtins.elem compiler-nix-name ["ghc902" "ghc928" "ghc948" "ghc966" "ghc967" "ghc96720250227" "ghc982" "ghc983" "ghc984"]) + || (system == "aarch64-darwin" && !builtins.elem compiler-nix-name ["ghc902" "ghc928" "ghc948" "ghc966" "ghc967" "ghc96720250227" "ghc982" "ghc983" "ghc984"]) )) { inherit (lib.systems.examples) ghcjs; } // lib.optionalAttrs (nixpkgsName == "unstable" && (__match ".*llvm" compiler-nix-name == null) - && ((system == "x86_64-linux" && !builtins.elem compiler-nix-name ["ghc902" "ghc928" "ghc966" "ghc96720250227"]) # Not sure why GHC 9.6.6 TH code now wants `log1pf` + && ((system == "x86_64-linux" && !builtins.elem compiler-nix-name ["ghc902" "ghc928" "ghc966" "ghc967" "ghc96720250227"]) # Not sure why GHC 9.6.6 TH code now wants `log1pf` || (system == "x86_64-darwin" && builtins.elem compiler-nix-name []))) { # TODO add ghc versions when we have more darwin build capacity inherit (lib.systems.examples) mingwW64; } // lib.optionalAttrs (nixpkgsName == "unstable" diff --git a/docs/reference/supported-ghc-versions.md b/docs/reference/supported-ghc-versions.md index cf49c6486..732b1e072 100644 --- a/docs/reference/supported-ghc-versions.md +++ b/docs/reference/supported-ghc-versions.md @@ -22,7 +22,7 @@ really should use an instance of Nixpkgs provided by `haskell.nix` itself. | Nixpkgs version | Nixpkgs pinning | GHC version | `compiler-nix-name` | Tested in CI? | |------------------|--------------------|-------------|-----------------------|---------------| -| unstable | `nixpkgs-unstable` | 9.6.6 | `ghc96` or `ghc966` | Yes | +| unstable | `nixpkgs-unstable` | 9.6.7 | `ghc96` or `ghc967` | Yes | | unstable | `nixpkgs-unstable` | 9.8.4 | `ghc98` or `ghc984` | Yes | | unstable | `nixpkgs-unstable` | 9.10.1 | `ghc910` or `ghc9101` | Yes | | unstable | `nixpkgs-unstable` | 9.12.2 | `ghc912` or `ghc9122` | Yes | diff --git a/flake.nix b/flake.nix index 2017b8f7b..65ffb7ef5 100644 --- a/flake.nix +++ b/flake.nix @@ -85,7 +85,7 @@ ifdLevel = 3; runningHydraEvalTest = false; - defaultCompiler = "ghc966"; + defaultCompiler = "ghc967"; config = import ./config.nix; inherit (nixpkgs) lib; diff --git a/lazy-inputs/default.nix b/lazy-inputs/default.nix index ad4edd433..aec3e427b 100644 --- a/lazy-inputs/default.nix +++ b/lazy-inputs/default.nix @@ -29,6 +29,7 @@ in { inherit ((callFlake { pkgs = final; src = ./ghc964; }).defaultNix) ghc964; inherit ((callFlake { pkgs = final; src = ./ghc965; }).defaultNix) ghc965; inherit ((callFlake { pkgs = final; src = ./ghc966; }).defaultNix) ghc966; + inherit ((callFlake { pkgs = final; src = ./ghc967; }).defaultNix) ghc967; inherit ((callFlake { pkgs = final; src = ./ghc96X; }).defaultNix) ghc96X; inherit ((callFlake { pkgs = final; src = ./ghc981; }).defaultNix) ghc981; inherit ((callFlake { pkgs = final; src = ./ghc982; }).defaultNix) ghc982; diff --git a/lazy-inputs/ghc967/flake.lock b/lazy-inputs/ghc967/flake.lock new file mode 100644 index 000000000..7e00d18d4 --- /dev/null +++ b/lazy-inputs/ghc967/flake.lock @@ -0,0 +1,30 @@ +{ + "nodes": { + "ghc967": { + "flake": false, + "locked": { + "lastModified": 1740624264, + "narHash": "sha256-2gLt3yKMnddXHepwi97eYUs9O+PycsS7nRI0yOtycKw=", + "ref": "ghc-9.6.7-iog", + "rev": "2b22b6ae69c94e721fde8af0108eb0feed97cc82", + "revCount": 61113, + "submodules": true, + "type": "git", + "url": "https://github.com/stable-haskell/ghc" + }, + "original": { + "ref": "ghc-9.6.7-iog", + "submodules": true, + "type": "git", + "url": "https://github.com/stable-haskell/ghc" + } + }, + "root": { + "inputs": { + "ghc967": "ghc967" + } + } + }, + "root": "root", + "version": 7 +} diff --git a/lazy-inputs/ghc967/flake.nix b/lazy-inputs/ghc967/flake.nix new file mode 100644 index 000000000..9c875d993 --- /dev/null +++ b/lazy-inputs/ghc967/flake.nix @@ -0,0 +1,12 @@ +{ + description = "Lazy Input for Haskell.nix"; + + inputs = { + ghc967 = { + flake = false; + url = "git+https://github.com/stable-haskell/ghc?ref=ghc-9.6.7-iog&submodules=1"; + }; + }; + + outputs = inputs: inputs; +} diff --git a/materialized/ghc-boot-packages-nix/ghc967-aarch64/base.nix b/materialized/ghc-boot-packages-nix/ghc967-aarch64/base.nix new file mode 100644 index 000000000..1f649a434 --- /dev/null +++ b/materialized/ghc-boot-packages-nix/ghc967-aarch64/base.nix @@ -0,0 +1,49 @@ +{ system + , compiler + , flags + , pkgs + , hsPkgs + , pkgconfPkgs + , errorHandler + , config + , ... }: + { + flags = {}; + package = { + specVersion = "3.0"; + identifier = { name = "base"; version = "4.18.3.0"; }; + license = "BSD-3-Clause"; + copyright = ""; + maintainer = "Core Libraries Committee "; + author = ""; + homepage = ""; + url = ""; + synopsis = "Core data structures and operations"; + description = "Haskell's base library provides, among other things, core types (e.g. [Bool](\"Data.Bool\") and [Int](\"Data.Int\")),\ndata structures (e.g. [List](\"Data.List\"), [Tuple](\"Data.Tuple\") and [Maybe](\"Data.Maybe\")),\nthe [Exception](\"Control.Exception\") mechanism, and the [IO](\"System.IO\") & [Concurrency](\"Control.Concurrent\") operations.\nThe \"Prelude\" module, which is imported by default, exposes a curated set of types and functions from other modules.\n\nOther data structures like [Map](https://hackage.haskell.org/package/containers/docs/Data-Map.html),\n[Set](https://hackage.haskell.org/package/containers/docs/Data-Set.html) are available in the [containers](https://hackage.haskell.org/package/containers) library.\nTo work with textual data, use the [text](https://hackage.haskell.org/package/text/docs/Data-Text.html) library."; + buildType = "Configure"; + }; + components = { + "library" = { + depends = [ + (hsPkgs."rts" or (errorHandler.buildDepError "rts")) + (hsPkgs."ghc-prim" or (errorHandler.buildDepError "ghc-prim")) + (hsPkgs."ghc-bignum" or (errorHandler.buildDepError "ghc-bignum")) + ]; + libs = pkgs.lib.optionals (system.isWindows) [ + (pkgs."wsock32" or (errorHandler.sysDepError "wsock32")) + (pkgs."user32" or (errorHandler.sysDepError "user32")) + (pkgs."shell32" or (errorHandler.sysDepError "shell32")) + (pkgs."mingw32" or (errorHandler.sysDepError "mingw32")) + (pkgs."kernel32" or (errorHandler.sysDepError "kernel32")) + (pkgs."advapi32" or (errorHandler.sysDepError "advapi32")) + (pkgs."mingwex" or (errorHandler.sysDepError "mingwex")) + (pkgs."ws2_32" or (errorHandler.sysDepError "ws2_32")) + (pkgs."shlwapi" or (errorHandler.sysDepError "shlwapi")) + (pkgs."ole32" or (errorHandler.sysDepError "ole32")) + (pkgs."rpcrt4" or (errorHandler.sysDepError "rpcrt4")) + (pkgs."ntdll" or (errorHandler.sysDepError "ntdll")) + ]; + buildable = true; + }; + }; + } // rec { src = pkgs.lib.mkDefault ./.; } diff --git a/materialized/ghc-boot-packages-nix/ghc967-aarch64/deriveConstants.nix b/materialized/ghc-boot-packages-nix/ghc967-aarch64/deriveConstants.nix new file mode 100644 index 000000000..135cdd02f --- /dev/null +++ b/materialized/ghc-boot-packages-nix/ghc967-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/ghc967-aarch64/genprimopcode.nix b/materialized/ghc-boot-packages-nix/ghc967-aarch64/genprimopcode.nix new file mode 100644 index 000000000..49bbe516b --- /dev/null +++ b/materialized/ghc-boot-packages-nix/ghc967-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.pkgsBuildBuild.alex.components.exes.alex or (pkgs.pkgsBuildBuild.alex or (errorHandler.buildToolDepError "alex:alex"))) + (hsPkgs.pkgsBuildBuild.happy.components.exes.happy or (pkgs.pkgsBuildBuild.happy or (errorHandler.buildToolDepError "happy:happy"))) + ]; + buildable = true; + }; + }; + }; + } // rec { src = pkgs.lib.mkDefault ./.; } diff --git a/materialized/ghc-boot-packages-nix/ghc967-aarch64/ghc-bignum.nix b/materialized/ghc-boot-packages-nix/ghc967-aarch64/ghc-bignum.nix new file mode 100644 index 000000000..46af6e0e9 --- /dev/null +++ b/materialized/ghc-boot-packages-nix/ghc967-aarch64/ghc-bignum.nix @@ -0,0 +1,37 @@ +{ system + , compiler + , flags + , pkgs + , hsPkgs + , pkgconfPkgs + , errorHandler + , config + , ... }: + { + flags = { native = false; ffi = false; gmp = false; check = false; }; + package = { + specVersion = "2.0"; + identifier = { name = "ghc-bignum"; version = "1.3"; }; + license = "BSD-3-Clause"; + copyright = ""; + maintainer = "libraries@haskell.org"; + author = "Sylvain Henry"; + homepage = ""; + url = ""; + synopsis = "GHC BigNum library"; + description = "This package provides the low-level implementation of the standard\n'BigNat', 'Natural' and 'Integer' types."; + buildType = "Configure"; + }; + components = { + "library" = { + depends = [ + (hsPkgs."ghc-prim" or (errorHandler.buildDepError "ghc-prim")) + ]; + buildable = (if !flags.native && !flags.gmp && !flags.ffi + then false + else true) && (if flags.native && (flags.gmp || flags.ffi) + then false + else true) && (if flags.gmp && flags.ffi then false else true); + }; + }; + } // rec { src = pkgs.lib.mkDefault ./.; } diff --git a/materialized/ghc-boot-packages-nix/ghc967-aarch64/ghc-boot.nix b/materialized/ghc-boot-packages-nix/ghc967-aarch64/ghc-boot.nix new file mode 100644 index 000000000..999901a0b --- /dev/null +++ b/materialized/ghc-boot-packages-nix/ghc967-aarch64/ghc-boot.nix @@ -0,0 +1,46 @@ +{ system + , compiler + , flags + , pkgs + , hsPkgs + , pkgconfPkgs + , errorHandler + , config + , ... }: + { + flags = {}; + package = { + specVersion = "3.0"; + identifier = { name = "ghc-boot"; version = "9.6.7"; }; + license = "BSD-3-Clause"; + copyright = ""; + maintainer = "ghc-devs@haskell.org"; + author = ""; + homepage = ""; + url = ""; + synopsis = "Shared functionality between GHC and its boot libraries"; + description = "This library is shared between GHC, ghc-pkg, and other boot\nlibraries.\n.\nA note about \"GHC.Unit.Database\": it only deals with the subset of\nthe package database that the compiler cares about: modules\npaths etc and not package metadata like description, authors\netc. It is thus not a library interface to ghc-pkg and is *not*\nsuitable for modifying GHC package databases.\n.\nThe package database format and this library are constructed in\nsuch a way that while ghc-pkg depends on Cabal, the GHC library\nand program do not have to depend on Cabal."; + buildType = "Custom"; + setup-depends = [ + (hsPkgs.pkgsBuildBuild.base or (pkgs.pkgsBuildBuild.base or (errorHandler.setupDepError "base"))) + (hsPkgs.pkgsBuildBuild.Cabal or (pkgs.pkgsBuildBuild.Cabal or (errorHandler.setupDepError "Cabal"))) + (hsPkgs.pkgsBuildBuild.directory or (pkgs.pkgsBuildBuild.directory or (errorHandler.setupDepError "directory"))) + (hsPkgs.pkgsBuildBuild.filepath or (pkgs.pkgsBuildBuild.filepath or (errorHandler.setupDepError "filepath"))) + ]; + }; + components = { + "library" = { + depends = [ + (hsPkgs."base" or (errorHandler.buildDepError "base")) + (hsPkgs."binary" or (errorHandler.buildDepError "binary")) + (hsPkgs."bytestring" or (errorHandler.buildDepError "bytestring")) + (hsPkgs."containers" or (errorHandler.buildDepError "containers")) + (hsPkgs."directory" or (errorHandler.buildDepError "directory")) + (hsPkgs."filepath" or (errorHandler.buildDepError "filepath")) + (hsPkgs."deepseq" or (errorHandler.buildDepError "deepseq")) + (hsPkgs."ghc-boot-th" or (errorHandler.buildDepError "ghc-boot-th")) + ] ++ pkgs.lib.optional (!system.isWindows) (hsPkgs."unix" or (errorHandler.buildDepError "unix")); + buildable = true; + }; + }; + } // rec { src = pkgs.lib.mkDefault ./.; } diff --git a/materialized/ghc-boot-packages-nix/ghc967-aarch64/ghc-heap.nix b/materialized/ghc-boot-packages-nix/ghc967-aarch64/ghc-heap.nix new file mode 100644 index 000000000..de58a054b --- /dev/null +++ b/materialized/ghc-boot-packages-nix/ghc967-aarch64/ghc-heap.nix @@ -0,0 +1,36 @@ +{ system + , compiler + , flags + , pkgs + , hsPkgs + , pkgconfPkgs + , errorHandler + , config + , ... }: + { + flags = {}; + package = { + specVersion = "3.0"; + identifier = { name = "ghc-heap"; version = "9.6.7"; }; + license = "BSD-3-Clause"; + copyright = ""; + maintainer = "libraries@haskell.org"; + author = ""; + homepage = ""; + url = ""; + synopsis = "Functions for walking GHC's heap"; + description = "This package provides functions for walking the GHC heap data structures\nand retrieving information about those data structures."; + buildType = "Simple"; + }; + components = { + "library" = { + depends = [ + (hsPkgs."base" or (errorHandler.buildDepError "base")) + (hsPkgs."ghc-prim" or (errorHandler.buildDepError "ghc-prim")) + (hsPkgs."rts" or (errorHandler.buildDepError "rts")) + (hsPkgs."containers" or (errorHandler.buildDepError "containers")) + ]; + buildable = true; + }; + }; + } // rec { src = pkgs.lib.mkDefault ./.; } diff --git a/materialized/ghc-boot-packages-nix/ghc967-aarch64/ghc-prim.nix b/materialized/ghc-boot-packages-nix/ghc967-aarch64/ghc-prim.nix new file mode 100644 index 000000000..a657675b5 --- /dev/null +++ b/materialized/ghc-boot-packages-nix/ghc967-aarch64/ghc-prim.nix @@ -0,0 +1,47 @@ +{ system + , compiler + , flags + , pkgs + , hsPkgs + , pkgconfPkgs + , errorHandler + , config + , ... }: + { + flags = {}; + package = { + specVersion = "2.2"; + identifier = { name = "ghc-prim"; version = "0.10.0"; }; + license = "BSD-3-Clause"; + copyright = ""; + maintainer = "libraries@haskell.org"; + author = ""; + homepage = ""; + url = ""; + synopsis = "GHC primitives"; + description = "This package contains the primitive types and operations supplied by GHC.\nIt is an internal package, only for the use of GHC developers.\nGHC users should not use it! If you do use it then expect\nbreaking changes at any time without warning. You should prefer\nto import @GHC.Exts@ from the @base@ package instead."; + buildType = "Custom"; + setup-depends = [ + (hsPkgs.pkgsBuildBuild.base or (pkgs.pkgsBuildBuild.base or (errorHandler.setupDepError "base"))) + (hsPkgs.pkgsBuildBuild.process or (pkgs.pkgsBuildBuild.process or (errorHandler.setupDepError "process"))) + (hsPkgs.pkgsBuildBuild.filepath or (pkgs.pkgsBuildBuild.filepath or (errorHandler.setupDepError "filepath"))) + (hsPkgs.pkgsBuildBuild.directory or (pkgs.pkgsBuildBuild.directory or (errorHandler.setupDepError "directory"))) + (hsPkgs.pkgsBuildBuild.Cabal or (pkgs.pkgsBuildBuild.Cabal or (errorHandler.setupDepError "Cabal"))) + ]; + }; + components = { + "library" = { + depends = [ (hsPkgs."rts" or (errorHandler.buildDepError "rts")) ]; + libs = pkgs.lib.optionals (system.isWindows) [ + (pkgs."user32" or (errorHandler.sysDepError "user32")) + (pkgs."mingw32" or (errorHandler.sysDepError "mingw32")) + (pkgs."mingwex" or (errorHandler.sysDepError "mingwex")) + (pkgs."ucrt" or (errorHandler.sysDepError "ucrt")) + ] ++ pkgs.lib.optionals (system.isLinux) [ + (pkgs."c" or (errorHandler.sysDepError "c")) + (pkgs."m" or (errorHandler.sysDepError "m")) + ]; + buildable = true; + }; + }; + } // rec { src = pkgs.lib.mkDefault ./.; } diff --git a/materialized/ghc-boot-packages-nix/ghc967-aarch64/ghc.nix b/materialized/ghc-boot-packages-nix/ghc967-aarch64/ghc.nix new file mode 100644 index 000000000..150c678bd --- /dev/null +++ b/materialized/ghc-boot-packages-nix/ghc967-aarch64/ghc.nix @@ -0,0 +1,69 @@ +{ system + , compiler + , flags + , pkgs + , hsPkgs + , pkgconfPkgs + , errorHandler + , config + , ... }: + { + flags = { + internal-interpreter = false; + dynamic-system-linker = true; + build-tool-depends = true; + }; + package = { + specVersion = "2.2"; + identifier = { name = "ghc"; version = "9.6.7"; }; + license = "BSD-3-Clause"; + copyright = ""; + maintainer = "glasgow-haskell-users@haskell.org"; + author = "The GHC Team"; + homepage = "http://www.haskell.org/ghc/"; + url = ""; + synopsis = "The GHC API"; + description = "GHC's functionality can be useful for more things than just\ncompiling Haskell programs. Important use cases are programs\nthat analyse (and perhaps transform) Haskell code. Others\ninclude loading Haskell code dynamically in a GHCi-like manner.\nFor this reason, a lot of GHC's functionality is made available\nthrough this package.\n\nSee \nfor more information."; + buildType = "Custom"; + setup-depends = [ + (hsPkgs.pkgsBuildBuild.base or (pkgs.pkgsBuildBuild.base or (errorHandler.setupDepError "base"))) + (hsPkgs.pkgsBuildBuild.Cabal or (pkgs.pkgsBuildBuild.Cabal or (errorHandler.setupDepError "Cabal"))) + (hsPkgs.pkgsBuildBuild.directory or (pkgs.pkgsBuildBuild.directory or (errorHandler.setupDepError "directory"))) + (hsPkgs.pkgsBuildBuild.process or (pkgs.pkgsBuildBuild.process or (errorHandler.setupDepError "process"))) + (hsPkgs.pkgsBuildBuild.filepath or (pkgs.pkgsBuildBuild.filepath or (errorHandler.setupDepError "filepath"))) + ]; + }; + components = { + "library" = { + depends = [ + (hsPkgs."base" or (errorHandler.buildDepError "base")) + (hsPkgs."deepseq" or (errorHandler.buildDepError "deepseq")) + (hsPkgs."directory" or (errorHandler.buildDepError "directory")) + (hsPkgs."process" or (errorHandler.buildDepError "process")) + (hsPkgs."bytestring" or (errorHandler.buildDepError "bytestring")) + (hsPkgs."binary" or (errorHandler.buildDepError "binary")) + (hsPkgs."time" or (errorHandler.buildDepError "time")) + (hsPkgs."containers" or (errorHandler.buildDepError "containers")) + (hsPkgs."array" or (errorHandler.buildDepError "array")) + (hsPkgs."filepath" or (errorHandler.buildDepError "filepath")) + (hsPkgs."template-haskell" or (errorHandler.buildDepError "template-haskell")) + (hsPkgs."hpc" or (errorHandler.buildDepError "hpc")) + (hsPkgs."transformers" or (errorHandler.buildDepError "transformers")) + (hsPkgs."exceptions" or (errorHandler.buildDepError "exceptions")) + (hsPkgs."stm" or (errorHandler.buildDepError "stm")) + (hsPkgs."ghc-boot" or (errorHandler.buildDepError "ghc-boot")) + (hsPkgs."ghc-heap" or (errorHandler.buildDepError "ghc-heap")) + (hsPkgs."ghci" or (errorHandler.buildDepError "ghci")) + ] ++ (if system.isWindows + then [ (hsPkgs."Win32" or (errorHandler.buildDepError "Win32")) ] + else [ (hsPkgs."unix" or (errorHandler.buildDepError "unix")) ]); + build-tools = pkgs.lib.optionals (flags.build-tool-depends) [ + (hsPkgs.pkgsBuildBuild.alex.components.exes.alex or (pkgs.pkgsBuildBuild.alex or (errorHandler.buildToolDepError "alex:alex"))) + (hsPkgs.pkgsBuildBuild.happy.components.exes.happy or (pkgs.pkgsBuildBuild.happy or (errorHandler.buildToolDepError "happy:happy"))) + (hsPkgs.pkgsBuildBuild.genprimopcode.components.exes.genprimopcode or (pkgs.pkgsBuildBuild.genprimopcode or (errorHandler.buildToolDepError "genprimopcode:genprimopcode"))) + (hsPkgs.pkgsBuildBuild.deriveConstants.components.exes.deriveConstants or (pkgs.pkgsBuildBuild.deriveConstants or (errorHandler.buildToolDepError "deriveConstants:deriveConstants"))) + ]; + buildable = true; + }; + }; + } // rec { src = pkgs.lib.mkDefault ./.; } diff --git a/materialized/ghc-boot-packages-nix/ghc967-aarch64/ghci.nix b/materialized/ghc-boot-packages-nix/ghc967-aarch64/ghci.nix new file mode 100644 index 000000000..917c80446 --- /dev/null +++ b/materialized/ghc-boot-packages-nix/ghc967-aarch64/ghci.nix @@ -0,0 +1,45 @@ +{ system + , compiler + , flags + , pkgs + , hsPkgs + , pkgconfPkgs + , errorHandler + , config + , ... }: + { + flags = { internal-interpreter = false; }; + package = { + specVersion = "1.10"; + identifier = { name = "ghci"; version = "9.6.7"; }; + license = "BSD-3-Clause"; + copyright = ""; + maintainer = "ghc-devs@haskell.org"; + author = ""; + homepage = ""; + url = ""; + synopsis = "The library supporting GHC's interactive interpreter"; + description = "This library offers interfaces which mediate interactions between the\n@ghci@ interactive shell and @iserv@, GHC's out-of-process interpreter\nbackend."; + buildType = "Simple"; + }; + components = { + "library" = { + depends = [ + (hsPkgs."rts" or (errorHandler.buildDepError "rts")) + (hsPkgs."array" or (errorHandler.buildDepError "array")) + (hsPkgs."base" or (errorHandler.buildDepError "base")) + (hsPkgs."ghc-prim" or (errorHandler.buildDepError "ghc-prim")) + (hsPkgs."binary" or (errorHandler.buildDepError "binary")) + (hsPkgs."bytestring" or (errorHandler.buildDepError "bytestring")) + (hsPkgs."containers" or (errorHandler.buildDepError "containers")) + (hsPkgs."deepseq" or (errorHandler.buildDepError "deepseq")) + (hsPkgs."filepath" or (errorHandler.buildDepError "filepath")) + (hsPkgs."ghc-boot" or (errorHandler.buildDepError "ghc-boot")) + (hsPkgs."ghc-heap" or (errorHandler.buildDepError "ghc-heap")) + (hsPkgs."template-haskell" or (errorHandler.buildDepError "template-haskell")) + (hsPkgs."transformers" or (errorHandler.buildDepError "transformers")) + ] ++ pkgs.lib.optional (!system.isWindows) (hsPkgs."unix" or (errorHandler.buildDepError "unix")); + buildable = true; + }; + }; + } // rec { src = pkgs.lib.mkDefault ./.; } diff --git a/materialized/ghc-boot-packages-nix/ghc967-aarch64/hpc.nix b/materialized/ghc-boot-packages-nix/ghc967-aarch64/hpc.nix new file mode 100644 index 000000000..c9d84dfbb --- /dev/null +++ b/materialized/ghc-boot-packages-nix/ghc967-aarch64/hpc.nix @@ -0,0 +1,38 @@ +{ system + , compiler + , flags + , pkgs + , hsPkgs + , pkgconfPkgs + , errorHandler + , config + , ... }: + { + flags = {}; + package = { + specVersion = "1.10"; + identifier = { name = "hpc"; version = "0.6.2.0"; }; + license = "BSD-3-Clause"; + copyright = ""; + maintainer = "ghc-devs@haskell.org"; + author = "Andy Gill"; + homepage = ""; + url = ""; + synopsis = "Code Coverage Library for Haskell"; + description = "This package provides the code coverage library for Haskell.\n\nSee for more\ninformation."; + buildType = "Simple"; + }; + components = { + "library" = { + depends = [ + (hsPkgs."base" or (errorHandler.buildDepError "base")) + (hsPkgs."containers" or (errorHandler.buildDepError "containers")) + (hsPkgs."deepseq" or (errorHandler.buildDepError "deepseq")) + (hsPkgs."directory" or (errorHandler.buildDepError "directory")) + (hsPkgs."filepath" or (errorHandler.buildDepError "filepath")) + (hsPkgs."time" or (errorHandler.buildDepError "time")) + ]; + buildable = true; + }; + }; + } // rec { src = pkgs.lib.mkDefault ./.; } diff --git a/materialized/ghc-boot-packages-nix/ghc967-aarch64/integer-gmp.nix b/materialized/ghc-boot-packages-nix/ghc967-aarch64/integer-gmp.nix new file mode 100644 index 000000000..94f930e70 --- /dev/null +++ b/materialized/ghc-boot-packages-nix/ghc967-aarch64/integer-gmp.nix @@ -0,0 +1,35 @@ +{ system + , compiler + , flags + , pkgs + , hsPkgs + , pkgconfPkgs + , errorHandler + , config + , ... }: + { + flags = {}; + package = { + specVersion = "2.0"; + identifier = { name = "integer-gmp"; version = "1.1"; }; + license = "BSD-3-Clause"; + copyright = ""; + maintainer = "hvr@gnu.org"; + author = "Herbert Valerio Riedel"; + homepage = "https://www.haskell.org/ghc/"; + url = ""; + synopsis = "Integer library based on GMP"; + description = "This package used to provide an implementation of the standard 'Integer'\ntype based on the\n.\n\nIt is now deprecated in favor of the 'ghc-bignum' package.\n\nIts purpose is to provide backward compatibility for codes directly\ndepending on the `integer-gmp` package."; + buildType = "Simple"; + }; + components = { + "library" = { + depends = [ + (hsPkgs."base" or (errorHandler.buildDepError "base")) + (hsPkgs."ghc-prim" or (errorHandler.buildDepError "ghc-prim")) + (hsPkgs."ghc-bignum" or (errorHandler.buildDepError "ghc-bignum")) + ]; + buildable = true; + }; + }; + } // rec { src = pkgs.lib.mkDefault ./.; } diff --git a/materialized/ghc-boot-packages-nix/ghc967-aarch64/iserv.nix b/materialized/ghc-boot-packages-nix/ghc967-aarch64/iserv.nix new file mode 100644 index 000000000..5b2596b00 --- /dev/null +++ b/materialized/ghc-boot-packages-nix/ghc967-aarch64/iserv.nix @@ -0,0 +1,42 @@ +{ system + , compiler + , flags + , pkgs + , hsPkgs + , pkgconfPkgs + , errorHandler + , config + , ... }: + { + flags = {}; + package = { + specVersion = "1.10"; + identifier = { name = "iserv"; version = "9.6.7"; }; + license = "BSD-3-Clause"; + copyright = "XXX"; + maintainer = "XXX"; + author = "XXX"; + homepage = ""; + url = ""; + synopsis = "iserv allows GHC to delegate Template Haskell computations"; + description = "GHC can be provided with a path to the iserv binary with\n@-pgmi=/path/to/iserv-bin@, and will in combination with\n@-fexternal-interpreter@, compile Template Haskell though the\n@iserv-bin@ delegate. This is very similar to how ghcjs has been\ncompiling Template Haskell, by spawning a separate delegate (so\ncalled runner on the javascript vm) and evaluating the splices\nthere.\n\nTo use iserv with cross compilers, please see @libraries/libiserv@\nand @utils/iserv-proxy@."; + buildType = "Simple"; + }; + components = { + exes = { + "iserv" = { + depends = [ + (hsPkgs."array" or (errorHandler.buildDepError "array")) + (hsPkgs."base" or (errorHandler.buildDepError "base")) + (hsPkgs."binary" or (errorHandler.buildDepError "binary")) + (hsPkgs."bytestring" or (errorHandler.buildDepError "bytestring")) + (hsPkgs."containers" or (errorHandler.buildDepError "containers")) + (hsPkgs."deepseq" or (errorHandler.buildDepError "deepseq")) + (hsPkgs."ghci" or (errorHandler.buildDepError "ghci")) + (hsPkgs."libiserv" or (errorHandler.buildDepError "libiserv")) + ] ++ pkgs.lib.optional (!system.isWindows) (hsPkgs."unix" or (errorHandler.buildDepError "unix")); + buildable = true; + }; + }; + }; + } // rec { src = pkgs.lib.mkDefault ./.; } diff --git a/materialized/ghc-boot-packages-nix/ghc967-aarch64/libiserv.nix b/materialized/ghc-boot-packages-nix/ghc967-aarch64/libiserv.nix new file mode 100644 index 000000000..41942678e --- /dev/null +++ b/materialized/ghc-boot-packages-nix/ghc967-aarch64/libiserv.nix @@ -0,0 +1,38 @@ +{ system + , compiler + , flags + , pkgs + , hsPkgs + , pkgconfPkgs + , errorHandler + , config + , ... }: + { + flags = { network = false; }; + package = { + specVersion = "1.10"; + identifier = { name = "libiserv"; version = "9.6.7"; }; + license = "BSD-3-Clause"; + copyright = "XXX"; + maintainer = "XXX"; + author = "XXX"; + homepage = ""; + url = ""; + synopsis = "Provides shared functionality between iserv and iserv-proxy."; + description = "Provides shared functionality between iserv and iserv-proxy."; + buildType = "Simple"; + }; + components = { + "library" = { + depends = [ + (hsPkgs."base" or (errorHandler.buildDepError "base")) + (hsPkgs."binary" or (errorHandler.buildDepError "binary")) + (hsPkgs."bytestring" or (errorHandler.buildDepError "bytestring")) + (hsPkgs."containers" or (errorHandler.buildDepError "containers")) + (hsPkgs."deepseq" or (errorHandler.buildDepError "deepseq")) + (hsPkgs."ghci" or (errorHandler.buildDepError "ghci")) + ] ++ pkgs.lib.optional (!system.isWindows) (hsPkgs."unix" or (errorHandler.buildDepError "unix")); + buildable = true; + }; + }; + } // rec { src = pkgs.lib.mkDefault ./.; } diff --git a/materialized/ghc-boot-packages-nix/ghc967-aarch64/remote-iserv.nix b/materialized/ghc-boot-packages-nix/ghc967-aarch64/remote-iserv.nix new file mode 100644 index 000000000..1f659bea7 --- /dev/null +++ b/materialized/ghc-boot-packages-nix/ghc967-aarch64/remote-iserv.nix @@ -0,0 +1,36 @@ +{ system + , compiler + , flags + , pkgs + , hsPkgs + , pkgconfPkgs + , errorHandler + , config + , ... }: + { + flags = {}; + package = { + specVersion = "1.10"; + identifier = { name = "remote-iserv"; version = "9.6.7"; }; + license = "BSD-3-Clause"; + copyright = "XXX"; + maintainer = "Moritz Angermann "; + author = "Moritz Angermann "; + homepage = ""; + url = ""; + synopsis = "iserv allows GHC to delegate Template Haskell computations"; + description = "This is a very simple remote runner for iserv, to be used together\nwith iserv-proxy. The foundamental idea is that this this wrapper\nstarts running libiserv on a given port to which iserv-proxy will\nthen connect."; + buildType = "Simple"; + }; + components = { + exes = { + "remote-iserv" = { + depends = [ + (hsPkgs."base" or (errorHandler.buildDepError "base")) + (hsPkgs."libiserv" or (errorHandler.buildDepError "libiserv")) + ]; + buildable = true; + }; + }; + }; + } // rec { src = pkgs.lib.mkDefault ./.; } diff --git a/materialized/ghc-boot-packages-nix/ghc967-aarch64/template-haskell.nix b/materialized/ghc-boot-packages-nix/ghc967-aarch64/template-haskell.nix new file mode 100644 index 000000000..693b8f6a7 --- /dev/null +++ b/materialized/ghc-boot-packages-nix/ghc967-aarch64/template-haskell.nix @@ -0,0 +1,36 @@ +{ system + , compiler + , flags + , pkgs + , hsPkgs + , pkgconfPkgs + , errorHandler + , config + , ... }: + { + flags = {}; + package = { + specVersion = "1.10"; + identifier = { name = "template-haskell"; version = "2.20.0.0"; }; + license = "BSD-3-Clause"; + copyright = ""; + maintainer = "libraries@haskell.org"; + author = ""; + homepage = ""; + url = ""; + synopsis = "Support library for Template Haskell"; + description = "This package provides modules containing facilities for manipulating\nHaskell source code using Template Haskell.\n\nSee for more\ninformation."; + buildType = "Simple"; + }; + components = { + "library" = { + depends = [ + (hsPkgs."base" or (errorHandler.buildDepError "base")) + (hsPkgs."ghc-boot-th" or (errorHandler.buildDepError "ghc-boot-th")) + (hsPkgs."ghc-prim" or (errorHandler.buildDepError "ghc-prim")) + (hsPkgs."pretty" or (errorHandler.buildDepError "pretty")) + ]; + buildable = true; + }; + }; + } // rec { src = pkgs.lib.mkDefault ./.; } diff --git a/materialized/ghc-boot-packages-nix/ghc967-ghcjs/base.nix b/materialized/ghc-boot-packages-nix/ghc967-ghcjs/base.nix new file mode 100644 index 000000000..1f649a434 --- /dev/null +++ b/materialized/ghc-boot-packages-nix/ghc967-ghcjs/base.nix @@ -0,0 +1,49 @@ +{ system + , compiler + , flags + , pkgs + , hsPkgs + , pkgconfPkgs + , errorHandler + , config + , ... }: + { + flags = {}; + package = { + specVersion = "3.0"; + identifier = { name = "base"; version = "4.18.3.0"; }; + license = "BSD-3-Clause"; + copyright = ""; + maintainer = "Core Libraries Committee "; + author = ""; + homepage = ""; + url = ""; + synopsis = "Core data structures and operations"; + description = "Haskell's base library provides, among other things, core types (e.g. [Bool](\"Data.Bool\") and [Int](\"Data.Int\")),\ndata structures (e.g. [List](\"Data.List\"), [Tuple](\"Data.Tuple\") and [Maybe](\"Data.Maybe\")),\nthe [Exception](\"Control.Exception\") mechanism, and the [IO](\"System.IO\") & [Concurrency](\"Control.Concurrent\") operations.\nThe \"Prelude\" module, which is imported by default, exposes a curated set of types and functions from other modules.\n\nOther data structures like [Map](https://hackage.haskell.org/package/containers/docs/Data-Map.html),\n[Set](https://hackage.haskell.org/package/containers/docs/Data-Set.html) are available in the [containers](https://hackage.haskell.org/package/containers) library.\nTo work with textual data, use the [text](https://hackage.haskell.org/package/text/docs/Data-Text.html) library."; + buildType = "Configure"; + }; + components = { + "library" = { + depends = [ + (hsPkgs."rts" or (errorHandler.buildDepError "rts")) + (hsPkgs."ghc-prim" or (errorHandler.buildDepError "ghc-prim")) + (hsPkgs."ghc-bignum" or (errorHandler.buildDepError "ghc-bignum")) + ]; + libs = pkgs.lib.optionals (system.isWindows) [ + (pkgs."wsock32" or (errorHandler.sysDepError "wsock32")) + (pkgs."user32" or (errorHandler.sysDepError "user32")) + (pkgs."shell32" or (errorHandler.sysDepError "shell32")) + (pkgs."mingw32" or (errorHandler.sysDepError "mingw32")) + (pkgs."kernel32" or (errorHandler.sysDepError "kernel32")) + (pkgs."advapi32" or (errorHandler.sysDepError "advapi32")) + (pkgs."mingwex" or (errorHandler.sysDepError "mingwex")) + (pkgs."ws2_32" or (errorHandler.sysDepError "ws2_32")) + (pkgs."shlwapi" or (errorHandler.sysDepError "shlwapi")) + (pkgs."ole32" or (errorHandler.sysDepError "ole32")) + (pkgs."rpcrt4" or (errorHandler.sysDepError "rpcrt4")) + (pkgs."ntdll" or (errorHandler.sysDepError "ntdll")) + ]; + buildable = true; + }; + }; + } // rec { src = pkgs.lib.mkDefault ./.; } diff --git a/materialized/ghc-boot-packages-nix/ghc967-ghcjs/deriveConstants.nix b/materialized/ghc-boot-packages-nix/ghc967-ghcjs/deriveConstants.nix new file mode 100644 index 000000000..135cdd02f --- /dev/null +++ b/materialized/ghc-boot-packages-nix/ghc967-ghcjs/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/ghc967-ghcjs/genprimopcode.nix b/materialized/ghc-boot-packages-nix/ghc967-ghcjs/genprimopcode.nix new file mode 100644 index 000000000..49bbe516b --- /dev/null +++ b/materialized/ghc-boot-packages-nix/ghc967-ghcjs/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.pkgsBuildBuild.alex.components.exes.alex or (pkgs.pkgsBuildBuild.alex or (errorHandler.buildToolDepError "alex:alex"))) + (hsPkgs.pkgsBuildBuild.happy.components.exes.happy or (pkgs.pkgsBuildBuild.happy or (errorHandler.buildToolDepError "happy:happy"))) + ]; + buildable = true; + }; + }; + }; + } // rec { src = pkgs.lib.mkDefault ./.; } diff --git a/materialized/ghc-boot-packages-nix/ghc967-ghcjs/ghc-bignum.nix b/materialized/ghc-boot-packages-nix/ghc967-ghcjs/ghc-bignum.nix new file mode 100644 index 000000000..46af6e0e9 --- /dev/null +++ b/materialized/ghc-boot-packages-nix/ghc967-ghcjs/ghc-bignum.nix @@ -0,0 +1,37 @@ +{ system + , compiler + , flags + , pkgs + , hsPkgs + , pkgconfPkgs + , errorHandler + , config + , ... }: + { + flags = { native = false; ffi = false; gmp = false; check = false; }; + package = { + specVersion = "2.0"; + identifier = { name = "ghc-bignum"; version = "1.3"; }; + license = "BSD-3-Clause"; + copyright = ""; + maintainer = "libraries@haskell.org"; + author = "Sylvain Henry"; + homepage = ""; + url = ""; + synopsis = "GHC BigNum library"; + description = "This package provides the low-level implementation of the standard\n'BigNat', 'Natural' and 'Integer' types."; + buildType = "Configure"; + }; + components = { + "library" = { + depends = [ + (hsPkgs."ghc-prim" or (errorHandler.buildDepError "ghc-prim")) + ]; + buildable = (if !flags.native && !flags.gmp && !flags.ffi + then false + else true) && (if flags.native && (flags.gmp || flags.ffi) + then false + else true) && (if flags.gmp && flags.ffi then false else true); + }; + }; + } // rec { src = pkgs.lib.mkDefault ./.; } diff --git a/materialized/ghc-boot-packages-nix/ghc967-ghcjs/ghc-boot.nix b/materialized/ghc-boot-packages-nix/ghc967-ghcjs/ghc-boot.nix new file mode 100644 index 000000000..999901a0b --- /dev/null +++ b/materialized/ghc-boot-packages-nix/ghc967-ghcjs/ghc-boot.nix @@ -0,0 +1,46 @@ +{ system + , compiler + , flags + , pkgs + , hsPkgs + , pkgconfPkgs + , errorHandler + , config + , ... }: + { + flags = {}; + package = { + specVersion = "3.0"; + identifier = { name = "ghc-boot"; version = "9.6.7"; }; + license = "BSD-3-Clause"; + copyright = ""; + maintainer = "ghc-devs@haskell.org"; + author = ""; + homepage = ""; + url = ""; + synopsis = "Shared functionality between GHC and its boot libraries"; + description = "This library is shared between GHC, ghc-pkg, and other boot\nlibraries.\n.\nA note about \"GHC.Unit.Database\": it only deals with the subset of\nthe package database that the compiler cares about: modules\npaths etc and not package metadata like description, authors\netc. It is thus not a library interface to ghc-pkg and is *not*\nsuitable for modifying GHC package databases.\n.\nThe package database format and this library are constructed in\nsuch a way that while ghc-pkg depends on Cabal, the GHC library\nand program do not have to depend on Cabal."; + buildType = "Custom"; + setup-depends = [ + (hsPkgs.pkgsBuildBuild.base or (pkgs.pkgsBuildBuild.base or (errorHandler.setupDepError "base"))) + (hsPkgs.pkgsBuildBuild.Cabal or (pkgs.pkgsBuildBuild.Cabal or (errorHandler.setupDepError "Cabal"))) + (hsPkgs.pkgsBuildBuild.directory or (pkgs.pkgsBuildBuild.directory or (errorHandler.setupDepError "directory"))) + (hsPkgs.pkgsBuildBuild.filepath or (pkgs.pkgsBuildBuild.filepath or (errorHandler.setupDepError "filepath"))) + ]; + }; + components = { + "library" = { + depends = [ + (hsPkgs."base" or (errorHandler.buildDepError "base")) + (hsPkgs."binary" or (errorHandler.buildDepError "binary")) + (hsPkgs."bytestring" or (errorHandler.buildDepError "bytestring")) + (hsPkgs."containers" or (errorHandler.buildDepError "containers")) + (hsPkgs."directory" or (errorHandler.buildDepError "directory")) + (hsPkgs."filepath" or (errorHandler.buildDepError "filepath")) + (hsPkgs."deepseq" or (errorHandler.buildDepError "deepseq")) + (hsPkgs."ghc-boot-th" or (errorHandler.buildDepError "ghc-boot-th")) + ] ++ pkgs.lib.optional (!system.isWindows) (hsPkgs."unix" or (errorHandler.buildDepError "unix")); + buildable = true; + }; + }; + } // rec { src = pkgs.lib.mkDefault ./.; } diff --git a/materialized/ghc-boot-packages-nix/ghc967-ghcjs/ghc-heap.nix b/materialized/ghc-boot-packages-nix/ghc967-ghcjs/ghc-heap.nix new file mode 100644 index 000000000..de58a054b --- /dev/null +++ b/materialized/ghc-boot-packages-nix/ghc967-ghcjs/ghc-heap.nix @@ -0,0 +1,36 @@ +{ system + , compiler + , flags + , pkgs + , hsPkgs + , pkgconfPkgs + , errorHandler + , config + , ... }: + { + flags = {}; + package = { + specVersion = "3.0"; + identifier = { name = "ghc-heap"; version = "9.6.7"; }; + license = "BSD-3-Clause"; + copyright = ""; + maintainer = "libraries@haskell.org"; + author = ""; + homepage = ""; + url = ""; + synopsis = "Functions for walking GHC's heap"; + description = "This package provides functions for walking the GHC heap data structures\nand retrieving information about those data structures."; + buildType = "Simple"; + }; + components = { + "library" = { + depends = [ + (hsPkgs."base" or (errorHandler.buildDepError "base")) + (hsPkgs."ghc-prim" or (errorHandler.buildDepError "ghc-prim")) + (hsPkgs."rts" or (errorHandler.buildDepError "rts")) + (hsPkgs."containers" or (errorHandler.buildDepError "containers")) + ]; + buildable = true; + }; + }; + } // rec { src = pkgs.lib.mkDefault ./.; } diff --git a/materialized/ghc-boot-packages-nix/ghc967-ghcjs/ghc-prim.nix b/materialized/ghc-boot-packages-nix/ghc967-ghcjs/ghc-prim.nix new file mode 100644 index 000000000..a657675b5 --- /dev/null +++ b/materialized/ghc-boot-packages-nix/ghc967-ghcjs/ghc-prim.nix @@ -0,0 +1,47 @@ +{ system + , compiler + , flags + , pkgs + , hsPkgs + , pkgconfPkgs + , errorHandler + , config + , ... }: + { + flags = {}; + package = { + specVersion = "2.2"; + identifier = { name = "ghc-prim"; version = "0.10.0"; }; + license = "BSD-3-Clause"; + copyright = ""; + maintainer = "libraries@haskell.org"; + author = ""; + homepage = ""; + url = ""; + synopsis = "GHC primitives"; + description = "This package contains the primitive types and operations supplied by GHC.\nIt is an internal package, only for the use of GHC developers.\nGHC users should not use it! If you do use it then expect\nbreaking changes at any time without warning. You should prefer\nto import @GHC.Exts@ from the @base@ package instead."; + buildType = "Custom"; + setup-depends = [ + (hsPkgs.pkgsBuildBuild.base or (pkgs.pkgsBuildBuild.base or (errorHandler.setupDepError "base"))) + (hsPkgs.pkgsBuildBuild.process or (pkgs.pkgsBuildBuild.process or (errorHandler.setupDepError "process"))) + (hsPkgs.pkgsBuildBuild.filepath or (pkgs.pkgsBuildBuild.filepath or (errorHandler.setupDepError "filepath"))) + (hsPkgs.pkgsBuildBuild.directory or (pkgs.pkgsBuildBuild.directory or (errorHandler.setupDepError "directory"))) + (hsPkgs.pkgsBuildBuild.Cabal or (pkgs.pkgsBuildBuild.Cabal or (errorHandler.setupDepError "Cabal"))) + ]; + }; + components = { + "library" = { + depends = [ (hsPkgs."rts" or (errorHandler.buildDepError "rts")) ]; + libs = pkgs.lib.optionals (system.isWindows) [ + (pkgs."user32" or (errorHandler.sysDepError "user32")) + (pkgs."mingw32" or (errorHandler.sysDepError "mingw32")) + (pkgs."mingwex" or (errorHandler.sysDepError "mingwex")) + (pkgs."ucrt" or (errorHandler.sysDepError "ucrt")) + ] ++ pkgs.lib.optionals (system.isLinux) [ + (pkgs."c" or (errorHandler.sysDepError "c")) + (pkgs."m" or (errorHandler.sysDepError "m")) + ]; + buildable = true; + }; + }; + } // rec { src = pkgs.lib.mkDefault ./.; } diff --git a/materialized/ghc-boot-packages-nix/ghc967-ghcjs/ghc.nix b/materialized/ghc-boot-packages-nix/ghc967-ghcjs/ghc.nix new file mode 100644 index 000000000..150c678bd --- /dev/null +++ b/materialized/ghc-boot-packages-nix/ghc967-ghcjs/ghc.nix @@ -0,0 +1,69 @@ +{ system + , compiler + , flags + , pkgs + , hsPkgs + , pkgconfPkgs + , errorHandler + , config + , ... }: + { + flags = { + internal-interpreter = false; + dynamic-system-linker = true; + build-tool-depends = true; + }; + package = { + specVersion = "2.2"; + identifier = { name = "ghc"; version = "9.6.7"; }; + license = "BSD-3-Clause"; + copyright = ""; + maintainer = "glasgow-haskell-users@haskell.org"; + author = "The GHC Team"; + homepage = "http://www.haskell.org/ghc/"; + url = ""; + synopsis = "The GHC API"; + description = "GHC's functionality can be useful for more things than just\ncompiling Haskell programs. Important use cases are programs\nthat analyse (and perhaps transform) Haskell code. Others\ninclude loading Haskell code dynamically in a GHCi-like manner.\nFor this reason, a lot of GHC's functionality is made available\nthrough this package.\n\nSee \nfor more information."; + buildType = "Custom"; + setup-depends = [ + (hsPkgs.pkgsBuildBuild.base or (pkgs.pkgsBuildBuild.base or (errorHandler.setupDepError "base"))) + (hsPkgs.pkgsBuildBuild.Cabal or (pkgs.pkgsBuildBuild.Cabal or (errorHandler.setupDepError "Cabal"))) + (hsPkgs.pkgsBuildBuild.directory or (pkgs.pkgsBuildBuild.directory or (errorHandler.setupDepError "directory"))) + (hsPkgs.pkgsBuildBuild.process or (pkgs.pkgsBuildBuild.process or (errorHandler.setupDepError "process"))) + (hsPkgs.pkgsBuildBuild.filepath or (pkgs.pkgsBuildBuild.filepath or (errorHandler.setupDepError "filepath"))) + ]; + }; + components = { + "library" = { + depends = [ + (hsPkgs."base" or (errorHandler.buildDepError "base")) + (hsPkgs."deepseq" or (errorHandler.buildDepError "deepseq")) + (hsPkgs."directory" or (errorHandler.buildDepError "directory")) + (hsPkgs."process" or (errorHandler.buildDepError "process")) + (hsPkgs."bytestring" or (errorHandler.buildDepError "bytestring")) + (hsPkgs."binary" or (errorHandler.buildDepError "binary")) + (hsPkgs."time" or (errorHandler.buildDepError "time")) + (hsPkgs."containers" or (errorHandler.buildDepError "containers")) + (hsPkgs."array" or (errorHandler.buildDepError "array")) + (hsPkgs."filepath" or (errorHandler.buildDepError "filepath")) + (hsPkgs."template-haskell" or (errorHandler.buildDepError "template-haskell")) + (hsPkgs."hpc" or (errorHandler.buildDepError "hpc")) + (hsPkgs."transformers" or (errorHandler.buildDepError "transformers")) + (hsPkgs."exceptions" or (errorHandler.buildDepError "exceptions")) + (hsPkgs."stm" or (errorHandler.buildDepError "stm")) + (hsPkgs."ghc-boot" or (errorHandler.buildDepError "ghc-boot")) + (hsPkgs."ghc-heap" or (errorHandler.buildDepError "ghc-heap")) + (hsPkgs."ghci" or (errorHandler.buildDepError "ghci")) + ] ++ (if system.isWindows + then [ (hsPkgs."Win32" or (errorHandler.buildDepError "Win32")) ] + else [ (hsPkgs."unix" or (errorHandler.buildDepError "unix")) ]); + build-tools = pkgs.lib.optionals (flags.build-tool-depends) [ + (hsPkgs.pkgsBuildBuild.alex.components.exes.alex or (pkgs.pkgsBuildBuild.alex or (errorHandler.buildToolDepError "alex:alex"))) + (hsPkgs.pkgsBuildBuild.happy.components.exes.happy or (pkgs.pkgsBuildBuild.happy or (errorHandler.buildToolDepError "happy:happy"))) + (hsPkgs.pkgsBuildBuild.genprimopcode.components.exes.genprimopcode or (pkgs.pkgsBuildBuild.genprimopcode or (errorHandler.buildToolDepError "genprimopcode:genprimopcode"))) + (hsPkgs.pkgsBuildBuild.deriveConstants.components.exes.deriveConstants or (pkgs.pkgsBuildBuild.deriveConstants or (errorHandler.buildToolDepError "deriveConstants:deriveConstants"))) + ]; + buildable = true; + }; + }; + } // rec { src = pkgs.lib.mkDefault ./.; } diff --git a/materialized/ghc-boot-packages-nix/ghc967-ghcjs/ghci.nix b/materialized/ghc-boot-packages-nix/ghc967-ghcjs/ghci.nix new file mode 100644 index 000000000..917c80446 --- /dev/null +++ b/materialized/ghc-boot-packages-nix/ghc967-ghcjs/ghci.nix @@ -0,0 +1,45 @@ +{ system + , compiler + , flags + , pkgs + , hsPkgs + , pkgconfPkgs + , errorHandler + , config + , ... }: + { + flags = { internal-interpreter = false; }; + package = { + specVersion = "1.10"; + identifier = { name = "ghci"; version = "9.6.7"; }; + license = "BSD-3-Clause"; + copyright = ""; + maintainer = "ghc-devs@haskell.org"; + author = ""; + homepage = ""; + url = ""; + synopsis = "The library supporting GHC's interactive interpreter"; + description = "This library offers interfaces which mediate interactions between the\n@ghci@ interactive shell and @iserv@, GHC's out-of-process interpreter\nbackend."; + buildType = "Simple"; + }; + components = { + "library" = { + depends = [ + (hsPkgs."rts" or (errorHandler.buildDepError "rts")) + (hsPkgs."array" or (errorHandler.buildDepError "array")) + (hsPkgs."base" or (errorHandler.buildDepError "base")) + (hsPkgs."ghc-prim" or (errorHandler.buildDepError "ghc-prim")) + (hsPkgs."binary" or (errorHandler.buildDepError "binary")) + (hsPkgs."bytestring" or (errorHandler.buildDepError "bytestring")) + (hsPkgs."containers" or (errorHandler.buildDepError "containers")) + (hsPkgs."deepseq" or (errorHandler.buildDepError "deepseq")) + (hsPkgs."filepath" or (errorHandler.buildDepError "filepath")) + (hsPkgs."ghc-boot" or (errorHandler.buildDepError "ghc-boot")) + (hsPkgs."ghc-heap" or (errorHandler.buildDepError "ghc-heap")) + (hsPkgs."template-haskell" or (errorHandler.buildDepError "template-haskell")) + (hsPkgs."transformers" or (errorHandler.buildDepError "transformers")) + ] ++ pkgs.lib.optional (!system.isWindows) (hsPkgs."unix" or (errorHandler.buildDepError "unix")); + buildable = true; + }; + }; + } // rec { src = pkgs.lib.mkDefault ./.; } diff --git a/materialized/ghc-boot-packages-nix/ghc967-ghcjs/hpc.nix b/materialized/ghc-boot-packages-nix/ghc967-ghcjs/hpc.nix new file mode 100644 index 000000000..c9d84dfbb --- /dev/null +++ b/materialized/ghc-boot-packages-nix/ghc967-ghcjs/hpc.nix @@ -0,0 +1,38 @@ +{ system + , compiler + , flags + , pkgs + , hsPkgs + , pkgconfPkgs + , errorHandler + , config + , ... }: + { + flags = {}; + package = { + specVersion = "1.10"; + identifier = { name = "hpc"; version = "0.6.2.0"; }; + license = "BSD-3-Clause"; + copyright = ""; + maintainer = "ghc-devs@haskell.org"; + author = "Andy Gill"; + homepage = ""; + url = ""; + synopsis = "Code Coverage Library for Haskell"; + description = "This package provides the code coverage library for Haskell.\n\nSee for more\ninformation."; + buildType = "Simple"; + }; + components = { + "library" = { + depends = [ + (hsPkgs."base" or (errorHandler.buildDepError "base")) + (hsPkgs."containers" or (errorHandler.buildDepError "containers")) + (hsPkgs."deepseq" or (errorHandler.buildDepError "deepseq")) + (hsPkgs."directory" or (errorHandler.buildDepError "directory")) + (hsPkgs."filepath" or (errorHandler.buildDepError "filepath")) + (hsPkgs."time" or (errorHandler.buildDepError "time")) + ]; + buildable = true; + }; + }; + } // rec { src = pkgs.lib.mkDefault ./.; } diff --git a/materialized/ghc-boot-packages-nix/ghc967-ghcjs/integer-gmp.nix b/materialized/ghc-boot-packages-nix/ghc967-ghcjs/integer-gmp.nix new file mode 100644 index 000000000..94f930e70 --- /dev/null +++ b/materialized/ghc-boot-packages-nix/ghc967-ghcjs/integer-gmp.nix @@ -0,0 +1,35 @@ +{ system + , compiler + , flags + , pkgs + , hsPkgs + , pkgconfPkgs + , errorHandler + , config + , ... }: + { + flags = {}; + package = { + specVersion = "2.0"; + identifier = { name = "integer-gmp"; version = "1.1"; }; + license = "BSD-3-Clause"; + copyright = ""; + maintainer = "hvr@gnu.org"; + author = "Herbert Valerio Riedel"; + homepage = "https://www.haskell.org/ghc/"; + url = ""; + synopsis = "Integer library based on GMP"; + description = "This package used to provide an implementation of the standard 'Integer'\ntype based on the\n.\n\nIt is now deprecated in favor of the 'ghc-bignum' package.\n\nIts purpose is to provide backward compatibility for codes directly\ndepending on the `integer-gmp` package."; + buildType = "Simple"; + }; + components = { + "library" = { + depends = [ + (hsPkgs."base" or (errorHandler.buildDepError "base")) + (hsPkgs."ghc-prim" or (errorHandler.buildDepError "ghc-prim")) + (hsPkgs."ghc-bignum" or (errorHandler.buildDepError "ghc-bignum")) + ]; + buildable = true; + }; + }; + } // rec { src = pkgs.lib.mkDefault ./.; } diff --git a/materialized/ghc-boot-packages-nix/ghc967-ghcjs/iserv.nix b/materialized/ghc-boot-packages-nix/ghc967-ghcjs/iserv.nix new file mode 100644 index 000000000..89c993cdf --- /dev/null +++ b/materialized/ghc-boot-packages-nix/ghc967-ghcjs/iserv.nix @@ -0,0 +1,41 @@ +{ system + , compiler + , flags + , pkgs + , hsPkgs + , pkgconfPkgs + , errorHandler + , config + , ... }: + { + flags = {}; + package = { + specVersion = "1.10"; + identifier = { name = "iserv"; version = "9.6.7"; }; + license = "BSD-3-Clause"; + copyright = "XXX"; + maintainer = "XXX"; + author = "XXX"; + homepage = ""; + url = ""; + synopsis = "iserv allows GHC to delegate Template Haskell computations"; + description = "GHC can be provided with a path to the iserv binary with\n@-pgmi=/path/to/iserv-bin@, and will in combination with\n@-fexternal-interpreter@, compile Template Haskell though the\n@iserv-bin@ delegate. This is very similar to how ghcjs has been\ncompiling Template Haskell, by spawning a separate delegate (so\ncalled runner on the javascript vm) and evaluating the splices\nthere."; + buildType = "Simple"; + }; + components = { + exes = { + "iserv" = { + depends = [ + (hsPkgs."array" or (errorHandler.buildDepError "array")) + (hsPkgs."base" or (errorHandler.buildDepError "base")) + (hsPkgs."binary" or (errorHandler.buildDepError "binary")) + (hsPkgs."bytestring" or (errorHandler.buildDepError "bytestring")) + (hsPkgs."containers" or (errorHandler.buildDepError "containers")) + (hsPkgs."deepseq" or (errorHandler.buildDepError "deepseq")) + (hsPkgs."ghci" or (errorHandler.buildDepError "ghci")) + ] ++ pkgs.lib.optional (!system.isWindows) (hsPkgs."unix" or (errorHandler.buildDepError "unix")); + buildable = true; + }; + }; + }; + } // rec { src = pkgs.lib.mkDefault ./.; } diff --git a/materialized/ghc-boot-packages-nix/ghc967-ghcjs/remote-iserv.nix b/materialized/ghc-boot-packages-nix/ghc967-ghcjs/remote-iserv.nix new file mode 100644 index 000000000..57987399c --- /dev/null +++ b/materialized/ghc-boot-packages-nix/ghc967-ghcjs/remote-iserv.nix @@ -0,0 +1,36 @@ +{ system + , compiler + , flags + , pkgs + , hsPkgs + , pkgconfPkgs + , errorHandler + , config + , ... }: + { + flags = {}; + package = { + specVersion = "1.10"; + identifier = { name = "remote-iserv"; version = "9.6.7"; }; + license = "BSD-3-Clause"; + copyright = "XXX"; + maintainer = "Moritz Angermann "; + author = "Moritz Angermann "; + homepage = ""; + url = ""; + synopsis = "iserv allows GHC to delegate Template Haskell computations"; + description = "This is a very simple remote runner for iserv, to be used together\nwith iserv-proxy. The foundamental idea is that this this wrapper\nstarts running the GHCi server on a given port to which iserv-proxy will\nthen connect."; + buildType = "Simple"; + }; + components = { + exes = { + "remote-iserv" = { + depends = [ + (hsPkgs."base" or (errorHandler.buildDepError "base")) + (hsPkgs."ghci" or (errorHandler.buildDepError "ghci")) + ]; + buildable = true; + }; + }; + }; + } // rec { src = pkgs.lib.mkDefault ./.; } diff --git a/materialized/ghc-boot-packages-nix/ghc967-ghcjs/template-haskell.nix b/materialized/ghc-boot-packages-nix/ghc967-ghcjs/template-haskell.nix new file mode 100644 index 000000000..693b8f6a7 --- /dev/null +++ b/materialized/ghc-boot-packages-nix/ghc967-ghcjs/template-haskell.nix @@ -0,0 +1,36 @@ +{ system + , compiler + , flags + , pkgs + , hsPkgs + , pkgconfPkgs + , errorHandler + , config + , ... }: + { + flags = {}; + package = { + specVersion = "1.10"; + identifier = { name = "template-haskell"; version = "2.20.0.0"; }; + license = "BSD-3-Clause"; + copyright = ""; + maintainer = "libraries@haskell.org"; + author = ""; + homepage = ""; + url = ""; + synopsis = "Support library for Template Haskell"; + description = "This package provides modules containing facilities for manipulating\nHaskell source code using Template Haskell.\n\nSee for more\ninformation."; + buildType = "Simple"; + }; + components = { + "library" = { + depends = [ + (hsPkgs."base" or (errorHandler.buildDepError "base")) + (hsPkgs."ghc-boot-th" or (errorHandler.buildDepError "ghc-boot-th")) + (hsPkgs."ghc-prim" or (errorHandler.buildDepError "ghc-prim")) + (hsPkgs."pretty" or (errorHandler.buildDepError "pretty")) + ]; + buildable = true; + }; + }; + } // rec { src = pkgs.lib.mkDefault ./.; } diff --git a/materialized/ghc-boot-packages-nix/ghc967/base.nix b/materialized/ghc-boot-packages-nix/ghc967/base.nix new file mode 100644 index 000000000..1f649a434 --- /dev/null +++ b/materialized/ghc-boot-packages-nix/ghc967/base.nix @@ -0,0 +1,49 @@ +{ system + , compiler + , flags + , pkgs + , hsPkgs + , pkgconfPkgs + , errorHandler + , config + , ... }: + { + flags = {}; + package = { + specVersion = "3.0"; + identifier = { name = "base"; version = "4.18.3.0"; }; + license = "BSD-3-Clause"; + copyright = ""; + maintainer = "Core Libraries Committee "; + author = ""; + homepage = ""; + url = ""; + synopsis = "Core data structures and operations"; + description = "Haskell's base library provides, among other things, core types (e.g. [Bool](\"Data.Bool\") and [Int](\"Data.Int\")),\ndata structures (e.g. [List](\"Data.List\"), [Tuple](\"Data.Tuple\") and [Maybe](\"Data.Maybe\")),\nthe [Exception](\"Control.Exception\") mechanism, and the [IO](\"System.IO\") & [Concurrency](\"Control.Concurrent\") operations.\nThe \"Prelude\" module, which is imported by default, exposes a curated set of types and functions from other modules.\n\nOther data structures like [Map](https://hackage.haskell.org/package/containers/docs/Data-Map.html),\n[Set](https://hackage.haskell.org/package/containers/docs/Data-Set.html) are available in the [containers](https://hackage.haskell.org/package/containers) library.\nTo work with textual data, use the [text](https://hackage.haskell.org/package/text/docs/Data-Text.html) library."; + buildType = "Configure"; + }; + components = { + "library" = { + depends = [ + (hsPkgs."rts" or (errorHandler.buildDepError "rts")) + (hsPkgs."ghc-prim" or (errorHandler.buildDepError "ghc-prim")) + (hsPkgs."ghc-bignum" or (errorHandler.buildDepError "ghc-bignum")) + ]; + libs = pkgs.lib.optionals (system.isWindows) [ + (pkgs."wsock32" or (errorHandler.sysDepError "wsock32")) + (pkgs."user32" or (errorHandler.sysDepError "user32")) + (pkgs."shell32" or (errorHandler.sysDepError "shell32")) + (pkgs."mingw32" or (errorHandler.sysDepError "mingw32")) + (pkgs."kernel32" or (errorHandler.sysDepError "kernel32")) + (pkgs."advapi32" or (errorHandler.sysDepError "advapi32")) + (pkgs."mingwex" or (errorHandler.sysDepError "mingwex")) + (pkgs."ws2_32" or (errorHandler.sysDepError "ws2_32")) + (pkgs."shlwapi" or (errorHandler.sysDepError "shlwapi")) + (pkgs."ole32" or (errorHandler.sysDepError "ole32")) + (pkgs."rpcrt4" or (errorHandler.sysDepError "rpcrt4")) + (pkgs."ntdll" or (errorHandler.sysDepError "ntdll")) + ]; + buildable = true; + }; + }; + } // rec { src = pkgs.lib.mkDefault ./.; } diff --git a/materialized/ghc-boot-packages-nix/ghc967/deriveConstants.nix b/materialized/ghc-boot-packages-nix/ghc967/deriveConstants.nix new file mode 100644 index 000000000..135cdd02f --- /dev/null +++ b/materialized/ghc-boot-packages-nix/ghc967/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/ghc967/genprimopcode.nix b/materialized/ghc-boot-packages-nix/ghc967/genprimopcode.nix new file mode 100644 index 000000000..49bbe516b --- /dev/null +++ b/materialized/ghc-boot-packages-nix/ghc967/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.pkgsBuildBuild.alex.components.exes.alex or (pkgs.pkgsBuildBuild.alex or (errorHandler.buildToolDepError "alex:alex"))) + (hsPkgs.pkgsBuildBuild.happy.components.exes.happy or (pkgs.pkgsBuildBuild.happy or (errorHandler.buildToolDepError "happy:happy"))) + ]; + buildable = true; + }; + }; + }; + } // rec { src = pkgs.lib.mkDefault ./.; } diff --git a/materialized/ghc-boot-packages-nix/ghc967/ghc-bignum.nix b/materialized/ghc-boot-packages-nix/ghc967/ghc-bignum.nix new file mode 100644 index 000000000..46af6e0e9 --- /dev/null +++ b/materialized/ghc-boot-packages-nix/ghc967/ghc-bignum.nix @@ -0,0 +1,37 @@ +{ system + , compiler + , flags + , pkgs + , hsPkgs + , pkgconfPkgs + , errorHandler + , config + , ... }: + { + flags = { native = false; ffi = false; gmp = false; check = false; }; + package = { + specVersion = "2.0"; + identifier = { name = "ghc-bignum"; version = "1.3"; }; + license = "BSD-3-Clause"; + copyright = ""; + maintainer = "libraries@haskell.org"; + author = "Sylvain Henry"; + homepage = ""; + url = ""; + synopsis = "GHC BigNum library"; + description = "This package provides the low-level implementation of the standard\n'BigNat', 'Natural' and 'Integer' types."; + buildType = "Configure"; + }; + components = { + "library" = { + depends = [ + (hsPkgs."ghc-prim" or (errorHandler.buildDepError "ghc-prim")) + ]; + buildable = (if !flags.native && !flags.gmp && !flags.ffi + then false + else true) && (if flags.native && (flags.gmp || flags.ffi) + then false + else true) && (if flags.gmp && flags.ffi then false else true); + }; + }; + } // rec { src = pkgs.lib.mkDefault ./.; } diff --git a/materialized/ghc-boot-packages-nix/ghc967/ghc-boot.nix b/materialized/ghc-boot-packages-nix/ghc967/ghc-boot.nix new file mode 100644 index 000000000..999901a0b --- /dev/null +++ b/materialized/ghc-boot-packages-nix/ghc967/ghc-boot.nix @@ -0,0 +1,46 @@ +{ system + , compiler + , flags + , pkgs + , hsPkgs + , pkgconfPkgs + , errorHandler + , config + , ... }: + { + flags = {}; + package = { + specVersion = "3.0"; + identifier = { name = "ghc-boot"; version = "9.6.7"; }; + license = "BSD-3-Clause"; + copyright = ""; + maintainer = "ghc-devs@haskell.org"; + author = ""; + homepage = ""; + url = ""; + synopsis = "Shared functionality between GHC and its boot libraries"; + description = "This library is shared between GHC, ghc-pkg, and other boot\nlibraries.\n.\nA note about \"GHC.Unit.Database\": it only deals with the subset of\nthe package database that the compiler cares about: modules\npaths etc and not package metadata like description, authors\netc. It is thus not a library interface to ghc-pkg and is *not*\nsuitable for modifying GHC package databases.\n.\nThe package database format and this library are constructed in\nsuch a way that while ghc-pkg depends on Cabal, the GHC library\nand program do not have to depend on Cabal."; + buildType = "Custom"; + setup-depends = [ + (hsPkgs.pkgsBuildBuild.base or (pkgs.pkgsBuildBuild.base or (errorHandler.setupDepError "base"))) + (hsPkgs.pkgsBuildBuild.Cabal or (pkgs.pkgsBuildBuild.Cabal or (errorHandler.setupDepError "Cabal"))) + (hsPkgs.pkgsBuildBuild.directory or (pkgs.pkgsBuildBuild.directory or (errorHandler.setupDepError "directory"))) + (hsPkgs.pkgsBuildBuild.filepath or (pkgs.pkgsBuildBuild.filepath or (errorHandler.setupDepError "filepath"))) + ]; + }; + components = { + "library" = { + depends = [ + (hsPkgs."base" or (errorHandler.buildDepError "base")) + (hsPkgs."binary" or (errorHandler.buildDepError "binary")) + (hsPkgs."bytestring" or (errorHandler.buildDepError "bytestring")) + (hsPkgs."containers" or (errorHandler.buildDepError "containers")) + (hsPkgs."directory" or (errorHandler.buildDepError "directory")) + (hsPkgs."filepath" or (errorHandler.buildDepError "filepath")) + (hsPkgs."deepseq" or (errorHandler.buildDepError "deepseq")) + (hsPkgs."ghc-boot-th" or (errorHandler.buildDepError "ghc-boot-th")) + ] ++ pkgs.lib.optional (!system.isWindows) (hsPkgs."unix" or (errorHandler.buildDepError "unix")); + buildable = true; + }; + }; + } // rec { src = pkgs.lib.mkDefault ./.; } diff --git a/materialized/ghc-boot-packages-nix/ghc967/ghc-heap.nix b/materialized/ghc-boot-packages-nix/ghc967/ghc-heap.nix new file mode 100644 index 000000000..de58a054b --- /dev/null +++ b/materialized/ghc-boot-packages-nix/ghc967/ghc-heap.nix @@ -0,0 +1,36 @@ +{ system + , compiler + , flags + , pkgs + , hsPkgs + , pkgconfPkgs + , errorHandler + , config + , ... }: + { + flags = {}; + package = { + specVersion = "3.0"; + identifier = { name = "ghc-heap"; version = "9.6.7"; }; + license = "BSD-3-Clause"; + copyright = ""; + maintainer = "libraries@haskell.org"; + author = ""; + homepage = ""; + url = ""; + synopsis = "Functions for walking GHC's heap"; + description = "This package provides functions for walking the GHC heap data structures\nand retrieving information about those data structures."; + buildType = "Simple"; + }; + components = { + "library" = { + depends = [ + (hsPkgs."base" or (errorHandler.buildDepError "base")) + (hsPkgs."ghc-prim" or (errorHandler.buildDepError "ghc-prim")) + (hsPkgs."rts" or (errorHandler.buildDepError "rts")) + (hsPkgs."containers" or (errorHandler.buildDepError "containers")) + ]; + buildable = true; + }; + }; + } // rec { src = pkgs.lib.mkDefault ./.; } diff --git a/materialized/ghc-boot-packages-nix/ghc967/ghc-prim.nix b/materialized/ghc-boot-packages-nix/ghc967/ghc-prim.nix new file mode 100644 index 000000000..a657675b5 --- /dev/null +++ b/materialized/ghc-boot-packages-nix/ghc967/ghc-prim.nix @@ -0,0 +1,47 @@ +{ system + , compiler + , flags + , pkgs + , hsPkgs + , pkgconfPkgs + , errorHandler + , config + , ... }: + { + flags = {}; + package = { + specVersion = "2.2"; + identifier = { name = "ghc-prim"; version = "0.10.0"; }; + license = "BSD-3-Clause"; + copyright = ""; + maintainer = "libraries@haskell.org"; + author = ""; + homepage = ""; + url = ""; + synopsis = "GHC primitives"; + description = "This package contains the primitive types and operations supplied by GHC.\nIt is an internal package, only for the use of GHC developers.\nGHC users should not use it! If you do use it then expect\nbreaking changes at any time without warning. You should prefer\nto import @GHC.Exts@ from the @base@ package instead."; + buildType = "Custom"; + setup-depends = [ + (hsPkgs.pkgsBuildBuild.base or (pkgs.pkgsBuildBuild.base or (errorHandler.setupDepError "base"))) + (hsPkgs.pkgsBuildBuild.process or (pkgs.pkgsBuildBuild.process or (errorHandler.setupDepError "process"))) + (hsPkgs.pkgsBuildBuild.filepath or (pkgs.pkgsBuildBuild.filepath or (errorHandler.setupDepError "filepath"))) + (hsPkgs.pkgsBuildBuild.directory or (pkgs.pkgsBuildBuild.directory or (errorHandler.setupDepError "directory"))) + (hsPkgs.pkgsBuildBuild.Cabal or (pkgs.pkgsBuildBuild.Cabal or (errorHandler.setupDepError "Cabal"))) + ]; + }; + components = { + "library" = { + depends = [ (hsPkgs."rts" or (errorHandler.buildDepError "rts")) ]; + libs = pkgs.lib.optionals (system.isWindows) [ + (pkgs."user32" or (errorHandler.sysDepError "user32")) + (pkgs."mingw32" or (errorHandler.sysDepError "mingw32")) + (pkgs."mingwex" or (errorHandler.sysDepError "mingwex")) + (pkgs."ucrt" or (errorHandler.sysDepError "ucrt")) + ] ++ pkgs.lib.optionals (system.isLinux) [ + (pkgs."c" or (errorHandler.sysDepError "c")) + (pkgs."m" or (errorHandler.sysDepError "m")) + ]; + buildable = true; + }; + }; + } // rec { src = pkgs.lib.mkDefault ./.; } diff --git a/materialized/ghc-boot-packages-nix/ghc967/ghc.nix b/materialized/ghc-boot-packages-nix/ghc967/ghc.nix new file mode 100644 index 000000000..150c678bd --- /dev/null +++ b/materialized/ghc-boot-packages-nix/ghc967/ghc.nix @@ -0,0 +1,69 @@ +{ system + , compiler + , flags + , pkgs + , hsPkgs + , pkgconfPkgs + , errorHandler + , config + , ... }: + { + flags = { + internal-interpreter = false; + dynamic-system-linker = true; + build-tool-depends = true; + }; + package = { + specVersion = "2.2"; + identifier = { name = "ghc"; version = "9.6.7"; }; + license = "BSD-3-Clause"; + copyright = ""; + maintainer = "glasgow-haskell-users@haskell.org"; + author = "The GHC Team"; + homepage = "http://www.haskell.org/ghc/"; + url = ""; + synopsis = "The GHC API"; + description = "GHC's functionality can be useful for more things than just\ncompiling Haskell programs. Important use cases are programs\nthat analyse (and perhaps transform) Haskell code. Others\ninclude loading Haskell code dynamically in a GHCi-like manner.\nFor this reason, a lot of GHC's functionality is made available\nthrough this package.\n\nSee \nfor more information."; + buildType = "Custom"; + setup-depends = [ + (hsPkgs.pkgsBuildBuild.base or (pkgs.pkgsBuildBuild.base or (errorHandler.setupDepError "base"))) + (hsPkgs.pkgsBuildBuild.Cabal or (pkgs.pkgsBuildBuild.Cabal or (errorHandler.setupDepError "Cabal"))) + (hsPkgs.pkgsBuildBuild.directory or (pkgs.pkgsBuildBuild.directory or (errorHandler.setupDepError "directory"))) + (hsPkgs.pkgsBuildBuild.process or (pkgs.pkgsBuildBuild.process or (errorHandler.setupDepError "process"))) + (hsPkgs.pkgsBuildBuild.filepath or (pkgs.pkgsBuildBuild.filepath or (errorHandler.setupDepError "filepath"))) + ]; + }; + components = { + "library" = { + depends = [ + (hsPkgs."base" or (errorHandler.buildDepError "base")) + (hsPkgs."deepseq" or (errorHandler.buildDepError "deepseq")) + (hsPkgs."directory" or (errorHandler.buildDepError "directory")) + (hsPkgs."process" or (errorHandler.buildDepError "process")) + (hsPkgs."bytestring" or (errorHandler.buildDepError "bytestring")) + (hsPkgs."binary" or (errorHandler.buildDepError "binary")) + (hsPkgs."time" or (errorHandler.buildDepError "time")) + (hsPkgs."containers" or (errorHandler.buildDepError "containers")) + (hsPkgs."array" or (errorHandler.buildDepError "array")) + (hsPkgs."filepath" or (errorHandler.buildDepError "filepath")) + (hsPkgs."template-haskell" or (errorHandler.buildDepError "template-haskell")) + (hsPkgs."hpc" or (errorHandler.buildDepError "hpc")) + (hsPkgs."transformers" or (errorHandler.buildDepError "transformers")) + (hsPkgs."exceptions" or (errorHandler.buildDepError "exceptions")) + (hsPkgs."stm" or (errorHandler.buildDepError "stm")) + (hsPkgs."ghc-boot" or (errorHandler.buildDepError "ghc-boot")) + (hsPkgs."ghc-heap" or (errorHandler.buildDepError "ghc-heap")) + (hsPkgs."ghci" or (errorHandler.buildDepError "ghci")) + ] ++ (if system.isWindows + then [ (hsPkgs."Win32" or (errorHandler.buildDepError "Win32")) ] + else [ (hsPkgs."unix" or (errorHandler.buildDepError "unix")) ]); + build-tools = pkgs.lib.optionals (flags.build-tool-depends) [ + (hsPkgs.pkgsBuildBuild.alex.components.exes.alex or (pkgs.pkgsBuildBuild.alex or (errorHandler.buildToolDepError "alex:alex"))) + (hsPkgs.pkgsBuildBuild.happy.components.exes.happy or (pkgs.pkgsBuildBuild.happy or (errorHandler.buildToolDepError "happy:happy"))) + (hsPkgs.pkgsBuildBuild.genprimopcode.components.exes.genprimopcode or (pkgs.pkgsBuildBuild.genprimopcode or (errorHandler.buildToolDepError "genprimopcode:genprimopcode"))) + (hsPkgs.pkgsBuildBuild.deriveConstants.components.exes.deriveConstants or (pkgs.pkgsBuildBuild.deriveConstants or (errorHandler.buildToolDepError "deriveConstants:deriveConstants"))) + ]; + buildable = true; + }; + }; + } // rec { src = pkgs.lib.mkDefault ./.; } diff --git a/materialized/ghc-boot-packages-nix/ghc967/ghci.nix b/materialized/ghc-boot-packages-nix/ghc967/ghci.nix new file mode 100644 index 000000000..917c80446 --- /dev/null +++ b/materialized/ghc-boot-packages-nix/ghc967/ghci.nix @@ -0,0 +1,45 @@ +{ system + , compiler + , flags + , pkgs + , hsPkgs + , pkgconfPkgs + , errorHandler + , config + , ... }: + { + flags = { internal-interpreter = false; }; + package = { + specVersion = "1.10"; + identifier = { name = "ghci"; version = "9.6.7"; }; + license = "BSD-3-Clause"; + copyright = ""; + maintainer = "ghc-devs@haskell.org"; + author = ""; + homepage = ""; + url = ""; + synopsis = "The library supporting GHC's interactive interpreter"; + description = "This library offers interfaces which mediate interactions between the\n@ghci@ interactive shell and @iserv@, GHC's out-of-process interpreter\nbackend."; + buildType = "Simple"; + }; + components = { + "library" = { + depends = [ + (hsPkgs."rts" or (errorHandler.buildDepError "rts")) + (hsPkgs."array" or (errorHandler.buildDepError "array")) + (hsPkgs."base" or (errorHandler.buildDepError "base")) + (hsPkgs."ghc-prim" or (errorHandler.buildDepError "ghc-prim")) + (hsPkgs."binary" or (errorHandler.buildDepError "binary")) + (hsPkgs."bytestring" or (errorHandler.buildDepError "bytestring")) + (hsPkgs."containers" or (errorHandler.buildDepError "containers")) + (hsPkgs."deepseq" or (errorHandler.buildDepError "deepseq")) + (hsPkgs."filepath" or (errorHandler.buildDepError "filepath")) + (hsPkgs."ghc-boot" or (errorHandler.buildDepError "ghc-boot")) + (hsPkgs."ghc-heap" or (errorHandler.buildDepError "ghc-heap")) + (hsPkgs."template-haskell" or (errorHandler.buildDepError "template-haskell")) + (hsPkgs."transformers" or (errorHandler.buildDepError "transformers")) + ] ++ pkgs.lib.optional (!system.isWindows) (hsPkgs."unix" or (errorHandler.buildDepError "unix")); + buildable = true; + }; + }; + } // rec { src = pkgs.lib.mkDefault ./.; } diff --git a/materialized/ghc-boot-packages-nix/ghc967/hpc.nix b/materialized/ghc-boot-packages-nix/ghc967/hpc.nix new file mode 100644 index 000000000..c9d84dfbb --- /dev/null +++ b/materialized/ghc-boot-packages-nix/ghc967/hpc.nix @@ -0,0 +1,38 @@ +{ system + , compiler + , flags + , pkgs + , hsPkgs + , pkgconfPkgs + , errorHandler + , config + , ... }: + { + flags = {}; + package = { + specVersion = "1.10"; + identifier = { name = "hpc"; version = "0.6.2.0"; }; + license = "BSD-3-Clause"; + copyright = ""; + maintainer = "ghc-devs@haskell.org"; + author = "Andy Gill"; + homepage = ""; + url = ""; + synopsis = "Code Coverage Library for Haskell"; + description = "This package provides the code coverage library for Haskell.\n\nSee for more\ninformation."; + buildType = "Simple"; + }; + components = { + "library" = { + depends = [ + (hsPkgs."base" or (errorHandler.buildDepError "base")) + (hsPkgs."containers" or (errorHandler.buildDepError "containers")) + (hsPkgs."deepseq" or (errorHandler.buildDepError "deepseq")) + (hsPkgs."directory" or (errorHandler.buildDepError "directory")) + (hsPkgs."filepath" or (errorHandler.buildDepError "filepath")) + (hsPkgs."time" or (errorHandler.buildDepError "time")) + ]; + buildable = true; + }; + }; + } // rec { src = pkgs.lib.mkDefault ./.; } diff --git a/materialized/ghc-boot-packages-nix/ghc967/integer-gmp.nix b/materialized/ghc-boot-packages-nix/ghc967/integer-gmp.nix new file mode 100644 index 000000000..94f930e70 --- /dev/null +++ b/materialized/ghc-boot-packages-nix/ghc967/integer-gmp.nix @@ -0,0 +1,35 @@ +{ system + , compiler + , flags + , pkgs + , hsPkgs + , pkgconfPkgs + , errorHandler + , config + , ... }: + { + flags = {}; + package = { + specVersion = "2.0"; + identifier = { name = "integer-gmp"; version = "1.1"; }; + license = "BSD-3-Clause"; + copyright = ""; + maintainer = "hvr@gnu.org"; + author = "Herbert Valerio Riedel"; + homepage = "https://www.haskell.org/ghc/"; + url = ""; + synopsis = "Integer library based on GMP"; + description = "This package used to provide an implementation of the standard 'Integer'\ntype based on the\n.\n\nIt is now deprecated in favor of the 'ghc-bignum' package.\n\nIts purpose is to provide backward compatibility for codes directly\ndepending on the `integer-gmp` package."; + buildType = "Simple"; + }; + components = { + "library" = { + depends = [ + (hsPkgs."base" or (errorHandler.buildDepError "base")) + (hsPkgs."ghc-prim" or (errorHandler.buildDepError "ghc-prim")) + (hsPkgs."ghc-bignum" or (errorHandler.buildDepError "ghc-bignum")) + ]; + buildable = true; + }; + }; + } // rec { src = pkgs.lib.mkDefault ./.; } diff --git a/materialized/ghc-boot-packages-nix/ghc967/iserv.nix b/materialized/ghc-boot-packages-nix/ghc967/iserv.nix new file mode 100644 index 000000000..5b2596b00 --- /dev/null +++ b/materialized/ghc-boot-packages-nix/ghc967/iserv.nix @@ -0,0 +1,42 @@ +{ system + , compiler + , flags + , pkgs + , hsPkgs + , pkgconfPkgs + , errorHandler + , config + , ... }: + { + flags = {}; + package = { + specVersion = "1.10"; + identifier = { name = "iserv"; version = "9.6.7"; }; + license = "BSD-3-Clause"; + copyright = "XXX"; + maintainer = "XXX"; + author = "XXX"; + homepage = ""; + url = ""; + synopsis = "iserv allows GHC to delegate Template Haskell computations"; + description = "GHC can be provided with a path to the iserv binary with\n@-pgmi=/path/to/iserv-bin@, and will in combination with\n@-fexternal-interpreter@, compile Template Haskell though the\n@iserv-bin@ delegate. This is very similar to how ghcjs has been\ncompiling Template Haskell, by spawning a separate delegate (so\ncalled runner on the javascript vm) and evaluating the splices\nthere.\n\nTo use iserv with cross compilers, please see @libraries/libiserv@\nand @utils/iserv-proxy@."; + buildType = "Simple"; + }; + components = { + exes = { + "iserv" = { + depends = [ + (hsPkgs."array" or (errorHandler.buildDepError "array")) + (hsPkgs."base" or (errorHandler.buildDepError "base")) + (hsPkgs."binary" or (errorHandler.buildDepError "binary")) + (hsPkgs."bytestring" or (errorHandler.buildDepError "bytestring")) + (hsPkgs."containers" or (errorHandler.buildDepError "containers")) + (hsPkgs."deepseq" or (errorHandler.buildDepError "deepseq")) + (hsPkgs."ghci" or (errorHandler.buildDepError "ghci")) + (hsPkgs."libiserv" or (errorHandler.buildDepError "libiserv")) + ] ++ pkgs.lib.optional (!system.isWindows) (hsPkgs."unix" or (errorHandler.buildDepError "unix")); + buildable = true; + }; + }; + }; + } // rec { src = pkgs.lib.mkDefault ./.; } diff --git a/materialized/ghc-boot-packages-nix/ghc967/libiserv.nix b/materialized/ghc-boot-packages-nix/ghc967/libiserv.nix new file mode 100644 index 000000000..41942678e --- /dev/null +++ b/materialized/ghc-boot-packages-nix/ghc967/libiserv.nix @@ -0,0 +1,38 @@ +{ system + , compiler + , flags + , pkgs + , hsPkgs + , pkgconfPkgs + , errorHandler + , config + , ... }: + { + flags = { network = false; }; + package = { + specVersion = "1.10"; + identifier = { name = "libiserv"; version = "9.6.7"; }; + license = "BSD-3-Clause"; + copyright = "XXX"; + maintainer = "XXX"; + author = "XXX"; + homepage = ""; + url = ""; + synopsis = "Provides shared functionality between iserv and iserv-proxy."; + description = "Provides shared functionality between iserv and iserv-proxy."; + buildType = "Simple"; + }; + components = { + "library" = { + depends = [ + (hsPkgs."base" or (errorHandler.buildDepError "base")) + (hsPkgs."binary" or (errorHandler.buildDepError "binary")) + (hsPkgs."bytestring" or (errorHandler.buildDepError "bytestring")) + (hsPkgs."containers" or (errorHandler.buildDepError "containers")) + (hsPkgs."deepseq" or (errorHandler.buildDepError "deepseq")) + (hsPkgs."ghci" or (errorHandler.buildDepError "ghci")) + ] ++ pkgs.lib.optional (!system.isWindows) (hsPkgs."unix" or (errorHandler.buildDepError "unix")); + buildable = true; + }; + }; + } // rec { src = pkgs.lib.mkDefault ./.; } diff --git a/materialized/ghc-boot-packages-nix/ghc967/remote-iserv.nix b/materialized/ghc-boot-packages-nix/ghc967/remote-iserv.nix new file mode 100644 index 000000000..1f659bea7 --- /dev/null +++ b/materialized/ghc-boot-packages-nix/ghc967/remote-iserv.nix @@ -0,0 +1,36 @@ +{ system + , compiler + , flags + , pkgs + , hsPkgs + , pkgconfPkgs + , errorHandler + , config + , ... }: + { + flags = {}; + package = { + specVersion = "1.10"; + identifier = { name = "remote-iserv"; version = "9.6.7"; }; + license = "BSD-3-Clause"; + copyright = "XXX"; + maintainer = "Moritz Angermann "; + author = "Moritz Angermann "; + homepage = ""; + url = ""; + synopsis = "iserv allows GHC to delegate Template Haskell computations"; + description = "This is a very simple remote runner for iserv, to be used together\nwith iserv-proxy. The foundamental idea is that this this wrapper\nstarts running libiserv on a given port to which iserv-proxy will\nthen connect."; + buildType = "Simple"; + }; + components = { + exes = { + "remote-iserv" = { + depends = [ + (hsPkgs."base" or (errorHandler.buildDepError "base")) + (hsPkgs."libiserv" or (errorHandler.buildDepError "libiserv")) + ]; + buildable = true; + }; + }; + }; + } // rec { src = pkgs.lib.mkDefault ./.; } diff --git a/materialized/ghc-boot-packages-nix/ghc967/template-haskell.nix b/materialized/ghc-boot-packages-nix/ghc967/template-haskell.nix new file mode 100644 index 000000000..693b8f6a7 --- /dev/null +++ b/materialized/ghc-boot-packages-nix/ghc967/template-haskell.nix @@ -0,0 +1,36 @@ +{ system + , compiler + , flags + , pkgs + , hsPkgs + , pkgconfPkgs + , errorHandler + , config + , ... }: + { + flags = {}; + package = { + specVersion = "1.10"; + identifier = { name = "template-haskell"; version = "2.20.0.0"; }; + license = "BSD-3-Clause"; + copyright = ""; + maintainer = "libraries@haskell.org"; + author = ""; + homepage = ""; + url = ""; + synopsis = "Support library for Template Haskell"; + description = "This package provides modules containing facilities for manipulating\nHaskell source code using Template Haskell.\n\nSee for more\ninformation."; + buildType = "Simple"; + }; + components = { + "library" = { + depends = [ + (hsPkgs."base" or (errorHandler.buildDepError "base")) + (hsPkgs."ghc-boot-th" or (errorHandler.buildDepError "ghc-boot-th")) + (hsPkgs."ghc-prim" or (errorHandler.buildDepError "ghc-prim")) + (hsPkgs."pretty" or (errorHandler.buildDepError "pretty")) + ]; + buildable = true; + }; + }; + } // rec { src = pkgs.lib.mkDefault ./.; } diff --git a/overlays/bootstrap.nix b/overlays/bootstrap.nix index cc6be1e56..3bffeb10d 100644 --- a/overlays/bootstrap.nix +++ b/overlays/bootstrap.nix @@ -8,7 +8,7 @@ let "9.0" = "9.0.2"; "9.2" = "9.2.8"; "9.4" = "9.4.8"; - "9.6" = "9.6.6"; + "9.6" = "9.6.7"; "9.8" = "9.8.4"; "9.10" = "9.10.1"; "9.12" = "9.12.2"; @@ -819,6 +819,33 @@ in { ghc-patches = ghc-patches "9.6.6"; }); + ghc967 = traceWarnOld "9.6" (final.callPackage ../compiler/ghc { + extra-passthru = { buildGHC = final.buildPackages.haskell-nix.compiler.ghc967; }; + + bootPkgs = bootPkgsGhc94 // { + ghc = if final.stdenv.buildPlatform != final.stdenv.targetPlatform + then final.buildPackages.buildPackages.haskell-nix.compiler.ghc967 + else final.buildPackages.buildPackages.haskell.compiler.ghc967 + or final.buildPackages.buildPackages.haskell.compiler.ghc966 + or final.buildPackages.buildPackages.haskell.compiler.ghc965 + or final.buildPackages.buildPackages.haskell.compiler.ghc964 + or final.buildPackages.buildPackages.haskell.compiler.ghc963 + or final.buildPackages.buildPackages.haskell.compiler.ghc962 + or final.buildPackages.buildPackages.haskell.compiler.ghc945 + or final.buildPackages.buildPackages.haskell.compiler.ghc944 + or final.buildPackages.buildPackages.haskell.compiler.ghc943; + }; + inherit sphinx; + + buildLlvmPackages = final.buildPackages.llvmPackages_12; + llvmPackages = final.llvmPackages_12; + + src-spec.file = final.haskell-nix.sources.ghc967; + src-spec.version = "9.6.7"; + src-spec.needsBooting = true; + + ghc-patches = ghc-patches "9.6.7"; + }); ghc981 = traceWarnOld "9.8" (final.callPackage ../compiler/ghc { extra-passthru = { buildGHC = final.buildPackages.haskell-nix.compiler.ghc981; }; diff --git a/overlays/haskell.nix b/overlays/haskell.nix index 61520f11a..9e7bb7a8e 100644 --- a/overlays/haskell.nix +++ b/overlays/haskell.nix @@ -1107,8 +1107,7 @@ final: prev: { } // final.lib.optionalAttrs (ifdLevel > 0) { # Things that require one IFD to build (the inputs should be in level 0) inherit ghc; - ghc-boot-packages-nix = final.recurseIntoAttrs - final.ghc-boot-packages-nix.${compiler-nix-name}; + ghc-boot-packages-nix = final.ghc-boot-packages-nix.${compiler-nix-name}; } // final.lib.optionalAttrs (ifdLevel > 1) { # Things that require two levels of IFD to build (inputs should be in level 1) nix-tools-unchecked = final.pkgsBuildBuild.haskell-nix.nix-tools-unchecked; diff --git a/scripts/check-compiler-materialization/default.nix b/scripts/check-compiler-materialization/default.nix index 477474c02..e5b54cd19 100644 --- a/scripts/check-compiler-materialization/default.nix +++ b/scripts/check-compiler-materialization/default.nix @@ -17,24 +17,24 @@ in builtins.listToAttrs (builtins.concatMap (system: builtins.concatMap (compile in ([ # This set of derivations should be enough to ensure all the materialized files for a # given GHC version are checked. - { name = "${prefix}-extra"; value = (pkgs.haskell-nix.roots' compiler-nix-name).ghc-extra-projects-nix or {}; } + { name = "${prefix}-extra"; value = (pkgs.haskell-nix.roots' { inherit compiler-nix-name; }).ghc-extra-projects-nix or {}; } { name = "${prefix}-boot"; value = pkgs.ghc-boot-packages-nix.${compiler-nix-name}; } { name = "${prefix}-hello"; value = (pkgs.haskell-nix.tool compiler-nix-name "hello" {}).project.plan-nix; } ] ++ eval.lib.optionals (!__elem system ["aarch64-darwin" "aarch64-linux" "x86_64-darwin"]) [ - { name = "${prefix}-windows"; value = (pkgsForWindows.pkgsCross.mingwW64.haskell-nix.roots' compiler-nix-name).ghc-extra-projects-nix or {}; } + { name = "${prefix}-windows"; value = (pkgsForWindows.pkgsCross.mingwW64.haskell-nix.roots' { inherit compiler-nix-name; }).ghc-extra-projects-nix or {}; } { name = "${prefix}-hello-windows"; value = (pkgsForWindows.pkgsCross.mingwW64.haskell-nix.tool compiler-nix-name "hello" {}).project.plan-nix; } ] ++ eval.lib.optionals (system == "x86_64-linux") [ # In some cased you may need comment out one or more of these if the GHC version needed cannot be built. - { name = "${prefix}-musl"; value = (pkgs.pkgsCross.musl64.haskell-nix.roots' compiler-nix-name).ghc-extra-projects-nix or {}; } + { name = "${prefix}-musl"; value = (pkgs.pkgsCross.musl64.haskell-nix.roots' { inherit compiler-nix-name; }).ghc-extra-projects-nix or {}; } { name = "${prefix}-hello-musl"; value = (pkgs.pkgsCross.musl64.haskell-nix.tool compiler-nix-name "hello" {}).project.plan-nix; } ] ++ eval.lib.optionals (system == "x86_64-linux" && !__elem compiler-nix-name ["ghc901" "ghc921" "ghc941" "ghc942" "ghc943"]) [ - { name = "${prefix}-arm"; value = (pkgs.pkgsCross.aarch64-multiplatform.haskell-nix.roots' compiler-nix-name).ghc-extra-projects-nix or {}; } + { name = "${prefix}-arm"; value = (pkgs.pkgsCross.aarch64-multiplatform.haskell-nix.roots' { inherit compiler-nix-name; }).ghc-extra-projects-nix or {}; } { name = "${prefix}-hello-arm"; value = (pkgs.pkgsCross.aarch64-multiplatform.haskell-nix.tool compiler-nix-name "hello" {}).project.plan-nix; } ] ++ eval.lib.optionals ( (system == "aarch64-linux" && !__elem compiler-nix-name ["ghc8107" "ghc901" "ghc902" "ghc921" "ghc922" "ghc923" "ghc924" "ghc925" "ghc926" "ghc941" "ghc942" "ghc943"]) || (system == "x86_64-linux" && !__elem compiler-nix-name ["ghc8107" "ghc901" "ghc902" "ghc921" "ghc922" "ghc923" "ghc924" "ghc925" "ghc926" "ghc941" "ghc942" "ghc943" "ghc944" "ghc945" "ghc947" "ghc961" "ghc962" "ghc963" "ghc964" "ghc965"])) [ - { name = "${prefix}-arm-musl"; value = (pkgs.pkgsCross.aarch64-multiplatform-musl.haskell-nix.roots' compiler-nix-name).ghc-extra-projects-nix or {}; } + { name = "${prefix}-arm-musl"; value = (pkgs.pkgsCross.aarch64-multiplatform-musl.haskell-nix.roots' { inherit compiler-nix-name; }).ghc-extra-projects-nix or {}; } { name = "${prefix}-hello-arm-musl"; value = (pkgs.pkgsCross.aarch64-multiplatform-musl.haskell-nix.tool compiler-nix-name "hello" {}).project.plan-nix; } ] ++ eval.lib.optionals ( (system == "x86_64-linux" && __elem compiler-nix-name ["ghc8107" "ghc961" "ghc962" "ghc963" "ghc964" "ghc965" "ghc981" "ghc982" "ghc983" "ghc984" "ghc9101"]) @@ -42,6 +42,6 @@ in builtins.listToAttrs (builtins.concatMap (system: builtins.concatMap (compile || (system == "x86_64-darwin" && __elem compiler-nix-name ["ghc8107" "ghc961" "ghc962" "ghc963" "ghc964" "ghc964" "ghc981" "ghc982" "ghc983" "ghc984" "ghc9101"]) || (system == "aarch64-darwin" && __elem compiler-nix-name ["ghc961" "ghc962" "ghc963" "ghc964" "ghc981" "ghc965" "ghc982" "ghc983" "ghc984" "ghc9101"])) [ { name = "${prefix}-boot-ghcjs"; value = pkgs.pkgsCross.ghcjs.ghc-boot-packages-nix.${compiler-nix-name}; } - { name = "${prefix}-ghcjs"; value = (pkgs.pkgsCross.ghcjs.haskell-nix.roots' compiler-nix-name).ghc-extra-projects-nix or {}; } + { name = "${prefix}-ghcjs"; value = (pkgs.pkgsCross.ghcjs.haskell-nix.roots' { inherit compiler-nix-name; }).ghc-extra-projects-nix or {}; } { name = "${prefix}-hello-ghcjs"; value = (pkgs.pkgsCross.ghcjs.haskell-nix.tool compiler-nix-name "hello" {}).project.plan-nix; } ])) compiler-nix-names) systems) diff --git a/test/tests.sh b/test/tests.sh index c49c733a2..9e525432e 100755 --- a/test/tests.sh +++ b/test/tests.sh @@ -107,7 +107,7 @@ fi # These tests still use manually generated `pkgs`. They were left that way # so that we would still be testing that workflow. -SHELL_FOR_GHC="ghc966" +SHELL_FOR_GHC="ghc967" if [ "$TESTS" == "shellFor-single-package" ] || [ "$TESTS" == "all" ]; then printf "*** Checking shellFor works for a cabal project, multiple packages...\n" >& 2 nix-shell $NIX_BUILD_ARGS \