diff --git a/.github/workflows/pipeline.yml b/.github/workflows/pipeline.yml index 8d8c387978..31674aac40 100644 --- a/.github/workflows/pipeline.yml +++ b/.github/workflows/pipeline.yml @@ -227,13 +227,20 @@ 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: + hydra-without-remote-builders-ghc8107: runs-on: [self-hosted, linux] steps: - uses: actions/checkout@v4 - - name: "Check that evaluation of hydra jobs works without using remote builders" + - 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-ghc8107-native --show-trace --builders '' + hydra-without-remote-builders-ghc9101: + runs-on: [self-hosted, linux] + steps: + - uses: actions/checkout@v4 + - name: "Check that evaluation of hydra jobs works without using remote builders for GHC 9.10.1" + run: nix path-info --derivation .#requiredJobs.x86_64-darwin.required-unstable-ghc9101-native --show-trace --builders '' + hix-cabal: runs-on: [self-hosted, linux] steps: diff --git a/compiler/ghc/default.nix b/compiler/ghc/default.nix index ab8f687dfb..6b9b993d8c 100644 --- a/compiler/ghc/default.nix +++ b/compiler/ghc/default.nix @@ -656,7 +656,7 @@ stdenv.mkDerivation (rec { # We could add `configured-src` as an output of the ghc derivation, but # having it as its own derivation means it can be accessed quickly without # building GHC. - raw-src = stdenv.mkDerivation { + raw-src = evalPackages: evalPackages.stdenv.mkDerivation { name = name + "-raw-src"; inherit version diff --git a/lib/call-cabal-project-to-nix.nix b/lib/call-cabal-project-to-nix.nix index fc328892ba..02474c6991 100644 --- a/lib/call-cabal-project-to-nix.nix +++ b/lib/call-cabal-project-to-nix.nix @@ -295,7 +295,7 @@ let fixedProject = replaceSourceRepos rawCabalProject; - ghcSrc = ghc.raw-src or ghc.buildGHC.raw-src; + ghcSrc = (ghc.raw-src or ghc.buildGHC.raw-src) evalPackages; platformString = p: with p.parsed; "${cpu.name}-${vendor.name}-${kernel.name}"; diff --git a/materialized/ghc-boot-packages-nix/ghc9101-aarch64/base.nix b/materialized/ghc-boot-packages-nix/ghc9101-aarch64/base.nix new file mode 100644 index 0000000000..6587385f50 --- /dev/null +++ b/materialized/ghc-boot-packages-nix/ghc9101-aarch64/base.nix @@ -0,0 +1,34 @@ +{ system + , compiler + , flags + , pkgs + , hsPkgs + , pkgconfPkgs + , errorHandler + , config + , ... }: + { + flags = {}; + package = { + specVersion = "3.0"; + identifier = { name = "base"; version = "4.20.0.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 = "Simple"; + }; + components = { + "library" = { + depends = [ + (hsPkgs."ghc-internal" or (errorHandler.buildDepError "ghc-internal")) + (hsPkgs."ghc-prim" or (errorHandler.buildDepError "ghc-prim")) + ]; + buildable = true; + }; + }; + } // rec { src = pkgs.lib.mkDefault ./.; } diff --git a/materialized/ghc-boot-packages-nix/ghc9101-aarch64/deriveConstants.nix b/materialized/ghc-boot-packages-nix/ghc9101-aarch64/deriveConstants.nix new file mode 100644 index 0000000000..135cdd02f6 --- /dev/null +++ b/materialized/ghc-boot-packages-nix/ghc9101-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/ghc9101-aarch64/genprimopcode.nix b/materialized/ghc-boot-packages-nix/ghc9101-aarch64/genprimopcode.nix new file mode 100644 index 0000000000..efed2c72fa --- /dev/null +++ b/materialized/ghc-boot-packages-nix/ghc9101-aarch64/genprimopcode.nix @@ -0,0 +1,40 @@ +{ system + , compiler + , flags + , pkgs + , hsPkgs + , pkgconfPkgs + , errorHandler + , config + , ... }: + { + flags = { build-tool-depends = true; }; + package = { + specVersion = "2.0"; + identifier = { name = "genprimopcode"; version = "0.1"; }; + license = "BSD-3-Clause"; + copyright = "XXX"; + maintainer = "XXX"; + author = "XXX"; + homepage = ""; + url = ""; + synopsis = "Generates various files implementing GHC's primitive operations."; + description = "This utility reads a textual description of GHC's primitive operations\n(@primops.txt.pp@) and produces a number of outputs. These include,\n\n* the @GHC.Prim@ module included in the @ghc-prim@ package.\n* the @GHC.PrimopWrappers@ module included in the @ghc-prim@ package.\n* an LaTeX document describing the primitive operations."; + buildType = "Simple"; + }; + components = { + exes = { + "genprimopcode" = { + depends = [ + (hsPkgs."base" or (errorHandler.buildDepError "base")) + (hsPkgs."array" or (errorHandler.buildDepError "array")) + ]; + build-tools = pkgs.lib.optionals (flags.build-tool-depends) [ + (hsPkgs.buildPackages.alex.components.exes.alex or (pkgs.buildPackages.alex or (errorHandler.buildToolDepError "alex:alex"))) + (hsPkgs.buildPackages.happy.components.exes.happy or (pkgs.buildPackages.happy or (errorHandler.buildToolDepError "happy:happy"))) + ]; + buildable = true; + }; + }; + }; + } // rec { src = pkgs.lib.mkDefault ./.; } diff --git a/materialized/ghc-boot-packages-nix/ghc9101-aarch64/ghc-bignum.nix b/materialized/ghc-boot-packages-nix/ghc9101-aarch64/ghc-bignum.nix new file mode 100644 index 0000000000..46af6e0e9f --- /dev/null +++ b/materialized/ghc-boot-packages-nix/ghc9101-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/ghc9101-aarch64/ghc-boot.nix b/materialized/ghc-boot-packages-nix/ghc9101-aarch64/ghc-boot.nix new file mode 100644 index 0000000000..34d42732fd --- /dev/null +++ b/materialized/ghc-boot-packages-nix/ghc9101-aarch64/ghc-boot.nix @@ -0,0 +1,47 @@ +{ system + , compiler + , flags + , pkgs + , hsPkgs + , pkgconfPkgs + , errorHandler + , config + , ... }: + { + flags = {}; + package = { + specVersion = "3.0"; + identifier = { name = "ghc-boot"; version = "9.10.1"; }; + 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.buildPackages.base or (pkgs.buildPackages.base or (errorHandler.setupDepError "base"))) + (hsPkgs.buildPackages.Cabal or (pkgs.buildPackages.Cabal or (errorHandler.setupDepError "Cabal"))) + (hsPkgs.buildPackages.directory or (pkgs.buildPackages.directory or (errorHandler.setupDepError "directory"))) + (hsPkgs.buildPackages.filepath or (pkgs.buildPackages.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-platform" or (errorHandler.buildDepError "ghc-platform")) + (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/ghc9101-aarch64/ghc-heap.nix b/materialized/ghc-boot-packages-nix/ghc9101-aarch64/ghc-heap.nix new file mode 100644 index 0000000000..4eeb9a331b --- /dev/null +++ b/materialized/ghc-boot-packages-nix/ghc9101-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.10.1"; }; + 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")) + ] ++ pkgs.lib.optional (compiler.isGhc && compiler.version.ge "9.9") (hsPkgs."ghc-internal" or (errorHandler.buildDepError "ghc-internal")); + buildable = true; + }; + }; + } // rec { src = pkgs.lib.mkDefault ./.; } diff --git a/materialized/ghc-boot-packages-nix/ghc9101-aarch64/ghc-internal.nix b/materialized/ghc-boot-packages-nix/ghc9101-aarch64/ghc-internal.nix new file mode 100644 index 0000000000..fe7b871e5a --- /dev/null +++ b/materialized/ghc-boot-packages-nix/ghc9101-aarch64/ghc-internal.nix @@ -0,0 +1,49 @@ +{ system + , compiler + , flags + , pkgs + , hsPkgs + , pkgconfPkgs + , errorHandler + , config + , ... }: + { + flags = {}; + package = { + specVersion = "3.0"; + identifier = { name = "ghc-internal"; version = "9.1001.0"; }; + license = "BSD-3-Clause"; + copyright = ""; + maintainer = "Core Libraries Committee "; + author = ""; + homepage = ""; + url = ""; + synopsis = "Basic libraries"; + description = "This package contains the Standard Haskell \"Prelude\" and its support libraries,\nand a large collection of useful libraries ranging from data\nstructures to parsing combinators and debugging utilities."; + 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/ghc9101-aarch64/ghc-platform.nix b/materialized/ghc-boot-packages-nix/ghc9101-aarch64/ghc-platform.nix new file mode 100644 index 0000000000..9a99aece09 --- /dev/null +++ b/materialized/ghc-boot-packages-nix/ghc9101-aarch64/ghc-platform.nix @@ -0,0 +1,31 @@ +{ system + , compiler + , flags + , pkgs + , hsPkgs + , pkgconfPkgs + , errorHandler + , config + , ... }: + { + flags = {}; + package = { + specVersion = "3.0"; + identifier = { name = "ghc-platform"; version = "0.1.0.0"; }; + license = "BSD-3-Clause"; + copyright = ""; + maintainer = "ghc-devs@haskell.org"; + author = "Rodrigo Mesquita"; + homepage = ""; + url = ""; + synopsis = "Platform information used by GHC and friends"; + description = ""; + buildType = "Simple"; + }; + components = { + "library" = { + depends = [ (hsPkgs."base" or (errorHandler.buildDepError "base")) ]; + buildable = true; + }; + }; + } // rec { src = pkgs.lib.mkDefault ./.; } diff --git a/materialized/ghc-boot-packages-nix/ghc9101-aarch64/ghc-prim.nix b/materialized/ghc-boot-packages-nix/ghc9101-aarch64/ghc-prim.nix new file mode 100644 index 0000000000..c279864cba --- /dev/null +++ b/materialized/ghc-boot-packages-nix/ghc9101-aarch64/ghc-prim.nix @@ -0,0 +1,47 @@ +{ system + , compiler + , flags + , pkgs + , hsPkgs + , pkgconfPkgs + , errorHandler + , config + , ... }: + { + flags = { need-atomic = false; }; + package = { + specVersion = "2.2"; + identifier = { name = "ghc-prim"; version = "0.11.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.buildPackages.base or (pkgs.buildPackages.base or (errorHandler.setupDepError "base"))) + (hsPkgs.buildPackages.process or (pkgs.buildPackages.process or (errorHandler.setupDepError "process"))) + (hsPkgs.buildPackages.filepath or (pkgs.buildPackages.filepath or (errorHandler.setupDepError "filepath"))) + (hsPkgs.buildPackages.directory or (pkgs.buildPackages.directory or (errorHandler.setupDepError "directory"))) + (hsPkgs.buildPackages.Cabal or (pkgs.buildPackages.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")) + ]) ++ pkgs.lib.optional (flags.need-atomic) (pkgs."atomic" or (errorHandler.sysDepError "atomic")); + buildable = true; + }; + }; + } // rec { src = pkgs.lib.mkDefault ./.; } diff --git a/materialized/ghc-boot-packages-nix/ghc9101-aarch64/ghc.nix b/materialized/ghc-boot-packages-nix/ghc9101-aarch64/ghc.nix new file mode 100644 index 0000000000..733796d386 --- /dev/null +++ b/materialized/ghc-boot-packages-nix/ghc9101-aarch64/ghc.nix @@ -0,0 +1,81 @@ +{ system + , compiler + , flags + , pkgs + , hsPkgs + , pkgconfPkgs + , errorHandler + , config + , ... }: + { + flags = { + internal-interpreter = false; + dynamic-system-linker = true; + build-tool-depends = true; + with-libzstd = false; + static-libzstd = false; + hadrian-stage0 = false; + }; + package = { + specVersion = "2.2"; + identifier = { name = "ghc"; version = "9.10.1"; }; + 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.\n\n__This package is not PVP-compliant.__\n\nThis package directly exposes GHC internals, which can and do change with\nevery release."; + buildType = "Custom"; + setup-depends = [ + (hsPkgs.buildPackages.base or (pkgs.buildPackages.base or (errorHandler.setupDepError "base"))) + (hsPkgs.buildPackages.Cabal or (pkgs.buildPackages.Cabal or (errorHandler.setupDepError "Cabal"))) + (hsPkgs.buildPackages.directory or (pkgs.buildPackages.directory or (errorHandler.setupDepError "directory"))) + (hsPkgs.buildPackages.process or (pkgs.buildPackages.process or (errorHandler.setupDepError "process"))) + (hsPkgs.buildPackages.filepath or (pkgs.buildPackages.filepath or (errorHandler.setupDepError "filepath"))) + (hsPkgs.buildPackages.containers or (pkgs.buildPackages.containers or (errorHandler.setupDepError "containers"))) + ]; + }; + 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."semaphore-compat" or (errorHandler.buildDepError "semaphore-compat")) + (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")) ]); + libs = pkgs.lib.optionals (flags.with-libzstd) (if flags.static-libzstd + then pkgs.lib.optional (!system.isOsx) (pkgs.":libzstd.a" or (errorHandler.sysDepError ":libzstd.a")) + else [ (pkgs."zstd" or (errorHandler.sysDepError "zstd")) ]); + build-tools = pkgs.lib.optionals (flags.build-tool-depends) [ + (hsPkgs.buildPackages.alex.components.exes.alex or (pkgs.buildPackages.alex or (errorHandler.buildToolDepError "alex:alex"))) + (hsPkgs.buildPackages.happy.components.exes.happy or (pkgs.buildPackages.happy or (errorHandler.buildToolDepError "happy:happy"))) + (hsPkgs.buildPackages.genprimopcode.components.exes.genprimopcode or (pkgs.buildPackages.genprimopcode or (errorHandler.buildToolDepError "genprimopcode:genprimopcode"))) + (hsPkgs.buildPackages.deriveConstants.components.exes.deriveConstants or (pkgs.buildPackages.deriveConstants or (errorHandler.buildToolDepError "deriveConstants:deriveConstants"))) + ]; + buildable = if flags.with-libzstd + then if flags.static-libzstd + then if system.isOsx then false else true + else true + else true; + }; + }; + } // rec { src = pkgs.lib.mkDefault ./.; } diff --git a/materialized/ghc-boot-packages-nix/ghc9101-aarch64/ghci.nix b/materialized/ghc-boot-packages-nix/ghc9101-aarch64/ghci.nix new file mode 100644 index 0000000000..d709146815 --- /dev/null +++ b/materialized/ghc-boot-packages-nix/ghc9101-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.10.1"; }; + 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/ghc9101-aarch64/hpc.nix b/materialized/ghc-boot-packages-nix/ghc9101-aarch64/hpc.nix new file mode 100644 index 0000000000..f27cdbe473 --- /dev/null +++ b/materialized/ghc-boot-packages-nix/ghc9101-aarch64/hpc.nix @@ -0,0 +1,38 @@ +{ system + , compiler + , flags + , pkgs + , hsPkgs + , pkgconfPkgs + , errorHandler + , config + , ... }: + { + flags = {}; + package = { + specVersion = "2.2"; + identifier = { name = "hpc"; version = "0.7.0.1"; }; + 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/ghc9101-aarch64/integer-gmp.nix b/materialized/ghc-boot-packages-nix/ghc9101-aarch64/integer-gmp.nix new file mode 100644 index 0000000000..8594679a59 --- /dev/null +++ b/materialized/ghc-boot-packages-nix/ghc9101-aarch64/integer-gmp.nix @@ -0,0 +1,36 @@ +{ 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")) + (hsPkgs."ghc-internal" or (errorHandler.buildDepError "ghc-internal")) + ]; + buildable = true; + }; + }; + } // rec { src = pkgs.lib.mkDefault ./.; } diff --git a/materialized/ghc-boot-packages-nix/ghc9101-aarch64/iserv.nix b/materialized/ghc-boot-packages-nix/ghc9101-aarch64/iserv.nix new file mode 100644 index 0000000000..07aef2d361 --- /dev/null +++ b/materialized/ghc-boot-packages-nix/ghc9101-aarch64/iserv.nix @@ -0,0 +1,41 @@ +{ system + , compiler + , flags + , pkgs + , hsPkgs + , pkgconfPkgs + , errorHandler + , config + , ... }: + { + flags = {}; + package = { + specVersion = "1.10"; + identifier = { name = "iserv"; version = "9.10.1"; }; + 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/ghc9101-aarch64/remote-iserv.nix b/materialized/ghc-boot-packages-nix/ghc9101-aarch64/remote-iserv.nix new file mode 100644 index 0000000000..69711f6e83 --- /dev/null +++ b/materialized/ghc-boot-packages-nix/ghc9101-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.10.1"; }; + 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/ghc9101-aarch64/template-haskell.nix b/materialized/ghc-boot-packages-nix/ghc9101-aarch64/template-haskell.nix new file mode 100644 index 0000000000..b975251e7e --- /dev/null +++ b/materialized/ghc-boot-packages-nix/ghc9101-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.22.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/ghc9101-ghcjs/base.nix b/materialized/ghc-boot-packages-nix/ghc9101-ghcjs/base.nix new file mode 100644 index 0000000000..6587385f50 --- /dev/null +++ b/materialized/ghc-boot-packages-nix/ghc9101-ghcjs/base.nix @@ -0,0 +1,34 @@ +{ system + , compiler + , flags + , pkgs + , hsPkgs + , pkgconfPkgs + , errorHandler + , config + , ... }: + { + flags = {}; + package = { + specVersion = "3.0"; + identifier = { name = "base"; version = "4.20.0.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 = "Simple"; + }; + components = { + "library" = { + depends = [ + (hsPkgs."ghc-internal" or (errorHandler.buildDepError "ghc-internal")) + (hsPkgs."ghc-prim" or (errorHandler.buildDepError "ghc-prim")) + ]; + buildable = true; + }; + }; + } // rec { src = pkgs.lib.mkDefault ./.; } diff --git a/materialized/ghc-boot-packages-nix/ghc9101-ghcjs/deriveConstants.nix b/materialized/ghc-boot-packages-nix/ghc9101-ghcjs/deriveConstants.nix new file mode 100644 index 0000000000..135cdd02f6 --- /dev/null +++ b/materialized/ghc-boot-packages-nix/ghc9101-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/ghc9101-ghcjs/genprimopcode.nix b/materialized/ghc-boot-packages-nix/ghc9101-ghcjs/genprimopcode.nix new file mode 100644 index 0000000000..efed2c72fa --- /dev/null +++ b/materialized/ghc-boot-packages-nix/ghc9101-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.buildPackages.alex.components.exes.alex or (pkgs.buildPackages.alex or (errorHandler.buildToolDepError "alex:alex"))) + (hsPkgs.buildPackages.happy.components.exes.happy or (pkgs.buildPackages.happy or (errorHandler.buildToolDepError "happy:happy"))) + ]; + buildable = true; + }; + }; + }; + } // rec { src = pkgs.lib.mkDefault ./.; } diff --git a/materialized/ghc-boot-packages-nix/ghc9101-ghcjs/ghc-bignum.nix b/materialized/ghc-boot-packages-nix/ghc9101-ghcjs/ghc-bignum.nix new file mode 100644 index 0000000000..46af6e0e9f --- /dev/null +++ b/materialized/ghc-boot-packages-nix/ghc9101-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/ghc9101-ghcjs/ghc-boot.nix b/materialized/ghc-boot-packages-nix/ghc9101-ghcjs/ghc-boot.nix new file mode 100644 index 0000000000..34d42732fd --- /dev/null +++ b/materialized/ghc-boot-packages-nix/ghc9101-ghcjs/ghc-boot.nix @@ -0,0 +1,47 @@ +{ system + , compiler + , flags + , pkgs + , hsPkgs + , pkgconfPkgs + , errorHandler + , config + , ... }: + { + flags = {}; + package = { + specVersion = "3.0"; + identifier = { name = "ghc-boot"; version = "9.10.1"; }; + 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.buildPackages.base or (pkgs.buildPackages.base or (errorHandler.setupDepError "base"))) + (hsPkgs.buildPackages.Cabal or (pkgs.buildPackages.Cabal or (errorHandler.setupDepError "Cabal"))) + (hsPkgs.buildPackages.directory or (pkgs.buildPackages.directory or (errorHandler.setupDepError "directory"))) + (hsPkgs.buildPackages.filepath or (pkgs.buildPackages.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-platform" or (errorHandler.buildDepError "ghc-platform")) + (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/ghc9101-ghcjs/ghc-heap.nix b/materialized/ghc-boot-packages-nix/ghc9101-ghcjs/ghc-heap.nix new file mode 100644 index 0000000000..4eeb9a331b --- /dev/null +++ b/materialized/ghc-boot-packages-nix/ghc9101-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.10.1"; }; + 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")) + ] ++ pkgs.lib.optional (compiler.isGhc && compiler.version.ge "9.9") (hsPkgs."ghc-internal" or (errorHandler.buildDepError "ghc-internal")); + buildable = true; + }; + }; + } // rec { src = pkgs.lib.mkDefault ./.; } diff --git a/materialized/ghc-boot-packages-nix/ghc9101-ghcjs/ghc-internal.nix b/materialized/ghc-boot-packages-nix/ghc9101-ghcjs/ghc-internal.nix new file mode 100644 index 0000000000..fe7b871e5a --- /dev/null +++ b/materialized/ghc-boot-packages-nix/ghc9101-ghcjs/ghc-internal.nix @@ -0,0 +1,49 @@ +{ system + , compiler + , flags + , pkgs + , hsPkgs + , pkgconfPkgs + , errorHandler + , config + , ... }: + { + flags = {}; + package = { + specVersion = "3.0"; + identifier = { name = "ghc-internal"; version = "9.1001.0"; }; + license = "BSD-3-Clause"; + copyright = ""; + maintainer = "Core Libraries Committee "; + author = ""; + homepage = ""; + url = ""; + synopsis = "Basic libraries"; + description = "This package contains the Standard Haskell \"Prelude\" and its support libraries,\nand a large collection of useful libraries ranging from data\nstructures to parsing combinators and debugging utilities."; + 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/ghc9101-ghcjs/ghc-platform.nix b/materialized/ghc-boot-packages-nix/ghc9101-ghcjs/ghc-platform.nix new file mode 100644 index 0000000000..9a99aece09 --- /dev/null +++ b/materialized/ghc-boot-packages-nix/ghc9101-ghcjs/ghc-platform.nix @@ -0,0 +1,31 @@ +{ system + , compiler + , flags + , pkgs + , hsPkgs + , pkgconfPkgs + , errorHandler + , config + , ... }: + { + flags = {}; + package = { + specVersion = "3.0"; + identifier = { name = "ghc-platform"; version = "0.1.0.0"; }; + license = "BSD-3-Clause"; + copyright = ""; + maintainer = "ghc-devs@haskell.org"; + author = "Rodrigo Mesquita"; + homepage = ""; + url = ""; + synopsis = "Platform information used by GHC and friends"; + description = ""; + buildType = "Simple"; + }; + components = { + "library" = { + depends = [ (hsPkgs."base" or (errorHandler.buildDepError "base")) ]; + buildable = true; + }; + }; + } // rec { src = pkgs.lib.mkDefault ./.; } diff --git a/materialized/ghc-boot-packages-nix/ghc9101-ghcjs/ghc-prim.nix b/materialized/ghc-boot-packages-nix/ghc9101-ghcjs/ghc-prim.nix new file mode 100644 index 0000000000..c279864cba --- /dev/null +++ b/materialized/ghc-boot-packages-nix/ghc9101-ghcjs/ghc-prim.nix @@ -0,0 +1,47 @@ +{ system + , compiler + , flags + , pkgs + , hsPkgs + , pkgconfPkgs + , errorHandler + , config + , ... }: + { + flags = { need-atomic = false; }; + package = { + specVersion = "2.2"; + identifier = { name = "ghc-prim"; version = "0.11.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.buildPackages.base or (pkgs.buildPackages.base or (errorHandler.setupDepError "base"))) + (hsPkgs.buildPackages.process or (pkgs.buildPackages.process or (errorHandler.setupDepError "process"))) + (hsPkgs.buildPackages.filepath or (pkgs.buildPackages.filepath or (errorHandler.setupDepError "filepath"))) + (hsPkgs.buildPackages.directory or (pkgs.buildPackages.directory or (errorHandler.setupDepError "directory"))) + (hsPkgs.buildPackages.Cabal or (pkgs.buildPackages.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")) + ]) ++ pkgs.lib.optional (flags.need-atomic) (pkgs."atomic" or (errorHandler.sysDepError "atomic")); + buildable = true; + }; + }; + } // rec { src = pkgs.lib.mkDefault ./.; } diff --git a/materialized/ghc-boot-packages-nix/ghc9101-ghcjs/ghc.nix b/materialized/ghc-boot-packages-nix/ghc9101-ghcjs/ghc.nix new file mode 100644 index 0000000000..733796d386 --- /dev/null +++ b/materialized/ghc-boot-packages-nix/ghc9101-ghcjs/ghc.nix @@ -0,0 +1,81 @@ +{ system + , compiler + , flags + , pkgs + , hsPkgs + , pkgconfPkgs + , errorHandler + , config + , ... }: + { + flags = { + internal-interpreter = false; + dynamic-system-linker = true; + build-tool-depends = true; + with-libzstd = false; + static-libzstd = false; + hadrian-stage0 = false; + }; + package = { + specVersion = "2.2"; + identifier = { name = "ghc"; version = "9.10.1"; }; + 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.\n\n__This package is not PVP-compliant.__\n\nThis package directly exposes GHC internals, which can and do change with\nevery release."; + buildType = "Custom"; + setup-depends = [ + (hsPkgs.buildPackages.base or (pkgs.buildPackages.base or (errorHandler.setupDepError "base"))) + (hsPkgs.buildPackages.Cabal or (pkgs.buildPackages.Cabal or (errorHandler.setupDepError "Cabal"))) + (hsPkgs.buildPackages.directory or (pkgs.buildPackages.directory or (errorHandler.setupDepError "directory"))) + (hsPkgs.buildPackages.process or (pkgs.buildPackages.process or (errorHandler.setupDepError "process"))) + (hsPkgs.buildPackages.filepath or (pkgs.buildPackages.filepath or (errorHandler.setupDepError "filepath"))) + (hsPkgs.buildPackages.containers or (pkgs.buildPackages.containers or (errorHandler.setupDepError "containers"))) + ]; + }; + 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."semaphore-compat" or (errorHandler.buildDepError "semaphore-compat")) + (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")) ]); + libs = pkgs.lib.optionals (flags.with-libzstd) (if flags.static-libzstd + then pkgs.lib.optional (!system.isOsx) (pkgs.":libzstd.a" or (errorHandler.sysDepError ":libzstd.a")) + else [ (pkgs."zstd" or (errorHandler.sysDepError "zstd")) ]); + build-tools = pkgs.lib.optionals (flags.build-tool-depends) [ + (hsPkgs.buildPackages.alex.components.exes.alex or (pkgs.buildPackages.alex or (errorHandler.buildToolDepError "alex:alex"))) + (hsPkgs.buildPackages.happy.components.exes.happy or (pkgs.buildPackages.happy or (errorHandler.buildToolDepError "happy:happy"))) + (hsPkgs.buildPackages.genprimopcode.components.exes.genprimopcode or (pkgs.buildPackages.genprimopcode or (errorHandler.buildToolDepError "genprimopcode:genprimopcode"))) + (hsPkgs.buildPackages.deriveConstants.components.exes.deriveConstants or (pkgs.buildPackages.deriveConstants or (errorHandler.buildToolDepError "deriveConstants:deriveConstants"))) + ]; + buildable = if flags.with-libzstd + then if flags.static-libzstd + then if system.isOsx then false else true + else true + else true; + }; + }; + } // rec { src = pkgs.lib.mkDefault ./.; } diff --git a/materialized/ghc-boot-packages-nix/ghc9101-ghcjs/ghci.nix b/materialized/ghc-boot-packages-nix/ghc9101-ghcjs/ghci.nix new file mode 100644 index 0000000000..d709146815 --- /dev/null +++ b/materialized/ghc-boot-packages-nix/ghc9101-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.10.1"; }; + 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/ghc9101-ghcjs/hpc.nix b/materialized/ghc-boot-packages-nix/ghc9101-ghcjs/hpc.nix new file mode 100644 index 0000000000..f27cdbe473 --- /dev/null +++ b/materialized/ghc-boot-packages-nix/ghc9101-ghcjs/hpc.nix @@ -0,0 +1,38 @@ +{ system + , compiler + , flags + , pkgs + , hsPkgs + , pkgconfPkgs + , errorHandler + , config + , ... }: + { + flags = {}; + package = { + specVersion = "2.2"; + identifier = { name = "hpc"; version = "0.7.0.1"; }; + 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/ghc9101-ghcjs/integer-gmp.nix b/materialized/ghc-boot-packages-nix/ghc9101-ghcjs/integer-gmp.nix new file mode 100644 index 0000000000..8594679a59 --- /dev/null +++ b/materialized/ghc-boot-packages-nix/ghc9101-ghcjs/integer-gmp.nix @@ -0,0 +1,36 @@ +{ 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")) + (hsPkgs."ghc-internal" or (errorHandler.buildDepError "ghc-internal")) + ]; + buildable = true; + }; + }; + } // rec { src = pkgs.lib.mkDefault ./.; } diff --git a/materialized/ghc-boot-packages-nix/ghc9101-ghcjs/iserv.nix b/materialized/ghc-boot-packages-nix/ghc9101-ghcjs/iserv.nix new file mode 100644 index 0000000000..07aef2d361 --- /dev/null +++ b/materialized/ghc-boot-packages-nix/ghc9101-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.10.1"; }; + 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/ghc9101-ghcjs/remote-iserv.nix b/materialized/ghc-boot-packages-nix/ghc9101-ghcjs/remote-iserv.nix new file mode 100644 index 0000000000..69711f6e83 --- /dev/null +++ b/materialized/ghc-boot-packages-nix/ghc9101-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.10.1"; }; + 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/ghc9101-ghcjs/template-haskell.nix b/materialized/ghc-boot-packages-nix/ghc9101-ghcjs/template-haskell.nix new file mode 100644 index 0000000000..b975251e7e --- /dev/null +++ b/materialized/ghc-boot-packages-nix/ghc9101-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.22.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/ghc9101/base.nix b/materialized/ghc-boot-packages-nix/ghc9101/base.nix new file mode 100644 index 0000000000..6587385f50 --- /dev/null +++ b/materialized/ghc-boot-packages-nix/ghc9101/base.nix @@ -0,0 +1,34 @@ +{ system + , compiler + , flags + , pkgs + , hsPkgs + , pkgconfPkgs + , errorHandler + , config + , ... }: + { + flags = {}; + package = { + specVersion = "3.0"; + identifier = { name = "base"; version = "4.20.0.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 = "Simple"; + }; + components = { + "library" = { + depends = [ + (hsPkgs."ghc-internal" or (errorHandler.buildDepError "ghc-internal")) + (hsPkgs."ghc-prim" or (errorHandler.buildDepError "ghc-prim")) + ]; + buildable = true; + }; + }; + } // rec { src = pkgs.lib.mkDefault ./.; } diff --git a/materialized/ghc-boot-packages-nix/ghc9101/deriveConstants.nix b/materialized/ghc-boot-packages-nix/ghc9101/deriveConstants.nix new file mode 100644 index 0000000000..135cdd02f6 --- /dev/null +++ b/materialized/ghc-boot-packages-nix/ghc9101/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/ghc9101/genprimopcode.nix b/materialized/ghc-boot-packages-nix/ghc9101/genprimopcode.nix new file mode 100644 index 0000000000..efed2c72fa --- /dev/null +++ b/materialized/ghc-boot-packages-nix/ghc9101/genprimopcode.nix @@ -0,0 +1,40 @@ +{ system + , compiler + , flags + , pkgs + , hsPkgs + , pkgconfPkgs + , errorHandler + , config + , ... }: + { + flags = { build-tool-depends = true; }; + package = { + specVersion = "2.0"; + identifier = { name = "genprimopcode"; version = "0.1"; }; + license = "BSD-3-Clause"; + copyright = "XXX"; + maintainer = "XXX"; + author = "XXX"; + homepage = ""; + url = ""; + synopsis = "Generates various files implementing GHC's primitive operations."; + description = "This utility reads a textual description of GHC's primitive operations\n(@primops.txt.pp@) and produces a number of outputs. These include,\n\n* the @GHC.Prim@ module included in the @ghc-prim@ package.\n* the @GHC.PrimopWrappers@ module included in the @ghc-prim@ package.\n* an LaTeX document describing the primitive operations."; + buildType = "Simple"; + }; + components = { + exes = { + "genprimopcode" = { + depends = [ + (hsPkgs."base" or (errorHandler.buildDepError "base")) + (hsPkgs."array" or (errorHandler.buildDepError "array")) + ]; + build-tools = pkgs.lib.optionals (flags.build-tool-depends) [ + (hsPkgs.buildPackages.alex.components.exes.alex or (pkgs.buildPackages.alex or (errorHandler.buildToolDepError "alex:alex"))) + (hsPkgs.buildPackages.happy.components.exes.happy or (pkgs.buildPackages.happy or (errorHandler.buildToolDepError "happy:happy"))) + ]; + buildable = true; + }; + }; + }; + } // rec { src = pkgs.lib.mkDefault ./.; } diff --git a/materialized/ghc-boot-packages-nix/ghc9101/ghc-bignum.nix b/materialized/ghc-boot-packages-nix/ghc9101/ghc-bignum.nix new file mode 100644 index 0000000000..46af6e0e9f --- /dev/null +++ b/materialized/ghc-boot-packages-nix/ghc9101/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/ghc9101/ghc-boot.nix b/materialized/ghc-boot-packages-nix/ghc9101/ghc-boot.nix new file mode 100644 index 0000000000..34d42732fd --- /dev/null +++ b/materialized/ghc-boot-packages-nix/ghc9101/ghc-boot.nix @@ -0,0 +1,47 @@ +{ system + , compiler + , flags + , pkgs + , hsPkgs + , pkgconfPkgs + , errorHandler + , config + , ... }: + { + flags = {}; + package = { + specVersion = "3.0"; + identifier = { name = "ghc-boot"; version = "9.10.1"; }; + 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.buildPackages.base or (pkgs.buildPackages.base or (errorHandler.setupDepError "base"))) + (hsPkgs.buildPackages.Cabal or (pkgs.buildPackages.Cabal or (errorHandler.setupDepError "Cabal"))) + (hsPkgs.buildPackages.directory or (pkgs.buildPackages.directory or (errorHandler.setupDepError "directory"))) + (hsPkgs.buildPackages.filepath or (pkgs.buildPackages.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-platform" or (errorHandler.buildDepError "ghc-platform")) + (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/ghc9101/ghc-heap.nix b/materialized/ghc-boot-packages-nix/ghc9101/ghc-heap.nix new file mode 100644 index 0000000000..4eeb9a331b --- /dev/null +++ b/materialized/ghc-boot-packages-nix/ghc9101/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.10.1"; }; + 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")) + ] ++ pkgs.lib.optional (compiler.isGhc && compiler.version.ge "9.9") (hsPkgs."ghc-internal" or (errorHandler.buildDepError "ghc-internal")); + buildable = true; + }; + }; + } // rec { src = pkgs.lib.mkDefault ./.; } diff --git a/materialized/ghc-boot-packages-nix/ghc9101/ghc-internal.nix b/materialized/ghc-boot-packages-nix/ghc9101/ghc-internal.nix new file mode 100644 index 0000000000..fe7b871e5a --- /dev/null +++ b/materialized/ghc-boot-packages-nix/ghc9101/ghc-internal.nix @@ -0,0 +1,49 @@ +{ system + , compiler + , flags + , pkgs + , hsPkgs + , pkgconfPkgs + , errorHandler + , config + , ... }: + { + flags = {}; + package = { + specVersion = "3.0"; + identifier = { name = "ghc-internal"; version = "9.1001.0"; }; + license = "BSD-3-Clause"; + copyright = ""; + maintainer = "Core Libraries Committee "; + author = ""; + homepage = ""; + url = ""; + synopsis = "Basic libraries"; + description = "This package contains the Standard Haskell \"Prelude\" and its support libraries,\nand a large collection of useful libraries ranging from data\nstructures to parsing combinators and debugging utilities."; + 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/ghc9101/ghc-platform.nix b/materialized/ghc-boot-packages-nix/ghc9101/ghc-platform.nix new file mode 100644 index 0000000000..9a99aece09 --- /dev/null +++ b/materialized/ghc-boot-packages-nix/ghc9101/ghc-platform.nix @@ -0,0 +1,31 @@ +{ system + , compiler + , flags + , pkgs + , hsPkgs + , pkgconfPkgs + , errorHandler + , config + , ... }: + { + flags = {}; + package = { + specVersion = "3.0"; + identifier = { name = "ghc-platform"; version = "0.1.0.0"; }; + license = "BSD-3-Clause"; + copyright = ""; + maintainer = "ghc-devs@haskell.org"; + author = "Rodrigo Mesquita"; + homepage = ""; + url = ""; + synopsis = "Platform information used by GHC and friends"; + description = ""; + buildType = "Simple"; + }; + components = { + "library" = { + depends = [ (hsPkgs."base" or (errorHandler.buildDepError "base")) ]; + buildable = true; + }; + }; + } // rec { src = pkgs.lib.mkDefault ./.; } diff --git a/materialized/ghc-boot-packages-nix/ghc9101/ghc-prim.nix b/materialized/ghc-boot-packages-nix/ghc9101/ghc-prim.nix new file mode 100644 index 0000000000..c279864cba --- /dev/null +++ b/materialized/ghc-boot-packages-nix/ghc9101/ghc-prim.nix @@ -0,0 +1,47 @@ +{ system + , compiler + , flags + , pkgs + , hsPkgs + , pkgconfPkgs + , errorHandler + , config + , ... }: + { + flags = { need-atomic = false; }; + package = { + specVersion = "2.2"; + identifier = { name = "ghc-prim"; version = "0.11.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.buildPackages.base or (pkgs.buildPackages.base or (errorHandler.setupDepError "base"))) + (hsPkgs.buildPackages.process or (pkgs.buildPackages.process or (errorHandler.setupDepError "process"))) + (hsPkgs.buildPackages.filepath or (pkgs.buildPackages.filepath or (errorHandler.setupDepError "filepath"))) + (hsPkgs.buildPackages.directory or (pkgs.buildPackages.directory or (errorHandler.setupDepError "directory"))) + (hsPkgs.buildPackages.Cabal or (pkgs.buildPackages.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")) + ]) ++ pkgs.lib.optional (flags.need-atomic) (pkgs."atomic" or (errorHandler.sysDepError "atomic")); + buildable = true; + }; + }; + } // rec { src = pkgs.lib.mkDefault ./.; } diff --git a/materialized/ghc-boot-packages-nix/ghc9101/ghc.nix b/materialized/ghc-boot-packages-nix/ghc9101/ghc.nix new file mode 100644 index 0000000000..733796d386 --- /dev/null +++ b/materialized/ghc-boot-packages-nix/ghc9101/ghc.nix @@ -0,0 +1,81 @@ +{ system + , compiler + , flags + , pkgs + , hsPkgs + , pkgconfPkgs + , errorHandler + , config + , ... }: + { + flags = { + internal-interpreter = false; + dynamic-system-linker = true; + build-tool-depends = true; + with-libzstd = false; + static-libzstd = false; + hadrian-stage0 = false; + }; + package = { + specVersion = "2.2"; + identifier = { name = "ghc"; version = "9.10.1"; }; + 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.\n\n__This package is not PVP-compliant.__\n\nThis package directly exposes GHC internals, which can and do change with\nevery release."; + buildType = "Custom"; + setup-depends = [ + (hsPkgs.buildPackages.base or (pkgs.buildPackages.base or (errorHandler.setupDepError "base"))) + (hsPkgs.buildPackages.Cabal or (pkgs.buildPackages.Cabal or (errorHandler.setupDepError "Cabal"))) + (hsPkgs.buildPackages.directory or (pkgs.buildPackages.directory or (errorHandler.setupDepError "directory"))) + (hsPkgs.buildPackages.process or (pkgs.buildPackages.process or (errorHandler.setupDepError "process"))) + (hsPkgs.buildPackages.filepath or (pkgs.buildPackages.filepath or (errorHandler.setupDepError "filepath"))) + (hsPkgs.buildPackages.containers or (pkgs.buildPackages.containers or (errorHandler.setupDepError "containers"))) + ]; + }; + 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."semaphore-compat" or (errorHandler.buildDepError "semaphore-compat")) + (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")) ]); + libs = pkgs.lib.optionals (flags.with-libzstd) (if flags.static-libzstd + then pkgs.lib.optional (!system.isOsx) (pkgs.":libzstd.a" or (errorHandler.sysDepError ":libzstd.a")) + else [ (pkgs."zstd" or (errorHandler.sysDepError "zstd")) ]); + build-tools = pkgs.lib.optionals (flags.build-tool-depends) [ + (hsPkgs.buildPackages.alex.components.exes.alex or (pkgs.buildPackages.alex or (errorHandler.buildToolDepError "alex:alex"))) + (hsPkgs.buildPackages.happy.components.exes.happy or (pkgs.buildPackages.happy or (errorHandler.buildToolDepError "happy:happy"))) + (hsPkgs.buildPackages.genprimopcode.components.exes.genprimopcode or (pkgs.buildPackages.genprimopcode or (errorHandler.buildToolDepError "genprimopcode:genprimopcode"))) + (hsPkgs.buildPackages.deriveConstants.components.exes.deriveConstants or (pkgs.buildPackages.deriveConstants or (errorHandler.buildToolDepError "deriveConstants:deriveConstants"))) + ]; + buildable = if flags.with-libzstd + then if flags.static-libzstd + then if system.isOsx then false else true + else true + else true; + }; + }; + } // rec { src = pkgs.lib.mkDefault ./.; } diff --git a/materialized/ghc-boot-packages-nix/ghc9101/ghci.nix b/materialized/ghc-boot-packages-nix/ghc9101/ghci.nix new file mode 100644 index 0000000000..d709146815 --- /dev/null +++ b/materialized/ghc-boot-packages-nix/ghc9101/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.10.1"; }; + 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/ghc9101/hpc.nix b/materialized/ghc-boot-packages-nix/ghc9101/hpc.nix new file mode 100644 index 0000000000..f27cdbe473 --- /dev/null +++ b/materialized/ghc-boot-packages-nix/ghc9101/hpc.nix @@ -0,0 +1,38 @@ +{ system + , compiler + , flags + , pkgs + , hsPkgs + , pkgconfPkgs + , errorHandler + , config + , ... }: + { + flags = {}; + package = { + specVersion = "2.2"; + identifier = { name = "hpc"; version = "0.7.0.1"; }; + 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/ghc9101/integer-gmp.nix b/materialized/ghc-boot-packages-nix/ghc9101/integer-gmp.nix new file mode 100644 index 0000000000..8594679a59 --- /dev/null +++ b/materialized/ghc-boot-packages-nix/ghc9101/integer-gmp.nix @@ -0,0 +1,36 @@ +{ 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")) + (hsPkgs."ghc-internal" or (errorHandler.buildDepError "ghc-internal")) + ]; + buildable = true; + }; + }; + } // rec { src = pkgs.lib.mkDefault ./.; } diff --git a/materialized/ghc-boot-packages-nix/ghc9101/iserv.nix b/materialized/ghc-boot-packages-nix/ghc9101/iserv.nix new file mode 100644 index 0000000000..07aef2d361 --- /dev/null +++ b/materialized/ghc-boot-packages-nix/ghc9101/iserv.nix @@ -0,0 +1,41 @@ +{ system + , compiler + , flags + , pkgs + , hsPkgs + , pkgconfPkgs + , errorHandler + , config + , ... }: + { + flags = {}; + package = { + specVersion = "1.10"; + identifier = { name = "iserv"; version = "9.10.1"; }; + 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/ghc9101/remote-iserv.nix b/materialized/ghc-boot-packages-nix/ghc9101/remote-iserv.nix new file mode 100644 index 0000000000..69711f6e83 --- /dev/null +++ b/materialized/ghc-boot-packages-nix/ghc9101/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.10.1"; }; + 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/ghc9101/template-haskell.nix b/materialized/ghc-boot-packages-nix/ghc9101/template-haskell.nix new file mode 100644 index 0000000000..b975251e7e --- /dev/null +++ b/materialized/ghc-boot-packages-nix/ghc9101/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.22.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 09063c142b..84601b2b48 100644 --- a/overlays/bootstrap.nix +++ b/overlays/bootstrap.nix @@ -895,158 +895,7 @@ in { }) ({ # Better error messages when an unsupported version of ghcjs is used - ghc844 = errorOldGhcjs "8.4.4" "8.6"; - ghc861 = errorOldGhcjs "8.6.1" "8.6"; - ghc862 = errorOldGhcjs "8.6.2" "8.6"; - ghc863 = errorOldGhcjs "8.6.3" "8.6"; - ghc864 = errorOldGhcjs "8.6.4" "8.6"; - ghc881 = errorOldGhcjs "8.8.1" "8.8"; - ghc882 = errorOldGhcjs "8.8.2" "8.8"; - ghc883 = errorOldGhcjs "8.8.3" "8.8"; - ghc8101 = errorOldGhcjs "8.10.1" "8.10"; - ghc8102 = errorOldGhcjs "8.10.2" "8.10"; - ghc8103 = errorOldGhcjs "8.10.3" "8.10"; - ghc8104 = errorOldGhcjs "8.10.4" "8.10"; - ghc810420210212 = throw "ghcjs for ghc810420210212 is not supported by haskell.nix"; ghc901 = throw "ghcjs 9.0.1 is not yet supported by haskell.nix"; - ghc865 = let buildGHC = final.buildPackages.haskell-nix.compiler.ghc865; - in let booted-ghcjs = final.callPackage ../compiler/ghcjs/ghcjs.nix { - ghcjsSrcJson = ../compiler/ghcjs/ghcjs-src.json; - ghcjsVersion = "8.6.0.0.10"; - ghc = buildGHC; - }; in let targetPrefix = "js-unknown-ghcjs-"; in final.runCommand "${targetPrefix}ghc-8.6.5" { - nativeBuildInputs = [ final.xorg.lndir ]; - passthru = { - inherit targetPrefix; - version = "8.6.5"; - isHaskellNixCompiler = true; - enableShared = false; - inherit (booted-ghcjs) configured-src bundled-ghcjs project; - raw-src = booted-ghcjs.configured-src; - inherit booted-ghcjs buildGHC; - extraConfigureFlags = [ - "--ghcjs" - "--with-ghcjs=${targetPrefix}ghc" "--with-ghcjs-pkg=${targetPrefix}ghc-pkg" - "--with-gcc=${final.pkgsBuildBuild.emscripten}/bin/emcc" - ]; - }; - # note: we'll use the buildGHCs `hsc2hs`, ghcjss wrapper just horribly breaks in this nix setup. - } ('' - mkdir -p $out/bin - cd $out/bin - ln -s ${booted-ghcjs}/bin/ghcjs ${targetPrefix}ghc - ln -s ${booted-ghcjs}/bin/ghcjs-pkg ${targetPrefix}ghc-pkg - ln -s ${buildGHC}/bin/hsc2hs ${targetPrefix}hsc2hs - cd .. - mkdir -p lib/${targetPrefix}ghc-8.6.5 - cd lib - lndir ${booted-ghcjs}/lib ${targetPrefix}ghc-8.6.5 - ''); - ghc884 = let buildGHC = final.buildPackages.haskell-nix.compiler.ghc884; - in let booted-ghcjs = final.callPackage ../compiler/ghcjs/ghcjs.nix { - ghcjsSrcJson = ../compiler/ghcjs/ghcjs88-src.json; - ghcjsVersion = "8.8.0.0.1"; - ghc = buildGHC; - ghcVersion = "8.8.4"; - compiler-nix-name = "ghc884"; - }; in let targetPrefix = "js-unknown-ghcjs-"; in final.runCommand "${targetPrefix}ghc-8.8.4" { - nativeBuildInputs = [ final.xorg.lndir ]; - passthru = { - inherit targetPrefix; - version = "8.8.4"; - isHaskellNixCompiler = true; - enableShared = false; - inherit (booted-ghcjs) configured-src bundled-ghcjs project; - raw-src = booted-ghcjs.configured-src; - inherit booted-ghcjs buildGHC; - extraConfigureFlags = [ - "--ghcjs" - "--with-ghcjs=${targetPrefix}ghc" "--with-ghcjs-pkg=${targetPrefix}ghc-pkg" - "--with-gcc=${final.pkgsBuildBuild.emscripten}/bin/emcc" - ]; - }; - # note: we'll use the buildGHCs `hsc2hs`, ghcjss wrapper just horribly breaks in this nix setup. - } ('' - mkdir -p $out/bin - cd $out/bin - ln -s ${booted-ghcjs}/bin/ghcjs ${targetPrefix}ghc - ln -s ${booted-ghcjs}/bin/ghcjs-pkg ${targetPrefix}ghc-pkg - ln -s ${buildGHC}/bin/hsc2hs ${targetPrefix}hsc2hs - cd .. - mkdir -p lib/${targetPrefix}ghc-8.8.4 - cd lib - lndir ${booted-ghcjs}/lib ${targetPrefix}ghc-8.8.4 - ''); - ghc8105 = let buildGHC = final.buildPackages.haskell-nix.compiler.ghc8105; - in let booted-ghcjs = final.callPackage ../compiler/ghcjs/ghcjs.nix { - ghcjsSrcJson = ../compiler/ghcjs/ghcjs810-src.json; - ghcjsVersion = "8.10.7"; # Must match the version in the ghcjs.cabal file - ghc = buildGHC; - ghcVersion = "8.10.5"; - compiler-nix-name = "ghc8105"; - }; in let targetPrefix = "js-unknown-ghcjs-"; in final.runCommand "${targetPrefix}ghc-8.10.5" { - nativeBuildInputs = [ final.xorg.lndir ]; - passthru = { - inherit targetPrefix; - version = "8.10.5"; - isHaskellNixCompiler = true; - enableShared = false; - inherit (booted-ghcjs) configured-src bundled-ghcjs project; - raw-src = booted-ghcjs.configured-src; - inherit booted-ghcjs buildGHC; - extraConfigureFlags = [ - "--ghcjs" - "--with-ghcjs=${targetPrefix}ghc" "--with-ghcjs-pkg=${targetPrefix}ghc-pkg" - "--with-gcc=${final.pkgsBuildBuild.emscripten}/bin/emcc" - ]; - }; - # note: we'll use the buildGHCs `hsc2hs`, ghcjss wrapper just horribly breaks in this nix setup. - } ('' - mkdir -p $out/bin - cd $out/bin - ln -s ${booted-ghcjs}/bin/ghcjs ${targetPrefix}ghc - ln -s ${booted-ghcjs}/bin/ghcjs-pkg ${targetPrefix}ghc-pkg - ln -s ${buildGHC}/bin/hsc2hs ${targetPrefix}hsc2hs - cd .. - mkdir -p lib/${targetPrefix}ghc-8.10.5 - cd lib - lndir ${booted-ghcjs}/lib ${targetPrefix}ghc-8.10.5 - ''); - ghc8106 = let buildGHC = final.buildPackages.haskell-nix.compiler.ghc8106; - in let booted-ghcjs = final.callPackage ../compiler/ghcjs/ghcjs.nix { - ghcjsSrcJson = ../compiler/ghcjs/ghcjs810-src.json; - ghcjsVersion = "8.10.7"; # Must match the version in the ghcjs.cabal file - ghc = buildGHC; - ghcVersion = "8.10.6"; - compiler-nix-name = "ghc8106"; - }; in let targetPrefix = "js-unknown-ghcjs-"; in final.runCommand "${targetPrefix}ghc-8.10.6" { - nativeBuildInputs = [ final.xorg.lndir ]; - passthru = { - inherit targetPrefix; - version = "8.10.6"; - isHaskellNixCompiler = true; - enableShared = false; - inherit (booted-ghcjs) configured-src bundled-ghcjs project; - raw-src = booted-ghcjs.configured-src; - inherit booted-ghcjs buildGHC; - extraConfigureFlags = [ - "--ghcjs" - "--with-ghcjs=${targetPrefix}ghc" "--with-ghcjs-pkg=${targetPrefix}ghc-pkg" - "--with-gcc=${final.pkgsBuildBuild.emscripten}/bin/emcc" - ]; - }; - # note: we'll use the buildGHCs `hsc2hs`, ghcjss wrapper just horribly breaks in this nix setup. - } ('' - mkdir -p $out/bin - cd $out/bin - ln -s ${booted-ghcjs}/bin/ghcjs ${targetPrefix}ghc - ln -s ${booted-ghcjs}/bin/ghcjs-pkg ${targetPrefix}ghc-pkg - ln -s ${buildGHC}/bin/hsc2hs ${targetPrefix}hsc2hs - cd .. - mkdir -p lib/${targetPrefix}ghc-8.10.6 - cd lib - lndir ${booted-ghcjs}/lib ${targetPrefix}ghc-8.10.6 - ''); ghc8107 = let buildGHC = final.buildPackages.haskell-nix.compiler.ghc8107; in let booted-ghcjs = final.callPackage ../compiler/ghcjs/ghcjs.nix { ghcjsSrcJson = ../compiler/ghcjs/ghcjs810-src.json; @@ -1062,7 +911,7 @@ in { isHaskellNixCompiler = true; enableShared = false; inherit (booted-ghcjs) configured-src bundled-ghcjs project; - raw-src = booted-ghcjs.configured-src; + raw-src = _evalPackages: booted-ghcjs.configured-src; inherit booted-ghcjs buildGHC; extraConfigureFlags = [ "--ghcjs" diff --git a/overlays/ghc-packages.nix b/overlays/ghc-packages.nix index 4b19fcc2b1..1397f6e459 100644 --- a/overlays/ghc-packages.nix +++ b/overlays/ghc-packages.nix @@ -42,7 +42,7 @@ let combineAndMaterialize = unchecked: materialized-dir: ghcName: bootPackages: (final.haskell-nix.materialize ({ materialized = - if __compareVersions final.buildPackages.haskell-nix.compiler.${ghcName}.version "9.9" < 0 + if __compareVersions final.buildPackages.haskell-nix.compiler.${ghcName}.version "9.11" < 0 then materialized-dir + "/ghc-boot-packages-nix/${ghcName + # The 3434.patch we apply to fix linking on arm systems changes ghc-prim.cabal # so it needs its own materialization. @@ -236,7 +236,7 @@ in rec { index-state = final.haskell-nix.internalHackageIndexState; # Where to look for materialization files materialized = - if __compareVersions final.buildPackages.haskell-nix.compiler.${ghcName}.version "9.9" < 0 + if __compareVersions final.buildPackages.haskell-nix.compiler.${ghcName}.version "9.11" < 0 then ../materialized/ghc-extra-projects + "/${ghc-extra-projects-type proj.ghc}/${ghcName}" else null; compiler-nix-name = ghcName;