.buildkite/pipeline.yml+17−5
@@ -1,6 +1,6 @@
2− - label: 'Run tests with ghc8105'
2+ - label: 'Run tests with ghc8107'
3− command: "./test/tests.sh ghc8105"
3+ command: "./test/tests.sh ghc8107"
5 system: x86_64-linux
5 system: x86_64-linux
@@ -14,9 +14,9 @@ steps:
15 system: x86_64-linux
15 system: x86_64-linux
17− - label: 'Check closure size with ghc8105'
17+ - label: 'Check closure size with ghc8107'
19− - nix-build build.nix -A maintainer-scripts.check-closure-size --argstr compiler-nix-name ghc8105 -o check-closure-size.sh
19+ - nix-build build.nix -A maintainer-scripts.check-closure-size --argstr compiler-nix-name ghc8107 -o check-closure-size.sh
20 - echo "+++ Closure size (MB)"
20 - echo "+++ Closure size (MB)"
21 - ./check-closure-size.sh
21 - ./check-closure-size.sh
@@ -36,5 +36,17 @@ steps:
37 - label: 'Make sure non store paths like can be used as src'
37 - label: 'Make sure non store paths like can be used as src'
39− - nix-build build.nix -A maintainer-scripts.check-path-support --argstr compiler-nix-name ghc8105 -o check-path-support.sh
39+ - nix-build build.nix -A maintainer-scripts.check-path-support --argstr compiler-nix-name ghc8107 -o check-path-support.sh
40 - ./check-path-support.sh
40 - ./check-path-support.sh
42+ - label: 'Check that the haskell.nix roots do not require IFDs'
44+ - nix build .#roots.x86_64-linux --option allow-import-from-derivation false
48+ - label: 'Check that evaluation of hydra jobs works without using remote builders'
50+ - nix-instantiate release.nix -A required-unstable-ghc8107-x86_64-darwin-native --show-trace --builders ''
.buildkite/updates.yml+3−10
@@ -1,21 +1,14 @@
2− - label: 'Update hackage.nix'
2+ - label: 'Update hackage.nix and stackage.nix'
4 - nix-build build.nix -A maintainer-scripts.update-hackage -o update-hackage.sh
4 - nix-build build.nix -A maintainer-scripts.update-hackage -o update-hackage.sh
5 - echo "+++ Updating hackage.nix"
5 - echo "+++ Updating hackage.nix"
6 - ./update-hackage.sh
6 - ./update-hackage.sh
12− - label: 'Update stackage.nix'
14 - nix-build build.nix -A maintainer-scripts.update-stackage -o update-stackage.sh
7 - nix-build build.nix -A maintainer-scripts.update-stackage -o update-stackage.sh
15 - echo "+++ Updating stackage.nix"
8 - echo "+++ Updating stackage.nix"
16 - ./update-stackage.sh
9 - ./update-stackage.sh
17 artifact_paths:
10 artifact_paths:
18− - "stackage-src.json"
11+ - "flake.lock"
20 system: x86_64-linux
13 system: x86_64-linux
@@ -24,7 +17,7 @@ steps:
25 - label: 'Update pins'
18 - label: 'Update pins'
27− - 'buildkite-agent artifact download "*.json" .'
20+ - 'buildkite-agent artifact download "flake.lock" .'
28 - nix-build build.nix -A maintainer-scripts.update-pins -o update-pins.sh
21 - nix-build build.nix -A maintainer-scripts.update-pins -o update-pins.sh
29 - ./update-pins.sh
22 - ./update-pins.sh
.github/workflows/rebase.yamlnew file+28
@@ -0,0 +1,28 @@
1+name: Rebase on iohk/haskell.nix
9+ runs-on: ubuntu-latest
11+ - uses: actions/checkout@v2.4.0
14+ - name: Rebase and push
16+ git config --global user.name "GitHub Actions"
19+ git remote add iohk https://github.com/input-output-hk/haskell.nix.git
22+ git checkout iko/ghcjs-patch-master
23+ git rebase iohk/master
26+ git checkout --track origin/master
27+ git reset --hard iohk/master
.github/workflows/windows-secp256k1.ymlnew file+51
@@ -0,0 +1,51 @@
1+name: "Test secp256k1 on windows"
5+ runs-on: windows-latest
13+ - uses: haskell/actions/setup@v1
17+ cabal-version: 3.6.2.0
19+ - name: Install pkgconfiglite
20+ run: choco install -y pkgconfiglite
22+ - name: Install libsecp256k1
25+ --connect-timeout 5 \
29+ --retry-max-time 40 \
30+ https://hydra.iohk.io/job/Cardano/haskell-nix/windows-secp256k1/latest/download/1 -o secp256k1.zip
33+ unzip ../secp256k1.zip
35+ export PKG_CONFIG_PATH="$PKG_CONFIG_PATH;$(readlink -f secp256k1/lib/pkgconfig | sed 's|^/d|D:|g' | tr / '\\')"
36+ echo "PKG_CONFIG_PATH=$PKG_CONFIG_PATH"
37+ echo "PKG_CONFIG_PATH=$PKG_CONFIG_PATH" >> $GITHUB_ENV
38+ export SECP256K1_PATH="$(readlink -f secp256k1/bin | sed 's|^/d|D:|g' | tr / '\\')"
39+ echo "SECP256K1_PATH=$SECP256K1_PATH"
40+ echo "$SECP256K1_PATH" >> $GITHUB_PATH
45+ - name: Build and run haskell-secp256k1 tests
47+ cabal unpack secp256k1-haskell
48+ cd secp256k1-haskell-*
49+ cabal build --enable-tests
@@ -1,3 +1,19 @@
3+This fork contains a patched version of GHCJS 8.10 which improves performance and memory usage.
5+For more info see this PR: https://github.com/input-output-hk/haskell.nix/pull/1306
9+This branch is updated every day with commits from https://github.com/input-output-hk/haskell.nix/tree/master. This means that it receives all of the updates the initial project does.
13+Building the patched compiler itself takes around 2-3 hours. The [Typeable](https://typeable.io) public nix cache probably has a cached version of the compiler. You can follow these instruction to set it up: [app.cachix.org/organization/typeable/cache/typeable](https://app.cachix.org/organization/typeable/cache/typeable).
1# `haskell.nix` is infrastructure for building Haskell packages with Nix
17# `haskell.nix` is infrastructure for building Haskell packages with Nix
3[](https://buildkite.com/input-output-hk/haskell-dot-nix)
19[](https://buildkite.com/input-output-hk/haskell-dot-nix)
@@ -8,9 +24,9 @@ its dependencies into Nix code.
9## Documentation
25## Documentation
11−- [Introduction](https://input-output-hk.github.io/haskell.nix/)
27+- [Introduction](https://input-output-hk.github.io/haskell.nix/index.html)
12−- [Getting Started](https://input-output-hk.github.io/haskell.nix/tutorials/getting-started/)
28+- [Getting Started](https://input-output-hk.github.io/haskell.nix/tutorials/getting-started.html)
13−- [Troubleshooting](https://input-output-hk.github.io/haskell.nix/troubleshooting/)
29+- [Troubleshooting](https://input-output-hk.github.io/haskell.nix/troubleshooting.html)
14- Explore the documentation from there to find further topics.
30- Explore the documentation from there to find further topics.
16## Help! Something isn't working
32## Help! Something isn't working
@@ -18,8 +34,8 @@ its dependencies into Nix code.
18The #1 problem that people have when using `haskell.nix` is that they find themselves building GHC.
34The #1 problem that people have when using `haskell.nix` is that they find themselves building GHC.
19This should not happen, but you *must* follow the `haskell.nix` setup instructions properly to avoid it.
35This should not happen, but you *must* follow the `haskell.nix` setup instructions properly to avoid it.
20If you find this happening to you, please check that you have followed the
36If you find this happening to you, please check that you have followed the
21−[getting started instructions](https://input-output-hk.github.io/haskell.nix/tutorials/getting-started/#setting-up-the-binary-cache) and
37+[getting started instructions](https://input-output-hk.github.io/haskell.nix/tutorials/getting-started.html#setting-up-the-binary-cache) and
22−consult the corresponding [troubleshooting section](https://input-output-hk.github.io/haskell.nix/troubleshooting/#why-am-i-building-ghc).
38+consult the corresponding [troubleshooting section](https://input-output-hk.github.io/haskell.nix/troubleshooting.html#why-am-i-building-ghc).
24The troubleshooting documentation also contains some help for other common issues.
40The troubleshooting documentation also contains some help for other common issues.
25Please give it a read before asking on IRC or opening an issue.
41Please give it a read before asking on IRC or opening an issue.
@@ -5,9 +5,12 @@
6 haskellNix = (import ./default.nix {});
6 haskellNix = (import ./default.nix {});
8−{ nixpkgs ? haskellNix.sources.nixpkgs-2009
8+{ nixpkgs ? haskellNix.sources.nixpkgs-2111
9, nixpkgsArgs ? haskellNix.nixpkgsArgs
9, nixpkgsArgs ? haskellNix.nixpkgsArgs
10, pkgs ? import nixpkgs nixpkgsArgs
10, pkgs ? import nixpkgs nixpkgsArgs
11+, evalPackages ? import nixpkgs nixpkgsArgs
12+, nixpkgsForHydra ? haskellNix.sources.nixpkgs-2105
13+, pkgsForHydra ? import nixpkgsForHydra (nixpkgsArgs // { inherit (pkgs) system; })
11, ifdLevel ? 1000
14, ifdLevel ? 1000
12, compiler-nix-name ? throw "No `compiler-nix-name` passed to build.nix"
15, compiler-nix-name ? throw "No `compiler-nix-name` passed to build.nix"
@@ -17,14 +20,22 @@ let
17 buildHaskell = pkgs.buildPackages.haskell-nix;
20 buildHaskell = pkgs.buildPackages.haskell-nix;
18 tool = buildHaskell.tool;
21 tool = buildHaskell.tool;
20− tests = import ./test/default.nix { inherit pkgs ifdLevel compiler-nix-name; };
23+ tests = import ./test/default.nix { inherit pkgs evalPackages ifdLevel compiler-nix-name; };
22 tools = pkgs.lib.optionalAttrs (ifdLevel >= 3) (
25 tools = pkgs.lib.optionalAttrs (ifdLevel >= 3) (
23 pkgs.recurseIntoAttrs ({
26 pkgs.recurseIntoAttrs ({
24− cabal-latest = tool compiler-nix-name "cabal" "latest";
27+ cabal-latest = tool compiler-nix-name "cabal" { inherit evalPackages; };
28+ hlint-latest = tool compiler-nix-name "hlint" {
29+ inherit evalPackages;
35+ }.compiler-nix-name or "latest";
25− } // pkgs.lib.optionalAttrs (compiler-nix-name != "ghc901") {
37+ } // pkgs.lib.optionalAttrs (!__elem compiler-nix-name ["ghc921" "ghc922" "ghc923" "ghc924"]) {
26− hls-latest = tool compiler-nix-name "haskell-language-server" "latest";
38+ hls-latest = tool compiler-nix-name "haskell-language-server" { inherit evalPackages; };
27− hlint-latest = tool compiler-nix-name "hlint" (if compiler-nix-name == "ghc865" then "3.2.7" else "latest");
@@ -35,7 +46,7 @@ in rec {
35 maintainer-scripts = pkgs.dontRecurseIntoAttrs {
46 maintainer-scripts = pkgs.dontRecurseIntoAttrs {
36 update-hackage = import ./scripts/update-hackage.nix {
47 update-hackage = import ./scripts/update-hackage.nix {
37 inherit (pkgs) stdenv lib writeScript coreutils glibc git
48 inherit (pkgs) stdenv lib writeScript coreutils glibc git
38− openssh nix-prefetch-git gawk bash curl findutils;
49+ openssh nixFlakes gawk bash curl findutils;
39 # Update scripts use the internal nix-tools and cabal-install (compiled with a fixed GHC version)
50 # Update scripts use the internal nix-tools and cabal-install (compiled with a fixed GHC version)
40 nix-tools = haskell.internal-nix-tools;
51 nix-tools = haskell.internal-nix-tools;
41 cabal-install = haskell.internal-cabal-install;
52 cabal-install = haskell.internal-cabal-install;
@@ -43,7 +54,7 @@ in rec {
44 update-stackage = haskell.callPackage ./scripts/update-stackage.nix {
55 update-stackage = haskell.callPackage ./scripts/update-stackage.nix {
45 inherit (pkgs) stdenv lib writeScript coreutils glibc git
56 inherit (pkgs) stdenv lib writeScript coreutils glibc git
46− openssh nix-prefetch-git gawk bash curl findutils;
57+ openssh nixFlakes gawk bash curl findutils;
47 # Update scripts use the internal nix-tools and cabal-install (compiled with a fixed GHC version)
58 # Update scripts use the internal nix-tools and cabal-install (compiled with a fixed GHC version)
48 nix-tools = haskell.internal-nix-tools;
59 nix-tools = haskell.internal-nix-tools;
49 cabal-install = haskell.internal-cabal-install;
60 cabal-install = haskell.internal-cabal-install;
@@ -57,7 +68,7 @@ in rec {
57 # it uses `pkgs.buildPackages.callPackage` not `haskell.callPackage`
68 # it uses `pkgs.buildPackages.callPackage` not `haskell.callPackage`
58 # (We could pull in darcs from a known good haskell.nix for hydra to
69 # (We could pull in darcs from a known good haskell.nix for hydra to
60− check-hydra = pkgs.buildPackages.callPackage ./scripts/check-hydra.nix {};
71+ check-hydra = pkgsForHydra.buildPackages.callPackage ./scripts/check-hydra.nix {};
61 check-closure-size = pkgs.buildPackages.callPackage ./scripts/check-closure-size.nix {
72 check-closure-size = pkgs.buildPackages.callPackage ./scripts/check-closure-size.nix {
62 # Includes cabal-install since this is commonly used.
73 # Includes cabal-install since this is commonly used.
63 nix-tools = pkgs.linkFarm "common-tools" [
74 nix-tools = pkgs.linkFarm "common-tools" [
@@ -66,13 +77,17 @@ in rec {
68 check-materialization-concurrency = pkgs.buildPackages.callPackage ./scripts/check-materialization-concurrency/check.nix {};
79 check-materialization-concurrency = pkgs.buildPackages.callPackage ./scripts/check-materialization-concurrency/check.nix {};
69− check-path-support = pkgs.buildPackages.callPackage ./scripts/check-path-support.nix {};
80+ check-path-support = pkgs.buildPackages.callPackage ./scripts/check-path-support.nix {
81+ # TODO remove this when nixpkgs-2205 is released and used for `pkgs`
82+ # check-path-support fails unless we have nix 2.4 or newer.
83+ inherit (import haskellNix.sources.nixpkgs-unstable {}) nix;
72 # These are pure parts of maintainer-script so they can be built by hydra
87 # These are pure parts of maintainer-script so they can be built by hydra
73 # and added to the cache to speed up buildkite.
88 # and added to the cache to speed up buildkite.
74 maintainer-script-cache = pkgs.recurseIntoAttrs (
89 maintainer-script-cache = pkgs.recurseIntoAttrs (
75− (pkgs.lib.optionalAttrs pkgs.stdenv.hostPlatform.isWindows {
90+ (pkgs.lib.optionalAttrs (pkgsForHydra.system == "x86_64-linux") {
76 inherit (maintainer-scripts) check-hydra;
91 inherit (maintainer-scripts) check-hydra;
78 // (pkgs.lib.optionalAttrs (ifdLevel > 2) {
93 // (pkgs.lib.optionalAttrs (ifdLevel > 2) {
builder/Setup.ghcjs.hsnew file+272
@@ -0,0 +1,272 @@
1+{-# language LambdaCase #-}
2+import Distribution.Simple
3+import Distribution.Simple.Setup
4+import Distribution.Types.PackageDescription
5+import Distribution.Types.LocalBuildInfo
6+import Distribution.Simple.PackageIndex
7+import Distribution.Types.InstalledPackageInfo hiding (includeDirs)
8+import qualified Distribution.Types.InstalledPackageInfo as IPI
9+import Distribution.Types.PackageName
10+import System.FilePath
11+import Control.Monad (filterM, forM_, forM, unless)
12+import System.Directory (doesFileExist)
13+import Distribution.Types.Library (libBuildInfo, Library(..))
14+import Distribution.Types.BuildInfo (cSources, jsSources, includeDirs, emptyBuildInfo, options, extraBundledLibs)
15+import Distribution.Simple.BuildTarget (readBuildTargets, BuildTarget(..), readUserBuildTargets)
16+import Distribution.Verbosity (silent, verbose)
17+import Distribution.Types.ComponentName
18+import Distribution.Simple.Program.Types (programPath)
19+import Distribution.Simple.Program.Db (lookupKnownProgram, lookupProgram, knownPrograms)
20+import Distribution.Simple.Program (Program, gccProgram, arProgram, runDbProgram, simpleProgram, ghcProgram)
21+import Distribution.Simple.Utils (createDirectoryIfMissingVerbose)
22+import Distribution.Types.HookedBuildInfo
23+import Data.List (isPrefixOf, isSuffixOf, intercalate)
24+import System.Environment (getArgs, getProgName)
25+import Distribution.Simple.LocalBuildInfo (Component (..), withAllComponentsInBuildOrder, componentBuildDir)
26+import Distribution.Types.TestSuite (TestSuite(..))
27+import Distribution.Types.TestSuiteInterface (TestSuiteInterface(..) )
28+import Distribution.Simple.Test.LibV09 (stubName)
29+import Distribution.Types.Executable (exeName, Executable(..))
30+import Distribution.Types.Benchmark (Benchmark(..))
31+import Distribution.Types.TestSuite (TestSuite(..))
32+import Distribution.Types.UnqualComponentName (unUnqualComponentName, mkUnqualComponentName)
35+emarProgram :: Program
36+emarProgram = simpleProgram "emar"
38+buildEMCCLib :: PackageDescription -> LocalBuildInfo -> IO ()
39+buildEMCCLib desc lbi = do
40+ let verbosity = verbose
42+ createDirectoryIfMissingVerbose verbosity True ((buildDir lbi) </> "emcc")
46+ -- Let's see if we are going to export anything. If not there is likely no point in compiling anything
48+ names <- forM (jsSources . libBuildInfo $ lib) $ \src -> do
49+ unwords . concatMap (drop 2 . words) . filter (isPrefixOf "// EMCC:EXPORTED_FUNCTIONS") . lines <$> readFile src
51+ unless (null names) $ do
52+ let depIncludeDirs = concatMap IPI.includeDirs (topologicalOrder $ installedPkgs lbi)
53+ -- alright, let's compile all .c files into .o files with emcc, which is the `gcc` program.
54+ forM_ (cSources . libBuildInfo $ lib) $ \src -> do
55+ let dst = (buildDir lbi) </> "emcc" </> (src -<.> "o")
56+ createDirectoryIfMissingVerbose verbosity True (takeDirectory dst)
57+ runDbProgram verbosity gccProgram (withPrograms lbi) $
58+ ["-c", src, "-o", dst] ++ ["-I" <> incDir | incDir <- (includeDirs . libBuildInfo $ lib) ++ depIncludeDirs]
60+ -- and now construct a canonical `.js_a` file, *if* we have any cSources we turned into objects.
61+ unless (null . cSources . libBuildInfo $ lib) $ do
62+ let dstLib = (buildDir lbi) </> "libEMCC" <> (unPackageName . pkgName . package $ desc) <> ".js_a"
63+ runDbProgram verbosity emarProgram (withPrograms lbi) $
64+ [ "-r", dstLib ] ++ [ (buildDir lbi) </> "emcc" </> (src -<.> "o") | src <- cSources . libBuildInfo $ lib ]
66+ let expLib = (buildDir lbi) </> "libEMCC" <> (unPackageName . pkgName . package $ desc) <> ".exported.js_a"
67+ writeFile expLib (unwords names)
69+ -- if there's no lib, this is a fairly pointless exercise
72+-- This is here so that we can link multiple libEMCC* libraries fromd ependencies together with emcc.
73+-- however we don't have figured out how to get the EXPORTED_FUNCTIONS from each dependency merged yet.
75+linkEMCCLib :: PackageDescription -> LocalBuildInfo -> IO ()
76+linkEMCCLib desc lbi = linkCLib ("emcc" </> "lib.js") desc lbi
78+linkEMCCTHLib :: PackageDescription -> LocalBuildInfo -> IO ()
79+linkEMCCTHLib desc lbi = linkCLib ("th-support.js") desc lbi
81+linkCLib :: String -> PackageDescription -> LocalBuildInfo -> IO ()
82+linkCLib libname desc lbi = do
83+ withAllComponentsInBuildOrder desc lbi $ \comp clbi -> do
84+ let extraLibs = [ "-l" <> l | l <- concatMap IPI.extraLibraries (topologicalOrder $ installedPkgs lbi)
87+ libDirs = [ "-L" <> path | path <- concatMap IPI.libraryDirs (topologicalOrder $ installedPkgs lbi) ]
89+ let verbosity = verbose
90+ libs <- filterM doesFileExist $
91+ concatMap (\x -> [ libDir </> "libEMCC" <> (unPackageName . pkgName . sourcePackageId $ x) <> ".js_a"
92+ | libDir <- libraryDirs x ])
93+ (topologicalOrder $ installedPkgs lbi)
94+ exff <- filterM doesFileExist $
95+ concatMap (\x -> [ libDir </> "libEMCC" <> (unPackageName . pkgName . sourcePackageId $ x) <> ".exported.js_a"
96+ | libDir <- libraryDirs x ])
97+ (topologicalOrder $ installedPkgs lbi)
99+ exfns <- concat <$> forM exff (fmap words . readFile)
100+ unless (null libs && null exfns) $ do
101+ libs <- case libs of
102+ [] -> do writeFile (buildDir lbi </> "emcc_linking_dummy.c") ""
103+ runDbProgram verbosity gccProgram (withPrograms lbi) $
104+ ["-c", buildDir lbi </> "emcc_linking_dummy.c", "-o", buildDir lbi </> "emcc_linking_dummy.o"]
105+ return [(buildDir lbi </> "emcc_linking_dummy.o")]
108+ let dst = if libname == "emcc" </> "lib.js" then buildDir lbi
109+ -- who designed this shit in cabal?
111+ (CTest test@(TestSuite { testInterface = TestSuiteLibV09 _ _ })) -> buildDir lbi </> stubName test </> stubName test ++ "-tmp"
112+ (CTest test@(TestSuite { testInterface = TestSuiteExeV10 _ _ })) -> buildDir lbi </> unUnqualComponentName (testName test) </> unUnqualComponentName (testName test) ++ "-tmp"
113+ (CExe exe) -> buildDir lbi </> unUnqualComponentName (exeName exe) </> unUnqualComponentName (exeName exe) ++ "-tmp"
114+ _ -> componentBuildDir lbi clbi
115+ dst' = dst </> libname
116+ createDirectoryIfMissingVerbose verbosity True (takeDirectory dst')
117+ runDbProgram verbosity gccProgram (withPrograms lbi) $
120+ , "-s", "ALLOW_TABLE_GROWTH" -- we need this for addFunction/removeFunction
121+ -- addFunction, removeFunction are for dynamic functions.
122+ -- getTempRet0/setTempRet0 are for 64bit legalization.
123+ , "-s", "EXPORTED_RUNTIME_METHODS=['printErr','addFunction','removeFunction','getTempRet0','setTempRet0']"
125+ , "-s", "EXPORTED_FUNCTIONS=['" <> intercalate "', '" exfns <> "']"
126+ ] ++ libs ++ libDirs ++ extraLibs
128+postBuildHook :: Args -> BuildFlags -> PackageDescription -> LocalBuildInfo -> IO ()
129+postBuildHook args flags desc lbi = do
130+ case (takeFileName . programPath <$> lookupProgram ghcProgram (withPrograms lbi)) of
131+ Just "js-unknown-ghcjs-ghc" ->
132+ readBuildTargets silent desc (buildArgs flags) >>= \case
133+ [BuildTargetComponent (CLibName _)] -> print "OK. Lib (Build)" >> buildEMCCLib desc lbi
134+ [BuildTargetComponent (CExeName _)] -> print "OK. Exe"
135+ [BuildTargetComponent (CTestName _)] -> print "OK. Test"
136+ [BuildTargetComponent (CBenchName _)] -> print "OK. Bench"
140+postConfHook :: Args -> ConfigFlags -> PackageDescription -> LocalBuildInfo -> IO ()
141+postConfHook args flags desc lbi = do
142+ case (takeFileName . programPath <$> lookupProgram ghcProgram (withPrograms lbi)) of
143+ Just "js-unknown-ghcjs-ghc" -> do
144+ -- always link the TH lib
145+ -- this is technically only needed if the package uses TH somewhere.
146+ linkEMCCTHLib desc lbi
147+ -- only link the final lib if we want to produce an output.
148+ readBuildTargets silent desc (configArgs flags) >>= \case
149+ [BuildTargetComponent (CLibName _)] -> print "OK. Lib" >> postConf simpleUserHooks args flags desc lbi
150+ [BuildTargetComponent (CExeName _)] -> print "OK. Exe (Link)" >> linkEMCCLib desc lbi
151+ [BuildTargetComponent (CTestName _)] -> print "OK. Test (Link)" >> linkEMCCLib desc lbi
152+ [BuildTargetComponent (CBenchName _)] -> print "OK. Bench (Link)" >> linkEMCCLib desc lbi
154+ -- defer to default postConf. XXX we should do this for the above cases in linkEMCCLib as well!
155+ _ -> postConf simpleUserHooks args flags desc lbi
158+-- Injecting emcc/lib.js as needed.
160+-- We inject jsSources: dist/build/emcc/lib.js, the amalgamated emcc library,
161+-- into Executables, Tests and Benchmarks.
162+emccBuildHook :: PackageDescription -> LocalBuildInfo -> UserHooks -> BuildFlags -> IO ()
163+emccBuildHook desc lbi hooks flags = do
164+ let lbi' = lbi { localPkgDescr = updatePackageDescription (localPkgDescr lbi) }
165+ -- for some reason tests/benchmarks seem to rely on the description, whereas libraries and executables depend on the local build info...
166+ desc' = updatePackageDescription desc
167+ doesFileExist jsLib >>= \x -> print $ jsLib <> " " <> (if x then "exists" else "doesn't exist!")
168+ doesFileExist jsLib >>= \case
169+ True -> buildHook simpleUserHooks desc' lbi' hooks flags
170+ False -> buildHook simpleUserHooks desc lbi hooks flags
173+ jsLib = "dist/build" </> "emcc" </> "lib.js"
174+ extraOpts = PerCompilerFlavor [jsLib] []
175+ -- don't inject it for libraries, only for exe, test, bench.
176+ updateLibrary :: Library -> Library
177+ updateLibrary = id -- lib@Library{ libBuildInfo = bi } = lib { libBuildInfo = bi { options = options bi <> extraOpts } }
178+ updateExe :: Executable -> Executable
179+ updateExe exe@Executable{ buildInfo = bi } = exe { buildInfo = bi { options = options bi <> extraOpts } }
180+ updateTest :: TestSuite -> TestSuite
181+ updateTest test@TestSuite{ testBuildInfo = bi } = test { testBuildInfo = bi { options = options bi <> extraOpts } }
182+ updateBench :: Benchmark -> Benchmark
183+ updateBench bench@Benchmark{ benchmarkBuildInfo = bi } = bench { benchmarkBuildInfo = bi { options = options bi <> extraOpts } }
184+ updatePackageDescription :: PackageDescription -> PackageDescription
185+ updatePackageDescription desc = desc
186+ { library = updateLibrary <$> library desc
187+ , executables = updateExe <$> executables desc
188+ , testSuites = updateTest <$> testSuites desc
189+ , benchmarks = updateBench <$> benchmarks desc
193+-- Injecting EMCC<name> extra libraries as needed
194+-- this one we only need alongside library components; as it's shipped and installed
195+-- into the package databse. This is not necesary for executables/test/benchmarks, that
196+-- are not installed into the package database
198+emccCopyHook :: PackageDescription -> LocalBuildInfo -> UserHooks -> CopyFlags -> IO ()
199+emccCopyHook desc lbi hooks flags = do
200+ emccLibs <- filterM (\l -> doesFileExist (buildDir lbi </> "lib" <> l <> ".js_a"))
201+ [ "EMCC" <> (unPackageName . pkgName . package $ desc)
202+ , "EMCC" <> (unPackageName . pkgName . package $ desc) <> ".exported" ]
203+ print $ "EMCC extra lib files: " ++ intercalate ", " emccLibs
204+ let lbi' = lbi { localPkgDescr = updatePackageDescription emccLibs (localPkgDescr lbi) }
205+ desc' = updatePackageDescription emccLibs desc
206+ copyHook simpleUserHooks desc' lbi' hooks flags
208+ emccLib = (buildDir lbi) </> "libEMCC" <> (unPackageName . pkgName . package $ desc) <> ".js_a"
209+ -- don't inject it for libraries, only for exe, test, bench.
210+ updateLibrary :: [String] -> Library -> Library
211+ updateLibrary extraLibs lib@Library{ libBuildInfo = bi } = lib { libBuildInfo = bi { extraBundledLibs = extraBundledLibs bi <> extraLibs } }
212+ updatePackageDescription :: [String] -> PackageDescription -> PackageDescription
213+ updatePackageDescription extraLibs desc = desc { library = updateLibrary extraLibs <$> library desc }
215+emccRegHook :: PackageDescription -> LocalBuildInfo -> UserHooks -> RegisterFlags -> IO ()
216+emccRegHook desc lbi hooks flags = do
217+ emccLibs <- filterM (\l -> doesFileExist (buildDir lbi </> "lib" <> l <> ".js_a"))
218+ [ "EMCC" <> (unPackageName . pkgName . package $ desc)
219+ , "EMCC" <> (unPackageName . pkgName . package $ desc) <> ".exported" ]
220+ print $ "EMCC extra lib files: " ++ intercalate ", " emccLibs
221+ let lbi' = lbi { localPkgDescr = updatePackageDescription emccLibs (localPkgDescr lbi) }
222+ desc' = updatePackageDescription emccLibs desc
223+ regHook simpleUserHooks desc' lbi' hooks flags
225+ emccLib = (buildDir lbi) </> "libEMCC" <> (unPackageName . pkgName . package $ desc) <> ".js_a"
226+ -- don't inject it for libraries, only for exe, test, bench.
227+ updateLibrary :: [String] -> Library -> Library
228+ updateLibrary extraLibs lib@Library{ libBuildInfo = bi } = lib { libBuildInfo = bi { extraBundledLibs = extraBundledLibs bi <> extraLibs } }
229+ updatePackageDescription :: [String] -> PackageDescription -> PackageDescription
230+ updatePackageDescription extraLibs desc = desc { library = updateLibrary extraLibs <$> library desc }
232+emccUnregHook :: PackageDescription -> LocalBuildInfo -> UserHooks -> RegisterFlags -> IO ()
233+emccUnregHook desc lbi hooks flags = do
234+ emccLibs <- filterM (\l -> doesFileExist (buildDir lbi </> "lib" <> l <> ".js_a"))
235+ [ "EMCC" <> (unPackageName . pkgName . package $ desc)
236+ , "EMCC" <> (unPackageName . pkgName . package $ desc) <> ".exported" ]
237+ print $ "EMCC extra lib files: " ++ intercalate ", " emccLibs
238+ let lbi' = lbi { localPkgDescr = updatePackageDescription emccLibs (localPkgDescr lbi) }
239+ desc' = updatePackageDescription emccLibs desc
240+ unregHook simpleUserHooks desc' lbi' hooks flags
242+ emccLib = (buildDir lbi) </> "libEMCC" <> (unPackageName . pkgName . package $ desc) <> ".js_a"
243+ -- don't inject it for libraries, only for exe, test, bench.
244+ updateLibrary :: [String] -> Library -> Library
245+ updateLibrary extraLibs lib@Library{ libBuildInfo = bi } = lib { libBuildInfo = bi { extraBundledLibs = extraBundledLibs bi <> extraLibs } }
246+ updatePackageDescription :: [String] -> PackageDescription -> PackageDescription
247+ updatePackageDescription extraLibs desc = desc { library = updateLibrary extraLibs <$> library desc }
254+ defaultMainWithHooksArgs emccHooks (injectEmar args)
256+ injectEmar :: [String] -> [String]
258+ injectEmar (x:xs) | "--with-gcc=" `isPrefixOf` x
259+ , "emcc" `isSuffixOf` x
260+ = x:("--with-emar="<> (takeDirectory $ drop 11 $ x) </> "emar"):injectEmar xs
261+ injectEmar (x:xs) = x:injectEmar xs
263+ emccHooks :: UserHooks
264+ emccHooks = simpleUserHooks
265+ { postConf = postConfHook
266+ , buildHook = emccBuildHook
267+ , postBuild = postBuildHook
268+ , copyHook = emccCopyHook
269+ , regHook = emccRegHook
270+ , unregHook = emccUnregHook
271+ , hookedPrograms = [emarProgram]
builder/Setup.hsnew file+2
@@ -0,0 +1,2 @@
1+import Distribution.Simple
builder/comp-builder.nix+91−28
@@ -1,4 +1,4 @@
1−{ pkgs, stdenv, buildPackages, ghc, lib, gobject-introspection ? null, haskellLib, makeConfigFiles, haddockBuilder, ghcForComponent, hsPkgs, compiler, runCommand, libffi, gmp, zlib, ncurses, numactl, nodejs }@defaults:
1+{ pkgs, stdenv, buildPackages, ghc, lib, gobject-introspection ? null, haskellLib, makeConfigFiles, haddockBuilder, ghcForComponent, hsPkgs, compiler, runCommand, libffi, gmp, zlib, ncurses, nodejs }@defaults:
2lib.makeOverridable (
2lib.makeOverridable (
4{ componentId
4{ componentId
@@ -50,6 +50,7 @@ let self =
50, writeHieFiles ? component.writeHieFiles
50, writeHieFiles ? component.writeHieFiles
52, ghcOptions ? component.ghcOptions
52, ghcOptions ? component.ghcOptions
53+, contentAddressed ? component.contentAddressed
54# Options for Haddock generation
55# Options for Haddock generation
55, doHaddock ? component.doHaddock # Enable haddock and hoogle generation
56, doHaddock ? component.doHaddock # Enable haddock and hoogle generation
@@ -61,7 +62,7 @@ let self =
62# Profiling
63# Profiling
63, enableLibraryProfiling ? component.enableLibraryProfiling
64, enableLibraryProfiling ? component.enableLibraryProfiling
64−, enableExecutableProfiling ? component.enableExecutableProfiling
65+, enableProfiling ? component.enableProfiling
65, profilingDetail ? component.profilingDetail
66, profilingDetail ? component.profilingDetail
@@ -82,6 +83,7 @@ let self =
84, useLLVM ? ghc.useLLVM
85, useLLVM ? ghc.useLLVM
86+, smallAddressSpace ? false
@@ -98,8 +100,10 @@ let
98 && !stdenv.hostPlatform.isMusl
100 && !stdenv.hostPlatform.isMusl
99 && builtins.compareVersions defaults.ghc.version "8.10.2" >= 0;
101 && builtins.compareVersions defaults.ghc.version "8.10.2" >= 0;
101− ghc = if enableDWARF then defaults.ghc.dwarf else defaults.ghc;
103+ ghc = (if enableDWARF then (x: x.dwarf) else (x: x)) (
104+ (if smallAddressSpace then (x: x.smallAddressSpace) else (x: x)) defaults.ghc);
102− setup = if enableDWARF then drvArgs.setup.dwarf else drvArgs.setup;
105+ setup = (if enableDWARF then (x: x.dwarf) else (x: x)) (
106+ (if smallAddressSpace then (x: x.smallAddressSpace) else (x: x)) drvArgs.setup);
104 # TODO fix cabal wildcard support so hpack wildcards can be mapped to cabal wildcards
108 # TODO fix cabal wildcard support so hpack wildcards can be mapped to cabal wildcards
105 canCleanSource = !(cabal-generator == "hpack" && !(package.cleanHpack or false));
109 canCleanSource = !(cabal-generator == "hpack" && !(package.cleanHpack or false));
@@ -129,7 +133,7 @@ let
130 fullName = "${nameOnly}-${package.identifier.version}";
134 fullName = "${nameOnly}-${package.identifier.version}";
132− needsProfiling = enableExecutableProfiling || enableLibraryProfiling;
136+ needsProfiling = enableProfiling || enableLibraryProfiling;
134 configFiles = makeConfigFiles {
138 configFiles = makeConfigFiles {
135 component = componentForSetup;
139 component = componentForSetup;
@@ -176,7 +180,7 @@ let
176 [ "--with-gcc=${stdenv.cc.targetPrefix}cc"
180 [ "--with-gcc=${stdenv.cc.targetPrefix}cc"
178 # BINTOOLS
182 # BINTOOLS
179− (if stdenv.hostPlatform.isLinux
183+ (if stdenv.hostPlatform.isLinux && !stdenv.hostPlatform.isAndroid # might be better check to see if cc is clang/llvm?
180 # use gold as the linker on linux to improve link times
184 # use gold as the linker on linux to improve link times
182 "--with-ld=${stdenv.cc.bintools.targetPrefix}ld.gold"
186 "--with-ld=${stdenv.cc.bintools.targetPrefix}ld.gold"
@@ -193,7 +197,7 @@ let
193 (disableFeature dontStrip "executable-stripping")
197 (disableFeature dontStrip "executable-stripping")
194 (disableFeature dontStrip "library-stripping")
198 (disableFeature dontStrip "library-stripping")
195 (enableFeature enableLibraryProfiling "library-profiling")
199 (enableFeature enableLibraryProfiling "library-profiling")
196− (enableFeature enableExecutableProfiling "executable-profiling")
200+ (enableFeature enableProfiling "profiling")
197 (enableFeature enableStatic "static")
201 (enableFeature enableStatic "static")
198 (enableFeature enableShared "shared")
202 (enableFeature enableShared "shared")
199 (enableFeature doCoverage "coverage")
203 (enableFeature doCoverage "coverage")
@@ -201,13 +205,13 @@ let
201 ] ++ lib.optionals (stdenv.hostPlatform.isMusl && (haskellLib.isExecutableType componentId)) [
205 ] ++ lib.optionals (stdenv.hostPlatform.isMusl && (haskellLib.isExecutableType componentId)) [
202 # These flags will make sure the resulting executable is statically linked.
206 # These flags will make sure the resulting executable is statically linked.
203 # If it uses other libraries it may be necessary for to add more
207 # If it uses other libraries it may be necessary for to add more
204− # `--ghc-option=-optl=-L` options to the `configurationFlags` of the
208+ # `--ghc-option=-optl=-L` options to the `configureFlags` of the
205 # component.
209 # component.
206 "--disable-executable-dynamic"
210 "--disable-executable-dynamic"
207 "--ghc-option=-optl=-pthread"
211 "--ghc-option=-optl=-pthread"
208 "--ghc-option=-optl=-static"
212 "--ghc-option=-optl=-static"
209 ] ++ lib.optional enableSeparateDataOutput "--datadir=$data/share/${ghc.name}"
213 ] ++ lib.optional enableSeparateDataOutput "--datadir=$data/share/${ghc.name}"
210− ++ lib.optional (enableLibraryProfiling || enableExecutableProfiling) "--profiling-detail=${profilingDetail}"
214+ ++ lib.optional (enableLibraryProfiling || enableProfiling) "--profiling-detail=${profilingDetail}"
211 ++ lib.optional stdenv.hostPlatform.isLinux (enableFeature enableDeadCodeElimination "split-sections")
215 ++ lib.optional stdenv.hostPlatform.isLinux (enableFeature enableDeadCodeElimination "split-sections")
212 ++ lib.optionals haskellLib.isCrossHost (
216 ++ lib.optionals haskellLib.isCrossHost (
213 map (arg: "--hsc2hs-option=" + arg) (["--cross-compile"] ++ lib.optionals (stdenv.hostPlatform.isWindows) ["--via-asm"])
217 map (arg: "--hsc2hs-option=" + arg) (["--cross-compile"] ++ lib.optionals (stdenv.hostPlatform.isWindows) ["--via-asm"])
@@ -221,6 +225,14 @@ let
221 "--ghc-option=-fPIC" "--gcc-option=-fPIC"
225 "--ghc-option=-fPIC" "--gcc-option=-fPIC"
223 ++ map (o: ''--ghc${lib.optionalString (stdenv.hostPlatform.isGhcjs) "js"}-options="${o}"'') ghcOptions
227 ++ map (o: ''--ghc${lib.optionalString (stdenv.hostPlatform.isGhcjs) "js"}-options="${o}"'') ghcOptions
229+ # GHC 9.2 cross compiler built with older versions of GHC seem to have problems
230+ # with unique conters. Perhaps because the name changed for the counters.
231+ # TODO This work around to use `-j1` should be removed once we are able to build 9.2 with 9.2.
232+ haskellLib.isCrossHost
233+ && builtins.compareVersions defaults.ghc.version "9.2.1" >= 0
234+ && builtins.compareVersions defaults.ghc.version "9.3" < 0)
226 executableToolDepends =
238 executableToolDepends =
@@ -234,6 +246,7 @@ let
234 shellWrappers = ghcForComponent {
246 shellWrappers = ghcForComponent {
235 componentName = fullName;
247 componentName = fullName;
236 inherit configFiles enableDWARF;
248 inherit configFiles enableDWARF;
249+ inherit (component) plugins;
239 # In order to let shell hooks make package-specific things like Hoogle databases
252 # In order to let shell hooks make package-specific things like Hoogle databases
@@ -304,7 +317,13 @@ let
304 componentDrv = drv;
317 componentDrv = drv;
320+ contentAddressedAttrs = lib.optionalAttrs contentAddressed {
321+ __contentAddressed = true;
322+ outputHashMode = "recursive";
323+ outputHashAlgo = "sha256";
307− drv = stdenv.mkDerivation (commonAttrs // {
326+ drv = stdenv.mkDerivation (commonAttrs // contentAddressedAttrs // {
308 pname = nameOnly;
327 pname = nameOnly;
309 inherit (package.identifier) version;
328 inherit (package.identifier) version;
@@ -337,16 +356,28 @@ let
337 description = package.synopsis or "";
356 description = package.synopsis or "";
338 license = haskellLib.cabalToNixpkgsLicense package.license;
357 license = haskellLib.cabalToNixpkgsLicense package.license;
339 platforms = if platforms == null then lib.platforms.all else platforms;
358 platforms = if platforms == null then lib.platforms.all else platforms;
359+ } // lib.optionalAttrs (haskellLib.isExecutableType componentId) {
360+ # Set main executable name for executable components, so that `nix run` in
361+ # nix flakes will work correctly. When not set, `nix run` would (typically
362+ # erroneously) deduce the executable name from the derivation name and
363+ # attempt to run, for example,
364+ # `/nix/store/...-project-exe-app-0.1.0.0/bin/project-exe-app` instead of
365+ # `/nix/store/...-project-exe-app-0.1.0.0/bin/app`.
366+ mainProgram = exeName;
342 propagatedBuildInputs =
369 propagatedBuildInputs =
343 frameworks # Frameworks will be needed at link time
370 frameworks # Frameworks will be needed at link time
344 # Not sure why pkgconfig needs to be propagatedBuildInputs but
371 # Not sure why pkgconfig needs to be propagatedBuildInputs but
345 # for gi-gtk-hs it seems to help.
372 # for gi-gtk-hs it seems to help.
346− ++ builtins.concatLists pkgconfig;
373+ ++ builtins.concatLists pkgconfig
374+ ++ lib.optionals (stdenv.hostPlatform.isWindows)
375+ (lib.flatten component.libs
376+ ++ map haskellLib.dependToLib component.depends);
378+ buildInputs = lib.optionals (!stdenv.hostPlatform.isWindows)
348− buildInputs = component.libs
379+ (lib.flatten component.libs
349− ++ map haskellLib.dependToLib component.depends;
380+ ++ map haskellLib.dependToLib component.depends);
351 nativeBuildInputs =
382 nativeBuildInputs =
352 [shellWrappers buildPackages.removeReferencesTo]
383 [shellWrappers buildPackages.removeReferencesTo]
@@ -380,12 +411,36 @@ let
380 runHook postConfigure
411 runHook postConfigure
383− buildPhase = ''
414+ buildPhase =
415+ # It seems that by the time the iserv wrapper specifiec by `--ghc-option=-pgmi` runs
416+ # all the array environment variables are removed from the environment. To get a list
417+ # of all the locations a DLLs might be present we need access to pkgsHostTarget.
418+ # Adding a string version of the list array of nix store paths allows us to get that
419+ # list when we need it.
420+ (lib.optionalString stdenv.hostPlatform.isWindows ''
421+ export pkgsHostTargetAsString="''${pkgsHostTarget[@]}"
423+ # The following could be refactored but would lead to many rebuilds
425+ # In case of content addressed components we need avoid parallel building (passing -j1)
426+ # in order to have a deterministic output and therefore avoid potential situations
427+ # where the binary cache becomes useless
428+ # See also https://gitlab.haskell.org/ghc/ghc/-/issues/12935
429+ (if contentAddressed then ''
384− runHook preBuild
430+ runHook preBuild
431+ $SETUP_HS build ${haskellLib.componentTarget componentId} -j1 ${lib.concatStringsSep " " setupBuildFlags}
433+ '' else if stdenv.hostPlatform.isGhcjs then ''
385− # https://gitlab.haskell.org/ghc/ghc/issues/9221
435+ # https://gitlab.haskell.org/ghc/ghc/issues/9221
436+ $SETUP_HS build ${haskellLib.componentTarget componentId} ${lib.concatStringsSep " " setupBuildFlags}
440+ # https://gitlab.haskell.org/ghc/ghc/issues/9221
386− $SETUP_HS build ${haskellLib.componentTarget componentId} -j$(($NIX_BUILD_CORES > 4 ? 4 : $NIX_BUILD_CORES)) ${lib.concatStringsSep " " setupBuildFlags}
441+ $SETUP_HS build ${haskellLib.componentTarget componentId} -j$(($NIX_BUILD_CORES > 4 ? 4 : $NIX_BUILD_CORES)) ${lib.concatStringsSep " " setupBuildFlags}
387− runHook postBuild
442+ runHook postBuild
390 # Note: Cabal does *not* copy test executables during the `install` phase.
445 # Note: Cabal does *not* copy test executables during the `install` phase.
@@ -457,7 +512,7 @@ let
457 if [ -f ${testExecutable} ]; then
512 if [ -f ${testExecutable} ]; then
458 mkdir -p $(dirname $out/bin/${exeName})
513 mkdir -p $(dirname $out/bin/${exeName})
459 ${if stdenv.hostPlatform.isGhcjs then ''
514 ${if stdenv.hostPlatform.isGhcjs then ''
460− cat <(echo \#!${lib.getBin buildPackages.nodejs}/bin/node) ${testExecutable} >| $out/bin/${exeName}
515+ cat <(echo \#!${lib.getBin buildPackages.nodejs-12_x}/bin/node) ${testExecutable} >| $out/bin/${exeName}
461 chmod +x $out/bin/${exeName}
516 chmod +x $out/bin/${exeName}
462 '' else ''
517 '' else ''
463 cp -r ${testExecutable} $(dirname $out/bin/${exeName})
518 cp -r ${testExecutable} $(dirname $out/bin/${exeName})
@@ -465,7 +520,9 @@ let
467 # In case `setup copy` did not create this
522 # In case `setup copy` did not create this
468− + (lib.optionalString enableSeparateDataOutput "mkdir -p $data")
523+ + (lib.optionalString enableSeparateDataOutput ''
469 + (lib.optionalString (stdenv.hostPlatform.isWindows && (haskellLib.mayHaveExecutable componentId)) (''
526 + (lib.optionalString (stdenv.hostPlatform.isWindows && (haskellLib.mayHaveExecutable componentId)) (''
470 echo "Symlink libffi and gmp .dlls ..."
527 echo "Symlink libffi and gmp .dlls ..."
471 for p in ${lib.concatStringsSep " " [ libffi gmp ]}; do
528 for p in ${lib.concatStringsSep " " [ libffi gmp ]}; do
@@ -473,14 +530,10 @@ let
475 # symlink all .dlls into the local directory.
532 # symlink all .dlls into the local directory.
476− # we ask ghc-pkg for *all* dynamic-library-dirs and then iterate over the unique set
477− # to symlink over dlls as needed.
479− echo "Symlink library dependencies..."
534+ for p in $pkgsHostTargetAsString; do
480− for libdir in $(${stdenv.hostPlatform.config}-ghc-pkg field "*" dynamic-library-dirs --simple-output|xargs|sed 's/ /\n/g'|sort -u); do
535+ find "$p" -iname '*.dll' -exec ln -s {} $out/bin \;
481− if [ -d "$libdir" ]; then
482− find "$libdir" -iname '*.dll' -exec ln -s {} $out/bin \;
536+ find "$p" -iname '*.dll.a' -exec ln -s {} $out/bin \;
486 + (lib.optionalString doCoverage ''
539 + (lib.optionalString doCoverage ''
@@ -515,6 +568,16 @@ let
515 echo The test ${package.identifier.name}.components.tests.${componentId.cname} was built. To run the test build ${package.identifier.name}.checks.${componentId.cname}.
568 echo The test ${package.identifier.name}.components.tests.${componentId.cname} was built. To run the test build ${package.identifier.name}.checks.${componentId.cname}.
571+ doInstallCheck = true;
572+ installCheckPhase = lib.optionalString (haskellLib.isLibrary componentId) ''
573+ if test -n "$(shopt -s nullglob; echo $out/package.conf.d/${name}-*.conf)"; then
574+ echo $out/package.conf.d/${name}-*.conf " is present"
576+ echo "ERROR: $out/package.conf.d/${name}-*.conf was not created"
518 shellHook = ''
581 shellHook = ''
519 export PATH="${shellWrappers}/bin:$PATH"
582 export PATH="${shellWrappers}/bin:$PATH"
520 ${shellHookApplied}
583 ${shellHookApplied}
builder/default.nix+20−13
@@ -1,4 +1,4 @@
1−{ pkgs, buildPackages, stdenv, lib, haskellLib, ghc, compiler-nix-name, fetchurl, pkgconfig, nonReinstallablePkgs, hsPkgs, compiler }:
1+{ pkgs, buildPackages, evalPackages, stdenv, lib, haskellLib, ghc, compiler-nix-name, fetchurl, pkgconfig, nonReinstallablePkgs, hsPkgs, compiler }:
4 # Builds a single component of a package.
4 # Builds a single component of a package.
@@ -17,8 +17,8 @@ let
17 # in the native case, it would be the same in the cross case however
17 # in the native case, it would be the same in the cross case however
18 # we *really* want to build the Setup.hs on the build machine and not
18 # we *really* want to build the Setup.hs on the build machine and not
19 # have the stdenv confuse it with the target/host env.
19 # have the stdenv confuse it with the target/host env.
20− inherit (buildPackages) stdenv;
20+ inherit (buildPackages) stdenv pkgconfig;
21− inherit buildPackages pkgconfig;
21+ inherit buildPackages;
22 inherit haskellLib nonReinstallablePkgs makeSetupConfigFiles;
22 inherit haskellLib nonReinstallablePkgs makeSetupConfigFiles;
@@ -45,22 +45,29 @@ let
46 hoogleLocal = let
46 hoogleLocal = let
47 nixpkgsHoogle = import (pkgs.path + /pkgs/development/haskell-modules/hoogle.nix);
47 nixpkgsHoogle = import (pkgs.path + /pkgs/development/haskell-modules/hoogle.nix);
48− in { packages ? [], hoogle ? pkgs.buildPackages.haskell-nix.tool compiler.nix-name "hoogle" {
48+ in { packages ? [], hoogle ? pkgs.buildPackages.haskell-nix.tool "ghc8107" "hoogle" {
49+ inherit evalPackages;
49− version = "5.0.17.15";
50+ version = "5.0.18.3";
50 index-state = pkgs.haskell-nix.internalHackageIndexState;
51 index-state = pkgs.haskell-nix.internalHackageIndexState;
53− haskellLib.weakCallPackage pkgs nixpkgsHoogle {
54+ let
54− # For musl we can use haddock from the buildGHC
56+ # For musl we can use haddock from the buildGHC
55− ghc = if stdenv.hostPlatform.isLinux && stdenv.targetPlatform.isMusl && !haskellLib.isNativeMusl
57+ ghc = if stdenv.hostPlatform.isLinux && stdenv.targetPlatform.isMusl && !haskellLib.isNativeMusl
56− then ghc.buildGHC
58+ then ghc.buildGHC
57− else ghc;
59+ else ghc;
58− inherit packages hoogle;
60+ inherit packages hoogle;
62+ in if lib.versionAtLeast lib.trivial.release "22.05"
63+ then haskellLib.weakCallPackage pkgs nixpkgsHoogle {
64+ inherit haskellPackages;
66+ else haskellLib.weakCallPackage pkgs nixpkgsHoogle haskellPackages;
61 # Same as haskellPackages.shellFor in nixpkgs.
68 # Same as haskellPackages.shellFor in nixpkgs.
62 shellFor = haskellLib.weakCallPackage pkgs ./shell-for.nix {
69 shellFor = haskellLib.weakCallPackage pkgs ./shell-for.nix {
63− inherit hsPkgs ghcForComponent makeConfigFiles hoogleLocal haskellLib buildPackages compiler;
70+ inherit hsPkgs ghcForComponent makeConfigFiles hoogleLocal haskellLib buildPackages evalPackages compiler;
64 inherit (buildPackages) glibcLocales;
71 inherit (buildPackages) glibcLocales;
builder/ghc-for-component-wrapper.nix+60−15
@@ -13,6 +13,7 @@
13, configFiles # The component's "config" derivation
13, configFiles # The component's "config" derivation
14, postInstall ? ""
14, postInstall ? ""
15, enableDWARF
15, enableDWARF
@@ -37,31 +38,70 @@ in runCommand "${componentName}-${ghc.name}-env" {
38 . ${makeWrapper}/nix-support/setup-hook
39 . ${makeWrapper}/nix-support/setup-hook
40− # Start with a ghc...
42+ # Start with a ghc and remove all of the package directories
41 mkdir -p $out/bin
44 mkdir -p $out/bin
42 ${lndir}/bin/lndir -silent ${ghc} $out
45 ${lndir}/bin/lndir -silent ${ghc} $out
43− # ... remove all of the package directories
44 rm -rf ${libDir}/*/
46 rm -rf ${libDir}/*/
45− # ... but retain the lib/ghc/bin directory. This contains `unlit' and friends.
48+ # ... but retain the lib/ghc/bin directory. This contains `unlit' and friends.
46 ln -s ${ghc}/lib/${ghcCommand}-${ghc.version}/bin ${libDir}
50 ln -s ${ghc}/lib/${ghcCommand}-${ghc.version}/bin ${libDir}
47− # ... and the ghcjs shim's if they are available ...
52+ # ... and the ghcjs shim's if they are available ...
48 if [ -d ${ghc}/lib/${ghcCommand}-${ghc.version}/shims ]; then
54 if [ -d ${ghc}/lib/${ghcCommand}-${ghc.version}/shims ]; then
49 ln -s ${ghc}/lib/${ghcCommand}-${ghc.version}/shims ${libDir}
55 ln -s ${ghc}/lib/${ghcCommand}-${ghc.version}/shims ${libDir}
51− # ... and node modules ...
58+ # ... and node modules ...
52 if [ -d ${ghc}/lib/${ghcCommand}-${ghc.version}/ghcjs-node ]; then
60 if [ -d ${ghc}/lib/${ghcCommand}-${ghc.version}/ghcjs-node ]; then
53 ln -s ${ghc}/lib/${ghcCommand}-${ghc.version}/ghcjs-node ${libDir}
61 ln -s ${ghc}/lib/${ghcCommand}-${ghc.version}/ghcjs-node ${libDir}
55− # Replace the package database with the one from target package config.
64+ # Replace the package database with the one from target package config.
56 ln -s ${configFiles}/${packageCfgDir} $out/${packageCfgDir}
66 ln -s ${configFiles}/${packageCfgDir} $out/${packageCfgDir}
58− # now the tricky bit. For GHCJS (to make plugins work), we need a special
68+ ''
59− # file called ghc_libdir. That points to the build ghc's lib.
69+ # Set the GHC_PLUGINS environment variable according to the plugins for the component.
60− echo "${ghc.buildGHC or ghc}/lib/${(ghc.buildGHC or ghc).name}" > "${libDir}/ghc_libdir"
70+ # GHC will automatically load the relevant symbols from the given libraries and
71+ # initialize them with the given arguments.
73+ # GHC_PLUGINS is a `read`able [(FilePath,String,String,[String])], where the
74+ # first component is a path to the shared library, the second is the package ID,
75+ # the third is the module name, and the fourth is the plugin arguments.
79+ ${builtins.concatStringsSep "\n" (map (plugin: ''
80+ id=$(${ghc}/bin/ghc-pkg --package-db ${plugin.library}/package.conf.d field ${plugin.library.package.identifier.name} id --simple-output)
81+ lib_dir=$(${ghc}/bin/ghc-pkg --package-db ${plugin.library}/package.conf.d field ${plugin.library.package.identifier.name} dynamic-library-dirs --simple-output)
82+ lib_base=$(${ghc}/bin/ghc-pkg --package-db ${plugin.library}/package.conf.d field ${plugin.library.package.identifier.name} hs-libraries --simple-output)
83+ lib="$(echo ''${lib_dir}/lib''${lib_base}*)"
84+ GHC_PLUGINS="''${GHC_PLUGINS}''${LIST_PREFIX}(\"''${lib}\",\"''${id}\",\"${plugin.moduleName}\",["
86+ ${builtins.concatStringsSep "\n" (map (arg: ''
87+ GHC_PLUGINS="''${GHC_PLUGINS}''${LIST_PREFIX}\"${arg}\""
90+ GHC_PLUGINS="''${GHC_PLUGINS}])"
93+ GHC_PLUGINS="''${GHC_PLUGINS}]"
62− # Wrap compiler executables with correct env variables.
95+ ''
63− # The NIX_ variables are used by the patched Paths_ghc module.
96+ # now the tricky bit. For GHCJS (to make plugins work), we need a special
97+ # file called ghc_libdir. That points to the build ghc's lib.
99+ echo "${ghc.buildGHC or ghc}/lib/${(ghc.buildGHC or ghc).name}" > "${libDir}/ghc_libdir"
102+ # Wrap compiler executables with correct env variables.
103+ # The NIX_ variables are used by the patched Paths_ghc module.
65 for prg in ${ghcCommand} ${ghcCommand}i ${ghcCommand}-${ghc.version} ${ghcCommand}i-${ghc.version}; do
105 for prg in ${ghcCommand} ${ghcCommand}i ${ghcCommand}-${ghc.version} ${ghcCommand}i-${ghc.version}; do
66 if [[ -x "${ghc}/bin/$prg" ]]; then
106 if [[ -x "${ghc}/bin/$prg" ]]; then
67 rm -f $out/bin/$prg
107 rm -f $out/bin/$prg
@@ -70,6 +110,7 @@ in runCommand "${componentName}-${ghc.name}-env" {
70 --set "NIX_${ghcCommandCaps}" "$out/bin/${ghcCommand}" \
110 --set "NIX_${ghcCommandCaps}" "$out/bin/${ghcCommand}" \
71 --set "NIX_${ghcCommandCaps}PKG" "$out/bin/${ghcCommand}-pkg" \
111 --set "NIX_${ghcCommandCaps}PKG" "$out/bin/${ghcCommand}-pkg" \
72 --set "NIX_${ghcCommandCaps}_DOCDIR" "${docDir}" \
112 --set "NIX_${ghcCommandCaps}_DOCDIR" "${docDir}" \
113+ --set "GHC_PLUGINS" "$GHC_PLUGINS" \
73 --set "NIX_${ghcCommandCaps}_LIBDIR" "${libDir}"
114 --set "NIX_${ghcCommandCaps}_LIBDIR" "${libDir}"
@@ -82,11 +123,14 @@ in runCommand "${componentName}-${ghc.name}-env" {
82 --set "NIX_${ghcCommandCaps}" "$out/bin/${ghcCommand}" \
123 --set "NIX_${ghcCommandCaps}" "$out/bin/${ghcCommand}" \
83 --set "NIX_${ghcCommandCaps}PKG" "$out/bin/${ghcCommand}-pkg" \
124 --set "NIX_${ghcCommandCaps}PKG" "$out/bin/${ghcCommand}-pkg" \
84 --set "NIX_${ghcCommandCaps}_DOCDIR" "${docDir}" \
125 --set "NIX_${ghcCommandCaps}_DOCDIR" "${docDir}" \
126+ --set "GHC_PLUGINS" "$GHC_PLUGINS" \
85 --set "NIX_${ghcCommandCaps}_LIBDIR" "${libDir}"
127 --set "NIX_${ghcCommandCaps}_LIBDIR" "${libDir}"
89− # Wrap haddock, if the base GHC provides it.
132+ # Wrap haddock, if the base GHC provides it.
90 if [[ -x "${haddock}/bin/haddock" ]]; then
134 if [[ -x "${haddock}/bin/haddock" ]]; then
91 rm -f $out/bin/haddock
135 rm -f $out/bin/haddock
92 makeWrapper ${haddock}/bin/haddock $out/bin/haddock \
136 makeWrapper ${haddock}/bin/haddock $out/bin/haddock \
@@ -94,9 +138,10 @@ in runCommand "${componentName}-${ghc.name}-env" {
94 --set "NIX_${ghcCommandCaps}_LIBDIR" "${libDir}"
138 --set "NIX_${ghcCommandCaps}_LIBDIR" "${libDir}"
97− # Point ghc-pkg to the package database of the component using the
142+ # Point ghc-pkg to the package database of the component using the
98− # --global-package-db flag.
143+ # --global-package-db flag.
100 for prg in ${ghcCommand}-pkg ${ghcCommand}-pkg-${ghc.version}; do
145 for prg in ${ghcCommand}-pkg ${ghcCommand}-pkg-${ghc.version}; do
101 if [[ -x "${ghc}/bin/$prg" ]]; then
146 if [[ -x "${ghc}/bin/$prg" ]]; then
102 rm -f $out/bin/$prg
147 rm -f $out/bin/$prg
builder/haddock-builder.nix+2
@@ -41,6 +41,7 @@ let
41 inherit (package) identifier;
41 inherit (package) identifier;
42 inherit component fullName flags needsProfiling;
42 inherit component fullName flags needsProfiling;
43 chooseDrv = p: p.haddock;
43 chooseDrv = p: p.haddock;
44+ inherit (componentDrv) enableDWARF;
46 finalConfigureFlags = lib.concatStringsSep " " (
47 finalConfigureFlags = lib.concatStringsSep " " (
@@ -55,6 +56,7 @@ let
55 componentName = fullName;
56 componentName = fullName;
56 configFiles = docsConfigFiles;
57 configFiles = docsConfigFiles;
57 inherit (componentDrv) enableDWARF;
58 inherit (componentDrv) enableDWARF;
59+ inherit (component) plugins;
60 drv = stdenv.mkDerivation (commonAttrs // {
62 drv = stdenv.mkDerivation (commonAttrs // {
builder/hspkg-builder.nix+35−22
@@ -23,38 +23,44 @@ assert (if ghc.isHaskellNixCompiler or false then true
23 + pkgs.lib.optionalString (name != null) (" for " + name)));
23 + pkgs.lib.optionalString (name != null) (" for " + name)));
26+ # Some packages bundled with GHC are not the same as they are in hackage.
28+ # These are problematic because the hackage versions will not install and are part of LTS.
29+ "ghc902/stm-2.5.0.0" = "/libraries/stm";
30+ "ghc902/filepath-1.4.2.1" = "/libraries/filepath";
31+ }."${compiler-nix-name}/${name}" or null;
32+ src = if bundledSrc == null then pkg.src else ghc.configured-src + bundledSrc;
26− cabalFile = if revision == null || revision == 0 then null else
33+ cabalFile = if revision == null || revision == 0 || bundledSrc != null then null else
27 fetchurl {
34 fetchurl {
28 name = "${name}-${toString revision}.cabal";
35 name = "${name}-${toString revision}.cabal";
29 url = "https://hackage.haskell.org/package/${name}/revision/${toString revision}.cabal";
36 url = "https://hackage.haskell.org/package/${name}/revision/${toString revision}.cabal";
30 sha256 = revisionSha256;
37 sha256 = revisionSha256;
33− defaultSetupSrc = builtins.toFile "Setup.hs" ''
40+ defaultSetupSrc = if stdenv.hostPlatform.isGhcjs then ./Setup.ghcjs.hs else ./Setup.hs;
34− import Distribution.Simple
38− # Get the Cabal lib used to build `cabal-install`.
42+ # This is the `Cabal` library that was built for `cabal-install` to use.
39− # To avoid infinite recursion we have to leave this out for packages
43+ # It makes sense to use this version (when possible) because it will match the behavior of
40− # needed to build `cabal-install`.
44+ # building with `cabal-install` (including fixes that may not be in the
41− # We always do this for ghcjs as the patched version of Cabal is needed.
45+ # version of Cabal bundled with GHC).
42− cabalLibDepends = lib.optional (
46+ cabalFromCabalInstall = buildPackages.haskell-nix.cabal-install-unchecked.${compiler-nix-name}.project.hsPkgs.Cabal.components.library;
48+ # Check there is no chance we are building `cabalFromCabalInstall`. Using `cabalFromCabalInstall`
49+ # to build itseld would cause infinite recursion.
50+ useCabalFromCabalInstall =
51+ # `cabalFromCabalInstall` is not cross compiled
43− stdenv.hostPlatform.isGhcjs || (
52+ stdenv.buildPlatform != stdenv.hostPlatform
44− builtins.elem compiler-nix-name["ghc865" "ghc884"]
53+ ||
45− &&
54+ # These are the dependencies of `Cabal`
46 !builtins.elem package.identifier.name
55 !builtins.elem package.identifier.name
47 ["nix-tools" "alex" "happy" "hscolour" "Cabal" "bytestring" "aeson" "time"
56 ["nix-tools" "alex" "happy" "hscolour" "Cabal" "bytestring" "aeson" "time"
48 "filepath" "base-compat-batteries" "base-compat" "unix" "directory" "transformers"
57 "filepath" "base-compat-batteries" "base-compat" "unix" "directory" "transformers"
49− "containers" "binary" "mtl" "text" "process" "parsec"]
58+ "containers" "binary" "mtl" "text" "process" "parsec"];
52− buildPackages.haskell-nix.cabal-install-unchecked.${compiler-nix-name}.project.hsPkgs.Cabal.components.library;
54− defaultSetup = setup-builder {
60+ defaultSetup = setup-builder ({
55 name = "${ghc.targetPrefix}default-Setup";
61 name = "${ghc.targetPrefix}default-Setup";
56 component = {
62 component = {
57− depends = config.setup-depends ++ cabalLibDepends;
63+ depends = config.setup-depends ++ lib.optional useCabalFromCabalInstall cabalFromCabalInstall;
58 libs = [];
64 libs = [];
59 frameworks = [];
65 frameworks = [];
60 doExactConfig = false;
66 doExactConfig = false;
@@ -82,12 +88,19 @@ let
82 synopsis = null;
88 synopsis = null;
83 license = "MIT";
89 license = "MIT";
85− src = null; cleanSrc = buildPackages.runCommand "default-Setup-src" {} ''
92+ cleanSrc = buildPackages.runCommand "default-Setup-src" {} ''
86 mkdir $out
93 mkdir $out
87 cat ${defaultSetupSrc} > $out/Setup.hs
94 cat ${defaultSetupSrc} > $out/Setup.hs
89 inherit defaultSetupSrc;
96 inherit defaultSetupSrc;
97+ } // lib.optionalAttrs useCabalFromCabalInstall {
98+ # This is needed so that we don't get duplicate packages when we
99+ # add a custom Cabal package to the dependencies. That way custom
100+ # setups won't complain about e.g. binary from the Cabal dependencies
101+ # and binary from the global package-db.
102+ nonReinstallablePkgs = [];
92 # buildPackages.runCommand "default-Setup" { nativeBuildInputs = [(ghc.passthru.buildGHC or ghc)]; } ''
105 # buildPackages.runCommand "default-Setup" { nativeBuildInputs = [(ghc.passthru.buildGHC or ghc)]; } ''
93 # cat ${defaultSetupSrc} > Setup.hs
106 # cat ${defaultSetupSrc} > Setup.hs
@@ -118,7 +131,7 @@ in rec {
118 checks = pkgs.recurseIntoAttrs (builtins.mapAttrs
131 checks = pkgs.recurseIntoAttrs (builtins.mapAttrs
119 (_: d: haskellLib.check d)
132 (_: d: haskellLib.check d)
120 (lib.filterAttrs (_: d: d.config.doCheck) components.tests));
133 (lib.filterAttrs (_: d: d.config.doCheck) components.tests));
121− inherit (package) identifier detailLevel isLocal isProject;
134+ inherit (package) identifier detailLevel isLocal isProject buildType;
122 inherit setup cabalFile;
135 inherit setup cabalFile;
123 isHaskell = true;
136 isHaskell = true;
124 inherit src;
137 inherit src;
builder/make-config-files.nix+16−8
@@ -1,8 +1,12 @@
1{ stdenv, lib, haskellLib, ghc, nonReinstallablePkgs, runCommand, writeText, writeScript }@defaults:
1{ stdenv, lib, haskellLib, ghc, nonReinstallablePkgs, runCommand, writeText, writeScript }@defaults:
3−{ identifier, component, fullName, flags ? {}, needsProfiling ? false, enableDWARF ? false, chooseDrv ? drv: drv }:
3+{ identifier, component, fullName, flags ? {}, needsProfiling ? false, enableDWARF ? false, chooseDrv ? drv: drv, nonReinstallablePkgs ? defaults.nonReinstallablePkgs }:
6+ # Sort and remove duplicates from nonReinstallablePkgs.
7+ # That way changes to the order of nonReinstallablePkgs does not require rebuilds.
8+ nonReinstallablePkgs' = __attrNames (lib.genAttrs nonReinstallablePkgs (x: x));
6 ghc = if enableDWARF then defaults.ghc.dwarf else defaults.ghc;
10 ghc = if enableDWARF then defaults.ghc.dwarf else defaults.ghc;
8 flagsAndConfig = field: xs: lib.optionalString (xs != []) ''
12 flagsAndConfig = field: xs: lib.optionalString (xs != []) ''
@@ -81,16 +85,20 @@ let
81 ${target-pkg} init $out/${packageCfgDir}
85 ${target-pkg} init $out/${packageCfgDir}
83 ${lib.concatStringsSep "\n" (lib.mapAttrsToList flagsAndConfig {
87 ${lib.concatStringsSep "\n" (lib.mapAttrsToList flagsAndConfig {
84− "extra-lib-dirs" = map (p: "${lib.getLib p}/lib") component.libs
88+ "extra-lib-dirs" = map (p: "${lib.getLib p}/lib") (lib.flatten component.libs)
89+ # On windows also include `bin` directories that may contain DLLs
85− ++ lib.optionals (stdenv.hostPlatform.isWindows) (map (p: "${lib.getBin p}/bin") component.libs);
90+ ++ lib.optionals (stdenv.hostPlatform.isWindows)
91+ (map (p: "${lib.getBin p}/bin")
92+ (lib.flatten component.libs ++ lib.concatLists component.pkgconfig));
86− "extra-include-dirs" = map (p: "${lib.getDev p}/include") component.libs;
93+ "extra-include-dirs" = map (p: "${lib.getDev p}/include") (lib.flatten component.libs);
94+ "extra-framework-dirs" = lib.optionals (stdenv.hostPlatform.isDarwin)
87− "extra-framework-dirs" = map (p: "${p}/Library/Frameworks") component.frameworks;
95+ (map (p: "${p}/Library/Frameworks") component.frameworks);
90 ghc=${ghc}
98 ghc=${ghc}
91 ${ # Copy over the nonReinstallablePkgs from the global package db.
99 ${ # Copy over the nonReinstallablePkgs from the global package db.
93− for p in ${lib.concatStringsSep " " nonReinstallablePkgs}; do
101+ for p in ${lib.concatStringsSep " " nonReinstallablePkgs'}; do
94 find $ghc/lib/${ghc.name}/package.conf.d -name $p'*.conf' -exec cp -f {} $out/${packageCfgDir} \;
102 find $ghc/lib/${ghc.name}/package.conf.d -name $p'*.conf' -exec cp -f {} $out/${packageCfgDir} \;
@@ -149,13 +157,13 @@ let
149 cat $p/exactDep/cabal.config >> $out/cabal.config
157 cat $p/exactDep/cabal.config >> $out/cabal.config
152− for p in ${lib.concatStringsSep " " (lib.remove "ghc" nonReinstallablePkgs)}; do
160+ for p in ${lib.concatStringsSep " " (lib.remove "ghc" nonReinstallablePkgs')}; do
153 if [ -e $ghc/envDeps/$p ]; then
161 if [ -e $ghc/envDeps/$p ]; then
154 cat $ghc/envDeps/$p >> $out/ghc-environment
162 cat $ghc/envDeps/$p >> $out/ghc-environment
157 '' + lib.optionalString component.doExactConfig ''
165 '' + lib.optionalString component.doExactConfig ''
158− for p in ${lib.concatStringsSep " " nonReinstallablePkgs}; do
166+ for p in ${lib.concatStringsSep " " nonReinstallablePkgs'}; do
159 if [ -e $ghc/exactDeps/$p ]; then
167 if [ -e $ghc/exactDeps/$p ]; then
160 cat $ghc/exactDeps/$p/configure-flags >> $out/configure-flags
168 cat $ghc/exactDeps/$p/configure-flags >> $out/configure-flags
161 cat $ghc/exactDeps/$p/cabal.config >> $out/cabal.config
169 cat $ghc/exactDeps/$p/cabal.config >> $out/cabal.config
builder/setup-builder.nix+11−6
@@ -1,4 +1,4 @@
1−{ pkgs, stdenv, lib, buildPackages, haskellLib, ghc, nonReinstallablePkgs, hsPkgs, makeSetupConfigFiles, pkgconfig }:
1+{ pkgs, stdenv, lib, buildPackages, haskellLib, ghc, nonReinstallablePkgs, hsPkgs, makeSetupConfigFiles, pkgconfig }@defaults:
4{ component, package, name, src, enableDWARF ? false, flags ? {}, revision ? null, patches ? [], defaultSetupSrc
4{ component, package, name, src, enableDWARF ? false, flags ? {}, revision ? null, patches ? [], defaultSetupSrc
@@ -7,9 +7,14 @@ let self =
7, preBuild ? component.preBuild , postBuild ? component.postBuild
7, preBuild ? component.preBuild , postBuild ? component.postBuild
8, preInstall ? component.preInstall , postInstall ? component.postInstall
8, preInstall ? component.preInstall , postInstall ? component.postInstall
9, cleanSrc ? haskellLib.cleanCabalComponent package component "setup" src
9, cleanSrc ? haskellLib.cleanCabalComponent package component "setup" src
10+, nonReinstallablePkgs ? defaults.nonReinstallablePkgs
11+, smallAddressSpace ? false
15+ ghc = (if enableDWARF then (x: x.dwarf) else (x: x)) (
16+ (if smallAddressSpace then (x: x.smallAddressSpace) else (x: x)) defaults.ghc);
13 cleanSrc' = haskellLib.rootAndSubDir cleanSrc;
18 cleanSrc' = haskellLib.rootAndSubDir cleanSrc;
15 fullName = "${name}-setup";
20 fullName = "${name}-setup";
@@ -18,7 +23,7 @@ let
19 configFiles = makeSetupConfigFiles {
24 configFiles = makeSetupConfigFiles {
20 inherit (package) identifier;
25 inherit (package) identifier;
21− inherit fullName flags component enableDWARF;
26+ inherit fullName flags component enableDWARF nonReinstallablePkgs;
23 hooks = haskellLib.optionalHooks {
28 hooks = haskellLib.optionalHooks {
@@ -52,6 +57,7 @@ let
52 cleanSrc = cleanSrc';
57 cleanSrc = cleanSrc';
53 inherit configFiles;
58 inherit configFiles;
54 dwarf = self (drvArgs // { enableDWARF = true; });
59 dwarf = self (drvArgs // { enableDWARF = true; });
60+ smallAddressSpace = self (drvArgs // { smallAddressSpace = true; });
@@ -70,13 +76,12 @@ let
70 for f in Setup.hs Setup.lhs; do
76 for f in Setup.hs Setup.lhs; do
71 if [ -f $f ]; then
77 if [ -f $f ]; then
72 echo Compiling package $f
78 echo Compiling package $f
73− ghc $f -threaded '' + (if includeGhcPackage then "-package ghc " else "")
79+ ghc $f -threaded ${if includeGhcPackage then "-package ghc " else ""
74− + ''-package-db ${configFiles}/${configFiles.packageCfgDir} --make -o ./Setup
80+ }-package-db ${configFiles}/${configFiles.packageCfgDir} --make -o ./Setup
78 [ -f ./Setup ] || (echo Failed to build Setup && exit 1)
83 [ -f ./Setup ] || (echo Failed to build Setup && exit 1)
79− runHook preBuild
84+ runHook postBuild
82 installPhase = ''
87 installPhase = ''
builder/shell-for.nix+23−12
@@ -1,4 +1,4 @@
1−{ lib, stdenv, mkShell, glibcLocales, pkgconfig, ghcForComponent, makeConfigFiles, hsPkgs, hoogleLocal, haskellLib, buildPackages, compiler }:
1+{ lib, stdenv, mkShell, glibcLocales, pkgconfig, ghcForComponent, makeConfigFiles, hsPkgs, hoogleLocal, haskellLib, buildPackages, evalPackages, compiler }:
3{ # `packages` function selects packages that will be worked on in the shell itself.
3{ # `packages` function selects packages that will be worked on in the shell itself.
4 # These packages will not be built by `shellFor`, but their
4 # These packages will not be built by `shellFor`, but their
@@ -13,6 +13,7 @@
13 # Additional packages to be added unconditionally
13 # Additional packages to be added unconditionally
14, additional ? _: []
14, additional ? _: []
15, withHoogle ? true
15, withHoogle ? true
16+, withHaddock ? withHoogle
16, exactDeps ? false
17, exactDeps ? false
17, tools ? {}
18, tools ? {}
18, packageSetupDeps ? true
19, packageSetupDeps ? true
@@ -55,23 +56,27 @@ let
55 (builtins.map (x: lib.nameValuePair (x.name) x)
56 (builtins.map (x: lib.nameValuePair (x.name) x)
56 (haskellLib.flatLibDepends {depends = directlySelectedComponents;}));
57 (haskellLib.flatLibDepends {depends = directlySelectedComponents;}));
59+ isSelectedComponent =
60+ comp: selectedComponentsBitmap."${((haskellLib.dependToLib comp).name or null)}" or false;
58 selectedComponentsBitmap =
61 selectedComponentsBitmap =
59 lib.mapAttrs
62 lib.mapAttrs
60− (_: x: (builtins.any
63+ (_: x: (builtins.any isSelectedComponent x.config.depends))
61− (dep: selectedComponentsBitmap."${(haskellLib.dependToLib dep).name}") x.config.depends))
62 transitiveDependenciesComponents
64 transitiveDependenciesComponents
63 // builtins.listToAttrs (map (x: lib.nameValuePair x.name true) directlySelectedComponents); # base case
65 // builtins.listToAttrs (map (x: lib.nameValuePair x.name true) directlySelectedComponents); # base case
65 selectedComponents =
67 selectedComponents =
66− lib.filter (x: selectedComponentsBitmap."${x.name}") (lib.attrValues transitiveDependenciesComponents);
68+ lib.filter isSelectedComponent (lib.attrValues transitiveDependenciesComponents);
68 # Given a list of `depends`, removes those which are selected components
70 # Given a list of `depends`, removes those which are selected components
69 removeSelectedInputs =
71 removeSelectedInputs =
70− lib.filter (input: !(selectedComponentsBitmap."${((haskellLib.dependToLib input).name or null)}" or false));
72+ lib.filter (input: !(isSelectedComponent input));
72− # The configs of all the selected components
74+ # The configs of all the selected components.
75+ # This excludes the `setup` dependencies of `Simple` packages, because
76+ # `cabal-install` does not build a `Setup` executable for `Simple` packages.
73 selectedConfigs = map (c: c.config) selectedComponents
77 selectedConfigs = map (c: c.config) selectedComponents
74− ++ lib.optionals packageSetupDeps (map (p: p.setup.config) selectedPackages);
78+ ++ lib.optionals packageSetupDeps (map (p: p.setup.config)
79+ (lib.filter (p: p.buildType != "Simple") selectedPackages));
76 name = if lib.length selectedPackages == 1
81 name = if lib.length selectedPackages == 1
77 then "ghc-shell-for-${(lib.head selectedPackages).identifier.name}"
82 then "ghc-shell-for-${(lib.head selectedPackages).identifier.name}"
@@ -94,13 +99,15 @@ let
94 component = {
99 component = {
95 depends = packageInputs;
100 depends = packageInputs;
96 libs = [];
101 libs = [];
97 frameworks = [];
103 frameworks = [];
98 doExactConfig = false;
104 doExactConfig = false;
100 configFiles = makeConfigFiles {
106 configFiles = makeConfigFiles {
101 fullName = args.name or name;
107 fullName = args.name or name;
102 identifier.name = name;
108 identifier.name = name;
103− inherit component;
109+ inherit component enableDWARF;
110+ chooseDrv = p: if withHaddock && p ? haddock then p.haddock else p;
105 ghcEnv = ghcForComponent {
112 ghcEnv = ghcForComponent {
106 inherit configFiles;
113 inherit configFiles;
@@ -109,6 +116,7 @@ let
109 ln -s ${hoogleIndex}/bin/hoogle $out/bin
116 ln -s ${hoogleIndex}/bin/hoogle $out/bin
111 inherit enableDWARF;
118 inherit enableDWARF;
114 hoogleIndex = let
122 hoogleIndex = let
@@ -125,7 +133,12 @@ let
125 # inherit (hsPkgs) hoogle;
133 # inherit (hsPkgs) hoogle;
127 lib.optionalAttrs (args ? tools && args.tools ? hoogle) {
135 lib.optionalAttrs (args ? tools && args.tools ? hoogle) {
128− hoogle = buildPackages.haskell-nix.tool compiler.nix-name "hoogle" args.tools.hoogle;
136+ hoogle = buildPackages.haskell-nix.hackage-tool (
137+ haskellLib.versionOrModToMods args.tools.hoogle ++ [{
139+ compiler-nix-name = compiler.nix-name;
140+ inherit evalPackages;
@@ -139,7 +152,7 @@ in
139 nativeBuildInputs = [ ghcEnv ]
152 nativeBuildInputs = [ ghcEnv ]
140 ++ nativeBuildInputs
153 ++ nativeBuildInputs
141 ++ mkDrvArgs.nativeBuildInputs or []
154 ++ mkDrvArgs.nativeBuildInputs or []
142− ++ lib.attrValues (buildPackages.haskell-nix.tools compiler.nix-name tools)
155+ ++ lib.attrValues (buildPackages.haskell-nix.tools' evalPackages compiler.nix-name tools)
143 # If this shell is a cross compilation shell include
156 # If this shell is a cross compilation shell include
144 # wrapper script for running cabal build with appropriate args.
157 # wrapper script for running cabal build with appropriate args.
145 # Includes `--with-compiler` in case the `cabal.project` file has `with-compiler:` in it.
158 # Includes `--with-compiler` in case the `cabal.project` file has `with-compiler:` in it.
@@ -162,8 +175,6 @@ in
162 echo "${"Shell for " + toString (builtins.map (p : p.identifier.name) selectedPackages)}"
175 echo "${"Shell for " + toString (builtins.map (p : p.identifier.name) selectedPackages)}"
163 echo $nativeBuildInputs $buildInputs > $out
176 echo $nativeBuildInputs $buildInputs > $out
165− LANG = "en_US.UTF-8";
166− LOCALE_ARCHIVE = lib.optionalString (stdenv.hostPlatform.libc == "glibc") "${glibcLocales}/lib/locale/locale-archive";
168 # This helps tools like `ghcide` (that use the ghc api) to find
179 # This helps tools like `ghcide` (that use the ghc api) to find
169 # the correct global package DB.
180 # the correct global package DB.
@@ -1,6 +1,58 @@
1This file contains a summary of changes to Haskell.nix and `nix-tools`
1This file contains a summary of changes to Haskell.nix and `nix-tools`
2that will impact users.
2that will impact users.
5+* Removed reliance on `builtins.currentSystem`. It was used it to provide
6+ `pkgs.evalPackages` via an overlay that it used to run derivations
7+ used in imports from derivation (IFDs).
9+ These derivations are now run on `buildPackages` by default.
11+ Passsing `evalPackages` to a project function will change where all the
12+ derivations used in IFDs are run for that project (including shell tools):
13+ evalPackages = import nixpkgs haskellNix.nixpkgsArgs;
15+ Passing `evalSystem` instead will use create a suitable `nixpkgs` using `pkgs.path`
17+ evalSystem = "x86_64-linux";
19+ evalSystem = builtins.currentSystem;
21+ The `haskellLib.cleanGit` function is also affected by this change. If you are cross
22+ compiling and using `cleanGit` you should probably do something like:
23+ pkgs = import nixpkgs haskellNix.nixpkgsArgs;
24+ evalPackages = import nixpkgs (haskellNix.nixpkgsArgs // { system = evalSystem; });
25+ p = pkgs.pkgsCross.mingwW64.haskell-nix.cabalProject {
26+ inherit evalPackages;
27+ src = evalPackages.haskell-nix.haskellLib.cleanGit { src = ./.; };
31+* Removed lookupSha256 argument from project functions.
32+ Pass a `sha256map` instead.
33+* Added better support for `repository` in `cabal.project`. These
34+ blocks should now work without the need for passing `extra-hackages` and
35+ `extra-hackage-tarballs`.
38+* Included dependencies of haskell.nix that were tracked in `nix/sources.json`
39+ as flake inputs (`flake.lock` replaces `nix/sources.json`).
40+* Uses `flake-compat` to continue to provide a compatible interface for non
44+* `source-repository-package` references in `cabal.project` files are now
45+ left as a `source-repository-package` when calculating the the `plan-nix` for
46+ `cabalProject` based functions.
47+ This makes haskell.nix match the behaviour of `cabal` better.
48+ Materialized files for projects that use `source-repository-package`
49+ references will need to be updated.
50+* Only planned components are included in a haskell.nix cabal project.
51+ If cabal solver does not include the component in the `plan.json` file it
52+ will not be present in `hsPkgs.pkg.components`.
53+* When the same package occurs more than once in a plan.json file
54+ the latest version is picked by haskell.nix.
4## Apr 8, 2021
56## Apr 8, 2021
5* Project arguments are now validated with the Nix module system.
57* Project arguments are now validated with the Nix module system.
6 If unexpected argments are passed to a project function this may now
58 If unexpected argments are passed to a project function this may now
@@ -1,8 +1,8 @@
2 # Generic nixpkgs, use *only* for lib functions that are stable across versions
2 # Generic nixpkgs, use *only* for lib functions that are stable across versions
3− pkgs = import (import ./nix/sources.nix).nixpkgs {};
3+ pkgs ? (import ./. {}).pkgs,
4− lib = pkgs.lib;
4+ lib ? pkgs.lib
6 inherit (import ./dimension.nix) dimension;
6 inherit (import ./dimension.nix) dimension;
8 # A filter for removing packages that aren't supported on the current platform
8 # A filter for removing packages that aren't supported on the current platform
@@ -4,17 +4,24 @@
4, ifdLevel ? 3
4, ifdLevel ? 3
5# Whether or not we are evaluating in restricted mode. This is true in Hydra, but not in Hercules.
5# Whether or not we are evaluating in restricted mode. This is true in Hydra, but not in Hercules.
6, restrictEval ? false
6, restrictEval ? false
7−, checkMaterialization ? false }:
7+, checkMaterialization ? false
8+, pkgs ? (import ./. {}).pkgs }:
9− inherit (import ./ci-lib.nix) dimension platformFilterGeneric filterAttrsOnlyRecursive;
10+ inherit (import ./ci-lib.nix { inherit pkgs; }) dimension platformFilterGeneric filterAttrsOnlyRecursive;
10− sources = import ./nix/sources.nix {};
11+ inherit (pkgs.haskell-nix) sources;
11 nixpkgsVersions = {
12 nixpkgsVersions = {
12− "R2009" = "nixpkgs-2009";
13+ "R2111" = "nixpkgs-2111";
13− "R2105" = "nixpkgs-2105";
14+ "R2205" = "nixpkgs-2205";
14 "unstable" = "nixpkgs-unstable";
15 "unstable" = "nixpkgs-unstable";
17+ haskellNix = import ./default.nix { inherit checkMaterialization; };
18+ nixpkgsArgs = haskellNix.nixpkgsArgs // {
19+ # Needed for dwarf tests
20+ config = haskellNix.nixpkgsArgs.config // {
21+ permittedInsecurePackages = ["libdwarf-20210528" "libdwarf-20181024" "dwarfdump-20181024"];
16 compilerNixNames = nixpkgsName: nixpkgs: builtins.mapAttrs (compiler-nix-name: runTests: {
24 compilerNixNames = nixpkgsName: nixpkgs: builtins.mapAttrs (compiler-nix-name: runTests: {
17− inherit (import ./default.nix { inherit checkMaterialization; }) nixpkgsArgs;
18 inherit runTests;
25 inherit runTests;
20 # GHC version to cache and whether to run the tests against them.
27 # GHC version to cache and whether to run the tests against them.
@@ -23,35 +30,46 @@
23 # cabal-install and nix-tools plans. When removing a ghc version
30 # cabal-install and nix-tools plans. When removing a ghc version
24 # from here (so that is no longer cached) also remove ./materialized/ghcXXX.
31 # from here (so that is no longer cached) also remove ./materialized/ghcXXX.
25 # Update supported-ghc-versions.md to reflect any changes made here.
32 # Update supported-ghc-versions.md to reflect any changes made here.
26− nixpkgs.lib.optionalAttrs (nixpkgsName == "R2009") {
33+ nixpkgs.lib.optionalAttrs (nixpkgsName == "R2111") {
27 ghc865 = false;
34 ghc865 = false;
28− ghc8105 = false;
35+ ghc8107 = true;
29− } // nixpkgs.lib.optionalAttrs (nixpkgsName == "R2105") {
36+ } // nixpkgs.lib.optionalAttrs (nixpkgsName == "R2205") {
30 ghc865 = false;
37 ghc865 = false;
31− ghc8105 = true;
38+ ghc8107 = true;
32 } // nixpkgs.lib.optionalAttrs (nixpkgsName == "unstable") {
39 } // nixpkgs.lib.optionalAttrs (nixpkgsName == "unstable") {
33 ghc865 = false;
40 ghc865 = false;
34 ghc884 = false; # Native version is used to boot 9.0.1
41 ghc884 = false; # Native version is used to boot 9.0.1
35− ghc8105 = true;
42+ ghc8107 = true;
36− ghc901 = true;
43+ ghc902 = true;
37− ghc810420210212 = false;
44+ ghc924 = true;
39− systems = nixpkgs: nixpkgs.lib.filterAttrs (_: v: builtins.elem v supportedSystems) {
46+ systems = nixpkgsName: nixpkgs: compiler-nix-name: nixpkgs.lib.genAttrs (
40− # I wanted to take these from 'lib.systems.examples', but apparently there isn't one for linux!
47+ nixpkgs.lib.filter (v:
41− linux = "x86_64-linux";
48+ # We have less x86_64-darwin build capacity so build fewer GhC versions
42− darwin = "x86_64-darwin";
49+ (v != "x86_64-darwin" || (
43− };
50+ !__elem compiler-nix-name ["ghc8104" "ghc810420210212" "ghc8105" "ghc8106" "ghc901" "ghc921" "ghc922"]))
52+ # aarch64-darwin requires ghc 8.10.7
53+ (v != "aarch64-darwin" || (
54+ !__elem compiler-nix-name ["ghc865" "ghc884" "ghc8104" "ghc810420210212" "ghc8105" "ghc8106" "ghc901" "ghc921" "ghc922"]))
56+ # aarch64-linux requires ghc 8.8.4
57+ (v != "aarch64-linux" || (
58+ !__elem compiler-nix-name ["ghc865" "ghc8104" "ghc810420210212" "ghc8105" "ghc8106" "ghc901" "ghc921" "ghc922"]
59+ ))) supportedSystems) (v: v);
44 crossSystems = nixpkgsName: nixpkgs: compiler-nix-name: system:
60 crossSystems = nixpkgsName: nixpkgs: compiler-nix-name: system:
45 # We need to use the actual nixpkgs version we're working with here, since the values
61 # We need to use the actual nixpkgs version we're working with here, since the values
46 # of 'lib.systems.examples' are not understood between all versions
62 # of 'lib.systems.examples' are not understood between all versions
47 let lib = nixpkgs.lib;
63 let lib = nixpkgs.lib;
48− in lib.optionalAttrs (nixpkgsName == "unstable" && (__elem compiler-nix-name ["ghc8105"])) {
64+ in lib.optionalAttrs (nixpkgsName == "unstable"
65+ && ((system == "x86_64-linux" && __elem compiler-nix-name ["ghc865" "ghc884" "ghc8107"])
66+ || (system == "x86_64-darwin" && __elem compiler-nix-name ["ghc8107"]))) {
49 inherit (lib.systems.examples) ghcjs;
67 inherit (lib.systems.examples) ghcjs;
50− } // lib.optionalAttrs (system == "x86_64-linux" &&
68+ } // lib.optionalAttrs (nixpkgsName == "unstable"
51− nixpkgsName == "unstable" && (__elem compiler-nix-name ["ghc8105"])) {
69+ && ((system == "x86_64-linux" && __elem compiler-nix-name ["ghc8107" "ghc902" "ghc924"])
52− # Windows cross compilation is currently broken on macOS
70+ || (system == "x86_64-darwin" && __elem compiler-nix-name []))) { # TODO add ghc versions when we have more darwin build capacity
53 inherit (lib.systems.examples) mingwW64;
71 inherit (lib.systems.examples) mingwW64;
54− } // lib.optionalAttrs (system == "x86_64-linux" && nixpkgsName == "unstable" && compiler-nix-name == "ghc8105") {
72+ } // lib.optionalAttrs (system == "x86_64-linux" && nixpkgsName == "unstable" && __elem compiler-nix-name ["ghc8107" "ghc902" "ghc922" "ghc923" "ghc924"]) {
55 # Musl cross only works on linux
73 # Musl cross only works on linux
56 # aarch64 cross only works on linux
74 # aarch64 cross only works on linux
57 inherit (lib.systems.examples) musl64 aarch64-multiplatform;
75 inherit (lib.systems.examples) musl64 aarch64-multiplatform;
@@ -60,12 +78,11 @@
61dimension "Nixpkgs version" nixpkgsVersions (nixpkgsName: nixpkgs-pin:
79dimension "Nixpkgs version" nixpkgsVersions (nixpkgsName: nixpkgs-pin:
62 let pinnedNixpkgsSrc = sources.${nixpkgs-pin};
80 let pinnedNixpkgsSrc = sources.${nixpkgs-pin};
63− # We need this for generic nixpkgs stuff at the right version
64− genericPkgs = import pinnedNixpkgsSrc {};
81+ evalPackages = import pinnedNixpkgsSrc nixpkgsArgs;
65− in dimension "GHC version" (compilerNixNames nixpkgsName genericPkgs) (compiler-nix-name: {nixpkgsArgs, runTests}:
82+ in dimension "GHC version" (compilerNixNames nixpkgsName evalPackages) (compiler-nix-name: {runTests}:
66− dimension "System" (systems genericPkgs) (systemName: system:
83+ dimension "System" (systems nixpkgsName evalPackages compiler-nix-name) (systemName: system:
67 let pkgs = import pinnedNixpkgsSrc (nixpkgsArgs // { inherit system; });
84 let pkgs = import pinnedNixpkgsSrc (nixpkgsArgs // { inherit system; });
68− build = import ./build.nix { inherit pkgs ifdLevel compiler-nix-name; };
85+ build = import ./build.nix { inherit pkgs evalPackages ifdLevel compiler-nix-name; };
69 platformFilter = platformFilterGeneric pkgs system;
86 platformFilter = platformFilterGeneric pkgs system;
70 in filterAttrsOnlyRecursive (_: v: platformFilter v && !(isDisabled v)) ({
87 in filterAttrsOnlyRecursive (_: v: platformFilter v && !(isDisabled v)) ({
71 # Native builds
88 # Native builds
@@ -78,14 +95,14 @@ dimension "Nixpkgs version" nixpkgsVersions (nixpkgsName: nixpkgs-pin:
78 } // pkgs.lib.optionalAttrs (ifdLevel >= 1) {
95 } // pkgs.lib.optionalAttrs (ifdLevel >= 1) {
79 iserv-proxy = pkgs.ghc-extra-projects."${compiler-nix-name}".getComponent "iserv-proxy:exe:iserv-proxy";
96 iserv-proxy = pkgs.ghc-extra-projects."${compiler-nix-name}".getComponent "iserv-proxy:exe:iserv-proxy";
80 } // pkgs.lib.optionalAttrs (ifdLevel >= 3) {
97 } // pkgs.lib.optionalAttrs (ifdLevel >= 3) {
81− hello = (pkgs.haskell-nix.hackage-package { name = "hello"; version = "1.0.0.2"; inherit compiler-nix-name; }).getComponent "exe:hello";
98+ hello = (pkgs.haskell-nix.hackage-package { name = "hello"; version = "1.0.0.2"; inherit evalPackages compiler-nix-name; }).getComponent "exe:hello";
85− dimension "Cross system" (crossSystems nixpkgsName genericPkgs compiler-nix-name system) (crossSystemName: crossSystem:
102+ dimension "Cross system" (crossSystems nixpkgsName evalPackages compiler-nix-name system) (crossSystemName: crossSystem:
86 # Cross builds
103 # Cross builds
87 let pkgs = import pinnedNixpkgsSrc (nixpkgsArgs // { inherit system crossSystem; });
104 let pkgs = import pinnedNixpkgsSrc (nixpkgsArgs // { inherit system crossSystem; });
88− build = import ./build.nix { inherit pkgs ifdLevel compiler-nix-name; };
105+ build = import ./build.nix { inherit pkgs evalPackages ifdLevel compiler-nix-name; };
89 in pkgs.recurseIntoAttrs (pkgs.lib.optionalAttrs (ifdLevel >= 1) ({
106 in pkgs.recurseIntoAttrs (pkgs.lib.optionalAttrs (ifdLevel >= 1) ({
90 roots = pkgs.haskell-nix.roots' compiler-nix-name ifdLevel;
107 roots = pkgs.haskell-nix.roots' compiler-nix-name ifdLevel;
91 ghc = pkgs.buildPackages.haskell-nix.compiler."${compiler-nix-name}";
108 ghc = pkgs.buildPackages.haskell-nix.compiler."${compiler-nix-name}";
compiler/ghc/configured-src.nixdeleted−127
@@ -1,127 +0,0 @@
1−{ stdenv, lib, fetchurl
2−, ghc-version, ghc-version-date, ghc-patches, src-spec
4−, targetPlatform, hostPlatform
6−, perl, autoconf, automake, m4, python3, sphinx, ghc, bootPkgs
7−, autoreconfHook, toolsForTarget, bash
9−, useLLVM, llvmPackages
11−, enableIntegerSimple, targetGmp
12−, enableDWARF, elfutils
13−, ncurses, targetLibffi, libiconv
14−, disableLargeAddressSpace
17−stdenv.mkDerivation (rec {
19− version = ghc-version;
20− patches = ghc-patches;
21− name = "${targetPrefix}ghc-${ghc-version}-configured-src";
23− # Make sure we never relax`$PATH` and hooks support for compatability.
26− nativeBuildInputs = [
27− perl autoconf automake m4 python3 sphinx
28− ghc bootPkgs.alex bootPkgs.happy bootPkgs.hscolour
29− ] ++ lib.optional (patches != []) autoreconfHook;
31− # For building runtime libs
32− depsBuildTarget = toolsForTarget;
34− buildInputs = [ perl bash ] ++ (libDeps hostPlatform);
36− propagatedBuildInputs = [ targetPackages.stdenv.cc ]
37− ++ lib.optional useLLVM llvmPackages.llvm;
39− depsTargetTarget = map lib.getDev (libDeps targetPlatform);
40− depsTargetTargetPropagated = map (lib.getOutput "out") (libDeps targetPlatform);
42− postPatch = "patchShebangs .";
44− src = if src-spec ? file
46− else fetchurl { inherit (src-spec) url sha256; };
48− # GHC is a bit confused on its cross terminology.
50− for env in $(env | grep '^TARGET_' | sed -E 's|\+?=.*||'); do
51− export "''${env#TARGET_}=''${!env}"
53− # GHC is a bit confused on its cross terminology, as these would normally be
55− export CC="${targetCC}/bin/${targetCC.targetPrefix}cc"
56− export CXX="${targetCC}/bin/${targetCC.targetPrefix}cxx"
57− # Use gold to work around https://sourceware.org/bugzilla/show_bug.cgi?id=16177
58− export LD="${targetCC.bintools}/bin/${targetCC.bintools.targetPrefix}ld${lib.optionalString targetPlatform.isAarch32 ".gold"}"
59− export AS="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}as"
60− export AR="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}ar"
61− export NM="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}nm"
62− export RANLIB="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}ranlib"
63− export READELF="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}readelf"
64− export STRIP="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}strip"
66− echo -n "${buildMK}" > mk/build.mk
67− sed -i -e 's|-isysroot /Developer/SDKs/MacOSX10.5.sdk||' configure
68− '' + lib.optionalString (!stdenv.isDarwin) ''
69− export NIX_LDFLAGS+=" -rpath $out/lib/${targetPrefix}ghc-${version}"
70− '' + lib.optionalString stdenv.isDarwin ''
71− export NIX_LDFLAGS+=" -no_dtrace_dof"
72− '' + lib.optionalString targetPlatform.useAndroidPrebuilt ''
73− sed -i -e '5i ,("armv7a-unknown-linux-androideabi", ("e-m:e-p:32:32-i64:64-v128:64:128-a:0:32-n32-S64", "cortex-a8", ""))' llvm-targets
74− '' + lib.optionalString targetPlatform.isMusl ''
75− echo "patching llvm-targets for musl targets..."
76− echo "Cloning these existing '*-linux-gnu*' targets:"
77− grep linux-gnu llvm-targets | sed 's/^/ /'
78− echo "(go go gadget sed)"
79− sed -i 's,\(^.*linux-\)gnu\(.*\)$,\0\n\1musl\2,' llvm-targets
80− echo "llvm-targets now contains these '*-linux-musl*' targets:"
81− grep linux-musl llvm-targets | sed 's/^/ /'
83− echo "And now patching to preserve '-musleabi' as done with '-gnueabi'"
84− # (aclocal.m4 is actual source, but patch configure as well since we don't re-gen)
85− for x in configure aclocal.m4; do
86− substituteInPlace $x \
87− --replace '*-android*|*-gnueabi*)' \
88− '*-android*|*-gnueabi*|*-musleabi*)'
90− '' + lib.optionalString (src-spec.version != ghc-version) ''
91− substituteInPlace configure --replace 'RELEASE=YES' 'RELEASE=NO'
92− echo '${ghc-version}' > VERSION
93− '' + lib.optionalString (ghc-version-date != null) ''
94− substituteInPlace configure --replace 'RELEASE=YES' 'RELEASE=NO'
95− echo '${ghc-version-date}' > VERSION_DATE
98− configurePlatforms = [ "build" "host" "target" ];
99− # `--with` flags for libraries needed for RTS linker
101− "--datadir=$doc/share/doc/ghc"
102− "--with-curses-includes=${ncurses.dev}/include" "--with-curses-libraries=${ncurses.out}/lib"
103− ] ++ lib.optionals (targetLibffi != null) ["--with-system-libffi" "--with-ffi-includes=${targetLibffi.dev}/include" "--with-ffi-libraries=${targetLibffi.out}/lib"
104− ] ++ lib.optional (!enableIntegerSimple) [
105− "--with-gmp-includes=${targetGmp.dev}/include" "--with-gmp-libraries=${targetGmp.out}/lib"
106− ] ++ lib.optional (targetPlatform == hostPlatform && hostPlatform.libc != "glibc" && !targetPlatform.isWindows) [
107− "--with-iconv-includes=${libiconv}/include" "--with-iconv-libraries=${libiconv}/lib"
108− ] ++ lib.optionals (targetPlatform != hostPlatform) [
109− "--enable-bootstrap-with-devel-snapshot"
110− ] ++ lib.optionals (disableLargeAddressSpace) [
111− "--disable-large-address-space"
112− ] ++ lib.optionals (targetPlatform.isAarch32) [
113− "CFLAGS=-fuse-ld=gold"
114− "CONF_GCC_LINKER_OPTS_STAGE1=-fuse-ld=gold"
115− "CONF_GCC_LINKER_OPTS_STAGE2=-fuse-ld=gold"
116− ] ++ lib.optionals enableDWARF [
117− "--enable-dwarf-unwind"
118− "--with-libdw-includes=${lib.getDev elfutils}/include"
119− "--with-libdw-libraries=${lib.getLib elfutils}/lib"
122− outputs = [ "out" ];
123− phases = [ "unpackPhase" "patchPhase" ]
124− ++ lib.optional (ghc-patches != []) "autoreconfPhase"
125− ++ [ "configurePhase" "installPhase" ];
126− installPhase = "cp -r . $out";
compiler/ghc/default.nix+216−66
@@ -13,7 +13,9 @@ let self =
13, autoreconfHook
13, autoreconfHook
16−, libiconv ? null, ncurses
16+, libiconv ? null
18+, ncurses # TODO remove this once the cross compilers all work without
18, installDeps
20, installDeps
@@ -29,6 +31,9 @@ let self =
29, # If enabled, GHC will be built with the GPL-free but slower integer-simple
31, # If enabled, GHC will be built with the GPL-free but slower integer-simple
30 # library instead of the faster but GPLed integer-gmp library.
32 # library instead of the faster but GPLed integer-gmp library.
31 enableIntegerSimple ? !(lib.any (lib.meta.platformMatch stdenv.hostPlatform) gmp.meta.platforms), gmp
33 enableIntegerSimple ? !(lib.any (lib.meta.platformMatch stdenv.hostPlatform) gmp.meta.platforms), gmp
34+, # If enabled, GHC will be built with the GPL-free native backend of the
35+ # bignum library that is nearly as fast as GMP
36+ enableNativeBignum ? !((lib.any (lib.meta.platformMatch stdenv.hostPlatform) gmp.meta.platforms) || enableIntegerSimple)
33, # If enabled, use -fPIC when compiling static libs.
38, # If enabled, use -fPIC when compiling static libs.
34 enableRelocatedStaticLibs ? stdenv.targetPlatform != stdenv.hostPlatform && !stdenv.targetPlatform.isAarch32
39 enableRelocatedStaticLibs ? stdenv.targetPlatform != stdenv.hostPlatform && !stdenv.targetPlatform.isAarch32
@@ -41,8 +46,12 @@ let self =
42, enableDWARF ? false
47, enableDWARF ? false
44−, # Whether to build terminfo. Musl fails to build terminfo as ncurses seems to be linked to glibc
49+, enableTerminfo ?
45− enableTerminfo ? !stdenv.targetPlatform.isWindows && !stdenv.targetPlatform.isMusl
50+ # Terminfo does not work on older ghc cross arm and windows compilers
51+ (!haskell-nix.haskellLib.isCrossTarget || !(stdenv.targetPlatform.isAarch64 || stdenv.targetPlatform.isWindows) || builtins.compareVersions ghc-version "8.10" >= 0)
53+, # Wheter to build in NUMA support
47, # What flavour to build. An empty string indicates no
56, # What flavour to build. An empty string indicates no
48 # specific flavour and falls back to ghc default values.
57 # specific flavour and falls back to ghc default values.
@@ -65,7 +74,11 @@ let self =
65, extra-passthru ? {}
74, extra-passthru ? {}
68−assert !enableIntegerSimple -> gmp != null;
77+assert !(enableIntegerSimple || enableNativeBignum) -> gmp != null;
79+# Early check to make sure only one of these is enabled
80+assert enableNativeBignum -> !enableIntegerSimple;
81+assert enableIntegerSimple -> !enableNativeBignum;
71 inherit (stdenv) buildPlatform hostPlatform targetPlatform;
84 inherit (stdenv) buildPlatform hostPlatform targetPlatform;
@@ -73,6 +86,17 @@ let
74 inherit (bootPkgs) ghc;
87 inherit (bootPkgs) ghc;
89+ ghcHasNativeBignum = builtins.compareVersions ghc-version "9.0" >= 0;
92+ assert ghcHasNativeBignum -> !enableIntegerSimple;
93+ assert !ghcHasNativeBignum -> !enableNativeBignum;
94+ if ghcHasNativeBignum then ''
95+ BIGNUM_BACKEND = ${if enableNativeBignum then "native" else "gmp"}
97+ INTEGER_LIBRARY = ${if enableIntegerSimple then "integer-simple" else "integer-gmp"}
76 # TODO check if this possible fix for segfaults works or not.
100 # TODO check if this possible fix for segfaults works or not.
77 targetLibffi =
101 targetLibffi =
78 # on native platforms targetPlatform.{libffi, gmp} do not exist; thus fall back
102 # on native platforms targetPlatform.{libffi, gmp} do not exist; thus fall back
@@ -85,6 +109,10 @@ let
86 targetGmp = targetPackages.gmp or gmp;
110 targetGmp = targetPackages.gmp or gmp;
112+ targetIconv = targetPackages.libiconv or libiconv;
114+ targetNumactl = targetPackages.numactl or numactl;
88 # TODO(@Ericson2314) Make unconditional
116 # TODO(@Ericson2314) Make unconditional
89 targetPrefix = lib.optionalString
117 targetPrefix = lib.optionalString
90 (targetPlatform != hostPlatform)
118 (targetPlatform != hostPlatform)
@@ -96,7 +124,8 @@ let
96 include mk/flavours/\$(BuildFlavour).mk
124 include mk/flavours/\$(BuildFlavour).mk
98 DYNAMIC_GHC_PROGRAMS = ${if enableShared then "YES" else "NO"}
126 DYNAMIC_GHC_PROGRAMS = ${if enableShared then "YES" else "NO"}
99− INTEGER_LIBRARY = ${if enableIntegerSimple then "integer-simple" else "integer-gmp"}
127+ '' + bignumSpec + ''
128+ EXTRA_HADDOCK_OPTS += --quickjump --hyperlinked-source
100 '' + lib.optionalString (targetPlatform != hostPlatform) ''
129 '' + lib.optionalString (targetPlatform != hostPlatform) ''
101 CrossCompilePrefix = ${targetPrefix}
130 CrossCompilePrefix = ${targetPrefix}
102 '' + lib.optionalString isCrossTarget ''
131 '' + lib.optionalString isCrossTarget ''
@@ -110,6 +139,10 @@ let
110 '' + lib.optionalString enableRelocatedStaticLibs ''
139 '' + lib.optionalString enableRelocatedStaticLibs ''
111 GhcLibHcOpts += -fPIC
140 GhcLibHcOpts += -fPIC
112 GhcRtsHcOpts += -fPIC
141 GhcRtsHcOpts += -fPIC
142+ GhcRtsCcOpts += -fPIC
143+ '' + lib.optionalString (enableRelocatedStaticLibs && targetPlatform.isx86_64 && !targetPlatform.isWindows) ''
144+ GhcLibHcOpts += -fexternal-dynamic-refs
145+ GhcRtsHcOpts += -fexternal-dynamic-refs
113 '' + lib.optionalString enableDWARF ''
146 '' + lib.optionalString enableDWARF ''
114 GhcLibHcOpts += -g3
147 GhcLibHcOpts += -g3
115 GhcRtsHcOpts += -g3
148 GhcRtsHcOpts += -g3
@@ -120,24 +153,29 @@ let
121 # musl doesn't have a system-linker. Only on x86, and on x86 we need it, as
154 # musl doesn't have a system-linker. Only on x86, and on x86 we need it, as
122 # our elf linker for x86_64 is broken.
155 # our elf linker for x86_64 is broken.
123− + lib.optionalString (targetPlatform.isMusl && !targetPlatform.isx86) ''
156+ + lib.optionalString (targetPlatform.isAndroid || (targetPlatform.isMusl && !targetPlatform.isx86)) ''
124 compiler_CONFIGURE_OPTS += --flags=-dynamic-system-linker
157 compiler_CONFIGURE_OPTS += --flags=-dynamic-system-linker
126 # While split sections are now enabled by default in ghc 8.8 for windows,
159 # While split sections are now enabled by default in ghc 8.8 for windows,
127 # the seem to lead to `too many sections` errors when building base for
160 # the seem to lead to `too many sections` errors when building base for
128 # profiling.
161 # profiling.
163+ # It appears that loading split sections through iserv on qemu-aarch64, is
164+ # particularly slow. Let's disable them for now.
129− + lib.optionalString targetPlatform.isWindows ''
165+ + lib.optionalString (targetPlatform.isWindows || targetPlatform.isAndroid) ''
130 SplitSections = NO
166 SplitSections = NO
131 '' + lib.optionalString (!enableLibraryProfiling) ''
167 '' + lib.optionalString (!enableLibraryProfiling) ''
132 BUILD_PROF_LIBS = NO
168 BUILD_PROF_LIBS = NO
135 # Splicer will pull out correct variations
171 # Splicer will pull out correct variations
136− libDeps = platform: lib.optional enableTerminfo [ ncurses ]
172+ libDeps = platform: lib.optional enableTerminfo [ targetPackages.ncurses targetPackages.ncurses.dev ]
137 ++ [targetLibffi]
173 ++ [targetLibffi]
138 ++ lib.optional (!enableIntegerSimple) gmp
174 ++ lib.optional (!enableIntegerSimple) gmp
139 ++ lib.optional (platform.libc != "glibc" && !targetPlatform.isWindows) libiconv
175 ++ lib.optional (platform.libc != "glibc" && !targetPlatform.isWindows) libiconv
140− ++ lib.optional (platform.isLinux && !platform.isAarch32) numactl;
176+ ++ lib.optional (enableNUMA && platform.isLinux && !platform.isAarch32 && !platform.isAndroid) numactl
177+ # Even with terminfo disabled some older ghc cross arm and windows compilers do not build unless `ncurses` is found and they seem to want the buildPlatform version
178+ ++ lib.optional (!enableTerminfo && haskell-nix.haskellLib.isCrossTarget && (stdenv.targetPlatform.isAarch64 || stdenv.targetPlatform.isWindows) && builtins.compareVersions ghc-version "8.10" < 0) ncurses.dev;
142 toolsForTarget =
180 toolsForTarget =
143 if hostPlatform == buildPlatform then
181 if hostPlatform == buildPlatform then
@@ -147,24 +185,6 @@ let
148 targetCC = builtins.head toolsForTarget;
186 targetCC = builtins.head toolsForTarget;
150− configured-src = import ./configured-src.nix {
151− inherit stdenv lib fetchurl
152− ghc-version ghc-version-date ghc-patches src-spec
154− targetPlatform hostPlatform
156− perl autoconf automake m4 python3 sphinx ghc bootPkgs
157− autoreconfHook toolsForTarget bash
159− useLLVM llvmPackages
161− enableIntegerSimple targetGmp
162− enableDWARF elfutils
163− ncurses targetLibffi libiconv
164− disableLargeAddressSpace
169stdenv.mkDerivation (rec {
189stdenv.mkDerivation (rec {
170 version = ghc-version;
190 version = ghc-version;
@@ -172,42 +192,102 @@ stdenv.mkDerivation (rec {
173 patches = ghc-patches;
193 patches = ghc-patches;
175− # for this to properly work (with inheritance of patches, postPatch, ...)
195+ src = if src-spec ? file
176− # this needs to be a function over the values we want to inherit and then called
196+ then src-spec.file
177− # accordingly. Most trivial might be to just have args, and mash them into the
197+ else fetchurl { inherit (src-spec) url sha256; };
179− src = configured-src;
181 # configure was run by configured-src already.
199 # configure was run by configured-src already.
182− phases = [ "unpackPhase" "buildPhase"
200+ phases = [ "unpackPhase" "patchPhase" ]
201+ ++ lib.optional (ghc-patches != []) "autoreconfPhase"
202+ ++ [ "configurePhase" "buildPhase"
183 "checkPhase" "installPhase"
203 "checkPhase" "installPhase"
184 "fixupPhase"
204 "fixupPhase"
185 "installCheckPhase"
205 "installCheckPhase"
186 "distPhase"
206 "distPhase"
189− # ghc hardcodes the TOP dir during config, this breaks when
209+ # GHC is a bit confused on its cross terminology.
190− # splitting the configured src from the build process.
210+ preConfigure =
191− postUnpack = ''
211+ # This code is only included when cross compiling as it breaks aarch64-darwin native compilation
192− (cd $sourceRoot
212+ lib.optionalString (targetPlatform != hostPlatform) ''
193− TOP=$(cat mk/config.mk|grep ^TOP|awk -F\ '{ print $3 }')
213+ for env in $(env | grep '^TARGET_' | sed -E 's|\+?=.*||'); do
194− PREFIX=$(cat mk/install.mk|grep ^prefix|awk -F\ '{ print $3 }')
214+ export "''${env#TARGET_}=''${!env}"
196− # these two are required
216+ # GHC is a bit confused on its cross terminology, as these would normally be
197− substituteInPlace mk/config.mk --replace "$TOP" "$PWD" \
217+ # the *host* tools.
198− --replace "$PREFIX" "$out"
218+ export CC="${targetCC}/bin/${targetCC.targetPrefix}cc"
199−
219+ export CXX="${targetCC}/bin/${targetCC.targetPrefix}cxx"
200− substituteInPlace mk/install.mk --replace "$TOP" "$PWD" \
220+ # Use gold to work around https://sourceware.org/bugzilla/show_bug.cgi?id=16177
201− --replace "$PREFIX" "$out"
221+ export LD="${targetCC.bintools}/bin/${targetCC.bintools.targetPrefix}ld${lib.optionalString targetPlatform.isAarch32 ".gold"}"
202−
222+ export AS="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}as"
203− # these two only for convencience.
223+ export AR="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}ar"
204− substituteInPlace config.log --replace "$TOP" "$PWD"\
224+ export NM="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}nm"
205− --replace "$PREFIX" "$out"
225+ export RANLIB="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}ranlib"
206− substituteInPlace config.status --replace "$TOP" "$PWD"\
226+ export READELF="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}readelf"
207− --replace "$PREFIX" "$out")
227+ export STRIP="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}strip"
209−
229+ echo -n "${buildMK}" > mk/build.mk
230+ sed -i -e 's|-isysroot /Developer/SDKs/MacOSX10.5.sdk||' configure
231+ '' + lib.optionalString useLLVM ''
232+ export LLC="${llvmPackages.llvm}/bin/llc"
233+ export OPT="${llvmPackages.llvm}/bin/opt"
234+ '' + lib.optionalString (!stdenv.isDarwin) ''
235+ export NIX_LDFLAGS+=" -rpath $out/lib/${targetPrefix}ghc-${ghc-version}"
236+ '' + lib.optionalString stdenv.isDarwin ''
237+ export NIX_LDFLAGS+=" -no_dtrace_dof"
238+ '' + lib.optionalString targetPlatform.useAndroidPrebuilt ''
239+ sed -i -e '5i ,("armv7a-unknown-linux-androideabi", ("e-m:e-p:32:32-i64:64-v128:64:128-a:0:32-n32-S64", "cortex-a8", ""))' llvm-targets
240+ '' + lib.optionalString targetPlatform.isMusl ''
241+ echo "patching llvm-targets for musl targets..."
242+ echo "Cloning these existing '*-linux-gnu*' targets:"
243+ grep linux-gnu llvm-targets | sed 's/^/ /'
244+ echo "(go go gadget sed)"
245+ sed -i 's,\(^.*linux-\)gnu\(.*\)$,\0\n\1musl\2,' llvm-targets
246+ echo "llvm-targets now contains these '*-linux-musl*' targets:"
247+ grep linux-musl llvm-targets | sed 's/^/ /'
249+ echo "And now patching to preserve '-musleabi' as done with '-gnueabi'"
250+ # (aclocal.m4 is actual source, but patch configure as well since we don't re-gen)
251+ for x in configure aclocal.m4; do
252+ substituteInPlace $x \
253+ --replace '*-android*|*-gnueabi*)' \
254+ '*-android*|*-gnueabi*|*-musleabi*)'
256+ '' + lib.optionalString (src-spec.version != ghc-version) ''
257+ substituteInPlace configure --replace 'RELEASE=YES' 'RELEASE=NO'
258+ echo '${ghc-version}' > VERSION
259+ '' + lib.optionalString (ghc-version-date != null) ''
260+ substituteInPlace configure --replace 'RELEASE=YES' 'RELEASE=NO'
261+ echo '${ghc-version-date}' > VERSION_DATE
262+ '' + lib.optionalString (builtins.compareVersions ghc-version "9.2.3" >= 0) ''
266+ configurePlatforms = [ "build" "host" "target" ];
267+ # `--with` flags for libraries needed for RTS linker
269+ "--datadir=$doc/share/doc/ghc"
270+ "--with-curses-includes=${targetPackages.ncurses.dev}/include" "--with-curses-libraries=${targetPackages.ncurses.out}/lib"
271+ ] ++ lib.optionals (targetLibffi != null) ["--with-system-libffi" "--with-ffi-includes=${targetLibffi.dev}/include" "--with-ffi-libraries=${targetLibffi.out}/lib"
272+ ] ++ lib.optional (!enableIntegerSimple) [
273+ "--with-gmp-includes=${targetGmp.dev}/include" "--with-gmp-libraries=${targetGmp.out}/lib"
274+ ] ++ lib.optional (targetPlatform == hostPlatform && hostPlatform.libc != "glibc" && !targetPlatform.isWindows) [
275+ "--with-iconv-includes=${libiconv}/include" "--with-iconv-libraries=${libiconv}/lib"
276+ ] ++ lib.optional (targetPlatform != hostPlatform) [
277+ "--with-iconv-includes=${targetIconv}/include" "--with-iconv-libraries=${targetIconv}/lib"
278+ ] ++ lib.optionals (targetPlatform != hostPlatform) [
279+ "--enable-bootstrap-with-devel-snapshot"
280+ ] ++ lib.optionals (disableLargeAddressSpace) [
281+ "--disable-large-address-space"
282+ ] ++ lib.optionals (targetPlatform.isAarch32) [
283+ "CFLAGS=-fuse-ld=gold"
284+ "CONF_GCC_LINKER_OPTS_STAGE1=-fuse-ld=gold"
285+ "CONF_GCC_LINKER_OPTS_STAGE2=-fuse-ld=gold"
286+ ] ++ lib.optionals enableDWARF [
287+ "--enable-dwarf-unwind"
288+ "--with-libdw-includes=${lib.getDev elfutils}/include"
289+ "--with-libdw-libraries=${lib.getLib elfutils}/lib"
212 enableParallelBuilding = true;
292 enableParallelBuilding = true;
213 postPatch = "patchShebangs .";
293 postPatch = "patchShebangs .";
@@ -230,9 +310,6 @@ stdenv.mkDerivation (rec {
231 buildInputs = [ perl bash ] ++ (libDeps hostPlatform);
311 buildInputs = [ perl bash ] ++ (libDeps hostPlatform);
233− propagatedBuildInputs = [ targetPackages.stdenv.cc ]
234− ++ lib.optional useLLVM llvmPackages.llvm;
236 depsTargetTarget = map lib.getDev (libDeps targetPlatform);
313 depsTargetTarget = map lib.getDev (libDeps targetPlatform);
237 depsTargetTargetPropagated = map (lib.getOutput "out") (libDeps targetPlatform);
314 depsTargetTargetPropagated = map (lib.getOutput "out") (libDeps targetPlatform);
@@ -250,7 +327,18 @@ stdenv.mkDerivation (rec {
250 ++ lib.optional stdenv.targetPlatform.isAarch32 "pic"
327 ++ lib.optional stdenv.targetPlatform.isAarch32 "pic"
251 ++ lib.optional stdenv.targetPlatform.isMusl "pie";
328 ++ lib.optional stdenv.targetPlatform.isMusl "pie";
253− postInstall = ''
330+ postInstall = lib.optionalString (enableNUMA && targetPlatform.isLinux) ''
331+ # Patch rts.conf to ensure libnuma can be found
333+ for file in $(find "$out/lib" -name "rts*.conf"); do
334+ if grep -q numa $file; then
335+ substituteInPlace $file \
336+ --replace "library-dirs:" "library-dirs: ${targetNumactl}/lib" \
337+ --replace "include-dirs:" "include-dirs: ${targetNumactl}/include"
338+ "$out/bin/${targetPrefix}ghc-pkg" recache
254 # Install the bash completion file.
342 # Install the bash completion file.
255 install -D -m 444 utils/completion/ghc.bash $out/share/bash-completion/completions/${targetPrefix}ghc
343 install -D -m 444 utils/completion/ghc.bash $out/share/bash-completion/completions/${targetPrefix}ghc
@@ -266,11 +354,9 @@ stdenv.mkDerivation (rec {
269− # Save generated files for needed when building ghcjs
357+ # Save generated files for needed when building ghc and ghcjs
270 mkdir -p $generated/includes/dist-derivedconstants/header
358 mkdir -p $generated/includes/dist-derivedconstants/header
271− cp includes/dist-derivedconstants/header/GHCConstantsHaskellExports.hs \
359+ cp includes/dist-derivedconstants/header/GHCConstantsHaskell*.hs \
272− includes/dist-derivedconstants/header/GHCConstantsHaskellType.hs \
273− includes/dist-derivedconstants/header/GHCConstantsHaskellWrappers.hs \
274 $generated/includes/dist-derivedconstants/header
360 $generated/includes/dist-derivedconstants/header
275 if [[ -f includes/ghcplatform.h ]]; then
361 if [[ -f includes/ghcplatform.h ]]; then
276 cp includes/ghcplatform.h $generated/includes
362 cp includes/ghcplatform.h $generated/includes
@@ -279,6 +365,15 @@ stdenv.mkDerivation (rec {
280 mkdir -p $generated/compiler/stage2/build
366 mkdir -p $generated/compiler/stage2/build
281 cp compiler/stage2/build/Config.hs $generated/compiler/stage2/build || true
367 cp compiler/stage2/build/Config.hs $generated/compiler/stage2/build || true
368+ if [[ -f compiler/stage2/build/GHC/Platform/Constants.hs ]]; then
369+ mkdir -p $generated/compiler/stage2/build/GHC/Platform
370+ cp compiler/stage2/build/GHC/Platform/Constants.hs $generated/compiler/stage2/build/GHC/Platform
372+ if [[ -f compiler/stage2/build/GHC/Settings/Config.hs ]]; then
373+ mkdir -p $generated/compiler/stage2/build/GHC/Settings
374+ cp compiler/stage2/build/GHC/Settings/Config.hs $generated/compiler/stage2/build/GHC/Settings
376+ cp compiler/stage2/build/*.hs-incl $generated/compiler/stage2/build || true
282 mkdir -p $generated/rts/build
377 mkdir -p $generated/rts/build
283 cp rts/build/config.hs-incl $generated/rts/build || true
378 cp rts/build/config.hs-incl $generated/rts/build || true
@@ -322,7 +417,40 @@ stdenv.mkDerivation (rec {
322 # Our Cabal compiler name
417 # Our Cabal compiler name
323 haskellCompilerName = "ghc-${version}";
418 haskellCompilerName = "ghc-${version}";
420+ # This uses a similar trick to `pkgs.srcOnly` to get the configured src
421+ # We could add `configured-src` as an output of the ghc derivation, but
422+ # having it as its own derivation means it can be accessed quickly without
424+ configured-src = stdenv.mkDerivation ({
325− configured-src = configured-src;
425+ name = name + "-configured-src";
435+ depsTargetTargetPropagated
443+ # Including all the outputs (not just $out) causes `mkDerivation` to use the nixpkgs multiple-outputs.sh hook.
444+ # This hook changes the arguments passed to `configure`.
450+ phases = [ "unpackPhase" "patchPhase" ]
451+ ++ lib.optional (ghc-patches != []) "autoreconfPhase"
452+ ++ [ "configurePhase" "installPhase"];
327 # Used to detect non haskell-nix compilers (accidental use of nixpkgs compilers can lead to unexpected errors)
455 # Used to detect non haskell-nix compilers (accidental use of nixpkgs compilers can lead to unexpected errors)
328 isHaskellNixCompiler = true;
456 isHaskellNixCompiler = true;
@@ -332,6 +460,11 @@ stdenv.mkDerivation (rec {
332 enableDWARF = stdenv.targetPlatform.isLinux
460 enableDWARF = stdenv.targetPlatform.isLinux
333 && builtins.compareVersions ghc-version "8.10.2" >= 0;
461 && builtins.compareVersions ghc-version "8.10.2" >= 0;
464+ # The same GHC, but without the large (1TB) address space reservation
465+ smallAddressSpace = lib.makeOverridable self (args // {
466+ disableLargeAddressSpace = true;
335 } // extra-passthru;
468 } // extra-passthru;
@@ -350,13 +483,30 @@ stdenv.mkDerivation (rec {
350 dontStrip = true;
483 dontStrip = true;
351 dontPatchELF = true;
484 dontPatchELF = true;
352 noAuditTmpdir = true;
485 noAuditTmpdir = true;
353−} // lib.optionalAttrs (ghc-version == "8.10.5" && stdenv.buildPlatform.isDarwin) {
486+} // lib.optionalAttrs (stdenv.buildPlatform.isDarwin || stdenv.targetPlatform.isWindows) {
354 # ghc install on macOS wants to run `xattr -r -c`
487 # ghc install on macOS wants to run `xattr -r -c`
355 # The macOS version fails because it wants python 2.
488 # The macOS version fails because it wants python 2.
356 # The nix version of xattr does not support those args.
489 # The nix version of xattr does not support those args.
357 # Luckily setting the path to something that does not exist will skip the step.
490 # Luckily setting the path to something that does not exist will skip the step.
358− preBuild = ''
491+ preBuild = lib.optionalString stdenv.buildPlatform.isDarwin ''
359 export XATTR=$(mktemp -d)/nothing
492 export XATTR=$(mktemp -d)/nothing
494+ # We need to point at a stand in `windows.h` header file so that the RTS headers can
495+ # work on the hostPlatform. We also need to work around case sensitve file system issues.
496+ + lib.optionalString stdenv.targetPlatform.isWindows ''
497+ export NIX_CFLAGS_COMPILE_${
498+ # We want this only to apply to the non windows hostPlatform (the
499+ # windows gcc cross compiler has a full `windows.h`).
500+ # This matches the way `suffixSalt` is calculated in nixpkgs.
501+ # See https://github.com/NixOS/nixpkgs/blob/8411006d6bcd7f6e6a8a1a80ce8fcdccdd16c6ab/pkgs/build-support/cc-wrapper/default.nix#L58
502+ lib.replaceStrings ["-" "."] ["_" "_"] stdenv.hostPlatform.config
503+ }+=" -I${../windows/include}"
504+ if [[ -f libraries/base/include/winio_structs.h ]]; then
505+ substituteInPlace libraries/base/include/winio_structs.h --replace Windows.h windows.h
507+ if [[ -f rts/win32/ThrIOManager.c ]]; then
508+ substituteInPlace rts/win32/ThrIOManager.c --replace rts\\OSThreads.h rts/OSThreads.h
compiler/ghcjs/ghcjs.nix+9−1
@@ -7,6 +7,7 @@
7 then "ghc884"
7 then "ghc884"
8 else "ghc865"
8 else "ghc865"
9, ghc ? pkgs.buildPackages.ghc
9, ghc ? pkgs.buildPackages.ghc
10+, overrideBootPackages ? [] # adds if not present, overrides if present.
12 isGhcjs88 = builtins.compareVersions ghcjsVersion "8.8.0.0" >= 0;
13 isGhcjs88 = builtins.compareVersions ghcjsVersion "8.8.0.0" >= 0;
@@ -14,8 +15,14 @@ let
15 project = pkgs.buildPackages.haskell-nix.ghcjsProject {
16 project = pkgs.buildPackages.haskell-nix.ghcjsProject {
16 src = ghcjsSrc;
17 src = ghcjsSrc;
17− inherit ghcjsVersion compiler-nix-name;
18+ inherit ghcjsVersion compiler-nix-name overrideBootPackages;
18 index-state = "2020-04-25T00:00:00Z";
19 index-state = "2020-04-25T00:00:00Z";
20+ patches = if isGhcjs810
22+ ./patches/810/fast-weak.patch
23+ ./patches/810/boot-optimization-flags.patch
19# plan-sha256 = "1wy2lr08maxyi7r8jiwf2gj6pdayk5vxxwh42bj4s2gg4035z0yc";
26# plan-sha256 = "1wy2lr08maxyi7r8jiwf2gj6pdayk5vxxwh42bj4s2gg4035z0yc";
20# materialized = ../../materialized/ghcjs;
27# materialized = ../../materialized/ghcjs;
@@ -59,6 +66,7 @@ let
59 # Used to detect non haskell-nix compilers (accidental use of nixpkgs compilers can lead to unexpected errors)
66 # Used to detect non haskell-nix compilers (accidental use of nixpkgs compilers can lead to unexpected errors)
60 isHaskellNixCompiler = true;
67 isHaskellNixCompiler = true;
61 } // ghcjs.components.exes;
68 } // ghcjs.components.exes;
69+ dontUpdateAutotoolsGnuConfigScripts = true;
62 dontConfigure = true;
70 dontConfigure = true;
63 dontInstall = true;
71 dontInstall = true;
64 buildPhase = ''
72 buildPhase = ''
compiler/ghcjs/ghcjs810-patched-boot-packages/aeson.patchnew file+13
@@ -0,0 +1,13 @@
1+diff --git a/aeson.cabal b/aeson.cabal
2+index a0ebd59..552f160 100755
5+@@ -150,7 +150,7 @@ library
6+ dlist >= 0.8.0.4 && < 0.9,
7+ hashable >= 1.2.7.0 && < 1.4,
8+ scientific >= 0.3.6.2 && < 0.4,
9+- th-abstraction >= 0.2.8.0 && < 0.4,
10++ th-abstraction >= 0.2.8.0 && < 0.5,
11+ uuid-types >= 1.0.3 && < 1.1,
12+ vector >= 0.12.0.1 && < 0.13
compiler/ghcjs/ghcjs810-patched-boot-packages/default.nixnew file+176
@@ -0,0 +1,176 @@
5+ patch = p: path: pkgs.runCommand "patched" { buildInputs = [ pkgs.gnupatch ]; } ''
11+ getSubdir = d: path: pkgs.runCommand "subdir" { } ''
12+ cp -r ${path}/${d} $out
18+ src = pkgs.fetchgit {
19+ url = "https://github.com/haskell/primitive.git";
20+ rev = "11ff865fd2157a1dfd7dfd525b1cf27e1a300633";
21+ sha256 = "1skim1vlmf0v4ixm8h8ja3m1pz0h10xrfdh1rfzawsy8rvrp2cc0";
26+ src = pkgs.fetchgit {
27+ url = "https://github.com/spl/dlist.git";
28+ rev = "567cfeb2f5da30f2e5faf167895b3ee04c698ca0";
29+ sha256 = "0b8ij3ls7bccbp9rlm8dnflnf1wim9xsg42wmirvwxwmh2c0r0hg";
34+ src = pkgs.fetchgit {
35+ url = "https://github.com/haskell/vector.git";
36+ rev = "de10fd281fa5d8beee3623e809a71385a5ef6864";
37+ sha256 = "09vhbvrkw90xgqfrybmhy120rwcy4snw2f97004alr3n96lwpg1q";
42+ src = patch ./ghcjs-base.patch (pkgs.fetchgit {
43+ url = "https://github.com/ghcjs/ghcjs-base.git";
44+ rev = "85e31beab9beffc3ea91b954b61a5d04e708b8f2";
45+ sha256 = "15fdkjv0l7hpbbsn5238xxgzfdg61g666nzbv2sgxkwryn5rycv0";
50+ src = pkgs.fetchgit {
51+ url = "https://github.com/dfordivam/text.git";
52+ rev = "126174753ea8e5f45df8fcbba609e3f1c453bf27";
53+ sha256 = "0l7nbln2w77s12fm4ybhi0jsfnxkyiwskfx3b682pfisa6n32rgm";
58+ src = patch ./hashable.patch (pkgs.fetchgit {
59+ url = "https://github.com/haskell-unordered-containers/hashable.git";
60+ rev = "819fdbeaeeb62ed1344fb057de17fa29b10fa3e1";
61+ sha256 = "0xnwfwnnh0bxq16wx0qmdakvgvj8i22km3bhvvki15rd9jil04cc";
65+ name = "integer-logarithms";
66+ src = pkgs.fetchgit {
67+ url = "https://github.com/haskellari/integer-logarithms.git";
68+ rev = "df09cef2c8eb0d5899e2bcccee2a4fad413bdc11";
69+ sha256 = "1k17hjnjmy44dfywx9nr804qiqmjjhkpfpll5bsfvzvpnl5r75nj";
74+ src = pkgs.fetchgit {
75+ url = "https://github.com/basvandijk/scientific.git";
76+ rev = "1d049cdf04e2d92ab187754044b0df933c5e6b0d";
77+ sha256 = "1v4fmfq8hyhdb5ck5r2b45s1izr7hx97v4g7s597ajbv72ldvilq";
82+ src = pkgs.fetchgit {
83+ url = "https://github.com/dfordivam/attoparsec.git";
84+ rev = "cbfb944aeff61144059a28ada93c579e93ccf7d2";
85+ sha256 = "0bbr4943439sy3grwpwbna4mk7iv87ijaiv3jjfhxhp7y67z51h8";
90+ src = pkgs.fetchgit {
91+ url = "https://github.com/haskellari/splitmix.git";
92+ rev = "d8c1b57bb75178675423f87b1ff58429f37bc9fe";
93+ sha256 = "1m8v439vlwqpqw28dbr04n6m0j2cfb169ly285lp0bjmzcwlr289";
98+ src = pkgs.fetchgit {
99+ url = "https://github.com/haskell/random.git";
100+ rev = "8c59bd0fda84fa581d53069b45100d810f5a778f";
101+ sha256 = "1drdipfbmpg2g2cdrnq1k8yysh86i7ljwm6zkrrs3g8l47n4ha4d";
105+ name = "uuid-types";
106+ src = getSubdir "uuid-types" (pkgs.fetchgit {
107+ url = "https://github.com/haskell-hvr/uuid.git";
108+ rev = "e8dc7126582ba4d3abc5e0f26dc1d8477caab01e";
109+ sha256 = "037cnfz7rhkw383rn117b994jzs93i3bwdv47x5qiza5h5syd76f";
113+ name = "unordered-containers";
114+ src = pkgs.fetchgit {
115+ url = "https://github.com/haskell-unordered-containers/unordered-containers.git";
116+ rev = "db9ddde2b243366976a1bdfbb12a5e257ca762c3";
117+ sha256 = "1wd5hxppj1gg9fa1ihcn3s2y0i70ykv2sf8sym6dlf3r4snda9zi";
121+ name = "base-orphans";
122+ src = pkgs.fetchgit {
123+ url = "https://github.com/haskell-compat/base-orphans.git";
124+ rev = "1af3a3512efbcc12e0c34637a0e433ab6e195932";
125+ sha256 = "14b6qwc3dbnmrhqk66a2cn4pvv3nf6kb3h7ym1hjn5xs7n62zhw1";
129+ name = "time-compat";
130+ src = pkgs.fetchgit {
131+ url = "https://github.com/haskellari/time-compat.git";
132+ rev = "67b8b063295601fb1db185baad363a3f33ed63a9";
133+ sha256 = "0nbjsn7yrygv4i1fd8x90mnf4janq536ffvkjd5zsnyzm8qk8k3j";
137+ name = "th-abstraction";
138+ src = pkgs.fetchgit {
139+ url = "https://github.com/glguy/th-abstraction.git";
140+ rev = "d75761bc5a0f912aeeb508e2c227b9fd830153fd";
141+ sha256 = "070ihxncymzsbrgvwmrm717n0qq5bf9nvc2k210nkil1cwrsnhvc";
146+ src = pkgs.fetchgit {
147+ url = "https://github.com/ekmett/tagged.git";
148+ rev = "15fcfe90c779efea951ecf4d451d709aed5f7d32";
149+ sha256 = "1x1wr4zf7k1kvd6rj06h9shw7p5di1jra9fysyw0jx7riiq0v3ch";
153+ name = "base-compat";
154+ src = getSubdir "base-compat" (pkgs.fetchgit {
155+ url = "https://github.com/haskell-compat/base-compat.git";
156+ rev = "e8dbac72251e898fc4b1c1abb34d6578da12f476";
157+ sha256 = "1gs15g8h7p8gab9j5fjvjlhrfv112w91plraf9chq80c5slvk016";
161+ name = "base-compat-batteries";
162+ src = getSubdir "base-compat-batteries" (pkgs.fetchgit {
163+ url = "https://github.com/haskell-compat/base-compat.git";
164+ rev = "e8dbac72251e898fc4b1c1abb34d6578da12f476";
165+ sha256 = "1gs15g8h7p8gab9j5fjvjlhrfv112w91plraf9chq80c5slvk016";
170+ src = patch ./aeson.patch (pkgs.fetchgit {
171+ url = "https://github.com/dfordivam/aeson.git";
172+ rev = "9a8f57a52eb748a030bc2bcf5c3159a5e2e696b2";
173+ sha256 = "1y8j3ddxxddpnb7c0vi73ijb08sr09z1gdzfg1rfyzn82d6i38zv";
compiler/ghcjs/ghcjs810-patched-boot-packages/ghcjs-base.patchnew file+471
@@ -0,0 +1,471 @@
1+diff --git a/Data/JSString.hs b/Data/JSString.hs
2+index 176aad4..9ca6693 100644
5+@@ -99,6 +99,7 @@ module Data.JSString ( JSString
13+@@ -1231,19 +1232,23 @@ splitAt (I# n) x = case js_splitAt n x of (# y, z #) -> (y, z)
14+ -- of @t@ of elements that satisfy @p@, and whose second is the
15+ -- remainder of the list.
16+ span :: (Char -> Bool) -> JSString -> (JSString, JSString)
17+-span p x = case js_length x of
18+- 0# -> (empty, empty)
19+- l -> let c0 = js_uncheckedIndex 0# x
20+- in if p (C# (chr# c0)) then loop 0# l else (empty, x)
21++span p x = let (# a, b #) = span_ p x in (a, b)
24++span_ :: (Char -> Bool) -> JSString -> (# JSString, JSString #)
25++span_ p x = case js_length x of
26++ 0# -> (# empty, empty #)
27++ l -> let c0 = js_uncheckedIndex 0# x
28++ in if p (C# (chr# c0)) then loop 0# l else (# empty, x #)
31+- | isTrue# (i >=# l) = (x, empty)
32++ | isTrue# (i >=# l) = (# x, empty #)
34+ let c = js_uncheckedIndex i x
35+ in if p (C# (chr# c))
36+ then loop (i +# charWidth c) l
37+- else (js_substr 0# i x, js_substr1 i x)
39++ else (# js_substr 0# i x, js_substr1 i x #)
42+ -- | /O(n)/ 'break' is like 'span', but the prefix returned is
43+ -- over elements that fail the predicate @p@.
44+diff --git a/GHCJS/Foreign.hs b/GHCJS/Foreign.hs
45+index 5bbc5c5..b128f24 100644
46+--- a/GHCJS/Foreign.hs
47++++ b/GHCJS/Foreign.hs
48+@@ -82,7 +82,7 @@ import GHCJS.Marshal
49+ import GHCJS.Marshal.Pure
51+ import Data.String (IsString(..))
52+-import qualified Data.Text as T
53++-- import qualified Data.Text as T
56+ class ToJSString a where
57+diff --git a/GHCJS/Foreign/Internal.hs b/GHCJS/Foreign/Internal.hs
58+index 5ac81f0..449bfe4 100644
59+--- a/GHCJS/Foreign/Internal.hs
60++++ b/GHCJS/Foreign/Internal.hs
61+@@ -100,10 +100,10 @@ import Data.Typeable (Typeable)
62+ import Data.ByteString (ByteString)
63+ import Data.ByteString.Unsafe (unsafePackAddressLen)
65+-import qualified Data.Text.Array as A
66+-import qualified Data.Text as T
67+-import qualified Data.Text.Internal as T
68+-import qualified Data.Text.Lazy as TL (Text, toStrict, fromStrict)
69++-- import qualified Data.Text.Array as A
70++-- import qualified Data.Text as T
71++-- import qualified Data.Text.Internal as T
72++-- import qualified Data.Text.Lazy as TL (Text, toStrict, fromStrict)
76+diff --git a/GHCJS/Marshal.hs b/GHCJS/Marshal.hs
77+index a36aca2..6256a73 100644
78+--- a/GHCJS/Marshal.hs
79++++ b/GHCJS/Marshal.hs
82+ module GHCJS.Marshal ( FromJSVal(..)
89+@@ -24,17 +24,17 @@ import Control.Applicative
91+ import Control.Monad.Trans.Maybe (MaybeT(..), runMaybeT)
93+-import qualified Data.Aeson as AE
94+-import Data.Attoparsec.Number (Number(..))
95++-- import qualified Data.Aeson as AE
96++-- import Data.Attoparsec.Number (Number(..))
97+ import Data.Bits ((.&.))
98+ import Data.Char (chr, ord)
99+-import qualified Data.HashMap.Strict as H
100++-- import qualified Data.HashMap.Strict as H
101+ import Data.Int (Int8, Int16, Int32)
102+ import qualified Data.JSString as JSS
103+-import qualified Data.JSString.Text as JSS
104++-- import qualified Data.JSString.Text as JSS
106+-import Data.Scientific (Scientific, scientific, fromFloatDigits)
107+-import Data.Text (Text)
108++-- import Data.Scientific (Scientific, scientific, fromFloatDigits)
109++-- import Data.Text (Text)
110+ import qualified Data.Vector as V
111+ import Data.Word (Word8, Word16, Word32, Word)
112+ import Data.Primitive.ByteArray
113+@@ -85,11 +85,11 @@ instance FromJSVal JSString where
114+ {-# INLINE fromJSValUnchecked #-}
115+ fromJSVal = fromJSVal_pure
116+ {-# INLINE fromJSVal #-}
117+-instance FromJSVal Text where
118+- fromJSValUnchecked = fromJSValUnchecked_pure
119+- {-# INLINE fromJSValUnchecked #-}
120+- fromJSVal = fromJSVal_pure
121+- {-# INLINE fromJSVal #-}
122++-- instance FromJSVal Text where
123++-- fromJSValUnchecked = fromJSValUnchecked_pure
124++-- {-# INLINE fromJSValUnchecked #-}
125++-- fromJSVal = fromJSVal_pure
126++-- {-# INLINE fromJSVal #-}
127+ instance FromJSVal Char where
128+ fromJSValUnchecked = fromJSValUnchecked_pure
129+ {-# INLINE fromJSValUnchecked #-}
130+@@ -154,24 +154,24 @@ instance FromJSVal Double where
131+ {-# INLINE fromJSValUnchecked #-}
132+ fromJSVal = fromJSVal_pure
133+ {-# INLINE fromJSVal #-}
134+-instance FromJSVal AE.Value where
135+- fromJSVal r = case jsonTypeOf r of
136+- JSONNull -> return (Just AE.Null)
137+- JSONInteger -> liftM (AE.Number . flip scientific 0 . (toInteger :: Int -> Integer))
139+- JSONFloat -> liftM (AE.Number . (fromFloatDigits :: Double -> Scientific))
141+- JSONBool -> liftM AE.Bool <$> fromJSVal r
142+- JSONString -> liftM AE.String <$> fromJSVal r
143+- JSONArray -> liftM (AE.Array . V.fromList) <$> fromJSVal r
145+- props <- OI.listProps (OI.Object r)
147+- propVals <- forM props $ \p -> do
148+- v <- MaybeT (fromJSVal =<< OI.getProp p (OI.Object r))
149+- return (JSS.textFromJSString p, v)
150+- return (AE.Object (H.fromList propVals))
151+- {-# INLINE fromJSVal #-}
152++-- instance FromJSVal AE.Value where
153++-- fromJSVal r = case jsonTypeOf r of
154++-- JSONNull -> return (Just AE.Null)
155++-- JSONInteger -> liftM (AE.Number . flip scientific 0 . (toInteger :: Int -> Integer))
157++-- JSONFloat -> liftM (AE.Number . (fromFloatDigits :: Double -> Scientific))
159++-- JSONBool -> liftM AE.Bool <$> fromJSVal r
160++-- JSONString -> liftM AE.String <$> fromJSVal r
161++-- JSONArray -> liftM (AE.Array . V.fromList) <$> fromJSVal r
163++-- props <- OI.listProps (OI.Object r)
165++-- propVals <- forM props $ \p -> do
166++-- v <- MaybeT (fromJSVal =<< OI.getProp p (OI.Object r))
167++-- return (JSS.textFromJSString p, v)
168++-- return (AE.Object (H.fromList propVals))
169++-- {-# INLINE fromJSVal #-}
170+ instance (FromJSVal a, FromJSVal b) => FromJSVal (a,b) where
171+ fromJSVal r = runMaybeT $ (,) <$> jf r 0 <*> jf r 1
172+ {-# INLINE fromJSVal #-}
173+@@ -204,15 +204,15 @@ jf r n = MaybeT $ do
174+ instance ToJSVal JSVal where
175+ toJSVal = toJSVal_pure
176+ {-# INLINE toJSVal #-}
177+-instance ToJSVal AE.Value where
178+- toJSVal = toJSVal_aeson
179+- {-# INLINE toJSVal #-}
180++-- instance ToJSVal AE.Value where
181++-- toJSVal = toJSVal_aeson
182++-- {-# INLINE toJSVal #-}
183+ instance ToJSVal JSString where
184+ toJSVal = toJSVal_pure
185+ {-# INLINE toJSVal #-}
186+-instance ToJSVal Text where
187+- toJSVal = toJSVal_pure
188+- {-# INLINE toJSVal #-}
189++-- instance ToJSVal Text where
190++-- toJSVal = toJSVal_pure
191++-- {-# INLINE toJSVal #-}
192+ instance ToJSVal Char where
193+ toJSVal = return . pToJSVal
194+ {-# INLINE toJSVal #-}
195+@@ -285,21 +285,21 @@ foreign import javascript unsafe "[$1,$2,$3,$4,$5]" arr5 :: JSVal -> J
196+ foreign import javascript unsafe "[$1,$2,$3,$4,$5,$6]" arr6 :: JSVal -> JSVal -> JSVal -> JSVal -> JSVal -> JSVal -> IO JSVal
197+ foreign import javascript unsafe "[$1,$2,$3,$4,$5,$6,$7]" arr7 :: JSVal -> JSVal -> JSVal -> JSVal -> JSVal -> JSVal -> JSVal -> IO JSVal
199+-toJSVal_aeson :: AE.ToJSON a => a -> IO JSVal
200+-toJSVal_aeson x = cv (AE.toJSON x)
203++-- toJSVal_aeson :: AE.ToJSON a => a -> IO JSVal
204++-- toJSVal_aeson x = cv (AE.toJSON x)
206++-- cv = convertValue
208+- convertValue :: AE.Value -> IO JSVal
209+- convertValue AE.Null = return jsNull
210+- convertValue (AE.String t) = return (pToJSVal t)
211+- convertValue (AE.Array a) = (\(AI.SomeJSArray x) -> x) <$>
212+- (AI.fromListIO =<< mapM convertValue (V.toList a))
213+- convertValue (AE.Number n) = toJSVal (realToFrac n :: Double)
214+- convertValue (AE.Bool b) = return (toJSBool b)
215+- convertValue (AE.Object o) = do
216+- obj@(OI.Object obj') <- OI.create
217+- mapM_ (\(k,v) -> convertValue v >>= \v' -> OI.setProp (JSS.textToJSString k) v' obj) (H.toList o)
219++-- convertValue :: AE.Value -> IO JSVal
220++-- convertValue AE.Null = return jsNull
221++-- convertValue (AE.String t) = return (pToJSVal t)
222++-- convertValue (AE.Array a) = (\(AI.SomeJSArray x) -> x) <$>
223++-- (AI.fromListIO =<< mapM convertValue (V.toList a))
224++-- convertValue (AE.Number n) = toJSVal (realToFrac n :: Double)
225++-- convertValue (AE.Bool b) = return (toJSBool b)
226++-- convertValue (AE.Object o) = do
227++-- obj@(OI.Object obj') <- OI.create
228++-- mapM_ (\(k,v) -> convertValue v >>= \v' -> OI.setProp (JSS.textToJSString k) v' obj) (H.toList o)
232+diff --git a/GHCJS/Marshal/Pure.hs b/GHCJS/Marshal/Pure.hs
233+index 902fa20..268489d 100644
234+--- a/GHCJS/Marshal/Pure.hs
235++++ b/GHCJS/Marshal/Pure.hs
236+@@ -28,11 +28,11 @@ import Data.Data
237+ import Data.Int (Int8, Int16, Int32)
238+ import Data.JSString.Internal.Type
240+-import Data.Text (Text)
241++-- import Data.Text (Text)
242+ import Data.Typeable
243+ import Data.Word (Word8, Word16, Word32, Word)
244+ import Data.JSString
245+-import Data.JSString.Text
246++-- import Data.JSString.Text
247+ import Data.Bits ((.&.))
248+ import Unsafe.Coerce (unsafeCoerce)
250+@@ -65,8 +65,8 @@ instance PFromJSVal JSString where pFromJSVal = JSString
251+ {-# INLINE pFromJSVal #-}
252+ instance PFromJSVal [Char] where pFromJSVal = Prim.fromJSString
253+ {-# INLINE pFromJSVal #-}
254+-instance PFromJSVal Text where pFromJSVal = textFromJSVal
255+- {-# INLINE pFromJSVal #-}
256++-- instance PFromJSVal Text where pFromJSVal = textFromJSVal
257++-- {-# INLINE pFromJSVal #-}
258+ instance PFromJSVal Char where pFromJSVal x = C# (jsvalToChar x)
259+ {-# INLINE pFromJSVal #-}
260+ instance PFromJSVal Bool where pFromJSVal = isTruthy
261+@@ -103,8 +103,8 @@ instance PToJSVal JSString where pToJSVal = jsval
262+ {-# INLINE pToJSVal #-}
263+ instance PToJSVal [Char] where pToJSVal = Prim.toJSString
264+ {-# INLINE pToJSVal #-}
265+-instance PToJSVal Text where pToJSVal = jsval . textToJSString
266+- {-# INLINE pToJSVal #-}
267++-- instance PToJSVal Text where pToJSVal = jsval . textToJSString
268++-- {-# INLINE pToJSVal #-}
269+ instance PToJSVal Char where pToJSVal (C# c) = charToJSVal c
270+ {-# INLINE pToJSVal #-}
271+ instance PToJSVal Bool where pToJSVal True = jsTrue
272+diff --git a/JavaScript/JSON/Types/Instances.hs b/JavaScript/JSON/Types/Instances.hs
273+index 2b288ec..6d7074c 100644
274+--- a/JavaScript/JSON/Types/Instances.hs
275++++ b/JavaScript/JSON/Types/Instances.hs
276+@@ -57,7 +57,7 @@ import Control.Applicative ((<$>), (<*>), (<|>), pure, empty)
278+ import Data.JSString (JSString)
279+ import qualified Data.JSString as JSS
280+-import qualified Data.JSString.Text as JSS
281++-- import qualified Data.JSString.Text as JSS
283+ import JavaScript.Array (JSArray)
284+ import qualified JavaScript.Array as JSA
285+@@ -335,21 +335,21 @@ instance FromJSON JSString where
286+ parseJSON = withJSString "JSString" pure
287+ {-# INLINE parseJSON #-}
289+-instance ToJSON Text where
290+- toJSON = stringValue . JSS.textToJSString
291+- {-# INLINE toJSON #-}
292++-- instance ToJSON Text where
293++-- toJSON = stringValue . JSS.textToJSString
294++-- {-# INLINE toJSON #-}
296+-instance FromJSON Text where
297+- parseJSON = withJSString "Text" ( pure . JSS.textFromJSString )
298+- {-# INLINE parseJSON #-}
299++-- instance FromJSON Text where
300++-- parseJSON = withJSString "Text" ( pure . JSS.textFromJSString )
301++-- {-# INLINE parseJSON #-}
303+-instance ToJSON LT.Text where
304+- toJSON = stringValue . JSS.textToJSString . LT.toStrict
305+- {-# INLINE toJSON #-}
306++-- instance ToJSON LT.Text where
307++-- toJSON = stringValue . JSS.textToJSString . LT.toStrict
308++-- {-# INLINE toJSON #-}
310+-instance FromJSON LT.Text where
311+- parseJSON = withJSString "Lazy Text" $ pure . LT.fromStrict . JSS.textFromJSString
312+- {-# INLINE parseJSON #-}
313++-- instance FromJSON LT.Text where
314++-- parseJSON = withJSString "Lazy Text" $ pure . LT.fromStrict . JSS.textFromJSString
315++-- {-# INLINE parseJSON #-}
317+ instance (ToJSON a) => ToJSON [a] where
318+ toJSON = arrayValue . arrayValueList . map toJSON
319+diff --git a/JavaScript/Web/Canvas.hs b/JavaScript/Web/Canvas.hs
320+index 0a7684c..74490c2 100644
321+--- a/JavaScript/Web/Canvas.hs
322++++ b/JavaScript/Web/Canvas.hs
323+@@ -69,7 +69,7 @@ import Control.Monad
326+ import Data.Maybe (fromJust)
327+-import Data.Text (Text)
328++-- import Data.Text (Text)
329+ import Data.Typeable
331+ import GHCJS.Foreign
332+diff --git a/ghcjs-base.cabal b/ghcjs-base.cabal
333+index 4a64694..acf8806 100644
334+--- a/ghcjs-base.cabal
335++++ b/ghcjs-base.cabal
336+@@ -55,7 +55,7 @@ library
337+ Data.JSString.RealFloat
338+ Data.JSString.RegExp
339+ Data.JSString.Internal
341++ -- Data.JSString.Text
342+ Data.JSString.Internal.Fusion
343+ Data.JSString.Internal.Fusion.Types
344+ Data.JSString.Internal.Fusion.Common
345+@@ -78,12 +78,12 @@ library
346+ JavaScript.Array.Internal
350+- JavaScript.JSON.Types
351+- JavaScript.JSON.Types.Class
352+- JavaScript.JSON.Types.Generic
353+- JavaScript.JSON.Types.Instances
354+- JavaScript.JSON.Types.Internal
356++ -- JavaScript.JSON.Types
357++ -- JavaScript.JSON.Types.Class
358++ -- JavaScript.JSON.Types.Generic
359++ -- JavaScript.JSON.Types.Instances
360++ -- JavaScript.JSON.Types.Internal
363+ JavaScript.Object.Internal
364+@@ -115,11 +115,11 @@ library
365+ JavaScript.Web.Storage
366+ JavaScript.Web.Storage.Internal
367+ JavaScript.Web.StorageEvent
368+- JavaScript.Web.XMLHttpRequest
369++ -- JavaScript.Web.XMLHttpRequest
370+ JavaScript.Web.WebSocket
371+ JavaScript.Web.Worker
372+- other-modules: GHCJS.Internal.Types
373+ Data.JSString.Internal.Type
374++ other-modules: GHCJS.Internal.Types
375+ JavaScript.TypedArray.Internal.Types
376+ JavaScript.TypedArray.ArrayBuffer.Internal
377+ JavaScript.TypedArray.DataView.Internal
378+@@ -144,15 +144,15 @@ library
380+ binary >= 0.8 && < 0.11,
381+ bytestring >= 0.10 && < 0.11,
382+- text >= 1.1 && < 1.3,
383+- aeson >= 0.8 && < 1.6,
384+- scientific >= 0.3 && < 0.4,
385++ -- text >= 1.1 && < 1.3,
386++ -- aeson >= 0.8 && < 1.6,
387++ -- scientific >= 0.3 && < 0.4,
388+ vector >= 0.10 && < 0.13,
389+ containers >= 0.5 && < 0.7,
390+ time >= 1.5 && < 1.10,
391+- hashable >= 1.2 && < 1.4,
392+- unordered-containers >= 0.2 && < 0.3,
393+- attoparsec >= 0.11 && < 0.15,
394++ -- hashable >= 1.2 && < 1.4,
395++ -- unordered-containers >= 0.2 && < 0.3,
396++ -- attoparsec >= 0.11 && < 0.15,
397+ transformers >= 0.3 && < 0.6,
398+ primitive >= 0.5 && < 0.8,
399+ deepseq >= 1.3 && < 1.5,
400+@@ -161,37 +161,37 @@ library
401+ if !impl(ghcjs) && !os(ghcjs)
405+- type: exitcode-stdio-1.0
406+- hs-source-dirs: test
408+- other-modules: Tests.Marshal
410+- Tests.Properties.Numeric
411+- Tests.SlowFunctions
412+- Tests.QuickCheckUtils
430+- quickcheck-unicode,
432+- test-framework >= 0.4,
433+- test-framework-hunit >= 0.2,
434+- test-framework-quickcheck2 >= 0.2
435+- default-language: Haskell2010
436+- if !impl(ghcjs) && !os(ghcjs)
439++-- type: exitcode-stdio-1.0
440++-- hs-source-dirs: test
441++-- main-is: Tests.hs
442++-- other-modules: Tests.Marshal
444++-- Tests.Properties.Numeric
445++-- Tests.SlowFunctions
446++-- Tests.QuickCheckUtils
447++-- Tests.Regressions
453++-- QuickCheck >= 2.7,
464++-- quickcheck-unicode,
466++-- test-framework >= 0.4,
467++-- test-framework-hunit >= 0.2,
468++-- test-framework-quickcheck2 >= 0.2
469++-- default-language: Haskell2010
470++-- if !impl(ghcjs) && !os(ghcjs)
compiler/ghcjs/ghcjs810-patched-boot-packages/hashable.patchnew file+99
@@ -0,0 +1,99 @@
1+diff --git a/hashable.cabal b/hashable.cabal
2+index 4197060..8c339b1 100755
5+@@ -88,6 +88,8 @@ library
6+ build-depends: ghc-bignum ==1.0.* || ==1.2.*
10++ build-depends: ghcjs-base
12+ build-depends: integer-gmp >=0.4 && <1.1
14+diff --git a/src/Data/Hashable/Class.hs b/src/Data/Hashable/Class.hs
15+index c7dd8c5..0e3bbe7 100755
16+--- a/src/Data/Hashable/Class.hs
17++++ b/src/Data/Hashable/Class.hs
20+ {-# LANGUAGE Trustworthy #-}
23++{-# LANGUAGE JavaScriptFFI, UnboxedTuples, GHCForeignImportPrim #-}
26+ #if __GLASGOW_HASKELL__ >= 801
27+ {-# LANGUAGE PolyKinds #-} -- For TypeRep instances
29+@@ -72,7 +76,9 @@ import Data.Int (Int8, Int16, Int32, Int64)
30+ import Data.List (foldl')
31+ import Data.Ratio (Ratio, denominator, numerator)
32+ import qualified Data.Text as T
34+ import qualified Data.Text.Array as TA
36+ import qualified Data.Text.Internal as T
37+ import qualified Data.Text.Lazy as TL
38+ import Data.Version (Version(..))
39+@@ -152,7 +158,11 @@ import GHC.Exts (Int (..), sizeofByteArray#)
40+ # define MIN_VERSION_integer_gmp_1_0_0
44+ import GHC.Exts (Int(..))
46++import GHC.Exts (Int(..), Int#)
48+ import GHC.Integer.GMP.Internals (Integer(..))
49+ # if defined(MIN_VERSION_integer_gmp_1_0_0)
50+ import GHC.Exts (sizeofByteArray#)
51+@@ -195,6 +205,10 @@ import Data.Kind (Type)
52+ import Data.Hashable.Imports
53+ import Data.Hashable.LowLevel
56++import Data.JSString (JSString)
59+ #include "MachDeps.h"
61+ infixl 0 `hashWithSalt`
62+@@ -676,17 +690,18 @@ instance Hashable BSI.ShortByteString where
65+ instance Hashable T.Text where
67+ hashWithSalt salt (T.Text arr off len) =
68+ hashByteArrayWithSalt (TA.aBA arr) (off `shiftL` 1) (len `shiftL` 1)
69+ (hashWithSalt salt len)
71++ hashWithSalt salt (T.Text txt) =
72++ let (# ba, len #) = js_textFromJSString txt
73++ in hashByteArrayWithSalt ba (0 `shiftL` 1) (I# len `shiftL` 1) salt
76+ instance Hashable TL.Text where
77+- hashWithSalt salt = finalise . TL.foldlChunks step (SP salt 0)
79+- finalise (SP s l) = hashWithSalt s l
80+- step (SP s l) (T.Text arr off len) = SP
81+- (hashByteArrayWithSalt (TA.aBA arr) (off `shiftL` 1) (len `shiftL` 1) s)
83++ hashWithSalt = TL.foldlChunks hashWithSalt
85+ -- | Compute the hash of a ThreadId.
86+ hashThreadId :: ThreadId -> Int
87+@@ -880,6 +895,12 @@ instance Hashable1 Option where liftHashWithSalt h salt (Option a) = liftHashWit
92++foreign import javascript unsafe
94++ js_textFromJSString :: JSString -> (# ByteArray#, Int# #)
97+ -- instances for @Data.Functor.{Product,Sum,Compose}@, present
98+ -- in base-4.9 and onward.
99+ #if MIN_VERSION_base(4,9,0)
compiler/ghcjs/ghcjs810-src.json+2−2
@@ -1,6 +1,6 @@
2 "url": "https://github.com/ghcjs/ghcjs",
2 "url": "https://github.com/ghcjs/ghcjs",
3− "rev": "2453b111a20ac99a1b1d4de2c8aaa824be4114f5",
3+ "rev": "bb403ec3a1506831aae2d608b7b21c1937e4fb20",
4− "sha256": "sha256-luapKcU4UUQLgSVh+Locfa/PMe9nZOZI1n9L37nuJdI=",
4+ "sha256": "0bs3hijwn0p4wvphwg78mwbz8qyi10wqgfh8yfaszaj1766892ba",
5 "fetchSubmodules": true
5 "fetchSubmodules": true
compiler/ghcjs/patches/810/boot-optimization-flags.patchnew file+14
@@ -0,0 +1,14 @@
1+diff --git a/src-bin/Boot.hs b/src-bin/Boot.hs
2+index 2e35a26..5db2f9b 100755
5+@@ -721,6 +721,9 @@ cabalConfigureFlags = do
6+ , "--prefix", T.pack (locs ^. blGhcjsTopDir)
7+ , "--configure-option", "--host=js-unknown-ghcjs"
8+ , "--ghcjs-options=-fwrite-ide-info"
9++ , "--ghcjs-options=-O2"
10++ , "--ghcjs-options=-fexpose-all-unfoldings"
11++ , "--ghcjs-options=-fspecialise-aggressively"
12+ , "--enable-debug-info"
13+ , "--disable-library-stripping"
14+ , "--disable-executable-stripping"
compiler/ghcjs/patches/810/fast-weak.patchnew file+87
@@ -0,0 +1,87 @@
1+diff --git a/lib/boot/shims/src/gc.js.pp b/lib/boot/shims/src/gc.js.pp
2+index 76321b2..a2cf416 100644
3+--- a/lib/boot/shims/src/gc.js.pp
4++++ b/lib/boot/shims/src/gc.js.pp
5+@@ -444,6 +444,50 @@ function h$follow(obj, sp) {
6+ } else if(typeof c.len === 'number' && c.buf instanceof ArrayBuffer) {
7+ TRACE_GC("marking ByteArray");
9++ } else if(c instanceof h$FastWeak) {
11++ if(c.ticket !== null && !IS_MARKED(c.ticket)) {
12++ c.ticket = null; // If the ticket isn't reachable, this will let it get cleaned up by the JS gc; if it is reachable, it'll fill this back in
14++ } else if(c instanceof h$FastWeakTicket) {
16++ if(!IS_MARKED(c.val)) {
19++ if(IS_MARKED(c.weak)) {
20++ // In this case, the weak side has been marked first, which means it's been cleared; restore it
23++ } else if(c instanceof h$FastWeakBag) {
25++ var j = 0; // j should always be equal to the number of not-yet-necessarily-dead tickets that have been traversed; this should always be less than or equal to i
26++ for(i = 0; i < c.tickets.length; i++) {
27++ // Any nulls left in the array prior to checking on the tickets must be tickets that died in the last GC, so we ignore them
28++ if(c.tickets[i] !== null) {
30++ c.tickets[i].pos = j;
32++ if(!IS_MARKED(c.tickets[i])) {
33++ // If the ticket isn't reachable, this will let it get cleaned up by the JS gc; if it is reachable, it'll fill this back in
34++ c.tickets[j] = null;
35++ } else if(j !== i) {
36++ // We need to move the item
37++ c.tickets[j] = c.tickets[i];
38++ } // If it's marked and not moving, don't do anything
42++ c.tickets.length = j; // Shrink the array if any nulls have been dropped
43++ } else if(c instanceof h$FastWeakBagTicket) {
45++ if(!IS_MARKED(c.val)) {
48++ if(IS_MARKED(c.bag)) {
49++ // In this case, the weak side has been marked first, which means it's been cleared; restore it
50++ c.bag.tickets[c.pos] = c;
53+ } else if(c instanceof h$Weak) {
55+ } else if(c instanceof h$MVar) {
56+diff --git a/lib/boot/shims/src/weak.js.pp b/lib/boot/shims/src/weak.js.pp
57+index 8df313b..d537027 100644
58+--- a/lib/boot/shims/src/weak.js.pp
59++++ b/lib/boot/shims/src/weak.js.pp
60+@@ -87,3 +87,27 @@ function h$finalizeWeak(w) {
61+ RETURN_UBX_TUP2(r, 1);
65++function h$FastWeak(ticket) {
66++ this.ticket = ticket;
70++function h$FastWeakTicket(val) {
72++ this.weak = new h$FastWeak(this);
76++function h$FastWeakBag() {
81++function h$FastWeakBagTicket(bag, val) {
84++ this.pos = bag.tickets.length;
85++ bag.tickets.push(this);
compiler/windows/include/synchapi.hnew file+1
compiler/windows/include/windows.hnew file+18
@@ -0,0 +1,18 @@
1+// Just enoough windows.h stuff to make rts headers usable when building GHC cross compiler.
2+// See compiler/ghc/default.nix for where this is used.
8+typedef unsigned long DWORD;
11+typedef struct _RTL_CONDITION_VARIABLE { PVOID Ptr; } RTL_CONDITION_VARIABLE;
12+typedef RTL_CONDITION_VARIABLE CONDITION_VARIABLE;
14+typedef struct _RTL_SRWLOCK { PVOID Ptr; } RTL_SRWLOCK;
15+typedef RTL_SRWLOCK SRWLOCK;
@@ -2,11 +2,7 @@
2 # allow building for windows
2 # allow building for windows
3 allowUnsupportedSystem = true;
3 allowUnsupportedSystem = true;
4 # we want the 64bit wine version
4 # we want the 64bit wine version
5− # See overlays/wine.nix as well!
6 wine.build = "wine64";
5 wine.build = "wine64";
7 wine.release = "stable";
6 wine.release = "stable";
9− # This is marked insecure on 20.03, but many packages still depend on it
10− permittedInsecurePackages = [ "openssl-1.0.2u" ];
@@ -1,29 +1,29 @@
1−{ checkMaterialization ? false # Allows us to easily switch on materialization checking
2−, system ? builtins.currentSystem
4−, ... }@args: rec {
1+{...}@args:
5− sources = (import ./nix/sources.nix) // sourcesOverride;
2+
6− config = import ./config.nix;
3+let
7− overlays = [ allOverlays.combined ] ++ (
4+ nixpkgsSrc =
8− if checkMaterialization == true
5+ builtins.fetchTarball {
9− then [(
6+ url = "https://github.com/NixOS/nixpkgs/archive/110a2c9ebbf5d4a94486854f18a37a938cfacbbb.tar.gz";
10− final: prev: {
7+ sha256 = "sha256-leWXLchbAbqOlLT6tju631G40SzQWPqaAXQG3zH1Imw=";
11− haskell-nix = prev.haskell-nix // {
8+ };
12− checkMaterialization = true;
9+ pkgs = args.pkgs or (import nixpkgsSrc {});
15− )]
12+ url = "https://github.com/edolstra/flake-compat/archive/5523c47f13259b981c49b26e28499724a5125fd8.tar.gz";
16− else []
13+ sha256 = "sha256-7IySNHriQjzOZ88DDk6VDPf1GoUaOrOeUdukY62o52o=";
18− final: prev: {
15+ self = import flake-compat {
19− haskell-nix = prev.haskell-nix // {
16+ # We bypass flake-compat's rootSrc cleaning by evading its detection of this as a git
20− inherit overlays;
17+ # repo.
21− sources = prev.haskell-nix.sources // sourcesOverride;
18+ # This is done for 3 reasons:
22− };
19+ # * To workaround https://github.com/edolstra/flake-compat/issues/25
23− }
20+ # * Make `updateMaterilized` scripts work (if filtering is done by `flake-compat`
24− )];
21+ # the `updateMaterilized` scripts will try to update the copy in the store).
25− allOverlays = import ./overlays args;
22+ # * Allow more granular filtering done by the tests (the use of `cleanGit` and `cleanSourceWith`
26− nixpkgsArgs = { inherit config overlays system; };
23+ # in `test/default.nix`). If `flake-compat` copies the whole git repo, any change to the
27− pkgs = import sources.nixpkgs nixpkgsArgs;
24+ # repo causes a change of input for all tests.
28− pkgs-unstable = import sources.nixpkgs-unstable nixpkgsArgs;
25+ src = { outPath = ./.; };
28+in self.defaultNix // (self.defaultNix.internal.compat
29+({ system = args.pkgs.system or builtins.currentSystem; } // args))
docs/dev/hix.mdnew file+27
@@ -0,0 +1,27 @@
1+# Making changes to Hix
3+When making changes to the way Hix works it is often useful to be able to
4+test the changes locally before uploading them to github.
6+## Hix Command Wrappers
8+Install the hix command wrappers after making changes to a local clone of haskell.nix:
11+nix-env -iA hix -f /path/to/local/haskell.nix
15+Or override the version of haskell.nix used by the commands with the `HIX_ROOT` environment variable:
18+HIX_ROOT=/path/to/local/haskell.nix hix-shell
23+For flakes use `--override-input` to point to the modified haskell.nix:
26+nix develop --override-input haskellNix /path/to/local/haskell.nix
docs/reference/library.md+4−2
@@ -144,7 +144,7 @@ Then feeding its result into [mkStackPkgSet](#mkstackpkgset) passing also
144| `hsPkgs` | Attrset of [Haskell Packages](#haskell-package) | Buildable packages, created from `packages` |
144| `hsPkgs` | Attrset of [Haskell Packages](#haskell-package) | Buildable packages, created from `packages` |
145| `stack-nix` | | `projectNix` attribute of [`callStackToNix`](#callstacktonix) return value |
145| `stack-nix` | | `projectNix` attribute of [`callStackToNix`](#callstacktonix) return value |
146| `shellFor` | Function | [`shellFor`](#shellfor) |
146| `shellFor` | Function | [`shellFor`](#shellfor) |
147−| `ghcWithHoogle` | Function | [`ghcWithHoogle`](#ghcwithhoogle) |
147+| `ghcWithHoogle` | Function | [`ghcWithHoogle`](#ghcwithhoogle) |
148| `ghcWithPackages` | Function | [`ghcWithPackages`](#ghcwithpackages) |
148| `ghcWithPackages` | Function | [`ghcWithPackages`](#ghcwithpackages) |
@@ -163,9 +163,11 @@ Then feeding its result into [mkCabalProjectPkgSet](#mkcabalprojectpkgset) passi
163| `plan-nix` | | `projectNix` attribute of [`callCabalProjectToNix`](#callcabalprojecttonix) return value |
163| `plan-nix` | | `projectNix` attribute of [`callCabalProjectToNix`](#callcabalprojecttonix) return value |
164| `index-state` | | `index-state` attribute of [`callCabalProjectToNix`](#callcabalprojecttonix) return value |
164| `index-state` | | `index-state` attribute of [`callCabalProjectToNix`](#callcabalprojecttonix) return value |
165| `shellFor` | Function | [`shellFor`](#shellfor) |
165| `shellFor` | Function | [`shellFor`](#shellfor) |
166−| `ghcWithHoogle` | Function | [`ghcWithHoogle`](#ghcwithhoogle) |
166+| `ghcWithHoogle` | Function | [`ghcWithHoogle`](#ghcwithhoogle) |
167| `ghcWithPackages` | Function | [`ghcWithPackages`](#ghcwithpackages) |
167| `ghcWithPackages` | Function | [`ghcWithPackages`](#ghcwithpackages) |
168| `projectCross` | Attrset | Like `pkgs.pkgsCross.<system>` from nixpkgs `p.projectCross.<system>` returns the project results for cross compilation (where system is a member of nixpkgs lib.systems.examples). So `p.projectCross.ghcjs.hsPkgs` is the same as `hsPkgs` but compiled with ghcjs |
168| `projectCross` | Attrset | Like `pkgs.pkgsCross.<system>` from nixpkgs `p.projectCross.<system>` returns the project results for cross compilation (where system is a member of nixpkgs lib.systems.examples). So `p.projectCross.ghcjs.hsPkgs` is the same as `hsPkgs` but compiled with ghcjs |
169+| `appendModule` | Function | Re-eval the project with an extra module (or module list). |
170+| `extend` and `appendOverlays` | Function | Modify a project, or add attributes, through overlays: `p.extend(final: prev: { })`. The overlays are carried-over `projectCross` and `appendModule` invocations. |
170## project, cabalProject and stackProject
172## project, cabalProject and stackProject
docs/reference/supported-ghc-versions.md+39−18
@@ -1,28 +1,49 @@
1# Supported GHC Versions
1# Supported GHC Versions
4−The following GHC versions are defined in `haskell.nix` (i.e. there is a derivation for them even if it isn't necessarily cached):
3+The following GHC versions are defined in `haskell.nix` (there is a derivation
4+for each, though not all are cached or tested by CI):
6- 8.6.{1,2,3,4,5}
6- 8.6.{1,2,3,4,5}
7- 8.8.{1,2,3,4}
7- 8.8.{1,2,3,4}
8−- 8.10.{1,2,3,4}
8+- 8.10.{1,2,3,4,5}
13+The following table shows the Nixpkgs/GHC versions which are built/cached, and
14+which of those are further tested. If you use a combination of Nixpkgs version
15+and GHC version which is in this table, you should hit our cache, saving
16+considering time by not building GHC and a few additional tools.
18+Note that if you try to use `haskell.nix` as an overlay over Nixpkgs from a
19+standard Nixpkgs channel you will likely get a cache miss. To hit our cache you
20+really should use an instance of Nixpkgs provided by `haskell.nix` itself.
10−The following table shows the nixpkgs/GHC versions which are built by CI, and which of those are tested.
22+| Nixpkgs version | Nixpkgs pinning | GHC version | `compiler-nix-name` | Tested in CI? |
11−If you use a combination of nixpkgs version and GHC version which is in this table, you should get cache hits from our cache.
23+|------------------|--------------------|-------------|-----------------------|---------------|
12−The "nixpkgs versions" refer to the versions that `haskell.nix` provides; if you use your own version of nixpkgs you will likely not get cache hit.
24+| 21.11 | `nixpkgs-2111` | 8.6.5 | `ghc865` | No |
25+| 21.11 | `nixpkgs-2111` | 8.10.7 | `ghc8107` | Yes |
26+| unstable | `nixpkgs-unstable` | 8.6.5 | `ghc865` | No |
27+| unstable | `nixpkgs-unstable` | 8.8.4 | `ghc884` | No |
28+| unstable | `nixpkgs-unstable` | 8.10.7 | `ghc8107` | Yes |
29+| unstable | `nixpkgs-unstable` | 9.0.2 | `ghc902` | Yes |
30+| unstable | `nixpkgs-unstable` | 9.2.4 | `ghc924` | Yes |
14−| Nixpkgs version | GHC version | Tested? |
32+See [ci.nix](https://github.com/input-output-hk/haskell.nix/blob/master/ci.nix)
15−|------------------|-------------|---------|
33+for the source of truth about what is built and tested (in the off chance this
16−| 20.03 | 8.6.5 | Y |
34+document is out-of-sync with your checkout).
19−| 20.09 | 8.10.4 | Y |
20−| nixpkgs-unstable | 8.6.5 | Y |
21−| nixpkgs-unstable | 8.8.4 | Y |
22−| nixpkgs-unstable | 8.10.4 | Y |
24−See [ci.nix](https://github.com/input-output-hk/haskell.nix/blob/master/ci.nix) for the source of truth about what is built and tested.
36+See the [getting started guide](../tutorials/getting-started.md) for
37+instructions on how to set up Nix to take advantage of our cache when building.
38+This guide also covers where to use the Nixpkgs pinning and `compiler-nix-name`
39+settings from the table above. For further information, see the [instructions
40+for how to pin Nixpkgs](../dev/nixpkgs-pin.md).
26−See [overlays/bootstrap.nix](https://github.com/input-output-hk/haskell.nix/blob/master/overlays/bootstrap.nix) for a list of all the valid `compiler-nix-names`.
43+[overlays/bootstrap.nix](https://github.com/input-output-hk/haskell.nix/blob/master/overlays/bootstrap.nix)
44+for a full list of all the valid `compiler-nix-name`s beyond what's
45+cached/tested in CI. You're free to use these, but be ready for longer build
28−See also: [Instructions on adding new GHC versions](../dev/adding-new-ghc.md).
48+Lastly, see [instructions on adding new GHC versions](../dev/adding-new-ghc.md)
49+in the event that what's in `haskell.nix` doesn't suit your needs.
docs/tutorials/ca-derivations.mdnew file+65
@@ -0,0 +1,65 @@
1+# Content addressed derivations
4+Floating content addressed derivations (from now *CA derivations*) is an experimental feature which substantially change how the hashes in the store paths are calculated.
5+Indeed, normally derivations are input addressed i.e. the outputs store paths depends only on the derivation inputs, instead with CA derivations they depend on the content of the outputs.
7+This has two main advantages:
9+- The so-called "early cutoff", namely the ability of Nix to stop a build if the build outputs would be something already built.
10+For example suppose you add a comment in an Haskell source, at this point Nix will rebuild the component depending on this source but since the output will be the same (adding a comment is an "output-invariant" change for `ghc`) every other component that depends on that will not be rebuilt.
11+- Users of the same Nix store does not need to trust each other when using substituters.
13+You can find more information in the [ca-derivations page on the wiki](https://nixos.wiki/wiki/Ca-derivations) (and in the other resources linked there).
16+### Enable CA derivations in your system
17+First of all your Nix installation must support the `ca-derivations` experimental feature, this can done by adding the following in your `nix.conf`:
20+experimental-features = ca-derivations
26+ experimental-features = ca-derivations
30+## Enable CA derivations in your project
31+At this point you can pass a new module to `project'` that tells `haskell.nix` to build every component in the project as CA derivation.
34+haskell-nix.project' {
38+ contentAddressed = true;
39+ # packages.project-name.components.exes.executable.contentAddressed = true;
44+Optionally you can also specify which components you don't want to be content addressed.
47+### Limitation of the current CA derivations implementation
49+As explained in the [RFC 62](https://github.com/tweag/rfcs/blob/cas-rfc/rfcs/0062-content-addressed-paths.md)
51+> The current implementation has a naive approach that just forbids fetching a path if the local system has a different realisation for the same drv output. This approach is simple and correct, but it's possible that it might not be good-enough in practice as it can result in a totally useless binary cache in some pathological cases.
53+For example, suppose that your machine builds a derivation `A` producing an output `A.out` in your store and that after that a CI machine builds the same derivation `A` but producing a different output `A.out'` and populating a cache with this output.
54+At this point, if you need to build a derivation `B` that depends on `A`, since you already have the realisation `A.out` in your local store and you can't get `B.out` from the cache and you will end up building `B` even if one of its realisation is in the cache.
56+This means that, in some cases, enabling CA derivations would lead to more rebuilds than not having it.
59+Hydra currently doesn't support CA derivations, efforts are being made in this direction.
62+### GHC is not deterministic
63+Currently `ghc` is determinstic only disabling the parallel building i.e. passing `-j1`. [Here](https://gitlab.haskell.org/ghc/ghc/-/issues/12935) the upstream issue.
65+Having a deterministic `ghc` would be a dream since it will automatically fix all the pathological cases about substituters discussed above and would allow `haskell.nix` to parallel build even when using CA derivations.
docs/tutorials/getting-started-flakes.md+33−5
@@ -22,10 +22,34 @@ You need to add the following sections to `/etc/nix/nix.conf` or, if you are a t
24trusted-public-keys = [...] hydra.iohk.io:f/Ea+s+dFdN+3Y/G+FDgSq+a5NEWhJGzdjvKNGv0/EQ= [...]
24trusted-public-keys = [...] hydra.iohk.io:f/Ea+s+dFdN+3Y/G+FDgSq+a5NEWhJGzdjvKNGv0/EQ= [...]
25−substituters = [...] https://hydra.iohk.io [...]
25+substituters = [...] https://cache.iog.io [...]
28+If you're running NixOS, you need to add/update the following in your `/etc/nixos/configuration.nix` files instead.
31+# Binary Cache for Haskell.nix
32+nix.settings.trusted-public-keys = [
33+ "hydra.iohk.io:f/Ea+s+dFdN+3Y/G+FDgSq+a5NEWhJGzdjvKNGv0/EQ="
35+nix.settings.substituters = [
36+ "https://cache.iog.io"
40+NixOS-21.11 and older use slightly different settings.
43+# Binary Cache for Haskell.nix
44+nix.binaryCachePublicKeys = [
45+ "hydra.iohk.io:f/Ea+s+dFdN+3Y/G+FDgSq+a5NEWhJGzdjvKNGv0/EQ="
48+ "https://cache.iog.io"
28−This can be tricky to get setup properly. If you're still having trouble getting cache hits, consult the corresponding [troubleshooting section](../reference/troubleshooting#why-am-i-building-ghc).
52+This can be tricky to get setup properly. If you're still having trouble getting cache hits, consult the corresponding [troubleshooting section](../troubleshooting.md#why-am-i-building-ghc).
30## Scaffolding
54## Scaffolding
@@ -57,15 +81,19 @@ Add `flake.nix`:
57 hlint = {};
81 hlint = {};
58 haskell-language-server = {};
82 haskell-language-server = {};
84+ # Non-Haskell shell tools go here
85+ shell.buildInputs = with pkgs; [
60 # This adds `js-unknown-ghcjs-cabal` to the shell.
88 # This adds `js-unknown-ghcjs-cabal` to the shell.
61− shell.crossPlatform = p: [p.ghcjs];
89+ # shell.crossPlatforms = p: [p.ghcjs];
65− pkgs = import nixpkgs { inherit system overlays; };
93+ pkgs = import nixpkgs { inherit system overlays; inherit (haskellNix) config; };
66 flake = pkgs.helloProject.flake {
94 flake = pkgs.helloProject.flake {
67 # This adds support for `nix build .#js-unknown-ghcjs-cabal:hello:exe:hello`
95 # This adds support for `nix build .#js-unknown-ghcjs-cabal:hello:exe:hello`
68− crossPlatforms = p: [p.ghcjs];
96+ # crossPlatforms = p: [p.ghcjs];
70 in flake // {
98 in flake // {
71 # Built by `nix build .`
99 # Built by `nix build .`
docs/tutorials/getting-started-hix.mdnew file+227
@@ -0,0 +1,227 @@
1+# Getting started with Hix
3+The `hix` tools are wrappers for the various `nix` tools that
4+use `haskell.nix` without the need to add any `.nix` files.
8+* A quick way to try out haskell.nix for new users.
10+* Using haskell.nix to work on projects that do not have
13+* Testing to see if `haskell.nix` can build a project.
15+* Making `flake` and `non flake` configurations to check `haskell.nix`
16+ treats them the same.
20+To use Hix you will need to install [Nix](https://nixos.org/download.html).
22+## Setting up the binary cache
24+IMPORTANT: you *must* do this or you *will* build several copies of GHC!
26+You can configure Nix to use our binary cache, which is pushed to by CI, so should contain the artifacts that you need.
28+You need to add the following sections to `/etc/nix/nix.conf` or, if you are a trusted user, `~/.config/nix/nix.conf` (if you don't know what a "trusted user" is, you probably want to do the former).
31+trusted-public-keys = [...] hydra.iohk.io:f/Ea+s+dFdN+3Y/G+FDgSq+a5NEWhJGzdjvKNGv0/EQ= [...]
32+substituters = [...] https://cache.iog.io [...]
35+If you're running NixOS, you need to add/update the following in your `/etc/nixos/configuration.nix` files instead.
38+# Binary Cache for Haskell.nix
39+nix.settings.trusted-public-keys = [
40+ "hydra.iohk.io:f/Ea+s+dFdN+3Y/G+FDgSq+a5NEWhJGzdjvKNGv0/EQ="
42+nix.settings.substituters = [
43+ "https://cache.iog.io"
47+NixOS-21.11 and older use slightly different settings.
50+# Binary Cache for Haskell.nix
51+nix.binaryCachePublicKeys = [
52+ "hydra.iohk.io:f/Ea+s+dFdN+3Y/G+FDgSq+a5NEWhJGzdjvKNGv0/EQ="
55+ "https://cache.iog.io"
59+This can be tricky to get setup properly. If you're still having trouble getting cache hits, consult the corresponding [troubleshooting section](../troubleshooting.md#why-am-i-building-ghc).
64+nix-env -iA hix -f https://github.com/input-output-hk/haskell.nix/tarball/master
67+## Updating Hix (also updates hackage)
73+This is also necessary to make the latest nightly snapshot of hackage
78+To run `cabal build` in a nix-shell with all the dependencies required:
83+hix-shell --run 'cabal build'
89+hix-build -A hsPkgs.hello.components.exes.hello
92+Cross compile to JavaScript:
95+hix-build -A projectCross.ghcjs.hsPkgs.hello.components.exes.hello
100+The configuration arguments for `Hix` can be (from highest precedence to lowest):
102+* Passed on the command line with `--arg` (or `--argstr` for string args).
104+* Placed in `nix/hix.nix` file in the project dir.
106+* Placed in `~/.config/hix/hix.conf`
108+For example to build with GHC 8.10.7:
111+hix-shell --argstr compiler-nix-name ghc8107 --run 'cabal build'
114+or add a `nix/hix.nix` or `~/.config/hix/hix.conf` file:
117+{ compiler-nix-name = "ghc8107"; }
120+Here are just a few of the other configuration arguments you could use
121+in the files or on the command line (they are all optional):
124+{ name = "hello"; # for better error messages and derivation names
125+ nixpkgsPin = "nixpkgs-unstable"; # or nixpkgs-2111 or nixpkgs-2105
126+ nixpkgs = <nixpkgs>; # use this instead of nixpkgsPin
127+ subDir = "some/sub/dir"; # sub dir containing the haskell project
128+ projectFileName = "stack.yaml"; # use this project file
129+ tools.haskell-language-server = "latest";
130+ tools.hlint = "latest"; # Include the latest hls and hlint in the shell
131+ index-state = "2021-02-22T00:00:00Z"; # It is normally best to put this in `cabal.project` (not here)
133+# PLUS MANY MORE! Almost any argument you can pass to the project functions
134+# or to `shellFor` can be used in as a Hix configuration argument.
139+## Adding Nix Support with Niv
141+If you have a `nix/hix.nix` file with suitable configuration that
142+you want to make available to users with Nix (without having to
145+[Niv](https://github.com/nmattia/niv) is a command line tool for keeping track of Nix project dependencies.
147+After installing niv you can initialize niv and pin the latest haskell.nix
148+commit by running the following in the root directory of the project:
152+niv add input-output-hk/haskell.nix -n haskellNix
158+(import (import nix/sources.nix).haskellNix {}).hix.project { src = ./.; }
161+If you want to also pin `nixpkgs` with Niv use:
165+ sources = import nix/sources.nix;
167+ (import sources.haskellNix {}).hix.project {
168+ inherit (sources) nixpkgs;
179+When you want to update to the latest version of haskell.nix use:
182+niv update haskellNix
185+## Adding Nix Flake Support
187+To add flake support that uses the `nix/hix.nix` configuration in your
188+follow the [Getting started with flakes](getting-started.md) guide, but
189+use `haskell-nix.hix.project` instead of `haskell-nix.project'`
191+The `nixpkgs` used will need to be selected as a flake input (any selection
192+made in `nix/hix.nix` will be ignored).
194+Example `flake.nix` file:
198+ description = "A very basic flake";
199+ inputs.haskellNix.url = "github:input-output-hk/haskell.nix";
200+ inputs.nixpkgs.follows = "haskellNix/nixpkgs-unstable";
201+ inputs.flake-utils.url = "github:numtide/flake-utils";
202+ outputs = { self, nixpkgs, flake-utils, haskellNix }:
203+ flake-utils.lib.eachSystem [ "x86_64-linux" "x86_64-darwin" ] (system:
205+ overlays = [ haskellNix.overlay
207+ # This overlay adds our project to pkgs
209+ final.haskell-nix.hix.project {
211+ # Other project options can be put in `nix/hix.nix`
215+ pkgs = import nixpkgs { inherit system overlays; inherit (haskellNix) config; };
216+ flake = pkgs.helloProject.flake {
217+ # This adds support for `nix build .#js-unknown-ghcjs:hello:exe:hello`
218+ crossPlatforms = p: [p.ghcjs];
221+ # Built by `nix build .`
222+ defaultPackage = flake.packages."hello:exe:hello";
docs/tutorials/getting-started.md+19−7
@@ -18,26 +18,38 @@ You need to add the following sections to `/etc/nix/nix.conf` or, if you are a t
20trusted-public-keys = [...] hydra.iohk.io:f/Ea+s+dFdN+3Y/G+FDgSq+a5NEWhJGzdjvKNGv0/EQ= [...]
20trusted-public-keys = [...] hydra.iohk.io:f/Ea+s+dFdN+3Y/G+FDgSq+a5NEWhJGzdjvKNGv0/EQ= [...]
21−substituters = [...] https://hydra.iohk.io [...]
21+substituters = [...] https://cache.iog.io [...]
24If you're running NixOS, you need to add/update the following in your `/etc/nixos/configuration.nix` files instead.
24If you're running NixOS, you need to add/update the following in your `/etc/nixos/configuration.nix` files instead.
27# Binary Cache for Haskell.nix
27# Binary Cache for Haskell.nix
28+nix.settings.trusted-public-keys = [
29+ "hydra.iohk.io:f/Ea+s+dFdN+3Y/G+FDgSq+a5NEWhJGzdjvKNGv0/EQ="
31+nix.settings.substituters = [
32+ "https://cache.iog.io"
36+NixOS-21.11 and older use slightly different settings.
39+# Binary Cache for Haskell.nix
28nix.binaryCachePublicKeys = [
40nix.binaryCachePublicKeys = [
29 "hydra.iohk.io:f/Ea+s+dFdN+3Y/G+FDgSq+a5NEWhJGzdjvKNGv0/EQ="
41 "hydra.iohk.io:f/Ea+s+dFdN+3Y/G+FDgSq+a5NEWhJGzdjvKNGv0/EQ="
31nix.binaryCaches = [
43nix.binaryCaches = [
32− "https://hydra.iohk.io"
44+ "https://cache.iog.io"
36−This can be tricky to get setup properly. If you're still having trouble getting cache hits, consult the corresponding [troubleshooting section](../../troubleshooting#why-am-i-building-ghc).
48+This can be tricky to get setup properly. If you're still having trouble getting cache hits, consult the corresponding [troubleshooting section](../troubleshooting.md#why-am-i-building-ghc).
40−[Niv](https://github.com/nmattia/niv) is a command line tool for keeping tack of Nix project dependencies.
52+[Niv](https://github.com/nmattia/niv) is a command line tool for keeping track of Nix project dependencies.
42This guide assumes that the `sources.haskellNix` will be set to point
54This guide assumes that the `sources.haskellNix` will be set to point
43a pinned copy of the haskell.nix github repo. One easy way to do this
55a pinned copy of the haskell.nix github repo. One easy way to do this
@@ -87,7 +99,7 @@ let
87 # haskell.nix provides access to the nixpkgs pins which are used by our CI,
99 # haskell.nix provides access to the nixpkgs pins which are used by our CI,
88 # hence you will be more likely to get cache hits when using these.
100 # hence you will be more likely to get cache hits when using these.
89 # But you can also just use your own, e.g. '<nixpkgs>'.
101 # But you can also just use your own, e.g. '<nixpkgs>'.
90− haskellNix.sources.nixpkgs-2009
102+ haskellNix.sources.nixpkgs-unstable
91 # These arguments passed to nixpkgs, include some patches and also
103 # These arguments passed to nixpkgs, include some patches and also
92 # the haskell.nix functionality itself as an overlay.
104 # the haskell.nix functionality itself as an overlay.
93 haskellNix.nixpkgsArgs;
105 haskellNix.nixpkgsArgs;
@@ -174,7 +186,7 @@ Straightforward way of doing this is to change the branch name to a revision.
176let sources = {
188let sources = {
177− haskellNix = import (builtins.fetchTarball "https://github.com/input-output-hk/haskell.nix/archive/f1a94a4c82a2ab999a67c3b84269da78d89f0075.tar.gz") {};
189+ haskellNix = builtins.fetchTarball "https://github.com/input-output-hk/haskell.nix/archive/f1a94a4c82a2ab999a67c3b84269da78d89f0075.tar.gz";
@@ -0,0 +1,396 @@
6+ "lastModified": 1451647621,
7+ "narHash": "sha256-oHIyw3x0iKBexEo49YeUDV1k74ZtyYKGR2gNJXXRxts=",
10+ "rev": "9bc0996d412fef1787449d841277ef663ad9a915",
22+ "lastModified": 1603716527,
23+ "narHash": "sha256-X0TFfdD4KZpwl0Zr6x+PLxUt/VyKQfX7ylXHdmZIL+w=",
26+ "rev": "48bf10787e27364730dd37a42b603cee8d6af7ee",
39+ "lastModified": 1640353650,
40+ "narHash": "sha256-N1t6M3/wqj90AEdRkeC8i923gQYUpzSr8b40qVOZ1Rk=",
43+ "rev": "942639c18c0cd8ec53e0a6f8d120091af35312cd",
56+ "lastModified": 1641652457,
57+ "narHash": "sha256-BlFPKP4C4HRUJeAbdembX1Rms1LD380q9s0qVDeoAak=",
60+ "rev": "f27667f8ec360c475027dcaee0138c937477b070",
73+ "lastModified": 1608537748,
74+ "narHash": "sha256-PulY1GfiMgKVnBci3ex4ptk2UNYMXqGjJOxcPy2KYT4=",
75+ "owner": "input-output-hk",
76+ "repo": "cardano-shell",
77+ "rev": "9392c75087cb9a3d453998f4230930dea3a95725",
81+ "owner": "input-output-hk",
82+ "repo": "cardano-shell",
88+ "lastModified": 1644229661,
89+ "narHash": "sha256-1YdnJAsNy69bpcjuoKdOYQX0YxZBiCYZo4Twxerqv7k=",
91+ "repo": "flake-utils",
92+ "rev": "3cecb5b042f7f209c56ffd8371b2711a290ec797",
97+ "repo": "flake-utils",
104+ "lastModified": 1600920045,
105+ "narHash": "sha256-DO6kxJz248djebZLpSzTGD6s8WRpNI9BTwUeOf5RwY8=",
106+ "owner": "input-output-hk",
108+ "rev": "95713a6ecce4551240da7c96b6176f980af75cae",
112+ "owner": "input-output-hk",
113+ "ref": "release/8.6.5-iohk",
121+ "lastModified": 1659402819,
122+ "narHash": "sha256-1ghmulyIk+obGnyFeouVHBQXxUHMBmgCIRazLfEoT34=",
123+ "owner": "input-output-hk",
124+ "repo": "hackage.nix",
125+ "rev": "2f6f97ca3db96f91eea674ef46f4a0785d1e9d9c",
129+ "owner": "input-output-hk",
130+ "repo": "hackage.nix",
137+ "lastModified": 1607498076,
138+ "narHash": "sha256-8uqsEtivphgZWYeUo5RDUhp6bO9j2vaaProQxHBltQk=",
139+ "owner": "sevanspowell",
140+ "repo": "hpc-coveralls",
141+ "rev": "14df0f7d229f4cd2e79f8eabb1a740097fdfa430",
145+ "owner": "sevanspowell",
146+ "repo": "hpc-coveralls",
160+ "lastModified": 1646878427,
161+ "narHash": "sha256-KtbrofMtN8GlM7D+n90kixr7QpSlVmdN+vK5CA/aRzc=",
164+ "rev": "28b682b85b7efc5cf7974065792a1f22203a5927",
175+ "lastModified": 1633514407,
176+ "narHash": "sha256-Dw32tiMjdK9t3ETl5fzGrutQTzh2rufgZV4A/BbxuD4=",
177+ "owner": "kristapsdz",
179+ "rev": "d2c2b44ff6c27b936ec27358a2653caaef8f73b8",
183+ "owner": "kristapsdz",
190+ "lowdown-src": "lowdown-src",
191+ "nixpkgs": "nixpkgs",
192+ "nixpkgs-regression": "nixpkgs-regression"
195+ "lastModified": 1643066034,
196+ "narHash": "sha256-xEPeMcNJVOeZtoN+d+aRwolpW8mFSEQx76HTRdlhPhg=",
199+ "rev": "a1cd7e58606a41fcf62bf8637804cf8306f17f62",
212+ "lastModified": 1658968505,
213+ "narHash": "sha256-UnbQ/Ig/23e9hUdDOBwYHwHgHmQawZ2uazpJ8DLIJgE=",
214+ "owner": "input-output-hk",
215+ "repo": "nix-tools",
216+ "rev": "8a754bdcf20b20e116409c2341cf69065d083053",
220+ "owner": "input-output-hk",
221+ "repo": "nix-tools",
227+ "lastModified": 1632864508,
228+ "narHash": "sha256-d127FIvGR41XbVRDPVvozUPQ/uRHbHwvfyKHwEt5xFM=",
231+ "rev": "82891b5e2c2359d7e58d08849e4c89511ab94234",
236+ "ref": "nixos-21.05-small",
242+ "lastModified": 1620055814,
243+ "narHash": "sha256-8LEHoYSJiL901bTMVatq+rf8y7QtWuZhwwpKE2fyaRY=",
246+ "rev": "1db42b7fe3878f3f5f7a4f2dc210772fd080e205",
251+ "ref": "nixpkgs-20.03-darwin",
258+ "lastModified": 1655034179,
259+ "narHash": "sha256-rf1/7AbzuYDw6+8Xvvf3PtEOygymLBrFsFxvext5ZjI=",
262+ "rev": "046ee4af7a9f016a364f8f78eeaa356ba524ac31",
267+ "ref": "nixpkgs-21.05-darwin",
274+ "lastModified": 1656782578,
275+ "narHash": "sha256-1eMCBEqJplPotTo/SZ/t5HU6Sf2I8qKlZi9MX7jv9fw=",
278+ "rev": "573603b7fdb9feb0eb8efc16ee18a015c667ab1b",
283+ "ref": "nixpkgs-21.11-darwin",
290+ "lastModified": 1657876628,
291+ "narHash": "sha256-URmf0O2cQ/3heg2DJOeLyU/JmfVMqG4X5t9crQXMaeY=",
294+ "rev": "549d82bdd40f760a438c3c3497c1c61160f3de55",
299+ "ref": "nixpkgs-22.05-darwin",
304+ "nixpkgs-regression": {
306+ "lastModified": 1643052045,
307+ "narHash": "sha256-uGJ0VXIhWKGXxkeNnq4TvV3CIOkUJ3PAoLZ3HMzNVMw=",
310+ "rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2",
315+ "rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2",
319+ "nixpkgs-unstable": {
321+ "lastModified": 1657888067,
322+ "narHash": "sha256-GnwJoFBTPfW3+mz7QEeJEEQ9OMHZOiIJ/qDhZxrlKh8=",
325+ "rev": "65fae659e31098ca4ac825a6fef26d890aaf3f4e",
330+ "ref": "nixpkgs-unstable",
338+ "lastModified": 1631092763,
339+ "narHash": "sha256-sIKgO+z7tj4lw3u6oBZxqIhDrzSkvpHtv0Kki+lh9Fg=",
340+ "owner": "angerman",
341+ "repo": "old-ghc-nix",
342+ "rev": "af48a7a7353e418119b6dfe3cd1463a657f342b8",
346+ "owner": "angerman",
348+ "repo": "old-ghc-nix",
355+ "cabal-32": "cabal-32",
356+ "cabal-34": "cabal-34",
357+ "cabal-36": "cabal-36",
358+ "cardano-shell": "cardano-shell",
359+ "flake-utils": "flake-utils",
360+ "ghc-8.6.5-iohk": "ghc-8.6.5-iohk",
361+ "hackage": "hackage",
362+ "hpc-coveralls": "hpc-coveralls",
364+ "nix-tools": "nix-tools",
368+ "nixpkgs-2003": "nixpkgs-2003",
369+ "nixpkgs-2105": "nixpkgs-2105",
370+ "nixpkgs-2111": "nixpkgs-2111",
371+ "nixpkgs-2205": "nixpkgs-2205",
372+ "nixpkgs-unstable": "nixpkgs-unstable",
373+ "old-ghc-nix": "old-ghc-nix",
374+ "stackage": "stackage"
380+ "lastModified": 1659402917,
381+ "narHash": "sha256-zRDOtN4A2KmfzmZiqqxOAIw1YVPhnoIaszKKd+qCEcQ=",
382+ "owner": "input-output-hk",
383+ "repo": "stackage.nix",
384+ "rev": "778df3c4b35eac853d57fac7bafc7c9f2dde917f",
388+ "owner": "input-output-hk",
389+ "repo": "stackage.nix",
@@ -2,45 +2,147 @@
2 description = "Alternative Haskell Infrastructure for Nixpkgs";
2 description = "Alternative Haskell Infrastructure for Nixpkgs";
5− # Note: keep this in sync with sources.json!
5+ nixpkgs.follows = "nixpkgs-unstable";
6− nixpkgs.url = github:NixOS/nixpkgs/3c6f3f84af60a8ed5b8a79cf3026b7630fcdefb8;
7− nixpkgs-2009.url = github:NixOS/nixpkgs/46d1c3f28ca991601a53e9a14fdd53fcd3dd8416;
6+ nixpkgs-2003 = { url = "github:NixOS/nixpkgs/nixpkgs-20.03-darwin"; };
8− nixpkgs-2105.url = github:NixOS/nixpkgs/3c6f3f84af60a8ed5b8a79cf3026b7630fcdefb8;
7+ nixpkgs-2105 = { url = "github:NixOS/nixpkgs/nixpkgs-21.05-darwin"; };
9− nixpkgs-unstable.url = github:NixOS/nixpkgs/0747387223edf1aa5beaedf48983471315d95e16;
8+ nixpkgs-2111 = { url = "github:NixOS/nixpkgs/nixpkgs-21.11-darwin"; };
9+ nixpkgs-2205 = { url = "github:NixOS/nixpkgs/nixpkgs-22.05-darwin"; };
10+ nixpkgs-unstable = { url = "github:NixOS/nixpkgs/nixpkgs-unstable"; };
11+ flake-utils = { url = "github:numtide/flake-utils"; };
14+ url = "github:input-output-hk/hackage.nix";
18+ url = "github:input-output-hk/stackage.nix";
22+ url = "github:haskell/cabal/3.2";
26+ url = "github:haskell/cabal/3.4";
30+ url = "github:haskell/cabal/3.6";
34+ url = "github:input-output-hk/cardano-shell";
39+ owner = "input-output-hk";
41+ ref = "release/8.6.5-iohk";
45+ url = "github:sevanspowell/hpc-coveralls";
49+ url = "github:input-output-hk/nix-tools";
53+ url = "github:angerman/old-ghc-nix/master";
57+ url = "github:phadej/HTTP";
12− outputs = { self, nixpkgs, ... }:
62+ outputs = { self, nixpkgs, nixpkgs-unstable, nixpkgs-2105, nixpkgs-2111, nixpkgs-2205, flake-utils, ... }@inputs:
13− {
63+ let compiler = "ghc924";
16 config = import ./config.nix;
64 config = import ./config.nix;
17− # Use a shim for pkgs that does not depend on `builtins.currentSystem`.
65+ in {
67+ overlay = self.overlays.combined;
18− sources = import ./nix/sources.nix {
68+ overlays = import ./overlays { sources = inputs; };
19− pkgs = { fetchzip = builtins.fetchTarball; };
69+ internal = rec {
72+ overlays = [ self.overlay ];
22− nixpkgsArgs = {
77+ overlaysOverrideable = import ./overlays;
78+ # Compatibility with old default.nix
79+ compat = { checkMaterialization ?
80+ false # Allows us to easily switch on materialization checking
81+ , system, sourcesOverride ? { }, ... }@args: rec {
82+ sources = inputs // sourcesOverride;
83+ allOverlays = import ./overlays (args // { inherit sources; });
23− inherit config;
84+ inherit config;
24− overlays = [ self.overlay ];
85+ # We are overriding 'overlays' and 'nixpkgsArgs' from the
86+ # flake outputs so that we can incorporate the args passed
87+ # to the compat layer (e.g. sourcesOverride).
88+ overlays = [ allOverlays.combined ]
89+ ++ (if checkMaterialization == true then
92+ haskell-nix = prev.haskell-nix // {
93+ checkMaterialization = true;
100+ inherit config overlays;
102+ pkgs = import nixpkgs
103+ (nixpkgsArgs // { localSystem = { inherit system; }; });
104+ pkgs-2105 = import nixpkgs-2105
105+ (nixpkgsArgs // { localSystem = { inherit system; }; });
106+ pkgs-2111 = import nixpkgs-2111
107+ (nixpkgsArgs // { localSystem = { inherit system; }; });
108+ pkgs-2205 = import nixpkgs-2205
109+ (nixpkgsArgs // { localSystem = { inherit system; }; });
110+ pkgs-unstable = import nixpkgs-unstable
111+ (nixpkgsArgs // { localSystem = { inherit system; }; });
112+ hix = import ./hix/default.nix { inherit pkgs; };
27− overlaysOverrideable = import ./overlays;
116+ # Note: `nix flake check` evaluates outputs for all platforms, and haskell.nix
28− };
117+ # uses IFD heavily, you have to have the ability to build for all platforms
118+ # supported by haskell.nix, e.g. with remote builders, in order to check this flake.
119+ # If you want to run the tests for just your platform, run `./test/tests.sh` or
120+ # `nix-build -A checks.$PLATFORM`
121+ } // flake-utils.lib.eachSystem [ "x86_64-linux" "x86_64-darwin" "aarch64-linux" "aarch64-darwin" ] (system: rec {
122+ legacyPackages = (self.internal.compat { inherit system; }).pkgs;
123+ legacyPackagesUnstable = (self.internal.compat { inherit system; }).pkgs-unstable;
30− # Using the eval-on-build version here as the plan is that
125+ # FIXME: Currently `nix flake check` requires `--impure` because coverage-golden
31− # `builtins.currentSystem` will not be supported in flakes.
126+ # (and maybe other tests) import projects that use builtins.currentSystem
32− # https://github.com/NixOS/rfcs/pull/49/files#diff-a5a138ca225433534de8d260f225fe31R429
127+ checks = builtins.listToAttrs (map (pkg: {
33− overlay = self.overlays.combined-eval-on-build;
128+ name = pkg.name;
34− overlays = self.internal.overlaysOverrideable { sourcesOverride = self.internal.sources; };
129+ value = pkg;
130+ }) (nixpkgs.lib.collect nixpkgs.lib.isDerivation (import ./test rec {
131+ haskellNix = self.internal.compat { inherit system; };
132+ compiler-nix-name = compiler;
133+ pkgs = haskellNix.pkgs;
135+ # Exposed so that buildkite can check that `allow-import-from-derivation=false` works for core of haskell.nix
136+ roots = legacyPackagesUnstable.haskell-nix.roots compiler;
36− legacyPackages = let
138+ devShell = with self.legacyPackages.${system};
37− genAttrs = lst: f:
139+ mkShell {
38− builtins.listToAttrs (map (name: {
140+ buildInputs = [
39− inherit name;
141+ nixUnstable
40− value = f name;
142+ cabal-install
41− }) lst);
143+ haskell-nix.compiler.${compiler}
42− in genAttrs [ "x86_64-linux" "x86_64-darwin" ] (system:
144+ haskell-nix.nix-tools.${compiler}
43− import nixpkgs
145+ ];
44− (self.internal.nixpkgsArgs // { localSystem = { inherit system; }; }));
146+ };
@@ -1,9 +1,9 @@
2 "url": "https://github.com/input-output-hk/hackage.nix",
2 "url": "https://github.com/input-output-hk/hackage.nix",
3− "rev": "eba2b9968363959952d97b2352adab960d294249",
3+ "rev": "9bdefa51c864bbef48a2758b05b4b568f0ded62b",
4− "date": "2021-06-24T01:12:44+00:00",
4+ "date": "2021-08-06T01:11:48+00:00",
5− "path": "/nix/store/34a7r7x93kyrlfr9i0zygnxszs98n0s6-hackage.nix-eba2b99",
5+ "path": "/nix/store/isypgnv4qa5398z6vjc3fi620l4y87c4-hackage.nix-9bdefa5",
6− "sha256": "19gy5nxzsp5rxldbnvblhcq5inmz45wwjsp4ww9mq6f864jz7aqz",
6+ "sha256": "0pm3m864wwgf76isjwb8244xh8xykc94b5az6zb1h38q30s9xjji",
7 "fetchSubmodules": false,
7 "fetchSubmodules": false,
8 "deepClone": false,
8 "deepClone": false,
9 "leaveDotGit": false
9 "leaveDotGit": false
hix/default.nixnew file+43
@@ -0,0 +1,43 @@
3+ args = '' --arg userDefaults "$HOME/.config/hix/hix.conf" --arg src ./.'';
4+ # Use HIX_ROOT to override the version of hix used when developing new hix features.
5+ # See docs/dev/hix.md for details.
6+ hixProject = "\${HIX_ROOT:-${./..}}/hix/project.nix";
10+ (pkgs.writeScriptBin "hix-shell" ''
11+ nix-shell ${hixProject} ${args} -A shell "$@"
13+ (pkgs.writeScriptBin "hix-build" ''
14+ nix-build ${hixProject} ${args} "$@"
16+ (pkgs.writeScriptBin "hix-instantiate" ''
17+ nix-instantiate ${hixProject} ${args} "$@"
19+ (pkgs.writeScriptBin "hix-env" ''
20+ nix-env -f ${hixProject} ${args} "$@"
22+ (pkgs.writeScriptBin "hix" ''
27+ nix-env -iA hix -f https://github.com/input-output-hk/haskell.nix/tarball/master
29+ build|dump-path|eval|log|path-info|run|search|show-derivation|sign-paths|verify|why-depends)
30+ nix $cmd -f ${hixProject} ${args} "$@"
33+ nix $cmd ${hixProject} ${args} "$@"
42+ project = import ./project.nix;
hix/project.nixnew file+77
@@ -0,0 +1,77 @@
6+, checkMaterialization ? null
7+, compiler-nix-name ? null
11+ inherit ((lib.evalModules {
13+ (import ../modules/project-common.nix)
14+ (import ../modules/stack-project.nix)
15+ (import ../modules/cabal-project.nix)
16+ (import ../modules/project.nix)
17+ (import ../modules/hix-project.nix)
20+ { _module.args.pkgs = {}; }
23+ inherit (import ./.. {}) sources;
24+ lib = import (sources.nixpkgs-unstable + "/lib");
26+ builtins.listToAttrs (
29+ if commandArgs.${name} == null || name == "src" || name == "userDefaults" || name == "inNixShell"
31+ else [{ inherit name; value = commandArgs.${name}; }]
32+ ) (builtins.attrNames commandArgs));
34+ nixpkgsPin = "nixpkgs-unstable";
36+ importDefaults = src:
37+ if src == null || !(__pathExists src)
40+ userDefaults = importDefaults (commandArgs.userDefaults or null);
41+ projectDefaults = importDefaults (toString (src.origSrcSubDir or src) + "/nix/hix.nix");
42+ inherit ((lib.evalModules {
44+ (import ../modules/project-common.nix)
45+ (import ../modules/stack-project.nix)
46+ (import ../modules/cabal-project.nix)
47+ (import ../modules/project.nix)
48+ (import ../modules/hix-project.nix)
52+ ({config, pkgs, ...}: {
53+ haskellNix = import ./.. { inherit checkMaterialization; };
54+ nixpkgsPin = "nixpkgs-unstable";
55+ nixpkgs = config.haskellNix.sources.${config.nixpkgsPin};
56+ nixpkgsArgs = config.haskellNix.nixpkgsArgs // {
57+ overlays = config.haskellNix.nixpkgsArgs.overlays ++ config.overlays;
59+ _module.args.pkgs = import config.nixpkgs config.nixpkgsArgs;
60+ project = pkgs.haskell-nix.project [
61+ (import ../modules/hix-project.nix)
67+ if __pathExists (toString (src.origSrcSubDir or src) + "/.git")
68+ then config.evalPackages.haskell-nix.haskellLib.cleanGit {
76+ }).config) project shell;
lib/cabal-os-arch-comp.nix+1−1
@@ -43,7 +43,7 @@
43 isPPC64 = false;
43 isPPC64 = false;
44 isSparc = false;
44 isSparc = false;
45 isArm = false;
45 isArm = false;
46− isAArch64= false;
46+ isAarch64= false;
47 isMips = false;
47 isMips = false;
48 isSH = false;
48 isSH = false;
49 isIA64 = false;
49 isIA64 = false;
lib/cabal-project-parser.nix+120−14
@@ -74,20 +74,21 @@ let
74 # --shar256: 003lm3pm0000hbfmii7xcdd9v20000flxf7gdl2pyxia7p014i8z
74 # --shar256: 003lm3pm0000hbfmii7xcdd9v20000flxf7gdl2pyxia7p014i8z
75 # will be trated like a field and returned here
75 # will be trated like a field and returned here
76 # (used in call-cabal-project-to-nix.nix to create a fixed-output derivation)
76 # (used in call-cabal-project-to-nix.nix to create a fixed-output derivation)
77− extractRepoData = cabalProjectFileName: lookupSha256: repo:
77+ extractSourceRepoPackageData = cabalProjectFileName: sha256map: repo: {
78− builtins.map (subdir:
80− url = repo.location;
78+ url = repo.location;
81− ref = repo.tag;
79+ ref = repo.tag;
82− sha256 = repo."--sha256" or (lookupSha256 repo);
80+ sha256 = repo."--sha256" or (
83− inherit subdir;
81+ if sha256map != null
84− })
82+ then sha256map."${repo.location}"."${repo.tag}"
85− (if repo ? subdir
84+ subdirs = if repo ? subdir
86− then pkgs.lib.filter (x: x != "") (pkgs.lib.splitString " " repo.subdir)
85+ then pkgs.lib.filter (x: x != "") (pkgs.lib.splitString " " repo.subdir)
87− else ["."]);
86+ else ["."];
89 # Parse a source-repository-package and return data of `type: git` repositories
89 # Parse a source-repository-package and return data of `type: git` repositories
90+ # See tests/unit.nix for examples of input and output.
90− parseBlock = cabalProjectFileName: lookupSha256: block:
91+ parseSourceRepositoryPackageBlock = cabalProjectFileName: sha256map: block:
92 x = span (pkgs.lib.strings.hasPrefix " ") (pkgs.lib.splitString "\n" block);
93 x = span (pkgs.lib.strings.hasPrefix " ") (pkgs.lib.splitString "\n" block);
93 attrs = parseBlockLines x.fst;
94 attrs = parseBlockLines x.fst;
@@ -98,10 +99,115 @@ let
98 otherText = "\nsource-repository-package\n" + block;
99 otherText = "\nsource-repository-package\n" + block;
101− sourceRepo = extractRepoData cabalProjectFileName lookupSha256 attrs;
102+ sourceRepo = extractSourceRepoPackageData cabalProjectFileName sha256map attrs;
102 otherText = pkgs.lib.strings.concatStringsSep "\n" x.snd;
103 otherText = pkgs.lib.strings.concatStringsSep "\n" x.snd;
106+ parseSourceRepositoryPackages = cabalProjectFileName: sha256map: source-repo-override: projectFile:
108+ blocks = pkgs.lib.splitString "\nsource-repository-package\n" ("\n" + projectFile);
109+ initialText = pkgs.lib.lists.take 1 blocks;
110+ repoBlocks = builtins.map (parseSourceRepositoryPackageBlock cabalProjectFileName sha256map) (pkgs.lib.lists.drop 1 blocks);
111+ overrideSourceRepo = sourceRepo: (source-repo-override.${sourceRepo.url} or (pkgs.lib.id)) sourceRepo;
113+ sourceRepos = pkgs.lib.lists.map (block: overrideSourceRepo block.sourceRepo) repoBlocks;
114+ otherText = pkgs.lib.strings.concatStringsSep "\n" (
116+ ++ (builtins.map (x: x.otherText) repoBlocks));
119+ # Parse and replace repository
120+ # This works in a similar way to the `source-repository-package` but we are
121+ # able to simply replace the `repository` blocks with local `file:/nix/store` ones.
122+ # This works because `cabal configure` does not include any of the `/nix/sore/`
123+ # paths in the `plan.json` (so materialized plan-nix will still work as expeced).
124+ # See tests/unit.nix for examples of input and output.
125+ parseRepositoryBlock = evalPackages: cabalProjectFileName: sha256map: inputMap: cabal-install: nix-tools: block:
127+ lines = pkgs.lib.splitString "\n" block;
128+ # The first line will contain the repository name.
129+ x = span (pkgs.lib.strings.hasPrefix " ") (__tail lines);
130+ attrs = parseBlockLines x.fst;
131+ sha256 = attrs."--sha256" or (
132+ if sha256map != null
133+ then sha256map."${attrs.url}"
136+ # This is `some-name` from the `repository some-name` line in the `cabal.project` file.
137+ name = __head lines;
138+ # The $HOME/.cabal/packages/${name} after running `cabal v2-update` to download the repository
139+ repoContents = if inputMap ? ${attrs.url}
140+ # If there is an input use it to make `file:` url and create a suitable `.cabal/packages/${name}` directory
141+ then evalPackages.runCommand name ({
142+ nativeBuildInputs = [ cabal-install ];
143+ preferLocalBuild = true;
146+ mkdir -p $HOME/.cabal/packages/${name}
147+ cat <<EOF > $HOME/.cabal/config
149+ url: file:${inputMap.${attrs.url}}
150+ ${pkgs.lib.optionalString (attrs ? secure) "secure: ${attrs.secure}"}
151+ ${pkgs.lib.optionalString (attrs ? root-keys) "root-keys: ${attrs.root-keys}"}
152+ ${pkgs.lib.optionalString (attrs ? key-threshold) "key-threshold: ${attrs.key-threshold}"}
155+ cabal v2-update ${name}
156+ cp -r $HOME/.cabal/packages/${name} $out
158+ else evalPackages.runCommand name ({
159+ nativeBuildInputs = [ cabal-install evalPackages.curl nix-tools ];
160+ LOCALE_ARCHIVE = pkgs.lib.optionalString (evalPackages.stdenv.buildPlatform.libc == "glibc") "${evalPackages.glibcLocales}/lib/locale/locale-archive";
161+ LANG = "en_US.UTF-8";
162+ preferLocalBuild = true;
163+ } // pkgs.lib.optionalAttrs (sha256 != null) {
164+ outputHashMode = "recursive";
165+ outputHashAlgo = "sha256";
166+ outputHash = sha256;
169+ mkdir -p $HOME/.cabal/packages/${name}
170+ cat <<EOF > $HOME/.cabal/config
173+ ${pkgs.lib.optionalString (attrs ? secure) "secure: ${attrs.secure}"}
174+ ${pkgs.lib.optionalString (attrs ? root-keys) "root-keys: ${attrs.root-keys}"}
175+ ${pkgs.lib.optionalString (attrs ? key-threshold) "key-threshold: ${attrs.key-threshold}"}
178+ export SSL_CERT_FILE=${evalPackages.cacert}/etc/ssl/certs/ca-bundle.crt
179+ cabal v2-update ${name}
180+ cp -r $HOME/.cabal/packages/${name} $out
182+ # Output of hackage-to-nix
184+ evalPackages.runCommand ("hackage-to-nix-" + name) {
185+ nativeBuildInputs = [ cabal-install evalPackages.curl nix-tools ];
186+ LOCALE_ARCHIVE = pkgs.lib.optionalString (evalPackages.stdenv.buildPlatform.libc == "glibc") "${evalPackages.glibcLocales}/lib/locale/locale-archive";
187+ LANG = "en_US.UTF-8";
188+ preferLocalBuild = true;
191+ hackage-to-nix $out ${repoContents}/01-index.tar ${attrs.url}
193+ # Directory to `lndir` when constructing a suitable $HOME/.cabal dir
195+ ${name} = repoContents;
199+ parseRepositories = evalPackages: cabalProjectFileName: sha256map: inputMap: cabal-install: nix-tools: projectFile:
201+ # This will leave the name of repository in the first line of each block
202+ blocks = pkgs.lib.splitString "\nrepository " ("\n" + projectFile);
203+ repoBlocks = builtins.map (parseRepositoryBlock evalPackages cabalProjectFileName sha256map inputMap cabal-install nix-tools) (pkgs.lib.lists.drop 1 blocks);
205+ extra-hackages = pkgs.lib.lists.map (block: block.hackage) repoBlocks;
206+ repos = pkgs.lib.lists.foldl' (x: block: x // block.repo) {} repoBlocks;
106− inherit parseIndexState parseBlockLines parseBlock;
210+ inherit parseIndexState parseSourceRepositoryPackages parseRepositories
211+ # These are only exposed for tests
212+ parseSourceRepositoryPackageBlock parseRepositoryBlock;
lib/call-cabal-project-to-nix.nix+142−73
@@ -1,4 +1,4 @@
1−{ dotCabal, pkgs, runCommand, evalPackages, symlinkJoin, cacert, index-state-hashes, haskellLib, materialize }@defaults:
1+{ pkgs, runCommand, cacert, index-state-hashes, haskellLib }@defaults:
2let readIfExists = src: fileName:
2let readIfExists = src: fileName:
3 let origSrcDir = src.origSrcSubDir or src;
3 let origSrcDir = src.origSrcSubDir or src;
@@ -30,17 +30,47 @@ in
30 # An alternative to adding `--sha256` comments into the
30 # An alternative to adding `--sha256` comments into the
31 # cabal.project file:
31 # cabal.project file:
32 # sha256map =
32 # sha256map =
33+ # { # For a `source-repository-package` use the `location` and `tag` as the key
33− # { "https://github.com/jgm/pandoc-citeproc"."0.17"
34+ # "https://github.com/jgm/pandoc-citeproc"."0.17"
34− # = "0dxx8cp2xndpw3jwiawch2dkrkp15mil7pyx7dvd810pwc22pm2q"; };
35+ # = "0dxx8cp2xndpw3jwiawch2dkrkp15mil7pyx7dvd810pwc22pm2q";
35−, lookupSha256 ?
36+ # # For a `repository` use the `url` as the key
36− if sha256map != null
37+ # "https://raw.githubusercontent.com/input-output-hk/hackage-overlay-ghcjs/bfc363b9f879c360e0a0460ec0c18ec87222ec32"
37− then { location, tag, ...}: sha256map."${location}"."${tag}"
38+ # = "sha256-g9xGgJqYmiczjxjQ5JOiK5KUUps+9+nlNGI/0SpSOpg=";
41+ # An alternative to providing a `sha256` handy for flakes
42+ # cabal.project file:
43+ # inputs.pandoc-citeproc.url = "github:jgm/pandoc-citeproc/0.17";
44+ # inputs.pandoc-citeproc.flake = false;
47+ # inputMap."https://github.com/jgm/pandoc-citeproc" = inputs.inputs.pandoc-citeproc;
39−, extra-hackage-tarballs ? []
48+, extra-hackage-tarballs ? {}
49+, source-repo-override ? {} # Cabal seems to behave incoherently when
50+ # two source-repository-package entries
51+ # provide the same packages, making it
52+ # impossible to override cabal.project
53+ # with e.g. a cabal.project.local. In CI,
54+ # we want to be able to test against the
55+ # latest versions of various dependencies.
57+ # This argument is a map from url to
58+ # a function taking the existing repoData
59+ # and returning the new repoData in its
62+ # { "https://github.com/input-output-hk/plutus-apps" = orig: orig // { subdirs = (orig.subdirs or [ "." ]) ++ [ "foo" ]; }; }
64+ # would result in the "foo" subdirectory of
65+ # any plutus-apps input being used for a
72+ inherit (evalPackages.haskell-nix) materialize dotCabal;
44 # These defaults are hear rather than in modules/cabal-project.nix to make them
74 # These defaults are hear rather than in modules/cabal-project.nix to make them
45 # lazy enough to avoid infinite recursion issues.
75 # lazy enough to avoid infinite recursion issues.
46 # Using null as the default also improves performance as they are not forced by the
76 # Using null as the default also improves performance as they are not forced by the
@@ -84,15 +114,13 @@ let
84 ghc = ghc';
114 ghc = ghc';
85 subDir' = src.origSubDir or "";
115 subDir' = src.origSubDir or "";
86 subDir = pkgs.lib.strings.removePrefix "/" subDir';
116 subDir = pkgs.lib.strings.removePrefix "/" subDir';
87− maybeCleanedSource =
117+
88− if haskellLib.canCleanSource src
89− then (haskellLib.cleanSourceWith {
118+ cleanedSource = haskellLib.cleanSourceWith {
90− name = if name != null then "${name}-root-cabal-files" else "source-root-cabal-files";
119+ name = if name != null then "${name}-root-cabal-files" else "source-root-cabal-files";
91− src = src.origSrc or src;
120+ src = src.origSrc or src;
92− filter = path: type: (!(src ? filter) || src.filter path type) && (
121+ filter = path: type: (!(src ? filter) || src.filter path type) && (
93− type == "directory" ||
122+ type == "directory" ||
94− pkgs.lib.any (i: (pkgs.lib.hasSuffix i path)) [ ".cabal" "package.yaml" ]); })
123+ pkgs.lib.any (i: (pkgs.lib.hasSuffix i path)) [ ".cabal" "package.yaml" ]); };
95− else src.origSrc or src;
97 # Using origSrcSubDir bypasses any cleanSourceWith so that it will work when
125 # Using origSrcSubDir bypasses any cleanSourceWith so that it will work when
98 # access to the store is restricted. If origSrc was already in the store
126 # access to the store is restricted. If origSrc was already in the store
@@ -172,67 +200,104 @@ let
172 builtins.readFile (pkgs.runCommand "hash-path" { preferLocalBuild = true; }
200 builtins.readFile (pkgs.runCommand "hash-path" { preferLocalBuild = true; }
173 "echo -n $(${pkgs.nix}/bin/nix-hash --type sha256 --base32 ${path}) > $out");
201 "echo -n $(${pkgs.nix}/bin/nix-hash --type sha256 --base32 ${path}) > $out");
175− replaceSoureRepos = projectFile:
203+ replaceSourceRepos = projectFile:
177− fetchRepo = fetchgit: repoData:
205+ fetchPackageRepo = fetchgit: repoData:
179 fetched =
207 fetched =
208+ if inputMap ? "${repoData.url}/${repoData.ref}"
209+ then inputMap."${repoData.url}/${repoData.ref}"
210+ else if inputMap ? ${repoData.url}
212+ (if inputMap.${repoData.url}.rev != repoData.ref
213+ then throw "${inputMap.${repoData.url}.rev} may not match ${repoData.ref} for ${repoData.url} use \"${repoData.url}/${repoData.ref}\" as the inputMap key if ${repoData.ref} is a branch or tag that points to ${inputMap.${repoData.url}.rev}."
214+ else inputMap.${repoData.url})
180− if repoData.sha256 != null
215+ else if repoData.sha256 != null
181− then fetchgit { inherit (repoData) url sha256; rev = repoData.ref; }
216+ then fetchgit { inherit (repoData) url sha256; rev = repoData.ref; }
183 let drv = builtins.fetchGit { inherit (repoData) url ref; };
218 let drv = builtins.fetchGit { inherit (repoData) url ref; };
184 in __trace "WARNING: No sha256 found for source-repository-package ${repoData.url} ${repoData.ref} download may fail in restricted mode (hydra)"
219 in __trace "WARNING: No sha256 found for source-repository-package ${repoData.url} ${repoData.ref} download may fail in restricted mode (hydra)"
185− (__trace "Consider adding `--sha256: ${hashPath drv}` to the ${cabalProjectFileName} file or passing in a lookupSha256 argument"
220+ (__trace "Consider adding `--sha256: ${hashPath drv}` to the ${cabalProjectFileName} file or passing in a sha256map argument"
187− in fetched + (if repoData.subdir == "." then "" else "/" + repoData.subdir);
222+ in {
188−
223+ # Download the source-repository-package commit and add it to a minimal git
189− blocks = pkgs.lib.splitString "\nsource-repository-package\n" ("\n" + projectFile);
224+ # repository that `cabal` will be able to access from a non fixed output derivation.
190− initialText = pkgs.lib.lists.take 1 blocks;
225+ location = evalPackages.runCommand "source-repository-package" {
191− repoBlocks = builtins.map (pkgs.haskell-nix.haskellLib.parseBlock cabalProjectFileName lookupSha256) (pkgs.lib.lists.drop 1 blocks);
226+ nativeBuildInputs = [ evalPackages.rsync evalPackages.gitMinimal ];
192− sourceRepoData = pkgs.lib.lists.concatMap (x: x.sourceRepo) repoBlocks;
227+ } ''
193− otherText = pkgs.evalPackages.writeText "cabal.project" (pkgs.lib.strings.concatStringsSep "\n" (
228+ mkdir $out
194− initialText
229+ rsync -a --prune-empty-dirs "${fetched}/" "$out/"
195− ++ (builtins.map (x: x.otherText) repoBlocks)));
230+ cd $out
234+ GIT_COMMITTER_NAME='No One' GIT_COMMITTER_EMAIL= git commit -m "Minimal Repo For Haskell.Nix" --author 'No One <>'
236+ inherit (repoData) subdirs;
241+ # Parse the `source-repository-package` blocks
242+ sourceRepoPackageResult = pkgs.haskell-nix.haskellLib.parseSourceRepositoryPackages
243+ cabalProjectFileName sha256map source-repo-override projectFile;
245+ # Parse the `repository` blocks
246+ repoResult = pkgs.haskell-nix.haskellLib.parseRepositories
247+ evalPackages cabalProjectFileName sha256map inputMap cabal-install nix-tools sourceRepoPackageResult.otherText;
197 # we need the repository content twice:
249 # we need the repository content twice:
198 # * at eval time (below to build the fixed project file)
250 # * at eval time (below to build the fixed project file)
199− # Here we want to use pkgs.evalPackages.fetchgit, so one can calculate
251+ # Here we want to use evalPackages.fetchgit, so one can calculate
200 # the build plan for any target without a remote builder
252 # the build plan for any target without a remote builder
201 # * at built time (passed out)
253 # * at built time (passed out)
202 # Here we want to use plain pkgs.fetchgit, which is what a builder
254 # Here we want to use plain pkgs.fetchgit, which is what a builder
203 # on the target system would use, so that the derivation is unaffected
255 # on the target system would use, so that the derivation is unaffected
204 # and, say, a linux release build job can identify the derivation
256 # and, say, a linux release build job can identify the derivation
205 # as built by a darwin builder, and fetch it from a cache
257 # as built by a darwin builder, and fetch it from a cache
206− sourceReposEval = builtins.map (fetchRepo pkgs.evalPackages.fetchgit) sourceRepoData ;
258+ sourceReposEval = builtins.map (fetchPackageRepo evalPackages.fetchgit) sourceRepoPackageResult.sourceRepos;
207− sourceReposBuild = builtins.map (fetchRepo pkgs.fetchgit) sourceRepoData;
259+ sourceReposBuild = builtins.map (x: (fetchPackageRepo pkgs.fetchgit x).fetched) sourceRepoPackageResult.sourceRepos;
209 sourceRepos = sourceReposBuild;
261 sourceRepos = sourceReposBuild;
262+ inherit (repoResult) repos extra-hackages;
210 makeFixedProjectFile = ''
263 makeFixedProjectFile = ''
211− cp -f ${otherText} ./cabal.project
264+ cp -f ${evalPackages.writeText "cabal.project" sourceRepoPackageResult.otherText} ./cabal.project
266+ pkgs.lib.optionalString (builtins.length sourceReposEval != 0) (''
212 chmod +w -R ./cabal.project
267 chmod +w -R ./cabal.project
213 # The newline here is important in case cabal.project does not have one at the end
268 # The newline here is important in case cabal.project does not have one at the end
214− printf "\npackages:" >> ./cabal.project
269+ echo >> ./cabal.project
215− mkdir -p ./.source-repository-packages
271+ # Add replacement `source-repository-package` blocks pointing to the minimal git repos
272+ ( pkgs.lib.strings.concatMapStrings (f: ''
273+ echo "source-repository-package" >> ./cabal.project
274+ echo " type: git" >> ./cabal.project
275+ echo " location: file://${f.location}" >> ./cabal.project
276+ echo " subdir: ${builtins.concatStringsSep " " f.subdirs}" >> ./cabal.project
277+ echo " tag: ${f.tag}" >> ./cabal.project
280+ # This will be used to replace refernces to the minimal git repos with just the index
281+ # of the repo. The index will be used in lib/import-and-filter-project.nix to
282+ # lookup the correct repository in `sourceReposBuild`. This avoids having
283+ # `/nix/store` paths in the `plan-nix` output so that it can be materialized safely.
217− ( pkgs.lib.strings.concatStrings (
284+ replaceLocations = pkgs.lib.strings.concatStrings (
218 pkgs.lib.lists.zipListsWith (n: f: ''
285 pkgs.lib.lists.zipListsWith (n: f: ''
219− mkdir -p ./.source-repository-packages/${builtins.toString n}
286+ (cd $out${subDir'}
220− rsync -a --prune-empty-dirs \
287+ substituteInPlace $tmp${subDir'}/dist-newstyle/cache/plan.json --replace file://${f.location} ${builtins.toString n}
221− --include '*/' --include '*.cabal' --include 'package.yaml' \
288+ for a in $(grep -rl file://${f.location} .plan.nix/*.nix); do
222− --exclude '*' \
289+ substituteInPlace $a --replace file://${f.location} ${builtins.toString n}
223− "${f}/" "./.source-repository-packages/${builtins.toString n}/"
290+ done)
224− echo " ./.source-repository-packages/${builtins.toString n}" >> ./cabal.project
226 (pkgs.lib.lists.range 0 ((builtins.length sourceReposEval) - 1))
292 (pkgs.lib.lists.range 0 ((builtins.length sourceReposEval) - 1))
227 sourceReposEval
293 sourceReposEval
232 fixedProject =
297 fixedProject =
233 if rawCabalProject == null
298 if rawCabalProject == null
234− then { sourceRepos = []; makeFixedProjectFile = ""; }
299+ then { sourceRepos = []; repos = {}; extra-hackages = []; makeFixedProjectFile = ""; replaceLocations = ""; }
235− else replaceSoureRepos rawCabalProject;
300+ else replaceSourceRepos rawCabalProject;
237 # The use of the actual GHC can cause significant problems:
302 # The use of the actual GHC can cause significant problems:
238 # * For hydra to assemble a list of jobs from `components.tests` it must
303 # * For hydra to assemble a list of jobs from `components.tests` it must
@@ -303,12 +368,12 @@ let
305 # Dummy `ghc` that uses the captured output
370 # Dummy `ghc` that uses the captured output
306− dummy-ghc = pkgs.evalPackages.writeTextFile {
371+ dummy-ghc = evalPackages.writeTextFile {
307 name = "dummy-" + ghc.name;
372 name = "dummy-" + ghc.name;
308 executable = true;
373 executable = true;
309 destination = "/bin/${ghc.targetPrefix}ghc";
374 destination = "/bin/${ghc.targetPrefix}ghc";
310 text = ''
375 text = ''
311− #!${pkgs.evalPackages.runtimeShell}
376+ #!${evalPackages.runtimeShell}
312 case "$*" in
377 case "$*" in
313 --version*)
378 --version*)
314 cat ${dummy-ghc-data}/ghc/version
379 cat ${dummy-ghc-data}/ghc/version
@@ -346,12 +411,12 @@ let
348 # Dummy `ghc-pkg` that uses the captured output
413 # Dummy `ghc-pkg` that uses the captured output
349− dummy-ghc-pkg = pkgs.evalPackages.writeTextFile {
414+ dummy-ghc-pkg = evalPackages.writeTextFile {
350 name = "dummy-pkg-" + ghc.name;
415 name = "dummy-pkg-" + ghc.name;
351 executable = true;
416 executable = true;
352 destination = "/bin/${ghc.targetPrefix}ghc-pkg";
417 destination = "/bin/${ghc.targetPrefix}ghc-pkg";
353 text = ''
418 text = ''
354− #!${pkgs.evalPackages.runtimeShell}
419+ #!${evalPackages.runtimeShell}
355 case "$*" in
420 case "$*" in
356 --version)
421 --version)
357 cat ${dummy-ghc-data}/ghc-pkg/version
422 cat ${dummy-ghc-data}/ghc-pkg/version
@@ -387,10 +452,10 @@ let
387 else null;
452 else null;
388 } // pkgs.lib.optionalAttrs (checkMaterialization != null) {
453 } // pkgs.lib.optionalAttrs (checkMaterialization != null) {
389 inherit checkMaterialization;
454 inherit checkMaterialization;
390− }) (pkgs.evalPackages.runCommand (nameAndSuffix "plan-to-nix-pkgs") {
455+ }) (evalPackages.runCommand (nameAndSuffix "plan-to-nix-pkgs") {
391− nativeBuildInputs = [ nix-tools dummy-ghc dummy-ghc-pkg cabal-install pkgs.evalPackages.rsync ];
456+ nativeBuildInputs = [ nix-tools dummy-ghc dummy-ghc-pkg cabal-install evalPackages.rsync evalPackages.gitMinimal ];
392 # Needed or stack-to-nix will die on unicode inputs
457 # Needed or stack-to-nix will die on unicode inputs
393− LOCALE_ARCHIVE = pkgs.lib.optionalString (pkgs.evalPackages.stdenv.buildPlatform.libc == "glibc") "${pkgs.evalPackages.glibcLocales}/lib/locale/locale-archive";
458+ LOCALE_ARCHIVE = pkgs.lib.optionalString (evalPackages.stdenv.buildPlatform.libc == "glibc") "${evalPackages.glibcLocales}/lib/locale/locale-archive";
394 LANG = "en_US.UTF-8";
459 LANG = "en_US.UTF-8";
395 meta.platforms = pkgs.lib.platforms.all;
460 meta.platforms = pkgs.lib.platforms.all;
396 preferLocalBuild = false;
461 preferLocalBuild = false;
@@ -412,11 +477,11 @@ let
414 # These check for cabal configure failure
479 # These check for cabal configure failure
415− json = pkgs.evalPackages.runCommand (nameAndSuffix "plan-json") {} ''
480+ json = evalPackages.runCommand (nameAndSuffix "plan-json") {} ''
416 ${checkCabalConfigure}
481 ${checkCabalConfigure}
417 cp ${plan-nix.maybeJson} $out
482 cp ${plan-nix.maybeJson} $out
419− freeze = pkgs.evalPackages.runCommand (nameAndSuffix "plan-freeze") {} ''
484+ freeze = evalPackages.runCommand (nameAndSuffix "plan-freeze") {} ''
420 ${checkCabalConfigure}
485 ${checkCabalConfigure}
421 cp ${plan-nix.maybeFreeze} $out
486 cp ${plan-nix.maybeFreeze} $out
@@ -424,14 +489,18 @@ let
425 tmp=$(mktemp -d)
490 tmp=$(mktemp -d)
427− # if maybeCleanedSource is empty, this means it's a new
492+ # if cleanedSource is empty, this means it's a new
428 # project where the files haven't been added to the git
493 # project where the files haven't been added to the git
429 # repo yet. We fail early and provide a useful error
494 # repo yet. We fail early and provide a useful error
430 # message to prevent headaches (#290).
495 # message to prevent headaches (#290).
431− if [ -z "$(ls -A ${maybeCleanedSource})" ]; then
496+ if [ -z "$(ls -A ${cleanedSource})" ]; then
432− echo "cleaned source is empty. Did you forget to 'git add -A'?"; exit 1;
497+ echo "cleaned source is empty. Did you forget to 'git add -A'?"
498+ ${pkgs.lib.optionalString (__length fixedProject.sourceRepos == 0) ''
502+ cp -r ${cleanedSource}/* .
434− cp -r ${maybeCleanedSource}/* .
435 chmod +w -R .
504 chmod +w -R .
436 # Decide what to do for each `package.yaml` file.
505 # Decide what to do for each `package.yaml` file.
437 for hpackFile in $(find . -name package.yaml); do (
506 for hpackFile in $(find . -name package.yaml); do (
@@ -454,7 +523,7 @@ let
454 ${pkgs.lib.optionalString (subDir != "") "cd ${subDir}"}
523 ${pkgs.lib.optionalString (subDir != "") "cd ${subDir}"}
455 ${fixedProject.makeFixedProjectFile}
524 ${fixedProject.makeFixedProjectFile}
456 ${pkgs.lib.optionalString (cabalProjectFreeze != null) ''
525 ${pkgs.lib.optionalString (cabalProjectFreeze != null) ''
457− cp ${pkgs.evalPackages.writeText "cabal.project.freeze" cabalProjectFreeze} \
526+ cp ${evalPackages.writeText "cabal.project.freeze" cabalProjectFreeze} \
458 cabal.project.freeze
527 cabal.project.freeze
459 chmod +w cabal.project.freeze
528 chmod +w cabal.project.freeze
@@ -473,15 +542,16 @@ let
473 # which is used by cabal (cached-index-state >= index-state-found).
542 # which is used by cabal (cached-index-state >= index-state-found).
474 dotCabal {
543 dotCabal {
475 inherit cabal-install nix-tools extra-hackage-tarballs;
544 inherit cabal-install nix-tools extra-hackage-tarballs;
545+ extra-hackage-repos = fixedProject.repos;
476 index-state = cached-index-state;
546 index-state = cached-index-state;
477 sha256 = index-sha256-found;
547 sha256 = index-sha256-found;
479− } cabal v2-freeze \
549+ } cabal v2-freeze ${
481− # Setting the desired `index-state` here in case it was not
550+ # Setting the desired `index-state` here in case it is not
482− # from the cabal.project file. This will further restrict the
551+ # in the cabal.project file. This will further restrict the
483− # packages used by the solver (cached-index-state >= index-state-found).
552+ # packages used by the solver (cached-index-state >= index-state-found).
484− index-state-found} \
553+ pkgs.lib.optionalString (index-state != null) "--index-state=${index-state}"
486 # We are using `-w` rather than `--with-ghc` here to override
556 # We are using `-w` rather than `--with-ghc` here to override
487 # the `with-compiler:` in the `cabal.project` file.
557 # the `with-compiler:` in the `cabal.project` file.
@@ -519,16 +589,15 @@ let
519 # proper relative paths.
589 # proper relative paths.
520 (cd $out${subDir'} && plan-to-nix --full --plan-json $tmp${subDir'}/dist-newstyle/cache/plan.json -o .)
590 (cd $out${subDir'} && plan-to-nix --full --plan-json $tmp${subDir'}/dist-newstyle/cache/plan.json -o .)
592+ # Replace the /nix/store paths to minimal git repos with indexes (that will work with materialization).
593+ ${fixedProject.replaceLocations}
522 # Make the plan.json file available in case we need to debug plan-to-nix
595 # Make the plan.json file available in case we need to debug plan-to-nix
523 cp $tmp${subDir'}/dist-newstyle/cache/plan.json $maybeJson
596 cp $tmp${subDir'}/dist-newstyle/cache/plan.json $maybeJson
525 # Remove the non nix files ".project" ".cabal" "package.yaml" files
598 # Remove the non nix files ".project" ".cabal" "package.yaml" files
526 # as they should not be in the output hash (they may change slightly
599 # as they should not be in the output hash (they may change slightly
527 # without affecting the nix).
600 # without affecting the nix).
528− if [ -d $out${subDir'}/.source-repository-packages ]; then
529− chmod +w -R $out${subDir'}/.source-repository-packages
530− rm -rf $out${subDir'}/.source-repository-packages
532 find $out \( -type f -or -type l \) ! -name '*.nix' -delete
601 find $out \( -type f -or -type l \) ! -name '*.nix' -delete
533 # Remove empty dirs
602 # Remove empty dirs
534 find $out -type d -empty -delete
603 find $out -type d -empty -delete
@@ -559,5 +628,5 @@ in {
559 projectNix = plan-nix;
628 projectNix = plan-nix;
560 index-state = index-state-found;
629 index-state = index-state-found;
561 inherit src;
630 inherit src;
562− inherit (fixedProject) sourceRepos;
631+ inherit (fixedProject) sourceRepos extra-hackages;
lib/call-stack-to-nix.nix+21−22
@@ -5,7 +5,6 @@
6 * see also `call-cabal-project-to-nix`!
6 * see also `call-cabal-project-to-nix`!
8−{ runCommand, pkgs, mkCacheFile, materialize, haskellLib }:
9{ name ? src.name or null # optional name for better error messages
8{ name ? src.name or null # optional name for better error messages
11, stackYaml ? "stack.yaml"
10, stackYaml ? "stack.yaml"
@@ -15,24 +14,24 @@
15, resolverSha256 ? null
14, resolverSha256 ? null
16, materialized ? null # Location of a materialized copy of the nix files
15, materialized ? null # Location of a materialized copy of the nix files
17, checkMaterialization ? null # If true the nix files will be generated used to check plan-sha256 and material
16, checkMaterialization ? null # If true the nix files will be generated used to check plan-sha256 and material
18−, nix-tools ? pkgs.haskell-nix.internal-nix-tools # When building stack projects we use the internal nix-tools (compiled with a fixed GHC version)
17+, nix-tools
19−, ... }:
19+, ... }@args:
21+ inherit (evalPackages) runCommand;
22+ inherit (evalPackages.haskell-nix) mkCacheFile materialize haskellLib;
21 inherit (haskellLib.fetchResolver {
23 inherit (haskellLib.fetchResolver {
22 inherit src stackYaml resolverSha256;
24 inherit src stackYaml resolverSha256;
23 }) resolver fetchedResolver;
25 }) resolver fetchedResolver;
25 subDir' = src.origSubDir or "";
27 subDir' = src.origSubDir or "";
26− subDir = pkgs.lib.strings.removePrefix "/" subDir';
28+ subDir = evalPackages.lib.strings.removePrefix "/" subDir';
28− if haskellLib.canCleanSource src
29− then (haskellLib.cleanSourceWith {
29+ cleanedSource = (haskellLib.cleanSourceWith {
30− name = if name != null then "${name}-root-cabal-files" else "source-root-cabal-files";
30+ name = if name != null then "${name}-root-cabal-files" else "source-root-cabal-files";
31− src = src.origSrc or src;
31+ src = src.origSrc or src;
32− filter = path: type: (!(src ? filter) || src.filter path type) && (
32+ filter = path: type: (!(src ? filter) || src.filter path type) && (
33− type == "directory" ||
33+ type == "directory" ||
34− pkgs.lib.any (i: (pkgs.lib.hasSuffix i path)) [ stackYaml ".cabal" "package.yaml" ]); })
34+ evalPackages.lib.any (i: (evalPackages.lib.hasSuffix i path)) [ stackYaml ".cabal" "package.yaml" ]); });
35− else src.origSrc or src;
37 stackToNixArgs = builtins.concatStringsSep " " [
36 stackToNixArgs = builtins.concatStringsSep " " [
@@ -46,12 +45,12 @@ let
46 sha256Arg = "stack-sha256";
45 sha256Arg = "stack-sha256";
47 reasonNotSafe = null;
46 reasonNotSafe = null;
48 this = "project.stack-nix" + (if name != null then " for ${name}" else "");
47 this = "project.stack-nix" + (if name != null then " for ${name}" else "");
49− } // pkgs.lib.optionalAttrs (checkMaterialization != null) {
48+ } // evalPackages.lib.optionalAttrs (checkMaterialization != null) {
50 inherit checkMaterialization;
49 inherit checkMaterialization;
51 }) (runCommand (if name == null then "stack-to-nix-pkgs" else name + "-stack-to-nix-pkgs") {
50 }) (runCommand (if name == null then "stack-to-nix-pkgs" else name + "-stack-to-nix-pkgs") {
52− nativeBuildInputs = [ nix-tools pkgs.nix-prefetch-git pkgs.cacert pkgs.xorg.lndir ];
51+ nativeBuildInputs = [ nix-tools evalPackages.nix-prefetch-git evalPackages.cacert evalPackages.xorg.lndir ];
53 # Needed or stack-to-nix will die on unicode inputs
52 # Needed or stack-to-nix will die on unicode inputs
54− LOCALE_ARCHIVE = pkgs.lib.optionalString (pkgs.stdenv.hostPlatform.libc == "glibc") "${pkgs.glibcLocales}/lib/locale/locale-archive";
53+ LOCALE_ARCHIVE = evalPackages.lib.optionalString (evalPackages.stdenv.hostPlatform.libc == "glibc") "${evalPackages.glibcLocales}/lib/locale/locale-archive";
55 LANG = "en_US.UTF-8";
54 LANG = "en_US.UTF-8";
56 LC_ALL = "en_US.UTF-8";
55 LC_ALL = "en_US.UTF-8";
57 preferLocalBuild = false;
56 preferLocalBuild = false;
@@ -59,18 +58,18 @@ let
59 mkdir -p $out${subDir'}
58 mkdir -p $out${subDir'}
60 SRC=$(mktemp -d)
59 SRC=$(mktemp -d)
62− # if maybeCleanedSource is empty, this means it's a new
61+ # if cleanedSource is empty, this means it's a new
63 # project where the files haven't been added to the git
62 # project where the files haven't been added to the git
64 # repo yet. We fail early and provide a useful error
63 # repo yet. We fail early and provide a useful error
65 # message to prevent headaches (#290).
64 # message to prevent headaches (#290).
66− if [ -z "$(ls -A ${maybeCleanedSource})" ]; then
65+ if [ -z "$(ls -A ${cleanedSource})" ]; then
67 echo "cleaned source is empty. Did you forget to 'git add -A'?"; exit 1;
66 echo "cleaned source is empty. Did you forget to 'git add -A'?"; exit 1;
69− lndir -silent "${maybeCleanedSource}/." $SRC
68+ lndir -silent "${cleanedSource}/." $SRC
70− ${pkgs.lib.optionalString (subDir != "") "cd ${subDir}"}
69+ ${evalPackages.lib.optionalString (subDir != "") "cd ${subDir}"}
72 # If a resolver was fetched use the it instead of the original stack.yaml
71 # If a resolver was fetched use the it instead of the original stack.yaml
73− pkgs.lib.optionalString (fetchedResolver != null)
72+ evalPackages.lib.optionalString (fetchedResolver != null)
74 # Replace the resolver path in the stack.yaml with the fetched version
73 # Replace the resolver path in the stack.yaml with the fetched version
76 rm ${stackYaml}
75 rm ${stackYaml}
@@ -78,7 +77,7 @@ let
78 chmod +w ${stackYaml}
77 chmod +w ${stackYaml}
79 substituteInPlace ${stackYaml} --replace "${resolver}" "${fetchedResolver}"
78 substituteInPlace ${stackYaml} --replace "${resolver}" "${fetchedResolver}"
81− ${pkgs.lib.optionalString (cache != null) ''
80+ ${evalPackages.lib.optionalString (cache != null) ''
82 cp ${mkCacheFile cache}/.stack-to-nix.cache* $out${subDir'}
81 cp ${mkCacheFile cache}/.stack-to-nix.cache* $out${subDir'}
84 (cd $out${subDir'} && stack-to-nix ${stackToNixArgs})
83 (cd $out${subDir'} && stack-to-nix ${stackToNixArgs})
@@ -1,4 +1,4 @@
1−{ stdenv, lib, haskellLib, srcOnly }:
1+{ stdenv, lib, haskellLib }:
@@ -7,13 +7,25 @@ let
7# This derivation can be used to execute test component.
7# This derivation can be used to execute test component.
8# The $out of the derivation is a file containing the resulting
8# The $out of the derivation is a file containing the resulting
9# stdout output.
9# stdout output.
10−in stdenv.mkDerivation ({
10+in stdenv.mkDerivation ((
15+ # This `cd` is normally done in the `prePatch` of the drv
16+ lib.optionalString (drv.srcSubDir != "") ''
17+ cd ${lib.removePrefix "/" drv.srcSubDir}
21+ # This makes the derivation work a bit like `srcOnly`,
22+ # using the original derivation, but replacing the `buildPhase`.
23+ (drv.drvAttrs or drv) // {
25+ separateDebugInfo = false;
11 name = (drv.name + "-check");
27 name = (drv.name + "-check");
13− # Using `srcOnly` (rather than getting the `src` via a `drv.passthru`)
14− # should correctly apply the patches from `drv` (if any).
15− src = drv.source or (srcOnly drv);
17 passthru = {
29 passthru = {
18 inherit (drv) identifier config configFiles executableToolDepends cleanSrc env exeName;
30 inherit (drv) identifier config configFiles executableToolDepends cleanSrc env exeName;
@@ -22,19 +34,12 @@ in stdenv.mkDerivation ({
23 inherit (component) doCheck doCrossCheck;
35 inherit (component) doCheck doCrossCheck;
25− phases = ["unpackPhase" "buildPhase"];
37+ phases = ["unpackPhase" "patchPhase" "buildPhase"];
27 # If doCheck or doCrossCheck are false we may still build this
39 # If doCheck or doCrossCheck are false we may still build this
28 # component and we want it to quietly succeed.
40 # component and we want it to quietly succeed.
29 buildPhase = ''
41 buildPhase = ''
30 mkdir $out
42 mkdir $out
32− # Change to the source sub directory if there is one.
33− lib.optionalString (drv.srcSubDir or "" != "") ''
34− cd ${lib.removePrefix "/" drv.srcSubDir}
38 runHook preCheck
43 runHook preCheck
40 ${toString component.testWrapper} ${drv}/bin/${drv.exeName} ${lib.concatStringsSep " " component.testFlags} | tee $out/test-stdout
45 ${toString component.testWrapper} ${drv}/bin/${drv.exeName} ${lib.concatStringsSep " " component.testFlags} | tee $out/test-stdout
lib/clean-cabal-component.nix+2−2
@@ -1,6 +1,6 @@
1# Use cleanSourceWith to filter just the files needed for a particular
1# Use cleanSourceWith to filter just the files needed for a particular
2# component of the package
2# component of the package
3−{ lib, cleanSourceWith, canCleanSource }: package: component: componentName: src:
3+{ lib, cleanSourceWith }: package: component: componentName: src:
5 srcStr' = src.origSrc or null;
5 srcStr' = src.origSrc or null;
6 subDir = if src.origSubDir or "" == ""
6 subDir = if src.origSubDir or "" == ""
@@ -56,7 +56,7 @@ let
57 else p + "/";
57 else p + "/";
59− if srcStr' == null || package.detailLevel != "FullDetails" || !canCleanSource src
59+ if srcStr' == null || package.detailLevel != "FullDetails"
@@ -65,9 +65,13 @@ then
65 first_line = head git_content;
65 first_line = head git_content;
66 prefix = "gitdir: ";
66 prefix = "gitdir: ";
67 ok = length git_content == 1 && lib.hasPrefix prefix first_line;
67 ok = length git_content == 1 && lib.hasPrefix prefix first_line;
68+ raw_path = remove_prefix prefix first_line;
70− then /. + remove_prefix prefix first_line
71+ then
72+ if lib.hasPrefix "/" raw_path
74+ else /. + builtins.toPath (origSrcSubDir + "/" + raw_path)
71 else abort "gitSource.nix: Cannot parse ${origSrcSubDir + "/.git"}";
75 else abort "gitSource.nix: Cannot parse ${origSrcSubDir + "/.git"}";
@@ -112,7 +116,7 @@ then
112 # `git ls-files --recurse-submodules` to give us an accurate list
116 # `git ls-files --recurse-submodules` to give us an accurate list
113 # of all the files in the index.
117 # of all the files in the index.
114 whitelist_files = knownSubmoduleDirs:
118 whitelist_files = knownSubmoduleDirs:
115− runCommand "git-ls-files" {} ''
119+ runCommand "git-ls-files" { preferLocalBuild = true; } ''
116 tmp=$(mktemp -d)
120 tmp=$(mktemp -d)
118 ${ lib.optionalString hasSubmodules ''
122 ${ lib.optionalString hasSubmodules ''
@@ -135,7 +139,7 @@ then
135 ${git}/bin/git ls-files --recurse-submodules > $out/files
139 ${git}/bin/git ls-files --recurse-submodules > $out/files
138− # Find the submodules
142+ # Find the submodules
139 whitelist_recursive = knownSubmoduleDirs:
143 whitelist_recursive = knownSubmoduleDirs:
141 # Get the new list of submoduleDirs and files
145 # Get the new list of submoduleDirs and files
@@ -176,7 +180,7 @@ then
178 # Identify files in the `.git` dir
182 # Identify files in the `.git` dir
179− isGitDirPath = path:
183+ isGitDirPath = path:
180 path == origSrcSubDir + "/.git"
184 path == origSrcSubDir + "/.git"
181 || lib.hasPrefix (origSrcSubDir + "/.git/") path;
185 || lib.hasPrefix (origSrcSubDir + "/.git/") path;
lib/clean-source-with.nix+35−8
@@ -50,6 +50,33 @@
50 # (and forward a `name` argument) can use this to make
50 # (and forward a `name` argument) can use this to make
51 # the message to the use more meaningful.
51 # the message to the use more meaningful.
53+ # Nix <2.4 Suport with filterPath
55+ # As of Nix >=2.4 filtering is now possible on all paths (including those in the store).
56+ # If you still need to support older versions of Nix and want to maximise cache hits for your project
57+ # you may want to consider using setting the `filterPath` attribute on `src` (must be done on
58+ # the original src not the output of another `cleanSourceWith`).
60+ # To disable filtering completely replace:
66+ # src = { outPath = ./.; filterPath = { path, ... }: path; };
68+ # To disable filtering only when the path is in the store use (when Nix <2.4 is unable to filter it):
72+ # filterPath = { path, ... }@args:
73+ # if builtins.hasContext (toString path) then path else builtins.path args;
76+ # Currently `haskell-nix.hackage-project` (used by `hackage-package`, `tool` and `tools`) disables
77+ # filtering. See `overlays/haskell.nix` for details.
79+ # For more see https://github.com/input-output-hk/haskell.nix/pull/1418
53 cleanSourceWith = { filter ? _path: _type: true, src, subDir ? "", name ? null
80 cleanSourceWith = { filter ? _path: _type: true, src, subDir ? "", name ? null
54 , caller ? "cleanSourceWith", includeSiblings ? false }:
81 , caller ? "cleanSourceWith", includeSiblings ? false }:
@@ -103,21 +130,21 @@
103 __trace (
130 __trace (
104 "WARNING: `${caller}` called on ${toString src} without a `name`. "
131 "WARNING: `${caller}` called on ${toString src} without a `name`. "
105 + "Consider adding `name = \"${baseNameOf src}\";`") "source";
132 + "Consider adding `name = \"${baseNameOf src}\";`") "source";
133+ filterPath = origSrc.filterPath or (
134+ if builtins.compareVersions builtins.nixVersion "2.4" >= 0
136+ else __trace "WARNING: Using nix <2.4 will result in inconsistent filtering of ${toString origSrc} (see lib/clean-source-with.nix)"
137+ (if builtins.hasContext or (lib.hasPrefix builtins.storeDir) (toString origSrc)
138+ then { path, ... }: path
139+ else builtins.path));
107 inherit origSrc origSubDir origSrcSubDir;
141 inherit origSrc origSubDir origSrcSubDir;
108 filter = filter';
142 filter = filter';
109− outPath = (builtins.path { filter = filter'; path = origSrc; name = name'; }) + origSubDir;
143+ outPath = (filterPath { filter = filter'; path = origSrc; name = name'; }) + origSubDir;
110 _isLibCleanSourceWithEx = true;
144 _isLibCleanSourceWithEx = true;
111 # It is only safe for older cleanSourceWith to filter this one
145 # It is only safe for older cleanSourceWith to filter this one
112 # if the we are still looking at the root of origSrc
146 # if the we are still looking at the root of origSrc
113 _isLibCleanSourceWith = origSubDir == "";
147 _isLibCleanSourceWith = origSubDir == "";
114 name = name';
148 name = name';
117− pathHasContext = builtins.hasContext or (lib.hasPrefix builtins.storeDir);
119− canCleanSource = src:
120− src ? _isLibCleanSourceWithEx
121− || src ? _isLibCleanSourceWith
122− || !(pathHasContext (toString src));
lib/cover-project.nix+44−47
@@ -10,19 +10,12 @@ coverageReports:
11 toBashArray = arr: "(" + (lib.concatStringsSep " " arr) + ")";
11 toBashArray = arr: "(" + (lib.concatStringsSep " " arr) + ")";
13− # Create table rows for a project coverage index page that look something like:
13+ # Create a list element for a project coverage index page.
16− # |------------------|
18− # | cardano-launcher |
19− coverageTableRows = coverageReport:
14+ coverageListElement = coverageReport:
23− <a href="${coverageReport.passthru.name}/hpc_index.html">${coverageReport.passthru.name}</href>
17+ <a href="${coverageReport.passthru.name}/hpc_index.html">${coverageReport.passthru.name}</a>
28 projectIndexHtml = pkgs.writeText "index.html" ''
21 projectIndexHtml = pkgs.writeText "index.html" ''
@@ -31,23 +24,32 @@ let
31 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
24 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
34− <table border="1" width="100%">
27+ <div>
35− <tbody>
28+ WARNING: Modules with no coverage are not included in any of these reports, this is just how HPC works under the hood.
37− <th>Report</th>
31+ <h2>Union Report</h2>
38− </tr>
32+ <p>The following report shows how each module is covered by any test in the project:</p>
35+ <a href="all/hpc_index.html">all</a>
40+ <h2>Individual Reports</h2>
41+ <p>The following reports show how the tests of each package cover modules in the project:</p>
40− ${with lib; concatStringsSep "\n" (map coverageTableRows coverageReports)}
43+ ${with lib; concatStringsSep "\n" (map coverageListElement coverageReports)}
48 ghc = project.pkg-set.config.ghc.package;
50 ghc = project.pkg-set.config.ghc.package;
50− libs = lib.remove null (map (r: r.library) coverageReports);
52+ libs = lib.unique (lib.concatMap (r: r.mixLibraries) coverageReports);
@@ -56,6 +58,17 @@ let
57 srcDirs = map (l: l.srcSubDirPath) libs;
59 srcDirs = map (l: l.srcSubDirPath) libs;
61+ allCoverageReport = haskellLib.coverageReport {
63+ checks = lib.flatten (lib.concatMap
64+ (pkg: lib.optional (pkg ? checks) (lib.filter lib.isDerivation (lib.attrValues pkg.checks)))
65+ (lib.attrValues (haskellLib.selectProjectPackages project.hsPkgs)));
66+ mixLibraries = lib.concatMap
67+ (pkg: lib.optional (pkg.components ? library) pkg.components.library)
68+ (lib.attrValues (haskellLib.selectProjectPackages project.hsPkgs));
69+ ghc = project.pkg-set.config.ghc.package;
59in pkgs.runCommand "project-coverage-report"
72in pkgs.runCommand "project-coverage-report"
60 ({ nativeBuildInputs = [ (ghc.buildGHC or ghc) pkgs.buildPackages.zip ];
73 ({ nativeBuildInputs = [ (ghc.buildGHC or ghc) pkgs.buildPackages.zip ];
61 LANG = "en_US.UTF-8";
74 LANG = "en_US.UTF-8";
@@ -124,30 +137,14 @@ in pkgs.runCommand "project-coverage-report"
124 cp -R $report/share/hpc/vanilla/html/* $out/share/hpc/vanilla/html/
137 cp -R $report/share/hpc/vanilla/html/* $out/share/hpc/vanilla/html/
125 '') coverageReports)}
138 '') coverageReports)}
127− if [ ''${#tixFiles[@]} -ne 0 ]; then
128− # Create tix file with test run information for all packages
129− tixFile="$out/share/hpc/vanilla/tix/all/all.tix"
130− hpcSumCmd=("hpc" "sum" "--union" "--output=$tixFile")
131− hpcSumCmd+=("''${tixFiles[@]}")
132− echo "''${hpcSumCmd[@]}"
133− eval "''${hpcSumCmd[@]}"
135− # Markup a HTML coverage report for the entire project
140+ # Copy out "all" coverage report
136− cp ${projectIndexHtml} $out/share/hpc/vanilla/html/index.html
141+ cp -R ${allCoverageReport}/share/hpc/vanilla/tix/all $out/share/hpc/vanilla/tix
137− echo "report coverage-per-package $out/share/hpc/vanilla/html/index.html" >> $out/nix-support/hydra-build-products
139− local markupOutDir="$out/share/hpc/vanilla/html/all"
142+ cp -R ${allCoverageReport}/share/hpc/vanilla/html/all $out/share/hpc/vanilla/html
140− local srcDirs=${toBashArray srcDirs}
141− local mixDirs=${toBashArray mixDirs}
142− local allMixModules=()
145− findModules allMixModules "$out/share/hpc/vanilla/mix/" "*.mix"
147− markup srcDirs mixDirs allMixModules "$markupOutDir" "$tixFile"
144+ # Markup a HTML coverage summary report for the entire project
145+ cp ${projectIndexHtml} $out/share/hpc/vanilla/html/index.html
149− echo "report coverage $markupOutDir/hpc_index.html" >> $out/nix-support/hydra-build-products
147+ echo "report coverage $out/share/hpc/vanilla/html/index.html" >> $out/nix-support/hydra-build-products
150− ( cd $out/share/hpc/vanilla/html ; zip -r $out/share/hpc/vanilla/html.zip . )
148+ ( cd $out/share/hpc/vanilla/html ; zip -r $out/share/hpc/vanilla/html.zip . )
151− echo "file zip $out/share/hpc/vanilla/html.zip" >> $out/nix-support/hydra-build-products
149+ echo "file zip $out/share/hpc/vanilla/html.zip" >> $out/nix-support/hydra-build-products
@@ -1,18 +1,18 @@
1+# The following collects coverage information from a set of given "checks" and
2+# provides a coverage report showing how those "checks" cover a set of given
1{ stdenv, lib, haskellLib, pkgs }:
4{ stdenv, lib, haskellLib, pkgs }:
3−# Name of the coverage report, which should be unique
6+# Name of the coverage report, which should be unique.
5−# Library to check coverage of
7−# List of check derivations that generate coverage
8+# List of check derivations that generate coverage.
8−, checks
9+, checks ? []
9−# List of other libraries to include in the coverage report. The
10+# List of libraries to include in the coverage report. If one of the above
10−# default value if just the derivation provided as the `library`
11+# checks generates coverage for a particular library, coverage will only
11−# argument. Use a larger list of libraries if you would like the tests
12+# be included if that library is in this list.
12−# of one local package to generate coverage for another.
13−, mixLibraries ? [library]
13+, mixLibraries ? []
14−# hack for project-less projects
14+# Hack for project-less projects.
15−, ghc ? library.project.pkg-set.config.ghc.package
15+, ghc ? if mixLibraries == [] then null else (lib.head mixLibraries).project.pkg-set.config.ghc.package
@@ -26,7 +26,7 @@ let
26in pkgs.runCommand (name + "-coverage-report")
26in pkgs.runCommand (name + "-coverage-report")
27 ({nativeBuildInputs = [ (ghc.buildGHC or ghc) pkgs.buildPackages.zip ];
27 ({nativeBuildInputs = [ (ghc.buildGHC or ghc) pkgs.buildPackages.zip ];
28 passthru = {
28 passthru = {
29− inherit name library checks;
29+ inherit name checks mixLibraries;
31 # HPC will fail if the Haskell file contains non-ASCII characters,
31 # HPC will fail if the Haskell file contains non-ASCII characters,
32 # unless our locale is set correctly. This has been fixed, but we
32 # unless our locale is set correctly. This has been fixed, but we
@@ -70,71 +70,105 @@ in pkgs.runCommand (name + "-coverage-report")
70 local -n tixFs=$2
70 local -n tixFs=$2
71 local outFile="$3"
71 local outFile="$3"
73+ if (( "''${#tixFs[@]}" > 0 )); then
73− local hpcSumCmd=("hpc" "sum" "--union" "--output=$outFile")
74+ local hpcSumCmd=("hpc" "sum" "--union" "--output=$outFile")
75− for module in "''${includedModules[@]}"; do
76+ for module in "''${includedModules[@]}"; do
76− hpcSumCmd+=("--include=$module")
77+ hpcSumCmd+=("--include=$module")
79− for tixFile in "''${tixFs[@]}"; do
80+ for tixFile in "''${tixFs[@]}"; do
80− hpcSumCmd+=("$tixFile")
81+ hpcSumCmd+=("$tixFile")
83− echo "''${hpcSumCmd[@]}"
84+ echo "''${hpcSumCmd[@]}"
84− eval "''${hpcSumCmd[@]}"
85+ eval "''${hpcSumCmd[@]}"
87+ # If there are no tix files we output an empty tix file so that we can
88+ # markup an empty HTML coverage report. This is preferable to failing to
89+ # output a HTML report.
90+ echo 'Tix []' > $outFile
87 function findModules() {
94 function findModules() {
88− local searchDir=$2
95+ local -n result=$1
96+ local -n searchDirs=$2
89 local pattern=$3
97 local pattern=$3
99+ for dir in "''${searchDirs[@]}"; do
91− pushd $searchDir
100+ pushd $dir
92− mapfile -d $'\0' $1 < <(find ./ -type f \
102+ mapfile -d $'\0' temp < <(find ./ -type f \
93− -wholename "$pattern" -not -name "Paths*" \
103+ -wholename "$pattern" -not -name "Paths*" \
94− -exec basename {} \; \
104+ -exec basename {} \; \
95− | sed "s/\.mix$//" \
105+ | sed "s/\.mix$//" \
96− | tr "\n" "\0")
106+ | tr "\n" "\0")
107+ result+=("''${temp[@]}")
100− local mixDirs=${toBashArray mixDirs}
102 mkdir -p $out/nix-support
112 mkdir -p $out/nix-support
103− mkdir -p $out/share/hpc/vanilla/mix/${name}
113+ mkdir -p $out/share/hpc/vanilla/mix/
104 mkdir -p $out/share/hpc/vanilla/tix/${name}
114 mkdir -p $out/share/hpc/vanilla/tix/${name}
105 mkdir -p $out/share/hpc/vanilla/html/${name}
115 mkdir -p $out/share/hpc/vanilla/html/${name}
117+ local srcDirs=${toBashArray srcDirs}
118+ local mixDirs=${toBashArray mixDirs}
107− # Copy over mix files verbatim
120+ # Copy out mix files used for this report
108 for dir in "''${mixDirs[@]}"; do
121 for dir in "''${mixDirs[@]}"; do
109 if [ -d "$dir" ]; then
122 if [ -d "$dir" ]; then
110− cp -R "$dir"/* $out/share/hpc/vanilla/mix/${name}
123+ cp -R "$dir" $out/share/hpc/vanilla/mix/
114− local srcDirs=${toBashArray srcDirs}
127+ local mixModules=()
115− local allMixModules=()
128+ # Mix modules for all packages in "mixLibraries"
116− local pkgMixModules=()
129+ findModules mixModules mixDirs "*.mix"
118− # The behaviour of stack coverage reports is to provide tix files
131+ # We need to make a distinction between library "exposed-modules" and
119− # that include coverage information for every local package, but
132+ # "other-modules" used in test suites:
120− # to provide HTML reports that only include coverage info for the
133+ # - "exposed-modules" are addressed as "$library-$version-$hash/module"
121− # current package. We emulate the same behaviour here. If the user
134+ # - "other-modules" are addressed as "module"
122− # includes all local packages in the mix libraries argument, they
135+ #
123− # will get a coverage report very similar to stack.
136+ # This complicates the code required to find the mix modules. For a given mix directory:
125− # All mix modules
138+ # mix
126− findModules allMixModules "$out/share/hpc/vanilla/mix/${name}" "*.mix"
139+ # └── ntp-client-0.0.1
127− # Only mix modules corresponding to this package
140+ # └── ntp-client-0.0.1-gYjRsBHUCaHX7ENcjHnw5
128− findModules pkgMixModules "$out/share/hpc/vanilla/mix/${name}" "*${name}*/*.mix"
141+ # ├── Network.NTP.Client.mix
129−
142+ # ├── Network.NTP.Client.Packet.mix
130− # For each test
143+ # └── Network.NTP.Client.Query.mix
145+ # Iff ntp-client uses "other-modules" in a test suite, both:
146+ # - "mix/ntp-client-0.0.1", and
147+ # - "mix/ntp-client-0.0.1/ntp-client-0.0.1-gYjRsBHUCaHX7ENcjHnw5"
148+ # need to be provided to hpc as search directories.
150+ # I'd prefer to just exclude "other-modules", but I can't think of an easy
151+ # way to do that in bash.
153+ # Here we expand the search dirs and modify the mix dirs accordingly:
154+ for dir in "''${mixDirs[@]}"; do
155+ local otherModulesSearchDirs=()
156+ # Simply consider any directory with a mix file as a search directory.
157+ mapfile -d $'\0' otherModulesSearchDirs < <(find $dir -type f \
158+ -wholename "*.mix" \
159+ -exec dirname {} \; \
162+ mixDirs+=("''${otherModulesSearchDirs[@]}")
131 local tixFiles=()
165 local tixFiles=()
132 ${lib.concatStringsSep "\n" (builtins.map (check: ''
166 ${lib.concatStringsSep "\n" (builtins.map (check: ''
133 if [ -d "${check}/share/hpc/vanilla/tix" ]; then
167 if [ -d "${check}/share/hpc/vanilla/tix" ]; then
134 pushd ${check}/share/hpc/vanilla/tix
168 pushd ${check}/share/hpc/vanilla/tix
136 tixFile="$(find . -iwholename "*.tix" -type f -print -quit)"
170 tixFile="$(find . -iwholename "*.tix" -type f -print -quit)"
137− local newTixFile=$out/share/hpc/vanilla/tix/${name}/"$tixFile"
171+ local newTixFile=$out/share/hpc/vanilla/tix/${check.name}/"$(basename $tixFile)"
139 mkdir -p "$(dirname $newTixFile)"
173 mkdir -p "$(dirname $newTixFile)"
140 # Copy over the tix file verbatim
174 # Copy over the tix file verbatim
@@ -143,29 +177,28 @@ in pkgs.runCommand (name + "-coverage-report")
143 # Add the tix file to our list
177 # Add the tix file to our list
144 tixFiles+=("$newTixFile")
178 tixFiles+=("$newTixFile")
146− # Create a coverage report for *just that test*
180+ # Create a coverage report for *just that check* affecting any of the
147− markup srcDirs mixDirs pkgMixModules "$out/share/hpc/vanilla/html/${name}/${check.exeName}/" "$newTixFile"
182+ markup srcDirs mixDirs mixModules "$out/share/hpc/vanilla/html/${check.name}/" "$newTixFile"
151 '') checks)
186 '') checks)
154− # Sum tix files to create a tix file with all relevant tix
189+ # Sum tix files to create a tix file with tix information from all tests in
155− # information and markup a HTML report from this info.
190+ # the package and markup a HTML report from this info.
156− if (( "''${#tixFiles[@]}" > 0 )); then
157− local sumTixFile="$out/share/hpc/vanilla/tix/${name}/${name}.tix"
191+ local sumTixFile="$out/share/hpc/vanilla/tix/${name}/${name}.tix"
158− local markupOutDir="$out/share/hpc/vanilla/html/${name}"
192+ local markupOutDir="$out/share/hpc/vanilla/html/${name}"
160− # Sum all of our tix file, including modules from any local package
194+ # Sum all of our tix files
161− sumTix allMixModules tixFiles "$sumTixFile"
195+ sumTix mixModules tixFiles "$sumTixFile"
163− # Markup a HTML report, included modules from only this package
197+ # Markup a HTML report
164− markup srcDirs mixDirs pkgMixModules "$markupOutDir" "$sumTixFile"
198+ markup srcDirs mixDirs mixModules "$markupOutDir" "$sumTixFile"
166− # Provide a HTML zipfile and Hydra links
200+ # Provide a HTML zipfile and Hydra links
167− ( cd "$markupOutDir" ; zip -r $out/share/hpc/vanilla/${name}-html.zip . )
201+ ( cd "$markupOutDir" ; zip -r $out/share/hpc/vanilla/${name}-html.zip . )
168− echo "report coverage $markupOutDir/hpc_index.html" >> $out/nix-support/hydra-build-products
202+ echo "report coverage $markupOutDir/hpc_index.html" >> $out/nix-support/hydra-build-products
169− echo "file zip $out/share/hpc/vanilla/${name}-html.zip" >> $out/nix-support/hydra-build-products
203+ echo "file zip $out/share/hpc/vanilla/${name}-html.zip" >> $out/nix-support/hydra-build-products
@@ -4,11 +4,8 @@
4with haskellLib;
4with haskellLib;
7− # Why `final.evalPackages.buildPackages.gitMinimal`?
7+ # Why `final.buildPackages.buildPackages.gitMinimal`?
8− # Why not just final.evalPackages.gitMinimal?
8+ # Why not just final.buildPackages.gitMinimal?
10− # A problem arises when `evalPackages` is `buildPackages`.i
11− # As may be the case in a flake.
13 # It turns out `git` depends on `gdb` in a round about way:
10 # It turns out `git` depends on `gdb` in a round about way:
14 # git -> openssh -> libfido2 -> systemd -> python libxml -> Cython -> gdb
11 # git -> openssh -> libfido2 -> systemd -> python libxml -> Cython -> gdb
@@ -24,7 +21,7 @@ let
24 # * When `gdb` does not exist for `js`, so when cross
21 # * When `gdb` does not exist for `js`, so when cross
25 # compiling with ghcjs `final.buildPackages.git` fails
22 # compiling with ghcjs `final.buildPackages.git` fails
26 # to build at all.
23 # to build at all.
27− inherit (pkgs.evalPackages.buildPackages) gitMinimal;
24+ inherit (pkgs.buildPackages.buildPackages) gitMinimal;
30 # Within the package components, these are the attribute names of
27 # Within the package components, these are the attribute names of
@@ -73,8 +70,12 @@ in {
73 comps = config.components;
70 comps = config.components;
74 applyLibrary = cname: f { cname = config.package.identifier.name; ctype = "lib"; };
71 applyLibrary = cname: f { cname = config.package.identifier.name; ctype = "lib"; };
75 applySubComp = ctype: cname: f { inherit cname; ctype = componentPrefix.${ctype} or (throw "Missing component mapping for ${ctype}."); };
72 applySubComp = ctype: cname: f { inherit cname; ctype = componentPrefix.${ctype} or (throw "Missing component mapping for ${ctype}."); };
74+ config.package.buildable # Set manually in a module (allows whole packages to be disabled)
75+ && comp.buildable # Set based on `buildable` in `.cabal` files
76+ && comp.planned; # Set if the component was in the `plan.json`
76− buildableAttrs = lib.filterAttrs (n: comp: comp.buildable or true);
77+ buildableAttrs = lib.filterAttrs (n: isBuildable);
77− libComp = if comps.library == null || !(comps.library.buildable or true)
78+ libComp = if comps.library == null || !(isBuildable comps.library)
79 else lib.mapAttrs applyLibrary (removeAttrs comps (subComponentTypes ++ [ "setup" ]));
80 else lib.mapAttrs applyLibrary (removeAttrs comps (subComponentTypes ++ [ "setup" ]));
80 subComps = lib.mapAttrs
81 subComps = lib.mapAttrs
@@ -132,14 +133,7 @@ in {
132 ## flatLibDepends :: Component -> [Package]
133 ## flatLibDepends :: Component -> [Package]
133 flatLibDepends = component:
134 flatLibDepends = component:
135− # this is a minor improvement over the "cannot coerce set to string"
136− # error. It will now say:
138− # > The option `packages.Win32.package.identifier.name' is used but not defined.
140− # which indicates that the package.Win32 is missing and not defined.
141− getKey = x: if x ? "outPath" then "${x}" else (throw x.identifier.name);
142− makePairs = map (p: rec { key=getKey val; val=(p.components.library or p); });
136+ makePairs = map (p: rec { key=val.name; val=(p.components.library or p); });
143 closure = builtins.genericClosure {
137 closure = builtins.genericClosure {
144 startSet = makePairs component.depends;
138 startSet = makePairs component.depends;
145 operator = {val,...}: makePairs val.config.depends;
139 operator = {val,...}: makePairs val.config.depends;
@@ -195,17 +189,17 @@ in {
195 collectChecks' = collectChecks (_: true);
189 collectChecks' = collectChecks (_: true);
197 # Replacement for lib.cleanSourceWith that has a subDir argument.
191 # Replacement for lib.cleanSourceWith that has a subDir argument.
198− inherit (import ./clean-source-with.nix { inherit lib; }) cleanSourceWith canCleanSource;
192+ inherit (import ./clean-source-with.nix { inherit lib; }) cleanSourceWith;
200 # Use cleanSourceWith to filter just the files needed for a particular
194 # Use cleanSourceWith to filter just the files needed for a particular
201 # component of a package
195 # component of a package
202− cleanCabalComponent = import ./clean-cabal-component.nix { inherit lib cleanSourceWith canCleanSource; };
196+ cleanCabalComponent = import ./clean-cabal-component.nix { inherit lib cleanSourceWith; };
204 # Clean git directory based on `git ls-files --recurse-submodules`
198 # Clean git directory based on `git ls-files --recurse-submodules`
205 cleanGit = import ./clean-git.nix {
199 cleanGit = import ./clean-git.nix {
206 inherit lib cleanSourceWith;
200 inherit lib cleanSourceWith;
207 git = gitMinimal;
201 git = gitMinimal;
208− inherit (pkgs.evalPackages) runCommand;
202+ inherit (pkgs.buildPackages.buildPackages) runCommand;
211 # Some times it is handy to temporarily use a relative path between git
205 # Some times it is handy to temporarily use a relative path between git
@@ -235,7 +229,7 @@ in {
236 # Check a test component
230 # Check a test component
237 check = import ./check.nix {
231 check = import ./check.nix {
238− inherit stdenv lib haskellLib srcOnly;
232+ inherit stdenv lib haskellLib;
241 # Do coverage of a package
235 # Do coverage of a package
@@ -254,31 +248,33 @@ in {
254 # In most cases we do not want to treat musl as a cross compiler.
248 # In most cases we do not want to treat musl as a cross compiler.
255 # For instance when building ghc we want to include ghci.
249 # For instance when building ghc we want to include ghci.
256 isCrossHost = stdenv.hostPlatform != stdenv.buildPlatform
250 isCrossHost = stdenv.hostPlatform != stdenv.buildPlatform
257− && !(stdenv.buildPlatform.isLinux && stdenv.hostPlatform.isMusl && stdenv.buildPlatform.isx86 && stdenv.hostPlatform.isx86);
251+ && !(stdenv.buildPlatform.isLinux && stdenv.hostPlatform.isMusl && stdenv.buildPlatform.linuxArch == stdenv.hostPlatform.linuxArch);
258 # This is the same as isCrossHost but for use when building ghc itself
252 # This is the same as isCrossHost but for use when building ghc itself
259 isCrossTarget = stdenv.targetPlatform != stdenv.hostPlatform
253 isCrossTarget = stdenv.targetPlatform != stdenv.hostPlatform
260− && !(stdenv.hostPlatform.isLinux && stdenv.targetPlatform.isMusl && stdenv.hostPlatform.isx86 && stdenv.targetPlatform.isx86);
254+ && !(stdenv.hostPlatform.isLinux && stdenv.targetPlatform.isMusl && stdenv.hostPlatform.linuxArch == stdenv.targetPlatform.linuxArch);
261 # Native musl build-host-target combo
255 # Native musl build-host-target combo
262 isNativeMusl = stdenv.hostPlatform.isMusl
256 isNativeMusl = stdenv.hostPlatform.isMusl
263 && stdenv.buildPlatform == stdenv.hostPlatform
257 && stdenv.buildPlatform == stdenv.hostPlatform
264 && stdenv.hostPlatform == stdenv.targetPlatform;
258 && stdenv.hostPlatform == stdenv.targetPlatform;
266− # Takes a version number or attr set of arguments (for cabalProject)
260+ # Takes a version number, module or list of modules (for cabalProject)
267− # and converts it to an attr set of arguments. This allows
261+ # and converts it to an list of project modules. This allows
268 # the use of "1.0.0.0" or { version = "1.0.0.0"; ... }
262 # the use of "1.0.0.0" or { version = "1.0.0.0"; ... }
269− versionOrArgsToArgs = versionOrArgs:
263+ versionOrModToMods = versionOrMod:
270− if lib.isAttrs versionOrArgs
264+ if lib.isString versionOrMod
271− then versionOrArgs
265+ then [{ version = versionOrMod; }]
272− else { version = versionOrArgs; };
266+ else if lib.isList versionOrMod
268+ else [versionOrMod];
274 # Find the resolver in the stack.yaml file and fetch it if a sha256 value is provided
270 # Find the resolver in the stack.yaml file and fetch it if a sha256 value is provided
275 fetchResolver = import ./fetch-resolver.nix {
271 fetchResolver = import ./fetch-resolver.nix {
276− inherit (pkgs.evalPackages) pkgs;
272+ inherit (pkgs.buildPackages) pkgs;
279 inherit (import ./cabal-project-parser.nix {
275 inherit (import ./cabal-project-parser.nix {
280 inherit pkgs;
276 inherit pkgs;
281− }) parseIndexState parseBlock;
277+ }) parseIndexState parseSourceRepositoryPackages parseRepositories parseSourceRepositoryPackageBlock parseRepositoryBlock;
284 cabalToNixpkgsLicense = import ./spdx/cabal.nix pkgs;
280 cabalToNixpkgsLicense = import ./spdx/cabal.nix pkgs;
@@ -293,26 +289,9 @@ in {
293 if subDir == ""
289 if subDir == ""
296− if haskellLib.canCleanSource src
297− then haskellLib.cleanSourceWith {
292+ haskellLib.cleanSourceWith {
298− inherit src subDir includeSiblings;
293+ inherit src subDir includeSiblings;
300− else let name = src.name or "source" + "-" + __replaceStrings ["/"] ["-"] subDir;
301− in if includeSiblings
303− # Keep `src.origSrc` so it can be used to allow references
304− # to other parts of that root.
306− origSrc = src.origSrc or src;
307− origSubDir = src.origSubDir or "" + "/" + subDir;
308− outPath = origSrc + origSubDir;
311− # We are not going to need other parts of `origSrc` if there
312− # was one and we can ignore it
314− outPath = src + "/" + subDir;
317 # Givin a `src` split it into a `root` path (based on `src.origSrc` if
296 # Givin a `src` split it into a `root` path (based on `src.origSrc` if
318 # present) and `subDir` (based on `src.origSubDir). The
297 # present) and `subDir` (based on `src.origSubDir). The
@@ -337,22 +316,31 @@ in {
337 # Run evalModules passing the project function argument (m) as a module along with
316 # Run evalModules passing the project function argument (m) as a module along with
338 # the the a projectType module (../modules/cabal-project.nix or ../modules/stack-project.nix).
317 # the the a projectType module (../modules/cabal-project.nix or ../modules/stack-project.nix).
339 # The resulting config is then passed to the project function's implementation.
318 # The resulting config is then passed to the project function's implementation.
340− evalProjectModule = projectType: m: f: f
319+ evalProjectModule = projectType: m: f:
341 (lib.evalModules {
321 (lib.evalModules {
342 modules = (if builtins.isList m then m else [m]) ++ [
322 modules = (if builtins.isList m then m else [m]) ++ [
343 # Include ../modules/cabal-project.nix or ../modules/stack-project.nix
323 # Include ../modules/cabal-project.nix or ../modules/stack-project.nix
344 (import ../modules/project-common.nix)
324 (import ../modules/project-common.nix)
345 (import projectType)
325 (import projectType)
346− # Pass the pkgs to the modules
326+ # Pass the pkgs and the buildProject to the modules
347 ({ config, lib, ... }: {
327 ({ config, lib, ... }: {
348 _module.args = {
328 _module.args = {
349 inherit pkgs;
329 inherit pkgs;
330+ # to make it easy to depends on build packages in, eg., shell definition:
331+ inherit (project) buildProject;
333+ inherit (project) hsPkgs;
353 }).config;
336 }).config;
355 # Converts from a `compoent.depends` value to a library derivation.
339 # Converts from a `compoent.depends` value to a library derivation.
356 # In the case of sublibs the `depends` value should already be the derivation.
340 # In the case of sublibs the `depends` value should already be the derivation.
357 dependToLib = d: d.components.library or d;
341 dependToLib = d: d.components.library or d;
343+ projectOverlays = import ./project-overlays.nix {
344+ inherit lib haskellLib;
lib/ghcjs-project.nix+47−11
@@ -23,7 +23,7 @@
24, compiler-nix-name
24, compiler-nix-name
25, ghc ? pkgs.buildPackages.haskell-nix.compiler.${compiler-nix-name}
25, ghc ? pkgs.buildPackages.haskell-nix.compiler.${compiler-nix-name}
26−, ghcjsVersion
26+, ghcjsVersion # Version in the ghcjs.cabal file (that we will replace)
27, ghcVersion ? ghc.version
27, ghcVersion ? ghc.version
28, happy ? pkgs.haskell-nix.tool compiler-nix-name "happy" {
28, happy ? pkgs.haskell-nix.tool compiler-nix-name "happy" {
29 index-state = pkgs.haskell-nix.internalHackageIndexState;
29 index-state = pkgs.haskell-nix.internalHackageIndexState;
@@ -39,7 +39,7 @@
39 if (builtins.compareVersions ghcjsVersion "8.10.0.0" >= 0)
39 if (builtins.compareVersions ghcjsVersion "8.10.0.0" >= 0)
40 then pkgs.haskell-nix.tool compiler-nix-name "cabal" {
40 then pkgs.haskell-nix.tool compiler-nix-name "cabal" {
41 index-state = pkgs.haskell-nix.internalHackageIndexState;
41 index-state = pkgs.haskell-nix.internalHackageIndexState;
42− version = "3.4.0.0";
42+ version = "3.6.2.0";
43 materialized = ../materialized/ghcjs/cabal + "/${compiler-nix-name}";
43 materialized = ../materialized/ghcjs/cabal + "/${compiler-nix-name}";
45 else pkgs.haskell-nix.tool compiler-nix-name "cabal" {
45 else pkgs.haskell-nix.tool compiler-nix-name "cabal" {
@@ -52,6 +52,8 @@
53 materialized = ../materialized/ghcjs/cabal + "/${compiler-nix-name}";
53 materialized = ../materialized/ghcjs/cabal + "/${compiler-nix-name}";
55+, overrideBootPackages ? []
@@ -75,7 +77,11 @@ let
76 # Inputs needed to boot the GHCJS compiler
78 # Inputs needed to boot the GHCJS compiler
77 bootInputs = with pkgs.buildPackages; [
79 bootInputs = with pkgs.buildPackages; [
80+ # We used to pin nodejs to the 12 series, as strings can only be half the length in node 14+
81+ # see https://github.com/nodejs/node/issues/33960
82+ # Large TH splices are likely broken.
83+ # TODO reinstate the pin of find a work around for ghcjs to send TH splice in chunks.
78− nodejs
84+ nodejs-18_x
79 makeWrapper
85 makeWrapper
80 xorg.lndir
86 xorg.lndir
@@ -83,9 +89,9 @@ let
84 ++ [ ghc cabal-install emsdk ];
90 ++ [ ghc cabal-install emsdk ];
85 # Configured the GHCJS source
91 # Configured the GHCJS source
86− configured-src = pkgs.runCommand "configured-ghcjs-src" {
92+ configured-src = (pkgs.runCommandCC "configured-ghcjs-src" {
87 buildInputs = configureInputs;
93 buildInputs = configureInputs;
88− inherit src;
94+ inherit src patches;
90 export HOME=$(pwd)
96 export HOME=$(pwd)
91 mkdir $HOME/.cabal
97 mkdir $HOME/.cabal
@@ -94,6 +100,11 @@ let
94 chmod -R +w "$out"
100 chmod -R +w "$out"
95 cd "$out"
101 cd "$out"
97 # TODO: Find a better way to avoid impure version numbers
108 # TODO: Find a better way to avoid impure version numbers
98 sed -i 's/RELEASE=NO/RELEASE=YES/' ghc/configure.ac
109 sed -i 's/RELEASE=NO/RELEASE=YES/' ghc/configure.ac
99 sed -i 's/${ghcjsVersion}/${ghcVersion}/' ghcjs.cabal
110 sed -i 's/${ghcjsVersion}/${ghcVersion}/' ghcjs.cabal
@@ -126,18 +137,43 @@ let
126 for a in integer-gmp base unix; do
137 for a in integer-gmp base unix; do
127 cp ${../overlays/patches/config.sub} lib/boot/pkg/$a/config.sub
138 cp ${../overlays/patches/config.sub} lib/boot/pkg/$a/config.sub
140+ ${ # it just so happens that all existing uses of overriding boot packages
141+ # need to be installed right after template-haskell
142+ # if at some point we would need to insert them at different points
143+ # then we will have gto come up with something more clever
144+ builtins.concatStringsSep "\n" (map ({name, src}: ''
145+ rm -rf $out/lib/boot/pkg/${name}
146+ cp -r ${src} $out/lib/boot/pkg/${name}
147+ sed -i 's/^ - ${name}$//g' $out/lib/boot/boot.yaml
148+ sed -i 's/^ - template-haskell$/ - template-haskell\n - ${name}/g' $out/lib/boot/boot.yaml
149+ echo "Added ${name} to boot.yaml"
151+ ) (pkgs.lib.reverseList overrideBootPackages))
154+ chmod -R +w $out/lib/boot/pkg
156+ # The configured source includes /nix/store paths and so filtering can fail.
157+ filterPath = { path, ... }: path;
130 # see https://github.com/ghcjs/ghcjs/issues/751 for the happy upper bound.
159 # see https://github.com/ghcjs/ghcjs/issues/751 for the happy upper bound.
132 ghcjsProject = pkgs.haskell-nix.cabalProject' (
161 ghcjsProject = pkgs.haskell-nix.cabalProject' (
133− (pkgs.lib.filterAttrs
162+ (pkgs.lib.filterAttrs
134 (n: _: !(builtins.any (x: x == n)
163 (n: _: !(builtins.any (x: x == n)
135− ["src" "ghcjsVersion" "ghcVersion" "happy" "alex" "cabal-install"])) args) // {
164+ [ "src" "ghcjsVersion" "ghcVersion" "happy" "alex" "cabal-install"
165+ "overrideBootPackages" "patches"])) args) // {
136 src = configured-src;
166 src = configured-src;
137 index-state = "2021-03-20T00:00:00Z";
167 index-state = "2021-03-20T00:00:00Z";
138− compiler-nix-name = if isGhcjs810 then "ghc8105" else if isGhcjs88 then "ghc884" else "ghc865";
168+ inherit compiler-nix-name;
139 configureArgs = pkgs.lib.optionalString (isGhcjs88 && !isGhcjs810) "--constraint='Cabal >=3.0.2.0 && <3.1'";
169 configureArgs = pkgs.lib.optionalString (isGhcjs88 && !isGhcjs810) "--constraint='Cabal >=3.0.2.0 && <3.1'";
140− materialized = ../materialized + (if isGhcjs810 then "/ghcjs8105" else if isGhcjs88 then "/ghcjs884" else "/ghcjs865");
170+ # If a package is in both build-depends and build-tool-depends multiple versions may
171+ # be in the `plan.json` file. Haskell.nix will pick the newer one, but when nbuilding
172+ # ghcjs 8.6 we need to use the older happy version.
173+ pkg-def-extras = pkgs.lib.optional (!isGhcjs88) (hackage: {
174+ packages.happy.revision = hackage.happy."1.19.9".revisions.default;
176+ materialized = ../materialized + "/ghcjs/${compiler-nix-name}";
141 modules = [
177 modules = [
143 # we need ghc-boot in here for ghcjs.
179 # we need ghc-boot in here for ghcjs.
@@ -150,6 +186,7 @@ let
150 packages.Cabal.patches = [ ./../overlays/patches/Cabal/fix-data-dir.patch ];
186 packages.Cabal.patches = [ ./../overlays/patches/Cabal/fix-data-dir.patch ];
189+ ghcOptions = ["-O2"];
153 packages.ghcjs.doHaddock = false;
190 packages.ghcjs.doHaddock = false;
154 packages.haddock-ghcjs.doHaddock = false;
191 packages.haddock-ghcjs.doHaddock = false;
155 packages.haddock-api-ghcjs.doHaddock = false;
192 packages.haddock-api-ghcjs.doHaddock = false;
@@ -179,4 +216,3 @@ in ghcjsProject // {
180 inherit configureInputs bootInputs configured-src emscriptenupstream emscripten emsdk;
217 inherit configureInputs bootInputs configured-src emscriptenupstream emscripten emsdk;
lib/import-and-filter-project.nix+15−21
@@ -6,14 +6,11 @@
7 # Full source including possible relative paths form the
7 # Full source including possible relative paths form the
8 # project directory.
8 # project directory.
10− if haskellLib.canCleanSource src
11− then haskellLib.cleanSourceWith {
9+ srcRoot = haskellLib.cleanSourceWith {
12− name = if src ? name then "${src.name}-root" else "source-root";
10+ name = if src ? name then "${src.name}-root" else "source-root";
13− src = src.origSrc or src;
11+ src = src.origSrc or src;
14− filter = src.filter or (_: _: true);
12+ filter = src.filter or (_: _: true);
16− else src.origSrc or src;
17 # The sub directory containing the cabal.project or stack.yaml file
14 # The sub directory containing the cabal.project or stack.yaml file
18 projectSubDir' = src.origSubDir or ""; # With leading /
15 projectSubDir' = src.origSubDir or ""; # With leading /
19 projectSubDir = pkgs.lib.strings.removePrefix "/" projectSubDir'; # Without /
16 projectSubDir = pkgs.lib.strings.removePrefix "/" projectSubDir'; # Without /
@@ -27,31 +24,28 @@ in project // {
27 else {...}@args: with pkgs.lib.strings;
24 else {...}@args: with pkgs.lib.strings;
29 oldPkg = import value args;
26 oldPkg = import value args;
30− # When the package src is in the project dir, this is the subDir it is in.
31− subDir = removePrefix "/" (removePrefix (toString projectNix)
32− (toString oldPkg.src.content));
33− srcRepoPrefix = projectSubDir'' + ".source-repository-packages/";
35 packageInfo =
27 packageInfo =
36− if !hasPrefix (toString projectNix) (toString oldPkg.src.content)
28+ if oldPkg.src ? url
38− # Source location does not match project prefix
30+ # The source is from a source-repository-package in a cabal.project file
31+ # and lib/call-cabal-project-to-nix.nix should have replaced the url with
32+ # an index into the sourceRepos list.
39 isProject = false;
33 isProject = false;
40− packageSrc = toString oldPkg.src.content;
34+ packageSrc = pkgs.lib.lists.elemAt sourceRepos (toInt oldPkg.src.url);
42− else if hasPrefix srcRepoPrefix subDir
36+ else if !hasPrefix "${projectNix}" (toString oldPkg.src.content)
44− # The source is from a source repository
38+ # Source location does not match project prefix
45 isProject = false;
39 isProject = false;
46− packageSrc = pkgs.lib.lists.elemAt sourceRepos (
40+ packageSrc = toString oldPkg.src.content;
47− toInt (removePrefix srcRepoPrefix subDir));
50 # Source does match project prefix and it is not from a source repository
43 # Source does match project prefix and it is not from a source repository
51 isProject = true;
44 isProject = true;
52 packageSrc = haskellLib.appendSubDir {
45 packageSrc = haskellLib.appendSubDir {
53 src = srcRoot;
46 src = srcRoot;
54− inherit subDir;
47+ subDir = removePrefix "/" (removePrefix "${projectNix}"
48+ (toString oldPkg.src.content));
55 includeSiblings = true; # Filtering sibling dirs of the package dir is done in the
49 includeSiblings = true; # Filtering sibling dirs of the package dir is done in the
56 # component builder so that relative paths can be used to
50 # component builder so that relative paths can be used to
57 # reference project directories not in the package subDir.
51 # reference project directories not in the package subDir.
lib/materialize.nix+12−10
@@ -24,7 +24,7 @@
24}: derivation:
24}: derivation:
27− inherit (derivation) name;
27+ name = derivation.name + pkgs.lib.optionalString (derivation ? version) "-${derivation.version}";
29 traceIgnoringSha256 = reason: x:
29 traceIgnoringSha256 = reason: x:
30 if sha256 != null
30 if sha256 != null
@@ -36,10 +36,15 @@ let
36 then builtins.trace ("Warning: ignoring materialized for " + name + " " + reason) x
36 then builtins.trace ("Warning: ignoring materialized for " + name + " " + reason) x
39+ traceWhenChecking = message: x:
40+ if checkMaterialization
41+ then builtins.trace message x
39 unchecked =
44 unchecked =
41− sha256message = "To make ${this} a fixed-output derivation but not materialized, set `${sha256Arg}` to the output of the 'calculateMaterializedSha' script in 'passthru'.";
46+ sha256message = "${name}: To make ${this} a fixed-output derivation but not materialized, set `${sha256Arg}` to the output of the 'calculateMaterializedSha' script in 'passthru'.";
42− materializeMessage = "To materialize ${this} entirely, pass a writable path as the `materialized` argument and run the 'updateMaterialized' script in 'passthru'.";
47+ materializeMessage = "${name}: To materialize ${this} entirely, pass a writable path as the `materialized` argument and run the 'updateMaterialized' script in 'passthru'.";
43 in if reasonNotSafe != null
48 in if reasonNotSafe != null
45 # Warn the user if they tried to pin stuff down when it is not safe
50 # Warn the user if they tried to pin stuff down when it is not safe
@@ -50,10 +55,10 @@ let
50 else if sha256 != null
55 else if sha256 != null
52 # Let the user know how to materialize if they want to.
57 # Let the user know how to materialize if they want to.
53− builtins.trace materializeMessage calculateUseHash
58+ traceWhenChecking materializeMessage calculateUseHash
54 else # materialized == null && sha256 == null
59 else # materialized == null && sha256 == null
55 # Let the user know how to calculate a sha256 or materialize if they want to.
60 # Let the user know how to calculate a sha256 or materialize if they want to.
56− builtins.trace sha256message (builtins.trace materializeMessage calculateNoHash);
61+ traceWhenChecking sha256message (traceWhenChecking materializeMessage calculateNoHash);
58 # Build fully and check the hash and materialized versions
63 # Build fully and check the hash and materialized versions
@@ -123,11 +128,7 @@ let
123 calculateUseMaterialized =
128 calculateUseMaterialized =
124 assert materialized != null;
129 assert materialized != null;
125 assert __pathExists materialized;
130 assert __pathExists materialized;
126− runCommand name (pkgs.lib.optionalAttrs (sha256 == null) hashArgs) ''
127− cp -Lr ${materialized} $out
131+ { outPath = materialized; inherit name; };
128− # Make sure output files can be removed from the sandbox
131 calculateMaterializedSha =
132 calculateMaterializedSha =
132 writeShellScript "calculateSha" ''${nix}/bin/nix-hash --base32 --type sha256 ${calculateNoHash}'';
133 writeShellScript "calculateSha" ''${nix}/bin/nix-hash --base32 --type sha256 ${calculateNoHash}'';
@@ -143,6 +144,7 @@ let
145 # Generate the files
146 # Generate the files
146 rm -rf $TARGET
148 rm -rf $TARGET
147 cp -r ${calculateNoHash} "$TARGET"
149 cp -r ${calculateNoHash} "$TARGET"
148 chmod -R +w "$TARGET"
150 chmod -R +w "$TARGET"
lib/pkgconf-nixpkgs-map.nix+8−1
@@ -27,11 +27,12 @@ pkgs:
27 "dl" = []; # provided by glibc
27 "dl" = []; # provided by glibc
28 "fftw3" = [ pkgs."fftw" ];
28 "fftw3" = [ pkgs."fftw" ];
29 "fftw3f" = [ pkgs."fftwFloat" ];
29 "fftw3f" = [ pkgs."fftwFloat" ];
30+ "freetype2" = [ pkgs."freetype" ];
30 "gconf" = [ pkgs."GConf" ];
31 "gconf" = [ pkgs."GConf" ];
31 "gconf-2.0" = [ pkgs."GConf" ];
32 "gconf-2.0" = [ pkgs."GConf" ];
32 "gdk-2.0" = [ pkgs."gtk2" ];
33 "gdk-2.0" = [ pkgs."gtk2" ];
33 "gdk-3.0" = [ pkgs."gtk3" ];
34 "gdk-3.0" = [ pkgs."gtk3" ];
34− "gdk-pixbuf-2.0" = [ pkgs."gdk_pixbuf" ];
35+ "gdk-pixbuf-2.0" = [ (pkgs."gdk-pixbuf" or pkgs."gdk_pixbuf") ];
35 "gdk-x11-2.0" = [ pkgs."gdk_x11" ];
36 "gdk-x11-2.0" = [ pkgs."gdk_x11" ];
36 "gdk-x11-3.0" = [ pkgs."gtk3" ];
37 "gdk-x11-3.0" = [ pkgs."gtk3" ];
37 "gio-2.0" = [ pkgs."glib" ];
38 "gio-2.0" = [ pkgs."glib" ];
@@ -46,6 +47,7 @@ pkgs:
46 "gobject-2.0" = [ pkgs."glib" ];
47 "gobject-2.0" = [ pkgs."glib" ];
47 "gmodule-2.0" = [ pkgs."glib" ];
48 "gmodule-2.0" = [ pkgs."glib" ];
48 "gobject-introspection-1.0" = [ pkgs."gobject-introspection" ];
49 "gobject-introspection-1.0" = [ pkgs."gobject-introspection" ];
50+ "graphene-gobject-1.0" = [ pkgs."graphene" ];
49 "gstreamer-audio-0.10" = [ pkgs."gst-plugins-base" ];
51 "gstreamer-audio-0.10" = [ pkgs."gst-plugins-base" ];
50 "gstreamer-audio-1.0" = [ pkgs."gst-plugins-base" ];
52 "gstreamer-audio-1.0" = [ pkgs."gst-plugins-base" ];
51 "gstreamer-base-0.10" = [ pkgs."gst-plugins-base" ];
53 "gstreamer-base-0.10" = [ pkgs."gst-plugins-base" ];
@@ -65,6 +67,7 @@ pkgs:
65 "hidapi-libusb" = [ pkgs."hidapi" ];
67 "hidapi-libusb" = [ pkgs."hidapi" ];
66 "icudata" = [ pkgs."icu" ];
68 "icudata" = [ pkgs."icu" ];
67 "icui18n" = [ pkgs."icu" ];
69 "icui18n" = [ pkgs."icu" ];
70+ "icu-i18n" = [ pkgs."icu" ];
68 "icuuc" = [ pkgs."icu" ];
71 "icuuc" = [ pkgs."icu" ];
69 "idn" = [ pkgs."libidn" ];
72 "idn" = [ pkgs."libidn" ];
70 "IL" = [ pkgs."libdevil" ];
73 "IL" = [ pkgs."libdevil" ];
@@ -81,7 +84,9 @@ pkgs:
81 "ldap" = [ pkgs."openldap" ];
84 "ldap" = [ pkgs."openldap" ];
82 "libavutil" = [ pkgs."ffmpeg" ];
85 "libavutil" = [ pkgs."ffmpeg" ];
83 "libcrypto" = [ pkgs."openssl".dev ];
86 "libcrypto" = [ pkgs."openssl".dev ];
87+ "libfreenect" = [ pkgs."freenect" ];
84 "libgsasl" = [ pkgs."gsasl" ];
88 "libgsasl" = [ pkgs."gsasl" ];
89+ "liboath" = [ pkgs."liboauth" ];
85 "libpcre" = [ pkgs."pcre" ];
90 "libpcre" = [ pkgs."pcre" ];
86 "libqrencode" = [ pkgs."qrencode" ];
91 "libqrencode" = [ pkgs."qrencode" ];
87 "libR" = [ pkgs."R" ];
92 "libR" = [ pkgs."R" ];
@@ -96,6 +101,7 @@ pkgs:
96 "libxml-2.0" = [ pkgs."libxml2" ];
101 "libxml-2.0" = [ pkgs."libxml2" ];
97 "libzip" = [ pkgs."libzip" ];
102 "libzip" = [ pkgs."libzip" ];
98 "libzmq" = [ pkgs."zeromq" ];
103 "libzmq" = [ pkgs."zeromq" ];
104+ "libzstd" = [ pkgs."zstd" ];
99 "m" = []; # in stdenv
105 "m" = []; # in stdenv
100 "magic" = [ pkgs."file" ];
106 "magic" = [ pkgs."file" ];
101 "MagickWand" = [ pkgs."imagemagick" ];
107 "MagickWand" = [ pkgs."imagemagick" ];
@@ -116,6 +122,7 @@ pkgs:
116 "pfs-1.2" = [ pkgs."pfstools" ];
122 "pfs-1.2" = [ pkgs."pfstools" ];
117 "png" = [ pkgs."libpng" ];
123 "png" = [ pkgs."libpng" ];
118 "poppler-glib" = [ pkgs."poppler" ];
124 "poppler-glib" = [ pkgs."poppler" ];
125+ "poppler-cpp" = [ pkgs."poppler" ];
119 "pq" = [ pkgs."postgresql" ];
126 "pq" = [ pkgs."postgresql" ];
120 "libpq" = [ pkgs."postgresql" ];
127 "libpq" = [ pkgs."postgresql" ];
121 "pthread" = [];
128 "pthread" = [];
lib/project-overlays.nixnew file+37
@@ -0,0 +1,37 @@
5+ # Provide a devshell profile (https://github.com/numtide/devshell),
6+ # adapted from the project normal shell.
7+ devshell = final: prev: {
10+ packages = final.shell.nativeBuildInputs
11+ # devshell does not use pkgs.mkShell / pkgs.stdenv.mkDerivation,
12+ # so we need to explicit required dependencies which
13+ # are provided implicitely by stdenv when using the normal shell:
14+ ++ (lib.filter lib.isDerivation final.shell.stdenv.defaultNativeBuildInputs)
15+ ++ [ final.pkgs.buildPackages.binutils ];
16+ env = lib.mapAttrsToList lib.nameValuePair {
17+ inherit (final.shell) CABAL_CONFIG NIX_GHC_LIBDIR;
22+ # Provides easily accessible attrset for each type of
23+ # components belonging to the project packages.
24+ projectComponents = final: prev: {
25+ # local project packages:
26+ packages = haskellLib.selectProjectPackages final.hsPkgs;
27+ # set of all exes (as first level entries):
28+ exes = lib.foldl' lib.mergeAttrs { } (map (p: p.components.exes) (lib.attrValues final.packages));
29+ # `tests` are the test suites which have been built.
30+ tests = haskellLib.collectComponents' "tests" final.packages;
31+ # `benchmarks` (only built, not run).
32+ benchmarks = haskellLib.collectComponents' "benchmarks" final.packages;
33+ # `checks` collect results of executing the tests:
34+ checks = haskellLib.collectChecks' final.packages;
lib/spdx/licenses.nix+14−7
@@ -1,18 +1,25 @@
2with builtins; let
2with builtins; let
3+ spdxJson = pkgs.buildPackages.spdx-license-list-data.json or pkgs.buildPackages.spdx-license-list-data;
4+ materialized' = ../../materialized + "/spdx-${spdxJson.version}";
3 licensesJSON = fromJSON (replaceStrings
5 licensesJSON = fromJSON (replaceStrings
4 [ "\\u0026" "\\u0027" "\\u003d" ]
6 [ "\\u0026" "\\u0027" "\\u003d" ]
5 [ "&" "'" "=" ]
7 [ "&" "'" "=" ]
6− (readFile "${pkgs.evalPackages.spdx-license-list-data}/json/licenses.json")
8+ (readFile "${pkgs.buildPackages.haskell-nix.materialize {
9+ materialized = if pathExists materialized' then materialized' else null;
10+ } (pkgs.buildPackages.runCommand "spdx-json" { inherit (spdxJson) version; } ''
12+ cp ${spdxJson}/json/licenses.json $out
8 dropFour = s: substring 0 (stringLength s - 4) s;
16 dropFour = s: substring 0 (stringLength s - 4) s;
9 toSpdx = lic: with lic;
17 toSpdx = lic: with lic;
10− { spdxId = licenseId
18+ { spdxId = licenseId;
11− ; shortName = licenseId
19+ shortName = licenseId;
12− ; fullName = name
20+ fullName = name;
13− ; url = dropFour detailsUrl + "html"
21+ url = dropFour detailsUrl + "html";
14− ; free = isOsiApproved
22+ free = isOsiApproved || lic.isFsfLibre or false;
17 toNamedValue = lic: { name = lic.spdxId; value = lic; };
24 toNamedValue = lic: { name = lic.spdxId; value = lic; };
lib/stack-cache-generator.nix+33−39
@@ -1,6 +1,5 @@
1# Generate cache entries for dependencies of package defined in `src`
1# Generate cache entries for dependencies of package defined in `src`
5, stackYaml ? "stack.yaml"
4, stackYaml ? "stack.yaml"
6, sha256map ? null
5, sha256map ? null
@@ -9,10 +8,6 @@
9 # sha256map =
8 # sha256map =
10 # { "https://github.com/jgm/pandoc-citeproc"."0.17"
9 # { "https://github.com/jgm/pandoc-citeproc"."0.17"
11 # = "0dxx8cp2xndpw3jwiawch2dkrkp15mil7pyx7dvd810pwc22pm2q"; };
10 # = "0dxx8cp2xndpw3jwiawch2dkrkp15mil7pyx7dvd810pwc22pm2q"; };
14− then { location, tag, ...}: sha256map."${location}"."${tag}"
16, branchMap ? null
11, branchMap ? null
17 # A way to specify in which branch a git commit can
12 # A way to specify in which branch a git commit can
18 # be found
13 # be found
@@ -21,10 +16,14 @@
21 then { location, tag, ...}: branchMap."${location}"."${tag}" or null
16 then { location, tag, ...}: branchMap."${location}"."${tag}" or null
22 else _: null
17 else _: null
23, resolverSha256 ? null
18, resolverSha256 ? null
24−, nix-tools ? pkgs.haskell-nix.internal-nix-tools # When building stack projects we use the internal nix-tools (compiled with a fixed GHC version)
19+, nix-tools
24+ inherit (evalPackages) runCommand;
25+ inherit (evalPackages.haskell-nix) haskellLib;
28 # We only care about the stackYaml file. If src is a local directory
27 # We only care about the stackYaml file. If src is a local directory
29 # we want to avoid recalculating the cache unless the stack.yaml file
28 # we want to avoid recalculating the cache unless the stack.yaml file
30 # changes.
29 # changes.
@@ -34,30 +33,27 @@ let
34 }) resolver fetchedResolver;
33 }) resolver fetchedResolver;
36 # Filter just the stack yaml file and any resolver yaml file it points to.
35 # Filter just the stack yaml file and any resolver yaml file it points to.
38− if haskellLib.canCleanSource src
39− then haskellLib.cleanSourceWith {
36+ maybeCleanedSource = haskellLib.cleanSourceWith {
40− inherit src;
37+ inherit src;
41− filter = path: type:
38+ filter = path: type:
43− origSrc = if src ? _isLibCleanSourceWith then src.origSrc else src;
40+ origSrc = if src ? _isLibCleanSourceWith then src.origSrc else src;
44− origSubDir = if src ? _isLibCleanSourceWithEx then src.origSubDir else "";
41+ origSubDir = if src ? _isLibCleanSourceWithEx then src.origSubDir else "";
45− relPath = pkgs.lib.removePrefix (toString origSrc + origSubDir + "/") path;
42+ relPath = evalPackages.lib.removePrefix (toString origSrc + origSubDir + "/") path;
47− # checks if path1 is a parent directory for path2
44+ # checks if path1 is a parent directory for path2
48− isParent = path1: path2: pkgs.lib.hasPrefix "${path1}/" path2;
45+ isParent = path1: path2: evalPackages.lib.hasPrefix "${path1}/" path2;
51− (relPath == stackYaml)
48+ (relPath == stackYaml)
52− || (resolver != null && (relPath == resolver || isParent relPath resolver))
49+ || (resolver != null && (relPath == resolver || isParent relPath resolver))
57 # All repos served via ssh or git protocols are usually private
53 # All repos served via ssh or git protocols are usually private
58− private = url: pkgs.lib.substring 0 4 url != "http";
54+ private = url: evalPackages.lib.substring 0 4 url != "http";
60− repos = builtins.fromJSON (builtins.readFile (pkgs.runCommand "stack-repos" {
56+ repos = builtins.fromJSON (builtins.readFile (evalPackages.runCommand "stack-repos" {
61 buildInputs = [ nix-tools ];
57 buildInputs = [ nix-tools ];
63 TMP=$(mktemp -d)
59 TMP=$(mktemp -d)
@@ -65,45 +61,43 @@ let
65 cp -r "${maybeCleanedSource}/." $TMP
61 cp -r "${maybeCleanedSource}/." $TMP
66 chmod -R +w $TMP
62 chmod -R +w $TMP
67 substituteInPlace ${stackYaml} --replace "# nix-sha256:" "nix-sha256:"
63 substituteInPlace ${stackYaml} --replace "# nix-sha256:" "nix-sha256:"
68− ${pkgs.lib.optionalString (fetchedResolver != null) ''
64+ ${evalPackages.lib.optionalString (fetchedResolver != null) ''
69 substituteInPlace ${stackYaml} --replace "${resolver}" "${fetchedResolver}"
65 substituteInPlace ${stackYaml} --replace "${resolver}" "${fetchedResolver}"
71 stack-repos --stack-yaml ${stackYaml}
67 stack-repos --stack-yaml ${stackYaml}
72 cp repos.json $out
68 cp repos.json $out
75− cabalName = path: builtins.readFile (pkgs.runCommand "cabal-name" {
71+ cabalName = path: builtins.readFile (evalPackages.runCommand "cabal-name" {
76 buildInputs = [ nix-tools ];
72 buildInputs = [ nix-tools ];
78 cabal-name ${path} > $out
74 cabal-name ${path} > $out
81 hashPath = path:
77 hashPath = path:
82− builtins.readFile (pkgs.runCommand "hash-path" { preferLocalBuild = true; }
78+ builtins.readFile (evalPackages.runCommand "hash-path" { preferLocalBuild = true; }
83− "echo -n $(${pkgs.nix}/bin/nix-hash --type sha256 --base32 ${path}) > $out");
79+ "echo -n $(${evalPackages.nix}/bin/nix-hash --type sha256 --base32 ${path}) > $out");
84−in with pkgs.lib;
80+in with evalPackages.lib;
85concatMap (dep:
81concatMap (dep:
87 is-private = private dep.url;
83 is-private = private dep.url;
88− sha256 = if dep.sha256 != null
84+ sha256 =
89− then dep.sha256
85+ if dep.sha256 != null then dep.sha256
90− else lookupSha256 {
86+ else if sha256map != null then sha256map."${dep.url}"."${dep.rev}"
91− location = dep.url;
87+ else null;
94 branch = lookupBranch {
88 branch = lookupBranch {
95 location = dep.url;
89 location = dep.url;
96 tag = dep.rev;
90 tag = dep.rev;
99 if !is-private && sha256 != null
93 if !is-private && sha256 != null
100− then pkgs.fetchgit {
94+ then evalPackages.fetchgit {
101 inherit (dep) url rev;
95 inherit (dep) url rev;
102 inherit sha256;
96 inherit sha256;
104 else builtins.fetchGit ({
98 else builtins.fetchGit ({
105 inherit (dep) url rev;
99 inherit (dep) url rev;
106− } // pkgs.lib.optionalAttrs (branch != null) { ref = branch; });
100+ } // evalPackages.lib.optionalAttrs (branch != null) { ref = branch; });
107 in map (subdir: {
101 in map (subdir: {
108 name = cabalName "${pkgsrc}/${subdir}";
102 name = cabalName "${pkgsrc}/${subdir}";
109 inherit (dep) url rev;
103 inherit (dep) url rev;
lib/system-nixpkgs-map.nix+35−4
@@ -6,16 +6,32 @@ pkgs:
10+ # On windows systems we need these to be propagatedBuildInputs so that the DLLs will be found.
11+ gcclibs = if pkgs.stdenv.hostPlatform.isWindows then [
12+ pkgs.windows.mcfgthreads
13+ # If we just use `pkgs.buildPackages.gcc.cc` here it breaks the `th-dlls` test. TODO figure out why exactly.
14+ (pkgs.buildPackages.runCommand "gcc-only" { nativeBuildInputs = [ pkgs.buildPackages.xorg.lndir ]; } ''
16+ lndir ${pkgs.buildPackages.gcc.cc} $out
10{ crypto = [ openssl ];
21{ crypto = [ openssl ];
11− "c++" = null; # no libc++
22+ "c++" = []; # no libc++
12− "stdc++" = null;
23+ "stdc++" = gcclibs;
13− "stdc++-6" = null;
24+ "stdc++-6" = gcclibs;
25+ gcc_s_seh-1 = gcclibs;
14 ssl = [ openssl ];
28 ssl = [ openssl ];
15 z = [ zlib ];
29 z = [ zlib ];
30+ m = []; # Included with ghc
16 pcap = [ libpcap ];
31 pcap = [ libpcap ];
17 pthread = null; # available by default
32 pthread = null; # available by default
18 GL = [ libGL ];
33 GL = [ libGL ];
19 GLU = [ libGLU ];
35 GLU = [ libGLU ];
20 alut = [ freealut ];
36 alut = [ freealut ];
21 X11 = with xorg; [ libX11 ];
37 X11 = with xorg; [ libX11 ];
@@ -35,6 +51,7 @@ with pkgs;
35 util = [ utillinux ];
51 util = [ utillinux ];
36 magic = [ file ];
52 magic = [ file ];
37 pq = [ postgresql ];
53 pq = [ postgresql ];
54+ libpq = [ postgresql ];
38 iconv = [ libiconv ];
55 iconv = [ libiconv ];
39 lapack = [ liblapack ];
56 lapack = [ liblapack ];
40 boost_atomic = [ boost ];
57 boost_atomic = [ boost ];
@@ -80,25 +97,39 @@ with pkgs;
80 opencv = [ opencv3 ];
97 opencv = [ opencv3 ];
81 icuuc = [ icu ];
98 icuuc = [ icu ];
82 icui18n = [ icu ];
99 icui18n = [ icu ];
83 icudata = [ icu ];
101 icudata = [ icu ];
84 vulkan = [ vulkan-loader ];
102 vulkan = [ vulkan-loader ];
85 sodium = [ libsodium ];
103 sodium = [ libsodium ];
86 gfortran = [ gfortran.cc.lib ];
104 gfortran = [ gfortran.cc.lib ];
106+ gpiod = [ libgpiod ];
109+ freenect_sync = [ freenect ];
115+ pulse-simple = [ libpulseaudio ];
116+ oath = [ liboauth ];
88# -- windows
118# -- windows
89// { advapi32 = null; gdi32 = null; imm32 = null; msimg32 = null;
119// { advapi32 = null; gdi32 = null; imm32 = null; msimg32 = null;
90 shell32 = null; shfolder = null; shlwapi = null; user32 = null;
120 shell32 = null; shfolder = null; shlwapi = null; user32 = null;
121+ ole32 = null; rpcrt4 = null;
91 winmm = null; userenv = null;
122 winmm = null; userenv = null;
92 kernel32 = null; ws2_32 = null;
123 kernel32 = null; ws2_32 = null;
93 # this should be bundled with gcc.
124 # this should be bundled with gcc.
94 # if it's not we have more severe
125 # if it's not we have more severe
95 # issues anyway.
126 # issues anyway.
97 ssl32 = null; eay32 = [ openssl ];
127 ssl32 = null; eay32 = [ openssl ];
98 iphlpapi = null; # IP Help API
128 iphlpapi = null; # IP Help API
99 msvcrt = null; # this is the libc
129 msvcrt = null; # this is the libc
100 Crypt32 = null;
130 Crypt32 = null;
101 mswsock = null;
131 mswsock = null;
104# NB: these map almost 1:1 to the framework names
135# NB: these map almost 1:1 to the framework names
@@ -9,25 +9,8 @@
13− buildEnvMaybe = name: paths:
14− if builtins.length paths == 1
15− then builtins.head paths
16− else pkgs.buildEnv { name = "${name}-env"; inherit paths; };
18− mapPackages = name: ps:
19− if builtins.typeOf ps == "list"
20− then buildEnvMaybe name ps
24 # Base packages.
12 # Base packages.
27− # fetchgit should always come from the evalPackages
28− # if it comes from the targetPackages we won't even
29− # be able to execute it.
30− // { fetchgit = pkgs.evalPackages.fetchgit; }
32 # Apply the mapping.
15 # Apply the mapping.
33− // builtins.mapAttrs mapPackages (import ./system-nixpkgs-map.nix pkgs)
16+ // import ./system-nixpkgs-map.nix pkgs
materialized/bootstrap/ghc8107/alex/.plan.nix/alex.nixnew file+160
@@ -0,0 +1,160 @@
11+ flags = { small_base = true; };
14+ identifier = { name = "alex"; version = "3.2.4"; };
15+ license = "BSD-3-Clause";
16+ copyright = "(c) Chis Dornan, Simon Marlow";
17+ maintainer = "Simon Marlow <marlowsd@gmail.com>";
18+ author = "Chris Dornan and Simon Marlow";
19+ homepage = "http://www.haskell.org/alex/";
21+ synopsis = "Alex is a tool for generating lexical analysers in Haskell";
22+ description = "Alex is a tool for generating lexical analysers in Haskell.\nIt takes a description of tokens based on regular\nexpressions and generates a Haskell module containing code\nfor scanning text efficiently. It is similar to the tool\nlex or flex for C/C++.";
23+ buildType = "Simple";
25+ detailLevel = "FullDetails";
26+ licenseFiles = [ "LICENSE" ];
31+ "AlexTemplate-ghc-nopred"
32+ "AlexTemplate-ghc-debug"
35+ "AlexWrapper-basic-bytestring"
36+ "AlexWrapper-strict-bytestring"
38+ "AlexWrapper-posn-bytestring"
40+ "AlexWrapper-monad-bytestring"
41+ "AlexWrapper-monadUserState"
42+ "AlexWrapper-monadUserState-bytestring"
60+ "examples/Tokens_gscan.x"
61+ "examples/Tokens_posn.x"
62+ "examples/examples.x"
69+ "examples/words_monad.x"
70+ "examples/words_posn.x"
74+ "templates/GenericTemplate.hs"
75+ "templates/wrappers.hs"
80+ "tests/tokens_gscan.x"
81+ "tests/tokens_posn.x"
82+ "tests/tokens_bytestring.x"
83+ "tests/tokens_posn_bytestring.x"
84+ "tests/tokens_scan_user.x"
85+ "tests/tokens_strict_bytestring.x"
86+ "tests/tokens_monad_bytestring.x"
87+ "tests/tokens_monadUserState_bytestring.x"
88+ "tests/tokens_bytestring_unicode.x"
89+ "tests/basic_typeclass.x"
90+ "tests/basic_typeclass_bytestring.x"
91+ "tests/default_typeclass.x"
92+ "tests/gscan_typeclass.x"
93+ "tests/posn_typeclass.x"
94+ "tests/monad_typeclass.x"
95+ "tests/monad_typeclass_bytestring.x"
96+ "tests/monadUserState_typeclass.x"
97+ "tests/monadUserState_typeclass_bytestring.x"
98+ "tests/posn_typeclass_bytestring.x"
99+ "tests/strict_typeclass.x"
109+ (hsPkgs."base" or (errorHandler.buildDepError "base"))
110+ ] ++ (if flags.small_base
112+ (hsPkgs."base" or (errorHandler.buildDepError "base"))
113+ (hsPkgs."array" or (errorHandler.buildDepError "array"))
114+ (hsPkgs."containers" or (errorHandler.buildDepError "containers"))
115+ (hsPkgs."directory" or (errorHandler.buildDepError "directory"))
117+ else [ (hsPkgs."base" or (errorHandler.buildDepError "base")) ]);
138+ "Data/Ranged/Boundaries"
139+ "Data/Ranged/RangedSet"
140+ "Data/Ranged/Ranges"
142+ hsSourceDirs = [ "src" ];
143+ mainPath = [ "Main.hs" ] ++ [ "" ];
149+ (hsPkgs."base" or (errorHandler.buildDepError "base"))
150+ (hsPkgs."process" or (errorHandler.buildDepError "process"))
153+ (hsPkgs.buildPackages.alex.components.exes.alex or (pkgs.buildPackages.alex or (errorHandler.buildToolDepError "alex:alex")))
156+ mainPath = [ "test.hs" ];
160+ } // rec { src = (pkgs.lib).mkDefault ../.; }
materialized/bootstrap/ghc8107/alex/default.nixnew file+69
@@ -0,0 +1,69 @@
5+ "ghc-prim".revision = (((hackage."ghc-prim")."0.6.1").revisions).default;
6+ "array".revision = (((hackage."array")."0.5.4.0").revisions).default;
7+ "integer-gmp".revision = (((hackage."integer-gmp")."1.0.3.0").revisions).default;
8+ "process".revision = (((hackage."process")."1.6.13.2").revisions).default;
9+ "base".revision = (((hackage."base")."4.14.3.0").revisions).default;
10+ "rts".revision = (((hackage."rts")."1.0.1").revisions).default;
11+ "time".revision = (((hackage."time")."1.9.3").revisions).default;
12+ "unix".revision = (((hackage."unix")."2.7.2.2").revisions).default;
13+ "bytestring".revision = (((hackage."bytestring")."0.10.12.0").revisions).default;
14+ "containers".revision = (((hackage."containers")."0.6.5.1").revisions).default;
15+ "directory".revision = (((hackage."directory")."1.3.6.0").revisions).default;
16+ "filepath".revision = (((hackage."filepath")."1.4.2.1").revisions).default;
17+ "deepseq".revision = (((hackage."deepseq")."1.4.4.0").revisions).default;
21+ nix-name = "ghc8107";
23+ "ghc-prim" = "0.6.1";
25+ "integer-gmp" = "1.0.3.0";
26+ "process" = "1.6.13.2";
31+ "bytestring" = "0.10.12.0";
32+ "containers" = "0.6.5.1";
33+ "directory" = "1.3.6.0";
34+ "filepath" = "1.4.2.1";
35+ "deepseq" = "1.4.4.0";
40+ { packages = { alex = ./.plan.nix/alex.nix; }; };
45+ "alex" = { flags = { "small_base" = lib.mkOverride 900 true; }; };
51+ "containers".components.library.planned = lib.mkOverride 900 true;
52+ "ghc-prim".components.library.planned = lib.mkOverride 900 true;
53+ "process".components.library.planned = lib.mkOverride 900 true;
54+ "integer-gmp".components.library.planned = lib.mkOverride 900 true;
55+ "array".components.library.planned = lib.mkOverride 900 true;
56+ "bytestring".components.library.planned = lib.mkOverride 900 true;
57+ "unix".components.library.planned = lib.mkOverride 900 true;
58+ "alex".components.exes."alex".planned = lib.mkOverride 900 true;
59+ "base".components.library.planned = lib.mkOverride 900 true;
60+ "rts".components.library.planned = lib.mkOverride 900 true;
61+ "time".components.library.planned = lib.mkOverride 900 true;
62+ "deepseq".components.library.planned = lib.mkOverride 900 true;
63+ "filepath".components.library.planned = lib.mkOverride 900 true;
64+ "directory".components.library.planned = lib.mkOverride 900 true;
65+ "alex".components.tests."tests".planned = lib.mkOverride 900 true;
materialized/bootstrap/ghc8107/happy-1.19.12/.plan.nix/happy.nixnew file+200
@@ -0,0 +1,200 @@
11+ flags = { small_base = true; };
14+ identifier = { name = "happy"; version = "1.19.12"; };
15+ license = "BSD-2-Clause";
16+ copyright = "(c) Andy Gill, Simon Marlow";
17+ maintainer = "Simon Marlow <marlowsd@gmail.com>";
18+ author = "Andy Gill and Simon Marlow";
19+ homepage = "https://www.haskell.org/happy/";
21+ synopsis = "Happy is a parser generator for Haskell";
22+ description = "Happy is a parser generator for Haskell. Given a grammar\nspecification in BNF, Happy generates Haskell code to parse the\ngrammar. Happy works in a similar way to the @yacc@ tool for C.";
23+ buildType = "Simple";
25+ detailLevel = "FullDetails";
26+ licenseFiles = [ "LICENSE" ];
30+ "HappyTemplate-arrays"
31+ "HappyTemplate-arrays-coerce"
32+ "HappyTemplate-arrays-coerce-debug"
33+ "HappyTemplate-arrays-debug"
34+ "HappyTemplate-arrays-ghc"
35+ "HappyTemplate-arrays-ghc-debug"
36+ "HappyTemplate-coerce"
57+ "examples/glr/nlp/Main.lhs"
58+ "examples/glr/nlp/Makefile"
59+ "examples/glr/nlp/README"
60+ "examples/glr/nlp/English.y"
61+ "examples/glr/nlp/Hugs.lhs"
62+ "examples/glr/Makefile"
63+ "examples/glr/Makefile.defs"
64+ "examples/glr/expr-eval/Main.lhs"
65+ "examples/glr/expr-eval/Makefile"
66+ "examples/glr/expr-eval/Expr.y"
67+ "examples/glr/expr-eval/README"
68+ "examples/glr/expr-eval/Hugs.lhs"
69+ "examples/glr/expr-tree/Main.lhs"
70+ "examples/glr/expr-tree/Makefile"
71+ "examples/glr/expr-tree/Expr.y"
72+ "examples/glr/expr-tree/README"
73+ "examples/glr/expr-tree/Tree.lhs"
74+ "examples/glr/expr-tree/Hugs.lhs"
75+ "examples/glr/highly-ambiguous/Main.lhs"
76+ "examples/glr/highly-ambiguous/Makefile"
77+ "examples/glr/highly-ambiguous/Expr.y"
78+ "examples/glr/highly-ambiguous/README"
79+ "examples/glr/highly-ambiguous/Hugs.lhs"
80+ "examples/glr/hidden-leftrec/Main.lhs"
81+ "examples/glr/hidden-leftrec/Makefile"
82+ "examples/glr/hidden-leftrec/Expr.y"
83+ "examples/glr/hidden-leftrec/README"
84+ "examples/glr/hidden-leftrec/Hugs.lhs"
85+ "examples/glr/expr-monad/Main.lhs"
86+ "examples/glr/expr-monad/Makefile"
87+ "examples/glr/expr-monad/Expr.y"
88+ "examples/glr/expr-monad/README"
89+ "examples/glr/expr-monad/Hugs.lhs"
90+ "examples/glr/bio-eg/Main.lhs"
91+ "examples/glr/bio-eg/Makefile"
92+ "examples/glr/bio-eg/Bio.y"
93+ "examples/glr/bio-eg/README"
94+ "examples/glr/bio-eg/1-1200.dna"
95+ "examples/glr/bio-eg/1-600.dna"
96+ "examples/glr/common/DV_lhs"
97+ "examples/glr/common/DaVinciTypes.hs"
98+ "examples/glr/packing/Main.lhs"
99+ "examples/glr/packing/Makefile"
100+ "examples/glr/packing/Expr.y"
101+ "examples/glr/packing/README"
102+ "examples/glr/packing/Hugs.lhs"
103+ "examples/PgnParser.ly"
104+ "examples/MonadTest.ly"
105+ "examples/igloo/ParserM.hs"
106+ "examples/igloo/Makefile"
107+ "examples/igloo/Parser.y"
108+ "examples/igloo/Foo.hs"
109+ "examples/igloo/README"
110+ "examples/igloo/Lexer.x"
113+ "examples/DavesExample.ly"
114+ "examples/ErrorTest.ly"
115+ "examples/ErlParser.ly"
116+ "examples/SimonsExample.ly"
117+ "examples/LexerTest.ly"
120+ "tests/AttrGrammar001.y"
121+ "tests/AttrGrammar002.y"
125+ "tests/TestMulti.ly"
126+ "tests/TestPrecedence.ly"
127+ "tests/bogus-token.y"
130+ "tests/error001.stderr"
131+ "tests/error001.stdout"
135+ "tests/monaderror.y"
136+ "tests/precedence001.ly"
137+ "tests/precedence002.y"
138+ "tests/test_rules.y"
143+ "tests/monaderror-explist.y"
144+ "tests/typeclass_monad001.y"
145+ "tests/typeclass_monad002.ly"
146+ "tests/typeclass_monad_lexer.y"
156+ (hsPkgs."base" or (errorHandler.buildDepError "base"))
157+ (hsPkgs."array" or (errorHandler.buildDepError "array"))
158+ (hsPkgs."containers" or (errorHandler.buildDepError "containers"))
159+ (hsPkgs."mtl" or (errorHandler.buildDepError "mtl"))
182+ hsSourceDirs = [ "src" ];
183+ mainPath = [ "Main.lhs" ];
189+ (hsPkgs."base" or (errorHandler.buildDepError "base"))
190+ (hsPkgs."process" or (errorHandler.buildDepError "process"))
193+ (hsPkgs.buildPackages.happy.components.exes.happy or (pkgs.buildPackages.happy or (errorHandler.buildToolDepError "happy:happy")))
196+ mainPath = [ "test.hs" ];
200+ } // rec { src = (pkgs.lib).mkDefault ../.; }
materialized/bootstrap/ghc8107/happy-1.19.12/default.nixnew file+75
@@ -0,0 +1,75 @@
5+ "ghc-prim".revision = (((hackage."ghc-prim")."0.6.1").revisions).default;
6+ "array".revision = (((hackage."array")."0.5.4.0").revisions).default;
7+ "integer-gmp".revision = (((hackage."integer-gmp")."1.0.3.0").revisions).default;
8+ "process".revision = (((hackage."process")."1.6.13.2").revisions).default;
9+ "base".revision = (((hackage."base")."4.14.3.0").revisions).default;
10+ "rts".revision = (((hackage."rts")."1.0.1").revisions).default;
11+ "mtl".revision = (((hackage."mtl")."2.2.2").revisions).default;
12+ "time".revision = (((hackage."time")."1.9.3").revisions).default;
13+ "unix".revision = (((hackage."unix")."2.7.2.2").revisions).default;
14+ "bytestring".revision = (((hackage."bytestring")."0.10.12.0").revisions).default;
15+ "containers".revision = (((hackage."containers")."0.6.5.1").revisions).default;
16+ "directory".revision = (((hackage."directory")."1.3.6.0").revisions).default;
17+ "filepath".revision = (((hackage."filepath")."1.4.2.1").revisions).default;
18+ "deepseq".revision = (((hackage."deepseq")."1.4.4.0").revisions).default;
19+ "transformers".revision = (((hackage."transformers")."0.5.6.2").revisions).default;
23+ nix-name = "ghc8107";
25+ "ghc-prim" = "0.6.1";
27+ "integer-gmp" = "1.0.3.0";
28+ "process" = "1.6.13.2";
34+ "bytestring" = "0.10.12.0";
35+ "containers" = "0.6.5.1";
36+ "directory" = "1.3.6.0";
37+ "filepath" = "1.4.2.1";
38+ "deepseq" = "1.4.4.0";
39+ "transformers" = "0.5.6.2";
44+ { packages = { happy = ./.plan.nix/happy.nix; }; };
49+ "happy" = { flags = { "small_base" = lib.mkOverride 900 true; }; };
55+ "containers".components.library.planned = lib.mkOverride 900 true;
56+ "ghc-prim".components.library.planned = lib.mkOverride 900 true;
57+ "happy".components.exes."happy".planned = lib.mkOverride 900 true;
58+ "transformers".components.library.planned = lib.mkOverride 900 true;
59+ "process".components.library.planned = lib.mkOverride 900 true;
60+ "integer-gmp".components.library.planned = lib.mkOverride 900 true;
61+ "array".components.library.planned = lib.mkOverride 900 true;
62+ "bytestring".components.library.planned = lib.mkOverride 900 true;
63+ "unix".components.library.planned = lib.mkOverride 900 true;
64+ "base".components.library.planned = lib.mkOverride 900 true;
65+ "rts".components.library.planned = lib.mkOverride 900 true;
66+ "mtl".components.library.planned = lib.mkOverride 900 true;
67+ "time".components.library.planned = lib.mkOverride 900 true;
68+ "deepseq".components.library.planned = lib.mkOverride 900 true;
69+ "filepath".components.library.planned = lib.mkOverride 900 true;
70+ "happy".components.tests."tests".planned = lib.mkOverride 900 true;
71+ "directory".components.library.planned = lib.mkOverride 900 true;
materialized/bootstrap/ghc8107/hscolour/.plan.nix/hscolour.nixnew file+70
@@ -0,0 +1,70 @@
14+ identifier = { name = "hscolour"; version = "1.24.4"; };
15+ license = "LicenseRef-LGPL";
16+ copyright = "2003-2017 Malcolm Wallace; 2006 Bjorn Bringert";
17+ maintainer = "Malcolm Wallace";
18+ author = "Malcolm Wallace";
19+ homepage = "http://code.haskell.org/~malcolm/hscolour/";
21+ synopsis = "Colourise Haskell code.";
22+ description = "hscolour is a small Haskell script to colourise Haskell code. It currently\nhas six output formats:\nANSI terminal codes (optionally XTerm-256colour codes),\nHTML 3.2 with <font> tags,\nHTML 4.01 with CSS,\nHTML 4.01 with CSS and mouseover annotations,\nXHTML 1.0 with inline CSS styling,\nLaTeX,\nand mIRC chat codes.";
23+ buildType = "Simple";
25+ detailLevel = "FullDetails";
26+ licenseFiles = [ "LICENCE-LGPL" ];
28+ dataFiles = [ "hscolour.css" "data/rgb24-example-.hscolour" ];
36+ (hsPkgs."base" or (errorHandler.buildDepError "base"))
37+ (hsPkgs."containers" or (errorHandler.buildDepError "containers"))
41+ "Language/Haskell/HsColour"
42+ "Language/Haskell/HsColour/ANSI"
43+ "Language/Haskell/HsColour/Anchors"
44+ "Language/Haskell/HsColour/ACSS"
45+ "Language/Haskell/HsColour/CSS"
46+ "Language/Haskell/HsColour/Classify"
47+ "Language/Haskell/HsColour/ColourHighlight"
48+ "Language/Haskell/HsColour/Colourise"
49+ "Language/Haskell/HsColour/General"
50+ "Language/Haskell/HsColour/HTML"
51+ "Language/Haskell/HsColour/InlineCSS"
52+ "Language/Haskell/HsColour/LaTeX"
53+ "Language/Haskell/HsColour/MIRC"
54+ "Language/Haskell/HsColour/Options"
55+ "Language/Haskell/HsColour/Output"
56+ "Language/Haskell/HsColour/TTY"
62+ (hsPkgs."base" or (errorHandler.buildDepError "base"))
63+ (hsPkgs."containers" or (errorHandler.buildDepError "containers"))
66+ mainPath = [ "HsColour.hs" ];
70+ } // rec { src = (pkgs.lib).mkDefault ../.; }
materialized/bootstrap/ghc8107/hscolour/default.nixnew file+47
@@ -0,0 +1,47 @@
5+ "ghc-prim".revision = (((hackage."ghc-prim")."0.6.1").revisions).default;
6+ "array".revision = (((hackage."array")."0.5.4.0").revisions).default;
7+ "integer-gmp".revision = (((hackage."integer-gmp")."1.0.3.0").revisions).default;
8+ "base".revision = (((hackage."base")."4.14.3.0").revisions).default;
9+ "rts".revision = (((hackage."rts")."1.0.1").revisions).default;
10+ "containers".revision = (((hackage."containers")."0.6.5.1").revisions).default;
11+ "deepseq".revision = (((hackage."deepseq")."1.4.4.0").revisions).default;
15+ nix-name = "ghc8107";
17+ "ghc-prim" = "0.6.1";
19+ "integer-gmp" = "1.0.3.0";
22+ "containers" = "0.6.5.1";
23+ "deepseq" = "1.4.4.0";
28+ { packages = { hscolour = ./.plan.nix/hscolour.nix; }; };
31+ { packages = { "hscolour" = { flags = {}; }; }; })
35+ "containers".components.library.planned = lib.mkOverride 900 true;
36+ "ghc-prim".components.library.planned = lib.mkOverride 900 true;
37+ "hscolour".components.exes."HsColour".planned = lib.mkOverride 900 true;
38+ "hscolour".components.library.planned = lib.mkOverride 900 true;
39+ "integer-gmp".components.library.planned = lib.mkOverride 900 true;
40+ "array".components.library.planned = lib.mkOverride 900 true;
41+ "base".components.library.planned = lib.mkOverride 900 true;
42+ "rts".components.library.planned = lib.mkOverride 900 true;
43+ "deepseq".components.library.planned = lib.mkOverride 900 true;
materialized/bootstrap/ghc844/alex/default.nix+34−18
@@ -3,36 +3,34 @@
4 packages = {
4 packages = {
5 "ghc-prim".revision = (((hackage."ghc-prim")."0.5.2.0").revisions).default;
5 "ghc-prim".revision = (((hackage."ghc-prim")."0.5.2.0").revisions).default;
6− "unix".revision = (((hackage."unix")."2.7.2.2").revisions).default;
7− "rts".revision = (((hackage."rts")."1.0").revisions).default;
6+ "array".revision = (((hackage."array")."0.5.2.0").revisions).default;
8− "deepseq".revision = (((hackage."deepseq")."1.4.3.0").revisions).default;
7+ "integer-gmp".revision = (((hackage."integer-gmp")."1.0.2.0").revisions).default;
9− "directory".revision = (((hackage."directory")."1.3.1.5").revisions).default;
10− "containers".revision = (((hackage."containers")."0.5.11.0").revisions).default;
11− "bytestring".revision = (((hackage."bytestring")."0.10.8.2").revisions).default;
12 "base".revision = (((hackage."base")."4.11.1.0").revisions).default;
8 "base".revision = (((hackage."base")."4.11.1.0").revisions).default;
9+ "rts".revision = (((hackage."rts")."1.0").revisions).default;
13 "time".revision = (((hackage."time")."1.8.0.2").revisions).default;
10 "time".revision = (((hackage."time")."1.8.0.2").revisions).default;
11+ "unix".revision = (((hackage."unix")."2.7.2.2").revisions).default;
12+ "bytestring".revision = (((hackage."bytestring")."0.10.8.2").revisions).default;
13+ "containers".revision = (((hackage."containers")."0.5.11.0").revisions).default;
14+ "directory".revision = (((hackage."directory")."1.3.1.5").revisions).default;
14 "filepath".revision = (((hackage."filepath")."1.4.2").revisions).default;
15 "filepath".revision = (((hackage."filepath")."1.4.2").revisions).default;
15− "process".revision = (((hackage."process")."1.6.3.0").revisions).default;
16+ "deepseq".revision = (((hackage."deepseq")."1.4.3.0").revisions).default;
16− "array".revision = (((hackage."array")."0.5.2.0").revisions).default;
17− "integer-gmp".revision = (((hackage."integer-gmp")."1.0.2.0").revisions).default;
19 compiler = {
18 compiler = {
20 version = "8.4.4";
19 version = "8.4.4";
21 nix-name = "ghc844";
20 nix-name = "ghc844";
22 packages = {
21 packages = {
23 "ghc-prim" = "0.5.2.0";
22 "ghc-prim" = "0.5.2.0";
24− "unix" = "2.7.2.2";
23+ "array" = "0.5.2.0";
25− "rts" = "1.0";
24+ "integer-gmp" = "1.0.2.0";
26− "deepseq" = "1.4.3.0";
27− "directory" = "1.3.1.5";
28− "containers" = "0.5.11.0";
29− "bytestring" = "0.10.8.2";
30 "base" = "4.11.1.0";
25 "base" = "4.11.1.0";
31 "time" = "1.8.0.2";
27 "time" = "1.8.0.2";
29+ "bytestring" = "0.10.8.2";
30+ "containers" = "0.5.11.0";
31+ "directory" = "1.3.1.5";
32 "filepath" = "1.4.2";
32 "filepath" = "1.4.2";
33− "process" = "1.6.3.0";
33+ "deepseq" = "1.4.3.0";
35− "integer-gmp" = "1.0.2.0";
@@ -45,5 +43,23 @@
45 "alex" = { flags = { "small_base" = lib.mkOverride 900 true; }; };
43 "alex" = { flags = { "small_base" = lib.mkOverride 900 true; }; };
49+ "containers".components.library.planned = lib.mkOverride 900 true;
50+ "ghc-prim".components.library.planned = lib.mkOverride 900 true;
51+ "integer-gmp".components.library.planned = lib.mkOverride 900 true;
52+ "array".components.library.planned = lib.mkOverride 900 true;
53+ "bytestring".components.library.planned = lib.mkOverride 900 true;
54+ "unix".components.library.planned = lib.mkOverride 900 true;
55+ "alex".components.exes."alex".planned = lib.mkOverride 900 true;
56+ "base".components.library.planned = lib.mkOverride 900 true;
57+ "rts".components.library.planned = lib.mkOverride 900 true;
58+ "time".components.library.planned = lib.mkOverride 900 true;
59+ "deepseq".components.library.planned = lib.mkOverride 900 true;
60+ "filepath".components.library.planned = lib.mkOverride 900 true;
61+ "directory".components.library.planned = lib.mkOverride 900 true;
materialized/bootstrap/ghc844/happy-1.19.11/.plan.nix/happy.nix+1−1
@@ -30,7 +30,7 @@
31 detailLevel = "FullDetails";
31 detailLevel = "FullDetails";
32 licenseFiles = [ "LICENSE" ];
32 licenseFiles = [ "LICENSE" ];
33− dataDir = "";
33+ dataDir = ".";
34 dataFiles = [];
34 dataFiles = [];
35 extraSrcFiles = [
35 extraSrcFiles = [
36 "ANNOUNCE"
36 "ANNOUNCE"
materialized/bootstrap/ghc844/happy-1.19.11/default.nix+55−28
@@ -4,24 +4,24 @@
4 packages = {
4 packages = {
5 "binary".revision = (((hackage."binary")."0.8.5.1").revisions).default;
5 "binary".revision = (((hackage."binary")."0.8.5.1").revisions).default;
6 "ghc-prim".revision = (((hackage."ghc-prim")."0.5.2.0").revisions).default;
6 "ghc-prim".revision = (((hackage."ghc-prim")."0.5.2.0").revisions).default;
7− "unix".revision = (((hackage."unix")."2.7.2.2").revisions).default;
7+ "array".revision = (((hackage."array")."0.5.2.0").revisions).default;
8+ "integer-gmp".revision = (((hackage."integer-gmp")."1.0.2.0").revisions).default;
9+ "pretty".revision = (((hackage."pretty")."1.1.3.6").revisions).default;
10+ "process".revision = (((hackage."process")."1.6.3.0").revisions).default;
8− "mtl".revision = (((hackage."mtl")."2.2.2").revisions).default;
11+ "base".revision = (((hackage."base")."4.11.1.0").revisions).default;
9 "rts".revision = (((hackage."rts")."1.0").revisions).default;
12 "rts".revision = (((hackage."rts")."1.0").revisions).default;
10− "deepseq".revision = (((hackage."deepseq")."1.4.3.0").revisions).default;
11− "parsec".revision = (((hackage."parsec")."3.1.13.0").revisions).default;
12− "directory".revision = (((hackage."directory")."1.3.1.5").revisions).default;
13− "containers".revision = (((hackage."containers")."0.5.11.0").revisions).default;
14− "bytestring".revision = (((hackage."bytestring")."0.10.8.2").revisions).default;
15 "text".revision = (((hackage."text")."1.2.3.1").revisions).default;
13 "text".revision = (((hackage."text")."1.2.3.1").revisions).default;
16− "Cabal".revision = (((hackage."Cabal")."2.2.0.1").revisions).default;
14+ "mtl".revision = (((hackage."mtl")."2.2.2").revisions).default;
17− "base".revision = (((hackage."base")."4.11.1.0").revisions).default;
18 "time".revision = (((hackage."time")."1.8.0.2").revisions).default;
15 "time".revision = (((hackage."time")."1.8.0.2").revisions).default;
19− "transformers".revision = (((hackage."transformers")."0.5.5.0").revisions).default;
16+ "unix".revision = (((hackage."unix")."2.7.2.2").revisions).default;
17+ "bytestring".revision = (((hackage."bytestring")."0.10.8.2").revisions).default;
18+ "containers".revision = (((hackage."containers")."0.5.11.0").revisions).default;
19+ "directory".revision = (((hackage."directory")."1.3.1.5").revisions).default;
20+ "parsec".revision = (((hackage."parsec")."3.1.13.0").revisions).default;
20 "filepath".revision = (((hackage."filepath")."1.4.2").revisions).default;
21 "filepath".revision = (((hackage."filepath")."1.4.2").revisions).default;
21− "process".revision = (((hackage."process")."1.6.3.0").revisions).default;
22+ "deepseq".revision = (((hackage."deepseq")."1.4.3.0").revisions).default;
22− "pretty".revision = (((hackage."pretty")."1.1.3.6").revisions).default;
23+ "transformers".revision = (((hackage."transformers")."0.5.5.0").revisions).default;
23− "array".revision = (((hackage."array")."0.5.2.0").revisions).default;
24− "integer-gmp".revision = (((hackage."integer-gmp")."1.0.2.0").revisions).default;
24+ "Cabal".revision = (((hackage."Cabal")."2.2.0.1").revisions).default;
26 compiler = {
26 compiler = {
27 version = "8.4.4";
27 version = "8.4.4";
@@ -29,24 +29,24 @@
29 packages = {
29 packages = {
30 "binary" = "0.8.5.1";
30 "binary" = "0.8.5.1";
31 "ghc-prim" = "0.5.2.0";
31 "ghc-prim" = "0.5.2.0";
32− "unix" = "2.7.2.2";
32+ "array" = "0.5.2.0";
33− "mtl" = "2.2.2";
33+ "integer-gmp" = "1.0.2.0";
34+ "pretty" = "1.1.3.6";
35+ "process" = "1.6.3.0";
34 "rts" = "1.0";
37 "rts" = "1.0";
35− "deepseq" = "1.4.3.0";
36− "parsec" = "3.1.13.0";
37− "directory" = "1.3.1.5";
38− "containers" = "0.5.11.0";
39− "bytestring" = "0.10.8.2";
40 "text" = "1.2.3.1";
38 "text" = "1.2.3.1";
41− "Cabal" = "2.2.0.1";
39+ "mtl" = "2.2.2";
43 "time" = "1.8.0.2";
40 "time" = "1.8.0.2";
44− "transformers" = "0.5.5.0";
41+ "unix" = "2.7.2.2";
42+ "bytestring" = "0.10.8.2";
43+ "containers" = "0.5.11.0";
44+ "directory" = "1.3.1.5";
45+ "parsec" = "3.1.13.0";
45 "filepath" = "1.4.2";
46 "filepath" = "1.4.2";
46− "process" = "1.6.3.0";
47+ "deepseq" = "1.4.3.0";
47− "pretty" = "1.1.3.6";
48+ "transformers" = "0.5.5.0";
48− "array" = "0.5.2.0";
49+ "Cabal" = "2.2.0.1";
49− "integer-gmp" = "1.0.2.0";
@@ -59,5 +59,32 @@
59 "happy" = { flags = { "small_base" = lib.mkOverride 900 true; }; };
59 "happy" = { flags = { "small_base" = lib.mkOverride 900 true; }; };
65+ "containers".components.library.planned = lib.mkOverride 900 true;
66+ "binary".components.library.planned = lib.mkOverride 900 true;
67+ "ghc-prim".components.library.planned = lib.mkOverride 900 true;
68+ "happy".components.exes."happy".planned = lib.mkOverride 900 true;
69+ "Cabal".components.library.planned = lib.mkOverride 900 true;
70+ "transformers".components.library.planned = lib.mkOverride 900 true;
71+ "process".components.library.planned = lib.mkOverride 900 true;
72+ "pretty".components.library.planned = lib.mkOverride 900 true;
73+ "integer-gmp".components.library.planned = lib.mkOverride 900 true;
74+ "array".components.library.planned = lib.mkOverride 900 true;
75+ "bytestring".components.library.planned = lib.mkOverride 900 true;
76+ "unix".components.library.planned = lib.mkOverride 900 true;
77+ "text".components.library.planned = lib.mkOverride 900 true;
78+ "base".components.library.planned = lib.mkOverride 900 true;
79+ "rts".components.library.planned = lib.mkOverride 900 true;
80+ "mtl".components.library.planned = lib.mkOverride 900 true;
81+ "time".components.library.planned = lib.mkOverride 900 true;
82+ "happy".components.setup.planned = lib.mkOverride 900 true;
83+ "deepseq".components.library.planned = lib.mkOverride 900 true;
84+ "filepath".components.library.planned = lib.mkOverride 900 true;
85+ "parsec".components.library.planned = lib.mkOverride 900 true;
86+ "directory".components.library.planned = lib.mkOverride 900 true;
materialized/bootstrap/ghc844/happy-1.19.12/default.nix+25−22
@@ -3,40 +3,28 @@
4 packages = {
4 packages = {
5 "ghc-prim".revision = (((hackage."ghc-prim")."0.5.2.0").revisions).default;
5 "ghc-prim".revision = (((hackage."ghc-prim")."0.5.2.0").revisions).default;
6− "unix".revision = (((hackage."unix")."2.7.2.2").revisions).default;
6+ "array".revision = (((hackage."array")."0.5.2.0").revisions).default;
7+ "integer-gmp".revision = (((hackage."integer-gmp")."1.0.2.0").revisions).default;
7− "mtl".revision = (((hackage."mtl")."2.2.2").revisions).default;
8+ "base".revision = (((hackage."base")."4.11.1.0").revisions).default;
8 "rts".revision = (((hackage."rts")."1.0").revisions).default;
9 "rts".revision = (((hackage."rts")."1.0").revisions).default;
9− "deepseq".revision = (((hackage."deepseq")."1.4.3.0").revisions).default;
10+ "mtl".revision = (((hackage."mtl")."2.2.2").revisions).default;
10− "directory".revision = (((hackage."directory")."1.3.1.5").revisions).default;
11 "containers".revision = (((hackage."containers")."0.5.11.0").revisions).default;
11 "containers".revision = (((hackage."containers")."0.5.11.0").revisions).default;
12− "bytestring".revision = (((hackage."bytestring")."0.10.8.2").revisions).default;
12+ "deepseq".revision = (((hackage."deepseq")."1.4.3.0").revisions).default;
13− "base".revision = (((hackage."base")."4.11.1.0").revisions).default;
14− "time".revision = (((hackage."time")."1.8.0.2").revisions).default;
15 "transformers".revision = (((hackage."transformers")."0.5.5.0").revisions).default;
13 "transformers".revision = (((hackage."transformers")."0.5.5.0").revisions).default;
16− "filepath".revision = (((hackage."filepath")."1.4.2").revisions).default;
17− "process".revision = (((hackage."process")."1.6.3.0").revisions).default;
18− "array".revision = (((hackage."array")."0.5.2.0").revisions).default;
19− "integer-gmp".revision = (((hackage."integer-gmp")."1.0.2.0").revisions).default;
21 compiler = {
15 compiler = {
22 version = "8.4.4";
16 version = "8.4.4";
23 nix-name = "ghc844";
17 nix-name = "ghc844";
24 packages = {
18 packages = {
25 "ghc-prim" = "0.5.2.0";
19 "ghc-prim" = "0.5.2.0";
26− "unix" = "2.7.2.2";
20+ "array" = "0.5.2.0";
27− "mtl" = "2.2.2";
21+ "integer-gmp" = "1.0.2.0";
28 "rts" = "1.0";
23 "rts" = "1.0";
29− "deepseq" = "1.4.3.0";
24+ "mtl" = "2.2.2";
30− "directory" = "1.3.1.5";
31 "containers" = "0.5.11.0";
25 "containers" = "0.5.11.0";
32− "bytestring" = "0.10.8.2";
26+ "deepseq" = "1.4.3.0";
35 "transformers" = "0.5.5.0";
27 "transformers" = "0.5.5.0";
36− "filepath" = "1.4.2";
37− "process" = "1.6.3.0";
39− "integer-gmp" = "1.0.2.0";
@@ -49,5 +37,20 @@
49 "happy" = { flags = { "small_base" = lib.mkOverride 900 true; }; };
37 "happy" = { flags = { "small_base" = lib.mkOverride 900 true; }; };
43+ "containers".components.library.planned = lib.mkOverride 900 true;
44+ "ghc-prim".components.library.planned = lib.mkOverride 900 true;
45+ "happy".components.exes."happy".planned = lib.mkOverride 900 true;
46+ "transformers".components.library.planned = lib.mkOverride 900 true;
47+ "integer-gmp".components.library.planned = lib.mkOverride 900 true;
48+ "array".components.library.planned = lib.mkOverride 900 true;
49+ "base".components.library.planned = lib.mkOverride 900 true;
50+ "rts".components.library.planned = lib.mkOverride 900 true;
51+ "mtl".components.library.planned = lib.mkOverride 900 true;
52+ "deepseq".components.library.planned = lib.mkOverride 900 true;
materialized/bootstrap/ghc844/hscolour/default.nix+22−8
@@ -3,24 +3,24 @@
4 packages = {
4 packages = {
5 "ghc-prim".revision = (((hackage."ghc-prim")."0.5.2.0").revisions).default;
5 "ghc-prim".revision = (((hackage."ghc-prim")."0.5.2.0").revisions).default;
6− "rts".revision = (((hackage."rts")."1.0").revisions).default;
7− "deepseq".revision = (((hackage."deepseq")."1.4.3.0").revisions).default;
8− "containers".revision = (((hackage."containers")."0.5.11.0").revisions).default;
9− "base".revision = (((hackage."base")."4.11.1.0").revisions).default;
10 "array".revision = (((hackage."array")."0.5.2.0").revisions).default;
6 "array".revision = (((hackage."array")."0.5.2.0").revisions).default;
11 "integer-gmp".revision = (((hackage."integer-gmp")."1.0.2.0").revisions).default;
7 "integer-gmp".revision = (((hackage."integer-gmp")."1.0.2.0").revisions).default;
8+ "base".revision = (((hackage."base")."4.11.1.0").revisions).default;
9+ "rts".revision = (((hackage."rts")."1.0").revisions).default;
10+ "containers".revision = (((hackage."containers")."0.5.11.0").revisions).default;
11+ "deepseq".revision = (((hackage."deepseq")."1.4.3.0").revisions).default;
13 compiler = {
13 compiler = {
14 version = "8.4.4";
14 version = "8.4.4";
15 nix-name = "ghc844";
15 nix-name = "ghc844";
16 packages = {
16 packages = {
17 "ghc-prim" = "0.5.2.0";
17 "ghc-prim" = "0.5.2.0";
19− "deepseq" = "1.4.3.0";
20− "containers" = "0.5.11.0";
22 "array" = "0.5.2.0";
18 "array" = "0.5.2.0";
23 "integer-gmp" = "1.0.2.0";
19 "integer-gmp" = "1.0.2.0";
22+ "containers" = "0.5.11.0";
23+ "deepseq" = "1.4.3.0";
@@ -29,5 +29,19 @@
29 modules = [
29 modules = [
30 ({ lib, ... }:
30 ({ lib, ... }:
31 { packages = { "hscolour" = { flags = {}; }; }; })
31 { packages = { "hscolour" = { flags = {}; }; }; })
35+ "containers".components.library.planned = lib.mkOverride 900 true;
36+ "ghc-prim".components.library.planned = lib.mkOverride 900 true;
37+ "hscolour".components.exes."HsColour".planned = lib.mkOverride 900 true;
38+ "hscolour".components.library.planned = lib.mkOverride 900 true;
39+ "integer-gmp".components.library.planned = lib.mkOverride 900 true;
40+ "array".components.library.planned = lib.mkOverride 900 true;
41+ "base".components.library.planned = lib.mkOverride 900 true;
42+ "rts".components.library.planned = lib.mkOverride 900 true;
43+ "deepseq".components.library.planned = lib.mkOverride 900 true;
materialized/bootstrap/ghc882/alex/.plan.nix/alex.nix+1−1
@@ -150,7 +150,7 @@
150 (hsPkgs."process" or (errorHandler.buildDepError "process"))
150 (hsPkgs."process" or (errorHandler.buildDepError "process"))
152 build-tools = [
152 build-tools = [
153− (hsPkgs.buildPackages.alex or (pkgs.buildPackages.alex or (errorHandler.buildToolDepError "alex")))
153+ (hsPkgs.buildPackages.alex.components.exes.alex or (pkgs.buildPackages.alex or (errorHandler.buildToolDepError "alex:alex")))
155 buildable = true;
155 buildable = true;
156 mainPath = [ "test.hs" ];
156 mainPath = [ "test.hs" ];
materialized/bootstrap/ghc882/alex/default.nix+38−18
@@ -3,36 +3,36 @@
4 packages = {
4 packages = {
5 "ghc-prim".revision = (((hackage."ghc-prim")."0.5.3").revisions).default;
5 "ghc-prim".revision = (((hackage."ghc-prim")."0.5.3").revisions).default;
6− "unix".revision = (((hackage."unix")."2.7.2.2").revisions).default;
6+ "array".revision = (((hackage."array")."0.5.4.0").revisions).default;
7− "rts".revision = (((hackage."rts")."1.0").revisions).default;
8− "deepseq".revision = (((hackage."deepseq")."1.4.4.0").revisions).default;
9− "directory".revision = (((hackage."directory")."1.3.4.0").revisions).default;
7+ "integer-gmp".revision = (((hackage."integer-gmp")."1.0.2.0").revisions).default;
10− "containers".revision = (((hackage."containers")."0.6.2.1").revisions).default;
8+ "process".revision = (((hackage."process")."1.6.7.0").revisions).default;
11− "bytestring".revision = (((hackage."bytestring")."0.10.10.0").revisions).default;
12 "base".revision = (((hackage."base")."4.13.0.0").revisions).default;
9 "base".revision = (((hackage."base")."4.13.0.0").revisions).default;
10+ "rts".revision = (((hackage."rts")."1.0").revisions).default;
13 "time".revision = (((hackage."time")."1.9.3").revisions).default;
11 "time".revision = (((hackage."time")."1.9.3").revisions).default;
12+ "unix".revision = (((hackage."unix")."2.7.2.2").revisions).default;
13+ "bytestring".revision = (((hackage."bytestring")."0.10.10.0").revisions).default;
14+ "containers".revision = (((hackage."containers")."0.6.2.1").revisions).default;
15+ "directory".revision = (((hackage."directory")."1.3.4.0").revisions).default;
14 "filepath".revision = (((hackage."filepath")."1.4.2.1").revisions).default;
16 "filepath".revision = (((hackage."filepath")."1.4.2.1").revisions).default;
15− "process".revision = (((hackage."process")."1.6.7.0").revisions).default;
17+ "deepseq".revision = (((hackage."deepseq")."1.4.4.0").revisions).default;
16− "array".revision = (((hackage."array")."0.5.4.0").revisions).default;
17− "integer-gmp".revision = (((hackage."integer-gmp")."1.0.2.0").revisions).default;
19 compiler = {
19 compiler = {
20 version = "8.8.2";
20 version = "8.8.2";
21 nix-name = "ghc882";
21 nix-name = "ghc882";
22 packages = {
22 packages = {
23 "ghc-prim" = "0.5.3";
23 "ghc-prim" = "0.5.3";
24− "unix" = "2.7.2.2";
24+ "array" = "0.5.4.0";
25− "rts" = "1.0";
25+ "integer-gmp" = "1.0.2.0";
26− "deepseq" = "1.4.4.0";
26+ "process" = "1.6.7.0";
27− "directory" = "1.3.4.0";
28− "containers" = "0.6.2.1";
29− "bytestring" = "0.10.10.0";
30 "base" = "4.13.0.0";
27 "base" = "4.13.0.0";
31 "time" = "1.9.3";
29 "time" = "1.9.3";
31+ "bytestring" = "0.10.10.0";
32+ "containers" = "0.6.2.1";
33+ "directory" = "1.3.4.0";
32 "filepath" = "1.4.2.1";
34 "filepath" = "1.4.2.1";
33− "process" = "1.6.7.0";
35+ "deepseq" = "1.4.4.0";
35− "integer-gmp" = "1.0.2.0";
@@ -45,5 +45,25 @@
45 "alex" = { flags = { "small_base" = lib.mkOverride 900 true; }; };
45 "alex" = { flags = { "small_base" = lib.mkOverride 900 true; }; };
51+ "containers".components.library.planned = lib.mkOverride 900 true;
52+ "ghc-prim".components.library.planned = lib.mkOverride 900 true;
53+ "process".components.library.planned = lib.mkOverride 900 true;
54+ "integer-gmp".components.library.planned = lib.mkOverride 900 true;
55+ "array".components.library.planned = lib.mkOverride 900 true;
56+ "bytestring".components.library.planned = lib.mkOverride 900 true;
57+ "unix".components.library.planned = lib.mkOverride 900 true;
58+ "alex".components.exes."alex".planned = lib.mkOverride 900 true;
59+ "base".components.library.planned = lib.mkOverride 900 true;
60+ "rts".components.library.planned = lib.mkOverride 900 true;
61+ "time".components.library.planned = lib.mkOverride 900 true;
62+ "deepseq".components.library.planned = lib.mkOverride 900 true;
63+ "filepath".components.library.planned = lib.mkOverride 900 true;
64+ "directory".components.library.planned = lib.mkOverride 900 true;
65+ "alex".components.tests."tests".planned = lib.mkOverride 900 true;
materialized/bootstrap/ghc882/happy-1.19.12/.plan.nix/happy.nix+1−1
@@ -190,7 +190,7 @@
190 (hsPkgs."process" or (errorHandler.buildDepError "process"))
190 (hsPkgs."process" or (errorHandler.buildDepError "process"))
192 build-tools = [
192 build-tools = [
193− (hsPkgs.buildPackages.happy or (pkgs.buildPackages.happy or (errorHandler.buildToolDepError "happy")))
193+ (hsPkgs.buildPackages.happy.components.exes.happy or (pkgs.buildPackages.happy or (errorHandler.buildToolDepError "happy:happy")))
195 buildable = true;
195 buildable = true;
196 mainPath = [ "test.hs" ];
196 mainPath = [ "test.hs" ];
materialized/bootstrap/ghc882/happy-1.19.12/default.nix+44−22
@@ -3,40 +3,40 @@
4 packages = {
4 packages = {
5 "ghc-prim".revision = (((hackage."ghc-prim")."0.5.3").revisions).default;
5 "ghc-prim".revision = (((hackage."ghc-prim")."0.5.3").revisions).default;
6− "unix".revision = (((hackage."unix")."2.7.2.2").revisions).default;
6+ "array".revision = (((hackage."array")."0.5.4.0").revisions).default;
7− "mtl".revision = (((hackage."mtl")."2.2.2").revisions).default;
8− "rts".revision = (((hackage."rts")."1.0").revisions).default;
9− "deepseq".revision = (((hackage."deepseq")."1.4.4.0").revisions).default;
10− "directory".revision = (((hackage."directory")."1.3.4.0").revisions).default;
7+ "integer-gmp".revision = (((hackage."integer-gmp")."1.0.2.0").revisions).default;
11− "containers".revision = (((hackage."containers")."0.6.2.1").revisions).default;
8+ "process".revision = (((hackage."process")."1.6.7.0").revisions).default;
12− "bytestring".revision = (((hackage."bytestring")."0.10.10.0").revisions).default;
13 "base".revision = (((hackage."base")."4.13.0.0").revisions).default;
9 "base".revision = (((hackage."base")."4.13.0.0").revisions).default;
10+ "rts".revision = (((hackage."rts")."1.0").revisions).default;
11+ "mtl".revision = (((hackage."mtl")."2.2.2").revisions).default;
14 "time".revision = (((hackage."time")."1.9.3").revisions).default;
12 "time".revision = (((hackage."time")."1.9.3").revisions).default;
15− "transformers".revision = (((hackage."transformers")."0.5.6.2").revisions).default;
13+ "unix".revision = (((hackage."unix")."2.7.2.2").revisions).default;
14+ "bytestring".revision = (((hackage."bytestring")."0.10.10.0").revisions).default;
15+ "containers".revision = (((hackage."containers")."0.6.2.1").revisions).default;
16+ "directory".revision = (((hackage."directory")."1.3.4.0").revisions).default;
16 "filepath".revision = (((hackage."filepath")."1.4.2.1").revisions).default;
17 "filepath".revision = (((hackage."filepath")."1.4.2.1").revisions).default;
17− "process".revision = (((hackage."process")."1.6.7.0").revisions).default;
18+ "deepseq".revision = (((hackage."deepseq")."1.4.4.0").revisions).default;
18− "array".revision = (((hackage."array")."0.5.4.0").revisions).default;
19+ "transformers".revision = (((hackage."transformers")."0.5.6.2").revisions).default;
19− "integer-gmp".revision = (((hackage."integer-gmp")."1.0.2.0").revisions).default;
21 compiler = {
21 compiler = {
22 version = "8.8.2";
22 version = "8.8.2";
23 nix-name = "ghc882";
23 nix-name = "ghc882";
24 packages = {
24 packages = {
25 "ghc-prim" = "0.5.3";
25 "ghc-prim" = "0.5.3";
26− "unix" = "2.7.2.2";
26+ "array" = "0.5.4.0";
27− "mtl" = "2.2.2";
27+ "integer-gmp" = "1.0.2.0";
28− "rts" = "1.0";
28+ "process" = "1.6.7.0";
29− "deepseq" = "1.4.4.0";
30− "directory" = "1.3.4.0";
31− "containers" = "0.6.2.1";
32− "bytestring" = "0.10.10.0";
33 "base" = "4.13.0.0";
29 "base" = "4.13.0.0";
34 "time" = "1.9.3";
32 "time" = "1.9.3";
35− "transformers" = "0.5.6.2";
33+ "unix" = "2.7.2.2";
34+ "bytestring" = "0.10.10.0";
35+ "containers" = "0.6.2.1";
36+ "directory" = "1.3.4.0";
36 "filepath" = "1.4.2.1";
37 "filepath" = "1.4.2.1";
37− "process" = "1.6.7.0";
38+ "deepseq" = "1.4.4.0";
38− "array" = "0.5.4.0";
39+ "transformers" = "0.5.6.2";
39− "integer-gmp" = "1.0.2.0";
@@ -49,5 +49,27 @@
49 "happy" = { flags = { "small_base" = lib.mkOverride 900 true; }; };
49 "happy" = { flags = { "small_base" = lib.mkOverride 900 true; }; };
55+ "containers".components.library.planned = lib.mkOverride 900 true;
56+ "ghc-prim".components.library.planned = lib.mkOverride 900 true;
57+ "happy".components.exes."happy".planned = lib.mkOverride 900 true;
58+ "transformers".components.library.planned = lib.mkOverride 900 true;
59+ "process".components.library.planned = lib.mkOverride 900 true;
60+ "integer-gmp".components.library.planned = lib.mkOverride 900 true;
61+ "array".components.library.planned = lib.mkOverride 900 true;
62+ "bytestring".components.library.planned = lib.mkOverride 900 true;
63+ "unix".components.library.planned = lib.mkOverride 900 true;
64+ "base".components.library.planned = lib.mkOverride 900 true;
65+ "rts".components.library.planned = lib.mkOverride 900 true;
66+ "mtl".components.library.planned = lib.mkOverride 900 true;
67+ "time".components.library.planned = lib.mkOverride 900 true;
68+ "deepseq".components.library.planned = lib.mkOverride 900 true;
69+ "filepath".components.library.planned = lib.mkOverride 900 true;
70+ "happy".components.tests."tests".planned = lib.mkOverride 900 true;
71+ "directory".components.library.planned = lib.mkOverride 900 true;
materialized/bootstrap/ghc882/hscolour/.plan.nix/hscolour.nix+1−1
@@ -24,7 +24,7 @@
24 isLocal = true;
24 isLocal = true;
25 detailLevel = "FullDetails";
25 detailLevel = "FullDetails";
26 licenseFiles = [ "LICENCE-LGPL" ];
26 licenseFiles = [ "LICENCE-LGPL" ];
27− dataDir = "";
27+ dataDir = ".";
28 dataFiles = [ "hscolour.css" "data/rgb24-example-.hscolour" ];
28 dataFiles = [ "hscolour.css" "data/rgb24-example-.hscolour" ];
29 extraSrcFiles = [];
29 extraSrcFiles = [];
30 extraTmpFiles = [];
30 extraTmpFiles = [];
materialized/bootstrap/ghc882/hscolour/default.nix+22−8
@@ -3,24 +3,24 @@
4 packages = {
4 packages = {
5 "ghc-prim".revision = (((hackage."ghc-prim")."0.5.3").revisions).default;
5 "ghc-prim".revision = (((hackage."ghc-prim")."0.5.3").revisions).default;
6− "rts".revision = (((hackage."rts")."1.0").revisions).default;
7− "deepseq".revision = (((hackage."deepseq")."1.4.4.0").revisions).default;
8− "containers".revision = (((hackage."containers")."0.6.2.1").revisions).default;
9− "base".revision = (((hackage."base")."4.13.0.0").revisions).default;
10 "array".revision = (((hackage."array")."0.5.4.0").revisions).default;
6 "array".revision = (((hackage."array")."0.5.4.0").revisions).default;
11 "integer-gmp".revision = (((hackage."integer-gmp")."1.0.2.0").revisions).default;
7 "integer-gmp".revision = (((hackage."integer-gmp")."1.0.2.0").revisions).default;
8+ "base".revision = (((hackage."base")."4.13.0.0").revisions).default;
9+ "rts".revision = (((hackage."rts")."1.0").revisions).default;
10+ "containers".revision = (((hackage."containers")."0.6.2.1").revisions).default;
11+ "deepseq".revision = (((hackage."deepseq")."1.4.4.0").revisions).default;
13 compiler = {
13 compiler = {
14 version = "8.8.2";
14 version = "8.8.2";
15 nix-name = "ghc882";
15 nix-name = "ghc882";
16 packages = {
16 packages = {
17 "ghc-prim" = "0.5.3";
17 "ghc-prim" = "0.5.3";
19− "deepseq" = "1.4.4.0";
20− "containers" = "0.6.2.1";
22 "array" = "0.5.4.0";
18 "array" = "0.5.4.0";
23 "integer-gmp" = "1.0.2.0";
19 "integer-gmp" = "1.0.2.0";
22+ "containers" = "0.6.2.1";
23+ "deepseq" = "1.4.4.0";
@@ -29,5 +29,19 @@
29 modules = [
29 modules = [
30 ({ lib, ... }:
30 ({ lib, ... }:
31 { packages = { "hscolour" = { flags = {}; }; }; })
31 { packages = { "hscolour" = { flags = {}; }; }; })
35+ "containers".components.library.planned = lib.mkOverride 900 true;
36+ "ghc-prim".components.library.planned = lib.mkOverride 900 true;
37+ "hscolour".components.exes."HsColour".planned = lib.mkOverride 900 true;
38+ "hscolour".components.library.planned = lib.mkOverride 900 true;
39+ "integer-gmp".components.library.planned = lib.mkOverride 900 true;
40+ "array".components.library.planned = lib.mkOverride 900 true;
41+ "base".components.library.planned = lib.mkOverride 900 true;
42+ "rts".components.library.planned = lib.mkOverride 900 true;
43+ "deepseq".components.library.planned = lib.mkOverride 900 true;
materialized/bootstrap/ghc883/alex/.plan.nix/alex.nixnew file+160
@@ -0,0 +1,160 @@
11+ flags = { small_base = true; };
14+ identifier = { name = "alex"; version = "3.2.4"; };
15+ license = "BSD-3-Clause";
16+ copyright = "(c) Chis Dornan, Simon Marlow";
17+ maintainer = "Simon Marlow <marlowsd@gmail.com>";
18+ author = "Chris Dornan and Simon Marlow";
19+ homepage = "http://www.haskell.org/alex/";
21+ synopsis = "Alex is a tool for generating lexical analysers in Haskell";
22+ description = "Alex is a tool for generating lexical analysers in Haskell.\nIt takes a description of tokens based on regular\nexpressions and generates a Haskell module containing code\nfor scanning text efficiently. It is similar to the tool\nlex or flex for C/C++.";
23+ buildType = "Simple";
25+ detailLevel = "FullDetails";
26+ licenseFiles = [ "LICENSE" ];
31+ "AlexTemplate-ghc-nopred"
32+ "AlexTemplate-ghc-debug"
35+ "AlexWrapper-basic-bytestring"
36+ "AlexWrapper-strict-bytestring"
38+ "AlexWrapper-posn-bytestring"
40+ "AlexWrapper-monad-bytestring"
41+ "AlexWrapper-monadUserState"
42+ "AlexWrapper-monadUserState-bytestring"
60+ "examples/Tokens_gscan.x"
61+ "examples/Tokens_posn.x"
62+ "examples/examples.x"
69+ "examples/words_monad.x"
70+ "examples/words_posn.x"
74+ "templates/GenericTemplate.hs"
75+ "templates/wrappers.hs"
80+ "tests/tokens_gscan.x"
81+ "tests/tokens_posn.x"
82+ "tests/tokens_bytestring.x"
83+ "tests/tokens_posn_bytestring.x"
84+ "tests/tokens_scan_user.x"
85+ "tests/tokens_strict_bytestring.x"
86+ "tests/tokens_monad_bytestring.x"
87+ "tests/tokens_monadUserState_bytestring.x"
88+ "tests/tokens_bytestring_unicode.x"
89+ "tests/basic_typeclass.x"
90+ "tests/basic_typeclass_bytestring.x"
91+ "tests/default_typeclass.x"
92+ "tests/gscan_typeclass.x"
93+ "tests/posn_typeclass.x"
94+ "tests/monad_typeclass.x"
95+ "tests/monad_typeclass_bytestring.x"
96+ "tests/monadUserState_typeclass.x"
97+ "tests/monadUserState_typeclass_bytestring.x"
98+ "tests/posn_typeclass_bytestring.x"
99+ "tests/strict_typeclass.x"
109+ (hsPkgs."base" or (errorHandler.buildDepError "base"))
110+ ] ++ (if flags.small_base
112+ (hsPkgs."base" or (errorHandler.buildDepError "base"))
113+ (hsPkgs."array" or (errorHandler.buildDepError "array"))
114+ (hsPkgs."containers" or (errorHandler.buildDepError "containers"))
115+ (hsPkgs."directory" or (errorHandler.buildDepError "directory"))
117+ else [ (hsPkgs."base" or (errorHandler.buildDepError "base")) ]);
138+ "Data/Ranged/Boundaries"
139+ "Data/Ranged/RangedSet"
140+ "Data/Ranged/Ranges"
142+ hsSourceDirs = [ "src" ];
143+ mainPath = [ "Main.hs" ] ++ [ "" ];
149+ (hsPkgs."base" or (errorHandler.buildDepError "base"))
150+ (hsPkgs."process" or (errorHandler.buildDepError "process"))
153+ (hsPkgs.buildPackages.alex.components.exes.alex or (pkgs.buildPackages.alex or (errorHandler.buildToolDepError "alex:alex")))
156+ mainPath = [ "test.hs" ];
160+ } // rec { src = (pkgs.lib).mkDefault ../.; }
materialized/bootstrap/ghc883/alex/default.nixnew file+65
@@ -0,0 +1,65 @@
5+ "array".revision = (((hackage."array")."0.5.4.0").revisions).default;
6+ "bytestring".revision = (((hackage."bytestring")."0.10.10.0").revisions).default;
7+ "filepath".revision = (((hackage."filepath")."1.4.2.1").revisions).default;
8+ "ghc-prim".revision = (((hackage."ghc-prim")."0.5.3").revisions).default;
9+ "base".revision = (((hackage."base")."4.13.0.0").revisions).default;
10+ "time".revision = (((hackage."time")."1.9.3").revisions).default;
11+ "directory".revision = (((hackage."directory")."1.3.6.0").revisions).default;
12+ "rts".revision = (((hackage."rts")."1.0").revisions).default;
13+ "deepseq".revision = (((hackage."deepseq")."1.4.4.0").revisions).default;
14+ "unix".revision = (((hackage."unix")."2.7.2.2").revisions).default;
15+ "integer-gmp".revision = (((hackage."integer-gmp")."1.0.2.0").revisions).default;
16+ "containers".revision = (((hackage."containers")."0.6.2.1").revisions).default;
23+ "bytestring" = "0.10.10.0";
24+ "filepath" = "1.4.2.1";
25+ "ghc-prim" = "0.5.3";
28+ "directory" = "1.3.6.0";
30+ "deepseq" = "1.4.4.0";
32+ "integer-gmp" = "1.0.2.0";
33+ "containers" = "0.6.2.1";
38+ { packages = { alex = ./.plan.nix/alex.nix; }; };
43+ "alex" = { flags = { "small_base" = lib.mkOverride 900 true; }; };
49+ "filepath".components.library.planned = lib.mkOverride 900 true;
50+ "bytestring".components.library.planned = lib.mkOverride 900 true;
51+ "ghc-prim".components.library.planned = lib.mkOverride 900 true;
52+ "array".components.library.planned = lib.mkOverride 900 true;
53+ "rts".components.library.planned = lib.mkOverride 900 true;
54+ "unix".components.library.planned = lib.mkOverride 900 true;
55+ "directory".components.library.planned = lib.mkOverride 900 true;
56+ "time".components.library.planned = lib.mkOverride 900 true;
57+ "alex".components.exes."alex".planned = lib.mkOverride 900 true;
58+ "deepseq".components.library.planned = lib.mkOverride 900 true;
59+ "base".components.library.planned = lib.mkOverride 900 true;
60+ "integer-gmp".components.library.planned = lib.mkOverride 900 true;
61+ "containers".components.library.planned = lib.mkOverride 900 true;
materialized/bootstrap/ghc883/happy-1.19.12/.plan.nix/happy.nixnew file+200
@@ -0,0 +1,200 @@
11+ flags = { small_base = true; };
14+ identifier = { name = "happy"; version = "1.19.12"; };
15+ license = "BSD-2-Clause";
16+ copyright = "(c) Andy Gill, Simon Marlow";
17+ maintainer = "Simon Marlow <marlowsd@gmail.com>";
18+ author = "Andy Gill and Simon Marlow";
19+ homepage = "https://www.haskell.org/happy/";
21+ synopsis = "Happy is a parser generator for Haskell";
22+ description = "Happy is a parser generator for Haskell. Given a grammar\nspecification in BNF, Happy generates Haskell code to parse the\ngrammar. Happy works in a similar way to the @yacc@ tool for C.";
23+ buildType = "Simple";
25+ detailLevel = "FullDetails";
26+ licenseFiles = [ "LICENSE" ];
30+ "HappyTemplate-arrays"
31+ "HappyTemplate-arrays-coerce"
32+ "HappyTemplate-arrays-coerce-debug"
33+ "HappyTemplate-arrays-debug"
34+ "HappyTemplate-arrays-ghc"
35+ "HappyTemplate-arrays-ghc-debug"
36+ "HappyTemplate-coerce"
57+ "examples/glr/nlp/Main.lhs"
58+ "examples/glr/nlp/Makefile"
59+ "examples/glr/nlp/README"
60+ "examples/glr/nlp/English.y"
61+ "examples/glr/nlp/Hugs.lhs"
62+ "examples/glr/Makefile"
63+ "examples/glr/Makefile.defs"
64+ "examples/glr/expr-eval/Main.lhs"
65+ "examples/glr/expr-eval/Makefile"
66+ "examples/glr/expr-eval/Expr.y"
67+ "examples/glr/expr-eval/README"
68+ "examples/glr/expr-eval/Hugs.lhs"
69+ "examples/glr/expr-tree/Main.lhs"
70+ "examples/glr/expr-tree/Makefile"
71+ "examples/glr/expr-tree/Expr.y"
72+ "examples/glr/expr-tree/README"
73+ "examples/glr/expr-tree/Tree.lhs"
74+ "examples/glr/expr-tree/Hugs.lhs"
75+ "examples/glr/highly-ambiguous/Main.lhs"
76+ "examples/glr/highly-ambiguous/Makefile"
77+ "examples/glr/highly-ambiguous/Expr.y"
78+ "examples/glr/highly-ambiguous/README"
79+ "examples/glr/highly-ambiguous/Hugs.lhs"
80+ "examples/glr/hidden-leftrec/Main.lhs"
81+ "examples/glr/hidden-leftrec/Makefile"
82+ "examples/glr/hidden-leftrec/Expr.y"
83+ "examples/glr/hidden-leftrec/README"
84+ "examples/glr/hidden-leftrec/Hugs.lhs"
85+ "examples/glr/expr-monad/Main.lhs"
86+ "examples/glr/expr-monad/Makefile"
87+ "examples/glr/expr-monad/Expr.y"
88+ "examples/glr/expr-monad/README"
89+ "examples/glr/expr-monad/Hugs.lhs"
90+ "examples/glr/bio-eg/Main.lhs"
91+ "examples/glr/bio-eg/Makefile"
92+ "examples/glr/bio-eg/Bio.y"
93+ "examples/glr/bio-eg/README"
94+ "examples/glr/bio-eg/1-1200.dna"
95+ "examples/glr/bio-eg/1-600.dna"
96+ "examples/glr/common/DV_lhs"
97+ "examples/glr/common/DaVinciTypes.hs"
98+ "examples/glr/packing/Main.lhs"
99+ "examples/glr/packing/Makefile"
100+ "examples/glr/packing/Expr.y"
101+ "examples/glr/packing/README"
102+ "examples/glr/packing/Hugs.lhs"
103+ "examples/PgnParser.ly"
104+ "examples/MonadTest.ly"
105+ "examples/igloo/ParserM.hs"
106+ "examples/igloo/Makefile"
107+ "examples/igloo/Parser.y"
108+ "examples/igloo/Foo.hs"
109+ "examples/igloo/README"
110+ "examples/igloo/Lexer.x"
113+ "examples/DavesExample.ly"
114+ "examples/ErrorTest.ly"
115+ "examples/ErlParser.ly"
116+ "examples/SimonsExample.ly"
117+ "examples/LexerTest.ly"
120+ "tests/AttrGrammar001.y"
121+ "tests/AttrGrammar002.y"
125+ "tests/TestMulti.ly"
126+ "tests/TestPrecedence.ly"
127+ "tests/bogus-token.y"
130+ "tests/error001.stderr"
131+ "tests/error001.stdout"
135+ "tests/monaderror.y"
136+ "tests/precedence001.ly"
137+ "tests/precedence002.y"
138+ "tests/test_rules.y"
143+ "tests/monaderror-explist.y"
144+ "tests/typeclass_monad001.y"
145+ "tests/typeclass_monad002.ly"
146+ "tests/typeclass_monad_lexer.y"
156+ (hsPkgs."base" or (errorHandler.buildDepError "base"))
157+ (hsPkgs."array" or (errorHandler.buildDepError "array"))
158+ (hsPkgs."containers" or (errorHandler.buildDepError "containers"))
159+ (hsPkgs."mtl" or (errorHandler.buildDepError "mtl"))
182+ hsSourceDirs = [ "src" ];
183+ mainPath = [ "Main.lhs" ];
189+ (hsPkgs."base" or (errorHandler.buildDepError "base"))
190+ (hsPkgs."process" or (errorHandler.buildDepError "process"))
193+ (hsPkgs.buildPackages.happy.components.exes.happy or (pkgs.buildPackages.happy or (errorHandler.buildToolDepError "happy:happy")))
196+ mainPath = [ "test.hs" ];
200+ } // rec { src = (pkgs.lib).mkDefault ../.; }
materialized/bootstrap/ghc883/happy-1.19.12/default.nixnew file+56
@@ -0,0 +1,56 @@
5+ "array".revision = (((hackage."array")."0.5.4.0").revisions).default;
6+ "mtl".revision = (((hackage."mtl")."2.2.2").revisions).default;
7+ "ghc-prim".revision = (((hackage."ghc-prim")."0.5.3").revisions).default;
8+ "base".revision = (((hackage."base")."4.13.0.0").revisions).default;
9+ "rts".revision = (((hackage."rts")."1.0").revisions).default;
10+ "transformers".revision = (((hackage."transformers")."0.5.6.2").revisions).default;
11+ "deepseq".revision = (((hackage."deepseq")."1.4.4.0").revisions).default;
12+ "integer-gmp".revision = (((hackage."integer-gmp")."1.0.2.0").revisions).default;
13+ "containers".revision = (((hackage."containers")."0.6.2.1").revisions).default;
21+ "ghc-prim" = "0.5.3";
24+ "transformers" = "0.5.6.2";
25+ "deepseq" = "1.4.4.0";
26+ "integer-gmp" = "1.0.2.0";
27+ "containers" = "0.6.2.1";
32+ { packages = { happy = ./.plan.nix/happy.nix; }; };
37+ "happy" = { flags = { "small_base" = lib.mkOverride 900 true; }; };
43+ "ghc-prim".components.library.planned = lib.mkOverride 900 true;
44+ "array".components.library.planned = lib.mkOverride 900 true;
45+ "rts".components.library.planned = lib.mkOverride 900 true;
46+ "happy".components.exes."happy".planned = lib.mkOverride 900 true;
47+ "mtl".components.library.planned = lib.mkOverride 900 true;
48+ "transformers".components.library.planned = lib.mkOverride 900 true;
49+ "deepseq".components.library.planned = lib.mkOverride 900 true;
50+ "base".components.library.planned = lib.mkOverride 900 true;
51+ "integer-gmp".components.library.planned = lib.mkOverride 900 true;
52+ "containers".components.library.planned = lib.mkOverride 900 true;
materialized/bootstrap/ghc883/hscolour/.plan.nix/hscolour.nixnew file+70
@@ -0,0 +1,70 @@
14+ identifier = { name = "hscolour"; version = "1.24.4"; };
15+ license = "LicenseRef-LGPL";
16+ copyright = "2003-2017 Malcolm Wallace; 2006 Bjorn Bringert";
17+ maintainer = "Malcolm Wallace";
18+ author = "Malcolm Wallace";
19+ homepage = "http://code.haskell.org/~malcolm/hscolour/";
21+ synopsis = "Colourise Haskell code.";
22+ description = "hscolour is a small Haskell script to colourise Haskell code. It currently\nhas six output formats:\nANSI terminal codes (optionally XTerm-256colour codes),\nHTML 3.2 with <font> tags,\nHTML 4.01 with CSS,\nHTML 4.01 with CSS and mouseover annotations,\nXHTML 1.0 with inline CSS styling,\nLaTeX,\nand mIRC chat codes.";
23+ buildType = "Simple";
25+ detailLevel = "FullDetails";
26+ licenseFiles = [ "LICENCE-LGPL" ];
28+ dataFiles = [ "hscolour.css" "data/rgb24-example-.hscolour" ];
36+ (hsPkgs."base" or (errorHandler.buildDepError "base"))
37+ (hsPkgs."containers" or (errorHandler.buildDepError "containers"))
41+ "Language/Haskell/HsColour"
42+ "Language/Haskell/HsColour/ANSI"
43+ "Language/Haskell/HsColour/Anchors"
44+ "Language/Haskell/HsColour/ACSS"
45+ "Language/Haskell/HsColour/CSS"
46+ "Language/Haskell/HsColour/Classify"
47+ "Language/Haskell/HsColour/ColourHighlight"
48+ "Language/Haskell/HsColour/Colourise"
49+ "Language/Haskell/HsColour/General"
50+ "Language/Haskell/HsColour/HTML"
51+ "Language/Haskell/HsColour/InlineCSS"
52+ "Language/Haskell/HsColour/LaTeX"
53+ "Language/Haskell/HsColour/MIRC"
54+ "Language/Haskell/HsColour/Options"
55+ "Language/Haskell/HsColour/Output"
56+ "Language/Haskell/HsColour/TTY"
62+ (hsPkgs."base" or (errorHandler.buildDepError "base"))
63+ (hsPkgs."containers" or (errorHandler.buildDepError "containers"))
66+ mainPath = [ "HsColour.hs" ];
70+ } // rec { src = (pkgs.lib).mkDefault ../.; }
materialized/bootstrap/ghc883/hscolour/default.nixnew file+47
@@ -0,0 +1,47 @@
5+ "array".revision = (((hackage."array")."0.5.4.0").revisions).default;
6+ "ghc-prim".revision = (((hackage."ghc-prim")."0.5.3").revisions).default;
7+ "base".revision = (((hackage."base")."4.13.0.0").revisions).default;
8+ "rts".revision = (((hackage."rts")."1.0").revisions).default;
9+ "deepseq".revision = (((hackage."deepseq")."1.4.4.0").revisions).default;
10+ "integer-gmp".revision = (((hackage."integer-gmp")."1.0.2.0").revisions).default;
11+ "containers".revision = (((hackage."containers")."0.6.2.1").revisions).default;
18+ "ghc-prim" = "0.5.3";
21+ "deepseq" = "1.4.4.0";
22+ "integer-gmp" = "1.0.2.0";
23+ "containers" = "0.6.2.1";
28+ { packages = { hscolour = ./.plan.nix/hscolour.nix; }; };
31+ { packages = { "hscolour" = { flags = {}; }; }; })
35+ "ghc-prim".components.library.planned = lib.mkOverride 900 true;
36+ "array".components.library.planned = lib.mkOverride 900 true;
37+ "rts".components.library.planned = lib.mkOverride 900 true;
38+ "hscolour".components.library.planned = lib.mkOverride 900 true;
39+ "hscolour".components.exes."HsColour".planned = lib.mkOverride 900 true;
40+ "deepseq".components.library.planned = lib.mkOverride 900 true;
41+ "base".components.library.planned = lib.mkOverride 900 true;
42+ "integer-gmp".components.library.planned = lib.mkOverride 900 true;
43+ "containers".components.library.planned = lib.mkOverride 900 true;
materialized/bootstrap/ghc884/alex/.plan.nix/alex.nixnew file+160
@@ -0,0 +1,160 @@
11+ flags = { small_base = true; };
14+ identifier = { name = "alex"; version = "3.2.4"; };
15+ license = "BSD-3-Clause";
16+ copyright = "(c) Chis Dornan, Simon Marlow";
17+ maintainer = "Simon Marlow <marlowsd@gmail.com>";
18+ author = "Chris Dornan and Simon Marlow";
19+ homepage = "http://www.haskell.org/alex/";
21+ synopsis = "Alex is a tool for generating lexical analysers in Haskell";
22+ description = "Alex is a tool for generating lexical analysers in Haskell.\nIt takes a description of tokens based on regular\nexpressions and generates a Haskell module containing code\nfor scanning text efficiently. It is similar to the tool\nlex or flex for C/C++.";
23+ buildType = "Simple";
25+ detailLevel = "FullDetails";
26+ licenseFiles = [ "LICENSE" ];
31+ "AlexTemplate-ghc-nopred"
32+ "AlexTemplate-ghc-debug"
35+ "AlexWrapper-basic-bytestring"
36+ "AlexWrapper-strict-bytestring"
38+ "AlexWrapper-posn-bytestring"
40+ "AlexWrapper-monad-bytestring"
41+ "AlexWrapper-monadUserState"
42+ "AlexWrapper-monadUserState-bytestring"
60+ "examples/Tokens_gscan.x"
61+ "examples/Tokens_posn.x"
62+ "examples/examples.x"
69+ "examples/words_monad.x"
70+ "examples/words_posn.x"
74+ "templates/GenericTemplate.hs"
75+ "templates/wrappers.hs"
80+ "tests/tokens_gscan.x"
81+ "tests/tokens_posn.x"
82+ "tests/tokens_bytestring.x"
83+ "tests/tokens_posn_bytestring.x"
84+ "tests/tokens_scan_user.x"
85+ "tests/tokens_strict_bytestring.x"
86+ "tests/tokens_monad_bytestring.x"
87+ "tests/tokens_monadUserState_bytestring.x"
88+ "tests/tokens_bytestring_unicode.x"
89+ "tests/basic_typeclass.x"
90+ "tests/basic_typeclass_bytestring.x"
91+ "tests/default_typeclass.x"
92+ "tests/gscan_typeclass.x"
93+ "tests/posn_typeclass.x"
94+ "tests/monad_typeclass.x"
95+ "tests/monad_typeclass_bytestring.x"
96+ "tests/monadUserState_typeclass.x"
97+ "tests/monadUserState_typeclass_bytestring.x"
98+ "tests/posn_typeclass_bytestring.x"
99+ "tests/strict_typeclass.x"
109+ (hsPkgs."base" or (errorHandler.buildDepError "base"))
110+ ] ++ (if flags.small_base
112+ (hsPkgs."base" or (errorHandler.buildDepError "base"))
113+ (hsPkgs."array" or (errorHandler.buildDepError "array"))
114+ (hsPkgs."containers" or (errorHandler.buildDepError "containers"))
115+ (hsPkgs."directory" or (errorHandler.buildDepError "directory"))
117+ else [ (hsPkgs."base" or (errorHandler.buildDepError "base")) ]);
138+ "Data/Ranged/Boundaries"
139+ "Data/Ranged/RangedSet"
140+ "Data/Ranged/Ranges"
142+ hsSourceDirs = [ "src" ];
143+ mainPath = [ "Main.hs" ] ++ [ "" ];
149+ (hsPkgs."base" or (errorHandler.buildDepError "base"))
150+ (hsPkgs."process" or (errorHandler.buildDepError "process"))
153+ (hsPkgs.buildPackages.alex.components.exes.alex or (pkgs.buildPackages.alex or (errorHandler.buildToolDepError "alex:alex")))
156+ mainPath = [ "test.hs" ];
160+ } // rec { src = (pkgs.lib).mkDefault ../.; }
materialized/bootstrap/ghc884/alex/default.nixnew file+65
@@ -0,0 +1,65 @@
5+ "array".revision = (((hackage."array")."0.5.4.0").revisions).default;
6+ "bytestring".revision = (((hackage."bytestring")."0.10.10.1").revisions).default;
7+ "filepath".revision = (((hackage."filepath")."1.4.2.1").revisions).default;
8+ "ghc-prim".revision = (((hackage."ghc-prim")."0.5.3").revisions).default;
9+ "base".revision = (((hackage."base")."4.13.0.0").revisions).default;
10+ "time".revision = (((hackage."time")."1.9.3").revisions).default;
11+ "directory".revision = (((hackage."directory")."1.3.6.0").revisions).default;
12+ "rts".revision = (((hackage."rts")."1.0").revisions).default;
13+ "deepseq".revision = (((hackage."deepseq")."1.4.4.0").revisions).default;
14+ "unix".revision = (((hackage."unix")."2.7.2.2").revisions).default;
15+ "integer-gmp".revision = (((hackage."integer-gmp")."1.0.2.0").revisions).default;
16+ "containers".revision = (((hackage."containers")."0.6.2.1").revisions).default;
23+ "bytestring" = "0.10.10.1";
24+ "filepath" = "1.4.2.1";
25+ "ghc-prim" = "0.5.3";
28+ "directory" = "1.3.6.0";
30+ "deepseq" = "1.4.4.0";
32+ "integer-gmp" = "1.0.2.0";
33+ "containers" = "0.6.2.1";
38+ { packages = { alex = ./.plan.nix/alex.nix; }; };
43+ "alex" = { flags = { "small_base" = lib.mkOverride 900 true; }; };
49+ "filepath".components.library.planned = lib.mkOverride 900 true;
50+ "bytestring".components.library.planned = lib.mkOverride 900 true;
51+ "ghc-prim".components.library.planned = lib.mkOverride 900 true;
52+ "array".components.library.planned = lib.mkOverride 900 true;
53+ "rts".components.library.planned = lib.mkOverride 900 true;
54+ "unix".components.library.planned = lib.mkOverride 900 true;
55+ "directory".components.library.planned = lib.mkOverride 900 true;
56+ "time".components.library.planned = lib.mkOverride 900 true;
57+ "alex".components.exes."alex".planned = lib.mkOverride 900 true;
58+ "deepseq".components.library.planned = lib.mkOverride 900 true;
59+ "base".components.library.planned = lib.mkOverride 900 true;
60+ "integer-gmp".components.library.planned = lib.mkOverride 900 true;
61+ "containers".components.library.planned = lib.mkOverride 900 true;
materialized/bootstrap/ghc884/happy-1.19.12/.plan.nix/happy.nixnew file+200
@@ -0,0 +1,200 @@
11+ flags = { small_base = true; };
14+ identifier = { name = "happy"; version = "1.19.12"; };
15+ license = "BSD-2-Clause";
16+ copyright = "(c) Andy Gill, Simon Marlow";
17+ maintainer = "Simon Marlow <marlowsd@gmail.com>";
18+ author = "Andy Gill and Simon Marlow";
19+ homepage = "https://www.haskell.org/happy/";
21+ synopsis = "Happy is a parser generator for Haskell";
22+ description = "Happy is a parser generator for Haskell. Given a grammar\nspecification in BNF, Happy generates Haskell code to parse the\ngrammar. Happy works in a similar way to the @yacc@ tool for C.";
23+ buildType = "Simple";
25+ detailLevel = "FullDetails";
26+ licenseFiles = [ "LICENSE" ];
30+ "HappyTemplate-arrays"
31+ "HappyTemplate-arrays-coerce"
32+ "HappyTemplate-arrays-coerce-debug"
33+ "HappyTemplate-arrays-debug"
34+ "HappyTemplate-arrays-ghc"
35+ "HappyTemplate-arrays-ghc-debug"
36+ "HappyTemplate-coerce"
57+ "examples/glr/nlp/Main.lhs"
58+ "examples/glr/nlp/Makefile"
59+ "examples/glr/nlp/README"
60+ "examples/glr/nlp/English.y"
61+ "examples/glr/nlp/Hugs.lhs"
62+ "examples/glr/Makefile"
63+ "examples/glr/Makefile.defs"
64+ "examples/glr/expr-eval/Main.lhs"
65+ "examples/glr/expr-eval/Makefile"
66+ "examples/glr/expr-eval/Expr.y"
67+ "examples/glr/expr-eval/README"
68+ "examples/glr/expr-eval/Hugs.lhs"
69+ "examples/glr/expr-tree/Main.lhs"
70+ "examples/glr/expr-tree/Makefile"
71+ "examples/glr/expr-tree/Expr.y"
72+ "examples/glr/expr-tree/README"
73+ "examples/glr/expr-tree/Tree.lhs"
74+ "examples/glr/expr-tree/Hugs.lhs"
75+ "examples/glr/highly-ambiguous/Main.lhs"
76+ "examples/glr/highly-ambiguous/Makefile"
77+ "examples/glr/highly-ambiguous/Expr.y"
78+ "examples/glr/highly-ambiguous/README"
79+ "examples/glr/highly-ambiguous/Hugs.lhs"
80+ "examples/glr/hidden-leftrec/Main.lhs"
81+ "examples/glr/hidden-leftrec/Makefile"
82+ "examples/glr/hidden-leftrec/Expr.y"
83+ "examples/glr/hidden-leftrec/README"
84+ "examples/glr/hidden-leftrec/Hugs.lhs"
85+ "examples/glr/expr-monad/Main.lhs"
86+ "examples/glr/expr-monad/Makefile"
87+ "examples/glr/expr-monad/Expr.y"
88+ "examples/glr/expr-monad/README"
89+ "examples/glr/expr-monad/Hugs.lhs"
90+ "examples/glr/bio-eg/Main.lhs"
91+ "examples/glr/bio-eg/Makefile"
92+ "examples/glr/bio-eg/Bio.y"
93+ "examples/glr/bio-eg/README"
94+ "examples/glr/bio-eg/1-1200.dna"
95+ "examples/glr/bio-eg/1-600.dna"
96+ "examples/glr/common/DV_lhs"
97+ "examples/glr/common/DaVinciTypes.hs"
98+ "examples/glr/packing/Main.lhs"
99+ "examples/glr/packing/Makefile"
100+ "examples/glr/packing/Expr.y"
101+ "examples/glr/packing/README"
102+ "examples/glr/packing/Hugs.lhs"
103+ "examples/PgnParser.ly"
104+ "examples/MonadTest.ly"
105+ "examples/igloo/ParserM.hs"
106+ "examples/igloo/Makefile"
107+ "examples/igloo/Parser.y"
108+ "examples/igloo/Foo.hs"
109+ "examples/igloo/README"
110+ "examples/igloo/Lexer.x"
113+ "examples/DavesExample.ly"
114+ "examples/ErrorTest.ly"
115+ "examples/ErlParser.ly"
116+ "examples/SimonsExample.ly"
117+ "examples/LexerTest.ly"
120+ "tests/AttrGrammar001.y"
121+ "tests/AttrGrammar002.y"
125+ "tests/TestMulti.ly"
126+ "tests/TestPrecedence.ly"
127+ "tests/bogus-token.y"
130+ "tests/error001.stderr"
131+ "tests/error001.stdout"
135+ "tests/monaderror.y"
136+ "tests/precedence001.ly"
137+ "tests/precedence002.y"
138+ "tests/test_rules.y"
143+ "tests/monaderror-explist.y"
144+ "tests/typeclass_monad001.y"
145+ "tests/typeclass_monad002.ly"
146+ "tests/typeclass_monad_lexer.y"
156+ (hsPkgs."base" or (errorHandler.buildDepError "base"))
157+ (hsPkgs."array" or (errorHandler.buildDepError "array"))
158+ (hsPkgs."containers" or (errorHandler.buildDepError "containers"))
159+ (hsPkgs."mtl" or (errorHandler.buildDepError "mtl"))
182+ hsSourceDirs = [ "src" ];
183+ mainPath = [ "Main.lhs" ];
189+ (hsPkgs."base" or (errorHandler.buildDepError "base"))
190+ (hsPkgs."process" or (errorHandler.buildDepError "process"))
193+ (hsPkgs.buildPackages.happy.components.exes.happy or (pkgs.buildPackages.happy or (errorHandler.buildToolDepError "happy:happy")))
196+ mainPath = [ "test.hs" ];
200+ } // rec { src = (pkgs.lib).mkDefault ../.; }
materialized/bootstrap/ghc884/happy-1.19.12/default.nixnew file+56
@@ -0,0 +1,56 @@
5+ "array".revision = (((hackage."array")."0.5.4.0").revisions).default;
6+ "mtl".revision = (((hackage."mtl")."2.2.2").revisions).default;
7+ "ghc-prim".revision = (((hackage."ghc-prim")."0.5.3").revisions).default;
8+ "base".revision = (((hackage."base")."4.13.0.0").revisions).default;
9+ "rts".revision = (((hackage."rts")."1.0").revisions).default;
10+ "transformers".revision = (((hackage."transformers")."0.5.6.2").revisions).default;
11+ "deepseq".revision = (((hackage."deepseq")."1.4.4.0").revisions).default;
12+ "integer-gmp".revision = (((hackage."integer-gmp")."1.0.2.0").revisions).default;
13+ "containers".revision = (((hackage."containers")."0.6.2.1").revisions).default;
21+ "ghc-prim" = "0.5.3";
24+ "transformers" = "0.5.6.2";
25+ "deepseq" = "1.4.4.0";
26+ "integer-gmp" = "1.0.2.0";
27+ "containers" = "0.6.2.1";
32+ { packages = { happy = ./.plan.nix/happy.nix; }; };
37+ "happy" = { flags = { "small_base" = lib.mkOverride 900 true; }; };
43+ "ghc-prim".components.library.planned = lib.mkOverride 900 true;
44+ "array".components.library.planned = lib.mkOverride 900 true;
45+ "rts".components.library.planned = lib.mkOverride 900 true;
46+ "happy".components.exes."happy".planned = lib.mkOverride 900 true;
47+ "mtl".components.library.planned = lib.mkOverride 900 true;
48+ "transformers".components.library.planned = lib.mkOverride 900 true;
49+ "deepseq".components.library.planned = lib.mkOverride 900 true;
50+ "base".components.library.planned = lib.mkOverride 900 true;
51+ "integer-gmp".components.library.planned = lib.mkOverride 900 true;
52+ "containers".components.library.planned = lib.mkOverride 900 true;
materialized/bootstrap/ghc884/hscolour/.plan.nix/hscolour.nixnew file+70
@@ -0,0 +1,70 @@
14+ identifier = { name = "hscolour"; version = "1.24.4"; };
15+ license = "LicenseRef-LGPL";
16+ copyright = "2003-2017 Malcolm Wallace; 2006 Bjorn Bringert";
17+ maintainer = "Malcolm Wallace";
18+ author = "Malcolm Wallace";
19+ homepage = "http://code.haskell.org/~malcolm/hscolour/";
21+ synopsis = "Colourise Haskell code.";
22+ description = "hscolour is a small Haskell script to colourise Haskell code. It currently\nhas six output formats:\nANSI terminal codes (optionally XTerm-256colour codes),\nHTML 3.2 with <font> tags,\nHTML 4.01 with CSS,\nHTML 4.01 with CSS and mouseover annotations,\nXHTML 1.0 with inline CSS styling,\nLaTeX,\nand mIRC chat codes.";
23+ buildType = "Simple";
25+ detailLevel = "FullDetails";
26+ licenseFiles = [ "LICENCE-LGPL" ];
28+ dataFiles = [ "hscolour.css" "data/rgb24-example-.hscolour" ];
36+ (hsPkgs."base" or (errorHandler.buildDepError "base"))
37+ (hsPkgs."containers" or (errorHandler.buildDepError "containers"))
41+ "Language/Haskell/HsColour"
42+ "Language/Haskell/HsColour/ANSI"
43+ "Language/Haskell/HsColour/Anchors"
44+ "Language/Haskell/HsColour/ACSS"
45+ "Language/Haskell/HsColour/CSS"
46+ "Language/Haskell/HsColour/Classify"
47+ "Language/Haskell/HsColour/ColourHighlight"
48+ "Language/Haskell/HsColour/Colourise"
49+ "Language/Haskell/HsColour/General"
50+ "Language/Haskell/HsColour/HTML"
51+ "Language/Haskell/HsColour/InlineCSS"
52+ "Language/Haskell/HsColour/LaTeX"
53+ "Language/Haskell/HsColour/MIRC"
54+ "Language/Haskell/HsColour/Options"
55+ "Language/Haskell/HsColour/Output"
56+ "Language/Haskell/HsColour/TTY"
62+ (hsPkgs."base" or (errorHandler.buildDepError "base"))
63+ (hsPkgs."containers" or (errorHandler.buildDepError "containers"))
66+ mainPath = [ "HsColour.hs" ];
70+ } // rec { src = (pkgs.lib).mkDefault ../.; }
materialized/bootstrap/ghc884/hscolour/default.nixnew file+47
@@ -0,0 +1,47 @@
5+ "array".revision = (((hackage."array")."0.5.4.0").revisions).default;
6+ "ghc-prim".revision = (((hackage."ghc-prim")."0.5.3").revisions).default;
7+ "base".revision = (((hackage."base")."4.13.0.0").revisions).default;
8+ "rts".revision = (((hackage."rts")."1.0").revisions).default;
9+ "deepseq".revision = (((hackage."deepseq")."1.4.4.0").revisions).default;
10+ "integer-gmp".revision = (((hackage."integer-gmp")."1.0.2.0").revisions).default;
11+ "containers".revision = (((hackage."containers")."0.6.2.1").revisions).default;
18+ "ghc-prim" = "0.5.3";
21+ "deepseq" = "1.4.4.0";
22+ "integer-gmp" = "1.0.2.0";
23+ "containers" = "0.6.2.1";
28+ { packages = { hscolour = ./.plan.nix/hscolour.nix; }; };
31+ { packages = { "hscolour" = { flags = {}; }; }; })
35+ "ghc-prim".components.library.planned = lib.mkOverride 900 true;
36+ "array".components.library.planned = lib.mkOverride 900 true;
37+ "rts".components.library.planned = lib.mkOverride 900 true;
38+ "hscolour".components.library.planned = lib.mkOverride 900 true;
39+ "hscolour".components.exes."HsColour".planned = lib.mkOverride 900 true;
40+ "deepseq".components.library.planned = lib.mkOverride 900 true;
41+ "base".components.library.planned = lib.mkOverride 900 true;
42+ "integer-gmp".components.library.planned = lib.mkOverride 900 true;
43+ "containers".components.library.planned = lib.mkOverride 900 true;
materialized/dummy-ghc/aarch64-unknown-linux-gnu-aarch64-unknown-linux-gnu-ghc-8.10.5-x86_64-linux/ghc/info+1−1
@@ -46,7 +46,7 @@
46 ,("RTS expects libdw","NO")
46 ,("RTS expects libdw","NO")
47 ,("Project version","8.10.5")
47 ,("Project version","8.10.5")
48 ,("Project Git commit id","a43a5650f51fdc04d757abc3d86b0a23ec518259")
48 ,("Project Git commit id","a43a5650f51fdc04d757abc3d86b0a23ec518259")
49− ,("Booter version","8.6.5")
49+ ,("Booter version","8.8.4")
50 ,("Stage","1")
50 ,("Stage","1")
51 ,("Build platform","x86_64-unknown-linux")
51 ,("Build platform","x86_64-unknown-linux")
52 ,("Host platform","x86_64-unknown-linux")
52 ,("Host platform","x86_64-unknown-linux")
materialized/dummy-ghc/aarch64-unknown-linux-gnu-aarch64-unknown-linux-gnu-ghc-8.10.6-x86_64-linux/ghc-pkg/dump-globalnew file+1443
@@ -0,0 +1,1443 @@
7+copyright: 2003-2020, Cabal Development Team (see AUTHORS file)
8+maintainer: cabal-devel@haskell.org
9+author: Cabal Development Team <cabal-devel@haskell.org>
10+homepage: http://www.haskell.org/cabal/
11+synopsis: A framework for packaging Haskell software
13+ The Haskell Common Architecture for Building Applications and
14+ Libraries: a framework defining a common interface for authors to more
15+ easily build their Haskell applications in a portable way.
16+ The Haskell Cabal is part of a larger infrastructure for distributing,
17+ organizing, and cataloging Haskell libraries and tools.
18+category: Distribution
21+ Distribution.Backpack Distribution.Backpack.ComponentsGraph
22+ Distribution.Backpack.Configure
23+ Distribution.Backpack.ConfiguredComponent
24+ Distribution.Backpack.DescribeUnitId
25+ Distribution.Backpack.FullUnitId
26+ Distribution.Backpack.LinkedComponent
27+ Distribution.Backpack.ModSubst Distribution.Backpack.ModuleShape
28+ Distribution.Backpack.PreModuleShape Distribution.CabalSpecVersion
29+ Distribution.Compat.Binary Distribution.Compat.CharParsing
30+ Distribution.Compat.CreatePipe Distribution.Compat.DList
31+ Distribution.Compat.Directory Distribution.Compat.Environment
32+ Distribution.Compat.Exception Distribution.Compat.FilePath
33+ Distribution.Compat.Graph Distribution.Compat.Internal.TempFile
34+ Distribution.Compat.Lens Distribution.Compat.Newtype
35+ Distribution.Compat.Parsing Distribution.Compat.Prelude.Internal
36+ Distribution.Compat.Process Distribution.Compat.ResponseFile
37+ Distribution.Compat.Semigroup Distribution.Compat.Stack
38+ Distribution.Compat.Time Distribution.Compat.Typeable
39+ Distribution.Compiler Distribution.FieldGrammar
40+ Distribution.FieldGrammar.Class
41+ Distribution.FieldGrammar.FieldDescrs
42+ Distribution.FieldGrammar.Parsec Distribution.FieldGrammar.Pretty
43+ Distribution.Fields Distribution.Fields.ConfVar
44+ Distribution.Fields.Field Distribution.Fields.Lexer
45+ Distribution.Fields.LexerMonad Distribution.Fields.ParseResult
46+ Distribution.Fields.Parser Distribution.Fields.Pretty
47+ Distribution.InstalledPackageInfo Distribution.License
48+ Distribution.Make Distribution.ModuleName Distribution.Package
49+ Distribution.PackageDescription
50+ Distribution.PackageDescription.Check
51+ Distribution.PackageDescription.Configuration
52+ Distribution.PackageDescription.FieldGrammar
53+ Distribution.PackageDescription.Parsec
54+ Distribution.PackageDescription.PrettyPrint
55+ Distribution.PackageDescription.Quirks
56+ Distribution.PackageDescription.Utils Distribution.Parsec
57+ Distribution.Parsec.Error Distribution.Parsec.FieldLineStream
58+ Distribution.Parsec.Newtypes Distribution.Parsec.Position
59+ Distribution.Parsec.Warning Distribution.Pretty Distribution.ReadE
60+ Distribution.SPDX Distribution.SPDX.License
61+ Distribution.SPDX.LicenseExceptionId
62+ Distribution.SPDX.LicenseExpression Distribution.SPDX.LicenseId
63+ Distribution.SPDX.LicenseListVersion
64+ Distribution.SPDX.LicenseReference Distribution.Simple
65+ Distribution.Simple.Bench Distribution.Simple.Build
66+ Distribution.Simple.Build.Macros
67+ Distribution.Simple.Build.PathsModule
68+ Distribution.Simple.BuildPaths Distribution.Simple.BuildTarget
69+ Distribution.Simple.BuildToolDepends Distribution.Simple.CCompiler
70+ Distribution.Simple.Command Distribution.Simple.Compiler
71+ Distribution.Simple.Configure Distribution.Simple.Doctest
72+ Distribution.Simple.Flag Distribution.Simple.GHC
73+ Distribution.Simple.GHCJS Distribution.Simple.Glob
74+ Distribution.Simple.Haddock Distribution.Simple.HaskellSuite
75+ Distribution.Simple.Hpc Distribution.Simple.Install
76+ Distribution.Simple.InstallDirs
77+ Distribution.Simple.InstallDirs.Internal
78+ Distribution.Simple.LocalBuildInfo Distribution.Simple.PackageIndex
79+ Distribution.Simple.PreProcess Distribution.Simple.PreProcess.Unlit
80+ Distribution.Simple.Program Distribution.Simple.Program.Ar
81+ Distribution.Simple.Program.Builtin Distribution.Simple.Program.Db
82+ Distribution.Simple.Program.Find Distribution.Simple.Program.GHC
83+ Distribution.Simple.Program.HcPkg Distribution.Simple.Program.Hpc
84+ Distribution.Simple.Program.Internal Distribution.Simple.Program.Ld
85+ Distribution.Simple.Program.ResponseFile
86+ Distribution.Simple.Program.Run Distribution.Simple.Program.Script
87+ Distribution.Simple.Program.Strip Distribution.Simple.Program.Types
88+ Distribution.Simple.Register Distribution.Simple.Setup
89+ Distribution.Simple.ShowBuildInfo Distribution.Simple.SrcDist
90+ Distribution.Simple.Test Distribution.Simple.Test.ExeV10
91+ Distribution.Simple.Test.LibV09 Distribution.Simple.Test.Log
92+ Distribution.Simple.UHC Distribution.Simple.UserHooks
93+ Distribution.Simple.Utils Distribution.System
94+ Distribution.TestSuite Distribution.Text
95+ Distribution.Types.AbiDependency Distribution.Types.AbiHash
96+ Distribution.Types.AnnotatedId Distribution.Types.Benchmark
97+ Distribution.Types.Benchmark.Lens
98+ Distribution.Types.BenchmarkInterface
99+ Distribution.Types.BenchmarkType Distribution.Types.BuildInfo
100+ Distribution.Types.BuildInfo.Lens Distribution.Types.BuildType
101+ Distribution.Types.Component Distribution.Types.ComponentId
102+ Distribution.Types.ComponentInclude
103+ Distribution.Types.ComponentLocalBuildInfo
104+ Distribution.Types.ComponentName
105+ Distribution.Types.ComponentRequestedSpec
106+ Distribution.Types.CondTree Distribution.Types.Condition
107+ Distribution.Types.ConfVar Distribution.Types.Dependency
108+ Distribution.Types.DependencyMap Distribution.Types.ExeDependency
109+ Distribution.Types.Executable Distribution.Types.Executable.Lens
110+ Distribution.Types.ExecutableScope Distribution.Types.ExposedModule
111+ Distribution.Types.Flag Distribution.Types.ForeignLib
112+ Distribution.Types.ForeignLib.Lens
113+ Distribution.Types.ForeignLibOption
114+ Distribution.Types.ForeignLibType
115+ Distribution.Types.GenericPackageDescription
116+ Distribution.Types.GenericPackageDescription.Lens
117+ Distribution.Types.GivenComponent
118+ Distribution.Types.HookedBuildInfo
119+ Distribution.Types.IncludeRenaming
120+ Distribution.Types.InstalledPackageInfo
121+ Distribution.Types.InstalledPackageInfo.FieldGrammar
122+ Distribution.Types.InstalledPackageInfo.Lens
123+ Distribution.Types.LegacyExeDependency Distribution.Types.Lens
124+ Distribution.Types.Library Distribution.Types.Library.Lens
125+ Distribution.Types.LibraryName Distribution.Types.LibraryVisibility
126+ Distribution.Types.LocalBuildInfo Distribution.Types.Mixin
127+ Distribution.Types.Module Distribution.Types.ModuleReexport
128+ Distribution.Types.ModuleRenaming
129+ Distribution.Types.MungedPackageId
130+ Distribution.Types.MungedPackageName
131+ Distribution.Types.PackageDescription
132+ Distribution.Types.PackageDescription.Lens
133+ Distribution.Types.PackageId Distribution.Types.PackageId.Lens
134+ Distribution.Types.PackageName Distribution.Types.PackageName.Magic
135+ Distribution.Types.PackageVersionConstraint
136+ Distribution.Types.PkgconfigDependency
137+ Distribution.Types.PkgconfigName
138+ Distribution.Types.PkgconfigVersion
139+ Distribution.Types.PkgconfigVersionRange
140+ Distribution.Types.SetupBuildInfo
141+ Distribution.Types.SetupBuildInfo.Lens
142+ Distribution.Types.SourceRepo Distribution.Types.SourceRepo.Lens
143+ Distribution.Types.TargetInfo Distribution.Types.TestSuite
144+ Distribution.Types.TestSuite.Lens
145+ Distribution.Types.TestSuiteInterface Distribution.Types.TestType
146+ Distribution.Types.UnitId Distribution.Types.UnqualComponentName
147+ Distribution.Types.Version Distribution.Types.VersionInterval
148+ Distribution.Types.VersionRange
149+ Distribution.Types.VersionRange.Internal Distribution.Utils.Generic
150+ Distribution.Utils.IOData Distribution.Utils.LogProgress
151+ Distribution.Utils.MD5 Distribution.Utils.MapAccum
152+ Distribution.Utils.NubList Distribution.Utils.Progress
153+ Distribution.Utils.ShortText Distribution.Utils.Structured
154+ Distribution.Verbosity Distribution.Verbosity.Internal
155+ Distribution.Version Language.Haskell.Extension
157+ Distribution.Backpack.PreExistingComponent
158+ Distribution.Backpack.ReadyComponent Distribution.Backpack.MixLink
159+ Distribution.Backpack.ModuleScope Distribution.Backpack.UnifyM
160+ Distribution.Backpack.Id Distribution.Utils.UnionFind
161+ Distribution.Utils.Base62 Distribution.Compat.Async
162+ Distribution.Compat.CopyFile Distribution.Compat.GetShortPathName
163+ Distribution.Compat.MonadFail Distribution.Compat.Prelude
164+ Distribution.Compat.SnocList Distribution.GetOpt Distribution.Lex
165+ Distribution.Utils.String Distribution.Simple.GHC.EnvironmentParser
166+ Distribution.Simple.GHC.Internal Distribution.Simple.GHC.ImplInfo
167+ Distribution.Simple.Utils.Json Paths_Cabal
170+dynamic-library-dirs:
172+hs-libraries: HSCabal-3.2.1.0
174+ array-0.5.4.0 base-4.14.3.0 binary-0.8.8.0 bytestring-0.10.12.0
175+ containers-0.6.5.1 deepseq-1.4.4.0 directory-1.3.6.0
176+ filepath-1.4.2.1 mtl-2.2.2 parsec-3.1.14.0 pretty-1.1.3.6
177+ process-1.6.13.2 text-1.2.4.1 time-1.9.3 transformers-0.5.6.2
187+license: BSD-3-Clause
188+maintainer: libraries@haskell.org
189+synopsis: Mutable and immutable arrays
191+ In addition to providing the "Data.Array" module
192+ <http://www.haskell.org/onlinereport/haskell2010/haskellch14.html as specified in the Haskell 2010 Language Report>,
193+ this package also defines the classes 'IArray' of
194+ immutable arrays and 'MArray' of arrays mutable within appropriate
195+ monads, as well as some instances of these classes.
196+category: Data Structures
199+ Data.Array Data.Array.Base Data.Array.IArray Data.Array.IO
200+ Data.Array.IO.Internals Data.Array.IO.Safe Data.Array.MArray
201+ Data.Array.MArray.Safe Data.Array.ST Data.Array.ST.Safe
202+ Data.Array.Storable Data.Array.Storable.Internals
203+ Data.Array.Storable.Safe Data.Array.Unboxed Data.Array.Unsafe
206+dynamic-library-dirs:
208+hs-libraries: HSarray-0.5.4.0
209+depends: base-4.14.3.0
218+license: BSD-3-Clause
219+maintainer: libraries@haskell.org
220+synopsis: Basic libraries
222+ This package contains the Standard Haskell "Prelude" and its support libraries,
223+ and a large collection of useful libraries ranging from data
224+ structures to parsing combinators and debugging utilities.
228+ Control.Applicative Control.Arrow Control.Category
229+ Control.Concurrent Control.Concurrent.Chan Control.Concurrent.MVar
230+ Control.Concurrent.QSem Control.Concurrent.QSemN Control.Exception
231+ Control.Exception.Base Control.Monad Control.Monad.Fail
232+ Control.Monad.Fix Control.Monad.IO.Class Control.Monad.Instances
233+ Control.Monad.ST Control.Monad.ST.Lazy Control.Monad.ST.Lazy.Safe
234+ Control.Monad.ST.Lazy.Unsafe Control.Monad.ST.Safe
235+ Control.Monad.ST.Strict Control.Monad.ST.Unsafe Control.Monad.Zip
236+ Data.Bifoldable Data.Bifunctor Data.Bitraversable Data.Bits
237+ Data.Bool Data.Char Data.Coerce Data.Complex Data.Data Data.Dynamic
238+ Data.Either Data.Eq Data.Fixed Data.Foldable Data.Function
239+ Data.Functor Data.Functor.Classes Data.Functor.Compose
240+ Data.Functor.Const Data.Functor.Contravariant Data.Functor.Identity
241+ Data.Functor.Product Data.Functor.Sum Data.IORef Data.Int Data.Ix
242+ Data.Kind Data.List Data.List.NonEmpty Data.Maybe Data.Monoid
243+ Data.Ord Data.Proxy Data.Ratio Data.STRef Data.STRef.Lazy
244+ Data.STRef.Strict Data.Semigroup Data.String Data.Traversable
245+ Data.Tuple Data.Type.Bool Data.Type.Coercion Data.Type.Equality
246+ Data.Typeable Data.Unique Data.Version Data.Void Data.Word
247+ Debug.Trace Foreign Foreign.C Foreign.C.Error Foreign.C.String
248+ Foreign.C.Types Foreign.Concurrent Foreign.ForeignPtr
249+ Foreign.ForeignPtr.Safe Foreign.ForeignPtr.Unsafe Foreign.Marshal
250+ Foreign.Marshal.Alloc Foreign.Marshal.Array Foreign.Marshal.Error
251+ Foreign.Marshal.Pool Foreign.Marshal.Safe Foreign.Marshal.Unsafe
252+ Foreign.Marshal.Utils Foreign.Ptr Foreign.Safe Foreign.StablePtr
253+ Foreign.Storable GHC.Arr GHC.Base GHC.ByteOrder GHC.Char GHC.Clock
254+ GHC.Conc GHC.Conc.IO GHC.Conc.Signal GHC.Conc.Sync
255+ GHC.ConsoleHandler GHC.Constants GHC.Desugar GHC.Enum
256+ GHC.Environment GHC.Err GHC.Event GHC.Exception GHC.Exception.Type
257+ GHC.ExecutionStack GHC.ExecutionStack.Internal GHC.Exts
258+ GHC.Fingerprint GHC.Fingerprint.Type GHC.Float
259+ GHC.Float.ConversionUtils GHC.Float.RealFracMethods GHC.Foreign
260+ GHC.ForeignPtr GHC.GHCi GHC.GHCi.Helpers GHC.Generics GHC.IO
261+ GHC.IO.Buffer GHC.IO.BufferedIO GHC.IO.Device GHC.IO.Encoding
262+ GHC.IO.Encoding.CodePage GHC.IO.Encoding.Failure
263+ GHC.IO.Encoding.Iconv GHC.IO.Encoding.Latin1 GHC.IO.Encoding.Types
264+ GHC.IO.Encoding.UTF16 GHC.IO.Encoding.UTF32 GHC.IO.Encoding.UTF8
265+ GHC.IO.Exception GHC.IO.FD GHC.IO.Handle GHC.IO.Handle.FD
266+ GHC.IO.Handle.Internals GHC.IO.Handle.Lock GHC.IO.Handle.Text
267+ GHC.IO.Handle.Types GHC.IO.IOMode GHC.IO.Unsafe GHC.IOArray
268+ GHC.IORef GHC.Int GHC.Ix GHC.List GHC.MVar GHC.Maybe GHC.Natural
269+ GHC.Num GHC.OldList GHC.OverloadedLabels GHC.Pack GHC.Profiling
270+ GHC.Ptr GHC.RTS.Flags GHC.Read GHC.Real GHC.Records
271+ GHC.ResponseFile GHC.ST GHC.STRef GHC.Show GHC.Stable
272+ GHC.StableName GHC.Stack GHC.Stack.CCS GHC.Stack.Types
273+ GHC.StaticPtr GHC.Stats GHC.Storable GHC.TopHandler GHC.TypeLits
274+ GHC.TypeNats GHC.Unicode GHC.Weak GHC.Word Numeric Numeric.Natural
275+ Prelude System.CPUTime System.Console.GetOpt System.Environment
276+ System.Environment.Blank System.Exit System.IO System.IO.Error
277+ System.IO.Unsafe System.Info System.Mem System.Mem.StableName
278+ System.Mem.Weak System.Posix.Internals System.Posix.Types
279+ System.Timeout Text.ParserCombinators.ReadP
280+ Text.ParserCombinators.ReadPrec Text.Printf Text.Read Text.Read.Lex
281+ Text.Show Text.Show.Functions Type.Reflection
282+ Type.Reflection.Unsafe Unsafe.Coerce
284+ Control.Monad.ST.Imp Control.Monad.ST.Lazy.Imp Data.Functor.Utils
285+ Data.OldList Data.Semigroup.Internal Data.Typeable.Internal
286+ Foreign.ForeignPtr.Imp GHC.IO.Handle.Lock.Common
287+ GHC.IO.Handle.Lock.Flock GHC.IO.Handle.Lock.LinuxOFD
288+ GHC.IO.Handle.Lock.NoOp GHC.IO.Handle.Lock.Windows
289+ GHC.StaticPtr.Internal System.Environment.ExecutablePath
290+ System.CPUTime.Utils GHC.Event.Arr GHC.Event.Array
291+ GHC.Event.Control GHC.Event.EPoll GHC.Event.IntTable
292+ GHC.Event.Internal GHC.Event.KQueue GHC.Event.Manager GHC.Event.PSQ
293+ GHC.Event.Poll GHC.Event.Thread GHC.Event.TimerManager
294+ GHC.Event.Unique System.CPUTime.Posix.ClockGetTime
295+ System.CPUTime.Posix.Times System.CPUTime.Posix.RUsage
296+ System.CPUTime.Unsupported
299+dynamic-library-dirs:
301+hs-libraries: HSbase-4.14.3.0
304+depends: ghc-prim-0.6.1 integer-gmp-1.0.3.0 rts
313+license: BSD-3-Clause
314+maintainer: Lennart Kolmodin, Don Stewart <dons00@gmail.com>
315+author: Lennart Kolmodin <kolmodin@gmail.com>
316+stability: provisional
317+homepage: https://github.com/kolmodin/binary
319+ Binary serialisation for Haskell values using lazy ByteStrings
321+ Efficient, pure binary serialisation using lazy ByteStrings.
322+ Haskell values may be encoded to and from binary formats,
323+ written to disk as binary, or sent over the network.
324+ The format used can be automatically generated, or
325+ you can choose to implement a custom format if needed.
326+ Serialisation speeds of over 1 G\/sec have been observed,
327+ so this library should be suitable for high performance
329+category: Data, Parsing
332+ Data.Binary Data.Binary.Builder Data.Binary.Get
333+ Data.Binary.Get.Internal Data.Binary.Put
335+ Data.Binary.Class Data.Binary.Internal Data.Binary.Generic
336+ Data.Binary.FloatCast
339+dynamic-library-dirs:
341+hs-libraries: HSbinary-0.8.8.0
343+ array-0.5.4.0 base-4.14.3.0 bytestring-0.10.12.0 containers-0.6.5.1
350+id: bytestring-0.10.12.0
351+key: bytestring-0.10.12.0
352+license: BSD-3-Clause
354+ Copyright (c) Don Stewart 2005-2009,
355+ (c) Duncan Coutts 2006-2015,
356+ (c) David Roundy 2003-2005,
357+ (c) Jasper Van der Jeugt 2010,
358+ (c) Simon Meier 2010-2013.
359+maintainer: Duncan Coutts <duncan@community.haskell.org>
363+homepage: https://github.com/haskell/bytestring
365+ Fast, compact, strict and lazy byte strings with a list interface
367+ An efficient compact, immutable byte string type (both strict and lazy)
368+ suitable for binary or 8-bit character data.
369+ The 'ByteString' type represents sequences of bytes or 8-bit characters.
370+ It is suitable for high performance use, both in terms of large data
371+ quantities, or high speed requirements. The 'ByteString' functions follow
372+ the same style as Haskell\'s ordinary lists, so it is easy to convert code
373+ from using 'String' to 'ByteString'.
374+ Two 'ByteString' variants are provided:
375+ * Strict 'ByteString's keep the string as a single large array. This
376+ makes them convenient for passing data between C and Haskell.
377+ * Lazy 'ByteString's use a lazy list of strict chunks which makes it
378+ suitable for I\/O streaming tasks.
379+ The @Char8@ modules provide a character-based view of the same
380+ underlying 'ByteString' types. This makes it convenient to handle mixed
381+ binary and 8-bit character content (which is common in many file formats
382+ and network protocols).
383+ The 'Builder' module provides an efficient way to build up 'ByteString's
384+ in an ad-hoc way by repeated concatenation. This is ideal for fast
385+ serialisation or pretty printing.
386+ There is also a 'ShortByteString' type which has a lower memory overhead
387+ and can can be converted to or from a 'ByteString', but supports very few
388+ other operations. It is suitable for keeping many short strings in memory.
389+ 'ByteString's are not designed for Unicode. For Unicode strings you should
390+ use the 'Text' type from the @text@ package.
391+ These modules are intended to be imported qualified, to avoid name clashes
392+ with "Prelude" functions, e.g.
393+ > import qualified Data.ByteString as BS
397+ Data.ByteString Data.ByteString.Builder
398+ Data.ByteString.Builder.Extra Data.ByteString.Builder.Internal
399+ Data.ByteString.Builder.Prim Data.ByteString.Builder.Prim.Internal
400+ Data.ByteString.Char8 Data.ByteString.Internal Data.ByteString.Lazy
401+ Data.ByteString.Lazy.Builder Data.ByteString.Lazy.Builder.ASCII
402+ Data.ByteString.Lazy.Builder.Extras Data.ByteString.Lazy.Char8
403+ Data.ByteString.Lazy.Internal Data.ByteString.Short
404+ Data.ByteString.Short.Internal Data.ByteString.Unsafe
406+ Data.ByteString.Builder.ASCII Data.ByteString.Builder.Prim.Binary
407+ Data.ByteString.Builder.Prim.ASCII
408+ Data.ByteString.Builder.Prim.Internal.Floating
409+ Data.ByteString.Builder.Prim.Internal.UncheckedShifts
410+ Data.ByteString.Builder.Prim.Internal.Base16
413+dynamic-library-dirs:
415+hs-libraries: HSbytestring-0.10.12.0
419+ base-4.14.3.0 deepseq-1.4.4.0 ghc-prim-0.6.1 integer-gmp-1.0.3.0
426+id: containers-0.6.5.1
427+key: containers-0.6.5.1
428+license: BSD-3-Clause
429+maintainer: libraries@haskell.org
430+synopsis: Assorted concrete container types
432+ This package contains efficient general-purpose implementations
433+ of various immutable container types including sets, maps, sequences,
435+ For a walkthrough of what this package provides with examples of common
436+ operations see the [containers
437+ introduction](https://haskell-containers.readthedocs.io).
438+ The declared cost of each operation is either worst-case or amortized, but
439+ remains valid even if structures are shared.
440+category: Data Structures
443+ Data.Containers.ListUtils Data.Graph Data.IntMap
444+ Data.IntMap.Internal Data.IntMap.Internal.Debug Data.IntMap.Lazy
445+ Data.IntMap.Merge.Lazy Data.IntMap.Merge.Strict Data.IntMap.Strict
446+ Data.IntMap.Strict.Internal Data.IntSet Data.IntSet.Internal
447+ Data.Map Data.Map.Internal Data.Map.Internal.Debug Data.Map.Lazy
448+ Data.Map.Merge.Lazy Data.Map.Merge.Strict Data.Map.Strict
449+ Data.Map.Strict.Internal Data.Sequence Data.Sequence.Internal
450+ Data.Sequence.Internal.Sorting Data.Set Data.Set.Internal Data.Tree
451+ Utils.Containers.Internal.BitQueue
452+ Utils.Containers.Internal.BitUtil
453+ Utils.Containers.Internal.StrictPair
455+ Utils.Containers.Internal.State
456+ Utils.Containers.Internal.StrictMaybe
457+ Utils.Containers.Internal.PtrEquality
458+ Utils.Containers.Internal.Coercions
459+ Utils.Containers.Internal.TypeError
460+ Data.Map.Internal.DeprecatedShowTree
461+ Data.IntMap.Internal.DeprecatedDebug
464+dynamic-library-dirs:
466+hs-libraries: HScontainers-0.6.5.1
467+depends: array-0.5.4.0 base-4.14.3.0 deepseq-1.4.4.0
476+license: BSD-3-Clause
477+maintainer: libraries@haskell.org
478+synopsis: Deep evaluation of data structures
480+ This package provides methods for fully evaluating data structures
481+ (\"deep evaluation\"). Deep evaluation is often used for adding
482+ strictness to a program, e.g. in order to force pending exceptions,
483+ remove space leaks, or force lazy I/O to happen. It is also useful
484+ in parallel programs, to ensure pending work does not migrate to the
486+ The primary use of this package is via the 'deepseq' function, a
487+ \"deep\" version of 'seq'. It is implemented on top of an 'NFData'
488+ typeclass (\"Normal Form Data\", data structures with no unevaluated
489+ components) which defines strategies for fully evaluating different
490+ data types. See module documentation in "Control.DeepSeq" for more
494+exposed-modules: Control.DeepSeq
495+hidden-modules: Control.DeepSeq.BackDoor
498+dynamic-library-dirs:
500+hs-libraries: HSdeepseq-1.4.4.0
501+depends: array-0.5.4.0 base-4.14.3.0
508+id: directory-1.3.6.0
509+key: directory-1.3.6.0
510+license: BSD-3-Clause
511+maintainer: libraries@haskell.org
512+synopsis: Platform-agnostic library for filesystem operations
514+ This library provides a basic set of operations for manipulating files and
515+ directories in a portable way.
519+ System.Directory System.Directory.Internal
520+ System.Directory.Internal.Prelude
522+ System.Directory.Internal.C_utimensat
523+ System.Directory.Internal.Common System.Directory.Internal.Config
524+ System.Directory.Internal.Posix System.Directory.Internal.Windows
527+dynamic-library-dirs:
529+hs-libraries: HSdirectory-1.3.6.0
531+ base-4.14.3.0 filepath-1.4.2.1 time-1.9.3 unix-2.7.2.2
538+id: exceptions-0.10.4
539+key: exceptions-0.10.4
540+license: BSD-3-Clause
542+ Copyright (C) 2013-2015 Edward A. Kmett
543+ Copyright (C) 2012 Google Inc.
544+maintainer: Edward A. Kmett <ekmett@gmail.com>
545+author: Edward A. Kmett
546+stability: provisional
547+homepage: http://github.com/ekmett/exceptions/
548+synopsis: Extensible optionally-pure exceptions
549+description: Extensible optionally-pure exceptions.
550+category: Control, Exceptions, Monad
552+exposed-modules: Control.Monad.Catch Control.Monad.Catch.Pure
555+dynamic-library-dirs:
557+hs-libraries: HSexceptions-0.10.4
559+ base-4.14.3.0 mtl-2.2.2 stm-2.5.0.1 template-haskell-2.16.0.0
560+ transformers-0.5.6.2
568+key: filepath-1.4.2.1
569+license: BSD-3-Clause
570+copyright: Neil Mitchell 2005-2018
571+maintainer: Neil Mitchell <ndmitchell@gmail.com>
572+author: Neil Mitchell <ndmitchell@gmail.com>
573+homepage: https://github.com/haskell/filepath#readme
574+synopsis: Library for manipulating FilePaths in a cross platform way.
576+ This package provides functionality for manipulating @FilePath@ values, and is shipped with both <https://www.haskell.org/ghc/ GHC> and the <https://www.haskell.org/platform/ Haskell Platform>. It provides three modules:
577+ * "System.FilePath.Posix" manipulates POSIX\/Linux style @FilePath@ values (with @\/@ as the path separator).
578+ * "System.FilePath.Windows" manipulates Windows style @FilePath@ values (with either @\\@ or @\/@ as the path separator, and deals with drives).
579+ * "System.FilePath" is an alias for the module appropriate to your platform.
580+ All three modules provide the same API, and the same documentation (calling out differences in the different variants).
584+ System.FilePath System.FilePath.Posix System.FilePath.Windows
587+dynamic-library-dirs:
589+hs-libraries: HSfilepath-1.4.2.1
590+depends: base-4.14.3.0
599+license: BSD-3-Clause
600+maintainer: ghc-devs@haskell.org
601+synopsis: Shared functionality between GHC and its boot libraries
603+ This library is shared between GHC, ghc-pkg, and other boot
605+ A note about "GHC.PackageDb": it only deals with the subset of
606+ the package database that the compiler cares about: modules
607+ paths etc and not package metadata like description, authors
608+ etc. It is thus not a library interface to ghc-pkg and is *not*
609+ suitable for modifying GHC package databases.
610+ The package database format and this library are constructed in
611+ such a way that while ghc-pkg depends on Cabal, the GHC library
612+ and program do not have to depend on Cabal.
616+ GHC.BaseDir GHC.ForeignSrcLang GHC.HandleEncoding
617+ GHC.LanguageExtensions GHC.PackageDb GHC.Platform GHC.Platform.Host
618+ GHC.Serialized GHC.Settings GHC.UniqueSubdir GHC.Version
621+dynamic-library-dirs:
623+hs-libraries: HSghc-boot-8.10.6
625+ base-4.14.3.0 binary-0.8.8.0 bytestring-0.10.12.0
626+ containers-0.6.5.1 directory-1.3.6.0 filepath-1.4.2.1
634+id: ghc-boot-th-8.10.6
635+key: ghc-boot-th-8.10.6
636+license: BSD-3-Clause
637+maintainer: ghc-devs@haskell.org
639+ Shared functionality between GHC and the @template-haskell@
642+ This library contains various bits shared between the @ghc@ and
643+ @template-haskell@ libraries.
644+ This package exists to ensure that @template-haskell@ has a
645+ minimal set of transitive dependencies, since it is intended to
646+ be depended upon by user code.
650+ GHC.ForeignSrcLang.Type GHC.LanguageExtensions.Type GHC.Lexeme
653+dynamic-library-dirs:
655+hs-libraries: HSghc-boot-th-8.10.6
656+depends: base-4.14.3.0
663+id: ghc-compact-0.1.0.0
664+key: ghc-compact-0.1.0.0
665+license: BSD-3-Clause
666+maintainer: libraries@haskell.org
667+synopsis: In memory storage of deeply evaluated data structure
669+ This package provides minimal functionality for working with
670+ "compact regions", which hold a fully evaluated Haskell object graph.
671+ These regions maintain the invariant that no pointers live inside the struct
672+ that point outside it, which ensures efficient garbage collection without
673+ ever reading the structure contents (effectively, it works as a manually
674+ managed "oldest generation" which is never freed until the whole is
676+ Internally, the struct is stored a single contiguous block of memory,
677+ which allows efficient serialization and deserialization of structs
678+ for distributed computing.
681+exposed-modules: GHC.Compact GHC.Compact.Serialized
684+dynamic-library-dirs:
686+hs-libraries: HSghc-compact-0.1.0.0
687+depends: base-4.14.3.0 bytestring-0.10.12.0 ghc-prim-0.6.1
696+license: BSD-3-Clause
697+maintainer: libraries@haskell.org
698+synopsis: Functions for walking GHC's heap
700+ This package provides functions for walking the GHC heap data structures
701+ and retrieving information about those data structures.
705+ GHC.Exts.Heap GHC.Exts.Heap.ClosureTypes GHC.Exts.Heap.Closures
706+ GHC.Exts.Heap.Constants GHC.Exts.Heap.InfoTable
707+ GHC.Exts.Heap.InfoTable.Types GHC.Exts.Heap.InfoTableProf
711+dynamic-library-dirs:
713+hs-libraries: HSghc-heap-8.10.6
714+depends: base-4.14.3.0 ghc-prim-0.6.1 rts
723+license: BSD-3-Clause
724+maintainer: libraries@haskell.org
725+synopsis: GHC primitives
727+ This package contains the primitive types and operations supplied by GHC.
731+ GHC.CString GHC.Classes GHC.Debug GHC.IntWord64 GHC.Magic
732+ GHC.Prim.Ext GHC.PrimopWrappers GHC.Tuple GHC.Types GHC.Prim
735+dynamic-library-dirs:
737+hs-libraries: HSghc-prim-0.6.1
738+extra-libraries: gcc c m
748+license: BSD-3-Clause
749+maintainer: ghc-devs@haskell.org
750+synopsis: The library supporting GHC's interactive interpreter
752+ This library offers interfaces which mediate interactions between the
753+ @ghci@ interactive shell and @iserv@, GHC's out-of-process interpreter
758+ GHCi.BinaryArray GHCi.BreakArray GHCi.CreateBCO GHCi.FFI
759+ GHCi.InfoTable GHCi.Message GHCi.ObjLink GHCi.RemoteTypes
760+ GHCi.ResolvedBCO GHCi.Run GHCi.Signals GHCi.StaticPtrTable GHCi.TH
761+ GHCi.TH.Binary SizedSeq
764+dynamic-library-dirs:
766+hs-libraries: HSghci-8.10.6
769+ array-0.5.4.0 base-4.14.3.0 binary-0.8.8.0 bytestring-0.10.12.0
770+ containers-0.6.5.1 deepseq-1.4.4.0 filepath-1.4.2.1 ghc-boot-8.10.6
771+ ghc-boot-th-8.10.6 ghc-heap-8.10.6 rts template-haskell-2.16.0.0
772+ transformers-0.5.6.2 unix-2.7.2.2
781+license: BSD-3-Clause
782+copyright: (c) Judah Jacobson
783+maintainer: Judah Jacobson <judah.jacobson@gmail.com>
784+author: Judah Jacobson
786+homepage: https://github.com/judah/haskeline
788+ A command-line interface for user input, written in Haskell.
790+ Haskeline provides a user interface for line input in command-line
791+ programs. This library is similar in purpose to readline, but since
792+ it is written in Haskell it is (hopefully) more easily used in other
794+ Haskeline runs both on POSIX-compatible systems and on Windows.
795+category: User Interfaces
798+ System.Console.Haskeline System.Console.Haskeline.Completion
799+ System.Console.Haskeline.History System.Console.Haskeline.IO
800+ System.Console.Haskeline.Internal
802+ System.Console.Haskeline.Backend
803+ System.Console.Haskeline.Backend.WCWidth
804+ System.Console.Haskeline.Command
805+ System.Console.Haskeline.Command.Completion
806+ System.Console.Haskeline.Command.History
807+ System.Console.Haskeline.Command.KillRing
808+ System.Console.Haskeline.Directory System.Console.Haskeline.Emacs
809+ System.Console.Haskeline.InputT System.Console.Haskeline.Key
810+ System.Console.Haskeline.LineState System.Console.Haskeline.Monads
811+ System.Console.Haskeline.Prefs System.Console.Haskeline.Recover
812+ System.Console.Haskeline.RunCommand System.Console.Haskeline.Term
813+ System.Console.Haskeline.Command.Undo System.Console.Haskeline.Vi
814+ System.Console.Haskeline.Backend.Posix
815+ System.Console.Haskeline.Backend.Posix.Encoder
816+ System.Console.Haskeline.Backend.DumbTerm
819+dynamic-library-dirs:
821+hs-libraries: HShaskeline-0.8.2
823+ base-4.14.3.0 bytestring-0.10.12.0 containers-0.6.5.1
824+ directory-1.3.6.0 exceptions-0.10.4 filepath-1.4.2.1
825+ process-1.6.13.2 stm-2.5.0.1 transformers-0.5.6.2 unix-2.7.2.2
834+license: BSD-3-Clause
835+maintainer: ghc-devs@haskell.org
837+synopsis: Code Coverage Library for Haskell
839+ This package provides the code coverage library for Haskell.
840+ See <http://www.haskell.org/haskellwiki/Haskell_program_coverage> for more
845+ Trace.Hpc.Mix Trace.Hpc.Reflect Trace.Hpc.Tix Trace.Hpc.Util
848+dynamic-library-dirs:
850+hs-libraries: HShpc-0.6.1.0
852+ base-4.14.3.0 containers-0.6.5.1 deepseq-1.4.4.0 directory-1.3.6.0
853+ filepath-1.4.2.1 time-1.9.3
860+id: integer-gmp-1.0.3.0
861+key: integer-gmp-1.0.3.0
862+license: BSD-3-Clause
863+maintainer: hvr@gnu.org
864+author: Herbert Valerio Riedel
865+synopsis: Integer library based on GMP
867+ This package provides the low-level implementation of the standard
868+ 'Integer' type based on the
869+ <http://gmplib.org/ GNU Multiple Precision Arithmetic Library (GMP)>.
870+ This package provides access to the internal representation of
871+ 'Integer' as well as primitive operations with no proper error
872+ handling, and should only be used directly with the utmost care.
873+category: Numeric, Algebra
876+ GHC.Integer GHC.Integer.GMP.Internals GHC.Integer.Logarithms
877+ GHC.Integer.Logarithms.Internals
878+hidden-modules: GHC.Integer.Type
881+dynamic-library-dirs:
883+hs-libraries: HSinteger-gmp-1.0.3.0
886+depends: ghc-prim-0.6.1
895+license: BSD-3-Clause
899+synopsis: Provides shared functionality between iserv and iserv-proxy
900+category: Development
902+exposed-modules: GHCi.Utils Lib
905+dynamic-library-dirs:
907+hs-libraries: HSlibiserv-8.10.6
909+ base-4.14.3.0 binary-0.8.8.0 bytestring-0.10.12.0
910+ containers-0.6.5.1 deepseq-1.4.4.0 ghci-8.10.6 unix-2.7.2.2
919+license: BSD-3-Clause
920+maintainer: Edward Kmett <ekmett@gmail.com>
922+homepage: http://github.com/haskell/mtl
923+synopsis: Monad classes, using functional dependencies
925+ Monad classes using functional dependencies, with instances
926+ for various monad transformers, inspired by the paper
927+ /Functional Programming with Overloading and Higher-Order Polymorphism/,
928+ by Mark P Jones, in /Advanced School of Functional Programming/, 1995
929+ (<http://web.cecs.pdx.edu/~mpj/pubs/springschool.html>).
933+ Control.Monad.Cont Control.Monad.Cont.Class Control.Monad.Error
934+ Control.Monad.Error.Class Control.Monad.Except
935+ Control.Monad.Identity Control.Monad.List Control.Monad.RWS
936+ Control.Monad.RWS.Class Control.Monad.RWS.Lazy
937+ Control.Monad.RWS.Strict Control.Monad.Reader
938+ Control.Monad.Reader.Class Control.Monad.State
939+ Control.Monad.State.Class Control.Monad.State.Lazy
940+ Control.Monad.State.Strict Control.Monad.Trans Control.Monad.Writer
941+ Control.Monad.Writer.Class Control.Monad.Writer.Lazy
942+ Control.Monad.Writer.Strict
945+dynamic-library-dirs:
947+hs-libraries: HSmtl-2.2.2
948+depends: base-4.14.3.0 transformers-0.5.6.2
957+license: BSD-3-Clause
958+maintainer: Herbert Valerio Riedel <hvr@gnu.org>
960+ Daan Leijen <daan@microsoft.com>, Paolo Martini <paolo@nemail.it>, Antoine Latter <aslatter@gmail.com>
961+homepage: https://github.com/haskell/parsec
962+synopsis: Monadic parser combinators
964+ Parsec is designed from scratch as an industrial-strength parser
965+ library. It is simple, safe, well documented (on the package
966+ homepage), has extensive libraries, good error messages,
967+ and is fast. It is defined as a monad transformer that can be
968+ stacked on arbitrary monads, and it is also parametric in the
970+ The main entry point is the "Text.Parsec" module which provides
971+ defaults for parsing 'Char'acter data.
972+ The "Text.ParserCombinators.Parsec" module hierarchy contains
973+ the legacy @parsec-2@ API and may be removed at some point in
978+ Text.Parsec Text.Parsec.ByteString Text.Parsec.ByteString.Lazy
979+ Text.Parsec.Char Text.Parsec.Combinator Text.Parsec.Error
980+ Text.Parsec.Expr Text.Parsec.Language Text.Parsec.Perm
981+ Text.Parsec.Pos Text.Parsec.Prim Text.Parsec.String
982+ Text.Parsec.Text Text.Parsec.Text.Lazy Text.Parsec.Token
983+ Text.ParserCombinators.Parsec Text.ParserCombinators.Parsec.Char
984+ Text.ParserCombinators.Parsec.Combinator
985+ Text.ParserCombinators.Parsec.Error
986+ Text.ParserCombinators.Parsec.Expr
987+ Text.ParserCombinators.Parsec.Language
988+ Text.ParserCombinators.Parsec.Perm
989+ Text.ParserCombinators.Parsec.Pos
990+ Text.ParserCombinators.Parsec.Prim
991+ Text.ParserCombinators.Parsec.Token
994+dynamic-library-dirs:
996+hs-libraries: HSparsec-3.1.14.0
998+ base-4.14.3.0 bytestring-0.10.12.0 mtl-2.2.2 text-1.2.4.1
1007+license: BSD-3-Clause
1008+maintainer: David Terei <code@davidterei.com>
1010+homepage: http://github.com/haskell/pretty
1011+synopsis: Pretty-printing library
1013+ This package contains a pretty-printing library, a set of API's
1014+ that provides a way to easily print out text in a consistent
1015+ format of your choosing. This is useful for compilers and related
1017+ This library was originally designed by John Hughes's and has since
1018+ been heavily modified by Simon Peyton Jones.
1022+ Text.PrettyPrint Text.PrettyPrint.Annotated
1023+ Text.PrettyPrint.Annotated.HughesPJ
1024+ Text.PrettyPrint.Annotated.HughesPJClass Text.PrettyPrint.HughesPJ
1025+ Text.PrettyPrint.HughesPJClass
1028+dynamic-library-dirs:
1030+hs-libraries: HSpretty-1.1.3.6
1031+depends: base-4.14.3.0 deepseq-1.4.4.0 ghc-prim-0.6.1
1038+id: process-1.6.13.2
1039+key: process-1.6.13.2
1040+license: BSD-3-Clause
1041+maintainer: libraries@haskell.org
1042+synopsis: Process libraries
1044+ This package contains libraries for dealing with system processes.
1045+ The typed-process package is a more recent take on a process API,
1046+ which uses this package internally. It features better binary
1047+ support, easier concurrency, and a more composable API. You can
1048+ read more about it at
1049+ <https://github.com/fpco/typed-process/#readme>.
1052+exposed-modules: System.Cmd System.Process System.Process.Internals
1053+hidden-modules: System.Process.Common System.Process.Posix
1056+dynamic-library-dirs:
1058+hs-libraries: HSprocess-1.6.13.2
1060+includes: runProcess.h
1062+ base-4.14.3.0 deepseq-1.4.4.0 directory-1.3.6.0 filepath-1.4.2.1
1072+license: BSD-3-Clause
1073+maintainer: libraries@haskell.org
1074+homepage: https://wiki.haskell.org/Software_transactional_memory
1075+synopsis: Software Transactional Memory
1077+ Software Transactional Memory, or STM, is an abstraction for
1078+ concurrent communication. The main benefits of STM are
1079+ /composability/ and /modularity/. That is, using STM you can write
1080+ concurrent abstractions that can be easily composed with any other
1081+ abstraction built using STM, without exposing the details of how
1082+ your abstraction ensures safety. This is typically not the case
1083+ with other forms of concurrent communication, such as locks or
1085+category: Concurrency
1088+ Control.Concurrent.STM Control.Concurrent.STM.TArray
1089+ Control.Concurrent.STM.TBQueue Control.Concurrent.STM.TChan
1090+ Control.Concurrent.STM.TMVar Control.Concurrent.STM.TQueue
1091+ Control.Concurrent.STM.TSem Control.Concurrent.STM.TVar
1093+hidden-modules: Control.Sequential.STM
1096+dynamic-library-dirs:
1098+hs-libraries: HSstm-2.5.0.1
1099+depends: array-0.5.4.0 base-4.14.3.0
1103+name: template-haskell
1106+id: template-haskell-2.16.0.0
1107+key: template-haskell-2.16.0.0
1108+license: BSD-3-Clause
1109+maintainer: libraries@haskell.org
1110+synopsis: Support library for Template Haskell
1112+ This package provides modules containing facilities for manipulating
1113+ Haskell source code using Template Haskell.
1114+ See <http://www.haskell.org/haskellwiki/Template_Haskell> for more
1116+category: Template Haskell
1119+ Language.Haskell.TH Language.Haskell.TH.LanguageExtensions
1120+ Language.Haskell.TH.Lib Language.Haskell.TH.Lib.Internal
1121+ Language.Haskell.TH.Ppr Language.Haskell.TH.PprLib
1122+ Language.Haskell.TH.Quote Language.Haskell.TH.Syntax
1123+hidden-modules: Language.Haskell.TH.Lib.Map
1126+dynamic-library-dirs:
1128+hs-libraries: HStemplate-haskell-2.16.0.0
1130+ base-4.14.3.0 ghc-boot-th-8.10.6 ghc-prim-0.6.1 pretty-1.1.3.6
1139+license: BSD-2-Clause
1140+copyright: 2009-2011 Bryan O'Sullivan, 2008-2009 Tom Harper
1142+ Bryan O'Sullivan <bos@serpentine.com>, Herbert Valerio Riedel <hvr@gnu.org>
1143+author: Bryan O'Sullivan <bos@serpentine.com>
1144+homepage: https://github.com/haskell/text
1145+synopsis: An efficient packed Unicode text type.
1147+ An efficient packed, immutable Unicode text type (both strict and
1148+ lazy), with a powerful loop fusion optimization framework.
1149+ The 'Text' type represents Unicode character strings, in a time and
1150+ space-efficient manner. This package provides text processing
1151+ capabilities that are optimized for performance critical use, both
1152+ in terms of large data quantities and high speed.
1153+ The 'Text' type provides character-encoding, type-safe case
1154+ conversion via whole-string case conversion functions (see "Data.Text").
1155+ It also provides a range of functions for converting 'Text' values to
1156+ and from 'ByteStrings', using several standard encodings
1157+ (see "Data.Text.Encoding").
1158+ Efficient locale-sensitive support for text IO is also supported
1159+ (see "Data.Text.IO").
1160+ These modules are intended to be imported qualified, to avoid name
1161+ clashes with Prelude functions, e.g.
1162+ > import qualified Data.Text as T
1164+ To use an extended and very rich family of functions for working
1165+ with Unicode text (including normalization, regular expressions,
1166+ non-standard encodings, text breaking, and locales), see
1167+ the [text-icu package](https://hackage.haskell.org/package/text-icu)
1168+ based on the well-respected and liberally
1169+ licensed [ICU library](http://site.icu-project.org/).
1170+ == Internal Representation: UTF-16 vs. UTF-8
1171+ Currently the @text@ library uses UTF-16 as its internal representation
1172+ which is [neither a fixed-width nor always the most dense representation](http://utf8everywhere.org/)
1173+ for Unicode text. We're currently investigating the feasibility
1174+ of [changing Text's internal representation to UTF-8](https://github.com/text-utf8)
1175+ and if you need such a 'Text' type right now you might be interested in using the spin-off
1176+ packages <https://hackage.haskell.org/package/text-utf8 text-utf8> and
1177+ <https://hackage.haskell.org/package/text-short text-short>.
1178+category: Data, Text
1181+ Data.Text Data.Text.Array Data.Text.Encoding
1182+ Data.Text.Encoding.Error Data.Text.Foreign Data.Text.IO
1183+ Data.Text.Internal Data.Text.Internal.Builder
1184+ Data.Text.Internal.Builder.Functions
1185+ Data.Text.Internal.Builder.Int.Digits
1186+ Data.Text.Internal.Builder.RealFloat.Functions
1187+ Data.Text.Internal.ByteStringCompat
1188+ Data.Text.Internal.Encoding.Fusion
1189+ Data.Text.Internal.Encoding.Fusion.Common
1190+ Data.Text.Internal.Encoding.Utf16 Data.Text.Internal.Encoding.Utf32
1191+ Data.Text.Internal.Encoding.Utf8 Data.Text.Internal.Functions
1192+ Data.Text.Internal.Fusion Data.Text.Internal.Fusion.CaseMapping
1193+ Data.Text.Internal.Fusion.Common Data.Text.Internal.Fusion.Size
1194+ Data.Text.Internal.Fusion.Types Data.Text.Internal.IO
1195+ Data.Text.Internal.Lazy Data.Text.Internal.Lazy.Encoding.Fusion
1196+ Data.Text.Internal.Lazy.Fusion Data.Text.Internal.Lazy.Search
1197+ Data.Text.Internal.Private Data.Text.Internal.Read
1198+ Data.Text.Internal.Search Data.Text.Internal.Unsafe
1199+ Data.Text.Internal.Unsafe.Char Data.Text.Internal.Unsafe.Shift
1200+ Data.Text.Lazy Data.Text.Lazy.Builder Data.Text.Lazy.Builder.Int
1201+ Data.Text.Lazy.Builder.RealFloat Data.Text.Lazy.Encoding
1202+ Data.Text.Lazy.IO Data.Text.Lazy.Internal Data.Text.Lazy.Read
1203+ Data.Text.Read Data.Text.Unsafe
1204+hidden-modules: Data.Text.Show
1207+dynamic-library-dirs:
1209+hs-libraries: HStext-1.2.4.1
1211+ array-0.5.4.0 base-4.14.3.0 binary-0.8.8.0 bytestring-0.10.12.0
1212+ deepseq-1.4.4.0 ghc-prim-0.6.1 integer-gmp-1.0.3.0
1213+ template-haskell-2.16.0.0
1222+license: BSD-3-Clause
1223+maintainer: <ashley@semantic.org>
1224+author: Ashley Yakeley
1226+homepage: https://github.com/haskell/time
1227+synopsis: A time library
1228+description: Time, clocks and calendars
1232+ Data.Time Data.Time.Calendar Data.Time.Calendar.Easter
1233+ Data.Time.Calendar.Julian Data.Time.Calendar.MonthDay
1234+ Data.Time.Calendar.OrdinalDate Data.Time.Calendar.WeekDate
1235+ Data.Time.Clock Data.Time.Clock.POSIX Data.Time.Clock.System
1236+ Data.Time.Clock.TAI Data.Time.Format Data.Time.Format.ISO8601
1237+ Data.Time.Format.Internal Data.Time.LocalTime
1239+ Data.Format Data.Time.Calendar.Private Data.Time.Calendar.Days
1240+ Data.Time.Calendar.Gregorian Data.Time.Calendar.CalendarDiffDays
1241+ Data.Time.Calendar.Week Data.Time.Calendar.JulianYearDay
1242+ Data.Time.Clock.Internal.DiffTime
1243+ Data.Time.Clock.Internal.AbsoluteTime
1244+ Data.Time.Clock.Internal.NominalDiffTime
1245+ Data.Time.Clock.Internal.POSIXTime
1246+ Data.Time.Clock.Internal.UniversalTime
1247+ Data.Time.Clock.Internal.SystemTime
1248+ Data.Time.Clock.Internal.UTCTime Data.Time.Clock.Internal.CTimeval
1249+ Data.Time.Clock.Internal.CTimespec Data.Time.Clock.Internal.UTCDiff
1250+ Data.Time.LocalTime.Internal.TimeZone
1251+ Data.Time.LocalTime.Internal.TimeOfDay
1252+ Data.Time.LocalTime.Internal.CalendarDiffTime
1253+ Data.Time.LocalTime.Internal.LocalTime
1254+ Data.Time.LocalTime.Internal.ZonedTime Data.Time.Format.Parse
1255+ Data.Time.Format.Locale Data.Time.Format.Format.Class
1256+ Data.Time.Format.Format.Instances Data.Time.Format.Parse.Class
1257+ Data.Time.Format.Parse.Instances
1260+dynamic-library-dirs:
1262+hs-libraries: HStime-1.9.3
1264+depends: base-4.14.3.0 deepseq-1.4.4.0
1271+id: transformers-0.5.6.2
1272+key: transformers-0.5.6.2
1273+license: BSD-3-Clause
1274+maintainer: Ross Paterson <R.Paterson@city.ac.uk>
1275+author: Andy Gill, Ross Paterson
1276+synopsis: Concrete functor and monad transformers
1278+ A portable library of functor and monad transformers, inspired by
1280+ * \"Functional Programming with Overloading and Higher-Order
1281+ Polymorphism\", by Mark P Jones,
1282+ in /Advanced School of Functional Programming/, 1995
1283+ (<http://web.cecs.pdx.edu/~mpj/pubs/springschool.html>).
1284+ This package contains:
1285+ * the monad transformer class (in "Control.Monad.Trans.Class")
1286+ * concrete functor and monad transformers, each with associated
1287+ operations and functions to lift operations associated with other
1289+ The package can be used on its own in portable Haskell code, in
1290+ which case operations need to be manually lifted through transformer
1291+ stacks (see "Control.Monad.Trans.Class" for some examples).
1292+ Alternatively, it can be used with the non-portable monad classes in
1293+ the @mtl@ or @monads-tf@ packages, which automatically lift operations
1294+ introduced by monad transformers through other transformers.
1298+ Control.Applicative.Backwards Control.Applicative.Lift
1299+ Control.Monad.Signatures Control.Monad.Trans.Accum
1300+ Control.Monad.Trans.Class Control.Monad.Trans.Cont
1301+ Control.Monad.Trans.Error Control.Monad.Trans.Except
1302+ Control.Monad.Trans.Identity Control.Monad.Trans.List
1303+ Control.Monad.Trans.Maybe Control.Monad.Trans.RWS
1304+ Control.Monad.Trans.RWS.CPS Control.Monad.Trans.RWS.Lazy
1305+ Control.Monad.Trans.RWS.Strict Control.Monad.Trans.Reader
1306+ Control.Monad.Trans.Select Control.Monad.Trans.State
1307+ Control.Monad.Trans.State.Lazy Control.Monad.Trans.State.Strict
1308+ Control.Monad.Trans.Writer Control.Monad.Trans.Writer.CPS
1309+ Control.Monad.Trans.Writer.Lazy Control.Monad.Trans.Writer.Strict
1310+ Data.Functor.Constant Data.Functor.Reverse
1313+dynamic-library-dirs:
1315+hs-libraries: HStransformers-0.5.6.2
1316+depends: base-4.14.3.0
1325+license: BSD-3-Clause
1326+maintainer: libraries@haskell.org
1327+homepage: https://github.com/haskell/unix
1328+synopsis: POSIX functionality
1330+ This package gives you access to the set of operating system
1331+ services standardised by
1332+ <http://pubs.opengroup.org/onlinepubs/9699919799/ POSIX.1-2008>
1333+ (or the IEEE Portable Operating System Interface for Computing
1334+ Environments - IEEE Std. 1003.1).
1335+ The package is not supported under Windows.
1339+ System.Posix System.Posix.ByteString
1340+ System.Posix.ByteString.FilePath System.Posix.Directory
1341+ System.Posix.Directory.ByteString System.Posix.DynamicLinker
1342+ System.Posix.DynamicLinker.ByteString
1343+ System.Posix.DynamicLinker.Module
1344+ System.Posix.DynamicLinker.Module.ByteString
1345+ System.Posix.DynamicLinker.Prim System.Posix.Env
1346+ System.Posix.Env.ByteString System.Posix.Error System.Posix.Fcntl
1347+ System.Posix.Files System.Posix.Files.ByteString System.Posix.IO
1348+ System.Posix.IO.ByteString System.Posix.Process
1349+ System.Posix.Process.ByteString System.Posix.Process.Internals
1350+ System.Posix.Resource System.Posix.Semaphore System.Posix.SharedMem
1351+ System.Posix.Signals System.Posix.Signals.Exts System.Posix.Temp
1352+ System.Posix.Temp.ByteString System.Posix.Terminal
1353+ System.Posix.Terminal.ByteString System.Posix.Time
1354+ System.Posix.Unistd System.Posix.User
1356+ System.Posix.Directory.Common System.Posix.DynamicLinker.Common
1357+ System.Posix.Files.Common System.Posix.IO.Common
1358+ System.Posix.Process.Common System.Posix.Terminal.Common
1361+dynamic-library-dirs:
1363+hs-libraries: HSunix-2.7.2.2
1364+extra-libraries: rt util dl pthread
1366+includes: HsUnix.h execvpe.h
1367+depends: base-4.14.3.0 bytestring-0.10.12.0 time-1.9.3
1376+license: BSD-3-Clause
1377+maintainer: glasgow-haskell-users@haskell.org
1381+extra-libraries: m rt dl ffi numa pthread
1385+ "-Wl,-u,base_GHCziTopHandler_runIO_closure"
1386+ "-Wl,-u,base_GHCziTopHandler_runNonIO_closure"
1387+ "-Wl,-u,ghczmprim_GHCziTuple_Z0T_closure"
1388+ "-Wl,-u,ghczmprim_GHCziTypes_True_closure"
1389+ "-Wl,-u,ghczmprim_GHCziTypes_False_closure"
1390+ "-Wl,-u,base_GHCziPack_unpackCString_closure"
1391+ "-Wl,-u,base_GHCziWeak_runFinalizzerBatch_closure"
1392+ "-Wl,-u,base_GHCziIOziException_stackOverflow_closure"
1393+ "-Wl,-u,base_GHCziIOziException_heapOverflow_closure"
1394+ "-Wl,-u,base_GHCziIOziException_allocationLimitExceeded_closure"
1395+ "-Wl,-u,base_GHCziIOziException_blockedIndefinitelyOnMVar_closure"
1396+ "-Wl,-u,base_GHCziIOziException_blockedIndefinitelyOnSTM_closure"
1397+ "-Wl,-u,base_GHCziIOziException_cannotCompactFunction_closure"
1398+ "-Wl,-u,base_GHCziIOziException_cannotCompactPinned_closure"
1399+ "-Wl,-u,base_GHCziIOziException_cannotCompactMutable_closure"
1400+ "-Wl,-u,base_ControlziExceptionziBase_absentSumFieldError_closure"
1401+ "-Wl,-u,base_ControlziExceptionziBase_nonTermination_closure"
1402+ "-Wl,-u,base_ControlziExceptionziBase_nestedAtomically_closure"
1403+ "-Wl,-u,base_GHCziEventziThread_blockedOnBadFD_closure"
1404+ "-Wl,-u,base_GHCziConcziSync_runSparks_closure"
1405+ "-Wl,-u,base_GHCziConcziIO_ensureIOManagerIsRunning_closure"
1406+ "-Wl,-u,base_GHCziConcziIO_ioManagerCapabilitiesChanged_closure"
1407+ "-Wl,-u,base_GHCziConcziSignal_runHandlersPtr_closure"
1408+ "-Wl,-u,base_GHCziTopHandler_flushStdHandles_closure"
1409+ "-Wl,-u,base_GHCziTopHandler_runMainIO_closure"
1410+ "-Wl,-u,ghczmprim_GHCziTypes_Czh_con_info"
1411+ "-Wl,-u,ghczmprim_GHCziTypes_Izh_con_info"
1412+ "-Wl,-u,ghczmprim_GHCziTypes_Fzh_con_info"
1413+ "-Wl,-u,ghczmprim_GHCziTypes_Dzh_con_info"
1414+ "-Wl,-u,ghczmprim_GHCziTypes_Wzh_con_info"
1415+ "-Wl,-u,base_GHCziPtr_Ptr_con_info"
1416+ "-Wl,-u,base_GHCziPtr_FunPtr_con_info"
1417+ "-Wl,-u,base_GHCziInt_I8zh_con_info"
1418+ "-Wl,-u,base_GHCziInt_I16zh_con_info"
1419+ "-Wl,-u,base_GHCziInt_I32zh_con_info"
1420+ "-Wl,-u,base_GHCziInt_I64zh_con_info"
1421+ "-Wl,-u,base_GHCziWord_W8zh_con_info"
1422+ "-Wl,-u,base_GHCziWord_W16zh_con_info"
1423+ "-Wl,-u,base_GHCziWord_W32zh_con_info"
1424+ "-Wl,-u,base_GHCziWord_W64zh_con_info"
1425+ "-Wl,-u,base_GHCziStable_StablePtr_con_info"
1426+ "-Wl,-u,hs_atomic_add8" "-Wl,-u,hs_atomic_add16"
1427+ "-Wl,-u,hs_atomic_add32" "-Wl,-u,hs_atomic_add64"
1428+ "-Wl,-u,hs_atomic_sub8" "-Wl,-u,hs_atomic_sub16"
1429+ "-Wl,-u,hs_atomic_sub32" "-Wl,-u,hs_atomic_sub64"
1430+ "-Wl,-u,hs_atomic_and8" "-Wl,-u,hs_atomic_and16"
1431+ "-Wl,-u,hs_atomic_and32" "-Wl,-u,hs_atomic_and64"
1432+ "-Wl,-u,hs_atomic_nand8" "-Wl,-u,hs_atomic_nand16"
1433+ "-Wl,-u,hs_atomic_nand32" "-Wl,-u,hs_atomic_nand64"
1434+ "-Wl,-u,hs_atomic_or8" "-Wl,-u,hs_atomic_or16"
1435+ "-Wl,-u,hs_atomic_or32" "-Wl,-u,hs_atomic_or64"
1436+ "-Wl,-u,hs_atomic_xor8" "-Wl,-u,hs_atomic_xor16"
1437+ "-Wl,-u,hs_atomic_xor32" "-Wl,-u,hs_atomic_xor64"
1438+ "-Wl,-u,hs_cmpxchg8" "-Wl,-u,hs_cmpxchg16" "-Wl,-u,hs_cmpxchg32"
1439+ "-Wl,-u,hs_cmpxchg64" "-Wl,-u,hs_atomicread8"
1440+ "-Wl,-u,hs_atomicread16" "-Wl,-u,hs_atomicread32"
1441+ "-Wl,-u,hs_atomicread64" "-Wl,-u,hs_atomicwrite8"
1442+ "-Wl,-u,hs_atomicwrite16" "-Wl,-u,hs_atomicwrite32"
1443+ "-Wl,-u,hs_atomicwrite64"
materialized/dummy-ghc/aarch64-unknown-linux-gnu-aarch64-unknown-linux-gnu-ghc-8.10.6-x86_64-linux/ghc-pkg/versionnew file+1
@@ -0,0 +1 @@
1+GHC package manager version 8.10.6
materialized/dummy-ghc/aarch64-unknown-linux-gnu-aarch64-unknown-linux-gnu-ghc-8.10.6-x86_64-linux/ghc/infonew file+67
@@ -0,0 +1,67 @@
1+ [("Project name","The Glorious Glasgow Haskell Compilation System")
2+ ,("GCC extra via C opts","")
3+ ,("C compiler flags","")
4+ ,("C++ compiler flags","")
5+ ,("C compiler link flags","-Wl,-z,noexecstack")
6+ ,("C compiler supports -no-pie","YES")
7+ ,("Haskell CPP flags","-E -undef -traditional")
8+ ,("ld flags","-z noexecstack")
9+ ,("ld supports compact unwind","YES")
10+ ,("ld supports build-id","YES")
11+ ,("ld supports filelist","NO")
12+ ,("ld is GNU ld","YES")
13+ ,("Merge objects flags","-r")
15+ ,("ar supports at file","YES")
16+ ,("otool command","otool")
17+ ,("install_name_tool command","install_name_tool")
18+ ,("touch command","touch")
19+ ,("dllwrap command","/bin/false")
20+ ,("windres command","/bin/false")
21+ ,("libtool command","libtool")
22+ ,("cross compiling","YES")
23+ ,("target platform string","aarch64-unknown-linux")
24+ ,("target os","OSLinux")
25+ ,("target arch","ArchAArch64")
26+ ,("target word size","8")
27+ ,("target has GNU nonexec stack","YES")
28+ ,("target has .ident directive","YES")
29+ ,("target has subsections via symbols","NO")
30+ ,("target has RTS linker","YES")
31+ ,("Unregisterised","NO")
32+ ,("LLVM target","aarch64-unknown-linux")
33+ ,("LLVM clang command","clang")
34+ ,("integer library","integer-gmp")
35+ ,("Use interpreter","YES")
36+ ,("Use native code generator","NO")
37+ ,("Support SMP","YES")
38+ ,("RTS ways","l debug thr thr_debug thr_l thr_p thr_debug_p debug_p")
39+ ,("Tables next to code","YES")
40+ ,("Leading underscore","NO")
41+ ,("Use LibFFI","YES")
42+ ,("Use Threads","YES")
43+ ,("Use Debugging","NO")
44+ ,("RTS expects libdw","NO")
45+ ,("Project version","8.10.6")
46+ ,("Project Git commit id","f7b3359be12030d762b299681e1aeef0292417ce")
47+ ,("Booter version","8.8.4")
49+ ,("Build platform","x86_64-unknown-linux")
50+ ,("Host platform","x86_64-unknown-linux")
51+ ,("Target platform","aarch64-unknown-linux")
52+ ,("Have interpreter","YES")
53+ ,("Object splitting supported","NO")
54+ ,("Have native code generator","NO")
55+ ,("Support dynamic-too","YES")
56+ ,("Support parallel --make","YES")
57+ ,("Support reexported-modules","YES")
58+ ,("Support thinning and renaming package flags","YES")
59+ ,("Support Backpack","YES")
60+ ,("Requires unified installed package IDs","YES")
61+ ,("Uses package keys","YES")
62+ ,("Uses unit IDs","YES")
63+ ,("Dynamic by default","NO")
64+ ,("GHC Dynamic","NO")
65+ ,("GHC Profiled","NO")
materialized/dummy-ghc/aarch64-unknown-linux-gnu-aarch64-unknown-linux-gnu-ghc-8.10.6-x86_64-linux/ghc/numeric-versionnew file+1
materialized/dummy-ghc/aarch64-unknown-linux-gnu-aarch64-unknown-linux-gnu-ghc-8.10.6-x86_64-linux/ghc/supported-languagesnew file+255
@@ -0,0 +1,255 @@
9+NoAlternativeLayoutRule
10+AlternativeLayoutRuleTransitional
11+NoAlternativeLayoutRuleTransitional
26+ConstrainedClassMethods
27+NoConstrainedClassMethods
54+DisambiguateRecordFields
55+NoDisambiguateRecordFields
63+NoDuplicateRecordFields
70+ExistentialQuantification
71+NoExistentialQuantification
77+NoExtendedDefaultRules
82+ForeignFunctionInterface
83+NoForeignFunctionInterface
84+FunctionalDependencies
85+NoFunctionalDependencies
91+NoGHCForeignImportPrim
92+GeneralizedNewtypeDeriving
93+NoGeneralizedNewtypeDeriving
94+GeneralisedNewtypeDeriving
95+NoGeneralisedNewtypeDeriving
101+NoImportQualifiedPost
105+NoIncoherentInstances
106+TypeFamilyDependencies
107+NoTypeFamilyDependencies
121+NoLiberalTypeSynonyms
125+NoMonadComprehensions
127+NoMonadFailDesugaring
132+MonomorphismRestriction
133+NoMonomorphismRestriction
134+MultiParamTypeClasses
135+NoMultiParamTypeClasses
150+NondecreasingIndentation
151+NoNondecreasingIndentation
157+NoOverlappingInstances
170+PartialTypeSignatures
171+NoPartialTypeSignatures
180+PolymorphicComponents
181+NoPolymorphicComponents
182+QuantifiedConstraints
183+NoQuantifiedConstraints
207+NoScopedTypeVariables
220+TemplateHaskellQuotes
221+NoTemplateHaskellQuotes
222+StandaloneKindSignatures
223+NoStandaloneKindSignatures
224+TraditionalRecordSyntax
225+NoTraditionalRecordSyntax
239+NoTypeSynonymInstances
245+NoUndecidableInstances
246+UndecidableSuperClasses
247+NoUndecidableSuperClasses
materialized/dummy-ghc/aarch64-unknown-linux-gnu-aarch64-unknown-linux-gnu-ghc-8.10.6-x86_64-linux/ghc/versionnew file+1
@@ -0,0 +1 @@
1+The Glorious Glasgow Haskell Compilation System, version 8.10.6
materialized/dummy-ghc/aarch64-unknown-linux-gnu-aarch64-unknown-linux-gnu-ghc-8.10.7-x86_64-linux/ghc-pkg/dump-globalnew file+1443
@@ -0,0 +1,1443 @@
7+copyright: 2003-2020, Cabal Development Team (see AUTHORS file)
8+maintainer: cabal-devel@haskell.org
9+author: Cabal Development Team <cabal-devel@haskell.org>
10+homepage: http://www.haskell.org/cabal/
11+synopsis: A framework for packaging Haskell software
13+ The Haskell Common Architecture for Building Applications and
14+ Libraries: a framework defining a common interface for authors to more
15+ easily build their Haskell applications in a portable way.
16+ The Haskell Cabal is part of a larger infrastructure for distributing,
17+ organizing, and cataloging Haskell libraries and tools.
18+category: Distribution
21+ Distribution.Backpack Distribution.Backpack.ComponentsGraph
22+ Distribution.Backpack.Configure
23+ Distribution.Backpack.ConfiguredComponent
24+ Distribution.Backpack.DescribeUnitId
25+ Distribution.Backpack.FullUnitId
26+ Distribution.Backpack.LinkedComponent
27+ Distribution.Backpack.ModSubst Distribution.Backpack.ModuleShape
28+ Distribution.Backpack.PreModuleShape Distribution.CabalSpecVersion
29+ Distribution.Compat.Binary Distribution.Compat.CharParsing
30+ Distribution.Compat.CreatePipe Distribution.Compat.DList
31+ Distribution.Compat.Directory Distribution.Compat.Environment
32+ Distribution.Compat.Exception Distribution.Compat.FilePath
33+ Distribution.Compat.Graph Distribution.Compat.Internal.TempFile
34+ Distribution.Compat.Lens Distribution.Compat.Newtype
35+ Distribution.Compat.Parsing Distribution.Compat.Prelude.Internal
36+ Distribution.Compat.Process Distribution.Compat.ResponseFile
37+ Distribution.Compat.Semigroup Distribution.Compat.Stack
38+ Distribution.Compat.Time Distribution.Compat.Typeable
39+ Distribution.Compiler Distribution.FieldGrammar
40+ Distribution.FieldGrammar.Class
41+ Distribution.FieldGrammar.FieldDescrs
42+ Distribution.FieldGrammar.Parsec Distribution.FieldGrammar.Pretty
43+ Distribution.Fields Distribution.Fields.ConfVar
44+ Distribution.Fields.Field Distribution.Fields.Lexer
45+ Distribution.Fields.LexerMonad Distribution.Fields.ParseResult
46+ Distribution.Fields.Parser Distribution.Fields.Pretty
47+ Distribution.InstalledPackageInfo Distribution.License
48+ Distribution.Make Distribution.ModuleName Distribution.Package
49+ Distribution.PackageDescription
50+ Distribution.PackageDescription.Check
51+ Distribution.PackageDescription.Configuration
52+ Distribution.PackageDescription.FieldGrammar
53+ Distribution.PackageDescription.Parsec
54+ Distribution.PackageDescription.PrettyPrint
55+ Distribution.PackageDescription.Quirks
56+ Distribution.PackageDescription.Utils Distribution.Parsec
57+ Distribution.Parsec.Error Distribution.Parsec.FieldLineStream
58+ Distribution.Parsec.Newtypes Distribution.Parsec.Position
59+ Distribution.Parsec.Warning Distribution.Pretty Distribution.ReadE
60+ Distribution.SPDX Distribution.SPDX.License
61+ Distribution.SPDX.LicenseExceptionId
62+ Distribution.SPDX.LicenseExpression Distribution.SPDX.LicenseId
63+ Distribution.SPDX.LicenseListVersion
64+ Distribution.SPDX.LicenseReference Distribution.Simple
65+ Distribution.Simple.Bench Distribution.Simple.Build
66+ Distribution.Simple.Build.Macros
67+ Distribution.Simple.Build.PathsModule
68+ Distribution.Simple.BuildPaths Distribution.Simple.BuildTarget
69+ Distribution.Simple.BuildToolDepends Distribution.Simple.CCompiler
70+ Distribution.Simple.Command Distribution.Simple.Compiler
71+ Distribution.Simple.Configure Distribution.Simple.Doctest
72+ Distribution.Simple.Flag Distribution.Simple.GHC
73+ Distribution.Simple.GHCJS Distribution.Simple.Glob
74+ Distribution.Simple.Haddock Distribution.Simple.HaskellSuite
75+ Distribution.Simple.Hpc Distribution.Simple.Install
76+ Distribution.Simple.InstallDirs
77+ Distribution.Simple.InstallDirs.Internal
78+ Distribution.Simple.LocalBuildInfo Distribution.Simple.PackageIndex
79+ Distribution.Simple.PreProcess Distribution.Simple.PreProcess.Unlit
80+ Distribution.Simple.Program Distribution.Simple.Program.Ar
81+ Distribution.Simple.Program.Builtin Distribution.Simple.Program.Db
82+ Distribution.Simple.Program.Find Distribution.Simple.Program.GHC
83+ Distribution.Simple.Program.HcPkg Distribution.Simple.Program.Hpc
84+ Distribution.Simple.Program.Internal Distribution.Simple.Program.Ld
85+ Distribution.Simple.Program.ResponseFile
86+ Distribution.Simple.Program.Run Distribution.Simple.Program.Script
87+ Distribution.Simple.Program.Strip Distribution.Simple.Program.Types
88+ Distribution.Simple.Register Distribution.Simple.Setup
89+ Distribution.Simple.ShowBuildInfo Distribution.Simple.SrcDist
90+ Distribution.Simple.Test Distribution.Simple.Test.ExeV10
91+ Distribution.Simple.Test.LibV09 Distribution.Simple.Test.Log
92+ Distribution.Simple.UHC Distribution.Simple.UserHooks
93+ Distribution.Simple.Utils Distribution.System
94+ Distribution.TestSuite Distribution.Text
95+ Distribution.Types.AbiDependency Distribution.Types.AbiHash
96+ Distribution.Types.AnnotatedId Distribution.Types.Benchmark
97+ Distribution.Types.Benchmark.Lens
98+ Distribution.Types.BenchmarkInterface
99+ Distribution.Types.BenchmarkType Distribution.Types.BuildInfo
100+ Distribution.Types.BuildInfo.Lens Distribution.Types.BuildType
101+ Distribution.Types.Component Distribution.Types.ComponentId
102+ Distribution.Types.ComponentInclude
103+ Distribution.Types.ComponentLocalBuildInfo
104+ Distribution.Types.ComponentName
105+ Distribution.Types.ComponentRequestedSpec
106+ Distribution.Types.CondTree Distribution.Types.Condition
107+ Distribution.Types.ConfVar Distribution.Types.Dependency
108+ Distribution.Types.DependencyMap Distribution.Types.ExeDependency
109+ Distribution.Types.Executable Distribution.Types.Executable.Lens
110+ Distribution.Types.ExecutableScope Distribution.Types.ExposedModule
111+ Distribution.Types.Flag Distribution.Types.ForeignLib
112+ Distribution.Types.ForeignLib.Lens
113+ Distribution.Types.ForeignLibOption
114+ Distribution.Types.ForeignLibType
115+ Distribution.Types.GenericPackageDescription
116+ Distribution.Types.GenericPackageDescription.Lens
117+ Distribution.Types.GivenComponent
118+ Distribution.Types.HookedBuildInfo
119+ Distribution.Types.IncludeRenaming
120+ Distribution.Types.InstalledPackageInfo
121+ Distribution.Types.InstalledPackageInfo.FieldGrammar
122+ Distribution.Types.InstalledPackageInfo.Lens
123+ Distribution.Types.LegacyExeDependency Distribution.Types.Lens
124+ Distribution.Types.Library Distribution.Types.Library.Lens
125+ Distribution.Types.LibraryName Distribution.Types.LibraryVisibility
126+ Distribution.Types.LocalBuildInfo Distribution.Types.Mixin
127+ Distribution.Types.Module Distribution.Types.ModuleReexport
128+ Distribution.Types.ModuleRenaming
129+ Distribution.Types.MungedPackageId
130+ Distribution.Types.MungedPackageName
131+ Distribution.Types.PackageDescription
132+ Distribution.Types.PackageDescription.Lens
133+ Distribution.Types.PackageId Distribution.Types.PackageId.Lens
134+ Distribution.Types.PackageName Distribution.Types.PackageName.Magic
135+ Distribution.Types.PackageVersionConstraint
136+ Distribution.Types.PkgconfigDependency
137+ Distribution.Types.PkgconfigName
138+ Distribution.Types.PkgconfigVersion
139+ Distribution.Types.PkgconfigVersionRange
140+ Distribution.Types.SetupBuildInfo
141+ Distribution.Types.SetupBuildInfo.Lens
142+ Distribution.Types.SourceRepo Distribution.Types.SourceRepo.Lens
143+ Distribution.Types.TargetInfo Distribution.Types.TestSuite
144+ Distribution.Types.TestSuite.Lens
145+ Distribution.Types.TestSuiteInterface Distribution.Types.TestType
146+ Distribution.Types.UnitId Distribution.Types.UnqualComponentName
147+ Distribution.Types.Version Distribution.Types.VersionInterval
148+ Distribution.Types.VersionRange
149+ Distribution.Types.VersionRange.Internal Distribution.Utils.Generic
150+ Distribution.Utils.IOData Distribution.Utils.LogProgress
151+ Distribution.Utils.MD5 Distribution.Utils.MapAccum
152+ Distribution.Utils.NubList Distribution.Utils.Progress
153+ Distribution.Utils.ShortText Distribution.Utils.Structured
154+ Distribution.Verbosity Distribution.Verbosity.Internal
155+ Distribution.Version Language.Haskell.Extension
157+ Distribution.Backpack.PreExistingComponent
158+ Distribution.Backpack.ReadyComponent Distribution.Backpack.MixLink
159+ Distribution.Backpack.ModuleScope Distribution.Backpack.UnifyM
160+ Distribution.Backpack.Id Distribution.Utils.UnionFind
161+ Distribution.Utils.Base62 Distribution.Compat.Async
162+ Distribution.Compat.CopyFile Distribution.Compat.GetShortPathName
163+ Distribution.Compat.MonadFail Distribution.Compat.Prelude
164+ Distribution.Compat.SnocList Distribution.GetOpt Distribution.Lex
165+ Distribution.Utils.String Distribution.Simple.GHC.EnvironmentParser
166+ Distribution.Simple.GHC.Internal Distribution.Simple.GHC.ImplInfo
167+ Distribution.Simple.Utils.Json Paths_Cabal
170+dynamic-library-dirs:
172+hs-libraries: HSCabal-3.2.1.0
174+ array-0.5.4.0 base-4.14.3.0 binary-0.8.8.0 bytestring-0.10.12.0
175+ containers-0.6.5.1 deepseq-1.4.4.0 directory-1.3.6.0
176+ filepath-1.4.2.1 mtl-2.2.2 parsec-3.1.14.0 pretty-1.1.3.6
177+ process-1.6.13.2 text-1.2.4.1 time-1.9.3 transformers-0.5.6.2
187+license: BSD-3-Clause
188+maintainer: libraries@haskell.org
189+synopsis: Mutable and immutable arrays
191+ In addition to providing the "Data.Array" module
192+ <http://www.haskell.org/onlinereport/haskell2010/haskellch14.html as specified in the Haskell 2010 Language Report>,
193+ this package also defines the classes 'IArray' of
194+ immutable arrays and 'MArray' of arrays mutable within appropriate
195+ monads, as well as some instances of these classes.
196+category: Data Structures
199+ Data.Array Data.Array.Base Data.Array.IArray Data.Array.IO
200+ Data.Array.IO.Internals Data.Array.IO.Safe Data.Array.MArray
201+ Data.Array.MArray.Safe Data.Array.ST Data.Array.ST.Safe
202+ Data.Array.Storable Data.Array.Storable.Internals
203+ Data.Array.Storable.Safe Data.Array.Unboxed Data.Array.Unsafe
206+dynamic-library-dirs:
208+hs-libraries: HSarray-0.5.4.0
209+depends: base-4.14.3.0
218+license: BSD-3-Clause
219+maintainer: libraries@haskell.org
220+synopsis: Basic libraries
222+ This package contains the Standard Haskell "Prelude" and its support libraries,
223+ and a large collection of useful libraries ranging from data
224+ structures to parsing combinators and debugging utilities.
228+ Control.Applicative Control.Arrow Control.Category
229+ Control.Concurrent Control.Concurrent.Chan Control.Concurrent.MVar
230+ Control.Concurrent.QSem Control.Concurrent.QSemN Control.Exception
231+ Control.Exception.Base Control.Monad Control.Monad.Fail
232+ Control.Monad.Fix Control.Monad.IO.Class Control.Monad.Instances
233+ Control.Monad.ST Control.Monad.ST.Lazy Control.Monad.ST.Lazy.Safe
234+ Control.Monad.ST.Lazy.Unsafe Control.Monad.ST.Safe
235+ Control.Monad.ST.Strict Control.Monad.ST.Unsafe Control.Monad.Zip
236+ Data.Bifoldable Data.Bifunctor Data.Bitraversable Data.Bits
237+ Data.Bool Data.Char Data.Coerce Data.Complex Data.Data Data.Dynamic
238+ Data.Either Data.Eq Data.Fixed Data.Foldable Data.Function
239+ Data.Functor Data.Functor.Classes Data.Functor.Compose
240+ Data.Functor.Const Data.Functor.Contravariant Data.Functor.Identity
241+ Data.Functor.Product Data.Functor.Sum Data.IORef Data.Int Data.Ix
242+ Data.Kind Data.List Data.List.NonEmpty Data.Maybe Data.Monoid
243+ Data.Ord Data.Proxy Data.Ratio Data.STRef Data.STRef.Lazy
244+ Data.STRef.Strict Data.Semigroup Data.String Data.Traversable
245+ Data.Tuple Data.Type.Bool Data.Type.Coercion Data.Type.Equality
246+ Data.Typeable Data.Unique Data.Version Data.Void Data.Word
247+ Debug.Trace Foreign Foreign.C Foreign.C.Error Foreign.C.String
248+ Foreign.C.Types Foreign.Concurrent Foreign.ForeignPtr
249+ Foreign.ForeignPtr.Safe Foreign.ForeignPtr.Unsafe Foreign.Marshal
250+ Foreign.Marshal.Alloc Foreign.Marshal.Array Foreign.Marshal.Error
251+ Foreign.Marshal.Pool Foreign.Marshal.Safe Foreign.Marshal.Unsafe
252+ Foreign.Marshal.Utils Foreign.Ptr Foreign.Safe Foreign.StablePtr
253+ Foreign.Storable GHC.Arr GHC.Base GHC.ByteOrder GHC.Char GHC.Clock
254+ GHC.Conc GHC.Conc.IO GHC.Conc.Signal GHC.Conc.Sync
255+ GHC.ConsoleHandler GHC.Constants GHC.Desugar GHC.Enum
256+ GHC.Environment GHC.Err GHC.Event GHC.Exception GHC.Exception.Type
257+ GHC.ExecutionStack GHC.ExecutionStack.Internal GHC.Exts
258+ GHC.Fingerprint GHC.Fingerprint.Type GHC.Float
259+ GHC.Float.ConversionUtils GHC.Float.RealFracMethods GHC.Foreign
260+ GHC.ForeignPtr GHC.GHCi GHC.GHCi.Helpers GHC.Generics GHC.IO
261+ GHC.IO.Buffer GHC.IO.BufferedIO GHC.IO.Device GHC.IO.Encoding
262+ GHC.IO.Encoding.CodePage GHC.IO.Encoding.Failure
263+ GHC.IO.Encoding.Iconv GHC.IO.Encoding.Latin1 GHC.IO.Encoding.Types
264+ GHC.IO.Encoding.UTF16 GHC.IO.Encoding.UTF32 GHC.IO.Encoding.UTF8
265+ GHC.IO.Exception GHC.IO.FD GHC.IO.Handle GHC.IO.Handle.FD
266+ GHC.IO.Handle.Internals GHC.IO.Handle.Lock GHC.IO.Handle.Text
267+ GHC.IO.Handle.Types GHC.IO.IOMode GHC.IO.Unsafe GHC.IOArray
268+ GHC.IORef GHC.Int GHC.Ix GHC.List GHC.MVar GHC.Maybe GHC.Natural
269+ GHC.Num GHC.OldList GHC.OverloadedLabels GHC.Pack GHC.Profiling
270+ GHC.Ptr GHC.RTS.Flags GHC.Read GHC.Real GHC.Records
271+ GHC.ResponseFile GHC.ST GHC.STRef GHC.Show GHC.Stable
272+ GHC.StableName GHC.Stack GHC.Stack.CCS GHC.Stack.Types
273+ GHC.StaticPtr GHC.Stats GHC.Storable GHC.TopHandler GHC.TypeLits
274+ GHC.TypeNats GHC.Unicode GHC.Weak GHC.Word Numeric Numeric.Natural
275+ Prelude System.CPUTime System.Console.GetOpt System.Environment
276+ System.Environment.Blank System.Exit System.IO System.IO.Error
277+ System.IO.Unsafe System.Info System.Mem System.Mem.StableName
278+ System.Mem.Weak System.Posix.Internals System.Posix.Types
279+ System.Timeout Text.ParserCombinators.ReadP
280+ Text.ParserCombinators.ReadPrec Text.Printf Text.Read Text.Read.Lex
281+ Text.Show Text.Show.Functions Type.Reflection
282+ Type.Reflection.Unsafe Unsafe.Coerce
284+ Control.Monad.ST.Imp Control.Monad.ST.Lazy.Imp Data.Functor.Utils
285+ Data.OldList Data.Semigroup.Internal Data.Typeable.Internal
286+ Foreign.ForeignPtr.Imp GHC.IO.Handle.Lock.Common
287+ GHC.IO.Handle.Lock.Flock GHC.IO.Handle.Lock.LinuxOFD
288+ GHC.IO.Handle.Lock.NoOp GHC.IO.Handle.Lock.Windows
289+ GHC.StaticPtr.Internal System.Environment.ExecutablePath
290+ System.CPUTime.Utils GHC.Event.Arr GHC.Event.Array
291+ GHC.Event.Control GHC.Event.EPoll GHC.Event.IntTable
292+ GHC.Event.Internal GHC.Event.KQueue GHC.Event.Manager GHC.Event.PSQ
293+ GHC.Event.Poll GHC.Event.Thread GHC.Event.TimerManager
294+ GHC.Event.Unique System.CPUTime.Posix.ClockGetTime
295+ System.CPUTime.Posix.Times System.CPUTime.Posix.RUsage
296+ System.CPUTime.Unsupported
299+dynamic-library-dirs:
301+hs-libraries: HSbase-4.14.3.0
304+depends: ghc-prim-0.6.1 integer-gmp-1.0.3.0 rts
313+license: BSD-3-Clause
314+maintainer: Lennart Kolmodin, Don Stewart <dons00@gmail.com>
315+author: Lennart Kolmodin <kolmodin@gmail.com>
316+stability: provisional
317+homepage: https://github.com/kolmodin/binary
319+ Binary serialisation for Haskell values using lazy ByteStrings
321+ Efficient, pure binary serialisation using lazy ByteStrings.
322+ Haskell values may be encoded to and from binary formats,
323+ written to disk as binary, or sent over the network.
324+ The format used can be automatically generated, or
325+ you can choose to implement a custom format if needed.
326+ Serialisation speeds of over 1 G\/sec have been observed,
327+ so this library should be suitable for high performance
329+category: Data, Parsing
332+ Data.Binary Data.Binary.Builder Data.Binary.Get
333+ Data.Binary.Get.Internal Data.Binary.Put
335+ Data.Binary.Class Data.Binary.Internal Data.Binary.Generic
336+ Data.Binary.FloatCast
339+dynamic-library-dirs:
341+hs-libraries: HSbinary-0.8.8.0
343+ array-0.5.4.0 base-4.14.3.0 bytestring-0.10.12.0 containers-0.6.5.1
350+id: bytestring-0.10.12.0
351+key: bytestring-0.10.12.0
352+license: BSD-3-Clause
354+ Copyright (c) Don Stewart 2005-2009,
355+ (c) Duncan Coutts 2006-2015,
356+ (c) David Roundy 2003-2005,
357+ (c) Jasper Van der Jeugt 2010,
358+ (c) Simon Meier 2010-2013.
359+maintainer: Duncan Coutts <duncan@community.haskell.org>
363+homepage: https://github.com/haskell/bytestring
365+ Fast, compact, strict and lazy byte strings with a list interface
367+ An efficient compact, immutable byte string type (both strict and lazy)
368+ suitable for binary or 8-bit character data.
369+ The 'ByteString' type represents sequences of bytes or 8-bit characters.
370+ It is suitable for high performance use, both in terms of large data
371+ quantities, or high speed requirements. The 'ByteString' functions follow
372+ the same style as Haskell\'s ordinary lists, so it is easy to convert code
373+ from using 'String' to 'ByteString'.
374+ Two 'ByteString' variants are provided:
375+ * Strict 'ByteString's keep the string as a single large array. This
376+ makes them convenient for passing data between C and Haskell.
377+ * Lazy 'ByteString's use a lazy list of strict chunks which makes it
378+ suitable for I\/O streaming tasks.
379+ The @Char8@ modules provide a character-based view of the same
380+ underlying 'ByteString' types. This makes it convenient to handle mixed
381+ binary and 8-bit character content (which is common in many file formats
382+ and network protocols).
383+ The 'Builder' module provides an efficient way to build up 'ByteString's
384+ in an ad-hoc way by repeated concatenation. This is ideal for fast
385+ serialisation or pretty printing.
386+ There is also a 'ShortByteString' type which has a lower memory overhead
387+ and can can be converted to or from a 'ByteString', but supports very few
388+ other operations. It is suitable for keeping many short strings in memory.
389+ 'ByteString's are not designed for Unicode. For Unicode strings you should
390+ use the 'Text' type from the @text@ package.
391+ These modules are intended to be imported qualified, to avoid name clashes
392+ with "Prelude" functions, e.g.
393+ > import qualified Data.ByteString as BS
397+ Data.ByteString Data.ByteString.Builder
398+ Data.ByteString.Builder.Extra Data.ByteString.Builder.Internal
399+ Data.ByteString.Builder.Prim Data.ByteString.Builder.Prim.Internal
400+ Data.ByteString.Char8 Data.ByteString.Internal Data.ByteString.Lazy
401+ Data.ByteString.Lazy.Builder Data.ByteString.Lazy.Builder.ASCII
402+ Data.ByteString.Lazy.Builder.Extras Data.ByteString.Lazy.Char8
403+ Data.ByteString.Lazy.Internal Data.ByteString.Short
404+ Data.ByteString.Short.Internal Data.ByteString.Unsafe
406+ Data.ByteString.Builder.ASCII Data.ByteString.Builder.Prim.Binary
407+ Data.ByteString.Builder.Prim.ASCII
408+ Data.ByteString.Builder.Prim.Internal.Floating
409+ Data.ByteString.Builder.Prim.Internal.UncheckedShifts
410+ Data.ByteString.Builder.Prim.Internal.Base16
413+dynamic-library-dirs:
415+hs-libraries: HSbytestring-0.10.12.0
419+ base-4.14.3.0 deepseq-1.4.4.0 ghc-prim-0.6.1 integer-gmp-1.0.3.0
426+id: containers-0.6.5.1
427+key: containers-0.6.5.1
428+license: BSD-3-Clause
429+maintainer: libraries@haskell.org
430+synopsis: Assorted concrete container types
432+ This package contains efficient general-purpose implementations
433+ of various immutable container types including sets, maps, sequences,
435+ For a walkthrough of what this package provides with examples of common
436+ operations see the [containers
437+ introduction](https://haskell-containers.readthedocs.io).
438+ The declared cost of each operation is either worst-case or amortized, but
439+ remains valid even if structures are shared.
440+category: Data Structures
443+ Data.Containers.ListUtils Data.Graph Data.IntMap
444+ Data.IntMap.Internal Data.IntMap.Internal.Debug Data.IntMap.Lazy
445+ Data.IntMap.Merge.Lazy Data.IntMap.Merge.Strict Data.IntMap.Strict
446+ Data.IntMap.Strict.Internal Data.IntSet Data.IntSet.Internal
447+ Data.Map Data.Map.Internal Data.Map.Internal.Debug Data.Map.Lazy
448+ Data.Map.Merge.Lazy Data.Map.Merge.Strict Data.Map.Strict
449+ Data.Map.Strict.Internal Data.Sequence Data.Sequence.Internal
450+ Data.Sequence.Internal.Sorting Data.Set Data.Set.Internal Data.Tree
451+ Utils.Containers.Internal.BitQueue
452+ Utils.Containers.Internal.BitUtil
453+ Utils.Containers.Internal.StrictPair
455+ Utils.Containers.Internal.State
456+ Utils.Containers.Internal.StrictMaybe
457+ Utils.Containers.Internal.PtrEquality
458+ Utils.Containers.Internal.Coercions
459+ Utils.Containers.Internal.TypeError
460+ Data.Map.Internal.DeprecatedShowTree
461+ Data.IntMap.Internal.DeprecatedDebug
464+dynamic-library-dirs:
466+hs-libraries: HScontainers-0.6.5.1
467+depends: array-0.5.4.0 base-4.14.3.0 deepseq-1.4.4.0
476+license: BSD-3-Clause
477+maintainer: libraries@haskell.org
478+synopsis: Deep evaluation of data structures
480+ This package provides methods for fully evaluating data structures
481+ (\"deep evaluation\"). Deep evaluation is often used for adding
482+ strictness to a program, e.g. in order to force pending exceptions,
483+ remove space leaks, or force lazy I/O to happen. It is also useful
484+ in parallel programs, to ensure pending work does not migrate to the
486+ The primary use of this package is via the 'deepseq' function, a
487+ \"deep\" version of 'seq'. It is implemented on top of an 'NFData'
488+ typeclass (\"Normal Form Data\", data structures with no unevaluated
489+ components) which defines strategies for fully evaluating different
490+ data types. See module documentation in "Control.DeepSeq" for more
494+exposed-modules: Control.DeepSeq
495+hidden-modules: Control.DeepSeq.BackDoor
498+dynamic-library-dirs:
500+hs-libraries: HSdeepseq-1.4.4.0
501+depends: array-0.5.4.0 base-4.14.3.0
508+id: directory-1.3.6.0
509+key: directory-1.3.6.0
510+license: BSD-3-Clause
511+maintainer: libraries@haskell.org
512+synopsis: Platform-agnostic library for filesystem operations
514+ This library provides a basic set of operations for manipulating files and
515+ directories in a portable way.
519+ System.Directory System.Directory.Internal
520+ System.Directory.Internal.Prelude
522+ System.Directory.Internal.C_utimensat
523+ System.Directory.Internal.Common System.Directory.Internal.Config
524+ System.Directory.Internal.Posix System.Directory.Internal.Windows
527+dynamic-library-dirs:
529+hs-libraries: HSdirectory-1.3.6.0
531+ base-4.14.3.0 filepath-1.4.2.1 time-1.9.3 unix-2.7.2.2
538+id: exceptions-0.10.4
539+key: exceptions-0.10.4
540+license: BSD-3-Clause
542+ Copyright (C) 2013-2015 Edward A. Kmett
543+ Copyright (C) 2012 Google Inc.
544+maintainer: Edward A. Kmett <ekmett@gmail.com>
545+author: Edward A. Kmett
546+stability: provisional
547+homepage: http://github.com/ekmett/exceptions/
548+synopsis: Extensible optionally-pure exceptions
549+description: Extensible optionally-pure exceptions.
550+category: Control, Exceptions, Monad
552+exposed-modules: Control.Monad.Catch Control.Monad.Catch.Pure
555+dynamic-library-dirs:
557+hs-libraries: HSexceptions-0.10.4
559+ base-4.14.3.0 mtl-2.2.2 stm-2.5.0.1 template-haskell-2.16.0.0
560+ transformers-0.5.6.2
568+key: filepath-1.4.2.1
569+license: BSD-3-Clause
570+copyright: Neil Mitchell 2005-2018
571+maintainer: Neil Mitchell <ndmitchell@gmail.com>
572+author: Neil Mitchell <ndmitchell@gmail.com>
573+homepage: https://github.com/haskell/filepath#readme
574+synopsis: Library for manipulating FilePaths in a cross platform way.
576+ This package provides functionality for manipulating @FilePath@ values, and is shipped with both <https://www.haskell.org/ghc/ GHC> and the <https://www.haskell.org/platform/ Haskell Platform>. It provides three modules:
577+ * "System.FilePath.Posix" manipulates POSIX\/Linux style @FilePath@ values (with @\/@ as the path separator).
578+ * "System.FilePath.Windows" manipulates Windows style @FilePath@ values (with either @\\@ or @\/@ as the path separator, and deals with drives).
579+ * "System.FilePath" is an alias for the module appropriate to your platform.
580+ All three modules provide the same API, and the same documentation (calling out differences in the different variants).
584+ System.FilePath System.FilePath.Posix System.FilePath.Windows
587+dynamic-library-dirs:
589+hs-libraries: HSfilepath-1.4.2.1
590+depends: base-4.14.3.0
599+license: BSD-3-Clause
600+maintainer: ghc-devs@haskell.org
601+synopsis: Shared functionality between GHC and its boot libraries
603+ This library is shared between GHC, ghc-pkg, and other boot
605+ A note about "GHC.PackageDb": it only deals with the subset of
606+ the package database that the compiler cares about: modules
607+ paths etc and not package metadata like description, authors
608+ etc. It is thus not a library interface to ghc-pkg and is *not*
609+ suitable for modifying GHC package databases.
610+ The package database format and this library are constructed in
611+ such a way that while ghc-pkg depends on Cabal, the GHC library
612+ and program do not have to depend on Cabal.
616+ GHC.BaseDir GHC.ForeignSrcLang GHC.HandleEncoding
617+ GHC.LanguageExtensions GHC.PackageDb GHC.Platform GHC.Platform.Host
618+ GHC.Serialized GHC.Settings GHC.UniqueSubdir GHC.Version
621+dynamic-library-dirs:
623+hs-libraries: HSghc-boot-8.10.7
625+ base-4.14.3.0 binary-0.8.8.0 bytestring-0.10.12.0
626+ containers-0.6.5.1 directory-1.3.6.0 filepath-1.4.2.1
634+id: ghc-boot-th-8.10.7
635+key: ghc-boot-th-8.10.7
636+license: BSD-3-Clause
637+maintainer: ghc-devs@haskell.org
639+ Shared functionality between GHC and the @template-haskell@
642+ This library contains various bits shared between the @ghc@ and
643+ @template-haskell@ libraries.
644+ This package exists to ensure that @template-haskell@ has a
645+ minimal set of transitive dependencies, since it is intended to
646+ be depended upon by user code.
650+ GHC.ForeignSrcLang.Type GHC.LanguageExtensions.Type GHC.Lexeme
653+dynamic-library-dirs:
655+hs-libraries: HSghc-boot-th-8.10.7
656+depends: base-4.14.3.0
663+id: ghc-compact-0.1.0.0
664+key: ghc-compact-0.1.0.0
665+license: BSD-3-Clause
666+maintainer: libraries@haskell.org
667+synopsis: In memory storage of deeply evaluated data structure
669+ This package provides minimal functionality for working with
670+ "compact regions", which hold a fully evaluated Haskell object graph.
671+ These regions maintain the invariant that no pointers live inside the struct
672+ that point outside it, which ensures efficient garbage collection without
673+ ever reading the structure contents (effectively, it works as a manually
674+ managed "oldest generation" which is never freed until the whole is
676+ Internally, the struct is stored a single contiguous block of memory,
677+ which allows efficient serialization and deserialization of structs
678+ for distributed computing.
681+exposed-modules: GHC.Compact GHC.Compact.Serialized
684+dynamic-library-dirs:
686+hs-libraries: HSghc-compact-0.1.0.0
687+depends: base-4.14.3.0 bytestring-0.10.12.0 ghc-prim-0.6.1
696+license: BSD-3-Clause
697+maintainer: libraries@haskell.org
698+synopsis: Functions for walking GHC's heap
700+ This package provides functions for walking the GHC heap data structures
701+ and retrieving information about those data structures.
705+ GHC.Exts.Heap GHC.Exts.Heap.ClosureTypes GHC.Exts.Heap.Closures
706+ GHC.Exts.Heap.Constants GHC.Exts.Heap.InfoTable
707+ GHC.Exts.Heap.InfoTable.Types GHC.Exts.Heap.InfoTableProf
711+dynamic-library-dirs:
713+hs-libraries: HSghc-heap-8.10.7
714+depends: base-4.14.3.0 ghc-prim-0.6.1 rts
723+license: BSD-3-Clause
724+maintainer: libraries@haskell.org
725+synopsis: GHC primitives
727+ This package contains the primitive types and operations supplied by GHC.
731+ GHC.CString GHC.Classes GHC.Debug GHC.IntWord64 GHC.Magic
732+ GHC.Prim.Ext GHC.PrimopWrappers GHC.Tuple GHC.Types GHC.Prim
735+dynamic-library-dirs:
737+hs-libraries: HSghc-prim-0.6.1
738+extra-libraries: gcc c m
748+license: BSD-3-Clause
749+maintainer: ghc-devs@haskell.org
750+synopsis: The library supporting GHC's interactive interpreter
752+ This library offers interfaces which mediate interactions between the
753+ @ghci@ interactive shell and @iserv@, GHC's out-of-process interpreter
758+ GHCi.BinaryArray GHCi.BreakArray GHCi.CreateBCO GHCi.FFI
759+ GHCi.InfoTable GHCi.Message GHCi.ObjLink GHCi.RemoteTypes
760+ GHCi.ResolvedBCO GHCi.Run GHCi.Signals GHCi.StaticPtrTable GHCi.TH
761+ GHCi.TH.Binary SizedSeq
764+dynamic-library-dirs:
766+hs-libraries: HSghci-8.10.7
769+ array-0.5.4.0 base-4.14.3.0 binary-0.8.8.0 bytestring-0.10.12.0
770+ containers-0.6.5.1 deepseq-1.4.4.0 filepath-1.4.2.1 ghc-boot-8.10.7
771+ ghc-boot-th-8.10.7 ghc-heap-8.10.7 rts template-haskell-2.16.0.0
772+ transformers-0.5.6.2 unix-2.7.2.2
781+license: BSD-3-Clause
782+copyright: (c) Judah Jacobson
783+maintainer: Judah Jacobson <judah.jacobson@gmail.com>
784+author: Judah Jacobson
786+homepage: https://github.com/judah/haskeline
788+ A command-line interface for user input, written in Haskell.
790+ Haskeline provides a user interface for line input in command-line
791+ programs. This library is similar in purpose to readline, but since
792+ it is written in Haskell it is (hopefully) more easily used in other
794+ Haskeline runs both on POSIX-compatible systems and on Windows.
795+category: User Interfaces
798+ System.Console.Haskeline System.Console.Haskeline.Completion
799+ System.Console.Haskeline.History System.Console.Haskeline.IO
800+ System.Console.Haskeline.Internal
802+ System.Console.Haskeline.Backend
803+ System.Console.Haskeline.Backend.WCWidth
804+ System.Console.Haskeline.Command
805+ System.Console.Haskeline.Command.Completion
806+ System.Console.Haskeline.Command.History
807+ System.Console.Haskeline.Command.KillRing
808+ System.Console.Haskeline.Directory System.Console.Haskeline.Emacs
809+ System.Console.Haskeline.InputT System.Console.Haskeline.Key
810+ System.Console.Haskeline.LineState System.Console.Haskeline.Monads
811+ System.Console.Haskeline.Prefs System.Console.Haskeline.Recover
812+ System.Console.Haskeline.RunCommand System.Console.Haskeline.Term
813+ System.Console.Haskeline.Command.Undo System.Console.Haskeline.Vi
814+ System.Console.Haskeline.Backend.Posix
815+ System.Console.Haskeline.Backend.Posix.Encoder
816+ System.Console.Haskeline.Backend.DumbTerm
819+dynamic-library-dirs:
821+hs-libraries: HShaskeline-0.8.2
823+ base-4.14.3.0 bytestring-0.10.12.0 containers-0.6.5.1
824+ directory-1.3.6.0 exceptions-0.10.4 filepath-1.4.2.1
825+ process-1.6.13.2 stm-2.5.0.1 transformers-0.5.6.2 unix-2.7.2.2
834+license: BSD-3-Clause
835+maintainer: ghc-devs@haskell.org
837+synopsis: Code Coverage Library for Haskell
839+ This package provides the code coverage library for Haskell.
840+ See <http://www.haskell.org/haskellwiki/Haskell_program_coverage> for more
845+ Trace.Hpc.Mix Trace.Hpc.Reflect Trace.Hpc.Tix Trace.Hpc.Util
848+dynamic-library-dirs:
850+hs-libraries: HShpc-0.6.1.0
852+ base-4.14.3.0 containers-0.6.5.1 deepseq-1.4.4.0 directory-1.3.6.0
853+ filepath-1.4.2.1 time-1.9.3
860+id: integer-gmp-1.0.3.0
861+key: integer-gmp-1.0.3.0
862+license: BSD-3-Clause
863+maintainer: hvr@gnu.org
864+author: Herbert Valerio Riedel
865+synopsis: Integer library based on GMP
867+ This package provides the low-level implementation of the standard
868+ 'Integer' type based on the
869+ <http://gmplib.org/ GNU Multiple Precision Arithmetic Library (GMP)>.
870+ This package provides access to the internal representation of
871+ 'Integer' as well as primitive operations with no proper error
872+ handling, and should only be used directly with the utmost care.
873+category: Numeric, Algebra
876+ GHC.Integer GHC.Integer.GMP.Internals GHC.Integer.Logarithms
877+ GHC.Integer.Logarithms.Internals
878+hidden-modules: GHC.Integer.Type
881+dynamic-library-dirs:
883+hs-libraries: HSinteger-gmp-1.0.3.0
886+depends: ghc-prim-0.6.1
895+license: BSD-3-Clause
899+synopsis: Provides shared functionality between iserv and iserv-proxy
900+category: Development
902+exposed-modules: GHCi.Utils Lib
905+dynamic-library-dirs:
907+hs-libraries: HSlibiserv-8.10.7
909+ base-4.14.3.0 binary-0.8.8.0 bytestring-0.10.12.0
910+ containers-0.6.5.1 deepseq-1.4.4.0 ghci-8.10.7 unix-2.7.2.2
919+license: BSD-3-Clause
920+maintainer: Edward Kmett <ekmett@gmail.com>
922+homepage: http://github.com/haskell/mtl
923+synopsis: Monad classes, using functional dependencies
925+ Monad classes using functional dependencies, with instances
926+ for various monad transformers, inspired by the paper
927+ /Functional Programming with Overloading and Higher-Order Polymorphism/,
928+ by Mark P Jones, in /Advanced School of Functional Programming/, 1995
929+ (<http://web.cecs.pdx.edu/~mpj/pubs/springschool.html>).
933+ Control.Monad.Cont Control.Monad.Cont.Class Control.Monad.Error
934+ Control.Monad.Error.Class Control.Monad.Except
935+ Control.Monad.Identity Control.Monad.List Control.Monad.RWS
936+ Control.Monad.RWS.Class Control.Monad.RWS.Lazy
937+ Control.Monad.RWS.Strict Control.Monad.Reader
938+ Control.Monad.Reader.Class Control.Monad.State
939+ Control.Monad.State.Class Control.Monad.State.Lazy
940+ Control.Monad.State.Strict Control.Monad.Trans Control.Monad.Writer
941+ Control.Monad.Writer.Class Control.Monad.Writer.Lazy
942+ Control.Monad.Writer.Strict
945+dynamic-library-dirs:
947+hs-libraries: HSmtl-2.2.2
948+depends: base-4.14.3.0 transformers-0.5.6.2
957+license: BSD-3-Clause
958+maintainer: Herbert Valerio Riedel <hvr@gnu.org>
960+ Daan Leijen <daan@microsoft.com>, Paolo Martini <paolo@nemail.it>, Antoine Latter <aslatter@gmail.com>
961+homepage: https://github.com/haskell/parsec
962+synopsis: Monadic parser combinators
964+ Parsec is designed from scratch as an industrial-strength parser
965+ library. It is simple, safe, well documented (on the package
966+ homepage), has extensive libraries, good error messages,
967+ and is fast. It is defined as a monad transformer that can be
968+ stacked on arbitrary monads, and it is also parametric in the
970+ The main entry point is the "Text.Parsec" module which provides
971+ defaults for parsing 'Char'acter data.
972+ The "Text.ParserCombinators.Parsec" module hierarchy contains
973+ the legacy @parsec-2@ API and may be removed at some point in
978+ Text.Parsec Text.Parsec.ByteString Text.Parsec.ByteString.Lazy
979+ Text.Parsec.Char Text.Parsec.Combinator Text.Parsec.Error
980+ Text.Parsec.Expr Text.Parsec.Language Text.Parsec.Perm
981+ Text.Parsec.Pos Text.Parsec.Prim Text.Parsec.String
982+ Text.Parsec.Text Text.Parsec.Text.Lazy Text.Parsec.Token
983+ Text.ParserCombinators.Parsec Text.ParserCombinators.Parsec.Char
984+ Text.ParserCombinators.Parsec.Combinator
985+ Text.ParserCombinators.Parsec.Error
986+ Text.ParserCombinators.Parsec.Expr
987+ Text.ParserCombinators.Parsec.Language
988+ Text.ParserCombinators.Parsec.Perm
989+ Text.ParserCombinators.Parsec.Pos
990+ Text.ParserCombinators.Parsec.Prim
991+ Text.ParserCombinators.Parsec.Token
994+dynamic-library-dirs:
996+hs-libraries: HSparsec-3.1.14.0
998+ base-4.14.3.0 bytestring-0.10.12.0 mtl-2.2.2 text-1.2.4.1
1007+license: BSD-3-Clause
1008+maintainer: David Terei <code@davidterei.com>
1010+homepage: http://github.com/haskell/pretty
1011+synopsis: Pretty-printing library
1013+ This package contains a pretty-printing library, a set of API's
1014+ that provides a way to easily print out text in a consistent
1015+ format of your choosing. This is useful for compilers and related
1017+ This library was originally designed by John Hughes's and has since
1018+ been heavily modified by Simon Peyton Jones.
1022+ Text.PrettyPrint Text.PrettyPrint.Annotated
1023+ Text.PrettyPrint.Annotated.HughesPJ
1024+ Text.PrettyPrint.Annotated.HughesPJClass Text.PrettyPrint.HughesPJ
1025+ Text.PrettyPrint.HughesPJClass
1028+dynamic-library-dirs:
1030+hs-libraries: HSpretty-1.1.3.6
1031+depends: base-4.14.3.0 deepseq-1.4.4.0 ghc-prim-0.6.1
1038+id: process-1.6.13.2
1039+key: process-1.6.13.2
1040+license: BSD-3-Clause
1041+maintainer: libraries@haskell.org
1042+synopsis: Process libraries
1044+ This package contains libraries for dealing with system processes.
1045+ The typed-process package is a more recent take on a process API,
1046+ which uses this package internally. It features better binary
1047+ support, easier concurrency, and a more composable API. You can
1048+ read more about it at
1049+ <https://github.com/fpco/typed-process/#readme>.
1052+exposed-modules: System.Cmd System.Process System.Process.Internals
1053+hidden-modules: System.Process.Common System.Process.Posix
1056+dynamic-library-dirs:
1058+hs-libraries: HSprocess-1.6.13.2
1060+includes: runProcess.h
1062+ base-4.14.3.0 deepseq-1.4.4.0 directory-1.3.6.0 filepath-1.4.2.1
1072+license: BSD-3-Clause
1073+maintainer: libraries@haskell.org
1074+homepage: https://wiki.haskell.org/Software_transactional_memory
1075+synopsis: Software Transactional Memory
1077+ Software Transactional Memory, or STM, is an abstraction for
1078+ concurrent communication. The main benefits of STM are
1079+ /composability/ and /modularity/. That is, using STM you can write
1080+ concurrent abstractions that can be easily composed with any other
1081+ abstraction built using STM, without exposing the details of how
1082+ your abstraction ensures safety. This is typically not the case
1083+ with other forms of concurrent communication, such as locks or
1085+category: Concurrency
1088+ Control.Concurrent.STM Control.Concurrent.STM.TArray
1089+ Control.Concurrent.STM.TBQueue Control.Concurrent.STM.TChan
1090+ Control.Concurrent.STM.TMVar Control.Concurrent.STM.TQueue
1091+ Control.Concurrent.STM.TSem Control.Concurrent.STM.TVar
1093+hidden-modules: Control.Sequential.STM
1096+dynamic-library-dirs:
1098+hs-libraries: HSstm-2.5.0.1
1099+depends: array-0.5.4.0 base-4.14.3.0
1103+name: template-haskell
1106+id: template-haskell-2.16.0.0
1107+key: template-haskell-2.16.0.0
1108+license: BSD-3-Clause
1109+maintainer: libraries@haskell.org
1110+synopsis: Support library for Template Haskell
1112+ This package provides modules containing facilities for manipulating
1113+ Haskell source code using Template Haskell.
1114+ See <http://www.haskell.org/haskellwiki/Template_Haskell> for more
1116+category: Template Haskell
1119+ Language.Haskell.TH Language.Haskell.TH.LanguageExtensions
1120+ Language.Haskell.TH.Lib Language.Haskell.TH.Lib.Internal
1121+ Language.Haskell.TH.Ppr Language.Haskell.TH.PprLib
1122+ Language.Haskell.TH.Quote Language.Haskell.TH.Syntax
1123+hidden-modules: Language.Haskell.TH.Lib.Map
1126+dynamic-library-dirs:
1128+hs-libraries: HStemplate-haskell-2.16.0.0
1130+ base-4.14.3.0 ghc-boot-th-8.10.7 ghc-prim-0.6.1 pretty-1.1.3.6
1139+license: BSD-2-Clause
1140+copyright: 2009-2011 Bryan O'Sullivan, 2008-2009 Tom Harper
1142+ Bryan O'Sullivan <bos@serpentine.com>, Herbert Valerio Riedel <hvr@gnu.org>
1143+author: Bryan O'Sullivan <bos@serpentine.com>
1144+homepage: https://github.com/haskell/text
1145+synopsis: An efficient packed Unicode text type.
1147+ An efficient packed, immutable Unicode text type (both strict and
1148+ lazy), with a powerful loop fusion optimization framework.
1149+ The 'Text' type represents Unicode character strings, in a time and
1150+ space-efficient manner. This package provides text processing
1151+ capabilities that are optimized for performance critical use, both
1152+ in terms of large data quantities and high speed.
1153+ The 'Text' type provides character-encoding, type-safe case
1154+ conversion via whole-string case conversion functions (see "Data.Text").
1155+ It also provides a range of functions for converting 'Text' values to
1156+ and from 'ByteStrings', using several standard encodings
1157+ (see "Data.Text.Encoding").
1158+ Efficient locale-sensitive support for text IO is also supported
1159+ (see "Data.Text.IO").
1160+ These modules are intended to be imported qualified, to avoid name
1161+ clashes with Prelude functions, e.g.
1162+ > import qualified Data.Text as T
1164+ To use an extended and very rich family of functions for working
1165+ with Unicode text (including normalization, regular expressions,
1166+ non-standard encodings, text breaking, and locales), see
1167+ the [text-icu package](https://hackage.haskell.org/package/text-icu)
1168+ based on the well-respected and liberally
1169+ licensed [ICU library](http://site.icu-project.org/).
1170+ == Internal Representation: UTF-16 vs. UTF-8
1171+ Currently the @text@ library uses UTF-16 as its internal representation
1172+ which is [neither a fixed-width nor always the most dense representation](http://utf8everywhere.org/)
1173+ for Unicode text. We're currently investigating the feasibility
1174+ of [changing Text's internal representation to UTF-8](https://github.com/text-utf8)
1175+ and if you need such a 'Text' type right now you might be interested in using the spin-off
1176+ packages <https://hackage.haskell.org/package/text-utf8 text-utf8> and
1177+ <https://hackage.haskell.org/package/text-short text-short>.
1178+category: Data, Text
1181+ Data.Text Data.Text.Array Data.Text.Encoding
1182+ Data.Text.Encoding.Error Data.Text.Foreign Data.Text.IO
1183+ Data.Text.Internal Data.Text.Internal.Builder
1184+ Data.Text.Internal.Builder.Functions
1185+ Data.Text.Internal.Builder.Int.Digits
1186+ Data.Text.Internal.Builder.RealFloat.Functions
1187+ Data.Text.Internal.ByteStringCompat
1188+ Data.Text.Internal.Encoding.Fusion
1189+ Data.Text.Internal.Encoding.Fusion.Common
1190+ Data.Text.Internal.Encoding.Utf16 Data.Text.Internal.Encoding.Utf32
1191+ Data.Text.Internal.Encoding.Utf8 Data.Text.Internal.Functions
1192+ Data.Text.Internal.Fusion Data.Text.Internal.Fusion.CaseMapping
1193+ Data.Text.Internal.Fusion.Common Data.Text.Internal.Fusion.Size
1194+ Data.Text.Internal.Fusion.Types Data.Text.Internal.IO
1195+ Data.Text.Internal.Lazy Data.Text.Internal.Lazy.Encoding.Fusion
1196+ Data.Text.Internal.Lazy.Fusion Data.Text.Internal.Lazy.Search
1197+ Data.Text.Internal.Private Data.Text.Internal.Read
1198+ Data.Text.Internal.Search Data.Text.Internal.Unsafe
1199+ Data.Text.Internal.Unsafe.Char Data.Text.Internal.Unsafe.Shift
1200+ Data.Text.Lazy Data.Text.Lazy.Builder Data.Text.Lazy.Builder.Int
1201+ Data.Text.Lazy.Builder.RealFloat Data.Text.Lazy.Encoding
1202+ Data.Text.Lazy.IO Data.Text.Lazy.Internal Data.Text.Lazy.Read
1203+ Data.Text.Read Data.Text.Unsafe
1204+hidden-modules: Data.Text.Show
1207+dynamic-library-dirs:
1209+hs-libraries: HStext-1.2.4.1
1211+ array-0.5.4.0 base-4.14.3.0 binary-0.8.8.0 bytestring-0.10.12.0
1212+ deepseq-1.4.4.0 ghc-prim-0.6.1 integer-gmp-1.0.3.0
1213+ template-haskell-2.16.0.0
1222+license: BSD-3-Clause
1223+maintainer: <ashley@semantic.org>
1224+author: Ashley Yakeley
1226+homepage: https://github.com/haskell/time
1227+synopsis: A time library
1228+description: Time, clocks and calendars
1232+ Data.Time Data.Time.Calendar Data.Time.Calendar.Easter
1233+ Data.Time.Calendar.Julian Data.Time.Calendar.MonthDay
1234+ Data.Time.Calendar.OrdinalDate Data.Time.Calendar.WeekDate
1235+ Data.Time.Clock Data.Time.Clock.POSIX Data.Time.Clock.System
1236+ Data.Time.Clock.TAI Data.Time.Format Data.Time.Format.ISO8601
1237+ Data.Time.Format.Internal Data.Time.LocalTime
1239+ Data.Format Data.Time.Calendar.Private Data.Time.Calendar.Days
1240+ Data.Time.Calendar.Gregorian Data.Time.Calendar.CalendarDiffDays
1241+ Data.Time.Calendar.Week Data.Time.Calendar.JulianYearDay
1242+ Data.Time.Clock.Internal.DiffTime
1243+ Data.Time.Clock.Internal.AbsoluteTime
1244+ Data.Time.Clock.Internal.NominalDiffTime
1245+ Data.Time.Clock.Internal.POSIXTime
1246+ Data.Time.Clock.Internal.UniversalTime
1247+ Data.Time.Clock.Internal.SystemTime
1248+ Data.Time.Clock.Internal.UTCTime Data.Time.Clock.Internal.CTimeval
1249+ Data.Time.Clock.Internal.CTimespec Data.Time.Clock.Internal.UTCDiff
1250+ Data.Time.LocalTime.Internal.TimeZone
1251+ Data.Time.LocalTime.Internal.TimeOfDay
1252+ Data.Time.LocalTime.Internal.CalendarDiffTime
1253+ Data.Time.LocalTime.Internal.LocalTime
1254+ Data.Time.LocalTime.Internal.ZonedTime Data.Time.Format.Parse
1255+ Data.Time.Format.Locale Data.Time.Format.Format.Class
1256+ Data.Time.Format.Format.Instances Data.Time.Format.Parse.Class
1257+ Data.Time.Format.Parse.Instances
1260+dynamic-library-dirs:
1262+hs-libraries: HStime-1.9.3
1264+depends: base-4.14.3.0 deepseq-1.4.4.0
1271+id: transformers-0.5.6.2
1272+key: transformers-0.5.6.2
1273+license: BSD-3-Clause
1274+maintainer: Ross Paterson <R.Paterson@city.ac.uk>
1275+author: Andy Gill, Ross Paterson
1276+synopsis: Concrete functor and monad transformers
1278+ A portable library of functor and monad transformers, inspired by
1280+ * \"Functional Programming with Overloading and Higher-Order
1281+ Polymorphism\", by Mark P Jones,
1282+ in /Advanced School of Functional Programming/, 1995
1283+ (<http://web.cecs.pdx.edu/~mpj/pubs/springschool.html>).
1284+ This package contains:
1285+ * the monad transformer class (in "Control.Monad.Trans.Class")
1286+ * concrete functor and monad transformers, each with associated
1287+ operations and functions to lift operations associated with other
1289+ The package can be used on its own in portable Haskell code, in
1290+ which case operations need to be manually lifted through transformer
1291+ stacks (see "Control.Monad.Trans.Class" for some examples).
1292+ Alternatively, it can be used with the non-portable monad classes in
1293+ the @mtl@ or @monads-tf@ packages, which automatically lift operations
1294+ introduced by monad transformers through other transformers.
1298+ Control.Applicative.Backwards Control.Applicative.Lift
1299+ Control.Monad.Signatures Control.Monad.Trans.Accum
1300+ Control.Monad.Trans.Class Control.Monad.Trans.Cont
1301+ Control.Monad.Trans.Error Control.Monad.Trans.Except
1302+ Control.Monad.Trans.Identity Control.Monad.Trans.List
1303+ Control.Monad.Trans.Maybe Control.Monad.Trans.RWS
1304+ Control.Monad.Trans.RWS.CPS Control.Monad.Trans.RWS.Lazy
1305+ Control.Monad.Trans.RWS.Strict Control.Monad.Trans.Reader
1306+ Control.Monad.Trans.Select Control.Monad.Trans.State
1307+ Control.Monad.Trans.State.Lazy Control.Monad.Trans.State.Strict
1308+ Control.Monad.Trans.Writer Control.Monad.Trans.Writer.CPS
1309+ Control.Monad.Trans.Writer.Lazy Control.Monad.Trans.Writer.Strict
1310+ Data.Functor.Constant Data.Functor.Reverse
1313+dynamic-library-dirs:
1315+hs-libraries: HStransformers-0.5.6.2
1316+depends: base-4.14.3.0
1325+license: BSD-3-Clause
1326+maintainer: libraries@haskell.org
1327+homepage: https://github.com/haskell/unix
1328+synopsis: POSIX functionality
1330+ This package gives you access to the set of operating system
1331+ services standardised by
1332+ <http://pubs.opengroup.org/onlinepubs/9699919799/ POSIX.1-2008>
1333+ (or the IEEE Portable Operating System Interface for Computing
1334+ Environments - IEEE Std. 1003.1).
1335+ The package is not supported under Windows.
1339+ System.Posix System.Posix.ByteString
1340+ System.Posix.ByteString.FilePath System.Posix.Directory
1341+ System.Posix.Directory.ByteString System.Posix.DynamicLinker
1342+ System.Posix.DynamicLinker.ByteString
1343+ System.Posix.DynamicLinker.Module
1344+ System.Posix.DynamicLinker.Module.ByteString
1345+ System.Posix.DynamicLinker.Prim System.Posix.Env
1346+ System.Posix.Env.ByteString System.Posix.Error System.Posix.Fcntl
1347+ System.Posix.Files System.Posix.Files.ByteString System.Posix.IO
1348+ System.Posix.IO.ByteString System.Posix.Process
1349+ System.Posix.Process.ByteString System.Posix.Process.Internals
1350+ System.Posix.Resource System.Posix.Semaphore System.Posix.SharedMem
1351+ System.Posix.Signals System.Posix.Signals.Exts System.Posix.Temp
1352+ System.Posix.Temp.ByteString System.Posix.Terminal
1353+ System.Posix.Terminal.ByteString System.Posix.Time
1354+ System.Posix.Unistd System.Posix.User
1356+ System.Posix.Directory.Common System.Posix.DynamicLinker.Common
1357+ System.Posix.Files.Common System.Posix.IO.Common
1358+ System.Posix.Process.Common System.Posix.Terminal.Common
1361+dynamic-library-dirs:
1363+hs-libraries: HSunix-2.7.2.2
1364+extra-libraries: rt util dl pthread
1366+includes: HsUnix.h execvpe.h
1367+depends: base-4.14.3.0 bytestring-0.10.12.0 time-1.9.3
1376+license: BSD-3-Clause
1377+maintainer: glasgow-haskell-users@haskell.org
1381+extra-libraries: m rt dl ffi numa pthread
1385+ "-Wl,-u,base_GHCziTopHandler_runIO_closure"
1386+ "-Wl,-u,base_GHCziTopHandler_runNonIO_closure"
1387+ "-Wl,-u,ghczmprim_GHCziTuple_Z0T_closure"
1388+ "-Wl,-u,ghczmprim_GHCziTypes_True_closure"
1389+ "-Wl,-u,ghczmprim_GHCziTypes_False_closure"
1390+ "-Wl,-u,base_GHCziPack_unpackCString_closure"
1391+ "-Wl,-u,base_GHCziWeak_runFinalizzerBatch_closure"
1392+ "-Wl,-u,base_GHCziIOziException_stackOverflow_closure"
1393+ "-Wl,-u,base_GHCziIOziException_heapOverflow_closure"
1394+ "-Wl,-u,base_GHCziIOziException_allocationLimitExceeded_closure"
1395+ "-Wl,-u,base_GHCziIOziException_blockedIndefinitelyOnMVar_closure"
1396+ "-Wl,-u,base_GHCziIOziException_blockedIndefinitelyOnSTM_closure"
1397+ "-Wl,-u,base_GHCziIOziException_cannotCompactFunction_closure"
1398+ "-Wl,-u,base_GHCziIOziException_cannotCompactPinned_closure"
1399+ "-Wl,-u,base_GHCziIOziException_cannotCompactMutable_closure"
1400+ "-Wl,-u,base_ControlziExceptionziBase_absentSumFieldError_closure"
1401+ "-Wl,-u,base_ControlziExceptionziBase_nonTermination_closure"
1402+ "-Wl,-u,base_ControlziExceptionziBase_nestedAtomically_closure"
1403+ "-Wl,-u,base_GHCziEventziThread_blockedOnBadFD_closure"
1404+ "-Wl,-u,base_GHCziConcziSync_runSparks_closure"
1405+ "-Wl,-u,base_GHCziConcziIO_ensureIOManagerIsRunning_closure"
1406+ "-Wl,-u,base_GHCziConcziIO_ioManagerCapabilitiesChanged_closure"
1407+ "-Wl,-u,base_GHCziConcziSignal_runHandlersPtr_closure"
1408+ "-Wl,-u,base_GHCziTopHandler_flushStdHandles_closure"
1409+ "-Wl,-u,base_GHCziTopHandler_runMainIO_closure"
1410+ "-Wl,-u,ghczmprim_GHCziTypes_Czh_con_info"
1411+ "-Wl,-u,ghczmprim_GHCziTypes_Izh_con_info"
1412+ "-Wl,-u,ghczmprim_GHCziTypes_Fzh_con_info"
1413+ "-Wl,-u,ghczmprim_GHCziTypes_Dzh_con_info"
1414+ "-Wl,-u,ghczmprim_GHCziTypes_Wzh_con_info"
1415+ "-Wl,-u,base_GHCziPtr_Ptr_con_info"
1416+ "-Wl,-u,base_GHCziPtr_FunPtr_con_info"
1417+ "-Wl,-u,base_GHCziInt_I8zh_con_info"
1418+ "-Wl,-u,base_GHCziInt_I16zh_con_info"
1419+ "-Wl,-u,base_GHCziInt_I32zh_con_info"
1420+ "-Wl,-u,base_GHCziInt_I64zh_con_info"
1421+ "-Wl,-u,base_GHCziWord_W8zh_con_info"
1422+ "-Wl,-u,base_GHCziWord_W16zh_con_info"
1423+ "-Wl,-u,base_GHCziWord_W32zh_con_info"
1424+ "-Wl,-u,base_GHCziWord_W64zh_con_info"
1425+ "-Wl,-u,base_GHCziStable_StablePtr_con_info"
1426+ "-Wl,-u,hs_atomic_add8" "-Wl,-u,hs_atomic_add16"
1427+ "-Wl,-u,hs_atomic_add32" "-Wl,-u,hs_atomic_add64"
1428+ "-Wl,-u,hs_atomic_sub8" "-Wl,-u,hs_atomic_sub16"
1429+ "-Wl,-u,hs_atomic_sub32" "-Wl,-u,hs_atomic_sub64"
1430+ "-Wl,-u,hs_atomic_and8" "-Wl,-u,hs_atomic_and16"
1431+ "-Wl,-u,hs_atomic_and32" "-Wl,-u,hs_atomic_and64"
1432+ "-Wl,-u,hs_atomic_nand8" "-Wl,-u,hs_atomic_nand16"
1433+ "-Wl,-u,hs_atomic_nand32" "-Wl,-u,hs_atomic_nand64"
1434+ "-Wl,-u,hs_atomic_or8" "-Wl,-u,hs_atomic_or16"
1435+ "-Wl,-u,hs_atomic_or32" "-Wl,-u,hs_atomic_or64"
1436+ "-Wl,-u,hs_atomic_xor8" "-Wl,-u,hs_atomic_xor16"
1437+ "-Wl,-u,hs_atomic_xor32" "-Wl,-u,hs_atomic_xor64"
1438+ "-Wl,-u,hs_cmpxchg8" "-Wl,-u,hs_cmpxchg16" "-Wl,-u,hs_cmpxchg32"
1439+ "-Wl,-u,hs_cmpxchg64" "-Wl,-u,hs_atomicread8"
1440+ "-Wl,-u,hs_atomicread16" "-Wl,-u,hs_atomicread32"
1441+ "-Wl,-u,hs_atomicread64" "-Wl,-u,hs_atomicwrite8"
1442+ "-Wl,-u,hs_atomicwrite16" "-Wl,-u,hs_atomicwrite32"
1443+ "-Wl,-u,hs_atomicwrite64"
materialized/dummy-ghc/aarch64-unknown-linux-gnu-aarch64-unknown-linux-gnu-ghc-8.10.7-x86_64-linux/ghc-pkg/versionnew file+1
@@ -0,0 +1 @@
1+GHC package manager version 8.10.7
materialized/dummy-ghc/aarch64-unknown-linux-gnu-aarch64-unknown-linux-gnu-ghc-8.10.7-x86_64-linux/ghc/infonew file+67
@@ -0,0 +1,67 @@
1+ [("Project name","The Glorious Glasgow Haskell Compilation System")
2+ ,("GCC extra via C opts","")
3+ ,("C compiler flags","")
4+ ,("C++ compiler flags","")
5+ ,("C compiler link flags","-Wl,-z,noexecstack")
6+ ,("C compiler supports -no-pie","YES")
7+ ,("Haskell CPP flags","-E -undef -traditional")
8+ ,("ld flags","-z noexecstack")
9+ ,("ld supports compact unwind","YES")
10+ ,("ld supports build-id","YES")
11+ ,("ld supports filelist","NO")
12+ ,("ld is GNU ld","YES")
13+ ,("Merge objects flags","-r")
15+ ,("ar supports at file","YES")
16+ ,("otool command","otool")
17+ ,("install_name_tool command","install_name_tool")
18+ ,("touch command","touch")
19+ ,("dllwrap command","/bin/false")
20+ ,("windres command","/bin/false")
21+ ,("libtool command","libtool")
22+ ,("cross compiling","YES")
23+ ,("target platform string","aarch64-unknown-linux")
24+ ,("target os","OSLinux")
25+ ,("target arch","ArchAArch64")
26+ ,("target word size","8")
27+ ,("target has GNU nonexec stack","YES")
28+ ,("target has .ident directive","YES")
29+ ,("target has subsections via symbols","NO")
30+ ,("target has RTS linker","YES")
31+ ,("Unregisterised","NO")
32+ ,("LLVM target","aarch64-unknown-linux")
33+ ,("LLVM clang command","clang")
34+ ,("integer library","integer-gmp")
35+ ,("Use interpreter","YES")
36+ ,("Use native code generator","NO")
37+ ,("Support SMP","YES")
38+ ,("RTS ways","l debug thr thr_debug thr_l thr_p thr_debug_p debug_p")
39+ ,("Tables next to code","YES")
40+ ,("Leading underscore","NO")
41+ ,("Use LibFFI","YES")
42+ ,("Use Threads","YES")
43+ ,("Use Debugging","NO")
44+ ,("RTS expects libdw","NO")
45+ ,("Project version","8.10.7")
46+ ,("Project Git commit id","1f02b7430b2fbab403d7ffdde9cfd006e884678e")
47+ ,("Booter version","8.8.4")
49+ ,("Build platform","x86_64-unknown-linux")
50+ ,("Host platform","x86_64-unknown-linux")
51+ ,("Target platform","aarch64-unknown-linux")
52+ ,("Have interpreter","YES")
53+ ,("Object splitting supported","NO")
54+ ,("Have native code generator","NO")
55+ ,("Support dynamic-too","YES")
56+ ,("Support parallel --make","YES")
57+ ,("Support reexported-modules","YES")
58+ ,("Support thinning and renaming package flags","YES")
59+ ,("Support Backpack","YES")
60+ ,("Requires unified installed package IDs","YES")
61+ ,("Uses package keys","YES")
62+ ,("Uses unit IDs","YES")
63+ ,("Dynamic by default","NO")
64+ ,("GHC Dynamic","NO")
65+ ,("GHC Profiled","NO")
materialized/dummy-ghc/aarch64-unknown-linux-gnu-aarch64-unknown-linux-gnu-ghc-8.10.7-x86_64-linux/ghc/numeric-versionnew file+1
materialized/dummy-ghc/aarch64-unknown-linux-gnu-aarch64-unknown-linux-gnu-ghc-8.10.7-x86_64-linux/ghc/supported-languagesnew file+255
@@ -0,0 +1,255 @@
9+NoAlternativeLayoutRule
10+AlternativeLayoutRuleTransitional
11+NoAlternativeLayoutRuleTransitional
26+ConstrainedClassMethods
27+NoConstrainedClassMethods
54+DisambiguateRecordFields
55+NoDisambiguateRecordFields
63+NoDuplicateRecordFields
70+ExistentialQuantification
71+NoExistentialQuantification
77+NoExtendedDefaultRules
82+ForeignFunctionInterface
83+NoForeignFunctionInterface
84+FunctionalDependencies
85+NoFunctionalDependencies
91+NoGHCForeignImportPrim
92+GeneralizedNewtypeDeriving
93+NoGeneralizedNewtypeDeriving
94+GeneralisedNewtypeDeriving
95+NoGeneralisedNewtypeDeriving
101+NoImportQualifiedPost
105+NoIncoherentInstances
106+TypeFamilyDependencies
107+NoTypeFamilyDependencies
121+NoLiberalTypeSynonyms
125+NoMonadComprehensions
127+NoMonadFailDesugaring
132+MonomorphismRestriction
133+NoMonomorphismRestriction
134+MultiParamTypeClasses
135+NoMultiParamTypeClasses
150+NondecreasingIndentation
151+NoNondecreasingIndentation
157+NoOverlappingInstances
170+PartialTypeSignatures
171+NoPartialTypeSignatures
180+PolymorphicComponents
181+NoPolymorphicComponents
182+QuantifiedConstraints
183+NoQuantifiedConstraints
207+NoScopedTypeVariables
220+TemplateHaskellQuotes
221+NoTemplateHaskellQuotes
222+StandaloneKindSignatures
223+NoStandaloneKindSignatures
224+TraditionalRecordSyntax
225+NoTraditionalRecordSyntax
239+NoTypeSynonymInstances
245+NoUndecidableInstances
246+UndecidableSuperClasses
247+NoUndecidableSuperClasses
materialized/dummy-ghc/aarch64-unknown-linux-gnu-aarch64-unknown-linux-gnu-ghc-8.10.7-x86_64-linux/ghc/versionnew file+1
@@ -0,0 +1 @@
1+The Glorious Glasgow Haskell Compilation System, version 8.10.7
materialized/dummy-ghc/aarch64-unknown-linux-gnu-aarch64-unknown-linux-gnu-ghc-8.8.4-x86_64-linux/ghc/info+1−3
@@ -24,12 +24,10 @@
24 ,("target has subsections via symbols","False")
24 ,("target has subsections via symbols","False")
25 ,("target has RTS linker","YES")
25 ,("target has RTS linker","YES")
26 ,("Unregisterised","NO")
26 ,("Unregisterised","NO")
27− ,("LLVM llc command","llc")
28− ,("LLVM opt command","opt")
29 ,("LLVM clang command","clang")
27 ,("LLVM clang command","clang")
30 ,("Project version","8.8.4")
28 ,("Project version","8.8.4")
31 ,("Project Git commit id","6cf8f835267581d551ca6695b3b02c34797e2cf4")
29 ,("Project Git commit id","6cf8f835267581d551ca6695b3b02c34797e2cf4")
32− ,("Booter version","8.4.4")
30+ ,("Booter version","8.8.4")
33 ,("Stage","1")
31 ,("Stage","1")
34 ,("Build platform","x86_64-unknown-linux")
32 ,("Build platform","x86_64-unknown-linux")
35 ,("Host platform","x86_64-unknown-linux")
33 ,("Host platform","x86_64-unknown-linux")
materialized/dummy-ghc/aarch64-unknown-linux-gnu-aarch64-unknown-linux-gnu-ghc-9.2.4-x86_64-linux/ghc-pkg/dump-globalnew file+1512
@@ -0,0 +1,1512 @@
7+copyright: 2003-2021, Cabal Development Team (see AUTHORS file)
8+maintainer: cabal-devel@haskell.org
9+author: Cabal Development Team <cabal-devel@haskell.org>
10+homepage: http://www.haskell.org/cabal/
11+synopsis: A framework for packaging Haskell software
13+ The Haskell Common Architecture for Building Applications and
14+ Libraries: a framework defining a common interface for authors to more
15+ easily build their Haskell applications in a portable way.
16+ The Haskell Cabal is part of a larger infrastructure for distributing,
17+ organizing, and cataloging Haskell libraries and tools.
18+category: Distribution
21+ Distribution.Backpack Distribution.Backpack.ComponentsGraph
22+ Distribution.Backpack.Configure
23+ Distribution.Backpack.ConfiguredComponent
24+ Distribution.Backpack.DescribeUnitId
25+ Distribution.Backpack.FullUnitId
26+ Distribution.Backpack.LinkedComponent
27+ Distribution.Backpack.ModSubst Distribution.Backpack.ModuleShape
28+ Distribution.Backpack.PreModuleShape Distribution.CabalSpecVersion
29+ Distribution.Compat.Binary Distribution.Compat.CharParsing
30+ Distribution.Compat.CreatePipe Distribution.Compat.DList
31+ Distribution.Compat.Directory Distribution.Compat.Environment
32+ Distribution.Compat.Exception Distribution.Compat.FilePath
33+ Distribution.Compat.Graph Distribution.Compat.Internal.TempFile
34+ Distribution.Compat.Lens Distribution.Compat.Newtype
35+ Distribution.Compat.NonEmptySet Distribution.Compat.Parsing
36+ Distribution.Compat.Prelude.Internal Distribution.Compat.Process
37+ Distribution.Compat.ResponseFile Distribution.Compat.Semigroup
38+ Distribution.Compat.Stack Distribution.Compat.Time
39+ Distribution.Compat.Typeable Distribution.Compiler
40+ Distribution.FieldGrammar Distribution.FieldGrammar.Class
41+ Distribution.FieldGrammar.FieldDescrs
42+ Distribution.FieldGrammar.Newtypes Distribution.FieldGrammar.Parsec
43+ Distribution.FieldGrammar.Pretty Distribution.Fields
44+ Distribution.Fields.ConfVar Distribution.Fields.Field
45+ Distribution.Fields.Lexer Distribution.Fields.LexerMonad
46+ Distribution.Fields.ParseResult Distribution.Fields.Parser
47+ Distribution.Fields.Pretty Distribution.InstalledPackageInfo
48+ Distribution.License Distribution.Make Distribution.ModuleName
49+ Distribution.Package Distribution.PackageDescription
50+ Distribution.PackageDescription.Check
51+ Distribution.PackageDescription.Configuration
52+ Distribution.PackageDescription.FieldGrammar
53+ Distribution.PackageDescription.Parsec
54+ Distribution.PackageDescription.PrettyPrint
55+ Distribution.PackageDescription.Quirks
56+ Distribution.PackageDescription.Utils Distribution.Parsec
57+ Distribution.Parsec.Error Distribution.Parsec.FieldLineStream
58+ Distribution.Parsec.Position Distribution.Parsec.Warning
59+ Distribution.Pretty Distribution.ReadE Distribution.SPDX
60+ Distribution.SPDX.License Distribution.SPDX.LicenseExceptionId
61+ Distribution.SPDX.LicenseExpression Distribution.SPDX.LicenseId
62+ Distribution.SPDX.LicenseListVersion
63+ Distribution.SPDX.LicenseReference Distribution.Simple
64+ Distribution.Simple.Bench Distribution.Simple.Build
65+ Distribution.Simple.Build.Macros
66+ Distribution.Simple.Build.PathsModule
67+ Distribution.Simple.BuildPaths Distribution.Simple.BuildTarget
68+ Distribution.Simple.BuildToolDepends Distribution.Simple.CCompiler
69+ Distribution.Simple.Command Distribution.Simple.Compiler
70+ Distribution.Simple.Configure Distribution.Simple.Flag
71+ Distribution.Simple.GHC Distribution.Simple.GHCJS
72+ Distribution.Simple.Glob Distribution.Simple.Haddock
73+ Distribution.Simple.HaskellSuite Distribution.Simple.Hpc
74+ Distribution.Simple.Install Distribution.Simple.InstallDirs
75+ Distribution.Simple.InstallDirs.Internal
76+ Distribution.Simple.LocalBuildInfo Distribution.Simple.PackageIndex
77+ Distribution.Simple.PreProcess Distribution.Simple.PreProcess.Unlit
78+ Distribution.Simple.Program Distribution.Simple.Program.Ar
79+ Distribution.Simple.Program.Builtin Distribution.Simple.Program.Db
80+ Distribution.Simple.Program.Find Distribution.Simple.Program.GHC
81+ Distribution.Simple.Program.HcPkg Distribution.Simple.Program.Hpc
82+ Distribution.Simple.Program.Internal Distribution.Simple.Program.Ld
83+ Distribution.Simple.Program.ResponseFile
84+ Distribution.Simple.Program.Run Distribution.Simple.Program.Script
85+ Distribution.Simple.Program.Strip Distribution.Simple.Program.Types
86+ Distribution.Simple.Register Distribution.Simple.Setup
87+ Distribution.Simple.ShowBuildInfo Distribution.Simple.SrcDist
88+ Distribution.Simple.Test Distribution.Simple.Test.ExeV10
89+ Distribution.Simple.Test.LibV09 Distribution.Simple.Test.Log
90+ Distribution.Simple.UHC Distribution.Simple.UserHooks
91+ Distribution.Simple.Utils Distribution.System
92+ Distribution.TestSuite Distribution.Text
93+ Distribution.Types.AbiDependency Distribution.Types.AbiHash
94+ Distribution.Types.AnnotatedId Distribution.Types.Benchmark
95+ Distribution.Types.Benchmark.Lens
96+ Distribution.Types.BenchmarkInterface
97+ Distribution.Types.BenchmarkType Distribution.Types.BuildInfo
98+ Distribution.Types.BuildInfo.Lens Distribution.Types.BuildType
99+ Distribution.Types.Component Distribution.Types.ComponentId
100+ Distribution.Types.ComponentInclude
101+ Distribution.Types.ComponentLocalBuildInfo
102+ Distribution.Types.ComponentName
103+ Distribution.Types.ComponentRequestedSpec
104+ Distribution.Types.CondTree Distribution.Types.Condition
105+ Distribution.Types.ConfVar Distribution.Types.Dependency
106+ Distribution.Types.DependencyMap Distribution.Types.ExeDependency
107+ Distribution.Types.Executable Distribution.Types.Executable.Lens
108+ Distribution.Types.ExecutableScope Distribution.Types.ExposedModule
109+ Distribution.Types.Flag Distribution.Types.ForeignLib
110+ Distribution.Types.ForeignLib.Lens
111+ Distribution.Types.ForeignLibOption
112+ Distribution.Types.ForeignLibType
113+ Distribution.Types.GenericPackageDescription
114+ Distribution.Types.GenericPackageDescription.Lens
115+ Distribution.Types.GivenComponent
116+ Distribution.Types.HookedBuildInfo
117+ Distribution.Types.IncludeRenaming
118+ Distribution.Types.InstalledPackageInfo
119+ Distribution.Types.InstalledPackageInfo.FieldGrammar
120+ Distribution.Types.InstalledPackageInfo.Lens
121+ Distribution.Types.LegacyExeDependency Distribution.Types.Lens
122+ Distribution.Types.Library Distribution.Types.Library.Lens
123+ Distribution.Types.LibraryName Distribution.Types.LibraryVisibility
124+ Distribution.Types.LocalBuildInfo Distribution.Types.Mixin
125+ Distribution.Types.Module Distribution.Types.ModuleReexport
126+ Distribution.Types.ModuleRenaming
127+ Distribution.Types.MungedPackageId
128+ Distribution.Types.MungedPackageName
129+ Distribution.Types.PackageDescription
130+ Distribution.Types.PackageDescription.Lens
131+ Distribution.Types.PackageId Distribution.Types.PackageId.Lens
132+ Distribution.Types.PackageName Distribution.Types.PackageName.Magic
133+ Distribution.Types.PackageVersionConstraint
134+ Distribution.Types.PkgconfigDependency
135+ Distribution.Types.PkgconfigName
136+ Distribution.Types.PkgconfigVersion
137+ Distribution.Types.PkgconfigVersionRange
138+ Distribution.Types.SetupBuildInfo
139+ Distribution.Types.SetupBuildInfo.Lens
140+ Distribution.Types.SourceRepo Distribution.Types.SourceRepo.Lens
141+ Distribution.Types.TargetInfo Distribution.Types.TestSuite
142+ Distribution.Types.TestSuite.Lens
143+ Distribution.Types.TestSuiteInterface Distribution.Types.TestType
144+ Distribution.Types.UnitId Distribution.Types.UnqualComponentName
145+ Distribution.Types.Version Distribution.Types.VersionInterval
146+ Distribution.Types.VersionInterval.Legacy
147+ Distribution.Types.VersionRange
148+ Distribution.Types.VersionRange.Internal Distribution.Utils.Generic
149+ Distribution.Utils.IOData Distribution.Utils.LogProgress
150+ Distribution.Utils.MD5 Distribution.Utils.MapAccum
151+ Distribution.Utils.NubList Distribution.Utils.Path
152+ Distribution.Utils.Progress Distribution.Utils.ShortText
153+ Distribution.Utils.Structured Distribution.Verbosity
154+ Distribution.Verbosity.Internal Distribution.Version
155+ Language.Haskell.Extension
157+ Distribution.Backpack.PreExistingComponent
158+ Distribution.Backpack.ReadyComponent Distribution.Backpack.MixLink
159+ Distribution.Backpack.ModuleScope Distribution.Backpack.UnifyM
160+ Distribution.Backpack.Id Distribution.Utils.UnionFind
161+ Distribution.Utils.Base62 Distribution.Compat.Async
162+ Distribution.Compat.CopyFile Distribution.Compat.GetShortPathName
163+ Distribution.Compat.MonadFail Distribution.Compat.Prelude
164+ Distribution.Compat.SnocList Distribution.GetOpt Distribution.Lex
165+ Distribution.Utils.String Distribution.Simple.Build.Macros.Z
166+ Distribution.Simple.Build.PathsModule.Z
167+ Distribution.Simple.GHC.EnvironmentParser
168+ Distribution.Simple.GHC.Internal Distribution.Simple.GHC.ImplInfo
169+ Distribution.Simple.Utils.Json Distribution.ZinzaPrelude
173+dynamic-library-dirs:
175+hs-libraries: HSCabal-3.6.3.0
177+ array-0.5.4.0 base-4.16.3.0 binary-0.8.9.0 bytestring-0.11.3.1
178+ containers-0.6.5.1 deepseq-1.4.6.1 directory-1.3.6.2
179+ filepath-1.4.2.2 mtl-2.2.2 parsec-3.1.15.0 pretty-1.1.3.6
180+ process-1.6.13.2 text-1.2.5.0 time-1.11.1.1 transformers-0.5.6.2
190+license: BSD-3-Clause
191+maintainer: libraries@haskell.org
192+synopsis: Mutable and immutable arrays
194+ In addition to providing the "Data.Array" module
195+ <http://www.haskell.org/onlinereport/haskell2010/haskellch14.html as specified in the Haskell 2010 Language Report>,
196+ this package also defines the classes 'IArray' of
197+ immutable arrays and 'MArray' of arrays mutable within appropriate
198+ monads, as well as some instances of these classes.
199+category: Data Structures
202+ Data.Array Data.Array.Base Data.Array.IArray Data.Array.IO
203+ Data.Array.IO.Internals Data.Array.IO.Safe Data.Array.MArray
204+ Data.Array.MArray.Safe Data.Array.ST Data.Array.ST.Safe
205+ Data.Array.Storable Data.Array.Storable.Internals
206+ Data.Array.Storable.Safe Data.Array.Unboxed Data.Array.Unsafe
209+dynamic-library-dirs:
211+hs-libraries: HSarray-0.5.4.0
212+depends: base-4.16.3.0
221+license: BSD-3-Clause
222+maintainer: libraries@haskell.org
223+synopsis: Basic libraries
225+ This package contains the Standard Haskell "Prelude" and its support libraries,
226+ and a large collection of useful libraries ranging from data
227+ structures to parsing combinators and debugging utilities.
231+ Control.Applicative, Control.Arrow, Control.Category,
232+ Control.Concurrent, Control.Concurrent.Chan,
233+ Control.Concurrent.MVar, Control.Concurrent.QSem,
234+ Control.Concurrent.QSemN, Control.Exception,
235+ Control.Exception.Base, Control.Monad, Control.Monad.Fail,
236+ Control.Monad.Fix, Control.Monad.IO.Class, Control.Monad.Instances,
237+ Control.Monad.ST, Control.Monad.ST.Lazy,
238+ Control.Monad.ST.Lazy.Safe, Control.Monad.ST.Lazy.Unsafe,
239+ Control.Monad.ST.Safe, Control.Monad.ST.Strict,
240+ Control.Monad.ST.Unsafe, Control.Monad.Zip, Data.Bifoldable,
241+ Data.Bifunctor, Data.Bitraversable, Data.Bits, Data.Bool,
242+ Data.Char, Data.Coerce, Data.Complex, Data.Data, Data.Dynamic,
243+ Data.Either, Data.Eq, Data.Fixed, Data.Foldable, Data.Function,
244+ Data.Functor, Data.Functor.Classes, Data.Functor.Compose,
245+ Data.Functor.Const, Data.Functor.Contravariant,
246+ Data.Functor.Identity, Data.Functor.Product, Data.Functor.Sum,
247+ Data.IORef, Data.Int, Data.Ix, Data.Kind, Data.List,
248+ Data.List.NonEmpty, Data.Maybe, Data.Monoid, Data.Ord, Data.Proxy,
249+ Data.Ratio, Data.STRef, Data.STRef.Lazy, Data.STRef.Strict,
250+ Data.Semigroup, Data.String, Data.Traversable, Data.Tuple,
251+ Data.Type.Bool, Data.Type.Coercion, Data.Type.Equality,
252+ Data.Type.Ord, Data.Typeable, Data.Unique, Data.Version, Data.Void,
253+ Data.Word, Debug.Trace, Foreign, Foreign.C, Foreign.C.Error,
254+ Foreign.C.String, Foreign.C.Types, Foreign.Concurrent,
255+ Foreign.ForeignPtr, Foreign.ForeignPtr.Safe,
256+ Foreign.ForeignPtr.Unsafe, Foreign.Marshal, Foreign.Marshal.Alloc,
257+ Foreign.Marshal.Array, Foreign.Marshal.Error, Foreign.Marshal.Pool,
258+ Foreign.Marshal.Safe, Foreign.Marshal.Unsafe,
259+ Foreign.Marshal.Utils, Foreign.Ptr, Foreign.Safe,
260+ Foreign.StablePtr, Foreign.Storable, GHC.Arr, GHC.Base, GHC.Bits,
261+ GHC.ByteOrder, GHC.Char, GHC.Clock, GHC.Conc, GHC.Conc.IO,
262+ GHC.Conc.Signal, GHC.Conc.Sync, GHC.ConsoleHandler, GHC.Constants,
263+ GHC.Desugar, GHC.Enum, GHC.Environment, GHC.Err, GHC.Event,
264+ GHC.Event.TimeOut, GHC.Exception, GHC.Exception.Type,
265+ GHC.ExecutionStack, GHC.ExecutionStack.Internal, GHC.Exts,
266+ GHC.Fingerprint, GHC.Fingerprint.Type, GHC.Float,
267+ GHC.Float.ConversionUtils, GHC.Float.RealFracMethods, GHC.Foreign,
268+ GHC.ForeignPtr, GHC.GHCi, GHC.GHCi.Helpers, GHC.Generics, GHC.IO,
269+ GHC.IO.Buffer, GHC.IO.BufferedIO, GHC.IO.Device, GHC.IO.Encoding,
270+ GHC.IO.Encoding.CodePage, GHC.IO.Encoding.Failure,
271+ GHC.IO.Encoding.Iconv, GHC.IO.Encoding.Latin1,
272+ GHC.IO.Encoding.Types, GHC.IO.Encoding.UTF16,
273+ GHC.IO.Encoding.UTF32, GHC.IO.Encoding.UTF8, GHC.IO.Exception,
274+ GHC.IO.FD, GHC.IO.Handle, GHC.IO.Handle.FD,
275+ GHC.IO.Handle.Internals, GHC.IO.Handle.Lock, GHC.IO.Handle.Text,
276+ GHC.IO.Handle.Types, GHC.IO.IOMode, GHC.IO.StdHandles,
277+ GHC.IO.SubSystem, GHC.IO.Unsafe, GHC.IOArray, GHC.IOPort,
278+ GHC.IORef, GHC.Int, GHC.Integer, GHC.Integer.Logarithms, GHC.Ix,
279+ GHC.List, GHC.MVar, GHC.Maybe, GHC.Natural, GHC.Num,
280+ GHC.Num.BigNat from ghc-bignum-1.2:GHC.Num.BigNat,
281+ GHC.Num.Integer from ghc-bignum-1.2:GHC.Num.Integer,
282+ GHC.Num.Natural from ghc-bignum-1.2:GHC.Num.Natural, GHC.OldList,
283+ GHC.OverloadedLabels, GHC.Pack, GHC.Profiling, GHC.Ptr,
284+ GHC.RTS.Flags, GHC.Read, GHC.Real, GHC.Records, GHC.ResponseFile,
285+ GHC.ST, GHC.STRef, GHC.Show, GHC.Stable, GHC.StableName, GHC.Stack,
286+ GHC.Stack.CCS, GHC.Stack.Types, GHC.StaticPtr, GHC.Stats,
287+ GHC.Storable, GHC.TopHandler, GHC.TypeLits, GHC.TypeLits.Internal,
288+ GHC.TypeNats, GHC.TypeNats.Internal, GHC.Unicode, GHC.Weak,
289+ GHC.Word, Numeric, Numeric.Natural, Prelude, System.CPUTime,
290+ System.Console.GetOpt, System.Environment,
291+ System.Environment.Blank, System.Exit, System.IO, System.IO.Error,
292+ System.IO.Unsafe, System.Info, System.Mem, System.Mem.StableName,
293+ System.Mem.Weak, System.Posix.Internals, System.Posix.Types,
294+ System.Timeout, Text.ParserCombinators.ReadP,
295+ Text.ParserCombinators.ReadPrec, Text.Printf, Text.Read,
296+ Text.Read.Lex, Text.Show, Text.Show.Functions, Type.Reflection,
297+ Type.Reflection.Unsafe, Unsafe.Coerce
299+ Control.Monad.ST.Imp Control.Monad.ST.Lazy.Imp Data.Functor.Utils
300+ Data.OldList Data.Semigroup.Internal Data.Typeable.Internal
301+ Foreign.ForeignPtr.Imp GHC.IO.Handle.Lock.Common
302+ GHC.IO.Handle.Lock.Flock GHC.IO.Handle.Lock.LinuxOFD
303+ GHC.IO.Handle.Lock.NoOp GHC.IO.Handle.Lock.Windows
304+ GHC.StaticPtr.Internal GHC.Event.Arr GHC.Event.Array
305+ GHC.Event.Internal GHC.Event.Internal.Types GHC.Event.IntTable
306+ GHC.Event.IntVar GHC.Event.PSQ GHC.Event.Unique
307+ System.Environment.ExecutablePath System.CPUTime.Utils
308+ GHC.Event.Control GHC.Event.EPoll GHC.Event.KQueue
309+ GHC.Event.Manager GHC.Event.Poll GHC.Event.Thread
310+ GHC.Event.TimerManager System.CPUTime.Posix.ClockGetTime
311+ System.CPUTime.Posix.Times System.CPUTime.Posix.RUsage
312+ System.CPUTime.Unsupported
315+dynamic-library-dirs:
317+hs-libraries: HSbase-4.16.3.0
320+depends: ghc-bignum-1.2 ghc-prim-0.8.0 rts
329+license: BSD-3-Clause
330+maintainer: Lennart Kolmodin, Don Stewart <dons00@gmail.com>
331+author: Lennart Kolmodin <kolmodin@gmail.com>
332+stability: provisional
333+homepage: https://github.com/kolmodin/binary
335+ Binary serialisation for Haskell values using lazy ByteStrings
337+ Efficient, pure binary serialisation using lazy ByteStrings.
338+ Haskell values may be encoded to and from binary formats,
339+ written to disk as binary, or sent over the network.
340+ The format used can be automatically generated, or
341+ you can choose to implement a custom format if needed.
342+ Serialisation speeds of over 1 G\/sec have been observed,
343+ so this library should be suitable for high performance
345+category: Data, Parsing
348+ Data.Binary Data.Binary.Builder Data.Binary.Get
349+ Data.Binary.Get.Internal Data.Binary.Put
351+ Data.Binary.Class Data.Binary.Internal Data.Binary.Generic
352+ Data.Binary.FloatCast
355+dynamic-library-dirs:
357+hs-libraries: HSbinary-0.8.9.0
359+ array-0.5.4.0 base-4.16.3.0 bytestring-0.11.3.1 containers-0.6.5.1
366+id: bytestring-0.11.3.1
367+key: bytestring-0.11.3.1
368+license: BSD-3-Clause
370+ Copyright (c) Don Stewart 2005-2009,
371+ (c) Duncan Coutts 2006-2015,
372+ (c) David Roundy 2003-2005,
373+ (c) Jasper Van der Jeugt 2010,
374+ (c) Simon Meier 2010-2013.
376+ Haskell Bytestring Team <andrew.lelechenko@gmail.com>, Core Libraries Committee
380+homepage: https://github.com/haskell/bytestring
382+ Fast, compact, strict and lazy byte strings with a list interface
384+ An efficient compact, immutable byte string type (both strict and lazy)
385+ suitable for binary or 8-bit character data.
386+ The 'ByteString' type represents sequences of bytes or 8-bit characters.
387+ It is suitable for high performance use, both in terms of large data
388+ quantities, or high speed requirements. The 'ByteString' functions follow
389+ the same style as Haskell\'s ordinary lists, so it is easy to convert code
390+ from using 'String' to 'ByteString'.
391+ Two 'ByteString' variants are provided:
392+ * Strict 'ByteString's keep the string as a single large array. This
393+ makes them convenient for passing data between C and Haskell.
394+ * Lazy 'ByteString's use a lazy list of strict chunks which makes it
395+ suitable for I\/O streaming tasks.
396+ The @Char8@ modules provide a character-based view of the same
397+ underlying 'ByteString' types. This makes it convenient to handle mixed
398+ binary and 8-bit character content (which is common in many file formats
399+ and network protocols).
400+ The 'Builder' module provides an efficient way to build up 'ByteString's
401+ in an ad-hoc way by repeated concatenation. This is ideal for fast
402+ serialisation or pretty printing.
403+ There is also a 'ShortByteString' type which has a lower memory overhead
404+ and can be converted to or from a 'ByteString'. It is suitable for keeping
405+ many short strings in memory.
406+ 'ByteString's are not designed for Unicode. For Unicode strings you should
407+ use the 'Text' type from the @text@ package.
408+ These modules are intended to be imported qualified, to avoid name clashes
409+ with "Prelude" functions, e.g.
410+ > import qualified Data.ByteString as BS
414+ Data.ByteString Data.ByteString.Builder
415+ Data.ByteString.Builder.Extra Data.ByteString.Builder.Internal
416+ Data.ByteString.Builder.Prim Data.ByteString.Builder.Prim.Internal
417+ Data.ByteString.Builder.RealFloat Data.ByteString.Char8
418+ Data.ByteString.Internal Data.ByteString.Lazy
419+ Data.ByteString.Lazy.Char8 Data.ByteString.Lazy.Internal
420+ Data.ByteString.Short Data.ByteString.Short.Internal
421+ Data.ByteString.Unsafe
423+ Data.ByteString.Builder.ASCII Data.ByteString.Builder.Prim.ASCII
424+ Data.ByteString.Builder.Prim.Binary
425+ Data.ByteString.Builder.Prim.Internal.Base16
426+ Data.ByteString.Builder.Prim.Internal.Floating
427+ Data.ByteString.Builder.RealFloat.F2S
428+ Data.ByteString.Builder.RealFloat.D2S
429+ Data.ByteString.Builder.RealFloat.Internal
430+ Data.ByteString.Builder.RealFloat.TableGenerator
431+ Data.ByteString.Lazy.Internal.Deque
434+dynamic-library-dirs:
436+hs-libraries: HSbytestring-0.11.3.1
440+ base-4.16.3.0 deepseq-1.4.6.1 ghc-prim-0.8.0
441+ template-haskell-2.18.0.0
448+id: containers-0.6.5.1
449+key: containers-0.6.5.1
450+license: BSD-3-Clause
451+maintainer: libraries@haskell.org
452+synopsis: Assorted concrete container types
454+ This package contains efficient general-purpose implementations
455+ of various immutable container types including sets, maps, sequences,
457+ For a walkthrough of what this package provides with examples of common
458+ operations see the [containers
459+ introduction](https://haskell-containers.readthedocs.io).
460+ The declared cost of each operation is either worst-case or amortized, but
461+ remains valid even if structures are shared.
462+category: Data Structures
465+ Data.Containers.ListUtils Data.Graph Data.IntMap
466+ Data.IntMap.Internal Data.IntMap.Internal.Debug Data.IntMap.Lazy
467+ Data.IntMap.Merge.Lazy Data.IntMap.Merge.Strict Data.IntMap.Strict
468+ Data.IntMap.Strict.Internal Data.IntSet Data.IntSet.Internal
469+ Data.Map Data.Map.Internal Data.Map.Internal.Debug Data.Map.Lazy
470+ Data.Map.Merge.Lazy Data.Map.Merge.Strict Data.Map.Strict
471+ Data.Map.Strict.Internal Data.Sequence Data.Sequence.Internal
472+ Data.Sequence.Internal.Sorting Data.Set Data.Set.Internal Data.Tree
473+ Utils.Containers.Internal.BitQueue
474+ Utils.Containers.Internal.BitUtil
475+ Utils.Containers.Internal.StrictPair
477+ Utils.Containers.Internal.State
478+ Utils.Containers.Internal.StrictMaybe
479+ Utils.Containers.Internal.PtrEquality
480+ Utils.Containers.Internal.Coercions
481+ Utils.Containers.Internal.TypeError
482+ Data.Map.Internal.DeprecatedShowTree
483+ Data.IntMap.Internal.DeprecatedDebug
486+dynamic-library-dirs:
488+hs-libraries: HScontainers-0.6.5.1
489+depends: array-0.5.4.0 base-4.16.3.0 deepseq-1.4.6.1
498+license: BSD-3-Clause
499+maintainer: libraries@haskell.org
500+synopsis: Deep evaluation of data structures
502+ This package provides methods for fully evaluating data structures
503+ (\"deep evaluation\"). Deep evaluation is often used for adding
504+ strictness to a program, e.g. in order to force pending exceptions,
505+ remove space leaks, or force lazy I/O to happen. It is also useful
506+ in parallel programs, to ensure pending work does not migrate to the
508+ The primary use of this package is via the 'deepseq' function, a
509+ \"deep\" version of 'seq'. It is implemented on top of an 'NFData'
510+ typeclass (\"Normal Form Data\", data structures with no unevaluated
511+ components) which defines strategies for fully evaluating different
512+ data types. See module documentation in "Control.DeepSeq" for more
516+exposed-modules: Control.DeepSeq
517+hidden-modules: Control.DeepSeq.BackDoor
520+dynamic-library-dirs:
522+hs-libraries: HSdeepseq-1.4.6.1
523+depends: array-0.5.4.0 base-4.16.3.0
530+id: directory-1.3.6.2
531+key: directory-1.3.6.2
532+license: BSD-3-Clause
533+maintainer: libraries@haskell.org
534+synopsis: Platform-agnostic library for filesystem operations
536+ This library provides a basic set of operations for manipulating files and
537+ directories in a portable way.
541+ System.Directory System.Directory.Internal
542+ System.Directory.Internal.Prelude
544+ System.Directory.Internal.C_utimensat
545+ System.Directory.Internal.Common System.Directory.Internal.Config
546+ System.Directory.Internal.Posix System.Directory.Internal.Windows
549+dynamic-library-dirs:
551+hs-libraries: HSdirectory-1.3.6.2
553+ base-4.16.3.0 filepath-1.4.2.2 time-1.11.1.1 unix-2.7.2.2
560+id: exceptions-0.10.4
561+key: exceptions-0.10.4
562+license: BSD-3-Clause
564+ Copyright (C) 2013-2015 Edward A. Kmett
565+ Copyright (C) 2012 Google Inc.
566+maintainer: Edward A. Kmett <ekmett@gmail.com>
567+author: Edward A. Kmett
568+stability: provisional
569+homepage: http://github.com/ekmett/exceptions/
570+synopsis: Extensible optionally-pure exceptions
571+description: Extensible optionally-pure exceptions.
572+category: Control, Exceptions, Monad
574+exposed-modules: Control.Monad.Catch Control.Monad.Catch.Pure
577+dynamic-library-dirs:
579+hs-libraries: HSexceptions-0.10.4
581+ base-4.16.3.0 mtl-2.2.2 stm-2.5.0.2 template-haskell-2.18.0.0
582+ transformers-0.5.6.2
590+key: filepath-1.4.2.2
591+license: BSD-3-Clause
592+copyright: Neil Mitchell 2005-2020
593+maintainer: Julian Ospald <hasufell@posteo.de>
594+author: Neil Mitchell <ndmitchell@gmail.com>
595+homepage: https://github.com/haskell/filepath#readme
596+synopsis: Library for manipulating FilePaths in a cross platform way.
598+ This package provides functionality for manipulating @FilePath@ values, and is shipped with both <https://www.haskell.org/ghc/ GHC> and the <https://www.haskell.org/platform/ Haskell Platform>. It provides three modules:
599+ * "System.FilePath.Posix" manipulates POSIX\/Linux style @FilePath@ values (with @\/@ as the path separator).
600+ * "System.FilePath.Windows" manipulates Windows style @FilePath@ values (with either @\\@ or @\/@ as the path separator, and deals with drives).
601+ * "System.FilePath" is an alias for the module appropriate to your platform.
602+ All three modules provide the same API, and the same documentation (calling out differences in the different variants).
606+ System.FilePath System.FilePath.Posix System.FilePath.Windows
609+dynamic-library-dirs:
611+hs-libraries: HSfilepath-1.4.2.2
612+depends: base-4.16.3.0
621+license: BSD-3-Clause
622+maintainer: libraries@haskell.org
623+author: Sylvain Henry
624+synopsis: GHC BigNum library
626+ This package provides the low-level implementation of the standard
627+ 'BigNat', 'Natural' and 'Integer' types.
628+category: Numeric, Algebra, GHC
631+ GHC.Num.Backend GHC.Num.Backend.Native GHC.Num.Backend.Selected
632+ GHC.Num.BigNat GHC.Num.Integer GHC.Num.Natural GHC.Num.Primitives
636+dynamic-library-dirs:
638+hs-libraries: HSghc-bignum-1.2
639+depends: ghc-prim-0.8.0
648+license: BSD-3-Clause
649+maintainer: ghc-devs@haskell.org
650+synopsis: Shared functionality between GHC and its boot libraries
652+ This library is shared between GHC, ghc-pkg, and other boot
655+ A note about "GHC.Unit.Database": it only deals with the subset of
656+ the package database that the compiler cares about: modules
657+ paths etc and not package metadata like description, authors
658+ etc. It is thus not a library interface to ghc-pkg and is *not*
659+ suitable for modifying GHC package databases.
661+ The package database format and this library are constructed in
662+ such a way that while ghc-pkg depends on Cabal, the GHC library
663+ and program do not have to depend on Cabal.
667+ GHC.BaseDir, GHC.Data.ShortText, GHC.Data.SizedSeq,
669+ GHC.ForeignSrcLang.Type from ghc-boot-th-9.2.4:GHC.ForeignSrcLang.Type,
670+ GHC.HandleEncoding, GHC.LanguageExtensions,
671+ GHC.LanguageExtensions.Type from ghc-boot-th-9.2.4:GHC.LanguageExtensions.Type,
672+ GHC.Lexeme from ghc-boot-th-9.2.4:GHC.Lexeme, GHC.Platform.ArchOS,
673+ GHC.Platform.Host, GHC.Serialized, GHC.Settings.Utils,
674+ GHC.UniqueSubdir, GHC.Unit.Database, GHC.Utils.Encoding,
678+dynamic-library-dirs:
680+hs-libraries: HSghc-boot-9.2.4
682+ base-4.16.3.0 binary-0.8.9.0 bytestring-0.11.3.1 containers-0.6.5.1
683+ deepseq-1.4.6.1 directory-1.3.6.2 filepath-1.4.2.2
684+ ghc-boot-th-9.2.4 unix-2.7.2.2
691+id: ghc-boot-th-9.2.4
692+key: ghc-boot-th-9.2.4
693+license: BSD-3-Clause
694+maintainer: ghc-devs@haskell.org
696+ Shared functionality between GHC and the @template-haskell@
699+ This library contains various bits shared between the @ghc@ and
700+ @template-haskell@ libraries.
701+ This package exists to ensure that @template-haskell@ has a
702+ minimal set of transitive dependencies, since it is intended to
703+ be depended upon by user code.
707+ GHC.ForeignSrcLang.Type GHC.LanguageExtensions.Type GHC.Lexeme
710+dynamic-library-dirs:
712+hs-libraries: HSghc-boot-th-9.2.4
713+depends: base-4.16.3.0
720+id: ghc-compact-0.1.0.0
721+key: ghc-compact-0.1.0.0
722+license: BSD-3-Clause
723+maintainer: libraries@haskell.org
724+synopsis: In memory storage of deeply evaluated data structure
726+ This package provides minimal functionality for working with
727+ "compact regions", which hold a fully evaluated Haskell object graph.
728+ These regions maintain the invariant that no pointers live inside the struct
729+ that point outside it, which ensures efficient garbage collection without
730+ ever reading the structure contents (effectively, it works as a manually
731+ managed "oldest generation" which is never freed until the whole is
733+ Internally, the struct is stored a single contiguous block of memory,
734+ which allows efficient serialization and deserialization of structs
735+ for distributed computing.
736+ This package provides a low-level API; see also the </package/compact
737+ compact package> which provides a user-facing API.
740+exposed-modules: GHC.Compact GHC.Compact.Serialized
743+dynamic-library-dirs:
745+hs-libraries: HSghc-compact-0.1.0.0
746+depends: base-4.16.3.0 bytestring-0.11.3.1 ghc-prim-0.8.0
755+license: BSD-3-Clause
756+maintainer: libraries@haskell.org
757+synopsis: Functions for walking GHC's heap
759+ This package provides functions for walking the GHC heap data structures
760+ and retrieving information about those data structures.
764+ GHC.Exts.Heap GHC.Exts.Heap.ClosureTypes GHC.Exts.Heap.Closures
765+ GHC.Exts.Heap.Constants GHC.Exts.Heap.FFIClosures
766+ GHC.Exts.Heap.FFIClosures_ProfilingDisabled
767+ GHC.Exts.Heap.FFIClosures_ProfilingEnabled GHC.Exts.Heap.InfoTable
768+ GHC.Exts.Heap.InfoTable.Types GHC.Exts.Heap.InfoTableProf
769+ GHC.Exts.Heap.ProfInfo.PeekProfInfo
770+ GHC.Exts.Heap.ProfInfo.PeekProfInfo_ProfilingDisabled
771+ GHC.Exts.Heap.ProfInfo.PeekProfInfo_ProfilingEnabled
772+ GHC.Exts.Heap.ProfInfo.Types GHC.Exts.Heap.Utils
775+dynamic-library-dirs:
777+hs-libraries: HSghc-heap-9.2.4
778+depends: base-4.16.3.0 containers-0.6.5.1 ghc-prim-0.8.0 rts
787+license: BSD-3-Clause
788+maintainer: libraries@haskell.org
789+synopsis: GHC primitives
791+ This package contains the primitive types and operations supplied by GHC.
795+ GHC.CString GHC.Classes GHC.Debug GHC.Magic GHC.Prim.Exception
796+ GHC.Prim.Ext GHC.Prim.Panic GHC.PrimopWrappers GHC.Tuple GHC.Types
800+dynamic-library-dirs:
802+hs-libraries: HSghc-prim-0.8.0
803+extra-libraries: gcc c m
813+license: BSD-3-Clause
814+maintainer: ghc-devs@haskell.org
815+synopsis: The library supporting GHC's interactive interpreter
817+ This library offers interfaces which mediate interactions between the
818+ @ghci@ interactive shell and @iserv@, GHC's out-of-process interpreter
823+ GHCi.BinaryArray GHCi.BreakArray GHCi.CreateBCO GHCi.FFI
824+ GHCi.InfoTable GHCi.Message GHCi.ObjLink GHCi.RemoteTypes
825+ GHCi.ResolvedBCO GHCi.Run GHCi.Signals GHCi.StaticPtrTable GHCi.TH
829+dynamic-library-dirs:
831+hs-libraries: HSghci-9.2.4
833+ array-0.5.4.0 base-4.16.3.0 binary-0.8.9.0 bytestring-0.11.3.1
834+ containers-0.6.5.1 deepseq-1.4.6.1 filepath-1.4.2.2 ghc-boot-9.2.4
835+ ghc-heap-9.2.4 ghc-prim-0.8.0 rts template-haskell-2.18.0.0
836+ transformers-0.5.6.2 unix-2.7.2.2
845+license: BSD-3-Clause
846+copyright: (c) Judah Jacobson
847+maintainer: Judah Jacobson <judah.jacobson@gmail.com>
848+author: Judah Jacobson
850+homepage: https://github.com/judah/haskeline
852+ A command-line interface for user input, written in Haskell.
854+ Haskeline provides a user interface for line input in command-line
855+ programs. This library is similar in purpose to readline, but since
856+ it is written in Haskell it is (hopefully) more easily used in other
858+ Haskeline runs both on POSIX-compatible systems and on Windows.
859+category: User Interfaces
862+ System.Console.Haskeline System.Console.Haskeline.Completion
863+ System.Console.Haskeline.History System.Console.Haskeline.IO
864+ System.Console.Haskeline.Internal
866+ System.Console.Haskeline.Backend
867+ System.Console.Haskeline.Backend.WCWidth
868+ System.Console.Haskeline.Command
869+ System.Console.Haskeline.Command.Completion
870+ System.Console.Haskeline.Command.History
871+ System.Console.Haskeline.Command.KillRing
872+ System.Console.Haskeline.Directory System.Console.Haskeline.Emacs
873+ System.Console.Haskeline.InputT System.Console.Haskeline.Key
874+ System.Console.Haskeline.LineState System.Console.Haskeline.Monads
875+ System.Console.Haskeline.Prefs System.Console.Haskeline.Recover
876+ System.Console.Haskeline.RunCommand System.Console.Haskeline.Term
877+ System.Console.Haskeline.Command.Undo System.Console.Haskeline.Vi
878+ System.Console.Haskeline.Backend.Posix
879+ System.Console.Haskeline.Backend.Posix.Encoder
880+ System.Console.Haskeline.Backend.DumbTerm
883+dynamic-library-dirs:
885+hs-libraries: HShaskeline-0.8.2
887+ base-4.16.3.0 bytestring-0.11.3.1 containers-0.6.5.1
888+ directory-1.3.6.2 exceptions-0.10.4 filepath-1.4.2.2
889+ process-1.6.13.2 stm-2.5.0.2 transformers-0.5.6.2 unix-2.7.2.2
898+license: BSD-3-Clause
899+maintainer: ghc-devs@haskell.org
901+synopsis: Code Coverage Library for Haskell
903+ This package provides the code coverage library for Haskell.
904+ See <http://www.haskell.org/haskellwiki/Haskell_program_coverage> for more
909+ Trace.Hpc.Mix Trace.Hpc.Reflect Trace.Hpc.Tix Trace.Hpc.Util
912+dynamic-library-dirs:
914+hs-libraries: HShpc-0.6.1.0
916+ base-4.16.3.0 containers-0.6.5.1 deepseq-1.4.6.1 directory-1.3.6.2
917+ filepath-1.4.2.2 time-1.11.1.1
926+license: BSD-3-Clause
927+maintainer: hvr@gnu.org
928+author: Herbert Valerio Riedel
929+synopsis: Integer library based on GMP
931+ This package used to provide an implementation of the standard 'Integer'
933+ <http://gmplib.org/ GNU Multiple Precision Arithmetic Library (GMP)>.
934+ It is now deprecated in favor of the 'ghc-bignum' package.
935+ Its purpose is to provide backward compatibility for codes directly
936+ depending on the `integer-gmp` package.
937+category: Numeric, Algebra
939+exposed-modules: GHC.Integer.GMP.Internals
942+dynamic-library-dirs:
944+hs-libraries: HSinteger-gmp-1.1
945+depends: base-4.16.3.0 ghc-bignum-1.2 ghc-prim-0.8.0
954+license: BSD-3-Clause
959+ Provides shared functionality between iserv and iserv-proxy.
961+ Provides shared functionality between iserv and iserv-proxy.
962+category: Development
964+exposed-modules: GHCi.Utils Lib
967+dynamic-library-dirs:
969+hs-libraries: HSlibiserv-9.2.4
971+ base-4.16.3.0 binary-0.8.9.0 bytestring-0.11.3.1 containers-0.6.5.1
972+ deepseq-1.4.6.1 ghci-9.2.4 unix-2.7.2.2
981+license: BSD-3-Clause
982+maintainer: Edward Kmett <ekmett@gmail.com>
984+homepage: http://github.com/haskell/mtl
985+synopsis: Monad classes, using functional dependencies
987+ Monad classes using functional dependencies, with instances
988+ for various monad transformers, inspired by the paper
989+ /Functional Programming with Overloading and Higher-Order Polymorphism/,
990+ by Mark P Jones, in /Advanced School of Functional Programming/, 1995
991+ (<http://web.cecs.pdx.edu/~mpj/pubs/springschool.html>).
995+ Control.Monad.Cont Control.Monad.Cont.Class Control.Monad.Error
996+ Control.Monad.Error.Class Control.Monad.Except
997+ Control.Monad.Identity Control.Monad.List Control.Monad.RWS
998+ Control.Monad.RWS.Class Control.Monad.RWS.Lazy
999+ Control.Monad.RWS.Strict Control.Monad.Reader
1000+ Control.Monad.Reader.Class Control.Monad.State
1001+ Control.Monad.State.Class Control.Monad.State.Lazy
1002+ Control.Monad.State.Strict Control.Monad.Trans Control.Monad.Writer
1003+ Control.Monad.Writer.Class Control.Monad.Writer.Lazy
1004+ Control.Monad.Writer.Strict
1007+dynamic-library-dirs:
1009+hs-libraries: HSmtl-2.2.2
1010+depends: base-4.16.3.0 transformers-0.5.6.2
1018+key: parsec-3.1.15.0
1019+license: BSD-2-Clause
1021+ Oleg Grenrus <oleg.grenrus@iki.fi>, Herbert Valerio Riedel <hvr@gnu.org>
1023+ Daan Leijen <daan@microsoft.com>, Paolo Martini <paolo@nemail.it>, Antoine Latter <aslatter@gmail.com>
1024+homepage: https://github.com/haskell/parsec
1025+synopsis: Monadic parser combinators
1027+ Parsec is designed from scratch as an industrial-strength parser
1028+ library. It is simple, safe, well documented (on the package
1029+ homepage), has extensive libraries, good error messages,
1030+ and is fast. It is defined as a monad transformer that can be
1031+ stacked on arbitrary monads, and it is also parametric in the
1033+ The main entry point is the "Text.Parsec" module which provides
1034+ defaults for parsing 'Char'acter data.
1035+ The "Text.ParserCombinators.Parsec" module hierarchy contains
1036+ the legacy @parsec-2@ API and may be removed at some point in
1041+ Text.Parsec Text.Parsec.ByteString Text.Parsec.ByteString.Lazy
1042+ Text.Parsec.Char Text.Parsec.Combinator Text.Parsec.Error
1043+ Text.Parsec.Expr Text.Parsec.Language Text.Parsec.Perm
1044+ Text.Parsec.Pos Text.Parsec.Prim Text.Parsec.String
1045+ Text.Parsec.Text Text.Parsec.Text.Lazy Text.Parsec.Token
1046+ Text.ParserCombinators.Parsec Text.ParserCombinators.Parsec.Char
1047+ Text.ParserCombinators.Parsec.Combinator
1048+ Text.ParserCombinators.Parsec.Error
1049+ Text.ParserCombinators.Parsec.Expr
1050+ Text.ParserCombinators.Parsec.Language
1051+ Text.ParserCombinators.Parsec.Perm
1052+ Text.ParserCombinators.Parsec.Pos
1053+ Text.ParserCombinators.Parsec.Prim
1054+ Text.ParserCombinators.Parsec.Token
1057+dynamic-library-dirs:
1059+hs-libraries: HSparsec-3.1.15.0
1061+ base-4.16.3.0 bytestring-0.11.3.1 mtl-2.2.2 text-1.2.5.0
1070+license: BSD-3-Clause
1071+maintainer: David Terei <code@davidterei.com>
1073+homepage: http://github.com/haskell/pretty
1074+synopsis: Pretty-printing library
1076+ This package contains a pretty-printing library, a set of API's
1077+ that provides a way to easily print out text in a consistent
1078+ format of your choosing. This is useful for compilers and related
1080+ This library was originally designed by John Hughes's and has since
1081+ been heavily modified by Simon Peyton Jones.
1085+ Text.PrettyPrint Text.PrettyPrint.Annotated
1086+ Text.PrettyPrint.Annotated.HughesPJ
1087+ Text.PrettyPrint.Annotated.HughesPJClass Text.PrettyPrint.HughesPJ
1088+ Text.PrettyPrint.HughesPJClass
1091+dynamic-library-dirs:
1093+hs-libraries: HSpretty-1.1.3.6
1094+depends: base-4.16.3.0 deepseq-1.4.6.1 ghc-prim-0.8.0
1101+id: process-1.6.13.2
1102+key: process-1.6.13.2
1103+license: BSD-3-Clause
1104+maintainer: libraries@haskell.org
1105+synopsis: Process libraries
1107+ This package contains libraries for dealing with system processes.
1108+ The typed-process package is a more recent take on a process API,
1109+ which uses this package internally. It features better binary
1110+ support, easier concurrency, and a more composable API. You can
1111+ read more about it at
1112+ <https://github.com/fpco/typed-process/#readme>.
1115+exposed-modules: System.Cmd System.Process System.Process.Internals
1116+hidden-modules: System.Process.Common System.Process.Posix
1119+dynamic-library-dirs:
1121+hs-libraries: HSprocess-1.6.13.2
1123+includes: runProcess.h
1125+ base-4.16.3.0 deepseq-1.4.6.1 directory-1.3.6.2 filepath-1.4.2.2
1135+license: BSD-3-Clause
1136+maintainer: libraries@haskell.org
1137+homepage: https://wiki.haskell.org/Software_transactional_memory
1138+synopsis: Software Transactional Memory
1140+ Software Transactional Memory, or STM, is an abstraction for
1141+ concurrent communication. The main benefits of STM are
1142+ /composability/ and /modularity/. That is, using STM you can write
1143+ concurrent abstractions that can be easily composed with any other
1144+ abstraction built using STM, without exposing the details of how
1145+ your abstraction ensures safety. This is typically not the case
1146+ with other forms of concurrent communication, such as locks or
1148+category: Concurrency
1151+ Control.Concurrent.STM Control.Concurrent.STM.TArray
1152+ Control.Concurrent.STM.TBQueue Control.Concurrent.STM.TChan
1153+ Control.Concurrent.STM.TMVar Control.Concurrent.STM.TQueue
1154+ Control.Concurrent.STM.TSem Control.Concurrent.STM.TVar
1156+hidden-modules: Control.Sequential.STM
1159+dynamic-library-dirs:
1161+hs-libraries: HSstm-2.5.0.2
1162+depends: array-0.5.4.0 base-4.16.3.0
1166+name: template-haskell
1169+id: template-haskell-2.18.0.0
1170+key: template-haskell-2.18.0.0
1171+license: BSD-3-Clause
1172+maintainer: libraries@haskell.org
1173+synopsis: Support library for Template Haskell
1175+ This package provides modules containing facilities for manipulating
1176+ Haskell source code using Template Haskell.
1177+ See <http://www.haskell.org/haskellwiki/Template_Haskell> for more
1179+category: Template Haskell
1182+ Language.Haskell.TH Language.Haskell.TH.CodeDo
1183+ Language.Haskell.TH.LanguageExtensions Language.Haskell.TH.Lib
1184+ Language.Haskell.TH.Lib.Internal Language.Haskell.TH.Ppr
1185+ Language.Haskell.TH.PprLib Language.Haskell.TH.Quote
1186+ Language.Haskell.TH.Syntax
1187+hidden-modules: Language.Haskell.TH.Lib.Map
1190+dynamic-library-dirs:
1192+hs-libraries: HStemplate-haskell-2.18.0.0
1194+ base-4.16.3.0 ghc-boot-th-9.2.4 ghc-prim-0.8.0 pretty-1.1.3.6
1203+license: BSD-2-Clause
1204+copyright: 2009-2011 Bryan O'Sullivan, 2008-2009 Tom Harper
1206+ Haskell Text Team <andrew.lelechenko@gmail.com>, Core Libraries Committee
1207+author: Bryan O'Sullivan <bos@serpentine.com>
1208+homepage: https://github.com/haskell/text
1209+synopsis: An efficient packed Unicode text type.
1211+ An efficient packed, immutable Unicode text type (both strict and
1212+ lazy), with a powerful loop fusion optimization framework.
1213+ The 'Text' type represents Unicode character strings, in a time and
1214+ space-efficient manner. This package provides text processing
1215+ capabilities that are optimized for performance critical use, both
1216+ in terms of large data quantities and high speed.
1217+ The 'Text' type provides character-encoding, type-safe case
1218+ conversion via whole-string case conversion functions (see "Data.Text").
1219+ It also provides a range of functions for converting 'Text' values to
1220+ and from 'ByteStrings', using several standard encodings
1221+ (see "Data.Text.Encoding").
1222+ Efficient locale-sensitive support for text IO is also supported
1223+ (see "Data.Text.IO").
1224+ These modules are intended to be imported qualified, to avoid name
1225+ clashes with Prelude functions, e.g.
1226+ > import qualified Data.Text as T
1228+ To use an extended and very rich family of functions for working
1229+ with Unicode text (including normalization, regular expressions,
1230+ non-standard encodings, text breaking, and locales), see
1231+ the [text-icu package](https://hackage.haskell.org/package/text-icu)
1232+ based on the well-respected and liberally
1233+ licensed [ICU library](http://site.icu-project.org/).
1234+ == Internal Representation: UTF-16 vs. UTF-8
1235+ Currently the @text@ library uses UTF-16 as its internal representation
1236+ which is [neither a fixed-width nor always the most dense representation](http://utf8everywhere.org/)
1237+ for Unicode text. We're currently investigating the feasibility
1238+ of [changing Text's internal representation to UTF-8](https://github.com/text-utf8)
1239+ and if you need such a 'Text' type right now you might be interested in using the spin-off
1240+ packages <https://hackage.haskell.org/package/text-utf8 text-utf8> and
1241+ <https://hackage.haskell.org/package/text-short text-short>.
1242+category: Data, Text
1245+ Data.Text Data.Text.Array Data.Text.Encoding
1246+ Data.Text.Encoding.Error Data.Text.Foreign Data.Text.IO
1247+ Data.Text.Internal Data.Text.Internal.Builder
1248+ Data.Text.Internal.Builder.Functions
1249+ Data.Text.Internal.Builder.Int.Digits
1250+ Data.Text.Internal.Builder.RealFloat.Functions
1251+ Data.Text.Internal.ByteStringCompat
1252+ Data.Text.Internal.Encoding.Fusion
1253+ Data.Text.Internal.Encoding.Fusion.Common
1254+ Data.Text.Internal.Encoding.Utf16 Data.Text.Internal.Encoding.Utf32
1255+ Data.Text.Internal.Encoding.Utf8 Data.Text.Internal.Functions
1256+ Data.Text.Internal.Fusion Data.Text.Internal.Fusion.CaseMapping
1257+ Data.Text.Internal.Fusion.Common Data.Text.Internal.Fusion.Size
1258+ Data.Text.Internal.Fusion.Types Data.Text.Internal.IO
1259+ Data.Text.Internal.Lazy Data.Text.Internal.Lazy.Encoding.Fusion
1260+ Data.Text.Internal.Lazy.Fusion Data.Text.Internal.Lazy.Search
1261+ Data.Text.Internal.PrimCompat Data.Text.Internal.Private
1262+ Data.Text.Internal.Read Data.Text.Internal.Search
1263+ Data.Text.Internal.Unsafe Data.Text.Internal.Unsafe.Char
1264+ Data.Text.Internal.Unsafe.Shift Data.Text.Lazy
1265+ Data.Text.Lazy.Builder Data.Text.Lazy.Builder.Int
1266+ Data.Text.Lazy.Builder.RealFloat Data.Text.Lazy.Encoding
1267+ Data.Text.Lazy.IO Data.Text.Lazy.Internal Data.Text.Lazy.Read
1268+ Data.Text.Read Data.Text.Unsafe
1269+hidden-modules: Data.Text.Show
1272+dynamic-library-dirs:
1274+hs-libraries: HStext-1.2.5.0
1276+ array-0.5.4.0 base-4.16.3.0 binary-0.8.9.0 bytestring-0.11.3.1
1277+ deepseq-1.4.6.1 ghc-prim-0.8.0 template-haskell-2.18.0.0
1286+license: BSD-3-Clause
1287+maintainer: <ashley@semantic.org>
1288+author: Ashley Yakeley
1290+homepage: https://github.com/haskell/time
1291+synopsis: A time library
1292+description: Time, clocks and calendars
1296+ Data.Time Data.Time.Calendar Data.Time.Calendar.Easter
1297+ Data.Time.Calendar.Julian Data.Time.Calendar.Month
1298+ Data.Time.Calendar.MonthDay Data.Time.Calendar.OrdinalDate
1299+ Data.Time.Calendar.Quarter Data.Time.Calendar.WeekDate
1300+ Data.Time.Clock Data.Time.Clock.POSIX Data.Time.Clock.System
1301+ Data.Time.Clock.TAI Data.Time.Format Data.Time.Format.ISO8601
1302+ Data.Time.Format.Internal Data.Time.LocalTime
1304+ Data.Format Data.Time.Calendar.Types Data.Time.Calendar.Private
1305+ Data.Time.Calendar.Days Data.Time.Calendar.Gregorian
1306+ Data.Time.Calendar.CalendarDiffDays Data.Time.Calendar.Week
1307+ Data.Time.Calendar.JulianYearDay Data.Time.Clock.Internal.DiffTime
1308+ Data.Time.Clock.Internal.AbsoluteTime
1309+ Data.Time.Clock.Internal.NominalDiffTime
1310+ Data.Time.Clock.Internal.POSIXTime
1311+ Data.Time.Clock.Internal.UniversalTime
1312+ Data.Time.Clock.Internal.SystemTime
1313+ Data.Time.Clock.Internal.UTCTime Data.Time.Clock.Internal.CTimeval
1314+ Data.Time.Clock.Internal.CTimespec Data.Time.Clock.Internal.UTCDiff
1315+ Data.Time.LocalTime.Internal.TimeZone
1316+ Data.Time.LocalTime.Internal.TimeOfDay
1317+ Data.Time.LocalTime.Internal.CalendarDiffTime
1318+ Data.Time.LocalTime.Internal.LocalTime
1319+ Data.Time.LocalTime.Internal.ZonedTime Data.Time.Format.Parse
1320+ Data.Time.Format.Locale Data.Time.Format.Format.Class
1321+ Data.Time.Format.Format.Instances Data.Time.Format.Parse.Class
1322+ Data.Time.Format.Parse.Instances
1325+dynamic-library-dirs:
1327+hs-libraries: HStime-1.11.1.1
1329+depends: base-4.16.3.0 deepseq-1.4.6.1
1336+id: transformers-0.5.6.2
1337+key: transformers-0.5.6.2
1338+license: BSD-3-Clause
1339+maintainer: Ross Paterson <R.Paterson@city.ac.uk>
1340+author: Andy Gill, Ross Paterson
1341+synopsis: Concrete functor and monad transformers
1343+ A portable library of functor and monad transformers, inspired by
1345+ * \"Functional Programming with Overloading and Higher-Order
1346+ Polymorphism\", by Mark P Jones,
1347+ in /Advanced School of Functional Programming/, 1995
1348+ (<http://web.cecs.pdx.edu/~mpj/pubs/springschool.html>).
1349+ This package contains:
1350+ * the monad transformer class (in "Control.Monad.Trans.Class")
1351+ * concrete functor and monad transformers, each with associated
1352+ operations and functions to lift operations associated with other
1354+ The package can be used on its own in portable Haskell code, in
1355+ which case operations need to be manually lifted through transformer
1356+ stacks (see "Control.Monad.Trans.Class" for some examples).
1357+ Alternatively, it can be used with the non-portable monad classes in
1358+ the @mtl@ or @monads-tf@ packages, which automatically lift operations
1359+ introduced by monad transformers through other transformers.
1363+ Control.Applicative.Backwards Control.Applicative.Lift
1364+ Control.Monad.Signatures Control.Monad.Trans.Accum
1365+ Control.Monad.Trans.Class Control.Monad.Trans.Cont
1366+ Control.Monad.Trans.Error Control.Monad.Trans.Except
1367+ Control.Monad.Trans.Identity Control.Monad.Trans.List
1368+ Control.Monad.Trans.Maybe Control.Monad.Trans.RWS
1369+ Control.Monad.Trans.RWS.CPS Control.Monad.Trans.RWS.Lazy
1370+ Control.Monad.Trans.RWS.Strict Control.Monad.Trans.Reader
1371+ Control.Monad.Trans.Select Control.Monad.Trans.State
1372+ Control.Monad.Trans.State.Lazy Control.Monad.Trans.State.Strict
1373+ Control.Monad.Trans.Writer Control.Monad.Trans.Writer.CPS
1374+ Control.Monad.Trans.Writer.Lazy Control.Monad.Trans.Writer.Strict
1375+ Data.Functor.Constant Data.Functor.Reverse
1378+dynamic-library-dirs:
1380+hs-libraries: HStransformers-0.5.6.2
1381+depends: base-4.16.3.0
1390+license: BSD-3-Clause
1391+maintainer: libraries@haskell.org
1392+homepage: https://github.com/haskell/unix
1393+synopsis: POSIX functionality
1395+ This package gives you access to the set of operating system
1396+ services standardised by
1397+ <http://pubs.opengroup.org/onlinepubs/9699919799/ POSIX.1-2008>
1398+ (or the IEEE Portable Operating System Interface for Computing
1399+ Environments - IEEE Std. 1003.1).
1400+ The package is not supported under Windows.
1404+ System.Posix System.Posix.ByteString
1405+ System.Posix.ByteString.FilePath System.Posix.Directory
1406+ System.Posix.Directory.ByteString System.Posix.DynamicLinker
1407+ System.Posix.DynamicLinker.ByteString
1408+ System.Posix.DynamicLinker.Module
1409+ System.Posix.DynamicLinker.Module.ByteString
1410+ System.Posix.DynamicLinker.Prim System.Posix.Env
1411+ System.Posix.Env.ByteString System.Posix.Error System.Posix.Fcntl
1412+ System.Posix.Files System.Posix.Files.ByteString System.Posix.IO
1413+ System.Posix.IO.ByteString System.Posix.Process
1414+ System.Posix.Process.ByteString System.Posix.Process.Internals
1415+ System.Posix.Resource System.Posix.Semaphore System.Posix.SharedMem
1416+ System.Posix.Signals System.Posix.Signals.Exts System.Posix.Temp
1417+ System.Posix.Temp.ByteString System.Posix.Terminal
1418+ System.Posix.Terminal.ByteString System.Posix.Time
1419+ System.Posix.Unistd System.Posix.User
1421+ System.Posix.Directory.Common System.Posix.DynamicLinker.Common
1422+ System.Posix.Files.Common System.Posix.IO.Common
1423+ System.Posix.Process.Common System.Posix.Terminal.Common
1426+dynamic-library-dirs:
1428+hs-libraries: HSunix-2.7.2.2
1430+includes: HsUnix.h execvpe.h
1431+depends: base-4.16.3.0 bytestring-0.11.3.1 time-1.11.1.1
1440+license: BSD-3-Clause
1441+maintainer: glasgow-haskell-users@haskell.org
1445+extra-libraries: m rt dl ffi numa
1449+ "-Wl,-u,base_GHCziTopHandler_runIO_closure"
1450+ "-Wl,-u,base_GHCziTopHandler_runNonIO_closure"
1451+ "-Wl,-u,ghczmprim_GHCziTuple_Z0T_closure"
1452+ "-Wl,-u,ghczmprim_GHCziTypes_True_closure"
1453+ "-Wl,-u,ghczmprim_GHCziTypes_False_closure"
1454+ "-Wl,-u,base_GHCziPack_unpackCString_closure"
1455+ "-Wl,-u,base_GHCziWeak_runFinalizzerBatch_closure"
1456+ "-Wl,-u,base_GHCziIOziException_stackOverflow_closure"
1457+ "-Wl,-u,base_GHCziIOziException_heapOverflow_closure"
1458+ "-Wl,-u,base_GHCziIOziException_allocationLimitExceeded_closure"
1459+ "-Wl,-u,base_GHCziIOziException_blockedIndefinitelyOnMVar_closure"
1460+ "-Wl,-u,base_GHCziIOziException_blockedIndefinitelyOnSTM_closure"
1461+ "-Wl,-u,base_GHCziIOziException_cannotCompactFunction_closure"
1462+ "-Wl,-u,base_GHCziIOziException_cannotCompactPinned_closure"
1463+ "-Wl,-u,base_GHCziIOziException_cannotCompactMutable_closure"
1464+ "-Wl,-u,base_GHCziIOPort_doubleReadException_closure"
1465+ "-Wl,-u,base_ControlziExceptionziBase_nonTermination_closure"
1466+ "-Wl,-u,base_ControlziExceptionziBase_nestedAtomically_closure"
1467+ "-Wl,-u,base_GHCziEventziThread_blockedOnBadFD_closure"
1468+ "-Wl,-u,base_GHCziExceptionziType_divZZeroException_closure"
1469+ "-Wl,-u,base_GHCziExceptionziType_underflowException_closure"
1470+ "-Wl,-u,base_GHCziExceptionziType_overflowException_closure"
1471+ "-Wl,-u,base_GHCziConcziSync_runSparks_closure"
1472+ "-Wl,-u,base_GHCziConcziIO_ensureIOManagerIsRunning_closure"
1473+ "-Wl,-u,base_GHCziConcziIO_interruptIOManager_closure"
1474+ "-Wl,-u,base_GHCziConcziIO_ioManagerCapabilitiesChanged_closure"
1475+ "-Wl,-u,base_GHCziConcziSignal_runHandlersPtr_closure"
1476+ "-Wl,-u,base_GHCziTopHandler_flushStdHandles_closure"
1477+ "-Wl,-u,base_GHCziTopHandler_runMainIO_closure"
1478+ "-Wl,-u,ghczmprim_GHCziTypes_Czh_con_info"
1479+ "-Wl,-u,ghczmprim_GHCziTypes_Izh_con_info"
1480+ "-Wl,-u,ghczmprim_GHCziTypes_Fzh_con_info"
1481+ "-Wl,-u,ghczmprim_GHCziTypes_Dzh_con_info"
1482+ "-Wl,-u,ghczmprim_GHCziTypes_Wzh_con_info"
1483+ "-Wl,-u,base_GHCziPtr_Ptr_con_info"
1484+ "-Wl,-u,base_GHCziPtr_FunPtr_con_info"
1485+ "-Wl,-u,base_GHCziInt_I8zh_con_info"
1486+ "-Wl,-u,base_GHCziInt_I16zh_con_info"
1487+ "-Wl,-u,base_GHCziInt_I32zh_con_info"
1488+ "-Wl,-u,base_GHCziInt_I64zh_con_info"
1489+ "-Wl,-u,base_GHCziWord_W8zh_con_info"
1490+ "-Wl,-u,base_GHCziWord_W16zh_con_info"
1491+ "-Wl,-u,base_GHCziWord_W32zh_con_info"
1492+ "-Wl,-u,base_GHCziWord_W64zh_con_info"
1493+ "-Wl,-u,base_GHCziStable_StablePtr_con_info"
1494+ "-Wl,-u,hs_atomic_add8" "-Wl,-u,hs_atomic_add16"
1495+ "-Wl,-u,hs_atomic_add32" "-Wl,-u,hs_atomic_add64"
1496+ "-Wl,-u,hs_atomic_sub8" "-Wl,-u,hs_atomic_sub16"
1497+ "-Wl,-u,hs_atomic_sub32" "-Wl,-u,hs_atomic_sub64"
1498+ "-Wl,-u,hs_atomic_and8" "-Wl,-u,hs_atomic_and16"
1499+ "-Wl,-u,hs_atomic_and32" "-Wl,-u,hs_atomic_and64"
1500+ "-Wl,-u,hs_atomic_nand8" "-Wl,-u,hs_atomic_nand16"
1501+ "-Wl,-u,hs_atomic_nand32" "-Wl,-u,hs_atomic_nand64"
1502+ "-Wl,-u,hs_atomic_or8" "-Wl,-u,hs_atomic_or16"
1503+ "-Wl,-u,hs_atomic_or32" "-Wl,-u,hs_atomic_or64"
1504+ "-Wl,-u,hs_atomic_xor8" "-Wl,-u,hs_atomic_xor16"
1505+ "-Wl,-u,hs_atomic_xor32" "-Wl,-u,hs_atomic_xor64"
1506+ "-Wl,-u,hs_cmpxchg8" "-Wl,-u,hs_cmpxchg16" "-Wl,-u,hs_cmpxchg32"
1507+ "-Wl,-u,hs_cmpxchg64" "-Wl,-u,hs_xchg8" "-Wl,-u,hs_xchg16"
1508+ "-Wl,-u,hs_xchg32" "-Wl,-u,hs_xchg64" "-Wl,-u,hs_atomicread8"
1509+ "-Wl,-u,hs_atomicread16" "-Wl,-u,hs_atomicread32"
1510+ "-Wl,-u,hs_atomicread64" "-Wl,-u,hs_atomicwrite8"
1511+ "-Wl,-u,hs_atomicwrite16" "-Wl,-u,hs_atomicwrite32"
1512+ "-Wl,-u,hs_atomicwrite64"
materialized/dummy-ghc/aarch64-unknown-linux-gnu-aarch64-unknown-linux-gnu-ghc-9.2.4-x86_64-linux/ghc-pkg/versionnew file+1
@@ -0,0 +1 @@
1+GHC package manager version 9.2.4
materialized/dummy-ghc/aarch64-unknown-linux-gnu-aarch64-unknown-linux-gnu-ghc-9.2.4-x86_64-linux/ghc/infonew file+66
@@ -0,0 +1,66 @@
1+ [("Project name","The Glorious Glasgow Haskell Compilation System")
2+ ,("GCC extra via C opts","")
3+ ,("C compiler flags","")
4+ ,("C++ compiler flags","")
5+ ,("C compiler link flags","-Wl,-z,noexecstack")
6+ ,("C compiler supports -no-pie","YES")
7+ ,("Haskell CPP flags","-E -undef -traditional")
8+ ,("ld flags","-z noexecstack")
9+ ,("ld supports compact unwind","NO")
10+ ,("ld supports build-id","YES")
11+ ,("ld supports filelist","NO")
12+ ,("ld is GNU ld","YES")
13+ ,("Merge objects flags","-r")
15+ ,("ar supports at file","YES")
16+ ,("otool command","otool")
17+ ,("install_name_tool command","install_name_tool")
18+ ,("touch command","touch")
19+ ,("dllwrap command","/bin/false")
20+ ,("windres command","/bin/false")
21+ ,("libtool command","libtool")
22+ ,("cross compiling","YES")
23+ ,("target platform string","aarch64-unknown-linux")
24+ ,("target os","OSLinux")
25+ ,("target arch","ArchAArch64")
26+ ,("target word size","8")
27+ ,("target word big endian","NO")
28+ ,("target has GNU nonexec stack","YES")
29+ ,("target has .ident directive","YES")
30+ ,("target has subsections via symbols","NO")
31+ ,("target has RTS linker","YES")
32+ ,("Unregisterised","NO")
33+ ,("LLVM target","aarch64-unknown-linux")
34+ ,("LLVM llc command","llc")
35+ ,("LLVM opt command","opt")
36+ ,("LLVM clang command","clang")
37+ ,("Use interpreter","YES")
38+ ,("Support SMP","YES")
39+ ,("RTS ways","l debug thr thr_debug thr_l thr_p thr_debug_p debug_p")
40+ ,("Tables next to code","YES")
41+ ,("Leading underscore","NO")
42+ ,("Use LibFFI","YES")
43+ ,("RTS expects libdw","NO")
44+ ,("Project version","9.2.4")
45+ ,("Project Git commit id","a54827e0b48af33fa9cfde6ad131c6751c2fe321")
46+ ,("Booter version","8.10.7")
48+ ,("Build platform","x86_64-unknown-linux")
49+ ,("Host platform","x86_64-unknown-linux")
50+ ,("Target platform","aarch64-unknown-linux")
51+ ,("Have interpreter","YES")
52+ ,("Object splitting supported","NO")
53+ ,("Have native code generator","YES")
54+ ,("Target default backend","NCG")
55+ ,("Support dynamic-too","YES")
56+ ,("Support parallel --make","YES")
57+ ,("Support reexported-modules","YES")
58+ ,("Support thinning and renaming package flags","YES")
59+ ,("Support Backpack","YES")
60+ ,("Requires unified installed package IDs","YES")
61+ ,("Uses package keys","YES")
62+ ,("Uses unit IDs","YES")
63+ ,("GHC Dynamic","NO")
64+ ,("GHC Profiled","NO")
materialized/dummy-ghc/aarch64-unknown-linux-gnu-aarch64-unknown-linux-gnu-ghc-9.2.4-x86_64-linux/ghc/numeric-versionnew file+1
materialized/dummy-ghc/aarch64-unknown-linux-gnu-aarch64-unknown-linux-gnu-ghc-9.2.4-x86_64-linux/ghc/supported-languagesnew file+268
@@ -0,0 +1,268 @@
10+NoAlternativeLayoutRule
11+AlternativeLayoutRuleTransitional
12+NoAlternativeLayoutRuleTransitional
27+ConstrainedClassMethods
28+NoConstrainedClassMethods
55+DisambiguateRecordFields
56+NoDisambiguateRecordFields
64+NoDuplicateRecordFields
73+ExistentialQuantification
74+NoExistentialQuantification
80+NoExtendedDefaultRules
85+ForeignFunctionInterface
86+NoForeignFunctionInterface
87+FunctionalDependencies
88+NoFunctionalDependencies
94+NoGHCForeignImportPrim
95+GeneralizedNewtypeDeriving
96+NoGeneralizedNewtypeDeriving
97+GeneralisedNewtypeDeriving
98+NoGeneralisedNewtypeDeriving
104+NoImportQualifiedPost
108+NoIncoherentInstances
109+TypeFamilyDependencies
110+NoTypeFamilyDependencies
126+NoLiberalTypeSynonyms
132+NoMonadComprehensions
137+MonomorphismRestriction
138+NoMonomorphismRestriction
139+MultiParamTypeClasses
140+NoMultiParamTypeClasses
155+NondecreasingIndentation
156+NoNondecreasingIndentation
162+NoOverlappingInstances
175+PartialTypeSignatures
176+NoPartialTypeSignatures
185+PolymorphicComponents
186+NoPolymorphicComponents
187+QuantifiedConstraints
188+NoQuantifiedConstraints
202+NoOverloadedRecordDot
203+OverloadedRecordUpdate
204+NoOverloadedRecordUpdate
218+NoScopedTypeVariables
231+TemplateHaskellQuotes
232+NoTemplateHaskellQuotes
233+StandaloneKindSignatures
234+NoStandaloneKindSignatures
235+TraditionalRecordSyntax
236+NoTraditionalRecordSyntax
250+NoTypeSynonymInstances
256+NoUndecidableInstances
257+UndecidableSuperClasses
258+NoUndecidableSuperClasses
materialized/dummy-ghc/aarch64-unknown-linux-gnu-aarch64-unknown-linux-gnu-ghc-9.2.4-x86_64-linux/ghc/versionnew file+1
@@ -0,0 +1 @@
1+The Glorious Glasgow Haskell Compilation System, version 9.2.4
materialized/dummy-ghc/ghc-8.10.2-x86_64-linux/ghc/info+6
@@ -1,18 +1,24 @@
1 [("Project name","The Glorious Glasgow Haskell Compilation System")
1 [("Project name","The Glorious Glasgow Haskell Compilation System")
2 ,("GCC extra via C opts","")
2 ,("GCC extra via C opts","")
3+ ,("C compiler command","gcc")
3 ,("C compiler flags","")
4 ,("C compiler flags","")
4 ,("C++ compiler flags","")
5 ,("C++ compiler flags","")
5 ,("C compiler link flags","")
6 ,("C compiler link flags","")
6 ,("C compiler supports -no-pie","YES")
7 ,("C compiler supports -no-pie","YES")
8+ ,("Haskell CPP command","gcc")
7 ,("Haskell CPP flags","-E -undef -traditional")
9 ,("Haskell CPP flags","-E -undef -traditional")
8 ,("ld flags","")
11 ,("ld flags","")
9 ,("ld supports compact unwind","YES")
12 ,("ld supports compact unwind","YES")
10 ,("ld supports build-id","YES")
13 ,("ld supports build-id","YES")
11 ,("ld supports filelist","NO")
14 ,("ld supports filelist","NO")
12 ,("ld is GNU ld","YES")
15 ,("ld is GNU ld","YES")
16+ ,("Merge objects command","ld")
13 ,("Merge objects flags","-r")
17 ,("Merge objects flags","-r")
14 ,("ar flags","q")
19 ,("ar flags","q")
15 ,("ar supports at file","YES")
20 ,("ar supports at file","YES")
21+ ,("ranlib command","ranlib")
16 ,("touch command","touch")
22 ,("touch command","touch")
17 ,("dllwrap command","/bin/false")
23 ,("dllwrap command","/bin/false")
18 ,("windres command","/bin/false")
24 ,("windres command","/bin/false")
materialized/dummy-ghc/ghc-8.10.3-x86_64-linux/ghc/info+6
@@ -1,18 +1,24 @@
1 [("Project name","The Glorious Glasgow Haskell Compilation System")
1 [("Project name","The Glorious Glasgow Haskell Compilation System")
2 ,("GCC extra via C opts","")
2 ,("GCC extra via C opts","")
3+ ,("C compiler command","gcc")
3 ,("C compiler flags","")
4 ,("C compiler flags","")
4 ,("C++ compiler flags","")
5 ,("C++ compiler flags","")
5 ,("C compiler link flags","")
6 ,("C compiler link flags","")
6 ,("C compiler supports -no-pie","YES")
7 ,("C compiler supports -no-pie","YES")
8+ ,("Haskell CPP command","gcc")
7 ,("Haskell CPP flags","-E -undef -traditional")
9 ,("Haskell CPP flags","-E -undef -traditional")
8 ,("ld flags","")
11 ,("ld flags","")
9 ,("ld supports compact unwind","YES")
12 ,("ld supports compact unwind","YES")
10 ,("ld supports build-id","YES")
13 ,("ld supports build-id","YES")
11 ,("ld supports filelist","NO")
14 ,("ld supports filelist","NO")
12 ,("ld is GNU ld","YES")
15 ,("ld is GNU ld","YES")
16+ ,("Merge objects command","ld")
13 ,("Merge objects flags","-r")
17 ,("Merge objects flags","-r")
14 ,("ar flags","q")
19 ,("ar flags","q")
15 ,("ar supports at file","YES")
20 ,("ar supports at file","YES")
21+ ,("ranlib command","ranlib")
16 ,("otool command","otool")
22 ,("otool command","otool")
17 ,("install_name_tool command","install_name_tool")
23 ,("install_name_tool command","install_name_tool")
18 ,("touch command","touch")
24 ,("touch command","touch")
materialized/dummy-ghc/ghc-8.10.4-x86_64-darwin/ghc/info+6
@@ -1,18 +1,24 @@
1 [("Project name","The Glorious Glasgow Haskell Compilation System")
1 [("Project name","The Glorious Glasgow Haskell Compilation System")
2 ,("GCC extra via C opts","")
2 ,("GCC extra via C opts","")
3+ ,("C compiler command","clang")
3 ,("C compiler flags","")
4 ,("C compiler flags","")
4 ,("C++ compiler flags","")
5 ,("C++ compiler flags","")
5 ,("C compiler link flags","")
6 ,("C compiler link flags","")
6 ,("C compiler supports -no-pie","NO")
7 ,("C compiler supports -no-pie","NO")
8+ ,("Haskell CPP command","clang")
7 ,("Haskell CPP flags","-E -undef -traditional -Wno-invalid-pp-token -Wno-unicode -Wno-trigraphs")
9 ,("Haskell CPP flags","-E -undef -traditional -Wno-invalid-pp-token -Wno-unicode -Wno-trigraphs")
8 ,("ld flags","")
11 ,("ld flags","")
9 ,("ld supports compact unwind","YES")
12 ,("ld supports compact unwind","YES")
10 ,("ld supports build-id","NO")
13 ,("ld supports build-id","NO")
11 ,("ld supports filelist","YES")
14 ,("ld supports filelist","YES")
12 ,("ld is GNU ld","NO")
15 ,("ld is GNU ld","NO")
16+ ,("Merge objects command","ld")
13 ,("Merge objects flags","-r")
17 ,("Merge objects flags","-r")
14 ,("ar flags","qcls")
19 ,("ar flags","qcls")
15 ,("ar supports at file","NO")
20 ,("ar supports at file","NO")
21+ ,("ranlib command","ranlib")
16 ,("otool command","otool")
22 ,("otool command","otool")
17 ,("install_name_tool command","install_name_tool")
23 ,("install_name_tool command","install_name_tool")
18 ,("touch command","touch")
24 ,("touch command","touch")
materialized/dummy-ghc/ghc-8.10.4-x86_64-linux/ghc/info+6
@@ -1,18 +1,24 @@
1 [("Project name","The Glorious Glasgow Haskell Compilation System")
1 [("Project name","The Glorious Glasgow Haskell Compilation System")
2 ,("GCC extra via C opts","")
2 ,("GCC extra via C opts","")
3+ ,("C compiler command","gcc")
3 ,("C compiler flags","")
4 ,("C compiler flags","")
4 ,("C++ compiler flags","")
5 ,("C++ compiler flags","")
5 ,("C compiler link flags","")
6 ,("C compiler link flags","")
6 ,("C compiler supports -no-pie","YES")
7 ,("C compiler supports -no-pie","YES")
8+ ,("Haskell CPP command","gcc")
7 ,("Haskell CPP flags","-E -undef -traditional")
9 ,("Haskell CPP flags","-E -undef -traditional")
8 ,("ld flags","")
11 ,("ld flags","")
9 ,("ld supports compact unwind","YES")
12 ,("ld supports compact unwind","YES")
10 ,("ld supports build-id","YES")
13 ,("ld supports build-id","YES")
11 ,("ld supports filelist","NO")
14 ,("ld supports filelist","NO")
12 ,("ld is GNU ld","YES")
15 ,("ld is GNU ld","YES")
16+ ,("Merge objects command","ld")
13 ,("Merge objects flags","-r")
17 ,("Merge objects flags","-r")
14 ,("ar flags","q")
19 ,("ar flags","q")
15 ,("ar supports at file","YES")
20 ,("ar supports at file","YES")
21+ ,("ranlib command","ranlib")
16 ,("otool command","otool")
22 ,("otool command","otool")
17 ,("install_name_tool command","install_name_tool")
23 ,("install_name_tool command","install_name_tool")
18 ,("touch command","touch")
24 ,("touch command","touch")
materialized/dummy-ghc/ghc-8.10.4.20210212-x86_64-linux/ghc/info+6
@@ -1,18 +1,24 @@
1 [("Project name","The Glorious Glasgow Haskell Compilation System")
1 [("Project name","The Glorious Glasgow Haskell Compilation System")
2 ,("GCC extra via C opts","")
2 ,("GCC extra via C opts","")
3+ ,("C compiler command","gcc")
3 ,("C compiler flags","")
4 ,("C compiler flags","")
4 ,("C++ compiler flags","")
5 ,("C++ compiler flags","")
5 ,("C compiler link flags","")
6 ,("C compiler link flags","")
6 ,("C compiler supports -no-pie","YES")
7 ,("C compiler supports -no-pie","YES")
8+ ,("Haskell CPP command","gcc")
7 ,("Haskell CPP flags","-E -undef -traditional")
9 ,("Haskell CPP flags","-E -undef -traditional")
8 ,("ld flags","")
11 ,("ld flags","")
9 ,("ld supports compact unwind","YES")
12 ,("ld supports compact unwind","YES")
10 ,("ld supports build-id","YES")
13 ,("ld supports build-id","YES")
11 ,("ld supports filelist","NO")
14 ,("ld supports filelist","NO")
12 ,("ld is GNU ld","YES")
15 ,("ld is GNU ld","YES")
16+ ,("Merge objects command","ld")
13 ,("Merge objects flags","-r")
17 ,("Merge objects flags","-r")
14 ,("ar flags","q")
19 ,("ar flags","q")
15 ,("ar supports at file","YES")
20 ,("ar supports at file","YES")
21+ ,("ranlib command","ranlib")
16 ,("otool command","otool")
22 ,("otool command","otool")
17 ,("install_name_tool command","install_name_tool")
23 ,("install_name_tool command","install_name_tool")
18 ,("touch command","touch")
24 ,("touch command","touch")
materialized/dummy-ghc/ghc-8.10.5-x86_64-darwin/ghc/info+6
@@ -1,18 +1,24 @@
1 [("Project name","The Glorious Glasgow Haskell Compilation System")
1 [("Project name","The Glorious Glasgow Haskell Compilation System")
2 ,("GCC extra via C opts","")
2 ,("GCC extra via C opts","")
3+ ,("C compiler command","clang")
3 ,("C compiler flags","")
4 ,("C compiler flags","")
4 ,("C++ compiler flags","")
5 ,("C++ compiler flags","")
5 ,("C compiler link flags","")
6 ,("C compiler link flags","")
6 ,("C compiler supports -no-pie","NO")
7 ,("C compiler supports -no-pie","NO")
8+ ,("Haskell CPP command","clang")
7 ,("Haskell CPP flags","-E -undef -traditional -Wno-invalid-pp-token -Wno-unicode -Wno-trigraphs")
9 ,("Haskell CPP flags","-E -undef -traditional -Wno-invalid-pp-token -Wno-unicode -Wno-trigraphs")
8 ,("ld flags","")
11 ,("ld flags","")
9 ,("ld supports compact unwind","YES")
12 ,("ld supports compact unwind","YES")
10 ,("ld supports build-id","NO")
13 ,("ld supports build-id","NO")
11 ,("ld supports filelist","YES")
14 ,("ld supports filelist","YES")
12 ,("ld is GNU ld","NO")
15 ,("ld is GNU ld","NO")
16+ ,("Merge objects command","ld")
13 ,("Merge objects flags","-r")
17 ,("Merge objects flags","-r")
14 ,("ar flags","qcls")
19 ,("ar flags","qcls")
15 ,("ar supports at file","NO")
20 ,("ar supports at file","NO")
21+ ,("ranlib command","ranlib")
16 ,("otool command","otool")
22 ,("otool command","otool")
17 ,("install_name_tool command","install_name_tool")
23 ,("install_name_tool command","install_name_tool")
18 ,("touch command","touch")
24 ,("touch command","touch")
materialized/dummy-ghc/ghc-8.10.5-x86_64-linux/ghc/info+6
@@ -1,18 +1,24 @@
1 [("Project name","The Glorious Glasgow Haskell Compilation System")
1 [("Project name","The Glorious Glasgow Haskell Compilation System")
2 ,("GCC extra via C opts","")
2 ,("GCC extra via C opts","")
3+ ,("C compiler command","gcc")
3 ,("C compiler flags","")
4 ,("C compiler flags","")
4 ,("C++ compiler flags","")
5 ,("C++ compiler flags","")
5 ,("C compiler link flags","")
6 ,("C compiler link flags","")
6 ,("C compiler supports -no-pie","YES")
7 ,("C compiler supports -no-pie","YES")
8+ ,("Haskell CPP command","gcc")
7 ,("Haskell CPP flags","-E -undef -traditional")
9 ,("Haskell CPP flags","-E -undef -traditional")
8 ,("ld flags","")
11 ,("ld flags","")
9 ,("ld supports compact unwind","YES")
12 ,("ld supports compact unwind","YES")
10 ,("ld supports build-id","YES")
13 ,("ld supports build-id","YES")
11 ,("ld supports filelist","NO")
14 ,("ld supports filelist","NO")
12 ,("ld is GNU ld","YES")
15 ,("ld is GNU ld","YES")
16+ ,("Merge objects command","ld")
13 ,("Merge objects flags","-r")
17 ,("Merge objects flags","-r")
14 ,("ar flags","q")
19 ,("ar flags","q")
15 ,("ar supports at file","YES")
20 ,("ar supports at file","YES")
21+ ,("ranlib command","ranlib")
16 ,("otool command","otool")
22 ,("otool command","otool")
17 ,("install_name_tool command","install_name_tool")
23 ,("install_name_tool command","install_name_tool")
18 ,("touch command","touch")
24 ,("touch command","touch")
materialized/dummy-ghc/ghc-8.10.6-x86_64-darwin/ghc-pkg/dump-globalnew file+1638
@@ -0,0 +1,1638 @@
7+copyright: 2003-2020, Cabal Development Team (see AUTHORS file)
8+maintainer: cabal-devel@haskell.org
9+author: Cabal Development Team <cabal-devel@haskell.org>
10+homepage: http://www.haskell.org/cabal/
11+synopsis: A framework for packaging Haskell software
13+ The Haskell Common Architecture for Building Applications and
14+ Libraries: a framework defining a common interface for authors to more
15+ easily build their Haskell applications in a portable way.
16+ The Haskell Cabal is part of a larger infrastructure for distributing,
17+ organizing, and cataloging Haskell libraries and tools.
18+category: Distribution
21+ Distribution.Backpack Distribution.Backpack.ComponentsGraph
22+ Distribution.Backpack.Configure
23+ Distribution.Backpack.ConfiguredComponent
24+ Distribution.Backpack.DescribeUnitId
25+ Distribution.Backpack.FullUnitId
26+ Distribution.Backpack.LinkedComponent
27+ Distribution.Backpack.ModSubst Distribution.Backpack.ModuleShape
28+ Distribution.Backpack.PreModuleShape Distribution.CabalSpecVersion
29+ Distribution.Compat.Binary Distribution.Compat.CharParsing
30+ Distribution.Compat.CreatePipe Distribution.Compat.DList
31+ Distribution.Compat.Directory Distribution.Compat.Environment
32+ Distribution.Compat.Exception Distribution.Compat.FilePath
33+ Distribution.Compat.Graph Distribution.Compat.Internal.TempFile
34+ Distribution.Compat.Lens Distribution.Compat.Newtype
35+ Distribution.Compat.Parsing Distribution.Compat.Prelude.Internal
36+ Distribution.Compat.Process Distribution.Compat.ResponseFile
37+ Distribution.Compat.Semigroup Distribution.Compat.Stack
38+ Distribution.Compat.Time Distribution.Compat.Typeable
39+ Distribution.Compiler Distribution.FieldGrammar
40+ Distribution.FieldGrammar.Class
41+ Distribution.FieldGrammar.FieldDescrs
42+ Distribution.FieldGrammar.Parsec Distribution.FieldGrammar.Pretty
43+ Distribution.Fields Distribution.Fields.ConfVar
44+ Distribution.Fields.Field Distribution.Fields.Lexer
45+ Distribution.Fields.LexerMonad Distribution.Fields.ParseResult
46+ Distribution.Fields.Parser Distribution.Fields.Pretty
47+ Distribution.InstalledPackageInfo Distribution.License
48+ Distribution.Make Distribution.ModuleName Distribution.Package
49+ Distribution.PackageDescription
50+ Distribution.PackageDescription.Check
51+ Distribution.PackageDescription.Configuration
52+ Distribution.PackageDescription.FieldGrammar
53+ Distribution.PackageDescription.Parsec
54+ Distribution.PackageDescription.PrettyPrint
55+ Distribution.PackageDescription.Quirks
56+ Distribution.PackageDescription.Utils Distribution.Parsec
57+ Distribution.Parsec.Error Distribution.Parsec.FieldLineStream
58+ Distribution.Parsec.Newtypes Distribution.Parsec.Position
59+ Distribution.Parsec.Warning Distribution.Pretty Distribution.ReadE
60+ Distribution.SPDX Distribution.SPDX.License
61+ Distribution.SPDX.LicenseExceptionId
62+ Distribution.SPDX.LicenseExpression Distribution.SPDX.LicenseId
63+ Distribution.SPDX.LicenseListVersion
64+ Distribution.SPDX.LicenseReference Distribution.Simple
65+ Distribution.Simple.Bench Distribution.Simple.Build
66+ Distribution.Simple.Build.Macros
67+ Distribution.Simple.Build.PathsModule
68+ Distribution.Simple.BuildPaths Distribution.Simple.BuildTarget
69+ Distribution.Simple.BuildToolDepends Distribution.Simple.CCompiler
70+ Distribution.Simple.Command Distribution.Simple.Compiler
71+ Distribution.Simple.Configure Distribution.Simple.Doctest
72+ Distribution.Simple.Flag Distribution.Simple.GHC
73+ Distribution.Simple.GHCJS Distribution.Simple.Glob
74+ Distribution.Simple.Haddock Distribution.Simple.HaskellSuite
75+ Distribution.Simple.Hpc Distribution.Simple.Install
76+ Distribution.Simple.InstallDirs
77+ Distribution.Simple.InstallDirs.Internal
78+ Distribution.Simple.LocalBuildInfo Distribution.Simple.PackageIndex
79+ Distribution.Simple.PreProcess Distribution.Simple.PreProcess.Unlit
80+ Distribution.Simple.Program Distribution.Simple.Program.Ar
81+ Distribution.Simple.Program.Builtin Distribution.Simple.Program.Db
82+ Distribution.Simple.Program.Find Distribution.Simple.Program.GHC
83+ Distribution.Simple.Program.HcPkg Distribution.Simple.Program.Hpc
84+ Distribution.Simple.Program.Internal Distribution.Simple.Program.Ld
85+ Distribution.Simple.Program.ResponseFile
86+ Distribution.Simple.Program.Run Distribution.Simple.Program.Script
87+ Distribution.Simple.Program.Strip Distribution.Simple.Program.Types
88+ Distribution.Simple.Register Distribution.Simple.Setup
89+ Distribution.Simple.ShowBuildInfo Distribution.Simple.SrcDist
90+ Distribution.Simple.Test Distribution.Simple.Test.ExeV10
91+ Distribution.Simple.Test.LibV09 Distribution.Simple.Test.Log
92+ Distribution.Simple.UHC Distribution.Simple.UserHooks
93+ Distribution.Simple.Utils Distribution.System
94+ Distribution.TestSuite Distribution.Text
95+ Distribution.Types.AbiDependency Distribution.Types.AbiHash
96+ Distribution.Types.AnnotatedId Distribution.Types.Benchmark
97+ Distribution.Types.Benchmark.Lens
98+ Distribution.Types.BenchmarkInterface
99+ Distribution.Types.BenchmarkType Distribution.Types.BuildInfo
100+ Distribution.Types.BuildInfo.Lens Distribution.Types.BuildType
101+ Distribution.Types.Component Distribution.Types.ComponentId
102+ Distribution.Types.ComponentInclude
103+ Distribution.Types.ComponentLocalBuildInfo
104+ Distribution.Types.ComponentName
105+ Distribution.Types.ComponentRequestedSpec
106+ Distribution.Types.CondTree Distribution.Types.Condition
107+ Distribution.Types.ConfVar Distribution.Types.Dependency
108+ Distribution.Types.DependencyMap Distribution.Types.ExeDependency
109+ Distribution.Types.Executable Distribution.Types.Executable.Lens
110+ Distribution.Types.ExecutableScope Distribution.Types.ExposedModule
111+ Distribution.Types.Flag Distribution.Types.ForeignLib
112+ Distribution.Types.ForeignLib.Lens
113+ Distribution.Types.ForeignLibOption
114+ Distribution.Types.ForeignLibType
115+ Distribution.Types.GenericPackageDescription
116+ Distribution.Types.GenericPackageDescription.Lens
117+ Distribution.Types.GivenComponent
118+ Distribution.Types.HookedBuildInfo
119+ Distribution.Types.IncludeRenaming
120+ Distribution.Types.InstalledPackageInfo
121+ Distribution.Types.InstalledPackageInfo.FieldGrammar
122+ Distribution.Types.InstalledPackageInfo.Lens
123+ Distribution.Types.LegacyExeDependency Distribution.Types.Lens
124+ Distribution.Types.Library Distribution.Types.Library.Lens
125+ Distribution.Types.LibraryName Distribution.Types.LibraryVisibility
126+ Distribution.Types.LocalBuildInfo Distribution.Types.Mixin
127+ Distribution.Types.Module Distribution.Types.ModuleReexport
128+ Distribution.Types.ModuleRenaming
129+ Distribution.Types.MungedPackageId
130+ Distribution.Types.MungedPackageName
131+ Distribution.Types.PackageDescription
132+ Distribution.Types.PackageDescription.Lens
133+ Distribution.Types.PackageId Distribution.Types.PackageId.Lens
134+ Distribution.Types.PackageName Distribution.Types.PackageName.Magic
135+ Distribution.Types.PackageVersionConstraint
136+ Distribution.Types.PkgconfigDependency
137+ Distribution.Types.PkgconfigName
138+ Distribution.Types.PkgconfigVersion
139+ Distribution.Types.PkgconfigVersionRange
140+ Distribution.Types.SetupBuildInfo
141+ Distribution.Types.SetupBuildInfo.Lens
142+ Distribution.Types.SourceRepo Distribution.Types.SourceRepo.Lens
143+ Distribution.Types.TargetInfo Distribution.Types.TestSuite
144+ Distribution.Types.TestSuite.Lens
145+ Distribution.Types.TestSuiteInterface Distribution.Types.TestType
146+ Distribution.Types.UnitId Distribution.Types.UnqualComponentName
147+ Distribution.Types.Version Distribution.Types.VersionInterval
148+ Distribution.Types.VersionRange
149+ Distribution.Types.VersionRange.Internal Distribution.Utils.Generic
150+ Distribution.Utils.IOData Distribution.Utils.LogProgress
151+ Distribution.Utils.MD5 Distribution.Utils.MapAccum
152+ Distribution.Utils.NubList Distribution.Utils.Progress
153+ Distribution.Utils.ShortText Distribution.Utils.Structured
154+ Distribution.Verbosity Distribution.Verbosity.Internal
155+ Distribution.Version Language.Haskell.Extension
157+ Distribution.Backpack.PreExistingComponent
158+ Distribution.Backpack.ReadyComponent Distribution.Backpack.MixLink
159+ Distribution.Backpack.ModuleScope Distribution.Backpack.UnifyM
160+ Distribution.Backpack.Id Distribution.Utils.UnionFind
161+ Distribution.Utils.Base62 Distribution.Compat.Async
162+ Distribution.Compat.CopyFile Distribution.Compat.GetShortPathName
163+ Distribution.Compat.MonadFail Distribution.Compat.Prelude
164+ Distribution.Compat.SnocList Distribution.GetOpt Distribution.Lex
165+ Distribution.Utils.String Distribution.Simple.GHC.EnvironmentParser
166+ Distribution.Simple.GHC.Internal Distribution.Simple.GHC.ImplInfo
167+ Distribution.Simple.Utils.Json Paths_Cabal
170+dynamic-library-dirs:
172+hs-libraries: HSCabal-3.2.1.0
174+ array-0.5.4.0 base-4.14.3.0 binary-0.8.8.0 bytestring-0.10.12.0
175+ containers-0.6.5.1 deepseq-1.4.4.0 directory-1.3.6.0
176+ filepath-1.4.2.1 mtl-2.2.2 parsec-3.1.14.0 pretty-1.1.3.6
177+ process-1.6.13.2 text-1.2.4.1 time-1.9.3 transformers-0.5.6.2
187+license: BSD-3-Clause
188+maintainer: libraries@haskell.org
189+synopsis: Mutable and immutable arrays
191+ In addition to providing the "Data.Array" module
192+ <http://www.haskell.org/onlinereport/haskell2010/haskellch14.html as specified in the Haskell 2010 Language Report>,
193+ this package also defines the classes 'IArray' of
194+ immutable arrays and 'MArray' of arrays mutable within appropriate
195+ monads, as well as some instances of these classes.
196+category: Data Structures
199+ Data.Array Data.Array.Base Data.Array.IArray Data.Array.IO
200+ Data.Array.IO.Internals Data.Array.IO.Safe Data.Array.MArray
201+ Data.Array.MArray.Safe Data.Array.ST Data.Array.ST.Safe
202+ Data.Array.Storable Data.Array.Storable.Internals
203+ Data.Array.Storable.Safe Data.Array.Unboxed Data.Array.Unsafe
206+dynamic-library-dirs:
208+hs-libraries: HSarray-0.5.4.0
209+depends: base-4.14.3.0
218+license: BSD-3-Clause
219+maintainer: libraries@haskell.org
220+synopsis: Basic libraries
222+ This package contains the Standard Haskell "Prelude" and its support libraries,
223+ and a large collection of useful libraries ranging from data
224+ structures to parsing combinators and debugging utilities.
228+ Control.Applicative Control.Arrow Control.Category
229+ Control.Concurrent Control.Concurrent.Chan Control.Concurrent.MVar
230+ Control.Concurrent.QSem Control.Concurrent.QSemN Control.Exception
231+ Control.Exception.Base Control.Monad Control.Monad.Fail
232+ Control.Monad.Fix Control.Monad.IO.Class Control.Monad.Instances
233+ Control.Monad.ST Control.Monad.ST.Lazy Control.Monad.ST.Lazy.Safe
234+ Control.Monad.ST.Lazy.Unsafe Control.Monad.ST.Safe
235+ Control.Monad.ST.Strict Control.Monad.ST.Unsafe Control.Monad.Zip
236+ Data.Bifoldable Data.Bifunctor Data.Bitraversable Data.Bits
237+ Data.Bool Data.Char Data.Coerce Data.Complex Data.Data Data.Dynamic
238+ Data.Either Data.Eq Data.Fixed Data.Foldable Data.Function
239+ Data.Functor Data.Functor.Classes Data.Functor.Compose
240+ Data.Functor.Const Data.Functor.Contravariant Data.Functor.Identity
241+ Data.Functor.Product Data.Functor.Sum Data.IORef Data.Int Data.Ix
242+ Data.Kind Data.List Data.List.NonEmpty Data.Maybe Data.Monoid
243+ Data.Ord Data.Proxy Data.Ratio Data.STRef Data.STRef.Lazy
244+ Data.STRef.Strict Data.Semigroup Data.String Data.Traversable
245+ Data.Tuple Data.Type.Bool Data.Type.Coercion Data.Type.Equality
246+ Data.Typeable Data.Unique Data.Version Data.Void Data.Word
247+ Debug.Trace Foreign Foreign.C Foreign.C.Error Foreign.C.String
248+ Foreign.C.Types Foreign.Concurrent Foreign.ForeignPtr
249+ Foreign.ForeignPtr.Safe Foreign.ForeignPtr.Unsafe Foreign.Marshal
250+ Foreign.Marshal.Alloc Foreign.Marshal.Array Foreign.Marshal.Error
251+ Foreign.Marshal.Pool Foreign.Marshal.Safe Foreign.Marshal.Unsafe
252+ Foreign.Marshal.Utils Foreign.Ptr Foreign.Safe Foreign.StablePtr
253+ Foreign.Storable GHC.Arr GHC.Base GHC.ByteOrder GHC.Char GHC.Clock
254+ GHC.Conc GHC.Conc.IO GHC.Conc.Signal GHC.Conc.Sync
255+ GHC.ConsoleHandler GHC.Constants GHC.Desugar GHC.Enum
256+ GHC.Environment GHC.Err GHC.Event GHC.Exception GHC.Exception.Type
257+ GHC.ExecutionStack GHC.ExecutionStack.Internal GHC.Exts
258+ GHC.Fingerprint GHC.Fingerprint.Type GHC.Float
259+ GHC.Float.ConversionUtils GHC.Float.RealFracMethods GHC.Foreign
260+ GHC.ForeignPtr GHC.GHCi GHC.GHCi.Helpers GHC.Generics GHC.IO
261+ GHC.IO.Buffer GHC.IO.BufferedIO GHC.IO.Device GHC.IO.Encoding
262+ GHC.IO.Encoding.CodePage GHC.IO.Encoding.Failure
263+ GHC.IO.Encoding.Iconv GHC.IO.Encoding.Latin1 GHC.IO.Encoding.Types
264+ GHC.IO.Encoding.UTF16 GHC.IO.Encoding.UTF32 GHC.IO.Encoding.UTF8
265+ GHC.IO.Exception GHC.IO.FD GHC.IO.Handle GHC.IO.Handle.FD
266+ GHC.IO.Handle.Internals GHC.IO.Handle.Lock GHC.IO.Handle.Text
267+ GHC.IO.Handle.Types GHC.IO.IOMode GHC.IO.Unsafe GHC.IOArray
268+ GHC.IORef GHC.Int GHC.Ix GHC.List GHC.MVar GHC.Maybe GHC.Natural
269+ GHC.Num GHC.OldList GHC.OverloadedLabels GHC.Pack GHC.Profiling
270+ GHC.Ptr GHC.RTS.Flags GHC.Read GHC.Real GHC.Records
271+ GHC.ResponseFile GHC.ST GHC.STRef GHC.Show GHC.Stable
272+ GHC.StableName GHC.Stack GHC.Stack.CCS GHC.Stack.Types
273+ GHC.StaticPtr GHC.Stats GHC.Storable GHC.TopHandler GHC.TypeLits
274+ GHC.TypeNats GHC.Unicode GHC.Weak GHC.Word Numeric Numeric.Natural
275+ Prelude System.CPUTime System.Console.GetOpt System.Environment
276+ System.Environment.Blank System.Exit System.IO System.IO.Error
277+ System.IO.Unsafe System.Info System.Mem System.Mem.StableName
278+ System.Mem.Weak System.Posix.Internals System.Posix.Types
279+ System.Timeout Text.ParserCombinators.ReadP
280+ Text.ParserCombinators.ReadPrec Text.Printf Text.Read Text.Read.Lex
281+ Text.Show Text.Show.Functions Type.Reflection
282+ Type.Reflection.Unsafe Unsafe.Coerce
284+ Control.Monad.ST.Imp Control.Monad.ST.Lazy.Imp Data.Functor.Utils
285+ Data.OldList Data.Semigroup.Internal Data.Typeable.Internal
286+ Foreign.ForeignPtr.Imp GHC.IO.Handle.Lock.Common
287+ GHC.IO.Handle.Lock.Flock GHC.IO.Handle.Lock.LinuxOFD
288+ GHC.IO.Handle.Lock.NoOp GHC.IO.Handle.Lock.Windows
289+ GHC.StaticPtr.Internal System.Environment.ExecutablePath
290+ System.CPUTime.Utils GHC.Event.Arr GHC.Event.Array
291+ GHC.Event.Control GHC.Event.EPoll GHC.Event.IntTable
292+ GHC.Event.Internal GHC.Event.KQueue GHC.Event.Manager GHC.Event.PSQ
293+ GHC.Event.Poll GHC.Event.Thread GHC.Event.TimerManager
294+ GHC.Event.Unique System.CPUTime.Posix.ClockGetTime
295+ System.CPUTime.Posix.Times System.CPUTime.Posix.RUsage
296+ System.CPUTime.Unsupported
299+dynamic-library-dirs:
301+hs-libraries: HSbase-4.14.3.0
302+extra-libraries: iconv
305+depends: ghc-prim-0.6.1 integer-gmp-1.0.3.0 rts
314+license: BSD-3-Clause
315+maintainer: Lennart Kolmodin, Don Stewart <dons00@gmail.com>
316+author: Lennart Kolmodin <kolmodin@gmail.com>
317+stability: provisional
318+homepage: https://github.com/kolmodin/binary
320+ Binary serialisation for Haskell values using lazy ByteStrings
322+ Efficient, pure binary serialisation using lazy ByteStrings.
323+ Haskell values may be encoded to and from binary formats,
324+ written to disk as binary, or sent over the network.
325+ The format used can be automatically generated, or
326+ you can choose to implement a custom format if needed.
327+ Serialisation speeds of over 1 G\/sec have been observed,
328+ so this library should be suitable for high performance
330+category: Data, Parsing
333+ Data.Binary Data.Binary.Builder Data.Binary.Get
334+ Data.Binary.Get.Internal Data.Binary.Put
336+ Data.Binary.Class Data.Binary.Internal Data.Binary.Generic
337+ Data.Binary.FloatCast
340+dynamic-library-dirs:
342+hs-libraries: HSbinary-0.8.8.0
344+ array-0.5.4.0 base-4.14.3.0 bytestring-0.10.12.0 containers-0.6.5.1
351+id: bytestring-0.10.12.0
352+key: bytestring-0.10.12.0
353+license: BSD-3-Clause
355+ Copyright (c) Don Stewart 2005-2009,
356+ (c) Duncan Coutts 2006-2015,
357+ (c) David Roundy 2003-2005,
358+ (c) Jasper Van der Jeugt 2010,
359+ (c) Simon Meier 2010-2013.
360+maintainer: Duncan Coutts <duncan@community.haskell.org>
364+homepage: https://github.com/haskell/bytestring
366+ Fast, compact, strict and lazy byte strings with a list interface
368+ An efficient compact, immutable byte string type (both strict and lazy)
369+ suitable for binary or 8-bit character data.
370+ The 'ByteString' type represents sequences of bytes or 8-bit characters.
371+ It is suitable for high performance use, both in terms of large data
372+ quantities, or high speed requirements. The 'ByteString' functions follow
373+ the same style as Haskell\'s ordinary lists, so it is easy to convert code
374+ from using 'String' to 'ByteString'.
375+ Two 'ByteString' variants are provided:
376+ * Strict 'ByteString's keep the string as a single large array. This
377+ makes them convenient for passing data between C and Haskell.
378+ * Lazy 'ByteString's use a lazy list of strict chunks which makes it
379+ suitable for I\/O streaming tasks.
380+ The @Char8@ modules provide a character-based view of the same
381+ underlying 'ByteString' types. This makes it convenient to handle mixed
382+ binary and 8-bit character content (which is common in many file formats
383+ and network protocols).
384+ The 'Builder' module provides an efficient way to build up 'ByteString's
385+ in an ad-hoc way by repeated concatenation. This is ideal for fast
386+ serialisation or pretty printing.
387+ There is also a 'ShortByteString' type which has a lower memory overhead
388+ and can can be converted to or from a 'ByteString', but supports very few
389+ other operations. It is suitable for keeping many short strings in memory.
390+ 'ByteString's are not designed for Unicode. For Unicode strings you should
391+ use the 'Text' type from the @text@ package.
392+ These modules are intended to be imported qualified, to avoid name clashes
393+ with "Prelude" functions, e.g.
394+ > import qualified Data.ByteString as BS
398+ Data.ByteString Data.ByteString.Builder
399+ Data.ByteString.Builder.Extra Data.ByteString.Builder.Internal
400+ Data.ByteString.Builder.Prim Data.ByteString.Builder.Prim.Internal
401+ Data.ByteString.Char8 Data.ByteString.Internal Data.ByteString.Lazy
402+ Data.ByteString.Lazy.Builder Data.ByteString.Lazy.Builder.ASCII
403+ Data.ByteString.Lazy.Builder.Extras Data.ByteString.Lazy.Char8
404+ Data.ByteString.Lazy.Internal Data.ByteString.Short
405+ Data.ByteString.Short.Internal Data.ByteString.Unsafe
407+ Data.ByteString.Builder.ASCII Data.ByteString.Builder.Prim.Binary
408+ Data.ByteString.Builder.Prim.ASCII
409+ Data.ByteString.Builder.Prim.Internal.Floating
410+ Data.ByteString.Builder.Prim.Internal.UncheckedShifts
411+ Data.ByteString.Builder.Prim.Internal.Base16
414+dynamic-library-dirs:
416+hs-libraries: HSbytestring-0.10.12.0
420+ base-4.14.3.0 deepseq-1.4.4.0 ghc-prim-0.6.1 integer-gmp-1.0.3.0
427+id: containers-0.6.5.1
428+key: containers-0.6.5.1
429+license: BSD-3-Clause
430+maintainer: libraries@haskell.org
431+synopsis: Assorted concrete container types
433+ This package contains efficient general-purpose implementations
434+ of various immutable container types including sets, maps, sequences,
436+ For a walkthrough of what this package provides with examples of common
437+ operations see the [containers
438+ introduction](https://haskell-containers.readthedocs.io).
439+ The declared cost of each operation is either worst-case or amortized, but
440+ remains valid even if structures are shared.
441+category: Data Structures
444+ Data.Containers.ListUtils Data.Graph Data.IntMap
445+ Data.IntMap.Internal Data.IntMap.Internal.Debug Data.IntMap.Lazy
446+ Data.IntMap.Merge.Lazy Data.IntMap.Merge.Strict Data.IntMap.Strict
447+ Data.IntMap.Strict.Internal Data.IntSet Data.IntSet.Internal
448+ Data.Map Data.Map.Internal Data.Map.Internal.Debug Data.Map.Lazy
449+ Data.Map.Merge.Lazy Data.Map.Merge.Strict Data.Map.Strict
450+ Data.Map.Strict.Internal Data.Sequence Data.Sequence.Internal
451+ Data.Sequence.Internal.Sorting Data.Set Data.Set.Internal Data.Tree
452+ Utils.Containers.Internal.BitQueue
453+ Utils.Containers.Internal.BitUtil
454+ Utils.Containers.Internal.StrictPair
456+ Utils.Containers.Internal.State
457+ Utils.Containers.Internal.StrictMaybe
458+ Utils.Containers.Internal.PtrEquality
459+ Utils.Containers.Internal.Coercions
460+ Utils.Containers.Internal.TypeError
461+ Data.Map.Internal.DeprecatedShowTree
462+ Data.IntMap.Internal.DeprecatedDebug
465+dynamic-library-dirs:
467+hs-libraries: HScontainers-0.6.5.1
468+depends: array-0.5.4.0 base-4.14.3.0 deepseq-1.4.4.0
477+license: BSD-3-Clause
478+maintainer: libraries@haskell.org
479+synopsis: Deep evaluation of data structures
481+ This package provides methods for fully evaluating data structures
482+ (\"deep evaluation\"). Deep evaluation is often used for adding
483+ strictness to a program, e.g. in order to force pending exceptions,
484+ remove space leaks, or force lazy I/O to happen. It is also useful
485+ in parallel programs, to ensure pending work does not migrate to the
487+ The primary use of this package is via the 'deepseq' function, a
488+ \"deep\" version of 'seq'. It is implemented on top of an 'NFData'
489+ typeclass (\"Normal Form Data\", data structures with no unevaluated
490+ components) which defines strategies for fully evaluating different
491+ data types. See module documentation in "Control.DeepSeq" for more
495+exposed-modules: Control.DeepSeq
496+hidden-modules: Control.DeepSeq.BackDoor
499+dynamic-library-dirs:
501+hs-libraries: HSdeepseq-1.4.4.0
502+depends: array-0.5.4.0 base-4.14.3.0
509+id: directory-1.3.6.0
510+key: directory-1.3.6.0
511+license: BSD-3-Clause
512+maintainer: libraries@haskell.org
513+synopsis: Platform-agnostic library for filesystem operations
515+ This library provides a basic set of operations for manipulating files and
516+ directories in a portable way.
520+ System.Directory System.Directory.Internal
521+ System.Directory.Internal.Prelude
523+ System.Directory.Internal.C_utimensat
524+ System.Directory.Internal.Common System.Directory.Internal.Config
525+ System.Directory.Internal.Posix System.Directory.Internal.Windows
528+dynamic-library-dirs:
530+hs-libraries: HSdirectory-1.3.6.0
532+ base-4.14.3.0 filepath-1.4.2.1 time-1.9.3 unix-2.7.2.2
539+id: exceptions-0.10.4
540+key: exceptions-0.10.4
541+license: BSD-3-Clause
543+ Copyright (C) 2013-2015 Edward A. Kmett
544+ Copyright (C) 2012 Google Inc.
545+maintainer: Edward A. Kmett <ekmett@gmail.com>
546+author: Edward A. Kmett
547+stability: provisional
548+homepage: http://github.com/ekmett/exceptions/
549+synopsis: Extensible optionally-pure exceptions
550+description: Extensible optionally-pure exceptions.
551+category: Control, Exceptions, Monad
553+exposed-modules: Control.Monad.Catch Control.Monad.Catch.Pure
556+dynamic-library-dirs:
558+hs-libraries: HSexceptions-0.10.4
560+ base-4.14.3.0 mtl-2.2.2 stm-2.5.0.1 template-haskell-2.16.0.0
561+ transformers-0.5.6.2
569+key: filepath-1.4.2.1
570+license: BSD-3-Clause
571+copyright: Neil Mitchell 2005-2018
572+maintainer: Neil Mitchell <ndmitchell@gmail.com>
573+author: Neil Mitchell <ndmitchell@gmail.com>
574+homepage: https://github.com/haskell/filepath#readme
575+synopsis: Library for manipulating FilePaths in a cross platform way.
577+ This package provides functionality for manipulating @FilePath@ values, and is shipped with both <https://www.haskell.org/ghc/ GHC> and the <https://www.haskell.org/platform/ Haskell Platform>. It provides three modules:
578+ * "System.FilePath.Posix" manipulates POSIX\/Linux style @FilePath@ values (with @\/@ as the path separator).
579+ * "System.FilePath.Windows" manipulates Windows style @FilePath@ values (with either @\\@ or @\/@ as the path separator, and deals with drives).
580+ * "System.FilePath" is an alias for the module appropriate to your platform.
581+ All three modules provide the same API, and the same documentation (calling out differences in the different variants).
585+ System.FilePath System.FilePath.Posix System.FilePath.Windows
588+dynamic-library-dirs:
590+hs-libraries: HSfilepath-1.4.2.1
591+depends: base-4.14.3.0
600+license: BSD-3-Clause
601+maintainer: glasgow-haskell-users@haskell.org
603+homepage: http://www.haskell.org/ghc/
604+synopsis: The GHC API
606+ GHC's functionality can be useful for more things than just
607+ compiling Haskell programs. Important use cases are programs
608+ that analyse (and perhaps transform) Haskell code. Others
609+ include loading Haskell code dynamically in a GHCi-like manner.
610+ For this reason, a lot of GHC's functionality is made available
611+ through this package.
612+category: Development
614+ Annotations ApiAnnotation Ar AsmCodeGen AsmUtils Avail Bag
615+ BasicTypes BinFingerprint BinIface Binary Bitmap BkpSyn BlockId
616+ BlockLayout BooleanFormula BufWrite BuildTyCl ByteCodeAsm
617+ ByteCodeGen ByteCodeInstr ByteCodeItbls ByteCodeLink ByteCodeTypes
618+ CFG CLabel CPrim CSE CallArity Class CliOption ClsInst
619+ CmdLineParser Cmm CmmBuildInfoTables CmmCallConv CmmCommonBlockElim
620+ CmmContFlowOpt CmmExpr CmmImplementSwitchPlans CmmInfo
621+ CmmLayoutStack CmmLex CmmLint CmmLive CmmMachOp CmmMonad CmmNode
622+ CmmOpt CmmParse CmmPipeline CmmProcPoint CmmSink CmmSwitch CmmType
623+ CmmUtils CoAxiom CodeOutput Coercion ConLike Config Constants
624+ Constraint CoreArity CoreFVs CoreLint CoreMap CoreMonad CoreOpt
625+ CorePrep CoreSeq CoreStats CoreSubst CoreSyn CoreTidy CoreToStg
626+ CoreUnfold CoreUtils CostCentre CostCentreState Coverage Ctype
627+ DataCon Debug Debugger Demand Desugar Digraph DmdAnal Dominators
628+ DriverBkp DriverMkDepend DriverPhases DriverPipeline DsArrows
629+ DsBinds DsCCall DsExpr DsForeign DsGRHSs DsListComp DsMeta DsMonad
630+ DsUsage DsUtils Dwarf Dwarf.Constants Dwarf.Types DynFlags
631+ DynamicLoading Elf Encoding EnumSet ErrUtils Exception Exitify
632+ ExtractDocs FV FamInst FamInstEnv FastFunctions FastMutInt
633+ FastString FastStringEnv FieldLabel FileCleanup FileSettings Finder
634+ Fingerprint FiniteMap FlagChecker FloatIn FloatOut ForeignCall
635+ Format FunDeps GHC GHC.Hs GHC.Hs.Binds GHC.Hs.Decls GHC.Hs.Doc
636+ GHC.Hs.Dump GHC.Hs.Expr GHC.Hs.Extension GHC.Hs.ImpExp
637+ GHC.Hs.Instances GHC.Hs.Lit GHC.Hs.Pat GHC.Hs.PlaceHolder
638+ GHC.Hs.Types GHC.Hs.Utils GHC.HsToCore.PmCheck
639+ GHC.HsToCore.PmCheck.Oracle GHC.HsToCore.PmCheck.Ppr
640+ GHC.HsToCore.PmCheck.Types GHC.Platform.AArch64 GHC.Platform.ARM
641+ GHC.Platform.NoRegs GHC.Platform.PPC GHC.Platform.Regs
642+ GHC.Platform.S390X GHC.Platform.SPARC GHC.Platform.X86
643+ GHC.Platform.X86_64 GHC.StgToCmm GHC.StgToCmm.ArgRep
644+ GHC.StgToCmm.Bind GHC.StgToCmm.CgUtils GHC.StgToCmm.Closure
645+ GHC.StgToCmm.DataCon GHC.StgToCmm.Env GHC.StgToCmm.Expr
646+ GHC.StgToCmm.ExtCode GHC.StgToCmm.Foreign GHC.StgToCmm.Heap
647+ GHC.StgToCmm.Hpc GHC.StgToCmm.Layout GHC.StgToCmm.Monad
648+ GHC.StgToCmm.Prim GHC.StgToCmm.Prof GHC.StgToCmm.Ticky
649+ GHC.StgToCmm.Utils GHC.ThToHs GHCi GhcMake GhcMonad GhcNameVersion
650+ GhcPlugins GhcPrelude GraphBase GraphColor GraphOps GraphPpr
651+ HaddockUtils HeaderInfo HieAst HieBin HieDebug HieTypes HieUtils
652+ Hooks Hoopl.Block Hoopl.Collections Hoopl.Dataflow Hoopl.Graph
653+ Hoopl.Label HscMain HscStats HscTypes IOEnv Id IdInfo IfaceEnv
654+ IfaceSyn IfaceType Inst InstEnv Instruction InteractiveEval
655+ InteractiveEvalTypes Json KnownUniques Lexeme Lexer LiberateCase
656+ Linker LinkerTypes ListSetOps Literal Llvm Llvm.AbsSyn
657+ Llvm.MetaData Llvm.PpLlvm Llvm.Types LlvmCodeGen LlvmCodeGen.Base
658+ LlvmCodeGen.CodeGen LlvmCodeGen.Data LlvmCodeGen.Ppr
659+ LlvmCodeGen.Regs LlvmMangler LoadIface Match MatchCon MatchLit
660+ Maybes MkCore MkGraph MkId MkIface Module MonadUtils NCGMonad Name
661+ NameCache NameEnv NameSet NameShape OccName OccurAnal OptCoercion
662+ OrdList Outputable PIC PPC.CodeGen PPC.Cond PPC.Instr PPC.Ppr
663+ PPC.RegInfo PPC.Regs PackageConfig Packages Pair Panic Parser
664+ PatSyn PipelineMonad PlainPanic PlatformConstants Plugins PprBase
665+ PprC PprCmm PprCmmDecl PprCmmExpr PprColour PprCore PprTyThing
666+ Predicate PrelInfo PrelNames PrelRules Pretty PrimOp ProfInit
667+ RdrHsSyn RdrName Reg RegAlloc.Graph.ArchBase RegAlloc.Graph.ArchX86
668+ RegAlloc.Graph.Coalesce RegAlloc.Graph.Main RegAlloc.Graph.Spill
669+ RegAlloc.Graph.SpillClean RegAlloc.Graph.SpillCost
670+ RegAlloc.Graph.Stats RegAlloc.Graph.TrivColorable
671+ RegAlloc.Linear.Base RegAlloc.Linear.FreeRegs
672+ RegAlloc.Linear.JoinToTargets RegAlloc.Linear.Main
673+ RegAlloc.Linear.PPC.FreeRegs RegAlloc.Linear.SPARC.FreeRegs
674+ RegAlloc.Linear.StackMap RegAlloc.Linear.State
675+ RegAlloc.Linear.Stats RegAlloc.Linear.X86.FreeRegs
676+ RegAlloc.Linear.X86_64.FreeRegs RegAlloc.Liveness RegClass RepType
677+ RnBinds RnEnv RnExpr RnFixity RnHsDoc RnModIface RnNames RnPat
678+ RnSource RnSplice RnTypes RnUnbound RnUtils RtClosureInspect Rules
679+ SAT SMRep SPARC.AddrMode SPARC.Base SPARC.CodeGen
680+ SPARC.CodeGen.Amode SPARC.CodeGen.Base SPARC.CodeGen.CondCode
681+ SPARC.CodeGen.Expand SPARC.CodeGen.Gen32 SPARC.CodeGen.Gen64
682+ SPARC.CodeGen.Sanity SPARC.Cond SPARC.Imm SPARC.Instr SPARC.Ppr
683+ SPARC.Regs SPARC.ShortcutJump SPARC.Stack SetLevels Settings
684+ SimplCore SimplEnv SimplMonad SimplStg SimplUtils Simplify
685+ SpecConstr Specialise SrcLoc State StaticPtrTable StgCse StgFVs
686+ StgLiftLams StgLiftLams.Analysis StgLiftLams.LiftM
687+ StgLiftLams.Transformation StgLint StgStats StgSubst StgSyn Stream
688+ StringBuffer SysTools SysTools.BaseDir SysTools.ExtraObj
689+ SysTools.Info SysTools.Process SysTools.Settings SysTools.Tasks
690+ SysTools.Terminal THNames TargetReg TcAnnotations TcArrows
691+ TcBackpack TcBinds TcCanonical TcClassDcl TcDefaults TcDeriv
692+ TcDerivInfer TcDerivUtils TcEnv TcErrors TcEvTerm TcEvidence TcExpr
693+ TcFlatten TcForeign TcGenDeriv TcGenFunctor TcGenGenerics
694+ TcHoleErrors TcHoleFitTypes TcHsSyn TcHsType TcIface TcInstDcls
695+ TcInteract TcMType TcMatches TcOrigin TcPat TcPatSyn TcPluginM
696+ TcRnDriver TcRnExports TcRnMonad TcRnTypes TcRules TcSMonad TcSigs
697+ TcSimplify TcSplice TcTyClsDecls TcTyDecls TcType TcTypeNats
698+ TcTypeable TcUnify TcValidity TidyPgm ToIface ToolSettings TrieMap
699+ TyCoFVs TyCoPpr TyCoRep TyCoSubst TyCoTidy TyCon Type TysPrim
700+ TysWiredIn UnVarGraph UnariseStg Unify UniqDFM UniqDSet UniqFM
701+ UniqMap UniqSet UniqSupply Unique Util Var VarEnv VarSet WorkWrap
702+ WwLib X86.CodeGen X86.Cond X86.Instr X86.Ppr X86.RegInfo X86.Regs
705+dynamic-library-dirs:
707+hs-libraries: HSghc-8.10.6
710+ array-0.5.4.0 base-4.14.3.0 binary-0.8.8.0 bytestring-0.10.12.0
711+ containers-0.6.5.1 deepseq-1.4.4.0 directory-1.3.6.0
712+ filepath-1.4.2.1 ghc-boot-8.10.6 ghc-boot-th-8.10.6 ghc-heap-8.10.6
713+ ghci-8.10.6 hpc-0.6.1.0 integer-gmp-1.0.3.0 process-1.6.13.2
714+ template-haskell-2.16.0.0 terminfo-0.4.1.4 time-1.9.3
715+ transformers-0.5.6.2 unix-2.7.2.2
724+license: BSD-3-Clause
725+maintainer: ghc-devs@haskell.org
726+synopsis: Shared functionality between GHC and its boot libraries
728+ This library is shared between GHC, ghc-pkg, and other boot
730+ A note about "GHC.PackageDb": it only deals with the subset of
731+ the package database that the compiler cares about: modules
732+ paths etc and not package metadata like description, authors
733+ etc. It is thus not a library interface to ghc-pkg and is *not*
734+ suitable for modifying GHC package databases.
735+ The package database format and this library are constructed in
736+ such a way that while ghc-pkg depends on Cabal, the GHC library
737+ and program do not have to depend on Cabal.
741+ GHC.BaseDir GHC.ForeignSrcLang GHC.HandleEncoding
742+ GHC.LanguageExtensions GHC.PackageDb GHC.Platform GHC.Platform.Host
743+ GHC.Serialized GHC.Settings GHC.UniqueSubdir GHC.Version
746+dynamic-library-dirs:
748+hs-libraries: HSghc-boot-8.10.6
750+ base-4.14.3.0 binary-0.8.8.0 bytestring-0.10.12.0
751+ containers-0.6.5.1 directory-1.3.6.0 filepath-1.4.2.1
759+id: ghc-boot-th-8.10.6
760+key: ghc-boot-th-8.10.6
761+license: BSD-3-Clause
762+maintainer: ghc-devs@haskell.org
764+ Shared functionality between GHC and the @template-haskell@
767+ This library contains various bits shared between the @ghc@ and
768+ @template-haskell@ libraries.
769+ This package exists to ensure that @template-haskell@ has a
770+ minimal set of transitive dependencies, since it is intended to
771+ be depended upon by user code.
775+ GHC.ForeignSrcLang.Type GHC.LanguageExtensions.Type GHC.Lexeme
778+dynamic-library-dirs:
780+hs-libraries: HSghc-boot-th-8.10.6
781+depends: base-4.14.3.0
788+id: ghc-compact-0.1.0.0
789+key: ghc-compact-0.1.0.0
790+license: BSD-3-Clause
791+maintainer: libraries@haskell.org
792+synopsis: In memory storage of deeply evaluated data structure
794+ This package provides minimal functionality for working with
795+ "compact regions", which hold a fully evaluated Haskell object graph.
796+ These regions maintain the invariant that no pointers live inside the struct
797+ that point outside it, which ensures efficient garbage collection without
798+ ever reading the structure contents (effectively, it works as a manually
799+ managed "oldest generation" which is never freed until the whole is
801+ Internally, the struct is stored a single contiguous block of memory,
802+ which allows efficient serialization and deserialization of structs
803+ for distributed computing.
806+exposed-modules: GHC.Compact GHC.Compact.Serialized
809+dynamic-library-dirs:
811+hs-libraries: HSghc-compact-0.1.0.0
812+depends: base-4.14.3.0 bytestring-0.10.12.0 ghc-prim-0.6.1
821+license: BSD-3-Clause
822+maintainer: libraries@haskell.org
823+synopsis: Functions for walking GHC's heap
825+ This package provides functions for walking the GHC heap data structures
826+ and retrieving information about those data structures.
830+ GHC.Exts.Heap GHC.Exts.Heap.ClosureTypes GHC.Exts.Heap.Closures
831+ GHC.Exts.Heap.Constants GHC.Exts.Heap.InfoTable
832+ GHC.Exts.Heap.InfoTable.Types GHC.Exts.Heap.InfoTableProf
836+dynamic-library-dirs:
838+hs-libraries: HSghc-heap-8.10.6
839+depends: base-4.14.3.0 ghc-prim-0.6.1 rts
848+license: BSD-3-Clause
849+maintainer: libraries@haskell.org
850+synopsis: GHC primitives
852+ This package contains the primitive types and operations supplied by GHC.
856+ GHC.CString GHC.Classes GHC.Debug GHC.IntWord64 GHC.Magic
857+ GHC.Prim.Ext GHC.PrimopWrappers GHC.Tuple GHC.Types GHC.Prim
860+dynamic-library-dirs:
862+hs-libraries: HSghc-prim-0.6.1
872+license: BSD-3-Clause
873+maintainer: ghc-devs@haskell.org
874+synopsis: The library supporting GHC's interactive interpreter
876+ This library offers interfaces which mediate interactions between the
877+ @ghci@ interactive shell and @iserv@, GHC's out-of-process interpreter
882+ GHCi.BinaryArray GHCi.BreakArray GHCi.CreateBCO GHCi.FFI
883+ GHCi.InfoTable GHCi.Message GHCi.ObjLink GHCi.RemoteTypes
884+ GHCi.ResolvedBCO GHCi.Run GHCi.Signals GHCi.StaticPtrTable GHCi.TH
885+ GHCi.TH.Binary SizedSeq
888+dynamic-library-dirs:
890+hs-libraries: HSghci-8.10.6
893+ array-0.5.4.0 base-4.14.3.0 binary-0.8.8.0 bytestring-0.10.12.0
894+ containers-0.6.5.1 deepseq-1.4.4.0 filepath-1.4.2.1 ghc-boot-8.10.6
895+ ghc-boot-th-8.10.6 ghc-heap-8.10.6 rts template-haskell-2.16.0.0
896+ transformers-0.5.6.2 unix-2.7.2.2
905+license: BSD-3-Clause
906+copyright: (c) Judah Jacobson
907+maintainer: Judah Jacobson <judah.jacobson@gmail.com>
908+author: Judah Jacobson
910+homepage: https://github.com/judah/haskeline
912+ A command-line interface for user input, written in Haskell.
914+ Haskeline provides a user interface for line input in command-line
915+ programs. This library is similar in purpose to readline, but since
916+ it is written in Haskell it is (hopefully) more easily used in other
918+ Haskeline runs both on POSIX-compatible systems and on Windows.
919+category: User Interfaces
922+ System.Console.Haskeline System.Console.Haskeline.Completion
923+ System.Console.Haskeline.History System.Console.Haskeline.IO
924+ System.Console.Haskeline.Internal
926+ System.Console.Haskeline.Backend
927+ System.Console.Haskeline.Backend.WCWidth
928+ System.Console.Haskeline.Command
929+ System.Console.Haskeline.Command.Completion
930+ System.Console.Haskeline.Command.History
931+ System.Console.Haskeline.Command.KillRing
932+ System.Console.Haskeline.Directory System.Console.Haskeline.Emacs
933+ System.Console.Haskeline.InputT System.Console.Haskeline.Key
934+ System.Console.Haskeline.LineState System.Console.Haskeline.Monads
935+ System.Console.Haskeline.Prefs System.Console.Haskeline.Recover
936+ System.Console.Haskeline.RunCommand System.Console.Haskeline.Term
937+ System.Console.Haskeline.Command.Undo System.Console.Haskeline.Vi
938+ System.Console.Haskeline.Backend.Posix
939+ System.Console.Haskeline.Backend.Posix.Encoder
940+ System.Console.Haskeline.Backend.DumbTerm
941+ System.Console.Haskeline.Backend.Terminfo
944+dynamic-library-dirs:
946+hs-libraries: HShaskeline-0.8.2
948+ base-4.14.3.0 bytestring-0.10.12.0 containers-0.6.5.1
949+ directory-1.3.6.0 exceptions-0.10.4 filepath-1.4.2.1
950+ process-1.6.13.2 stm-2.5.0.1 terminfo-0.4.1.4 transformers-0.5.6.2
960+license: BSD-3-Clause
961+maintainer: ghc-devs@haskell.org
963+synopsis: Code Coverage Library for Haskell
965+ This package provides the code coverage library for Haskell.
966+ See <http://www.haskell.org/haskellwiki/Haskell_program_coverage> for more
971+ Trace.Hpc.Mix Trace.Hpc.Reflect Trace.Hpc.Tix Trace.Hpc.Util
974+dynamic-library-dirs:
976+hs-libraries: HShpc-0.6.1.0
978+ base-4.14.3.0 containers-0.6.5.1 deepseq-1.4.4.0 directory-1.3.6.0
979+ filepath-1.4.2.1 time-1.9.3
986+id: integer-gmp-1.0.3.0
987+key: integer-gmp-1.0.3.0
988+license: BSD-3-Clause
989+maintainer: hvr@gnu.org
990+author: Herbert Valerio Riedel
991+synopsis: Integer library based on GMP
993+ This package provides the low-level implementation of the standard
994+ 'Integer' type based on the
995+ <http://gmplib.org/ GNU Multiple Precision Arithmetic Library (GMP)>.
996+ This package provides access to the internal representation of
997+ 'Integer' as well as primitive operations with no proper error
998+ handling, and should only be used directly with the utmost care.
999+category: Numeric, Algebra
1002+ GHC.Integer GHC.Integer.GMP.Internals GHC.Integer.Logarithms
1003+ GHC.Integer.Logarithms.Internals
1004+hidden-modules: GHC.Integer.Type
1007+dynamic-library-dirs:
1009+hs-libraries: HSinteger-gmp-1.0.3.0
1010+extra-libraries: gmp
1012+depends: ghc-prim-0.6.1
1020+key: libiserv-8.10.6
1021+license: BSD-3-Clause
1025+synopsis: Provides shared functionality between iserv and iserv-proxy
1026+category: Development
1028+exposed-modules: GHCi.Utils Lib
1031+dynamic-library-dirs:
1033+hs-libraries: HSlibiserv-8.10.6
1035+ base-4.14.3.0 binary-0.8.8.0 bytestring-0.10.12.0
1036+ containers-0.6.5.1 deepseq-1.4.4.0 ghci-8.10.6 unix-2.7.2.2
1045+license: BSD-3-Clause
1046+maintainer: Edward Kmett <ekmett@gmail.com>
1048+homepage: http://github.com/haskell/mtl
1049+synopsis: Monad classes, using functional dependencies
1051+ Monad classes using functional dependencies, with instances
1052+ for various monad transformers, inspired by the paper
1053+ /Functional Programming with Overloading and Higher-Order Polymorphism/,
1054+ by Mark P Jones, in /Advanced School of Functional Programming/, 1995
1055+ (<http://web.cecs.pdx.edu/~mpj/pubs/springschool.html>).
1059+ Control.Monad.Cont Control.Monad.Cont.Class Control.Monad.Error
1060+ Control.Monad.Error.Class Control.Monad.Except
1061+ Control.Monad.Identity Control.Monad.List Control.Monad.RWS
1062+ Control.Monad.RWS.Class Control.Monad.RWS.Lazy
1063+ Control.Monad.RWS.Strict Control.Monad.Reader
1064+ Control.Monad.Reader.Class Control.Monad.State
1065+ Control.Monad.State.Class Control.Monad.State.Lazy
1066+ Control.Monad.State.Strict Control.Monad.Trans Control.Monad.Writer
1067+ Control.Monad.Writer.Class Control.Monad.Writer.Lazy
1068+ Control.Monad.Writer.Strict
1071+dynamic-library-dirs:
1073+hs-libraries: HSmtl-2.2.2
1074+depends: base-4.14.3.0 transformers-0.5.6.2
1082+key: parsec-3.1.14.0
1083+license: BSD-3-Clause
1084+maintainer: Herbert Valerio Riedel <hvr@gnu.org>
1086+ Daan Leijen <daan@microsoft.com>, Paolo Martini <paolo@nemail.it>, Antoine Latter <aslatter@gmail.com>
1087+homepage: https://github.com/haskell/parsec
1088+synopsis: Monadic parser combinators
1090+ Parsec is designed from scratch as an industrial-strength parser
1091+ library. It is simple, safe, well documented (on the package
1092+ homepage), has extensive libraries, good error messages,
1093+ and is fast. It is defined as a monad transformer that can be
1094+ stacked on arbitrary monads, and it is also parametric in the
1096+ The main entry point is the "Text.Parsec" module which provides
1097+ defaults for parsing 'Char'acter data.
1098+ The "Text.ParserCombinators.Parsec" module hierarchy contains
1099+ the legacy @parsec-2@ API and may be removed at some point in
1104+ Text.Parsec Text.Parsec.ByteString Text.Parsec.ByteString.Lazy
1105+ Text.Parsec.Char Text.Parsec.Combinator Text.Parsec.Error
1106+ Text.Parsec.Expr Text.Parsec.Language Text.Parsec.Perm
1107+ Text.Parsec.Pos Text.Parsec.Prim Text.Parsec.String
1108+ Text.Parsec.Text Text.Parsec.Text.Lazy Text.Parsec.Token
1109+ Text.ParserCombinators.Parsec Text.ParserCombinators.Parsec.Char
1110+ Text.ParserCombinators.Parsec.Combinator
1111+ Text.ParserCombinators.Parsec.Error
1112+ Text.ParserCombinators.Parsec.Expr
1113+ Text.ParserCombinators.Parsec.Language
1114+ Text.ParserCombinators.Parsec.Perm
1115+ Text.ParserCombinators.Parsec.Pos
1116+ Text.ParserCombinators.Parsec.Prim
1117+ Text.ParserCombinators.Parsec.Token
1120+dynamic-library-dirs:
1122+hs-libraries: HSparsec-3.1.14.0
1124+ base-4.14.3.0 bytestring-0.10.12.0 mtl-2.2.2 text-1.2.4.1
1133+license: BSD-3-Clause
1134+maintainer: David Terei <code@davidterei.com>
1136+homepage: http://github.com/haskell/pretty
1137+synopsis: Pretty-printing library
1139+ This package contains a pretty-printing library, a set of API's
1140+ that provides a way to easily print out text in a consistent
1141+ format of your choosing. This is useful for compilers and related
1143+ This library was originally designed by John Hughes's and has since
1144+ been heavily modified by Simon Peyton Jones.
1148+ Text.PrettyPrint Text.PrettyPrint.Annotated
1149+ Text.PrettyPrint.Annotated.HughesPJ
1150+ Text.PrettyPrint.Annotated.HughesPJClass Text.PrettyPrint.HughesPJ
1151+ Text.PrettyPrint.HughesPJClass
1154+dynamic-library-dirs:
1156+hs-libraries: HSpretty-1.1.3.6
1157+depends: base-4.14.3.0 deepseq-1.4.4.0 ghc-prim-0.6.1
1164+id: process-1.6.13.2
1165+key: process-1.6.13.2
1166+license: BSD-3-Clause
1167+maintainer: libraries@haskell.org
1168+synopsis: Process libraries
1170+ This package contains libraries for dealing with system processes.
1171+ The typed-process package is a more recent take on a process API,
1172+ which uses this package internally. It features better binary
1173+ support, easier concurrency, and a more composable API. You can
1174+ read more about it at
1175+ <https://github.com/fpco/typed-process/#readme>.
1178+exposed-modules: System.Cmd System.Process System.Process.Internals
1179+hidden-modules: System.Process.Common System.Process.Posix
1182+dynamic-library-dirs:
1184+hs-libraries: HSprocess-1.6.13.2
1186+includes: runProcess.h
1188+ base-4.14.3.0 deepseq-1.4.4.0 directory-1.3.6.0 filepath-1.4.2.1
1198+license: BSD-3-Clause
1199+maintainer: libraries@haskell.org
1200+homepage: https://wiki.haskell.org/Software_transactional_memory
1201+synopsis: Software Transactional Memory
1203+ Software Transactional Memory, or STM, is an abstraction for
1204+ concurrent communication. The main benefits of STM are
1205+ /composability/ and /modularity/. That is, using STM you can write
1206+ concurrent abstractions that can be easily composed with any other
1207+ abstraction built using STM, without exposing the details of how
1208+ your abstraction ensures safety. This is typically not the case
1209+ with other forms of concurrent communication, such as locks or
1211+category: Concurrency
1214+ Control.Concurrent.STM Control.Concurrent.STM.TArray
1215+ Control.Concurrent.STM.TBQueue Control.Concurrent.STM.TChan
1216+ Control.Concurrent.STM.TMVar Control.Concurrent.STM.TQueue
1217+ Control.Concurrent.STM.TSem Control.Concurrent.STM.TVar
1219+hidden-modules: Control.Sequential.STM
1222+dynamic-library-dirs:
1224+hs-libraries: HSstm-2.5.0.1
1225+depends: array-0.5.4.0 base-4.14.3.0
1229+name: template-haskell
1232+id: template-haskell-2.16.0.0
1233+key: template-haskell-2.16.0.0
1234+license: BSD-3-Clause
1235+maintainer: libraries@haskell.org
1236+synopsis: Support library for Template Haskell
1238+ This package provides modules containing facilities for manipulating
1239+ Haskell source code using Template Haskell.
1240+ See <http://www.haskell.org/haskellwiki/Template_Haskell> for more
1242+category: Template Haskell
1245+ Language.Haskell.TH Language.Haskell.TH.LanguageExtensions
1246+ Language.Haskell.TH.Lib Language.Haskell.TH.Lib.Internal
1247+ Language.Haskell.TH.Ppr Language.Haskell.TH.PprLib
1248+ Language.Haskell.TH.Quote Language.Haskell.TH.Syntax
1249+hidden-modules: Language.Haskell.TH.Lib.Map
1252+dynamic-library-dirs:
1254+hs-libraries: HStemplate-haskell-2.16.0.0
1256+ base-4.14.3.0 ghc-boot-th-8.10.6 ghc-prim-0.6.1 pretty-1.1.3.6
1263+id: terminfo-0.4.1.4
1264+key: terminfo-0.4.1.4
1265+license: BSD-3-Clause
1266+copyright: (c) Judah Jacobson
1267+maintainer: Judah Jacobson <judah.jacobson@gmail.com>
1268+author: Judah Jacobson
1270+homepage: https://github.com/judah/terminfo
1271+synopsis: Haskell bindings to the terminfo library.
1273+ This library provides an interface to the terminfo database (via bindings to the
1274+ curses library). <http://en.wikipedia.org/wiki/Terminfo Terminfo> allows POSIX
1275+ systems to interact with a variety of terminals using a standard set of capabilities.
1276+category: User Interfaces
1279+ System.Console.Terminfo System.Console.Terminfo.Base
1280+ System.Console.Terminfo.Color System.Console.Terminfo.Cursor
1281+ System.Console.Terminfo.Edit System.Console.Terminfo.Effects
1282+ System.Console.Terminfo.Keys
1285+dynamic-library-dirs:
1287+hs-libraries: HSterminfo-0.4.1.4
1288+extra-libraries: tinfo
1289+depends: base-4.14.3.0
1298+license: BSD-2-Clause
1299+copyright: 2009-2011 Bryan O'Sullivan, 2008-2009 Tom Harper
1301+ Bryan O'Sullivan <bos@serpentine.com>, Herbert Valerio Riedel <hvr@gnu.org>
1302+author: Bryan O'Sullivan <bos@serpentine.com>
1303+homepage: https://github.com/haskell/text
1304+synopsis: An efficient packed Unicode text type.
1306+ An efficient packed, immutable Unicode text type (both strict and
1307+ lazy), with a powerful loop fusion optimization framework.
1308+ The 'Text' type represents Unicode character strings, in a time and
1309+ space-efficient manner. This package provides text processing
1310+ capabilities that are optimized for performance critical use, both
1311+ in terms of large data quantities and high speed.
1312+ The 'Text' type provides character-encoding, type-safe case
1313+ conversion via whole-string case conversion functions (see "Data.Text").
1314+ It also provides a range of functions for converting 'Text' values to
1315+ and from 'ByteStrings', using several standard encodings
1316+ (see "Data.Text.Encoding").
1317+ Efficient locale-sensitive support for text IO is also supported
1318+ (see "Data.Text.IO").
1319+ These modules are intended to be imported qualified, to avoid name
1320+ clashes with Prelude functions, e.g.
1321+ > import qualified Data.Text as T
1323+ To use an extended and very rich family of functions for working
1324+ with Unicode text (including normalization, regular expressions,
1325+ non-standard encodings, text breaking, and locales), see
1326+ the [text-icu package](https://hackage.haskell.org/package/text-icu)
1327+ based on the well-respected and liberally
1328+ licensed [ICU library](http://site.icu-project.org/).
1329+ == Internal Representation: UTF-16 vs. UTF-8
1330+ Currently the @text@ library uses UTF-16 as its internal representation
1331+ which is [neither a fixed-width nor always the most dense representation](http://utf8everywhere.org/)
1332+ for Unicode text. We're currently investigating the feasibility
1333+ of [changing Text's internal representation to UTF-8](https://github.com/text-utf8)
1334+ and if you need such a 'Text' type right now you might be interested in using the spin-off
1335+ packages <https://hackage.haskell.org/package/text-utf8 text-utf8> and
1336+ <https://hackage.haskell.org/package/text-short text-short>.
1337+category: Data, Text
1340+ Data.Text Data.Text.Array Data.Text.Encoding
1341+ Data.Text.Encoding.Error Data.Text.Foreign Data.Text.IO
1342+ Data.Text.Internal Data.Text.Internal.Builder
1343+ Data.Text.Internal.Builder.Functions
1344+ Data.Text.Internal.Builder.Int.Digits
1345+ Data.Text.Internal.Builder.RealFloat.Functions
1346+ Data.Text.Internal.ByteStringCompat
1347+ Data.Text.Internal.Encoding.Fusion
1348+ Data.Text.Internal.Encoding.Fusion.Common
1349+ Data.Text.Internal.Encoding.Utf16 Data.Text.Internal.Encoding.Utf32
1350+ Data.Text.Internal.Encoding.Utf8 Data.Text.Internal.Functions
1351+ Data.Text.Internal.Fusion Data.Text.Internal.Fusion.CaseMapping
1352+ Data.Text.Internal.Fusion.Common Data.Text.Internal.Fusion.Size
1353+ Data.Text.Internal.Fusion.Types Data.Text.Internal.IO
1354+ Data.Text.Internal.Lazy Data.Text.Internal.Lazy.Encoding.Fusion
1355+ Data.Text.Internal.Lazy.Fusion Data.Text.Internal.Lazy.Search
1356+ Data.Text.Internal.Private Data.Text.Internal.Read
1357+ Data.Text.Internal.Search Data.Text.Internal.Unsafe
1358+ Data.Text.Internal.Unsafe.Char Data.Text.Internal.Unsafe.Shift
1359+ Data.Text.Lazy Data.Text.Lazy.Builder Data.Text.Lazy.Builder.Int
1360+ Data.Text.Lazy.Builder.RealFloat Data.Text.Lazy.Encoding
1361+ Data.Text.Lazy.IO Data.Text.Lazy.Internal Data.Text.Lazy.Read
1362+ Data.Text.Read Data.Text.Unsafe
1363+hidden-modules: Data.Text.Show
1366+dynamic-library-dirs:
1368+hs-libraries: HStext-1.2.4.1
1370+ array-0.5.4.0 base-4.14.3.0 binary-0.8.8.0 bytestring-0.10.12.0
1371+ deepseq-1.4.4.0 ghc-prim-0.6.1 integer-gmp-1.0.3.0
1372+ template-haskell-2.16.0.0
1381+license: BSD-3-Clause
1382+maintainer: <ashley@semantic.org>
1383+author: Ashley Yakeley
1385+homepage: https://github.com/haskell/time
1386+synopsis: A time library
1387+description: Time, clocks and calendars
1391+ Data.Time Data.Time.Calendar Data.Time.Calendar.Easter
1392+ Data.Time.Calendar.Julian Data.Time.Calendar.MonthDay
1393+ Data.Time.Calendar.OrdinalDate Data.Time.Calendar.WeekDate
1394+ Data.Time.Clock Data.Time.Clock.POSIX Data.Time.Clock.System
1395+ Data.Time.Clock.TAI Data.Time.Format Data.Time.Format.ISO8601
1396+ Data.Time.Format.Internal Data.Time.LocalTime
1398+ Data.Format Data.Time.Calendar.Private Data.Time.Calendar.Days
1399+ Data.Time.Calendar.Gregorian Data.Time.Calendar.CalendarDiffDays
1400+ Data.Time.Calendar.Week Data.Time.Calendar.JulianYearDay
1401+ Data.Time.Clock.Internal.DiffTime
1402+ Data.Time.Clock.Internal.AbsoluteTime
1403+ Data.Time.Clock.Internal.NominalDiffTime
1404+ Data.Time.Clock.Internal.POSIXTime
1405+ Data.Time.Clock.Internal.UniversalTime
1406+ Data.Time.Clock.Internal.SystemTime
1407+ Data.Time.Clock.Internal.UTCTime Data.Time.Clock.Internal.CTimeval
1408+ Data.Time.Clock.Internal.CTimespec Data.Time.Clock.Internal.UTCDiff
1409+ Data.Time.LocalTime.Internal.TimeZone
1410+ Data.Time.LocalTime.Internal.TimeOfDay
1411+ Data.Time.LocalTime.Internal.CalendarDiffTime
1412+ Data.Time.LocalTime.Internal.LocalTime
1413+ Data.Time.LocalTime.Internal.ZonedTime Data.Time.Format.Parse
1414+ Data.Time.Format.Locale Data.Time.Format.Format.Class
1415+ Data.Time.Format.Format.Instances Data.Time.Format.Parse.Class
1416+ Data.Time.Format.Parse.Instances
1419+dynamic-library-dirs:
1421+hs-libraries: HStime-1.9.3
1423+depends: base-4.14.3.0 deepseq-1.4.4.0
1430+id: transformers-0.5.6.2
1431+key: transformers-0.5.6.2
1432+license: BSD-3-Clause
1433+maintainer: Ross Paterson <R.Paterson@city.ac.uk>
1434+author: Andy Gill, Ross Paterson
1435+synopsis: Concrete functor and monad transformers
1437+ A portable library of functor and monad transformers, inspired by
1439+ * \"Functional Programming with Overloading and Higher-Order
1440+ Polymorphism\", by Mark P Jones,
1441+ in /Advanced School of Functional Programming/, 1995
1442+ (<http://web.cecs.pdx.edu/~mpj/pubs/springschool.html>).
1443+ This package contains:
1444+ * the monad transformer class (in "Control.Monad.Trans.Class")
1445+ * concrete functor and monad transformers, each with associated
1446+ operations and functions to lift operations associated with other
1448+ The package can be used on its own in portable Haskell code, in
1449+ which case operations need to be manually lifted through transformer
1450+ stacks (see "Control.Monad.Trans.Class" for some examples).
1451+ Alternatively, it can be used with the non-portable monad classes in
1452+ the @mtl@ or @monads-tf@ packages, which automatically lift operations
1453+ introduced by monad transformers through other transformers.
1457+ Control.Applicative.Backwards Control.Applicative.Lift
1458+ Control.Monad.Signatures Control.Monad.Trans.Accum
1459+ Control.Monad.Trans.Class Control.Monad.Trans.Cont
1460+ Control.Monad.Trans.Error Control.Monad.Trans.Except
1461+ Control.Monad.Trans.Identity Control.Monad.Trans.List
1462+ Control.Monad.Trans.Maybe Control.Monad.Trans.RWS
1463+ Control.Monad.Trans.RWS.CPS Control.Monad.Trans.RWS.Lazy
1464+ Control.Monad.Trans.RWS.Strict Control.Monad.Trans.Reader
1465+ Control.Monad.Trans.Select Control.Monad.Trans.State
1466+ Control.Monad.Trans.State.Lazy Control.Monad.Trans.State.Strict
1467+ Control.Monad.Trans.Writer Control.Monad.Trans.Writer.CPS
1468+ Control.Monad.Trans.Writer.Lazy Control.Monad.Trans.Writer.Strict
1469+ Data.Functor.Constant Data.Functor.Reverse
1472+dynamic-library-dirs:
1474+hs-libraries: HStransformers-0.5.6.2
1475+depends: base-4.14.3.0
1484+license: BSD-3-Clause
1485+maintainer: libraries@haskell.org
1486+homepage: https://github.com/haskell/unix
1487+synopsis: POSIX functionality
1489+ This package gives you access to the set of operating system
1490+ services standardised by
1491+ <http://pubs.opengroup.org/onlinepubs/9699919799/ POSIX.1-2008>
1492+ (or the IEEE Portable Operating System Interface for Computing
1493+ Environments - IEEE Std. 1003.1).
1494+ The package is not supported under Windows.
1498+ System.Posix System.Posix.ByteString
1499+ System.Posix.ByteString.FilePath System.Posix.Directory
1500+ System.Posix.Directory.ByteString System.Posix.DynamicLinker
1501+ System.Posix.DynamicLinker.ByteString
1502+ System.Posix.DynamicLinker.Module
1503+ System.Posix.DynamicLinker.Module.ByteString
1504+ System.Posix.DynamicLinker.Prim System.Posix.Env
1505+ System.Posix.Env.ByteString System.Posix.Error System.Posix.Fcntl
1506+ System.Posix.Files System.Posix.Files.ByteString System.Posix.IO
1507+ System.Posix.IO.ByteString System.Posix.Process
1508+ System.Posix.Process.ByteString System.Posix.Process.Internals
1509+ System.Posix.Resource System.Posix.Semaphore System.Posix.SharedMem
1510+ System.Posix.Signals System.Posix.Signals.Exts System.Posix.Temp
1511+ System.Posix.Temp.ByteString System.Posix.Terminal
1512+ System.Posix.Terminal.ByteString System.Posix.Time
1513+ System.Posix.Unistd System.Posix.User
1515+ System.Posix.Directory.Common System.Posix.DynamicLinker.Common
1516+ System.Posix.Files.Common System.Posix.IO.Common
1517+ System.Posix.Process.Common System.Posix.Terminal.Common
1520+dynamic-library-dirs:
1522+hs-libraries: HSunix-2.7.2.2
1524+includes: HsUnix.h execvpe.h
1525+depends: base-4.14.3.0 bytestring-0.10.12.0 time-1.9.3
1532+id: xhtml-3000.2.2.1
1533+key: xhtml-3000.2.2.1
1534+license: BSD-3-Clause
1536+ Bjorn Bringert 2004-2006, Andy Gill and the Oregon
1537+ Graduate Institute of Science and Technology, 1999-2001
1538+maintainer: Chris Dornan <chris@chrisdornan.com>
1539+author: Bjorn Bringert
1541+homepage: https://github.com/haskell/xhtml
1542+synopsis: An XHTML combinator library
1544+ This package provides combinators for producing
1545+ XHTML 1.0, including the Strict, Transitional and
1547+category: Web, XML, Pretty Printer
1550+ Text.XHtml Text.XHtml.Debug Text.XHtml.Frameset Text.XHtml.Strict
1551+ Text.XHtml.Table Text.XHtml.Transitional
1553+ Text.XHtml.Strict.Attributes Text.XHtml.Strict.Elements
1554+ Text.XHtml.Frameset.Attributes Text.XHtml.Frameset.Elements
1555+ Text.XHtml.Transitional.Attributes Text.XHtml.Transitional.Elements
1556+ Text.XHtml.BlockTable Text.XHtml.Extras Text.XHtml.Internals
1559+dynamic-library-dirs:
1561+hs-libraries: HSxhtml-3000.2.2.1
1562+depends: base-4.14.3.0
1571+license: BSD-3-Clause
1572+maintainer: glasgow-haskell-users@haskell.org
1576+extra-libraries: m dl ffi
1580+ "-Wl,-u,_base_GHCziTopHandler_runIO_closure"
1581+ "-Wl,-u,_base_GHCziTopHandler_runNonIO_closure"
1582+ "-Wl,-u,_ghczmprim_GHCziTuple_Z0T_closure"
1583+ "-Wl,-u,_ghczmprim_GHCziTypes_True_closure"
1584+ "-Wl,-u,_ghczmprim_GHCziTypes_False_closure"
1585+ "-Wl,-u,_base_GHCziPack_unpackCString_closure"
1586+ "-Wl,-u,_base_GHCziWeak_runFinalizzerBatch_closure"
1587+ "-Wl,-u,_base_GHCziIOziException_stackOverflow_closure"
1588+ "-Wl,-u,_base_GHCziIOziException_heapOverflow_closure"
1589+ "-Wl,-u,_base_GHCziIOziException_allocationLimitExceeded_closure"
1590+ "-Wl,-u,_base_GHCziIOziException_blockedIndefinitelyOnMVar_closure"
1591+ "-Wl,-u,_base_GHCziIOziException_blockedIndefinitelyOnSTM_closure"
1592+ "-Wl,-u,_base_GHCziIOziException_cannotCompactFunction_closure"
1593+ "-Wl,-u,_base_GHCziIOziException_cannotCompactPinned_closure"
1594+ "-Wl,-u,_base_GHCziIOziException_cannotCompactMutable_closure"
1595+ "-Wl,-u,_base_ControlziExceptionziBase_absentSumFieldError_closure"
1596+ "-Wl,-u,_base_ControlziExceptionziBase_nonTermination_closure"
1597+ "-Wl,-u,_base_ControlziExceptionziBase_nestedAtomically_closure"
1598+ "-Wl,-u,_base_GHCziEventziThread_blockedOnBadFD_closure"
1599+ "-Wl,-u,_base_GHCziConcziSync_runSparks_closure"
1600+ "-Wl,-u,_base_GHCziConcziIO_ensureIOManagerIsRunning_closure"
1601+ "-Wl,-u,_base_GHCziConcziIO_ioManagerCapabilitiesChanged_closure"
1602+ "-Wl,-u,_base_GHCziConcziSignal_runHandlersPtr_closure"
1603+ "-Wl,-u,_base_GHCziTopHandler_flushStdHandles_closure"
1604+ "-Wl,-u,_base_GHCziTopHandler_runMainIO_closure"
1605+ "-Wl,-u,_ghczmprim_GHCziTypes_Czh_con_info"
1606+ "-Wl,-u,_ghczmprim_GHCziTypes_Izh_con_info"
1607+ "-Wl,-u,_ghczmprim_GHCziTypes_Fzh_con_info"
1608+ "-Wl,-u,_ghczmprim_GHCziTypes_Dzh_con_info"
1609+ "-Wl,-u,_ghczmprim_GHCziTypes_Wzh_con_info"
1610+ "-Wl,-u,_base_GHCziPtr_Ptr_con_info"
1611+ "-Wl,-u,_base_GHCziPtr_FunPtr_con_info"
1612+ "-Wl,-u,_base_GHCziInt_I8zh_con_info"
1613+ "-Wl,-u,_base_GHCziInt_I16zh_con_info"
1614+ "-Wl,-u,_base_GHCziInt_I32zh_con_info"
1615+ "-Wl,-u,_base_GHCziInt_I64zh_con_info"
1616+ "-Wl,-u,_base_GHCziWord_W8zh_con_info"
1617+ "-Wl,-u,_base_GHCziWord_W16zh_con_info"
1618+ "-Wl,-u,_base_GHCziWord_W32zh_con_info"
1619+ "-Wl,-u,_base_GHCziWord_W64zh_con_info"
1620+ "-Wl,-u,_base_GHCziStable_StablePtr_con_info"
1621+ "-Wl,-u,_hs_atomic_add8" "-Wl,-u,_hs_atomic_add16"
1622+ "-Wl,-u,_hs_atomic_add32" "-Wl,-u,_hs_atomic_add64"
1623+ "-Wl,-u,_hs_atomic_sub8" "-Wl,-u,_hs_atomic_sub16"
1624+ "-Wl,-u,_hs_atomic_sub32" "-Wl,-u,_hs_atomic_sub64"
1625+ "-Wl,-u,_hs_atomic_and8" "-Wl,-u,_hs_atomic_and16"
1626+ "-Wl,-u,_hs_atomic_and32" "-Wl,-u,_hs_atomic_and64"
1627+ "-Wl,-u,_hs_atomic_nand8" "-Wl,-u,_hs_atomic_nand16"
1628+ "-Wl,-u,_hs_atomic_nand32" "-Wl,-u,_hs_atomic_nand64"
1629+ "-Wl,-u,_hs_atomic_or8" "-Wl,-u,_hs_atomic_or16"
1630+ "-Wl,-u,_hs_atomic_or32" "-Wl,-u,_hs_atomic_or64"
1631+ "-Wl,-u,_hs_atomic_xor8" "-Wl,-u,_hs_atomic_xor16"
1632+ "-Wl,-u,_hs_atomic_xor32" "-Wl,-u,_hs_atomic_xor64"
1633+ "-Wl,-u,_hs_cmpxchg8" "-Wl,-u,_hs_cmpxchg16" "-Wl,-u,_hs_cmpxchg32"
1634+ "-Wl,-u,_hs_cmpxchg64" "-Wl,-u,_hs_atomicread8"
1635+ "-Wl,-u,_hs_atomicread16" "-Wl,-u,_hs_atomicread32"
1636+ "-Wl,-u,_hs_atomicread64" "-Wl,-u,_hs_atomicwrite8"
1637+ "-Wl,-u,_hs_atomicwrite16" "-Wl,-u,_hs_atomicwrite32"
1638+ "-Wl,-u,_hs_atomicwrite64" "-Wl,-search_paths_first"
materialized/dummy-ghc/ghc-8.10.6-x86_64-darwin/ghc-pkg/versionnew file+1
@@ -0,0 +1 @@
1+GHC package manager version 8.10.6
materialized/dummy-ghc/ghc-8.10.6-x86_64-darwin/ghc/infonew file+75
@@ -0,0 +1,75 @@
1+ [("Project name","The Glorious Glasgow Haskell Compilation System")
2+ ,("GCC extra via C opts","")
3+ ,("C compiler command","clang")
4+ ,("C compiler flags","")
5+ ,("C++ compiler flags","")
6+ ,("C compiler link flags","")
7+ ,("C compiler supports -no-pie","NO")
8+ ,("Haskell CPP command","clang")
9+ ,("Haskell CPP flags","-E -undef -traditional -Wno-invalid-pp-token -Wno-unicode -Wno-trigraphs")
12+ ,("ld supports compact unwind","YES")
13+ ,("ld supports build-id","NO")
14+ ,("ld supports filelist","YES")
15+ ,("ld is GNU ld","NO")
16+ ,("Merge objects command","ld")
17+ ,("Merge objects flags","-r")
20+ ,("ar supports at file","NO")
21+ ,("ranlib command","ranlib")
22+ ,("otool command","otool")
23+ ,("install_name_tool command","install_name_tool")
24+ ,("touch command","touch")
25+ ,("dllwrap command","/bin/false")
26+ ,("windres command","/bin/false")
27+ ,("libtool command","libtool")
28+ ,("cross compiling","NO")
29+ ,("target platform string","x86_64-apple-darwin")
30+ ,("target os","OSDarwin")
31+ ,("target arch","ArchX86_64")
32+ ,("target word size","8")
33+ ,("target has GNU nonexec stack","NO")
34+ ,("target has .ident directive","YES")
35+ ,("target has subsections via symbols","YES")
36+ ,("target has RTS linker","YES")
37+ ,("Unregisterised","NO")
38+ ,("LLVM target","x86_64-apple-darwin")
39+ ,("LLVM llc command","llc")
40+ ,("LLVM opt command","opt")
41+ ,("LLVM clang command","clang")
42+ ,("integer library","integer-gmp")
43+ ,("Use interpreter","YES")
44+ ,("Use native code generator","YES")
45+ ,("Support SMP","YES")
46+ ,("RTS ways","l debug thr thr_debug thr_l thr_p dyn debug_dyn thr_dyn thr_debug_dyn l_dyn thr_l_dyn thr_debug_p debug_p")
47+ ,("Tables next to code","YES")
48+ ,("Leading underscore","YES")
50+ ,("Use Threads","YES")
51+ ,("Use Debugging","NO")
52+ ,("RTS expects libdw","NO")
53+ ,("Project version","8.10.6")
54+ ,("Project Git commit id","f7b3359be12030d762b299681e1aeef0292417ce")
55+ ,("Booter version","8.6.5")
57+ ,("Build platform","x86_64-apple-darwin")
58+ ,("Host platform","x86_64-apple-darwin")
59+ ,("Target platform","x86_64-apple-darwin")
60+ ,("Have interpreter","YES")
61+ ,("Object splitting supported","NO")
62+ ,("Have native code generator","YES")
63+ ,("Support dynamic-too","YES")
64+ ,("Support parallel --make","YES")
65+ ,("Support reexported-modules","YES")
66+ ,("Support thinning and renaming package flags","YES")
67+ ,("Support Backpack","YES")
68+ ,("Requires unified installed package IDs","YES")
69+ ,("Uses package keys","YES")
70+ ,("Uses unit IDs","YES")
71+ ,("Dynamic by default","NO")
72+ ,("GHC Dynamic","YES")
73+ ,("GHC Profiled","NO")
materialized/dummy-ghc/ghc-8.10.6-x86_64-darwin/ghc/numeric-versionnew file+1
materialized/dummy-ghc/ghc-8.10.6-x86_64-darwin/ghc/supported-languagesnew file+255
@@ -0,0 +1,255 @@
9+NoAlternativeLayoutRule
10+AlternativeLayoutRuleTransitional
11+NoAlternativeLayoutRuleTransitional
26+ConstrainedClassMethods
27+NoConstrainedClassMethods
54+DisambiguateRecordFields
55+NoDisambiguateRecordFields
63+NoDuplicateRecordFields
70+ExistentialQuantification
71+NoExistentialQuantification
77+NoExtendedDefaultRules
82+ForeignFunctionInterface
83+NoForeignFunctionInterface
84+FunctionalDependencies
85+NoFunctionalDependencies
91+NoGHCForeignImportPrim
92+GeneralizedNewtypeDeriving
93+NoGeneralizedNewtypeDeriving
94+GeneralisedNewtypeDeriving
95+NoGeneralisedNewtypeDeriving
101+NoImportQualifiedPost
105+NoIncoherentInstances
106+TypeFamilyDependencies
107+NoTypeFamilyDependencies
121+NoLiberalTypeSynonyms
125+NoMonadComprehensions
127+NoMonadFailDesugaring
132+MonomorphismRestriction
133+NoMonomorphismRestriction
134+MultiParamTypeClasses
135+NoMultiParamTypeClasses
150+NondecreasingIndentation
151+NoNondecreasingIndentation
157+NoOverlappingInstances
170+PartialTypeSignatures
171+NoPartialTypeSignatures
180+PolymorphicComponents
181+NoPolymorphicComponents
182+QuantifiedConstraints
183+NoQuantifiedConstraints
207+NoScopedTypeVariables
220+TemplateHaskellQuotes
221+NoTemplateHaskellQuotes
222+StandaloneKindSignatures
223+NoStandaloneKindSignatures
224+TraditionalRecordSyntax
225+NoTraditionalRecordSyntax
239+NoTypeSynonymInstances
245+NoUndecidableInstances
246+UndecidableSuperClasses
247+NoUndecidableSuperClasses
materialized/dummy-ghc/ghc-8.10.6-x86_64-darwin/ghc/versionnew file+1
@@ -0,0 +1 @@
1+The Glorious Glasgow Haskell Compilation System, version 8.10.6
materialized/dummy-ghc/ghc-8.10.6-x86_64-linux/ghc-pkg/dump-globalnew file+1639
@@ -0,0 +1,1639 @@
7+copyright: 2003-2020, Cabal Development Team (see AUTHORS file)
8+maintainer: cabal-devel@haskell.org
9+author: Cabal Development Team <cabal-devel@haskell.org>
10+homepage: http://www.haskell.org/cabal/
11+synopsis: A framework for packaging Haskell software
13+ The Haskell Common Architecture for Building Applications and
14+ Libraries: a framework defining a common interface for authors to more
15+ easily build their Haskell applications in a portable way.
16+ The Haskell Cabal is part of a larger infrastructure for distributing,
17+ organizing, and cataloging Haskell libraries and tools.
18+category: Distribution
21+ Distribution.Backpack Distribution.Backpack.ComponentsGraph
22+ Distribution.Backpack.Configure
23+ Distribution.Backpack.ConfiguredComponent
24+ Distribution.Backpack.DescribeUnitId
25+ Distribution.Backpack.FullUnitId
26+ Distribution.Backpack.LinkedComponent
27+ Distribution.Backpack.ModSubst Distribution.Backpack.ModuleShape
28+ Distribution.Backpack.PreModuleShape Distribution.CabalSpecVersion
29+ Distribution.Compat.Binary Distribution.Compat.CharParsing
30+ Distribution.Compat.CreatePipe Distribution.Compat.DList
31+ Distribution.Compat.Directory Distribution.Compat.Environment
32+ Distribution.Compat.Exception Distribution.Compat.FilePath
33+ Distribution.Compat.Graph Distribution.Compat.Internal.TempFile
34+ Distribution.Compat.Lens Distribution.Compat.Newtype
35+ Distribution.Compat.Parsing Distribution.Compat.Prelude.Internal
36+ Distribution.Compat.Process Distribution.Compat.ResponseFile
37+ Distribution.Compat.Semigroup Distribution.Compat.Stack
38+ Distribution.Compat.Time Distribution.Compat.Typeable
39+ Distribution.Compiler Distribution.FieldGrammar
40+ Distribution.FieldGrammar.Class
41+ Distribution.FieldGrammar.FieldDescrs
42+ Distribution.FieldGrammar.Parsec Distribution.FieldGrammar.Pretty
43+ Distribution.Fields Distribution.Fields.ConfVar
44+ Distribution.Fields.Field Distribution.Fields.Lexer
45+ Distribution.Fields.LexerMonad Distribution.Fields.ParseResult
46+ Distribution.Fields.Parser Distribution.Fields.Pretty
47+ Distribution.InstalledPackageInfo Distribution.License
48+ Distribution.Make Distribution.ModuleName Distribution.Package
49+ Distribution.PackageDescription
50+ Distribution.PackageDescription.Check
51+ Distribution.PackageDescription.Configuration
52+ Distribution.PackageDescription.FieldGrammar
53+ Distribution.PackageDescription.Parsec
54+ Distribution.PackageDescription.PrettyPrint
55+ Distribution.PackageDescription.Quirks
56+ Distribution.PackageDescription.Utils Distribution.Parsec
57+ Distribution.Parsec.Error Distribution.Parsec.FieldLineStream
58+ Distribution.Parsec.Newtypes Distribution.Parsec.Position
59+ Distribution.Parsec.Warning Distribution.Pretty Distribution.ReadE
60+ Distribution.SPDX Distribution.SPDX.License
61+ Distribution.SPDX.LicenseExceptionId
62+ Distribution.SPDX.LicenseExpression Distribution.SPDX.LicenseId
63+ Distribution.SPDX.LicenseListVersion
64+ Distribution.SPDX.LicenseReference Distribution.Simple
65+ Distribution.Simple.Bench Distribution.Simple.Build
66+ Distribution.Simple.Build.Macros
67+ Distribution.Simple.Build.PathsModule
68+ Distribution.Simple.BuildPaths Distribution.Simple.BuildTarget
69+ Distribution.Simple.BuildToolDepends Distribution.Simple.CCompiler
70+ Distribution.Simple.Command Distribution.Simple.Compiler
71+ Distribution.Simple.Configure Distribution.Simple.Doctest
72+ Distribution.Simple.Flag Distribution.Simple.GHC
73+ Distribution.Simple.GHCJS Distribution.Simple.Glob
74+ Distribution.Simple.Haddock Distribution.Simple.HaskellSuite
75+ Distribution.Simple.Hpc Distribution.Simple.Install
76+ Distribution.Simple.InstallDirs
77+ Distribution.Simple.InstallDirs.Internal
78+ Distribution.Simple.LocalBuildInfo Distribution.Simple.PackageIndex
79+ Distribution.Simple.PreProcess Distribution.Simple.PreProcess.Unlit
80+ Distribution.Simple.Program Distribution.Simple.Program.Ar
81+ Distribution.Simple.Program.Builtin Distribution.Simple.Program.Db
82+ Distribution.Simple.Program.Find Distribution.Simple.Program.GHC
83+ Distribution.Simple.Program.HcPkg Distribution.Simple.Program.Hpc
84+ Distribution.Simple.Program.Internal Distribution.Simple.Program.Ld
85+ Distribution.Simple.Program.ResponseFile
86+ Distribution.Simple.Program.Run Distribution.Simple.Program.Script
87+ Distribution.Simple.Program.Strip Distribution.Simple.Program.Types
88+ Distribution.Simple.Register Distribution.Simple.Setup
89+ Distribution.Simple.ShowBuildInfo Distribution.Simple.SrcDist
90+ Distribution.Simple.Test Distribution.Simple.Test.ExeV10
91+ Distribution.Simple.Test.LibV09 Distribution.Simple.Test.Log
92+ Distribution.Simple.UHC Distribution.Simple.UserHooks
93+ Distribution.Simple.Utils Distribution.System
94+ Distribution.TestSuite Distribution.Text
95+ Distribution.Types.AbiDependency Distribution.Types.AbiHash
96+ Distribution.Types.AnnotatedId Distribution.Types.Benchmark
97+ Distribution.Types.Benchmark.Lens
98+ Distribution.Types.BenchmarkInterface
99+ Distribution.Types.BenchmarkType Distribution.Types.BuildInfo
100+ Distribution.Types.BuildInfo.Lens Distribution.Types.BuildType
101+ Distribution.Types.Component Distribution.Types.ComponentId
102+ Distribution.Types.ComponentInclude
103+ Distribution.Types.ComponentLocalBuildInfo
104+ Distribution.Types.ComponentName
105+ Distribution.Types.ComponentRequestedSpec
106+ Distribution.Types.CondTree Distribution.Types.Condition
107+ Distribution.Types.ConfVar Distribution.Types.Dependency
108+ Distribution.Types.DependencyMap Distribution.Types.ExeDependency
109+ Distribution.Types.Executable Distribution.Types.Executable.Lens
110+ Distribution.Types.ExecutableScope Distribution.Types.ExposedModule
111+ Distribution.Types.Flag Distribution.Types.ForeignLib
112+ Distribution.Types.ForeignLib.Lens
113+ Distribution.Types.ForeignLibOption
114+ Distribution.Types.ForeignLibType
115+ Distribution.Types.GenericPackageDescription
116+ Distribution.Types.GenericPackageDescription.Lens
117+ Distribution.Types.GivenComponent
118+ Distribution.Types.HookedBuildInfo
119+ Distribution.Types.IncludeRenaming
120+ Distribution.Types.InstalledPackageInfo
121+ Distribution.Types.InstalledPackageInfo.FieldGrammar
122+ Distribution.Types.InstalledPackageInfo.Lens
123+ Distribution.Types.LegacyExeDependency Distribution.Types.Lens
124+ Distribution.Types.Library Distribution.Types.Library.Lens
125+ Distribution.Types.LibraryName Distribution.Types.LibraryVisibility
126+ Distribution.Types.LocalBuildInfo Distribution.Types.Mixin
127+ Distribution.Types.Module Distribution.Types.ModuleReexport
128+ Distribution.Types.ModuleRenaming
129+ Distribution.Types.MungedPackageId
130+ Distribution.Types.MungedPackageName
131+ Distribution.Types.PackageDescription
132+ Distribution.Types.PackageDescription.Lens
133+ Distribution.Types.PackageId Distribution.Types.PackageId.Lens
134+ Distribution.Types.PackageName Distribution.Types.PackageName.Magic
135+ Distribution.Types.PackageVersionConstraint
136+ Distribution.Types.PkgconfigDependency
137+ Distribution.Types.PkgconfigName
138+ Distribution.Types.PkgconfigVersion
139+ Distribution.Types.PkgconfigVersionRange
140+ Distribution.Types.SetupBuildInfo
141+ Distribution.Types.SetupBuildInfo.Lens
142+ Distribution.Types.SourceRepo Distribution.Types.SourceRepo.Lens
143+ Distribution.Types.TargetInfo Distribution.Types.TestSuite
144+ Distribution.Types.TestSuite.Lens
145+ Distribution.Types.TestSuiteInterface Distribution.Types.TestType
146+ Distribution.Types.UnitId Distribution.Types.UnqualComponentName
147+ Distribution.Types.Version Distribution.Types.VersionInterval
148+ Distribution.Types.VersionRange
149+ Distribution.Types.VersionRange.Internal Distribution.Utils.Generic
150+ Distribution.Utils.IOData Distribution.Utils.LogProgress
151+ Distribution.Utils.MD5 Distribution.Utils.MapAccum
152+ Distribution.Utils.NubList Distribution.Utils.Progress
153+ Distribution.Utils.ShortText Distribution.Utils.Structured
154+ Distribution.Verbosity Distribution.Verbosity.Internal
155+ Distribution.Version Language.Haskell.Extension
157+ Distribution.Backpack.PreExistingComponent
158+ Distribution.Backpack.ReadyComponent Distribution.Backpack.MixLink
159+ Distribution.Backpack.ModuleScope Distribution.Backpack.UnifyM
160+ Distribution.Backpack.Id Distribution.Utils.UnionFind
161+ Distribution.Utils.Base62 Distribution.Compat.Async
162+ Distribution.Compat.CopyFile Distribution.Compat.GetShortPathName
163+ Distribution.Compat.MonadFail Distribution.Compat.Prelude
164+ Distribution.Compat.SnocList Distribution.GetOpt Distribution.Lex
165+ Distribution.Utils.String Distribution.Simple.GHC.EnvironmentParser
166+ Distribution.Simple.GHC.Internal Distribution.Simple.GHC.ImplInfo
167+ Distribution.Simple.Utils.Json Paths_Cabal
170+dynamic-library-dirs:
172+hs-libraries: HSCabal-3.2.1.0
174+ array-0.5.4.0 base-4.14.3.0 binary-0.8.8.0 bytestring-0.10.12.0
175+ containers-0.6.5.1 deepseq-1.4.4.0 directory-1.3.6.0
176+ filepath-1.4.2.1 mtl-2.2.2 parsec-3.1.14.0 pretty-1.1.3.6
177+ process-1.6.13.2 text-1.2.4.1 time-1.9.3 transformers-0.5.6.2
187+license: BSD-3-Clause
188+maintainer: libraries@haskell.org
189+synopsis: Mutable and immutable arrays
191+ In addition to providing the "Data.Array" module
192+ <http://www.haskell.org/onlinereport/haskell2010/haskellch14.html as specified in the Haskell 2010 Language Report>,
193+ this package also defines the classes 'IArray' of
194+ immutable arrays and 'MArray' of arrays mutable within appropriate
195+ monads, as well as some instances of these classes.
196+category: Data Structures
199+ Data.Array Data.Array.Base Data.Array.IArray Data.Array.IO
200+ Data.Array.IO.Internals Data.Array.IO.Safe Data.Array.MArray
201+ Data.Array.MArray.Safe Data.Array.ST Data.Array.ST.Safe
202+ Data.Array.Storable Data.Array.Storable.Internals
203+ Data.Array.Storable.Safe Data.Array.Unboxed Data.Array.Unsafe
206+dynamic-library-dirs:
208+hs-libraries: HSarray-0.5.4.0
209+depends: base-4.14.3.0
218+license: BSD-3-Clause
219+maintainer: libraries@haskell.org
220+synopsis: Basic libraries
222+ This package contains the Standard Haskell "Prelude" and its support libraries,
223+ and a large collection of useful libraries ranging from data
224+ structures to parsing combinators and debugging utilities.
228+ Control.Applicative Control.Arrow Control.Category
229+ Control.Concurrent Control.Concurrent.Chan Control.Concurrent.MVar
230+ Control.Concurrent.QSem Control.Concurrent.QSemN Control.Exception
231+ Control.Exception.Base Control.Monad Control.Monad.Fail
232+ Control.Monad.Fix Control.Monad.IO.Class Control.Monad.Instances
233+ Control.Monad.ST Control.Monad.ST.Lazy Control.Monad.ST.Lazy.Safe
234+ Control.Monad.ST.Lazy.Unsafe Control.Monad.ST.Safe
235+ Control.Monad.ST.Strict Control.Monad.ST.Unsafe Control.Monad.Zip
236+ Data.Bifoldable Data.Bifunctor Data.Bitraversable Data.Bits
237+ Data.Bool Data.Char Data.Coerce Data.Complex Data.Data Data.Dynamic
238+ Data.Either Data.Eq Data.Fixed Data.Foldable Data.Function
239+ Data.Functor Data.Functor.Classes Data.Functor.Compose
240+ Data.Functor.Const Data.Functor.Contravariant Data.Functor.Identity
241+ Data.Functor.Product Data.Functor.Sum Data.IORef Data.Int Data.Ix
242+ Data.Kind Data.List Data.List.NonEmpty Data.Maybe Data.Monoid
243+ Data.Ord Data.Proxy Data.Ratio Data.STRef Data.STRef.Lazy
244+ Data.STRef.Strict Data.Semigroup Data.String Data.Traversable
245+ Data.Tuple Data.Type.Bool Data.Type.Coercion Data.Type.Equality
246+ Data.Typeable Data.Unique Data.Version Data.Void Data.Word
247+ Debug.Trace Foreign Foreign.C Foreign.C.Error Foreign.C.String
248+ Foreign.C.Types Foreign.Concurrent Foreign.ForeignPtr
249+ Foreign.ForeignPtr.Safe Foreign.ForeignPtr.Unsafe Foreign.Marshal
250+ Foreign.Marshal.Alloc Foreign.Marshal.Array Foreign.Marshal.Error
251+ Foreign.Marshal.Pool Foreign.Marshal.Safe Foreign.Marshal.Unsafe
252+ Foreign.Marshal.Utils Foreign.Ptr Foreign.Safe Foreign.StablePtr
253+ Foreign.Storable GHC.Arr GHC.Base GHC.ByteOrder GHC.Char GHC.Clock
254+ GHC.Conc GHC.Conc.IO GHC.Conc.Signal GHC.Conc.Sync
255+ GHC.ConsoleHandler GHC.Constants GHC.Desugar GHC.Enum
256+ GHC.Environment GHC.Err GHC.Event GHC.Exception GHC.Exception.Type
257+ GHC.ExecutionStack GHC.ExecutionStack.Internal GHC.Exts
258+ GHC.Fingerprint GHC.Fingerprint.Type GHC.Float
259+ GHC.Float.ConversionUtils GHC.Float.RealFracMethods GHC.Foreign
260+ GHC.ForeignPtr GHC.GHCi GHC.GHCi.Helpers GHC.Generics GHC.IO
261+ GHC.IO.Buffer GHC.IO.BufferedIO GHC.IO.Device GHC.IO.Encoding
262+ GHC.IO.Encoding.CodePage GHC.IO.Encoding.Failure
263+ GHC.IO.Encoding.Iconv GHC.IO.Encoding.Latin1 GHC.IO.Encoding.Types
264+ GHC.IO.Encoding.UTF16 GHC.IO.Encoding.UTF32 GHC.IO.Encoding.UTF8
265+ GHC.IO.Exception GHC.IO.FD GHC.IO.Handle GHC.IO.Handle.FD
266+ GHC.IO.Handle.Internals GHC.IO.Handle.Lock GHC.IO.Handle.Text
267+ GHC.IO.Handle.Types GHC.IO.IOMode GHC.IO.Unsafe GHC.IOArray
268+ GHC.IORef GHC.Int GHC.Ix GHC.List GHC.MVar GHC.Maybe GHC.Natural
269+ GHC.Num GHC.OldList GHC.OverloadedLabels GHC.Pack GHC.Profiling
270+ GHC.Ptr GHC.RTS.Flags GHC.Read GHC.Real GHC.Records
271+ GHC.ResponseFile GHC.ST GHC.STRef GHC.Show GHC.Stable
272+ GHC.StableName GHC.Stack GHC.Stack.CCS GHC.Stack.Types
273+ GHC.StaticPtr GHC.Stats GHC.Storable GHC.TopHandler GHC.TypeLits
274+ GHC.TypeNats GHC.Unicode GHC.Weak GHC.Word Numeric Numeric.Natural
275+ Prelude System.CPUTime System.Console.GetOpt System.Environment
276+ System.Environment.Blank System.Exit System.IO System.IO.Error
277+ System.IO.Unsafe System.Info System.Mem System.Mem.StableName
278+ System.Mem.Weak System.Posix.Internals System.Posix.Types
279+ System.Timeout Text.ParserCombinators.ReadP
280+ Text.ParserCombinators.ReadPrec Text.Printf Text.Read Text.Read.Lex
281+ Text.Show Text.Show.Functions Type.Reflection
282+ Type.Reflection.Unsafe Unsafe.Coerce
284+ Control.Monad.ST.Imp Control.Monad.ST.Lazy.Imp Data.Functor.Utils
285+ Data.OldList Data.Semigroup.Internal Data.Typeable.Internal
286+ Foreign.ForeignPtr.Imp GHC.IO.Handle.Lock.Common
287+ GHC.IO.Handle.Lock.Flock GHC.IO.Handle.Lock.LinuxOFD
288+ GHC.IO.Handle.Lock.NoOp GHC.IO.Handle.Lock.Windows
289+ GHC.StaticPtr.Internal System.Environment.ExecutablePath
290+ System.CPUTime.Utils GHC.Event.Arr GHC.Event.Array
291+ GHC.Event.Control GHC.Event.EPoll GHC.Event.IntTable
292+ GHC.Event.Internal GHC.Event.KQueue GHC.Event.Manager GHC.Event.PSQ
293+ GHC.Event.Poll GHC.Event.Thread GHC.Event.TimerManager
294+ GHC.Event.Unique System.CPUTime.Posix.ClockGetTime
295+ System.CPUTime.Posix.Times System.CPUTime.Posix.RUsage
296+ System.CPUTime.Unsupported
299+dynamic-library-dirs:
301+hs-libraries: HSbase-4.14.3.0
304+depends: ghc-prim-0.6.1 integer-gmp-1.0.3.0 rts
313+license: BSD-3-Clause
314+maintainer: Lennart Kolmodin, Don Stewart <dons00@gmail.com>
315+author: Lennart Kolmodin <kolmodin@gmail.com>
316+stability: provisional
317+homepage: https://github.com/kolmodin/binary
319+ Binary serialisation for Haskell values using lazy ByteStrings
321+ Efficient, pure binary serialisation using lazy ByteStrings.
322+ Haskell values may be encoded to and from binary formats,
323+ written to disk as binary, or sent over the network.
324+ The format used can be automatically generated, or
325+ you can choose to implement a custom format if needed.
326+ Serialisation speeds of over 1 G\/sec have been observed,
327+ so this library should be suitable for high performance
329+category: Data, Parsing
332+ Data.Binary Data.Binary.Builder Data.Binary.Get
333+ Data.Binary.Get.Internal Data.Binary.Put
335+ Data.Binary.Class Data.Binary.Internal Data.Binary.Generic
336+ Data.Binary.FloatCast
339+dynamic-library-dirs:
341+hs-libraries: HSbinary-0.8.8.0
343+ array-0.5.4.0 base-4.14.3.0 bytestring-0.10.12.0 containers-0.6.5.1
350+id: bytestring-0.10.12.0
351+key: bytestring-0.10.12.0
352+license: BSD-3-Clause
354+ Copyright (c) Don Stewart 2005-2009,
355+ (c) Duncan Coutts 2006-2015,
356+ (c) David Roundy 2003-2005,
357+ (c) Jasper Van der Jeugt 2010,
358+ (c) Simon Meier 2010-2013.
359+maintainer: Duncan Coutts <duncan@community.haskell.org>
363+homepage: https://github.com/haskell/bytestring
365+ Fast, compact, strict and lazy byte strings with a list interface
367+ An efficient compact, immutable byte string type (both strict and lazy)
368+ suitable for binary or 8-bit character data.
369+ The 'ByteString' type represents sequences of bytes or 8-bit characters.
370+ It is suitable for high performance use, both in terms of large data
371+ quantities, or high speed requirements. The 'ByteString' functions follow
372+ the same style as Haskell\'s ordinary lists, so it is easy to convert code
373+ from using 'String' to 'ByteString'.
374+ Two 'ByteString' variants are provided:
375+ * Strict 'ByteString's keep the string as a single large array. This
376+ makes them convenient for passing data between C and Haskell.
377+ * Lazy 'ByteString's use a lazy list of strict chunks which makes it
378+ suitable for I\/O streaming tasks.
379+ The @Char8@ modules provide a character-based view of the same
380+ underlying 'ByteString' types. This makes it convenient to handle mixed
381+ binary and 8-bit character content (which is common in many file formats
382+ and network protocols).
383+ The 'Builder' module provides an efficient way to build up 'ByteString's
384+ in an ad-hoc way by repeated concatenation. This is ideal for fast
385+ serialisation or pretty printing.
386+ There is also a 'ShortByteString' type which has a lower memory overhead
387+ and can can be converted to or from a 'ByteString', but supports very few
388+ other operations. It is suitable for keeping many short strings in memory.
389+ 'ByteString's are not designed for Unicode. For Unicode strings you should
390+ use the 'Text' type from the @text@ package.
391+ These modules are intended to be imported qualified, to avoid name clashes
392+ with "Prelude" functions, e.g.
393+ > import qualified Data.ByteString as BS
397+ Data.ByteString Data.ByteString.Builder
398+ Data.ByteString.Builder.Extra Data.ByteString.Builder.Internal
399+ Data.ByteString.Builder.Prim Data.ByteString.Builder.Prim.Internal
400+ Data.ByteString.Char8 Data.ByteString.Internal Data.ByteString.Lazy
401+ Data.ByteString.Lazy.Builder Data.ByteString.Lazy.Builder.ASCII
402+ Data.ByteString.Lazy.Builder.Extras Data.ByteString.Lazy.Char8
403+ Data.ByteString.Lazy.Internal Data.ByteString.Short
404+ Data.ByteString.Short.Internal Data.ByteString.Unsafe
406+ Data.ByteString.Builder.ASCII Data.ByteString.Builder.Prim.Binary
407+ Data.ByteString.Builder.Prim.ASCII
408+ Data.ByteString.Builder.Prim.Internal.Floating
409+ Data.ByteString.Builder.Prim.Internal.UncheckedShifts
410+ Data.ByteString.Builder.Prim.Internal.Base16
413+dynamic-library-dirs:
415+hs-libraries: HSbytestring-0.10.12.0
419+ base-4.14.3.0 deepseq-1.4.4.0 ghc-prim-0.6.1 integer-gmp-1.0.3.0
426+id: containers-0.6.5.1
427+key: containers-0.6.5.1
428+license: BSD-3-Clause
429+maintainer: libraries@haskell.org
430+synopsis: Assorted concrete container types
432+ This package contains efficient general-purpose implementations
433+ of various immutable container types including sets, maps, sequences,
435+ For a walkthrough of what this package provides with examples of common
436+ operations see the [containers
437+ introduction](https://haskell-containers.readthedocs.io).
438+ The declared cost of each operation is either worst-case or amortized, but
439+ remains valid even if structures are shared.
440+category: Data Structures
443+ Data.Containers.ListUtils Data.Graph Data.IntMap
444+ Data.IntMap.Internal Data.IntMap.Internal.Debug Data.IntMap.Lazy
445+ Data.IntMap.Merge.Lazy Data.IntMap.Merge.Strict Data.IntMap.Strict
446+ Data.IntMap.Strict.Internal Data.IntSet Data.IntSet.Internal
447+ Data.Map Data.Map.Internal Data.Map.Internal.Debug Data.Map.Lazy
448+ Data.Map.Merge.Lazy Data.Map.Merge.Strict Data.Map.Strict
449+ Data.Map.Strict.Internal Data.Sequence Data.Sequence.Internal
450+ Data.Sequence.Internal.Sorting Data.Set Data.Set.Internal Data.Tree
451+ Utils.Containers.Internal.BitQueue
452+ Utils.Containers.Internal.BitUtil
453+ Utils.Containers.Internal.StrictPair
455+ Utils.Containers.Internal.State
456+ Utils.Containers.Internal.StrictMaybe
457+ Utils.Containers.Internal.PtrEquality
458+ Utils.Containers.Internal.Coercions
459+ Utils.Containers.Internal.TypeError
460+ Data.Map.Internal.DeprecatedShowTree
461+ Data.IntMap.Internal.DeprecatedDebug
464+dynamic-library-dirs:
466+hs-libraries: HScontainers-0.6.5.1
467+depends: array-0.5.4.0 base-4.14.3.0 deepseq-1.4.4.0
476+license: BSD-3-Clause
477+maintainer: libraries@haskell.org
478+synopsis: Deep evaluation of data structures
480+ This package provides methods for fully evaluating data structures
481+ (\"deep evaluation\"). Deep evaluation is often used for adding
482+ strictness to a program, e.g. in order to force pending exceptions,
483+ remove space leaks, or force lazy I/O to happen. It is also useful
484+ in parallel programs, to ensure pending work does not migrate to the
486+ The primary use of this package is via the 'deepseq' function, a
487+ \"deep\" version of 'seq'. It is implemented on top of an 'NFData'
488+ typeclass (\"Normal Form Data\", data structures with no unevaluated
489+ components) which defines strategies for fully evaluating different
490+ data types. See module documentation in "Control.DeepSeq" for more
494+exposed-modules: Control.DeepSeq
495+hidden-modules: Control.DeepSeq.BackDoor
498+dynamic-library-dirs:
500+hs-libraries: HSdeepseq-1.4.4.0
501+depends: array-0.5.4.0 base-4.14.3.0
508+id: directory-1.3.6.0
509+key: directory-1.3.6.0
510+license: BSD-3-Clause
511+maintainer: libraries@haskell.org
512+synopsis: Platform-agnostic library for filesystem operations
514+ This library provides a basic set of operations for manipulating files and
515+ directories in a portable way.
519+ System.Directory System.Directory.Internal
520+ System.Directory.Internal.Prelude
522+ System.Directory.Internal.C_utimensat
523+ System.Directory.Internal.Common System.Directory.Internal.Config
524+ System.Directory.Internal.Posix System.Directory.Internal.Windows
527+dynamic-library-dirs:
529+hs-libraries: HSdirectory-1.3.6.0
531+ base-4.14.3.0 filepath-1.4.2.1 time-1.9.3 unix-2.7.2.2
538+id: exceptions-0.10.4
539+key: exceptions-0.10.4
540+license: BSD-3-Clause
542+ Copyright (C) 2013-2015 Edward A. Kmett
543+ Copyright (C) 2012 Google Inc.
544+maintainer: Edward A. Kmett <ekmett@gmail.com>
545+author: Edward A. Kmett
546+stability: provisional
547+homepage: http://github.com/ekmett/exceptions/
548+synopsis: Extensible optionally-pure exceptions
549+description: Extensible optionally-pure exceptions.
550+category: Control, Exceptions, Monad
552+exposed-modules: Control.Monad.Catch Control.Monad.Catch.Pure
555+dynamic-library-dirs:
557+hs-libraries: HSexceptions-0.10.4
559+ base-4.14.3.0 mtl-2.2.2 stm-2.5.0.1 template-haskell-2.16.0.0
560+ transformers-0.5.6.2
568+key: filepath-1.4.2.1
569+license: BSD-3-Clause
570+copyright: Neil Mitchell 2005-2018
571+maintainer: Neil Mitchell <ndmitchell@gmail.com>
572+author: Neil Mitchell <ndmitchell@gmail.com>
573+homepage: https://github.com/haskell/filepath#readme
574+synopsis: Library for manipulating FilePaths in a cross platform way.
576+ This package provides functionality for manipulating @FilePath@ values, and is shipped with both <https://www.haskell.org/ghc/ GHC> and the <https://www.haskell.org/platform/ Haskell Platform>. It provides three modules:
577+ * "System.FilePath.Posix" manipulates POSIX\/Linux style @FilePath@ values (with @\/@ as the path separator).
578+ * "System.FilePath.Windows" manipulates Windows style @FilePath@ values (with either @\\@ or @\/@ as the path separator, and deals with drives).
579+ * "System.FilePath" is an alias for the module appropriate to your platform.
580+ All three modules provide the same API, and the same documentation (calling out differences in the different variants).
584+ System.FilePath System.FilePath.Posix System.FilePath.Windows
587+dynamic-library-dirs:
589+hs-libraries: HSfilepath-1.4.2.1
590+depends: base-4.14.3.0
599+license: BSD-3-Clause
600+maintainer: glasgow-haskell-users@haskell.org
602+homepage: http://www.haskell.org/ghc/
603+synopsis: The GHC API
605+ GHC's functionality can be useful for more things than just
606+ compiling Haskell programs. Important use cases are programs
607+ that analyse (and perhaps transform) Haskell code. Others
608+ include loading Haskell code dynamically in a GHCi-like manner.
609+ For this reason, a lot of GHC's functionality is made available
610+ through this package.
611+category: Development
613+ Annotations ApiAnnotation Ar AsmCodeGen AsmUtils Avail Bag
614+ BasicTypes BinFingerprint BinIface Binary Bitmap BkpSyn BlockId
615+ BlockLayout BooleanFormula BufWrite BuildTyCl ByteCodeAsm
616+ ByteCodeGen ByteCodeInstr ByteCodeItbls ByteCodeLink ByteCodeTypes
617+ CFG CLabel CPrim CSE CallArity Class CliOption ClsInst
618+ CmdLineParser Cmm CmmBuildInfoTables CmmCallConv CmmCommonBlockElim
619+ CmmContFlowOpt CmmExpr CmmImplementSwitchPlans CmmInfo
620+ CmmLayoutStack CmmLex CmmLint CmmLive CmmMachOp CmmMonad CmmNode
621+ CmmOpt CmmParse CmmPipeline CmmProcPoint CmmSink CmmSwitch CmmType
622+ CmmUtils CoAxiom CodeOutput Coercion ConLike Config Constants
623+ Constraint CoreArity CoreFVs CoreLint CoreMap CoreMonad CoreOpt
624+ CorePrep CoreSeq CoreStats CoreSubst CoreSyn CoreTidy CoreToStg
625+ CoreUnfold CoreUtils CostCentre CostCentreState Coverage Ctype
626+ DataCon Debug Debugger Demand Desugar Digraph DmdAnal Dominators
627+ DriverBkp DriverMkDepend DriverPhases DriverPipeline DsArrows
628+ DsBinds DsCCall DsExpr DsForeign DsGRHSs DsListComp DsMeta DsMonad
629+ DsUsage DsUtils Dwarf Dwarf.Constants Dwarf.Types DynFlags
630+ DynamicLoading Elf Encoding EnumSet ErrUtils Exception Exitify
631+ ExtractDocs FV FamInst FamInstEnv FastFunctions FastMutInt
632+ FastString FastStringEnv FieldLabel FileCleanup FileSettings Finder
633+ Fingerprint FiniteMap FlagChecker FloatIn FloatOut ForeignCall
634+ Format FunDeps GHC GHC.Hs GHC.Hs.Binds GHC.Hs.Decls GHC.Hs.Doc
635+ GHC.Hs.Dump GHC.Hs.Expr GHC.Hs.Extension GHC.Hs.ImpExp
636+ GHC.Hs.Instances GHC.Hs.Lit GHC.Hs.Pat GHC.Hs.PlaceHolder
637+ GHC.Hs.Types GHC.Hs.Utils GHC.HsToCore.PmCheck
638+ GHC.HsToCore.PmCheck.Oracle GHC.HsToCore.PmCheck.Ppr
639+ GHC.HsToCore.PmCheck.Types GHC.Platform.AArch64 GHC.Platform.ARM
640+ GHC.Platform.NoRegs GHC.Platform.PPC GHC.Platform.Regs
641+ GHC.Platform.S390X GHC.Platform.SPARC GHC.Platform.X86
642+ GHC.Platform.X86_64 GHC.StgToCmm GHC.StgToCmm.ArgRep
643+ GHC.StgToCmm.Bind GHC.StgToCmm.CgUtils GHC.StgToCmm.Closure
644+ GHC.StgToCmm.DataCon GHC.StgToCmm.Env GHC.StgToCmm.Expr
645+ GHC.StgToCmm.ExtCode GHC.StgToCmm.Foreign GHC.StgToCmm.Heap
646+ GHC.StgToCmm.Hpc GHC.StgToCmm.Layout GHC.StgToCmm.Monad
647+ GHC.StgToCmm.Prim GHC.StgToCmm.Prof GHC.StgToCmm.Ticky
648+ GHC.StgToCmm.Utils GHC.ThToHs GHCi GhcMake GhcMonad GhcNameVersion
649+ GhcPlugins GhcPrelude GraphBase GraphColor GraphOps GraphPpr
650+ HaddockUtils HeaderInfo HieAst HieBin HieDebug HieTypes HieUtils
651+ Hooks Hoopl.Block Hoopl.Collections Hoopl.Dataflow Hoopl.Graph
652+ Hoopl.Label HscMain HscStats HscTypes IOEnv Id IdInfo IfaceEnv
653+ IfaceSyn IfaceType Inst InstEnv Instruction InteractiveEval
654+ InteractiveEvalTypes Json KnownUniques Lexeme Lexer LiberateCase
655+ Linker LinkerTypes ListSetOps Literal Llvm Llvm.AbsSyn
656+ Llvm.MetaData Llvm.PpLlvm Llvm.Types LlvmCodeGen LlvmCodeGen.Base
657+ LlvmCodeGen.CodeGen LlvmCodeGen.Data LlvmCodeGen.Ppr
658+ LlvmCodeGen.Regs LlvmMangler LoadIface Match MatchCon MatchLit
659+ Maybes MkCore MkGraph MkId MkIface Module MonadUtils NCGMonad Name
660+ NameCache NameEnv NameSet NameShape OccName OccurAnal OptCoercion
661+ OrdList Outputable PIC PPC.CodeGen PPC.Cond PPC.Instr PPC.Ppr
662+ PPC.RegInfo PPC.Regs PackageConfig Packages Pair Panic Parser
663+ PatSyn PipelineMonad PlainPanic PlatformConstants Plugins PprBase
664+ PprC PprCmm PprCmmDecl PprCmmExpr PprColour PprCore PprTyThing
665+ Predicate PrelInfo PrelNames PrelRules Pretty PrimOp ProfInit
666+ RdrHsSyn RdrName Reg RegAlloc.Graph.ArchBase RegAlloc.Graph.ArchX86
667+ RegAlloc.Graph.Coalesce RegAlloc.Graph.Main RegAlloc.Graph.Spill
668+ RegAlloc.Graph.SpillClean RegAlloc.Graph.SpillCost
669+ RegAlloc.Graph.Stats RegAlloc.Graph.TrivColorable
670+ RegAlloc.Linear.Base RegAlloc.Linear.FreeRegs
671+ RegAlloc.Linear.JoinToTargets RegAlloc.Linear.Main
672+ RegAlloc.Linear.PPC.FreeRegs RegAlloc.Linear.SPARC.FreeRegs
673+ RegAlloc.Linear.StackMap RegAlloc.Linear.State
674+ RegAlloc.Linear.Stats RegAlloc.Linear.X86.FreeRegs
675+ RegAlloc.Linear.X86_64.FreeRegs RegAlloc.Liveness RegClass RepType
676+ RnBinds RnEnv RnExpr RnFixity RnHsDoc RnModIface RnNames RnPat
677+ RnSource RnSplice RnTypes RnUnbound RnUtils RtClosureInspect Rules
678+ SAT SMRep SPARC.AddrMode SPARC.Base SPARC.CodeGen
679+ SPARC.CodeGen.Amode SPARC.CodeGen.Base SPARC.CodeGen.CondCode
680+ SPARC.CodeGen.Expand SPARC.CodeGen.Gen32 SPARC.CodeGen.Gen64
681+ SPARC.CodeGen.Sanity SPARC.Cond SPARC.Imm SPARC.Instr SPARC.Ppr
682+ SPARC.Regs SPARC.ShortcutJump SPARC.Stack SetLevels Settings
683+ SimplCore SimplEnv SimplMonad SimplStg SimplUtils Simplify
684+ SpecConstr Specialise SrcLoc State StaticPtrTable StgCse StgFVs
685+ StgLiftLams StgLiftLams.Analysis StgLiftLams.LiftM
686+ StgLiftLams.Transformation StgLint StgStats StgSubst StgSyn Stream
687+ StringBuffer SysTools SysTools.BaseDir SysTools.ExtraObj
688+ SysTools.Info SysTools.Process SysTools.Settings SysTools.Tasks
689+ SysTools.Terminal THNames TargetReg TcAnnotations TcArrows
690+ TcBackpack TcBinds TcCanonical TcClassDcl TcDefaults TcDeriv
691+ TcDerivInfer TcDerivUtils TcEnv TcErrors TcEvTerm TcEvidence TcExpr
692+ TcFlatten TcForeign TcGenDeriv TcGenFunctor TcGenGenerics
693+ TcHoleErrors TcHoleFitTypes TcHsSyn TcHsType TcIface TcInstDcls
694+ TcInteract TcMType TcMatches TcOrigin TcPat TcPatSyn TcPluginM
695+ TcRnDriver TcRnExports TcRnMonad TcRnTypes TcRules TcSMonad TcSigs
696+ TcSimplify TcSplice TcTyClsDecls TcTyDecls TcType TcTypeNats
697+ TcTypeable TcUnify TcValidity TidyPgm ToIface ToolSettings TrieMap
698+ TyCoFVs TyCoPpr TyCoRep TyCoSubst TyCoTidy TyCon Type TysPrim
699+ TysWiredIn UnVarGraph UnariseStg Unify UniqDFM UniqDSet UniqFM
700+ UniqMap UniqSet UniqSupply Unique Util Var VarEnv VarSet WorkWrap
701+ WwLib X86.CodeGen X86.Cond X86.Instr X86.Ppr X86.RegInfo X86.Regs
704+dynamic-library-dirs:
706+hs-libraries: HSghc-8.10.6
709+ array-0.5.4.0 base-4.14.3.0 binary-0.8.8.0 bytestring-0.10.12.0
710+ containers-0.6.5.1 deepseq-1.4.4.0 directory-1.3.6.0
711+ filepath-1.4.2.1 ghc-boot-8.10.6 ghc-boot-th-8.10.6 ghc-heap-8.10.6
712+ ghci-8.10.6 hpc-0.6.1.0 integer-gmp-1.0.3.0 process-1.6.13.2
713+ template-haskell-2.16.0.0 terminfo-0.4.1.4 time-1.9.3
714+ transformers-0.5.6.2 unix-2.7.2.2
723+license: BSD-3-Clause
724+maintainer: ghc-devs@haskell.org
725+synopsis: Shared functionality between GHC and its boot libraries
727+ This library is shared between GHC, ghc-pkg, and other boot
729+ A note about "GHC.PackageDb": it only deals with the subset of
730+ the package database that the compiler cares about: modules
731+ paths etc and not package metadata like description, authors
732+ etc. It is thus not a library interface to ghc-pkg and is *not*
733+ suitable for modifying GHC package databases.
734+ The package database format and this library are constructed in
735+ such a way that while ghc-pkg depends on Cabal, the GHC library
736+ and program do not have to depend on Cabal.
740+ GHC.BaseDir GHC.ForeignSrcLang GHC.HandleEncoding
741+ GHC.LanguageExtensions GHC.PackageDb GHC.Platform GHC.Platform.Host
742+ GHC.Serialized GHC.Settings GHC.UniqueSubdir GHC.Version
745+dynamic-library-dirs:
747+hs-libraries: HSghc-boot-8.10.6
749+ base-4.14.3.0 binary-0.8.8.0 bytestring-0.10.12.0
750+ containers-0.6.5.1 directory-1.3.6.0 filepath-1.4.2.1
758+id: ghc-boot-th-8.10.6
759+key: ghc-boot-th-8.10.6
760+license: BSD-3-Clause
761+maintainer: ghc-devs@haskell.org
763+ Shared functionality between GHC and the @template-haskell@
766+ This library contains various bits shared between the @ghc@ and
767+ @template-haskell@ libraries.
768+ This package exists to ensure that @template-haskell@ has a
769+ minimal set of transitive dependencies, since it is intended to
770+ be depended upon by user code.
774+ GHC.ForeignSrcLang.Type GHC.LanguageExtensions.Type GHC.Lexeme
777+dynamic-library-dirs:
779+hs-libraries: HSghc-boot-th-8.10.6
780+depends: base-4.14.3.0
787+id: ghc-compact-0.1.0.0
788+key: ghc-compact-0.1.0.0
789+license: BSD-3-Clause
790+maintainer: libraries@haskell.org
791+synopsis: In memory storage of deeply evaluated data structure
793+ This package provides minimal functionality for working with
794+ "compact regions", which hold a fully evaluated Haskell object graph.
795+ These regions maintain the invariant that no pointers live inside the struct
796+ that point outside it, which ensures efficient garbage collection without
797+ ever reading the structure contents (effectively, it works as a manually
798+ managed "oldest generation" which is never freed until the whole is
800+ Internally, the struct is stored a single contiguous block of memory,
801+ which allows efficient serialization and deserialization of structs
802+ for distributed computing.
805+exposed-modules: GHC.Compact GHC.Compact.Serialized
808+dynamic-library-dirs:
810+hs-libraries: HSghc-compact-0.1.0.0
811+depends: base-4.14.3.0 bytestring-0.10.12.0 ghc-prim-0.6.1
820+license: BSD-3-Clause
821+maintainer: libraries@haskell.org
822+synopsis: Functions for walking GHC's heap
824+ This package provides functions for walking the GHC heap data structures
825+ and retrieving information about those data structures.
829+ GHC.Exts.Heap GHC.Exts.Heap.ClosureTypes GHC.Exts.Heap.Closures
830+ GHC.Exts.Heap.Constants GHC.Exts.Heap.InfoTable
831+ GHC.Exts.Heap.InfoTable.Types GHC.Exts.Heap.InfoTableProf
835+dynamic-library-dirs:
837+hs-libraries: HSghc-heap-8.10.6
838+depends: base-4.14.3.0 ghc-prim-0.6.1 rts
847+license: BSD-3-Clause
848+maintainer: libraries@haskell.org
849+synopsis: GHC primitives
851+ This package contains the primitive types and operations supplied by GHC.
855+ GHC.CString GHC.Classes GHC.Debug GHC.IntWord64 GHC.Magic
856+ GHC.Prim.Ext GHC.PrimopWrappers GHC.Tuple GHC.Types GHC.Prim
859+dynamic-library-dirs:
861+hs-libraries: HSghc-prim-0.6.1
872+license: BSD-3-Clause
873+maintainer: ghc-devs@haskell.org
874+synopsis: The library supporting GHC's interactive interpreter
876+ This library offers interfaces which mediate interactions between the
877+ @ghci@ interactive shell and @iserv@, GHC's out-of-process interpreter
882+ GHCi.BinaryArray GHCi.BreakArray GHCi.CreateBCO GHCi.FFI
883+ GHCi.InfoTable GHCi.Message GHCi.ObjLink GHCi.RemoteTypes
884+ GHCi.ResolvedBCO GHCi.Run GHCi.Signals GHCi.StaticPtrTable GHCi.TH
885+ GHCi.TH.Binary SizedSeq
888+dynamic-library-dirs:
890+hs-libraries: HSghci-8.10.6
893+ array-0.5.4.0 base-4.14.3.0 binary-0.8.8.0 bytestring-0.10.12.0
894+ containers-0.6.5.1 deepseq-1.4.4.0 filepath-1.4.2.1 ghc-boot-8.10.6
895+ ghc-boot-th-8.10.6 ghc-heap-8.10.6 rts template-haskell-2.16.0.0
896+ transformers-0.5.6.2 unix-2.7.2.2
905+license: BSD-3-Clause
906+copyright: (c) Judah Jacobson
907+maintainer: Judah Jacobson <judah.jacobson@gmail.com>
908+author: Judah Jacobson
910+homepage: https://github.com/judah/haskeline
912+ A command-line interface for user input, written in Haskell.
914+ Haskeline provides a user interface for line input in command-line
915+ programs. This library is similar in purpose to readline, but since
916+ it is written in Haskell it is (hopefully) more easily used in other
918+ Haskeline runs both on POSIX-compatible systems and on Windows.
919+category: User Interfaces
922+ System.Console.Haskeline System.Console.Haskeline.Completion
923+ System.Console.Haskeline.History System.Console.Haskeline.IO
924+ System.Console.Haskeline.Internal
926+ System.Console.Haskeline.Backend
927+ System.Console.Haskeline.Backend.WCWidth
928+ System.Console.Haskeline.Command
929+ System.Console.Haskeline.Command.Completion
930+ System.Console.Haskeline.Command.History
931+ System.Console.Haskeline.Command.KillRing
932+ System.Console.Haskeline.Directory System.Console.Haskeline.Emacs
933+ System.Console.Haskeline.InputT System.Console.Haskeline.Key
934+ System.Console.Haskeline.LineState System.Console.Haskeline.Monads
935+ System.Console.Haskeline.Prefs System.Console.Haskeline.Recover
936+ System.Console.Haskeline.RunCommand System.Console.Haskeline.Term
937+ System.Console.Haskeline.Command.Undo System.Console.Haskeline.Vi
938+ System.Console.Haskeline.Backend.Posix
939+ System.Console.Haskeline.Backend.Posix.Encoder
940+ System.Console.Haskeline.Backend.DumbTerm
941+ System.Console.Haskeline.Backend.Terminfo
944+dynamic-library-dirs:
946+hs-libraries: HShaskeline-0.8.2
948+ base-4.14.3.0 bytestring-0.10.12.0 containers-0.6.5.1
949+ directory-1.3.6.0 exceptions-0.10.4 filepath-1.4.2.1
950+ process-1.6.13.2 stm-2.5.0.1 terminfo-0.4.1.4 transformers-0.5.6.2
960+license: BSD-3-Clause
961+maintainer: ghc-devs@haskell.org
963+synopsis: Code Coverage Library for Haskell
965+ This package provides the code coverage library for Haskell.
966+ See <http://www.haskell.org/haskellwiki/Haskell_program_coverage> for more
971+ Trace.Hpc.Mix Trace.Hpc.Reflect Trace.Hpc.Tix Trace.Hpc.Util
974+dynamic-library-dirs:
976+hs-libraries: HShpc-0.6.1.0
978+ base-4.14.3.0 containers-0.6.5.1 deepseq-1.4.4.0 directory-1.3.6.0
979+ filepath-1.4.2.1 time-1.9.3
986+id: integer-gmp-1.0.3.0
987+key: integer-gmp-1.0.3.0
988+license: BSD-3-Clause
989+maintainer: hvr@gnu.org
990+author: Herbert Valerio Riedel
991+synopsis: Integer library based on GMP
993+ This package provides the low-level implementation of the standard
994+ 'Integer' type based on the
995+ <http://gmplib.org/ GNU Multiple Precision Arithmetic Library (GMP)>.
996+ This package provides access to the internal representation of
997+ 'Integer' as well as primitive operations with no proper error
998+ handling, and should only be used directly with the utmost care.
999+category: Numeric, Algebra
1002+ GHC.Integer GHC.Integer.GMP.Internals GHC.Integer.Logarithms
1003+ GHC.Integer.Logarithms.Internals
1004+hidden-modules: GHC.Integer.Type
1007+dynamic-library-dirs:
1009+hs-libraries: HSinteger-gmp-1.0.3.0
1010+extra-libraries: gmp
1012+depends: ghc-prim-0.6.1
1020+key: libiserv-8.10.6
1021+license: BSD-3-Clause
1025+synopsis: Provides shared functionality between iserv and iserv-proxy
1026+category: Development
1028+exposed-modules: GHCi.Utils Lib
1031+dynamic-library-dirs:
1033+hs-libraries: HSlibiserv-8.10.6
1035+ base-4.14.3.0 binary-0.8.8.0 bytestring-0.10.12.0
1036+ containers-0.6.5.1 deepseq-1.4.4.0 ghci-8.10.6 unix-2.7.2.2
1045+license: BSD-3-Clause
1046+maintainer: Edward Kmett <ekmett@gmail.com>
1048+homepage: http://github.com/haskell/mtl
1049+synopsis: Monad classes, using functional dependencies
1051+ Monad classes using functional dependencies, with instances
1052+ for various monad transformers, inspired by the paper
1053+ /Functional Programming with Overloading and Higher-Order Polymorphism/,
1054+ by Mark P Jones, in /Advanced School of Functional Programming/, 1995
1055+ (<http://web.cecs.pdx.edu/~mpj/pubs/springschool.html>).
1059+ Control.Monad.Cont Control.Monad.Cont.Class Control.Monad.Error
1060+ Control.Monad.Error.Class Control.Monad.Except
1061+ Control.Monad.Identity Control.Monad.List Control.Monad.RWS
1062+ Control.Monad.RWS.Class Control.Monad.RWS.Lazy
1063+ Control.Monad.RWS.Strict Control.Monad.Reader
1064+ Control.Monad.Reader.Class Control.Monad.State
1065+ Control.Monad.State.Class Control.Monad.State.Lazy
1066+ Control.Monad.State.Strict Control.Monad.Trans Control.Monad.Writer
1067+ Control.Monad.Writer.Class Control.Monad.Writer.Lazy
1068+ Control.Monad.Writer.Strict
1071+dynamic-library-dirs:
1073+hs-libraries: HSmtl-2.2.2
1074+depends: base-4.14.3.0 transformers-0.5.6.2
1082+key: parsec-3.1.14.0
1083+license: BSD-3-Clause
1084+maintainer: Herbert Valerio Riedel <hvr@gnu.org>
1086+ Daan Leijen <daan@microsoft.com>, Paolo Martini <paolo@nemail.it>, Antoine Latter <aslatter@gmail.com>
1087+homepage: https://github.com/haskell/parsec
1088+synopsis: Monadic parser combinators
1090+ Parsec is designed from scratch as an industrial-strength parser
1091+ library. It is simple, safe, well documented (on the package
1092+ homepage), has extensive libraries, good error messages,
1093+ and is fast. It is defined as a monad transformer that can be
1094+ stacked on arbitrary monads, and it is also parametric in the
1096+ The main entry point is the "Text.Parsec" module which provides
1097+ defaults for parsing 'Char'acter data.
1098+ The "Text.ParserCombinators.Parsec" module hierarchy contains
1099+ the legacy @parsec-2@ API and may be removed at some point in
1104+ Text.Parsec Text.Parsec.ByteString Text.Parsec.ByteString.Lazy
1105+ Text.Parsec.Char Text.Parsec.Combinator Text.Parsec.Error
1106+ Text.Parsec.Expr Text.Parsec.Language Text.Parsec.Perm
1107+ Text.Parsec.Pos Text.Parsec.Prim Text.Parsec.String
1108+ Text.Parsec.Text Text.Parsec.Text.Lazy Text.Parsec.Token
1109+ Text.ParserCombinators.Parsec Text.ParserCombinators.Parsec.Char
1110+ Text.ParserCombinators.Parsec.Combinator
1111+ Text.ParserCombinators.Parsec.Error
1112+ Text.ParserCombinators.Parsec.Expr
1113+ Text.ParserCombinators.Parsec.Language
1114+ Text.ParserCombinators.Parsec.Perm
1115+ Text.ParserCombinators.Parsec.Pos
1116+ Text.ParserCombinators.Parsec.Prim
1117+ Text.ParserCombinators.Parsec.Token
1120+dynamic-library-dirs:
1122+hs-libraries: HSparsec-3.1.14.0
1124+ base-4.14.3.0 bytestring-0.10.12.0 mtl-2.2.2 text-1.2.4.1
1133+license: BSD-3-Clause
1134+maintainer: David Terei <code@davidterei.com>
1136+homepage: http://github.com/haskell/pretty
1137+synopsis: Pretty-printing library
1139+ This package contains a pretty-printing library, a set of API's
1140+ that provides a way to easily print out text in a consistent
1141+ format of your choosing. This is useful for compilers and related
1143+ This library was originally designed by John Hughes's and has since
1144+ been heavily modified by Simon Peyton Jones.
1148+ Text.PrettyPrint Text.PrettyPrint.Annotated
1149+ Text.PrettyPrint.Annotated.HughesPJ
1150+ Text.PrettyPrint.Annotated.HughesPJClass Text.PrettyPrint.HughesPJ
1151+ Text.PrettyPrint.HughesPJClass
1154+dynamic-library-dirs:
1156+hs-libraries: HSpretty-1.1.3.6
1157+depends: base-4.14.3.0 deepseq-1.4.4.0 ghc-prim-0.6.1
1164+id: process-1.6.13.2
1165+key: process-1.6.13.2
1166+license: BSD-3-Clause
1167+maintainer: libraries@haskell.org
1168+synopsis: Process libraries
1170+ This package contains libraries for dealing with system processes.
1171+ The typed-process package is a more recent take on a process API,
1172+ which uses this package internally. It features better binary
1173+ support, easier concurrency, and a more composable API. You can
1174+ read more about it at
1175+ <https://github.com/fpco/typed-process/#readme>.
1178+exposed-modules: System.Cmd System.Process System.Process.Internals
1179+hidden-modules: System.Process.Common System.Process.Posix
1182+dynamic-library-dirs:
1184+hs-libraries: HSprocess-1.6.13.2
1186+includes: runProcess.h
1188+ base-4.14.3.0 deepseq-1.4.4.0 directory-1.3.6.0 filepath-1.4.2.1
1198+license: BSD-3-Clause
1199+maintainer: libraries@haskell.org
1200+homepage: https://wiki.haskell.org/Software_transactional_memory
1201+synopsis: Software Transactional Memory
1203+ Software Transactional Memory, or STM, is an abstraction for
1204+ concurrent communication. The main benefits of STM are
1205+ /composability/ and /modularity/. That is, using STM you can write
1206+ concurrent abstractions that can be easily composed with any other
1207+ abstraction built using STM, without exposing the details of how
1208+ your abstraction ensures safety. This is typically not the case
1209+ with other forms of concurrent communication, such as locks or
1211+category: Concurrency
1214+ Control.Concurrent.STM Control.Concurrent.STM.TArray
1215+ Control.Concurrent.STM.TBQueue Control.Concurrent.STM.TChan
1216+ Control.Concurrent.STM.TMVar Control.Concurrent.STM.TQueue
1217+ Control.Concurrent.STM.TSem Control.Concurrent.STM.TVar
1219+hidden-modules: Control.Sequential.STM
1222+dynamic-library-dirs:
1224+hs-libraries: HSstm-2.5.0.1
1225+depends: array-0.5.4.0 base-4.14.3.0
1229+name: template-haskell
1232+id: template-haskell-2.16.0.0
1233+key: template-haskell-2.16.0.0
1234+license: BSD-3-Clause
1235+maintainer: libraries@haskell.org
1236+synopsis: Support library for Template Haskell
1238+ This package provides modules containing facilities for manipulating
1239+ Haskell source code using Template Haskell.
1240+ See <http://www.haskell.org/haskellwiki/Template_Haskell> for more
1242+category: Template Haskell
1245+ Language.Haskell.TH Language.Haskell.TH.LanguageExtensions
1246+ Language.Haskell.TH.Lib Language.Haskell.TH.Lib.Internal
1247+ Language.Haskell.TH.Ppr Language.Haskell.TH.PprLib
1248+ Language.Haskell.TH.Quote Language.Haskell.TH.Syntax
1249+hidden-modules: Language.Haskell.TH.Lib.Map
1252+dynamic-library-dirs:
1254+hs-libraries: HStemplate-haskell-2.16.0.0
1256+ base-4.14.3.0 ghc-boot-th-8.10.6 ghc-prim-0.6.1 pretty-1.1.3.6
1263+id: terminfo-0.4.1.4
1264+key: terminfo-0.4.1.4
1265+license: BSD-3-Clause
1266+copyright: (c) Judah Jacobson
1267+maintainer: Judah Jacobson <judah.jacobson@gmail.com>
1268+author: Judah Jacobson
1270+homepage: https://github.com/judah/terminfo
1271+synopsis: Haskell bindings to the terminfo library.
1273+ This library provides an interface to the terminfo database (via bindings to the
1274+ curses library). <http://en.wikipedia.org/wiki/Terminfo Terminfo> allows POSIX
1275+ systems to interact with a variety of terminals using a standard set of capabilities.
1276+category: User Interfaces
1279+ System.Console.Terminfo System.Console.Terminfo.Base
1280+ System.Console.Terminfo.Color System.Console.Terminfo.Cursor
1281+ System.Console.Terminfo.Edit System.Console.Terminfo.Effects
1282+ System.Console.Terminfo.Keys
1285+dynamic-library-dirs:
1287+hs-libraries: HSterminfo-0.4.1.4
1288+extra-libraries: tinfo
1289+depends: base-4.14.3.0
1298+license: BSD-2-Clause
1299+copyright: 2009-2011 Bryan O'Sullivan, 2008-2009 Tom Harper
1301+ Bryan O'Sullivan <bos@serpentine.com>, Herbert Valerio Riedel <hvr@gnu.org>
1302+author: Bryan O'Sullivan <bos@serpentine.com>
1303+homepage: https://github.com/haskell/text
1304+synopsis: An efficient packed Unicode text type.
1306+ An efficient packed, immutable Unicode text type (both strict and
1307+ lazy), with a powerful loop fusion optimization framework.
1308+ The 'Text' type represents Unicode character strings, in a time and
1309+ space-efficient manner. This package provides text processing
1310+ capabilities that are optimized for performance critical use, both
1311+ in terms of large data quantities and high speed.
1312+ The 'Text' type provides character-encoding, type-safe case
1313+ conversion via whole-string case conversion functions (see "Data.Text").
1314+ It also provides a range of functions for converting 'Text' values to
1315+ and from 'ByteStrings', using several standard encodings
1316+ (see "Data.Text.Encoding").
1317+ Efficient locale-sensitive support for text IO is also supported
1318+ (see "Data.Text.IO").
1319+ These modules are intended to be imported qualified, to avoid name
1320+ clashes with Prelude functions, e.g.
1321+ > import qualified Data.Text as T
1323+ To use an extended and very rich family of functions for working
1324+ with Unicode text (including normalization, regular expressions,
1325+ non-standard encodings, text breaking, and locales), see
1326+ the [text-icu package](https://hackage.haskell.org/package/text-icu)
1327+ based on the well-respected and liberally
1328+ licensed [ICU library](http://site.icu-project.org/).
1329+ == Internal Representation: UTF-16 vs. UTF-8
1330+ Currently the @text@ library uses UTF-16 as its internal representation
1331+ which is [neither a fixed-width nor always the most dense representation](http://utf8everywhere.org/)
1332+ for Unicode text. We're currently investigating the feasibility
1333+ of [changing Text's internal representation to UTF-8](https://github.com/text-utf8)
1334+ and if you need such a 'Text' type right now you might be interested in using the spin-off
1335+ packages <https://hackage.haskell.org/package/text-utf8 text-utf8> and
1336+ <https://hackage.haskell.org/package/text-short text-short>.
1337+category: Data, Text
1340+ Data.Text Data.Text.Array Data.Text.Encoding
1341+ Data.Text.Encoding.Error Data.Text.Foreign Data.Text.IO
1342+ Data.Text.Internal Data.Text.Internal.Builder
1343+ Data.Text.Internal.Builder.Functions
1344+ Data.Text.Internal.Builder.Int.Digits
1345+ Data.Text.Internal.Builder.RealFloat.Functions
1346+ Data.Text.Internal.ByteStringCompat
1347+ Data.Text.Internal.Encoding.Fusion
1348+ Data.Text.Internal.Encoding.Fusion.Common
1349+ Data.Text.Internal.Encoding.Utf16 Data.Text.Internal.Encoding.Utf32
1350+ Data.Text.Internal.Encoding.Utf8 Data.Text.Internal.Functions
1351+ Data.Text.Internal.Fusion Data.Text.Internal.Fusion.CaseMapping
1352+ Data.Text.Internal.Fusion.Common Data.Text.Internal.Fusion.Size
1353+ Data.Text.Internal.Fusion.Types Data.Text.Internal.IO
1354+ Data.Text.Internal.Lazy Data.Text.Internal.Lazy.Encoding.Fusion
1355+ Data.Text.Internal.Lazy.Fusion Data.Text.Internal.Lazy.Search
1356+ Data.Text.Internal.Private Data.Text.Internal.Read
1357+ Data.Text.Internal.Search Data.Text.Internal.Unsafe
1358+ Data.Text.Internal.Unsafe.Char Data.Text.Internal.Unsafe.Shift
1359+ Data.Text.Lazy Data.Text.Lazy.Builder Data.Text.Lazy.Builder.Int
1360+ Data.Text.Lazy.Builder.RealFloat Data.Text.Lazy.Encoding
1361+ Data.Text.Lazy.IO Data.Text.Lazy.Internal Data.Text.Lazy.Read
1362+ Data.Text.Read Data.Text.Unsafe
1363+hidden-modules: Data.Text.Show
1366+dynamic-library-dirs:
1368+hs-libraries: HStext-1.2.4.1
1370+ array-0.5.4.0 base-4.14.3.0 binary-0.8.8.0 bytestring-0.10.12.0
1371+ deepseq-1.4.4.0 ghc-prim-0.6.1 integer-gmp-1.0.3.0
1372+ template-haskell-2.16.0.0
1381+license: BSD-3-Clause
1382+maintainer: <ashley@semantic.org>
1383+author: Ashley Yakeley
1385+homepage: https://github.com/haskell/time
1386+synopsis: A time library
1387+description: Time, clocks and calendars
1391+ Data.Time Data.Time.Calendar Data.Time.Calendar.Easter
1392+ Data.Time.Calendar.Julian Data.Time.Calendar.MonthDay
1393+ Data.Time.Calendar.OrdinalDate Data.Time.Calendar.WeekDate
1394+ Data.Time.Clock Data.Time.Clock.POSIX Data.Time.Clock.System
1395+ Data.Time.Clock.TAI Data.Time.Format Data.Time.Format.ISO8601
1396+ Data.Time.Format.Internal Data.Time.LocalTime
1398+ Data.Format Data.Time.Calendar.Private Data.Time.Calendar.Days
1399+ Data.Time.Calendar.Gregorian Data.Time.Calendar.CalendarDiffDays
1400+ Data.Time.Calendar.Week Data.Time.Calendar.JulianYearDay
1401+ Data.Time.Clock.Internal.DiffTime
1402+ Data.Time.Clock.Internal.AbsoluteTime
1403+ Data.Time.Clock.Internal.NominalDiffTime
1404+ Data.Time.Clock.Internal.POSIXTime
1405+ Data.Time.Clock.Internal.UniversalTime
1406+ Data.Time.Clock.Internal.SystemTime
1407+ Data.Time.Clock.Internal.UTCTime Data.Time.Clock.Internal.CTimeval
1408+ Data.Time.Clock.Internal.CTimespec Data.Time.Clock.Internal.UTCDiff
1409+ Data.Time.LocalTime.Internal.TimeZone
1410+ Data.Time.LocalTime.Internal.TimeOfDay
1411+ Data.Time.LocalTime.Internal.CalendarDiffTime
1412+ Data.Time.LocalTime.Internal.LocalTime
1413+ Data.Time.LocalTime.Internal.ZonedTime Data.Time.Format.Parse
1414+ Data.Time.Format.Locale Data.Time.Format.Format.Class
1415+ Data.Time.Format.Format.Instances Data.Time.Format.Parse.Class
1416+ Data.Time.Format.Parse.Instances
1419+dynamic-library-dirs:
1421+hs-libraries: HStime-1.9.3
1423+depends: base-4.14.3.0 deepseq-1.4.4.0
1430+id: transformers-0.5.6.2
1431+key: transformers-0.5.6.2
1432+license: BSD-3-Clause
1433+maintainer: Ross Paterson <R.Paterson@city.ac.uk>
1434+author: Andy Gill, Ross Paterson
1435+synopsis: Concrete functor and monad transformers
1437+ A portable library of functor and monad transformers, inspired by
1439+ * \"Functional Programming with Overloading and Higher-Order
1440+ Polymorphism\", by Mark P Jones,
1441+ in /Advanced School of Functional Programming/, 1995
1442+ (<http://web.cecs.pdx.edu/~mpj/pubs/springschool.html>).
1443+ This package contains:
1444+ * the monad transformer class (in "Control.Monad.Trans.Class")
1445+ * concrete functor and monad transformers, each with associated
1446+ operations and functions to lift operations associated with other
1448+ The package can be used on its own in portable Haskell code, in
1449+ which case operations need to be manually lifted through transformer
1450+ stacks (see "Control.Monad.Trans.Class" for some examples).
1451+ Alternatively, it can be used with the non-portable monad classes in
1452+ the @mtl@ or @monads-tf@ packages, which automatically lift operations
1453+ introduced by monad transformers through other transformers.
1457+ Control.Applicative.Backwards Control.Applicative.Lift
1458+ Control.Monad.Signatures Control.Monad.Trans.Accum
1459+ Control.Monad.Trans.Class Control.Monad.Trans.Cont
1460+ Control.Monad.Trans.Error Control.Monad.Trans.Except
1461+ Control.Monad.Trans.Identity Control.Monad.Trans.List
1462+ Control.Monad.Trans.Maybe Control.Monad.Trans.RWS
1463+ Control.Monad.Trans.RWS.CPS Control.Monad.Trans.RWS.Lazy
1464+ Control.Monad.Trans.RWS.Strict Control.Monad.Trans.Reader
1465+ Control.Monad.Trans.Select Control.Monad.Trans.State
1466+ Control.Monad.Trans.State.Lazy Control.Monad.Trans.State.Strict
1467+ Control.Monad.Trans.Writer Control.Monad.Trans.Writer.CPS
1468+ Control.Monad.Trans.Writer.Lazy Control.Monad.Trans.Writer.Strict
1469+ Data.Functor.Constant Data.Functor.Reverse
1472+dynamic-library-dirs:
1474+hs-libraries: HStransformers-0.5.6.2
1475+depends: base-4.14.3.0
1484+license: BSD-3-Clause
1485+maintainer: libraries@haskell.org
1486+homepage: https://github.com/haskell/unix
1487+synopsis: POSIX functionality
1489+ This package gives you access to the set of operating system
1490+ services standardised by
1491+ <http://pubs.opengroup.org/onlinepubs/9699919799/ POSIX.1-2008>
1492+ (or the IEEE Portable Operating System Interface for Computing
1493+ Environments - IEEE Std. 1003.1).
1494+ The package is not supported under Windows.
1498+ System.Posix System.Posix.ByteString
1499+ System.Posix.ByteString.FilePath System.Posix.Directory
1500+ System.Posix.Directory.ByteString System.Posix.DynamicLinker
1501+ System.Posix.DynamicLinker.ByteString
1502+ System.Posix.DynamicLinker.Module
1503+ System.Posix.DynamicLinker.Module.ByteString
1504+ System.Posix.DynamicLinker.Prim System.Posix.Env
1505+ System.Posix.Env.ByteString System.Posix.Error System.Posix.Fcntl
1506+ System.Posix.Files System.Posix.Files.ByteString System.Posix.IO
1507+ System.Posix.IO.ByteString System.Posix.Process
1508+ System.Posix.Process.ByteString System.Posix.Process.Internals
1509+ System.Posix.Resource System.Posix.Semaphore System.Posix.SharedMem
1510+ System.Posix.Signals System.Posix.Signals.Exts System.Posix.Temp
1511+ System.Posix.Temp.ByteString System.Posix.Terminal
1512+ System.Posix.Terminal.ByteString System.Posix.Time
1513+ System.Posix.Unistd System.Posix.User
1515+ System.Posix.Directory.Common System.Posix.DynamicLinker.Common
1516+ System.Posix.Files.Common System.Posix.IO.Common
1517+ System.Posix.Process.Common System.Posix.Terminal.Common
1520+dynamic-library-dirs:
1522+hs-libraries: HSunix-2.7.2.2
1523+extra-libraries: rt util dl pthread
1525+includes: HsUnix.h execvpe.h
1526+depends: base-4.14.3.0 bytestring-0.10.12.0 time-1.9.3
1533+id: xhtml-3000.2.2.1
1534+key: xhtml-3000.2.2.1
1535+license: BSD-3-Clause
1537+ Bjorn Bringert 2004-2006, Andy Gill and the Oregon
1538+ Graduate Institute of Science and Technology, 1999-2001
1539+maintainer: Chris Dornan <chris@chrisdornan.com>
1540+author: Bjorn Bringert
1542+homepage: https://github.com/haskell/xhtml
1543+synopsis: An XHTML combinator library
1545+ This package provides combinators for producing
1546+ XHTML 1.0, including the Strict, Transitional and
1548+category: Web, XML, Pretty Printer
1551+ Text.XHtml Text.XHtml.Debug Text.XHtml.Frameset Text.XHtml.Strict
1552+ Text.XHtml.Table Text.XHtml.Transitional
1554+ Text.XHtml.Strict.Attributes Text.XHtml.Strict.Elements
1555+ Text.XHtml.Frameset.Attributes Text.XHtml.Frameset.Elements
1556+ Text.XHtml.Transitional.Attributes Text.XHtml.Transitional.Elements
1557+ Text.XHtml.BlockTable Text.XHtml.Extras Text.XHtml.Internals
1560+dynamic-library-dirs:
1562+hs-libraries: HSxhtml-3000.2.2.1
1563+depends: base-4.14.3.0
1572+license: BSD-3-Clause
1573+maintainer: glasgow-haskell-users@haskell.org
1577+extra-libraries: m rt dl ffi numa pthread
1581+ "-Wl,-u,base_GHCziTopHandler_runIO_closure"
1582+ "-Wl,-u,base_GHCziTopHandler_runNonIO_closure"
1583+ "-Wl,-u,ghczmprim_GHCziTuple_Z0T_closure"
1584+ "-Wl,-u,ghczmprim_GHCziTypes_True_closure"
1585+ "-Wl,-u,ghczmprim_GHCziTypes_False_closure"
1586+ "-Wl,-u,base_GHCziPack_unpackCString_closure"
1587+ "-Wl,-u,base_GHCziWeak_runFinalizzerBatch_closure"
1588+ "-Wl,-u,base_GHCziIOziException_stackOverflow_closure"
1589+ "-Wl,-u,base_GHCziIOziException_heapOverflow_closure"
1590+ "-Wl,-u,base_GHCziIOziException_allocationLimitExceeded_closure"
1591+ "-Wl,-u,base_GHCziIOziException_blockedIndefinitelyOnMVar_closure"
1592+ "-Wl,-u,base_GHCziIOziException_blockedIndefinitelyOnSTM_closure"
1593+ "-Wl,-u,base_GHCziIOziException_cannotCompactFunction_closure"
1594+ "-Wl,-u,base_GHCziIOziException_cannotCompactPinned_closure"
1595+ "-Wl,-u,base_GHCziIOziException_cannotCompactMutable_closure"
1596+ "-Wl,-u,base_ControlziExceptionziBase_absentSumFieldError_closure"
1597+ "-Wl,-u,base_ControlziExceptionziBase_nonTermination_closure"
1598+ "-Wl,-u,base_ControlziExceptionziBase_nestedAtomically_closure"
1599+ "-Wl,-u,base_GHCziEventziThread_blockedOnBadFD_closure"
1600+ "-Wl,-u,base_GHCziConcziSync_runSparks_closure"
1601+ "-Wl,-u,base_GHCziConcziIO_ensureIOManagerIsRunning_closure"
1602+ "-Wl,-u,base_GHCziConcziIO_ioManagerCapabilitiesChanged_closure"
1603+ "-Wl,-u,base_GHCziConcziSignal_runHandlersPtr_closure"
1604+ "-Wl,-u,base_GHCziTopHandler_flushStdHandles_closure"
1605+ "-Wl,-u,base_GHCziTopHandler_runMainIO_closure"
1606+ "-Wl,-u,ghczmprim_GHCziTypes_Czh_con_info"
1607+ "-Wl,-u,ghczmprim_GHCziTypes_Izh_con_info"
1608+ "-Wl,-u,ghczmprim_GHCziTypes_Fzh_con_info"
1609+ "-Wl,-u,ghczmprim_GHCziTypes_Dzh_con_info"
1610+ "-Wl,-u,ghczmprim_GHCziTypes_Wzh_con_info"
1611+ "-Wl,-u,base_GHCziPtr_Ptr_con_info"
1612+ "-Wl,-u,base_GHCziPtr_FunPtr_con_info"
1613+ "-Wl,-u,base_GHCziInt_I8zh_con_info"
1614+ "-Wl,-u,base_GHCziInt_I16zh_con_info"
1615+ "-Wl,-u,base_GHCziInt_I32zh_con_info"
1616+ "-Wl,-u,base_GHCziInt_I64zh_con_info"
1617+ "-Wl,-u,base_GHCziWord_W8zh_con_info"
1618+ "-Wl,-u,base_GHCziWord_W16zh_con_info"
1619+ "-Wl,-u,base_GHCziWord_W32zh_con_info"
1620+ "-Wl,-u,base_GHCziWord_W64zh_con_info"
1621+ "-Wl,-u,base_GHCziStable_StablePtr_con_info"
1622+ "-Wl,-u,hs_atomic_add8" "-Wl,-u,hs_atomic_add16"
1623+ "-Wl,-u,hs_atomic_add32" "-Wl,-u,hs_atomic_add64"
1624+ "-Wl,-u,hs_atomic_sub8" "-Wl,-u,hs_atomic_sub16"
1625+ "-Wl,-u,hs_atomic_sub32" "-Wl,-u,hs_atomic_sub64"
1626+ "-Wl,-u,hs_atomic_and8" "-Wl,-u,hs_atomic_and16"
1627+ "-Wl,-u,hs_atomic_and32" "-Wl,-u,hs_atomic_and64"
1628+ "-Wl,-u,hs_atomic_nand8" "-Wl,-u,hs_atomic_nand16"
1629+ "-Wl,-u,hs_atomic_nand32" "-Wl,-u,hs_atomic_nand64"
1630+ "-Wl,-u,hs_atomic_or8" "-Wl,-u,hs_atomic_or16"
1631+ "-Wl,-u,hs_atomic_or32" "-Wl,-u,hs_atomic_or64"
1632+ "-Wl,-u,hs_atomic_xor8" "-Wl,-u,hs_atomic_xor16"
1633+ "-Wl,-u,hs_atomic_xor32" "-Wl,-u,hs_atomic_xor64"
1634+ "-Wl,-u,hs_cmpxchg8" "-Wl,-u,hs_cmpxchg16" "-Wl,-u,hs_cmpxchg32"
1635+ "-Wl,-u,hs_cmpxchg64" "-Wl,-u,hs_atomicread8"
1636+ "-Wl,-u,hs_atomicread16" "-Wl,-u,hs_atomicread32"
1637+ "-Wl,-u,hs_atomicread64" "-Wl,-u,hs_atomicwrite8"
1638+ "-Wl,-u,hs_atomicwrite16" "-Wl,-u,hs_atomicwrite32"
1639+ "-Wl,-u,hs_atomicwrite64"
materialized/dummy-ghc/ghc-8.10.6-x86_64-linux/ghc-pkg/versionnew file+1
@@ -0,0 +1 @@
1+GHC package manager version 8.10.6
materialized/dummy-ghc/ghc-8.10.6-x86_64-linux/ghc/infonew file+75
@@ -0,0 +1,75 @@
1+ [("Project name","The Glorious Glasgow Haskell Compilation System")
2+ ,("GCC extra via C opts","")
3+ ,("C compiler command","gcc")
4+ ,("C compiler flags","")
5+ ,("C++ compiler flags","")
6+ ,("C compiler link flags","")
7+ ,("C compiler supports -no-pie","YES")
8+ ,("Haskell CPP command","gcc")
9+ ,("Haskell CPP flags","-E -undef -traditional")
12+ ,("ld supports compact unwind","YES")
13+ ,("ld supports build-id","YES")
14+ ,("ld supports filelist","NO")
15+ ,("ld is GNU ld","YES")
16+ ,("Merge objects command","ld")
17+ ,("Merge objects flags","-r")
20+ ,("ar supports at file","YES")
21+ ,("ranlib command","ranlib")
22+ ,("otool command","otool")
23+ ,("install_name_tool command","install_name_tool")
24+ ,("touch command","touch")
25+ ,("dllwrap command","/bin/false")
26+ ,("windres command","/bin/false")
27+ ,("libtool command","libtool")
28+ ,("cross compiling","NO")
29+ ,("target platform string","x86_64-unknown-linux")
30+ ,("target os","OSLinux")
31+ ,("target arch","ArchX86_64")
32+ ,("target word size","8")
33+ ,("target has GNU nonexec stack","YES")
34+ ,("target has .ident directive","YES")
35+ ,("target has subsections via symbols","NO")
36+ ,("target has RTS linker","YES")
37+ ,("Unregisterised","NO")
38+ ,("LLVM target","x86_64-unknown-linux")
39+ ,("LLVM llc command","llc")
40+ ,("LLVM opt command","opt")
41+ ,("LLVM clang command","clang")
42+ ,("integer library","integer-gmp")
43+ ,("Use interpreter","YES")
44+ ,("Use native code generator","YES")
45+ ,("Support SMP","YES")
46+ ,("RTS ways","l debug thr thr_debug thr_l thr_p dyn debug_dyn thr_dyn thr_debug_dyn l_dyn thr_l_dyn thr_debug_p debug_p")
47+ ,("Tables next to code","YES")
48+ ,("Leading underscore","NO")
50+ ,("Use Threads","YES")
51+ ,("Use Debugging","NO")
52+ ,("RTS expects libdw","NO")
53+ ,("Project version","8.10.6")
54+ ,("Project Git commit id","f7b3359be12030d762b299681e1aeef0292417ce")
55+ ,("Booter version","8.6.5")
57+ ,("Build platform","x86_64-unknown-linux")
58+ ,("Host platform","x86_64-unknown-linux")
59+ ,("Target platform","x86_64-unknown-linux")
60+ ,("Have interpreter","YES")
61+ ,("Object splitting supported","NO")
62+ ,("Have native code generator","YES")
63+ ,("Support dynamic-too","YES")
64+ ,("Support parallel --make","YES")
65+ ,("Support reexported-modules","YES")
66+ ,("Support thinning and renaming package flags","YES")
67+ ,("Support Backpack","YES")
68+ ,("Requires unified installed package IDs","YES")
69+ ,("Uses package keys","YES")
70+ ,("Uses unit IDs","YES")
71+ ,("Dynamic by default","NO")
72+ ,("GHC Dynamic","YES")
73+ ,("GHC Profiled","NO")
materialized/dummy-ghc/ghc-8.10.6-x86_64-linux/ghc/numeric-versionnew file+1
materialized/dummy-ghc/ghc-8.10.6-x86_64-linux/ghc/supported-languagesnew file+255
@@ -0,0 +1,255 @@
9+NoAlternativeLayoutRule
10+AlternativeLayoutRuleTransitional
11+NoAlternativeLayoutRuleTransitional
26+ConstrainedClassMethods
27+NoConstrainedClassMethods
54+DisambiguateRecordFields
55+NoDisambiguateRecordFields
63+NoDuplicateRecordFields
70+ExistentialQuantification
71+NoExistentialQuantification
77+NoExtendedDefaultRules
82+ForeignFunctionInterface
83+NoForeignFunctionInterface
84+FunctionalDependencies
85+NoFunctionalDependencies
91+NoGHCForeignImportPrim
92+GeneralizedNewtypeDeriving
93+NoGeneralizedNewtypeDeriving
94+GeneralisedNewtypeDeriving
95+NoGeneralisedNewtypeDeriving
101+NoImportQualifiedPost
105+NoIncoherentInstances
106+TypeFamilyDependencies
107+NoTypeFamilyDependencies
121+NoLiberalTypeSynonyms
125+NoMonadComprehensions
127+NoMonadFailDesugaring
132+MonomorphismRestriction
133+NoMonomorphismRestriction
134+MultiParamTypeClasses
135+NoMultiParamTypeClasses
150+NondecreasingIndentation
151+NoNondecreasingIndentation
157+NoOverlappingInstances
170+PartialTypeSignatures
171+NoPartialTypeSignatures
180+PolymorphicComponents
181+NoPolymorphicComponents
182+QuantifiedConstraints
183+NoQuantifiedConstraints
207+NoScopedTypeVariables
220+TemplateHaskellQuotes
221+NoTemplateHaskellQuotes
222+StandaloneKindSignatures
223+NoStandaloneKindSignatures
224+TraditionalRecordSyntax
225+NoTraditionalRecordSyntax
239+NoTypeSynonymInstances
245+NoUndecidableInstances
246+UndecidableSuperClasses
247+NoUndecidableSuperClasses
materialized/dummy-ghc/ghc-8.10.6-x86_64-linux/ghc/versionnew file+1
@@ -0,0 +1 @@
1+The Glorious Glasgow Haskell Compilation System, version 8.10.6
materialized/dummy-ghc/ghc-8.10.7-aarch64-darwin/ghc-pkg/dump-globalnew file+1639
@@ -0,0 +1,1639 @@
7+copyright: 2003-2020, Cabal Development Team (see AUTHORS file)
8+maintainer: cabal-devel@haskell.org
9+author: Cabal Development Team <cabal-devel@haskell.org>
10+homepage: http://www.haskell.org/cabal/
11+synopsis: A framework for packaging Haskell software
13+ The Haskell Common Architecture for Building Applications and
14+ Libraries: a framework defining a common interface for authors to more
15+ easily build their Haskell applications in a portable way.
16+ The Haskell Cabal is part of a larger infrastructure for distributing,
17+ organizing, and cataloging Haskell libraries and tools.
18+category: Distribution
21+ Distribution.Backpack Distribution.Backpack.ComponentsGraph
22+ Distribution.Backpack.Configure
23+ Distribution.Backpack.ConfiguredComponent
24+ Distribution.Backpack.DescribeUnitId
25+ Distribution.Backpack.FullUnitId
26+ Distribution.Backpack.LinkedComponent
27+ Distribution.Backpack.ModSubst Distribution.Backpack.ModuleShape
28+ Distribution.Backpack.PreModuleShape Distribution.CabalSpecVersion
29+ Distribution.Compat.Binary Distribution.Compat.CharParsing
30+ Distribution.Compat.CreatePipe Distribution.Compat.DList
31+ Distribution.Compat.Directory Distribution.Compat.Environment
32+ Distribution.Compat.Exception Distribution.Compat.FilePath
33+ Distribution.Compat.Graph Distribution.Compat.Internal.TempFile
34+ Distribution.Compat.Lens Distribution.Compat.Newtype
35+ Distribution.Compat.Parsing Distribution.Compat.Prelude.Internal
36+ Distribution.Compat.Process Distribution.Compat.ResponseFile
37+ Distribution.Compat.Semigroup Distribution.Compat.Stack
38+ Distribution.Compat.Time Distribution.Compat.Typeable
39+ Distribution.Compiler Distribution.FieldGrammar
40+ Distribution.FieldGrammar.Class
41+ Distribution.FieldGrammar.FieldDescrs
42+ Distribution.FieldGrammar.Parsec Distribution.FieldGrammar.Pretty
43+ Distribution.Fields Distribution.Fields.ConfVar
44+ Distribution.Fields.Field Distribution.Fields.Lexer
45+ Distribution.Fields.LexerMonad Distribution.Fields.ParseResult
46+ Distribution.Fields.Parser Distribution.Fields.Pretty
47+ Distribution.InstalledPackageInfo Distribution.License
48+ Distribution.Make Distribution.ModuleName Distribution.Package
49+ Distribution.PackageDescription
50+ Distribution.PackageDescription.Check
51+ Distribution.PackageDescription.Configuration
52+ Distribution.PackageDescription.FieldGrammar
53+ Distribution.PackageDescription.Parsec
54+ Distribution.PackageDescription.PrettyPrint
55+ Distribution.PackageDescription.Quirks
56+ Distribution.PackageDescription.Utils Distribution.Parsec
57+ Distribution.Parsec.Error Distribution.Parsec.FieldLineStream
58+ Distribution.Parsec.Newtypes Distribution.Parsec.Position
59+ Distribution.Parsec.Warning Distribution.Pretty Distribution.ReadE
60+ Distribution.SPDX Distribution.SPDX.License
61+ Distribution.SPDX.LicenseExceptionId
62+ Distribution.SPDX.LicenseExpression Distribution.SPDX.LicenseId
63+ Distribution.SPDX.LicenseListVersion
64+ Distribution.SPDX.LicenseReference Distribution.Simple
65+ Distribution.Simple.Bench Distribution.Simple.Build
66+ Distribution.Simple.Build.Macros
67+ Distribution.Simple.Build.PathsModule
68+ Distribution.Simple.BuildPaths Distribution.Simple.BuildTarget
69+ Distribution.Simple.BuildToolDepends Distribution.Simple.CCompiler
70+ Distribution.Simple.Command Distribution.Simple.Compiler
71+ Distribution.Simple.Configure Distribution.Simple.Doctest
72+ Distribution.Simple.Flag Distribution.Simple.GHC
73+ Distribution.Simple.GHCJS Distribution.Simple.Glob
74+ Distribution.Simple.Haddock Distribution.Simple.HaskellSuite
75+ Distribution.Simple.Hpc Distribution.Simple.Install
76+ Distribution.Simple.InstallDirs
77+ Distribution.Simple.InstallDirs.Internal
78+ Distribution.Simple.LocalBuildInfo Distribution.Simple.PackageIndex
79+ Distribution.Simple.PreProcess Distribution.Simple.PreProcess.Unlit
80+ Distribution.Simple.Program Distribution.Simple.Program.Ar
81+ Distribution.Simple.Program.Builtin Distribution.Simple.Program.Db
82+ Distribution.Simple.Program.Find Distribution.Simple.Program.GHC
83+ Distribution.Simple.Program.HcPkg Distribution.Simple.Program.Hpc
84+ Distribution.Simple.Program.Internal Distribution.Simple.Program.Ld
85+ Distribution.Simple.Program.ResponseFile
86+ Distribution.Simple.Program.Run Distribution.Simple.Program.Script
87+ Distribution.Simple.Program.Strip Distribution.Simple.Program.Types
88+ Distribution.Simple.Register Distribution.Simple.Setup
89+ Distribution.Simple.ShowBuildInfo Distribution.Simple.SrcDist
90+ Distribution.Simple.Test Distribution.Simple.Test.ExeV10
91+ Distribution.Simple.Test.LibV09 Distribution.Simple.Test.Log
92+ Distribution.Simple.UHC Distribution.Simple.UserHooks
93+ Distribution.Simple.Utils Distribution.System
94+ Distribution.TestSuite Distribution.Text
95+ Distribution.Types.AbiDependency Distribution.Types.AbiHash
96+ Distribution.Types.AnnotatedId Distribution.Types.Benchmark
97+ Distribution.Types.Benchmark.Lens
98+ Distribution.Types.BenchmarkInterface
99+ Distribution.Types.BenchmarkType Distribution.Types.BuildInfo
100+ Distribution.Types.BuildInfo.Lens Distribution.Types.BuildType
101+ Distribution.Types.Component Distribution.Types.ComponentId
102+ Distribution.Types.ComponentInclude
103+ Distribution.Types.ComponentLocalBuildInfo
104+ Distribution.Types.ComponentName
105+ Distribution.Types.ComponentRequestedSpec
106+ Distribution.Types.CondTree Distribution.Types.Condition
107+ Distribution.Types.ConfVar Distribution.Types.Dependency
108+ Distribution.Types.DependencyMap Distribution.Types.ExeDependency
109+ Distribution.Types.Executable Distribution.Types.Executable.Lens
110+ Distribution.Types.ExecutableScope Distribution.Types.ExposedModule
111+ Distribution.Types.Flag Distribution.Types.ForeignLib
112+ Distribution.Types.ForeignLib.Lens
113+ Distribution.Types.ForeignLibOption
114+ Distribution.Types.ForeignLibType
115+ Distribution.Types.GenericPackageDescription
116+ Distribution.Types.GenericPackageDescription.Lens
117+ Distribution.Types.GivenComponent
118+ Distribution.Types.HookedBuildInfo
119+ Distribution.Types.IncludeRenaming
120+ Distribution.Types.InstalledPackageInfo
121+ Distribution.Types.InstalledPackageInfo.FieldGrammar
122+ Distribution.Types.InstalledPackageInfo.Lens
123+ Distribution.Types.LegacyExeDependency Distribution.Types.Lens
124+ Distribution.Types.Library Distribution.Types.Library.Lens
125+ Distribution.Types.LibraryName Distribution.Types.LibraryVisibility
126+ Distribution.Types.LocalBuildInfo Distribution.Types.Mixin
127+ Distribution.Types.Module Distribution.Types.ModuleReexport
128+ Distribution.Types.ModuleRenaming
129+ Distribution.Types.MungedPackageId
130+ Distribution.Types.MungedPackageName
131+ Distribution.Types.PackageDescription
132+ Distribution.Types.PackageDescription.Lens
133+ Distribution.Types.PackageId Distribution.Types.PackageId.Lens
134+ Distribution.Types.PackageName Distribution.Types.PackageName.Magic
135+ Distribution.Types.PackageVersionConstraint
136+ Distribution.Types.PkgconfigDependency
137+ Distribution.Types.PkgconfigName
138+ Distribution.Types.PkgconfigVersion
139+ Distribution.Types.PkgconfigVersionRange
140+ Distribution.Types.SetupBuildInfo
141+ Distribution.Types.SetupBuildInfo.Lens
142+ Distribution.Types.SourceRepo Distribution.Types.SourceRepo.Lens
143+ Distribution.Types.TargetInfo Distribution.Types.TestSuite
144+ Distribution.Types.TestSuite.Lens
145+ Distribution.Types.TestSuiteInterface Distribution.Types.TestType
146+ Distribution.Types.UnitId Distribution.Types.UnqualComponentName
147+ Distribution.Types.Version Distribution.Types.VersionInterval
148+ Distribution.Types.VersionRange
149+ Distribution.Types.VersionRange.Internal Distribution.Utils.Generic
150+ Distribution.Utils.IOData Distribution.Utils.LogProgress
151+ Distribution.Utils.MD5 Distribution.Utils.MapAccum
152+ Distribution.Utils.NubList Distribution.Utils.Progress
153+ Distribution.Utils.ShortText Distribution.Utils.Structured
154+ Distribution.Verbosity Distribution.Verbosity.Internal
155+ Distribution.Version Language.Haskell.Extension
157+ Distribution.Backpack.PreExistingComponent
158+ Distribution.Backpack.ReadyComponent Distribution.Backpack.MixLink
159+ Distribution.Backpack.ModuleScope Distribution.Backpack.UnifyM
160+ Distribution.Backpack.Id Distribution.Utils.UnionFind
161+ Distribution.Utils.Base62 Distribution.Compat.Async
162+ Distribution.Compat.CopyFile Distribution.Compat.GetShortPathName
163+ Distribution.Compat.MonadFail Distribution.Compat.Prelude
164+ Distribution.Compat.SnocList Distribution.GetOpt Distribution.Lex
165+ Distribution.Utils.String Distribution.Simple.GHC.EnvironmentParser
166+ Distribution.Simple.GHC.Internal Distribution.Simple.GHC.ImplInfo
167+ Distribution.Simple.Utils.Json Paths_Cabal
170+dynamic-library-dirs:
172+hs-libraries: HSCabal-3.2.1.0
174+ array-0.5.4.0 base-4.14.3.0 binary-0.8.8.0 bytestring-0.10.12.0
175+ containers-0.6.5.1 deepseq-1.4.4.0 directory-1.3.6.0
176+ filepath-1.4.2.1 mtl-2.2.2 parsec-3.1.14.0 pretty-1.1.3.6
177+ process-1.6.13.2 text-1.2.4.1 time-1.9.3 transformers-0.5.6.2
187+license: BSD-3-Clause
188+maintainer: libraries@haskell.org
189+synopsis: Mutable and immutable arrays
191+ In addition to providing the "Data.Array" module
192+ <http://www.haskell.org/onlinereport/haskell2010/haskellch14.html as specified in the Haskell 2010 Language Report>,
193+ this package also defines the classes 'IArray' of
194+ immutable arrays and 'MArray' of arrays mutable within appropriate
195+ monads, as well as some instances of these classes.
196+category: Data Structures
199+ Data.Array Data.Array.Base Data.Array.IArray Data.Array.IO
200+ Data.Array.IO.Internals Data.Array.IO.Safe Data.Array.MArray
201+ Data.Array.MArray.Safe Data.Array.ST Data.Array.ST.Safe
202+ Data.Array.Storable Data.Array.Storable.Internals
203+ Data.Array.Storable.Safe Data.Array.Unboxed Data.Array.Unsafe
206+dynamic-library-dirs:
208+hs-libraries: HSarray-0.5.4.0
209+depends: base-4.14.3.0
218+license: BSD-3-Clause
219+maintainer: libraries@haskell.org
220+synopsis: Basic libraries
222+ This package contains the Standard Haskell "Prelude" and its support libraries,
223+ and a large collection of useful libraries ranging from data
224+ structures to parsing combinators and debugging utilities.
228+ Control.Applicative Control.Arrow Control.Category
229+ Control.Concurrent Control.Concurrent.Chan Control.Concurrent.MVar
230+ Control.Concurrent.QSem Control.Concurrent.QSemN Control.Exception
231+ Control.Exception.Base Control.Monad Control.Monad.Fail
232+ Control.Monad.Fix Control.Monad.IO.Class Control.Monad.Instances
233+ Control.Monad.ST Control.Monad.ST.Lazy Control.Monad.ST.Lazy.Safe
234+ Control.Monad.ST.Lazy.Unsafe Control.Monad.ST.Safe
235+ Control.Monad.ST.Strict Control.Monad.ST.Unsafe Control.Monad.Zip
236+ Data.Bifoldable Data.Bifunctor Data.Bitraversable Data.Bits
237+ Data.Bool Data.Char Data.Coerce Data.Complex Data.Data Data.Dynamic
238+ Data.Either Data.Eq Data.Fixed Data.Foldable Data.Function
239+ Data.Functor Data.Functor.Classes Data.Functor.Compose
240+ Data.Functor.Const Data.Functor.Contravariant Data.Functor.Identity
241+ Data.Functor.Product Data.Functor.Sum Data.IORef Data.Int Data.Ix
242+ Data.Kind Data.List Data.List.NonEmpty Data.Maybe Data.Monoid
243+ Data.Ord Data.Proxy Data.Ratio Data.STRef Data.STRef.Lazy
244+ Data.STRef.Strict Data.Semigroup Data.String Data.Traversable
245+ Data.Tuple Data.Type.Bool Data.Type.Coercion Data.Type.Equality
246+ Data.Typeable Data.Unique Data.Version Data.Void Data.Word
247+ Debug.Trace Foreign Foreign.C Foreign.C.Error Foreign.C.String
248+ Foreign.C.Types Foreign.Concurrent Foreign.ForeignPtr
249+ Foreign.ForeignPtr.Safe Foreign.ForeignPtr.Unsafe Foreign.Marshal
250+ Foreign.Marshal.Alloc Foreign.Marshal.Array Foreign.Marshal.Error
251+ Foreign.Marshal.Pool Foreign.Marshal.Safe Foreign.Marshal.Unsafe
252+ Foreign.Marshal.Utils Foreign.Ptr Foreign.Safe Foreign.StablePtr
253+ Foreign.Storable GHC.Arr GHC.Base GHC.ByteOrder GHC.Char GHC.Clock
254+ GHC.Conc GHC.Conc.IO GHC.Conc.Signal GHC.Conc.Sync
255+ GHC.ConsoleHandler GHC.Constants GHC.Desugar GHC.Enum
256+ GHC.Environment GHC.Err GHC.Event GHC.Exception GHC.Exception.Type
257+ GHC.ExecutionStack GHC.ExecutionStack.Internal GHC.Exts
258+ GHC.Fingerprint GHC.Fingerprint.Type GHC.Float
259+ GHC.Float.ConversionUtils GHC.Float.RealFracMethods GHC.Foreign
260+ GHC.ForeignPtr GHC.GHCi GHC.GHCi.Helpers GHC.Generics GHC.IO
261+ GHC.IO.Buffer GHC.IO.BufferedIO GHC.IO.Device GHC.IO.Encoding
262+ GHC.IO.Encoding.CodePage GHC.IO.Encoding.Failure
263+ GHC.IO.Encoding.Iconv GHC.IO.Encoding.Latin1 GHC.IO.Encoding.Types
264+ GHC.IO.Encoding.UTF16 GHC.IO.Encoding.UTF32 GHC.IO.Encoding.UTF8
265+ GHC.IO.Exception GHC.IO.FD GHC.IO.Handle GHC.IO.Handle.FD
266+ GHC.IO.Handle.Internals GHC.IO.Handle.Lock GHC.IO.Handle.Text
267+ GHC.IO.Handle.Types GHC.IO.IOMode GHC.IO.Unsafe GHC.IOArray
268+ GHC.IORef GHC.Int GHC.Ix GHC.List GHC.MVar GHC.Maybe GHC.Natural
269+ GHC.Num GHC.OldList GHC.OverloadedLabels GHC.Pack GHC.Profiling
270+ GHC.Ptr GHC.RTS.Flags GHC.Read GHC.Real GHC.Records
271+ GHC.ResponseFile GHC.ST GHC.STRef GHC.Show GHC.Stable
272+ GHC.StableName GHC.Stack GHC.Stack.CCS GHC.Stack.Types
273+ GHC.StaticPtr GHC.Stats GHC.Storable GHC.TopHandler GHC.TypeLits
274+ GHC.TypeNats GHC.Unicode GHC.Weak GHC.Word Numeric Numeric.Natural
275+ Prelude System.CPUTime System.Console.GetOpt System.Environment
276+ System.Environment.Blank System.Exit System.IO System.IO.Error
277+ System.IO.Unsafe System.Info System.Mem System.Mem.StableName
278+ System.Mem.Weak System.Posix.Internals System.Posix.Types
279+ System.Timeout Text.ParserCombinators.ReadP
280+ Text.ParserCombinators.ReadPrec Text.Printf Text.Read Text.Read.Lex
281+ Text.Show Text.Show.Functions Type.Reflection
282+ Type.Reflection.Unsafe Unsafe.Coerce
284+ Control.Monad.ST.Imp Control.Monad.ST.Lazy.Imp Data.Functor.Utils
285+ Data.OldList Data.Semigroup.Internal Data.Typeable.Internal
286+ Foreign.ForeignPtr.Imp GHC.IO.Handle.Lock.Common
287+ GHC.IO.Handle.Lock.Flock GHC.IO.Handle.Lock.LinuxOFD
288+ GHC.IO.Handle.Lock.NoOp GHC.IO.Handle.Lock.Windows
289+ GHC.StaticPtr.Internal System.Environment.ExecutablePath
290+ System.CPUTime.Utils GHC.Event.Arr GHC.Event.Array
291+ GHC.Event.Control GHC.Event.EPoll GHC.Event.IntTable
292+ GHC.Event.Internal GHC.Event.KQueue GHC.Event.Manager GHC.Event.PSQ
293+ GHC.Event.Poll GHC.Event.Thread GHC.Event.TimerManager
294+ GHC.Event.Unique System.CPUTime.Posix.ClockGetTime
295+ System.CPUTime.Posix.Times System.CPUTime.Posix.RUsage
296+ System.CPUTime.Unsupported
299+dynamic-library-dirs:
301+hs-libraries: HSbase-4.14.3.0
302+extra-libraries: iconv
305+depends: ghc-prim-0.6.1 integer-gmp-1.0.3.0 rts
314+license: BSD-3-Clause
315+maintainer: Lennart Kolmodin, Don Stewart <dons00@gmail.com>
316+author: Lennart Kolmodin <kolmodin@gmail.com>
317+stability: provisional
318+homepage: https://github.com/kolmodin/binary
320+ Binary serialisation for Haskell values using lazy ByteStrings
322+ Efficient, pure binary serialisation using lazy ByteStrings.
323+ Haskell values may be encoded to and from binary formats,
324+ written to disk as binary, or sent over the network.
325+ The format used can be automatically generated, or
326+ you can choose to implement a custom format if needed.
327+ Serialisation speeds of over 1 G\/sec have been observed,
328+ so this library should be suitable for high performance
330+category: Data, Parsing
333+ Data.Binary Data.Binary.Builder Data.Binary.Get
334+ Data.Binary.Get.Internal Data.Binary.Put
336+ Data.Binary.Class Data.Binary.Internal Data.Binary.Generic
337+ Data.Binary.FloatCast
340+dynamic-library-dirs:
342+hs-libraries: HSbinary-0.8.8.0
344+ array-0.5.4.0 base-4.14.3.0 bytestring-0.10.12.0 containers-0.6.5.1
351+id: bytestring-0.10.12.0
352+key: bytestring-0.10.12.0
353+license: BSD-3-Clause
355+ Copyright (c) Don Stewart 2005-2009,
356+ (c) Duncan Coutts 2006-2015,
357+ (c) David Roundy 2003-2005,
358+ (c) Jasper Van der Jeugt 2010,
359+ (c) Simon Meier 2010-2013.
360+maintainer: Duncan Coutts <duncan@community.haskell.org>
364+homepage: https://github.com/haskell/bytestring
366+ Fast, compact, strict and lazy byte strings with a list interface
368+ An efficient compact, immutable byte string type (both strict and lazy)
369+ suitable for binary or 8-bit character data.
370+ The 'ByteString' type represents sequences of bytes or 8-bit characters.
371+ It is suitable for high performance use, both in terms of large data
372+ quantities, or high speed requirements. The 'ByteString' functions follow
373+ the same style as Haskell\'s ordinary lists, so it is easy to convert code
374+ from using 'String' to 'ByteString'.
375+ Two 'ByteString' variants are provided:
376+ * Strict 'ByteString's keep the string as a single large array. This
377+ makes them convenient for passing data between C and Haskell.
378+ * Lazy 'ByteString's use a lazy list of strict chunks which makes it
379+ suitable for I\/O streaming tasks.
380+ The @Char8@ modules provide a character-based view of the same
381+ underlying 'ByteString' types. This makes it convenient to handle mixed
382+ binary and 8-bit character content (which is common in many file formats
383+ and network protocols).
384+ The 'Builder' module provides an efficient way to build up 'ByteString's
385+ in an ad-hoc way by repeated concatenation. This is ideal for fast
386+ serialisation or pretty printing.
387+ There is also a 'ShortByteString' type which has a lower memory overhead
388+ and can can be converted to or from a 'ByteString', but supports very few
389+ other operations. It is suitable for keeping many short strings in memory.
390+ 'ByteString's are not designed for Unicode. For Unicode strings you should
391+ use the 'Text' type from the @text@ package.
392+ These modules are intended to be imported qualified, to avoid name clashes
393+ with "Prelude" functions, e.g.
394+ > import qualified Data.ByteString as BS
398+ Data.ByteString Data.ByteString.Builder
399+ Data.ByteString.Builder.Extra Data.ByteString.Builder.Internal
400+ Data.ByteString.Builder.Prim Data.ByteString.Builder.Prim.Internal
401+ Data.ByteString.Char8 Data.ByteString.Internal Data.ByteString.Lazy
402+ Data.ByteString.Lazy.Builder Data.ByteString.Lazy.Builder.ASCII
403+ Data.ByteString.Lazy.Builder.Extras Data.ByteString.Lazy.Char8
404+ Data.ByteString.Lazy.Internal Data.ByteString.Short
405+ Data.ByteString.Short.Internal Data.ByteString.Unsafe
407+ Data.ByteString.Builder.ASCII Data.ByteString.Builder.Prim.Binary
408+ Data.ByteString.Builder.Prim.ASCII
409+ Data.ByteString.Builder.Prim.Internal.Floating
410+ Data.ByteString.Builder.Prim.Internal.UncheckedShifts
411+ Data.ByteString.Builder.Prim.Internal.Base16
414+dynamic-library-dirs:
416+hs-libraries: HSbytestring-0.10.12.0
420+ base-4.14.3.0 deepseq-1.4.4.0 ghc-prim-0.6.1 integer-gmp-1.0.3.0
427+id: containers-0.6.5.1
428+key: containers-0.6.5.1
429+license: BSD-3-Clause
430+maintainer: libraries@haskell.org
431+synopsis: Assorted concrete container types
433+ This package contains efficient general-purpose implementations
434+ of various immutable container types including sets, maps, sequences,
436+ For a walkthrough of what this package provides with examples of common
437+ operations see the [containers
438+ introduction](https://haskell-containers.readthedocs.io).
439+ The declared cost of each operation is either worst-case or amortized, but
440+ remains valid even if structures are shared.
441+category: Data Structures
444+ Data.Containers.ListUtils Data.Graph Data.IntMap
445+ Data.IntMap.Internal Data.IntMap.Internal.Debug Data.IntMap.Lazy
446+ Data.IntMap.Merge.Lazy Data.IntMap.Merge.Strict Data.IntMap.Strict
447+ Data.IntMap.Strict.Internal Data.IntSet Data.IntSet.Internal
448+ Data.Map Data.Map.Internal Data.Map.Internal.Debug Data.Map.Lazy
449+ Data.Map.Merge.Lazy Data.Map.Merge.Strict Data.Map.Strict
450+ Data.Map.Strict.Internal Data.Sequence Data.Sequence.Internal
451+ Data.Sequence.Internal.Sorting Data.Set Data.Set.Internal Data.Tree
452+ Utils.Containers.Internal.BitQueue
453+ Utils.Containers.Internal.BitUtil
454+ Utils.Containers.Internal.StrictPair
456+ Utils.Containers.Internal.State
457+ Utils.Containers.Internal.StrictMaybe
458+ Utils.Containers.Internal.PtrEquality
459+ Utils.Containers.Internal.Coercions
460+ Utils.Containers.Internal.TypeError
461+ Data.Map.Internal.DeprecatedShowTree
462+ Data.IntMap.Internal.DeprecatedDebug
465+dynamic-library-dirs:
467+hs-libraries: HScontainers-0.6.5.1
468+depends: array-0.5.4.0 base-4.14.3.0 deepseq-1.4.4.0
477+license: BSD-3-Clause
478+maintainer: libraries@haskell.org
479+synopsis: Deep evaluation of data structures
481+ This package provides methods for fully evaluating data structures
482+ (\"deep evaluation\"). Deep evaluation is often used for adding
483+ strictness to a program, e.g. in order to force pending exceptions,
484+ remove space leaks, or force lazy I/O to happen. It is also useful
485+ in parallel programs, to ensure pending work does not migrate to the
487+ The primary use of this package is via the 'deepseq' function, a
488+ \"deep\" version of 'seq'. It is implemented on top of an 'NFData'
489+ typeclass (\"Normal Form Data\", data structures with no unevaluated
490+ components) which defines strategies for fully evaluating different
491+ data types. See module documentation in "Control.DeepSeq" for more
495+exposed-modules: Control.DeepSeq
496+hidden-modules: Control.DeepSeq.BackDoor
499+dynamic-library-dirs:
501+hs-libraries: HSdeepseq-1.4.4.0
502+depends: array-0.5.4.0 base-4.14.3.0
509+id: directory-1.3.6.0
510+key: directory-1.3.6.0
511+license: BSD-3-Clause
512+maintainer: libraries@haskell.org
513+synopsis: Platform-agnostic library for filesystem operations
515+ This library provides a basic set of operations for manipulating files and
516+ directories in a portable way.
520+ System.Directory System.Directory.Internal
521+ System.Directory.Internal.Prelude
523+ System.Directory.Internal.C_utimensat
524+ System.Directory.Internal.Common System.Directory.Internal.Config
525+ System.Directory.Internal.Posix System.Directory.Internal.Windows
528+dynamic-library-dirs:
530+hs-libraries: HSdirectory-1.3.6.0
532+ base-4.14.3.0 filepath-1.4.2.1 time-1.9.3 unix-2.7.2.2
539+id: exceptions-0.10.4
540+key: exceptions-0.10.4
541+license: BSD-3-Clause
543+ Copyright (C) 2013-2015 Edward A. Kmett
544+ Copyright (C) 2012 Google Inc.
545+maintainer: Edward A. Kmett <ekmett@gmail.com>
546+author: Edward A. Kmett
547+stability: provisional
548+homepage: http://github.com/ekmett/exceptions/
549+synopsis: Extensible optionally-pure exceptions
550+description: Extensible optionally-pure exceptions.
551+category: Control, Exceptions, Monad
553+exposed-modules: Control.Monad.Catch Control.Monad.Catch.Pure
556+dynamic-library-dirs:
558+hs-libraries: HSexceptions-0.10.4
560+ base-4.14.3.0 mtl-2.2.2 stm-2.5.0.1 template-haskell-2.16.0.0
561+ transformers-0.5.6.2
569+key: filepath-1.4.2.1
570+license: BSD-3-Clause
571+copyright: Neil Mitchell 2005-2018
572+maintainer: Neil Mitchell <ndmitchell@gmail.com>
573+author: Neil Mitchell <ndmitchell@gmail.com>
574+homepage: https://github.com/haskell/filepath#readme
575+synopsis: Library for manipulating FilePaths in a cross platform way.
577+ This package provides functionality for manipulating @FilePath@ values, and is shipped with both <https://www.haskell.org/ghc/ GHC> and the <https://www.haskell.org/platform/ Haskell Platform>. It provides three modules:
578+ * "System.FilePath.Posix" manipulates POSIX\/Linux style @FilePath@ values (with @\/@ as the path separator).
579+ * "System.FilePath.Windows" manipulates Windows style @FilePath@ values (with either @\\@ or @\/@ as the path separator, and deals with drives).
580+ * "System.FilePath" is an alias for the module appropriate to your platform.
581+ All three modules provide the same API, and the same documentation (calling out differences in the different variants).
585+ System.FilePath System.FilePath.Posix System.FilePath.Windows
588+dynamic-library-dirs:
590+hs-libraries: HSfilepath-1.4.2.1
591+depends: base-4.14.3.0
600+license: BSD-3-Clause
601+maintainer: glasgow-haskell-users@haskell.org
603+homepage: http://www.haskell.org/ghc/
604+synopsis: The GHC API
606+ GHC's functionality can be useful for more things than just
607+ compiling Haskell programs. Important use cases are programs
608+ that analyse (and perhaps transform) Haskell code. Others
609+ include loading Haskell code dynamically in a GHCi-like manner.
610+ For this reason, a lot of GHC's functionality is made available
611+ through this package.
612+category: Development
614+ Annotations ApiAnnotation Ar AsmCodeGen AsmUtils Avail Bag
615+ BasicTypes BinFingerprint BinIface Binary Bitmap BkpSyn BlockId
616+ BlockLayout BooleanFormula BufWrite BuildTyCl ByteCodeAsm
617+ ByteCodeGen ByteCodeInstr ByteCodeItbls ByteCodeLink ByteCodeTypes
618+ CFG CLabel CPrim CSE CallArity Class CliOption ClsInst
619+ CmdLineParser Cmm CmmBuildInfoTables CmmCallConv CmmCommonBlockElim
620+ CmmContFlowOpt CmmExpr CmmImplementSwitchPlans CmmInfo
621+ CmmLayoutStack CmmLex CmmLint CmmLive CmmMachOp CmmMonad CmmNode
622+ CmmOpt CmmParse CmmPipeline CmmProcPoint CmmSink CmmSwitch CmmType
623+ CmmUtils CoAxiom CodeOutput Coercion ConLike Config Constants
624+ Constraint CoreArity CoreFVs CoreLint CoreMap CoreMonad CoreOpt
625+ CorePrep CoreSeq CoreStats CoreSubst CoreSyn CoreTidy CoreToStg
626+ CoreUnfold CoreUtils CostCentre CostCentreState Coverage Ctype
627+ DataCon Debug Debugger Demand Desugar Digraph DmdAnal Dominators
628+ DriverBkp DriverMkDepend DriverPhases DriverPipeline DsArrows
629+ DsBinds DsCCall DsExpr DsForeign DsGRHSs DsListComp DsMeta DsMonad
630+ DsUsage DsUtils Dwarf Dwarf.Constants Dwarf.Types DynFlags
631+ DynamicLoading Elf Encoding EnumSet ErrUtils Exception Exitify
632+ ExtractDocs FV FamInst FamInstEnv FastFunctions FastMutInt
633+ FastString FastStringEnv FieldLabel FileCleanup FileSettings Finder
634+ Fingerprint FiniteMap FlagChecker FloatIn FloatOut ForeignCall
635+ Format FunDeps GHC GHC.Hs GHC.Hs.Binds GHC.Hs.Decls GHC.Hs.Doc
636+ GHC.Hs.Dump GHC.Hs.Expr GHC.Hs.Extension GHC.Hs.ImpExp
637+ GHC.Hs.Instances GHC.Hs.Lit GHC.Hs.Pat GHC.Hs.PlaceHolder
638+ GHC.Hs.Types GHC.Hs.Utils GHC.HsToCore.PmCheck
639+ GHC.HsToCore.PmCheck.Oracle GHC.HsToCore.PmCheck.Ppr
640+ GHC.HsToCore.PmCheck.Types GHC.Platform.AArch64 GHC.Platform.ARM
641+ GHC.Platform.NoRegs GHC.Platform.PPC GHC.Platform.Regs
642+ GHC.Platform.S390X GHC.Platform.SPARC GHC.Platform.X86
643+ GHC.Platform.X86_64 GHC.StgToCmm GHC.StgToCmm.ArgRep
644+ GHC.StgToCmm.Bind GHC.StgToCmm.CgUtils GHC.StgToCmm.Closure
645+ GHC.StgToCmm.DataCon GHC.StgToCmm.Env GHC.StgToCmm.Expr
646+ GHC.StgToCmm.ExtCode GHC.StgToCmm.Foreign GHC.StgToCmm.Heap
647+ GHC.StgToCmm.Hpc GHC.StgToCmm.Layout GHC.StgToCmm.Monad
648+ GHC.StgToCmm.Prim GHC.StgToCmm.Prof GHC.StgToCmm.Ticky
649+ GHC.StgToCmm.Utils GHC.ThToHs GHCi GhcMake GhcMonad GhcNameVersion
650+ GhcPlugins GhcPrelude GraphBase GraphColor GraphOps GraphPpr
651+ HaddockUtils HeaderInfo HieAst HieBin HieDebug HieTypes HieUtils
652+ Hooks Hoopl.Block Hoopl.Collections Hoopl.Dataflow Hoopl.Graph
653+ Hoopl.Label HscMain HscStats HscTypes IOEnv Id IdInfo IfaceEnv
654+ IfaceSyn IfaceType Inst InstEnv Instruction InteractiveEval
655+ InteractiveEvalTypes Json KnownUniques Lexeme Lexer LiberateCase
656+ Linker LinkerTypes ListSetOps Literal Llvm Llvm.AbsSyn
657+ Llvm.MetaData Llvm.PpLlvm Llvm.Types LlvmCodeGen LlvmCodeGen.Base
658+ LlvmCodeGen.CodeGen LlvmCodeGen.Data LlvmCodeGen.Ppr
659+ LlvmCodeGen.Regs LlvmMangler LoadIface Match MatchCon MatchLit
660+ Maybes MkCore MkGraph MkId MkIface Module MonadUtils NCGMonad Name
661+ NameCache NameEnv NameSet NameShape OccName OccurAnal OptCoercion
662+ OrdList Outputable PIC PPC.CodeGen PPC.Cond PPC.Instr PPC.Ppr
663+ PPC.RegInfo PPC.Regs PackageConfig Packages Pair Panic Parser
664+ PatSyn PipelineMonad PlainPanic PlatformConstants Plugins PprBase
665+ PprC PprCmm PprCmmDecl PprCmmExpr PprColour PprCore PprTyThing
666+ Predicate PrelInfo PrelNames PrelRules Pretty PrimOp ProfInit
667+ RdrHsSyn RdrName Reg RegAlloc.Graph.ArchBase RegAlloc.Graph.ArchX86
668+ RegAlloc.Graph.Coalesce RegAlloc.Graph.Main RegAlloc.Graph.Spill
669+ RegAlloc.Graph.SpillClean RegAlloc.Graph.SpillCost
670+ RegAlloc.Graph.Stats RegAlloc.Graph.TrivColorable
671+ RegAlloc.Linear.Base RegAlloc.Linear.FreeRegs
672+ RegAlloc.Linear.JoinToTargets RegAlloc.Linear.Main
673+ RegAlloc.Linear.PPC.FreeRegs RegAlloc.Linear.SPARC.FreeRegs
674+ RegAlloc.Linear.StackMap RegAlloc.Linear.State
675+ RegAlloc.Linear.Stats RegAlloc.Linear.X86.FreeRegs
676+ RegAlloc.Linear.X86_64.FreeRegs RegAlloc.Liveness RegClass RepType
677+ RnBinds RnEnv RnExpr RnFixity RnHsDoc RnModIface RnNames RnPat
678+ RnSource RnSplice RnTypes RnUnbound RnUtils RtClosureInspect Rules
679+ SAT SMRep SPARC.AddrMode SPARC.Base SPARC.CodeGen
680+ SPARC.CodeGen.Amode SPARC.CodeGen.Base SPARC.CodeGen.CondCode
681+ SPARC.CodeGen.Expand SPARC.CodeGen.Gen32 SPARC.CodeGen.Gen64
682+ SPARC.CodeGen.Sanity SPARC.Cond SPARC.Imm SPARC.Instr SPARC.Ppr
683+ SPARC.Regs SPARC.ShortcutJump SPARC.Stack SetLevels Settings
684+ SimplCore SimplEnv SimplMonad SimplStg SimplUtils Simplify
685+ SpecConstr Specialise SrcLoc State StaticPtrTable StgCse StgFVs
686+ StgLiftLams StgLiftLams.Analysis StgLiftLams.LiftM
687+ StgLiftLams.Transformation StgLint StgStats StgSubst StgSyn Stream
688+ StringBuffer SysTools SysTools.BaseDir SysTools.ExtraObj
689+ SysTools.Info SysTools.Process SysTools.Settings SysTools.Tasks
690+ SysTools.Terminal THNames TargetReg TcAnnotations TcArrows
691+ TcBackpack TcBinds TcCanonical TcClassDcl TcDefaults TcDeriv
692+ TcDerivInfer TcDerivUtils TcEnv TcErrors TcEvTerm TcEvidence TcExpr
693+ TcFlatten TcForeign TcGenDeriv TcGenFunctor TcGenGenerics
694+ TcHoleErrors TcHoleFitTypes TcHsSyn TcHsType TcIface TcInstDcls
695+ TcInteract TcMType TcMatches TcOrigin TcPat TcPatSyn TcPluginM
696+ TcRnDriver TcRnExports TcRnMonad TcRnTypes TcRules TcSMonad TcSigs
697+ TcSimplify TcSplice TcTyClsDecls TcTyDecls TcType TcTypeNats
698+ TcTypeable TcUnify TcValidity TidyPgm ToIface ToolSettings TrieMap
699+ TyCoFVs TyCoPpr TyCoRep TyCoSubst TyCoTidy TyCon Type TysPrim
700+ TysWiredIn UnVarGraph UnariseStg Unify UniqDFM UniqDSet UniqFM
701+ UniqMap UniqSet UniqSupply Unique Util Var VarEnv VarSet WorkWrap
702+ WwLib X86.CodeGen X86.Cond X86.Instr X86.Ppr X86.RegInfo X86.Regs
705+dynamic-library-dirs:
707+hs-libraries: HSghc-8.10.7
710+ array-0.5.4.0 base-4.14.3.0 binary-0.8.8.0 bytestring-0.10.12.0
711+ containers-0.6.5.1 deepseq-1.4.4.0 directory-1.3.6.0
712+ filepath-1.4.2.1 ghc-boot-8.10.7 ghc-boot-th-8.10.7 ghc-heap-8.10.7
713+ ghci-8.10.7 hpc-0.6.1.0 integer-gmp-1.0.3.0 process-1.6.13.2
714+ template-haskell-2.16.0.0 terminfo-0.4.1.4 time-1.9.3
715+ transformers-0.5.6.2 unix-2.7.2.2
724+license: BSD-3-Clause
725+maintainer: ghc-devs@haskell.org
726+synopsis: Shared functionality between GHC and its boot libraries
728+ This library is shared between GHC, ghc-pkg, and other boot
730+ A note about "GHC.PackageDb": it only deals with the subset of
731+ the package database that the compiler cares about: modules
732+ paths etc and not package metadata like description, authors
733+ etc. It is thus not a library interface to ghc-pkg and is *not*
734+ suitable for modifying GHC package databases.
735+ The package database format and this library are constructed in
736+ such a way that while ghc-pkg depends on Cabal, the GHC library
737+ and program do not have to depend on Cabal.
741+ GHC.BaseDir GHC.ForeignSrcLang GHC.HandleEncoding
742+ GHC.LanguageExtensions GHC.PackageDb GHC.Platform GHC.Platform.Host
743+ GHC.Serialized GHC.Settings GHC.UniqueSubdir GHC.Version
746+dynamic-library-dirs:
748+hs-libraries: HSghc-boot-8.10.7
750+ base-4.14.3.0 binary-0.8.8.0 bytestring-0.10.12.0
751+ containers-0.6.5.1 directory-1.3.6.0 filepath-1.4.2.1
759+id: ghc-boot-th-8.10.7
760+key: ghc-boot-th-8.10.7
761+license: BSD-3-Clause
762+maintainer: ghc-devs@haskell.org
764+ Shared functionality between GHC and the @template-haskell@
767+ This library contains various bits shared between the @ghc@ and
768+ @template-haskell@ libraries.
769+ This package exists to ensure that @template-haskell@ has a
770+ minimal set of transitive dependencies, since it is intended to
771+ be depended upon by user code.
775+ GHC.ForeignSrcLang.Type GHC.LanguageExtensions.Type GHC.Lexeme
778+dynamic-library-dirs:
780+hs-libraries: HSghc-boot-th-8.10.7
781+depends: base-4.14.3.0
788+id: ghc-compact-0.1.0.0
789+key: ghc-compact-0.1.0.0
790+license: BSD-3-Clause
791+maintainer: libraries@haskell.org
792+synopsis: In memory storage of deeply evaluated data structure
794+ This package provides minimal functionality for working with
795+ "compact regions", which hold a fully evaluated Haskell object graph.
796+ These regions maintain the invariant that no pointers live inside the struct
797+ that point outside it, which ensures efficient garbage collection without
798+ ever reading the structure contents (effectively, it works as a manually
799+ managed "oldest generation" which is never freed until the whole is
801+ Internally, the struct is stored a single contiguous block of memory,
802+ which allows efficient serialization and deserialization of structs
803+ for distributed computing.
806+exposed-modules: GHC.Compact GHC.Compact.Serialized
809+dynamic-library-dirs:
811+hs-libraries: HSghc-compact-0.1.0.0
812+depends: base-4.14.3.0 bytestring-0.10.12.0 ghc-prim-0.6.1
821+license: BSD-3-Clause
822+maintainer: libraries@haskell.org
823+synopsis: Functions for walking GHC's heap
825+ This package provides functions for walking the GHC heap data structures
826+ and retrieving information about those data structures.
830+ GHC.Exts.Heap GHC.Exts.Heap.ClosureTypes GHC.Exts.Heap.Closures
831+ GHC.Exts.Heap.Constants GHC.Exts.Heap.InfoTable
832+ GHC.Exts.Heap.InfoTable.Types GHC.Exts.Heap.InfoTableProf
836+dynamic-library-dirs:
838+hs-libraries: HSghc-heap-8.10.7
839+depends: base-4.14.3.0 ghc-prim-0.6.1 rts
848+license: BSD-3-Clause
849+maintainer: libraries@haskell.org
850+synopsis: GHC primitives
852+ This package contains the primitive types and operations supplied by GHC.
856+ GHC.CString GHC.Classes GHC.Debug GHC.IntWord64 GHC.Magic
857+ GHC.Prim.Ext GHC.PrimopWrappers GHC.Tuple GHC.Types GHC.Prim
860+dynamic-library-dirs:
862+hs-libraries: HSghc-prim-0.6.1
872+license: BSD-3-Clause
873+maintainer: ghc-devs@haskell.org
874+synopsis: The library supporting GHC's interactive interpreter
876+ This library offers interfaces which mediate interactions between the
877+ @ghci@ interactive shell and @iserv@, GHC's out-of-process interpreter
882+ GHCi.BinaryArray GHCi.BreakArray GHCi.CreateBCO GHCi.FFI
883+ GHCi.InfoTable GHCi.Message GHCi.ObjLink GHCi.RemoteTypes
884+ GHCi.ResolvedBCO GHCi.Run GHCi.Signals GHCi.StaticPtrTable GHCi.TH
885+ GHCi.TH.Binary SizedSeq
888+dynamic-library-dirs:
890+hs-libraries: HSghci-8.10.7
893+ array-0.5.4.0 base-4.14.3.0 binary-0.8.8.0 bytestring-0.10.12.0
894+ containers-0.6.5.1 deepseq-1.4.4.0 filepath-1.4.2.1 ghc-boot-8.10.7
895+ ghc-boot-th-8.10.7 ghc-heap-8.10.7 rts template-haskell-2.16.0.0
896+ transformers-0.5.6.2 unix-2.7.2.2
905+license: BSD-3-Clause
906+copyright: (c) Judah Jacobson
907+maintainer: Judah Jacobson <judah.jacobson@gmail.com>
908+author: Judah Jacobson
910+homepage: https://github.com/judah/haskeline
912+ A command-line interface for user input, written in Haskell.
914+ Haskeline provides a user interface for line input in command-line
915+ programs. This library is similar in purpose to readline, but since
916+ it is written in Haskell it is (hopefully) more easily used in other
918+ Haskeline runs both on POSIX-compatible systems and on Windows.
919+category: User Interfaces
922+ System.Console.Haskeline System.Console.Haskeline.Completion
923+ System.Console.Haskeline.History System.Console.Haskeline.IO
924+ System.Console.Haskeline.Internal
926+ System.Console.Haskeline.Backend
927+ System.Console.Haskeline.Backend.WCWidth
928+ System.Console.Haskeline.Command
929+ System.Console.Haskeline.Command.Completion
930+ System.Console.Haskeline.Command.History
931+ System.Console.Haskeline.Command.KillRing
932+ System.Console.Haskeline.Directory System.Console.Haskeline.Emacs
933+ System.Console.Haskeline.InputT System.Console.Haskeline.Key
934+ System.Console.Haskeline.LineState System.Console.Haskeline.Monads
935+ System.Console.Haskeline.Prefs System.Console.Haskeline.Recover
936+ System.Console.Haskeline.RunCommand System.Console.Haskeline.Term
937+ System.Console.Haskeline.Command.Undo System.Console.Haskeline.Vi
938+ System.Console.Haskeline.Backend.Posix
939+ System.Console.Haskeline.Backend.Posix.Encoder
940+ System.Console.Haskeline.Backend.DumbTerm
941+ System.Console.Haskeline.Backend.Terminfo
944+dynamic-library-dirs:
946+hs-libraries: HShaskeline-0.8.2
948+ base-4.14.3.0 bytestring-0.10.12.0 containers-0.6.5.1
949+ directory-1.3.6.0 exceptions-0.10.4 filepath-1.4.2.1
950+ process-1.6.13.2 stm-2.5.0.1 terminfo-0.4.1.4 transformers-0.5.6.2
960+license: BSD-3-Clause
961+maintainer: ghc-devs@haskell.org
963+synopsis: Code Coverage Library for Haskell
965+ This package provides the code coverage library for Haskell.
966+ See <http://www.haskell.org/haskellwiki/Haskell_program_coverage> for more
971+ Trace.Hpc.Mix Trace.Hpc.Reflect Trace.Hpc.Tix Trace.Hpc.Util
974+dynamic-library-dirs:
976+hs-libraries: HShpc-0.6.1.0
978+ base-4.14.3.0 containers-0.6.5.1 deepseq-1.4.4.0 directory-1.3.6.0
979+ filepath-1.4.2.1 time-1.9.3
986+id: integer-gmp-1.0.3.0
987+key: integer-gmp-1.0.3.0
988+license: BSD-3-Clause
989+maintainer: hvr@gnu.org
990+author: Herbert Valerio Riedel
991+synopsis: Integer library based on GMP
993+ This package provides the low-level implementation of the standard
994+ 'Integer' type based on the
995+ <http://gmplib.org/ GNU Multiple Precision Arithmetic Library (GMP)>.
996+ This package provides access to the internal representation of
997+ 'Integer' as well as primitive operations with no proper error
998+ handling, and should only be used directly with the utmost care.
999+category: Numeric, Algebra
1002+ GHC.Integer GHC.Integer.GMP.Internals GHC.Integer.Logarithms
1003+ GHC.Integer.Logarithms.Internals
1004+hidden-modules: GHC.Integer.Type
1007+dynamic-library-dirs:
1009+hs-libraries: HSinteger-gmp-1.0.3.0
1010+extra-libraries: gmp
1012+depends: ghc-prim-0.6.1
1020+key: libiserv-8.10.7
1021+license: BSD-3-Clause
1025+synopsis: Provides shared functionality between iserv and iserv-proxy
1026+category: Development
1028+exposed-modules: GHCi.Utils Lib
1031+dynamic-library-dirs:
1033+hs-libraries: HSlibiserv-8.10.7
1035+ base-4.14.3.0 binary-0.8.8.0 bytestring-0.10.12.0
1036+ containers-0.6.5.1 deepseq-1.4.4.0 ghci-8.10.7 unix-2.7.2.2
1045+license: BSD-3-Clause
1046+maintainer: Edward Kmett <ekmett@gmail.com>
1048+homepage: http://github.com/haskell/mtl
1049+synopsis: Monad classes, using functional dependencies
1051+ Monad classes using functional dependencies, with instances
1052+ for various monad transformers, inspired by the paper
1053+ /Functional Programming with Overloading and Higher-Order Polymorphism/,
1054+ by Mark P Jones, in /Advanced School of Functional Programming/, 1995
1055+ (<http://web.cecs.pdx.edu/~mpj/pubs/springschool.html>).
1059+ Control.Monad.Cont Control.Monad.Cont.Class Control.Monad.Error
1060+ Control.Monad.Error.Class Control.Monad.Except
1061+ Control.Monad.Identity Control.Monad.List Control.Monad.RWS
1062+ Control.Monad.RWS.Class Control.Monad.RWS.Lazy
1063+ Control.Monad.RWS.Strict Control.Monad.Reader
1064+ Control.Monad.Reader.Class Control.Monad.State
1065+ Control.Monad.State.Class Control.Monad.State.Lazy
1066+ Control.Monad.State.Strict Control.Monad.Trans Control.Monad.Writer
1067+ Control.Monad.Writer.Class Control.Monad.Writer.Lazy
1068+ Control.Monad.Writer.Strict
1071+dynamic-library-dirs:
1073+hs-libraries: HSmtl-2.2.2
1074+depends: base-4.14.3.0 transformers-0.5.6.2
1082+key: parsec-3.1.14.0
1083+license: BSD-3-Clause
1084+maintainer: Herbert Valerio Riedel <hvr@gnu.org>
1086+ Daan Leijen <daan@microsoft.com>, Paolo Martini <paolo@nemail.it>, Antoine Latter <aslatter@gmail.com>
1087+homepage: https://github.com/haskell/parsec
1088+synopsis: Monadic parser combinators
1090+ Parsec is designed from scratch as an industrial-strength parser
1091+ library. It is simple, safe, well documented (on the package
1092+ homepage), has extensive libraries, good error messages,
1093+ and is fast. It is defined as a monad transformer that can be
1094+ stacked on arbitrary monads, and it is also parametric in the
1096+ The main entry point is the "Text.Parsec" module which provides
1097+ defaults for parsing 'Char'acter data.
1098+ The "Text.ParserCombinators.Parsec" module hierarchy contains
1099+ the legacy @parsec-2@ API and may be removed at some point in
1104+ Text.Parsec Text.Parsec.ByteString Text.Parsec.ByteString.Lazy
1105+ Text.Parsec.Char Text.Parsec.Combinator Text.Parsec.Error
1106+ Text.Parsec.Expr Text.Parsec.Language Text.Parsec.Perm
1107+ Text.Parsec.Pos Text.Parsec.Prim Text.Parsec.String
1108+ Text.Parsec.Text Text.Parsec.Text.Lazy Text.Parsec.Token
1109+ Text.ParserCombinators.Parsec Text.ParserCombinators.Parsec.Char
1110+ Text.ParserCombinators.Parsec.Combinator
1111+ Text.ParserCombinators.Parsec.Error
1112+ Text.ParserCombinators.Parsec.Expr
1113+ Text.ParserCombinators.Parsec.Language
1114+ Text.ParserCombinators.Parsec.Perm
1115+ Text.ParserCombinators.Parsec.Pos
1116+ Text.ParserCombinators.Parsec.Prim
1117+ Text.ParserCombinators.Parsec.Token
1120+dynamic-library-dirs:
1122+hs-libraries: HSparsec-3.1.14.0
1124+ base-4.14.3.0 bytestring-0.10.12.0 mtl-2.2.2 text-1.2.4.1
1133+license: BSD-3-Clause
1134+maintainer: David Terei <code@davidterei.com>
1136+homepage: http://github.com/haskell/pretty
1137+synopsis: Pretty-printing library
1139+ This package contains a pretty-printing library, a set of API's
1140+ that provides a way to easily print out text in a consistent
1141+ format of your choosing. This is useful for compilers and related
1143+ This library was originally designed by John Hughes's and has since
1144+ been heavily modified by Simon Peyton Jones.
1148+ Text.PrettyPrint Text.PrettyPrint.Annotated
1149+ Text.PrettyPrint.Annotated.HughesPJ
1150+ Text.PrettyPrint.Annotated.HughesPJClass Text.PrettyPrint.HughesPJ
1151+ Text.PrettyPrint.HughesPJClass
1154+dynamic-library-dirs:
1156+hs-libraries: HSpretty-1.1.3.6
1157+depends: base-4.14.3.0 deepseq-1.4.4.0 ghc-prim-0.6.1
1164+id: process-1.6.13.2
1165+key: process-1.6.13.2
1166+license: BSD-3-Clause
1167+maintainer: libraries@haskell.org
1168+synopsis: Process libraries
1170+ This package contains libraries for dealing with system processes.
1171+ The typed-process package is a more recent take on a process API,
1172+ which uses this package internally. It features better binary
1173+ support, easier concurrency, and a more composable API. You can
1174+ read more about it at
1175+ <https://github.com/fpco/typed-process/#readme>.
1178+exposed-modules: System.Cmd System.Process System.Process.Internals
1179+hidden-modules: System.Process.Common System.Process.Posix
1182+dynamic-library-dirs:
1184+hs-libraries: HSprocess-1.6.13.2
1186+includes: runProcess.h
1188+ base-4.14.3.0 deepseq-1.4.4.0 directory-1.3.6.0 filepath-1.4.2.1
1198+license: BSD-3-Clause
1199+maintainer: libraries@haskell.org
1200+homepage: https://wiki.haskell.org/Software_transactional_memory
1201+synopsis: Software Transactional Memory
1203+ Software Transactional Memory, or STM, is an abstraction for
1204+ concurrent communication. The main benefits of STM are
1205+ /composability/ and /modularity/. That is, using STM you can write
1206+ concurrent abstractions that can be easily composed with any other
1207+ abstraction built using STM, without exposing the details of how
1208+ your abstraction ensures safety. This is typically not the case
1209+ with other forms of concurrent communication, such as locks or
1211+category: Concurrency
1214+ Control.Concurrent.STM Control.Concurrent.STM.TArray
1215+ Control.Concurrent.STM.TBQueue Control.Concurrent.STM.TChan
1216+ Control.Concurrent.STM.TMVar Control.Concurrent.STM.TQueue
1217+ Control.Concurrent.STM.TSem Control.Concurrent.STM.TVar
1219+hidden-modules: Control.Sequential.STM
1222+dynamic-library-dirs:
1224+hs-libraries: HSstm-2.5.0.1
1225+depends: array-0.5.4.0 base-4.14.3.0
1229+name: template-haskell
1232+id: template-haskell-2.16.0.0
1233+key: template-haskell-2.16.0.0
1234+license: BSD-3-Clause
1235+maintainer: libraries@haskell.org
1236+synopsis: Support library for Template Haskell
1238+ This package provides modules containing facilities for manipulating
1239+ Haskell source code using Template Haskell.
1240+ See <http://www.haskell.org/haskellwiki/Template_Haskell> for more
1242+category: Template Haskell
1245+ Language.Haskell.TH Language.Haskell.TH.LanguageExtensions
1246+ Language.Haskell.TH.Lib Language.Haskell.TH.Lib.Internal
1247+ Language.Haskell.TH.Ppr Language.Haskell.TH.PprLib
1248+ Language.Haskell.TH.Quote Language.Haskell.TH.Syntax
1249+hidden-modules: Language.Haskell.TH.Lib.Map
1252+dynamic-library-dirs:
1254+hs-libraries: HStemplate-haskell-2.16.0.0
1256+ base-4.14.3.0 ghc-boot-th-8.10.7 ghc-prim-0.6.1 pretty-1.1.3.6
1263+id: terminfo-0.4.1.4
1264+key: terminfo-0.4.1.4
1265+license: BSD-3-Clause
1266+copyright: (c) Judah Jacobson
1267+maintainer: Judah Jacobson <judah.jacobson@gmail.com>
1268+author: Judah Jacobson
1270+homepage: https://github.com/judah/terminfo
1271+synopsis: Haskell bindings to the terminfo library.
1273+ This library provides an interface to the terminfo database (via bindings to the
1274+ curses library). <http://en.wikipedia.org/wiki/Terminfo Terminfo> allows POSIX
1275+ systems to interact with a variety of terminals using a standard set of capabilities.
1276+category: User Interfaces
1279+ System.Console.Terminfo System.Console.Terminfo.Base
1280+ System.Console.Terminfo.Color System.Console.Terminfo.Cursor
1281+ System.Console.Terminfo.Edit System.Console.Terminfo.Effects
1282+ System.Console.Terminfo.Keys
1285+dynamic-library-dirs:
1287+hs-libraries: HSterminfo-0.4.1.4
1288+extra-libraries: tinfo
1289+depends: base-4.14.3.0
1298+license: BSD-2-Clause
1299+copyright: 2009-2011 Bryan O'Sullivan, 2008-2009 Tom Harper
1301+ Bryan O'Sullivan <bos@serpentine.com>, Herbert Valerio Riedel <hvr@gnu.org>
1302+author: Bryan O'Sullivan <bos@serpentine.com>
1303+homepage: https://github.com/haskell/text
1304+synopsis: An efficient packed Unicode text type.
1306+ An efficient packed, immutable Unicode text type (both strict and
1307+ lazy), with a powerful loop fusion optimization framework.
1308+ The 'Text' type represents Unicode character strings, in a time and
1309+ space-efficient manner. This package provides text processing
1310+ capabilities that are optimized for performance critical use, both
1311+ in terms of large data quantities and high speed.
1312+ The 'Text' type provides character-encoding, type-safe case
1313+ conversion via whole-string case conversion functions (see "Data.Text").
1314+ It also provides a range of functions for converting 'Text' values to
1315+ and from 'ByteStrings', using several standard encodings
1316+ (see "Data.Text.Encoding").
1317+ Efficient locale-sensitive support for text IO is also supported
1318+ (see "Data.Text.IO").
1319+ These modules are intended to be imported qualified, to avoid name
1320+ clashes with Prelude functions, e.g.
1321+ > import qualified Data.Text as T
1323+ To use an extended and very rich family of functions for working
1324+ with Unicode text (including normalization, regular expressions,
1325+ non-standard encodings, text breaking, and locales), see
1326+ the [text-icu package](https://hackage.haskell.org/package/text-icu)
1327+ based on the well-respected and liberally
1328+ licensed [ICU library](http://site.icu-project.org/).
1329+ == Internal Representation: UTF-16 vs. UTF-8
1330+ Currently the @text@ library uses UTF-16 as its internal representation
1331+ which is [neither a fixed-width nor always the most dense representation](http://utf8everywhere.org/)
1332+ for Unicode text. We're currently investigating the feasibility
1333+ of [changing Text's internal representation to UTF-8](https://github.com/text-utf8)
1334+ and if you need such a 'Text' type right now you might be interested in using the spin-off
1335+ packages <https://hackage.haskell.org/package/text-utf8 text-utf8> and
1336+ <https://hackage.haskell.org/package/text-short text-short>.
1337+category: Data, Text
1340+ Data.Text Data.Text.Array Data.Text.Encoding
1341+ Data.Text.Encoding.Error Data.Text.Foreign Data.Text.IO
1342+ Data.Text.Internal Data.Text.Internal.Builder
1343+ Data.Text.Internal.Builder.Functions
1344+ Data.Text.Internal.Builder.Int.Digits
1345+ Data.Text.Internal.Builder.RealFloat.Functions
1346+ Data.Text.Internal.ByteStringCompat
1347+ Data.Text.Internal.Encoding.Fusion
1348+ Data.Text.Internal.Encoding.Fusion.Common
1349+ Data.Text.Internal.Encoding.Utf16 Data.Text.Internal.Encoding.Utf32
1350+ Data.Text.Internal.Encoding.Utf8 Data.Text.Internal.Functions
1351+ Data.Text.Internal.Fusion Data.Text.Internal.Fusion.CaseMapping
1352+ Data.Text.Internal.Fusion.Common Data.Text.Internal.Fusion.Size
1353+ Data.Text.Internal.Fusion.Types Data.Text.Internal.IO
1354+ Data.Text.Internal.Lazy Data.Text.Internal.Lazy.Encoding.Fusion
1355+ Data.Text.Internal.Lazy.Fusion Data.Text.Internal.Lazy.Search
1356+ Data.Text.Internal.Private Data.Text.Internal.Read
1357+ Data.Text.Internal.Search Data.Text.Internal.Unsafe
1358+ Data.Text.Internal.Unsafe.Char Data.Text.Internal.Unsafe.Shift
1359+ Data.Text.Lazy Data.Text.Lazy.Builder Data.Text.Lazy.Builder.Int
1360+ Data.Text.Lazy.Builder.RealFloat Data.Text.Lazy.Encoding
1361+ Data.Text.Lazy.IO Data.Text.Lazy.Internal Data.Text.Lazy.Read
1362+ Data.Text.Read Data.Text.Unsafe
1363+hidden-modules: Data.Text.Show
1366+dynamic-library-dirs:
1368+hs-libraries: HStext-1.2.4.1
1370+ array-0.5.4.0 base-4.14.3.0 binary-0.8.8.0 bytestring-0.10.12.0
1371+ deepseq-1.4.4.0 ghc-prim-0.6.1 integer-gmp-1.0.3.0
1372+ template-haskell-2.16.0.0
1381+license: BSD-3-Clause
1382+maintainer: <ashley@semantic.org>
1383+author: Ashley Yakeley
1385+homepage: https://github.com/haskell/time
1386+synopsis: A time library
1387+description: Time, clocks and calendars
1391+ Data.Time Data.Time.Calendar Data.Time.Calendar.Easter
1392+ Data.Time.Calendar.Julian Data.Time.Calendar.MonthDay
1393+ Data.Time.Calendar.OrdinalDate Data.Time.Calendar.WeekDate
1394+ Data.Time.Clock Data.Time.Clock.POSIX Data.Time.Clock.System
1395+ Data.Time.Clock.TAI Data.Time.Format Data.Time.Format.ISO8601
1396+ Data.Time.Format.Internal Data.Time.LocalTime
1398+ Data.Format Data.Time.Calendar.Private Data.Time.Calendar.Days
1399+ Data.Time.Calendar.Gregorian Data.Time.Calendar.CalendarDiffDays
1400+ Data.Time.Calendar.Week Data.Time.Calendar.JulianYearDay
1401+ Data.Time.Clock.Internal.DiffTime
1402+ Data.Time.Clock.Internal.AbsoluteTime
1403+ Data.Time.Clock.Internal.NominalDiffTime
1404+ Data.Time.Clock.Internal.POSIXTime
1405+ Data.Time.Clock.Internal.UniversalTime
1406+ Data.Time.Clock.Internal.SystemTime
1407+ Data.Time.Clock.Internal.UTCTime Data.Time.Clock.Internal.CTimeval
1408+ Data.Time.Clock.Internal.CTimespec Data.Time.Clock.Internal.UTCDiff
1409+ Data.Time.LocalTime.Internal.TimeZone
1410+ Data.Time.LocalTime.Internal.TimeOfDay
1411+ Data.Time.LocalTime.Internal.CalendarDiffTime
1412+ Data.Time.LocalTime.Internal.LocalTime
1413+ Data.Time.LocalTime.Internal.ZonedTime Data.Time.Format.Parse
1414+ Data.Time.Format.Locale Data.Time.Format.Format.Class
1415+ Data.Time.Format.Format.Instances Data.Time.Format.Parse.Class
1416+ Data.Time.Format.Parse.Instances
1419+dynamic-library-dirs:
1421+hs-libraries: HStime-1.9.3
1423+depends: base-4.14.3.0 deepseq-1.4.4.0
1430+id: transformers-0.5.6.2
1431+key: transformers-0.5.6.2
1432+license: BSD-3-Clause
1433+maintainer: Ross Paterson <R.Paterson@city.ac.uk>
1434+author: Andy Gill, Ross Paterson
1435+synopsis: Concrete functor and monad transformers
1437+ A portable library of functor and monad transformers, inspired by
1439+ * \"Functional Programming with Overloading and Higher-Order
1440+ Polymorphism\", by Mark P Jones,
1441+ in /Advanced School of Functional Programming/, 1995
1442+ (<http://web.cecs.pdx.edu/~mpj/pubs/springschool.html>).
1443+ This package contains:
1444+ * the monad transformer class (in "Control.Monad.Trans.Class")
1445+ * concrete functor and monad transformers, each with associated
1446+ operations and functions to lift operations associated with other
1448+ The package can be used on its own in portable Haskell code, in
1449+ which case operations need to be manually lifted through transformer
1450+ stacks (see "Control.Monad.Trans.Class" for some examples).
1451+ Alternatively, it can be used with the non-portable monad classes in
1452+ the @mtl@ or @monads-tf@ packages, which automatically lift operations
1453+ introduced by monad transformers through other transformers.
1457+ Control.Applicative.Backwards Control.Applicative.Lift
1458+ Control.Monad.Signatures Control.Monad.Trans.Accum
1459+ Control.Monad.Trans.Class Control.Monad.Trans.Cont
1460+ Control.Monad.Trans.Error Control.Monad.Trans.Except
1461+ Control.Monad.Trans.Identity Control.Monad.Trans.List
1462+ Control.Monad.Trans.Maybe Control.Monad.Trans.RWS
1463+ Control.Monad.Trans.RWS.CPS Control.Monad.Trans.RWS.Lazy
1464+ Control.Monad.Trans.RWS.Strict Control.Monad.Trans.Reader
1465+ Control.Monad.Trans.Select Control.Monad.Trans.State
1466+ Control.Monad.Trans.State.Lazy Control.Monad.Trans.State.Strict
1467+ Control.Monad.Trans.Writer Control.Monad.Trans.Writer.CPS
1468+ Control.Monad.Trans.Writer.Lazy Control.Monad.Trans.Writer.Strict
1469+ Data.Functor.Constant Data.Functor.Reverse
1472+dynamic-library-dirs:
1474+hs-libraries: HStransformers-0.5.6.2
1475+depends: base-4.14.3.0
1484+license: BSD-3-Clause
1485+maintainer: libraries@haskell.org
1486+homepage: https://github.com/haskell/unix
1487+synopsis: POSIX functionality
1489+ This package gives you access to the set of operating system
1490+ services standardised by
1491+ <http://pubs.opengroup.org/onlinepubs/9699919799/ POSIX.1-2008>
1492+ (or the IEEE Portable Operating System Interface for Computing
1493+ Environments - IEEE Std. 1003.1).
1494+ The package is not supported under Windows.
1498+ System.Posix System.Posix.ByteString
1499+ System.Posix.ByteString.FilePath System.Posix.Directory
1500+ System.Posix.Directory.ByteString System.Posix.DynamicLinker
1501+ System.Posix.DynamicLinker.ByteString
1502+ System.Posix.DynamicLinker.Module
1503+ System.Posix.DynamicLinker.Module.ByteString
1504+ System.Posix.DynamicLinker.Prim System.Posix.Env
1505+ System.Posix.Env.ByteString System.Posix.Error System.Posix.Fcntl
1506+ System.Posix.Files System.Posix.Files.ByteString System.Posix.IO
1507+ System.Posix.IO.ByteString System.Posix.Process
1508+ System.Posix.Process.ByteString System.Posix.Process.Internals
1509+ System.Posix.Resource System.Posix.Semaphore System.Posix.SharedMem
1510+ System.Posix.Signals System.Posix.Signals.Exts System.Posix.Temp
1511+ System.Posix.Temp.ByteString System.Posix.Terminal
1512+ System.Posix.Terminal.ByteString System.Posix.Time
1513+ System.Posix.Unistd System.Posix.User
1515+ System.Posix.Directory.Common System.Posix.DynamicLinker.Common
1516+ System.Posix.Files.Common System.Posix.IO.Common
1517+ System.Posix.Process.Common System.Posix.Terminal.Common
1520+dynamic-library-dirs:
1522+hs-libraries: HSunix-2.7.2.2
1524+includes: HsUnix.h execvpe.h
1525+depends: base-4.14.3.0 bytestring-0.10.12.0 time-1.9.3
1532+id: xhtml-3000.2.2.1
1533+key: xhtml-3000.2.2.1
1534+license: BSD-3-Clause
1536+ Bjorn Bringert 2004-2006, Andy Gill and the Oregon
1537+ Graduate Institute of Science and Technology, 1999-2001
1538+maintainer: Chris Dornan <chris@chrisdornan.com>
1539+author: Bjorn Bringert
1541+homepage: https://github.com/haskell/xhtml
1542+synopsis: An XHTML combinator library
1544+ This package provides combinators for producing
1545+ XHTML 1.0, including the Strict, Transitional and
1547+category: Web, XML, Pretty Printer
1550+ Text.XHtml Text.XHtml.Debug Text.XHtml.Frameset Text.XHtml.Strict
1551+ Text.XHtml.Table Text.XHtml.Transitional
1553+ Text.XHtml.Strict.Attributes Text.XHtml.Strict.Elements
1554+ Text.XHtml.Frameset.Attributes Text.XHtml.Frameset.Elements
1555+ Text.XHtml.Transitional.Attributes Text.XHtml.Transitional.Elements
1556+ Text.XHtml.BlockTable Text.XHtml.Extras Text.XHtml.Internals
1559+dynamic-library-dirs:
1561+hs-libraries: HSxhtml-3000.2.2.1
1562+depends: base-4.14.3.0
1571+license: BSD-3-Clause
1572+maintainer: glasgow-haskell-users@haskell.org
1576+extra-libraries: m dl ffi
1580+ "-Wl,-u,_base_GHCziTopHandler_runIO_closure"
1581+ "-Wl,-u,_base_GHCziTopHandler_runNonIO_closure"
1582+ "-Wl,-u,_ghczmprim_GHCziTuple_Z0T_closure"
1583+ "-Wl,-u,_ghczmprim_GHCziTypes_True_closure"
1584+ "-Wl,-u,_ghczmprim_GHCziTypes_False_closure"
1585+ "-Wl,-u,_base_GHCziPack_unpackCString_closure"
1586+ "-Wl,-u,_base_GHCziWeak_runFinalizzerBatch_closure"
1587+ "-Wl,-u,_base_GHCziIOziException_stackOverflow_closure"
1588+ "-Wl,-u,_base_GHCziIOziException_heapOverflow_closure"
1589+ "-Wl,-u,_base_GHCziIOziException_allocationLimitExceeded_closure"
1590+ "-Wl,-u,_base_GHCziIOziException_blockedIndefinitelyOnMVar_closure"
1591+ "-Wl,-u,_base_GHCziIOziException_blockedIndefinitelyOnSTM_closure"
1592+ "-Wl,-u,_base_GHCziIOziException_cannotCompactFunction_closure"
1593+ "-Wl,-u,_base_GHCziIOziException_cannotCompactPinned_closure"
1594+ "-Wl,-u,_base_GHCziIOziException_cannotCompactMutable_closure"
1595+ "-Wl,-u,_base_ControlziExceptionziBase_absentSumFieldError_closure"
1596+ "-Wl,-u,_base_ControlziExceptionziBase_nonTermination_closure"
1597+ "-Wl,-u,_base_ControlziExceptionziBase_nestedAtomically_closure"
1598+ "-Wl,-u,_base_GHCziEventziThread_blockedOnBadFD_closure"
1599+ "-Wl,-u,_base_GHCziConcziSync_runSparks_closure"
1600+ "-Wl,-u,_base_GHCziConcziIO_ensureIOManagerIsRunning_closure"
1601+ "-Wl,-u,_base_GHCziConcziIO_ioManagerCapabilitiesChanged_closure"
1602+ "-Wl,-u,_base_GHCziConcziSignal_runHandlersPtr_closure"
1603+ "-Wl,-u,_base_GHCziTopHandler_flushStdHandles_closure"
1604+ "-Wl,-u,_base_GHCziTopHandler_runMainIO_closure"
1605+ "-Wl,-u,_ghczmprim_GHCziTypes_Czh_con_info"
1606+ "-Wl,-u,_ghczmprim_GHCziTypes_Izh_con_info"
1607+ "-Wl,-u,_ghczmprim_GHCziTypes_Fzh_con_info"
1608+ "-Wl,-u,_ghczmprim_GHCziTypes_Dzh_con_info"
1609+ "-Wl,-u,_ghczmprim_GHCziTypes_Wzh_con_info"
1610+ "-Wl,-u,_base_GHCziPtr_Ptr_con_info"
1611+ "-Wl,-u,_base_GHCziPtr_FunPtr_con_info"
1612+ "-Wl,-u,_base_GHCziInt_I8zh_con_info"
1613+ "-Wl,-u,_base_GHCziInt_I16zh_con_info"
1614+ "-Wl,-u,_base_GHCziInt_I32zh_con_info"
1615+ "-Wl,-u,_base_GHCziInt_I64zh_con_info"
1616+ "-Wl,-u,_base_GHCziWord_W8zh_con_info"
1617+ "-Wl,-u,_base_GHCziWord_W16zh_con_info"
1618+ "-Wl,-u,_base_GHCziWord_W32zh_con_info"
1619+ "-Wl,-u,_base_GHCziWord_W64zh_con_info"
1620+ "-Wl,-u,_base_GHCziStable_StablePtr_con_info"
1621+ "-Wl,-u,_hs_atomic_add8" "-Wl,-u,_hs_atomic_add16"
1622+ "-Wl,-u,_hs_atomic_add32" "-Wl,-u,_hs_atomic_add64"
1623+ "-Wl,-u,_hs_atomic_sub8" "-Wl,-u,_hs_atomic_sub16"
1624+ "-Wl,-u,_hs_atomic_sub32" "-Wl,-u,_hs_atomic_sub64"
1625+ "-Wl,-u,_hs_atomic_and8" "-Wl,-u,_hs_atomic_and16"
1626+ "-Wl,-u,_hs_atomic_and32" "-Wl,-u,_hs_atomic_and64"
1627+ "-Wl,-u,_hs_atomic_nand8" "-Wl,-u,_hs_atomic_nand16"
1628+ "-Wl,-u,_hs_atomic_nand32" "-Wl,-u,_hs_atomic_nand64"
1629+ "-Wl,-u,_hs_atomic_or8" "-Wl,-u,_hs_atomic_or16"
1630+ "-Wl,-u,_hs_atomic_or32" "-Wl,-u,_hs_atomic_or64"
1631+ "-Wl,-u,_hs_atomic_xor8" "-Wl,-u,_hs_atomic_xor16"
1632+ "-Wl,-u,_hs_atomic_xor32" "-Wl,-u,_hs_atomic_xor64"
1633+ "-Wl,-u,_hs_cmpxchg8" "-Wl,-u,_hs_cmpxchg16" "-Wl,-u,_hs_cmpxchg32"
1634+ "-Wl,-u,_hs_cmpxchg64" "-Wl,-u,_hs_atomicread8"
1635+ "-Wl,-u,_hs_atomicread16" "-Wl,-u,_hs_atomicread32"
1636+ "-Wl,-u,_hs_atomicread64" "-Wl,-u,_hs_atomicwrite8"
1637+ "-Wl,-u,_hs_atomicwrite16" "-Wl,-u,_hs_atomicwrite32"
1638+ "-Wl,-u,_hs_atomicwrite64" "-Wl,-search_paths_first"
1639+ "-Wl,-U,___darwin_check_fd_set_overflow"
materialized/dummy-ghc/ghc-8.10.7-aarch64-darwin/ghc-pkg/versionnew file+1
@@ -0,0 +1 @@
1+GHC package manager version 8.10.7
materialized/dummy-ghc/ghc-8.10.7-aarch64-darwin/ghc/infonew file+73
@@ -0,0 +1,73 @@
1+ [("Project name","The Glorious Glasgow Haskell Compilation System")
2+ ,("GCC extra via C opts","")
3+ ,("C compiler command","clang")
4+ ,("C compiler flags","")
5+ ,("C++ compiler flags","")
6+ ,("C compiler link flags","")
7+ ,("C compiler supports -no-pie","NO")
8+ ,("Haskell CPP command","clang")
9+ ,("Haskell CPP flags","-E -undef -traditional -Wno-invalid-pp-token -Wno-unicode -Wno-trigraphs")
12+ ,("ld supports compact unwind","YES")
13+ ,("ld supports build-id","NO")
14+ ,("ld supports filelist","YES")
15+ ,("ld is GNU ld","NO")
16+ ,("Merge objects command","ld")
17+ ,("Merge objects flags","-r")
20+ ,("ar supports at file","NO")
21+ ,("ranlib command","ranlib")
22+ ,("otool command","otool")
23+ ,("install_name_tool command","install_name_tool")
24+ ,("touch command","touch")
25+ ,("dllwrap command","/bin/false")
26+ ,("windres command","/bin/false")
27+ ,("libtool command","libtool")
28+ ,("cross compiling","NO")
29+ ,("target platform string","aarch64-apple-darwin")
30+ ,("target os","OSDarwin")
31+ ,("target arch","ArchAArch64")
32+ ,("target word size","8")
33+ ,("target has GNU nonexec stack","NO")
34+ ,("target has .ident directive","YES")
35+ ,("target has subsections via symbols","NO")
36+ ,("target has RTS linker","YES")
37+ ,("Unregisterised","NO")
38+ ,("LLVM target","arm64-apple-darwin")
39+ ,("LLVM clang command","clang")
40+ ,("integer library","integer-gmp")
41+ ,("Use interpreter","YES")
42+ ,("Use native code generator","NO")
43+ ,("Support SMP","YES")
44+ ,("RTS ways","l debug thr thr_debug thr_l thr_p dyn debug_dyn thr_dyn thr_debug_dyn l_dyn thr_l_dyn thr_debug_p debug_p")
45+ ,("Tables next to code","YES")
46+ ,("Leading underscore","YES")
47+ ,("Use LibFFI","YES")
48+ ,("Use Threads","YES")
49+ ,("Use Debugging","NO")
50+ ,("RTS expects libdw","NO")
51+ ,("Project version","8.10.7")
52+ ,("Project Git commit id","1f02b7430b2fbab403d7ffdde9cfd006e884678e")
53+ ,("Booter version","8.10.7")
55+ ,("Build platform","aarch64-apple-darwin")
56+ ,("Host platform","aarch64-apple-darwin")
57+ ,("Target platform","aarch64-apple-darwin")
58+ ,("Have interpreter","YES")
59+ ,("Object splitting supported","NO")
60+ ,("Have native code generator","NO")
61+ ,("Support dynamic-too","YES")
62+ ,("Support parallel --make","YES")
63+ ,("Support reexported-modules","YES")
64+ ,("Support thinning and renaming package flags","YES")
65+ ,("Support Backpack","YES")
66+ ,("Requires unified installed package IDs","YES")
67+ ,("Uses package keys","YES")
68+ ,("Uses unit IDs","YES")
69+ ,("Dynamic by default","NO")
70+ ,("GHC Dynamic","YES")
71+ ,("GHC Profiled","NO")
materialized/dummy-ghc/ghc-8.10.7-aarch64-darwin/ghc/numeric-versionnew file+1
materialized/dummy-ghc/ghc-8.10.7-aarch64-darwin/ghc/supported-languagesnew file+255
@@ -0,0 +1,255 @@
9+NoAlternativeLayoutRule
10+AlternativeLayoutRuleTransitional
11+NoAlternativeLayoutRuleTransitional
26+ConstrainedClassMethods
27+NoConstrainedClassMethods
54+DisambiguateRecordFields
55+NoDisambiguateRecordFields
63+NoDuplicateRecordFields
70+ExistentialQuantification
71+NoExistentialQuantification
77+NoExtendedDefaultRules
82+ForeignFunctionInterface
83+NoForeignFunctionInterface
84+FunctionalDependencies
85+NoFunctionalDependencies
91+NoGHCForeignImportPrim
92+GeneralizedNewtypeDeriving
93+NoGeneralizedNewtypeDeriving
94+GeneralisedNewtypeDeriving
95+NoGeneralisedNewtypeDeriving
101+NoImportQualifiedPost
105+NoIncoherentInstances
106+TypeFamilyDependencies
107+NoTypeFamilyDependencies
121+NoLiberalTypeSynonyms
125+NoMonadComprehensions
127+NoMonadFailDesugaring
132+MonomorphismRestriction
133+NoMonomorphismRestriction
134+MultiParamTypeClasses
135+NoMultiParamTypeClasses
150+NondecreasingIndentation
151+NoNondecreasingIndentation
157+NoOverlappingInstances
170+PartialTypeSignatures
171+NoPartialTypeSignatures
180+PolymorphicComponents
181+NoPolymorphicComponents
182+QuantifiedConstraints
183+NoQuantifiedConstraints
207+NoScopedTypeVariables
220+TemplateHaskellQuotes
221+NoTemplateHaskellQuotes
222+StandaloneKindSignatures
223+NoStandaloneKindSignatures
224+TraditionalRecordSyntax
225+NoTraditionalRecordSyntax
239+NoTypeSynonymInstances
245+NoUndecidableInstances
246+UndecidableSuperClasses
247+NoUndecidableSuperClasses
materialized/dummy-ghc/ghc-8.10.7-aarch64-darwin/ghc/versionnew file+1
@@ -0,0 +1 @@
1+The Glorious Glasgow Haskell Compilation System, version 8.10.7
materialized/dummy-ghc/ghc-8.10.7-aarch64-linux/ghc-pkg/dump-globalnew file+1638
This diff is too big to show here.
materialized/dummy-ghc/ghc-8.10.7-aarch64-linux/ghc-pkg/versionnew file+1
This diff is too big to show here.
materialized/dummy-ghc/ghc-8.10.7-aarch64-linux/ghc/infonew file+73
This diff is too big to show here.
materialized/dummy-ghc/ghc-8.10.7-aarch64-linux/ghc/numeric-versionnew file+1
This diff is too big to show here.
materialized/dummy-ghc/ghc-8.10.7-aarch64-linux/ghc/supported-languagesnew file+255
This diff is too big to show here.
materialized/dummy-ghc/ghc-8.10.7-aarch64-linux/ghc/versionnew file+1
This diff is too big to show here.
materialized/dummy-ghc/ghc-8.10.7-x86_64-darwin/ghc-pkg/dump-globalnew file+1639
This diff is too big to show here.
materialized/dummy-ghc/ghc-8.10.7-x86_64-darwin/ghc-pkg/versionnew file+1
This diff is too big to show here.
materialized/dummy-ghc/ghc-8.10.7-x86_64-darwin/ghc/infonew file+75
This diff is too big to show here.
materialized/dummy-ghc/ghc-8.10.7-x86_64-darwin/ghc/numeric-versionnew file+1
This diff is too big to show here.
materialized/dummy-ghc/ghc-8.10.7-x86_64-darwin/ghc/supported-languagesnew file+255
This diff is too big to show here.
materialized/dummy-ghc/ghc-8.10.7-x86_64-darwin/ghc/versionnew file+1
This diff is too big to show here.
materialized/dummy-ghc/ghc-8.10.7-x86_64-linux/ghc-pkg/dump-globalnew file+1638
This diff is too big to show here.
materialized/dummy-ghc/ghc-8.10.7-x86_64-linux/ghc-pkg/versionnew file+1
This diff is too big to show here.
materialized/dummy-ghc/ghc-8.10.7-x86_64-linux/ghc/infonew file+75
This diff is too big to show here.
materialized/dummy-ghc/ghc-8.10.7-x86_64-linux/ghc/numeric-versionnew file+1
This diff is too big to show here.
materialized/dummy-ghc/ghc-8.10.7-x86_64-linux/ghc/supported-languagesnew file+255
This diff is too big to show here.
materialized/dummy-ghc/ghc-8.10.7-x86_64-linux/ghc/versionnew file+1
This diff is too big to show here.
materialized/dummy-ghc/ghc-8.6.5-x86_64-darwin/ghc/info+5
This diff is too big to show here.
materialized/dummy-ghc/ghc-8.6.5-x86_64-linux/ghc/info+5
This diff is too big to show here.
materialized/dummy-ghc/ghc-8.8.2-x86_64-darwin/ghc-pkg/dump-global+6−3
This diff is too big to show here.
materialized/dummy-ghc/ghc-8.8.2-x86_64-darwin/ghc/info+1−1
This diff is too big to show here.
materialized/dummy-ghc/ghc-8.8.2-x86_64-linux/ghc-pkg/dump-global+4−2
This diff is too big to show here.
materialized/dummy-ghc/ghc-8.8.3-aarch64-linux/ghc/info+5−3
This diff is too big to show here.
materialized/dummy-ghc/ghc-8.8.3-aarch64-linux/ghc/versionnew file+1
This diff is too big to show here.
materialized/dummy-ghc/ghc-8.8.3-x86_64-darwin/ghc/info+5
This diff is too big to show here.
materialized/dummy-ghc/ghc-8.8.3-x86_64-linux/ghc/info+5
This diff is too big to show here.
materialized/dummy-ghc/ghc-8.8.4-aarch64-linux/ghc-pkg/dump-globalnew file+1592
This diff is too big to show here.
materialized/dummy-ghc/ghc-8.8.4-aarch64-linux/ghc-pkg/versionnew file+1
This diff is too big to show here.
materialized/dummy-ghc/ghc-8.8.4-aarch64-linux/ghc/infonew file+60
This diff is too big to show here.
materialized/dummy-ghc/ghc-8.8.4-aarch64-linux/ghc/numeric-versionnew file+1
This diff is too big to show here.
materialized/dummy-ghc/ghc-8.8.4-aarch64-linux/ghc/supported-languagesnew file+247
This diff is too big to show here.
materialized/dummy-ghc/ghc-8.8.4-aarch64-linux/ghc/versionnew file+1
This diff is too big to show here.
materialized/dummy-ghc/ghc-8.8.4-x86_64-darwin/ghc/info+5
This diff is too big to show here.
materialized/dummy-ghc/ghc-8.8.4-x86_64-linux/ghc/info+5
This diff is too big to show here.
materialized/dummy-ghc/ghc-9.0.1-aarch64-darwin/ghc-pkg/dump-globalnew file+1759
This diff is too big to show here.
materialized/dummy-ghc/ghc-9.0.1-aarch64-darwin/ghc-pkg/versionnew file+1
This diff is too big to show here.
materialized/dummy-ghc/ghc-9.0.1-aarch64-darwin/ghc/infonew file+74
This diff is too big to show here.
materialized/dummy-ghc/ghc-9.0.1-aarch64-darwin/ghc/numeric-versionnew file+1
This diff is too big to show here.
materialized/dummy-ghc/ghc-9.0.1-aarch64-darwin/ghc/supported-languagesnew file+261
This diff is too big to show here.
materialized/dummy-ghc/ghc-9.0.1-aarch64-darwin/ghc/versionnew file+1
This diff is too big to show here.
materialized/dummy-ghc/ghc-9.0.1-aarch64-linux/ghc-pkg/dump-globalnew file+1760
This diff is too big to show here.
materialized/dummy-ghc/ghc-9.0.1-aarch64-linux/ghc-pkg/versionnew file+1
This diff is too big to show here.
materialized/dummy-ghc/ghc-9.0.1-aarch64-linux/ghc/infonew file+74
This diff is too big to show here.
materialized/dummy-ghc/ghc-9.0.1-aarch64-linux/ghc/numeric-versionnew file+1
This diff is too big to show here.
materialized/dummy-ghc/ghc-9.0.1-aarch64-linux/ghc/supported-languagesnew file+261
This diff is too big to show here.
materialized/dummy-ghc/ghc-9.0.1-aarch64-linux/ghc/versionnew file+1
This diff is too big to show here.
materialized/dummy-ghc/ghc-9.0.1-x86_64-darwin/ghc/info+6
This diff is too big to show here.
materialized/dummy-ghc/ghc-9.0.1-x86_64-linux/ghc/info+6
This diff is too big to show here.
materialized/dummy-ghc/ghc-9.0.2-aarch64-darwin/ghc-pkg/dump-globalnew file+1766
This diff is too big to show here.
materialized/dummy-ghc/ghc-9.0.2-aarch64-darwin/ghc-pkg/versionnew file+1
This diff is too big to show here.
materialized/dummy-ghc/ghc-9.0.2-aarch64-darwin/ghc/infonew file+74
This diff is too big to show here.
materialized/dummy-ghc/ghc-9.0.2-aarch64-darwin/ghc/numeric-versionnew file+1
This diff is too big to show here.
materialized/dummy-ghc/ghc-9.0.2-aarch64-darwin/ghc/supported-languagesnew file+261
This diff is too big to show here.
materialized/dummy-ghc/ghc-9.0.2-aarch64-darwin/ghc/versionnew file+1
This diff is too big to show here.
materialized/dummy-ghc/ghc-9.0.2-aarch64-linux/ghc-pkg/dump-globalnew file+1767
This diff is too big to show here.
materialized/dummy-ghc/ghc-9.0.2-aarch64-linux/ghc-pkg/versionnew file+1
This diff is too big to show here.
materialized/dummy-ghc/ghc-9.0.2-aarch64-linux/ghc/infonew file+74
This diff is too big to show here.
materialized/dummy-ghc/ghc-9.0.2-aarch64-linux/ghc/numeric-versionnew file+1
This diff is too big to show here.
materialized/dummy-ghc/ghc-9.0.2-aarch64-linux/ghc/supported-languagesnew file+261
This diff is too big to show here.
materialized/dummy-ghc/ghc-9.0.2-aarch64-linux/ghc/versionnew file+1
This diff is too big to show here.
materialized/dummy-ghc/ghc-9.0.2-x86_64-darwin/ghc-pkg/dump-globalnew file+1766
This diff is too big to show here.
materialized/dummy-ghc/ghc-9.0.2-x86_64-darwin/ghc-pkg/versionnew file+1
This diff is too big to show here.
materialized/dummy-ghc/ghc-9.0.2-x86_64-darwin/ghc/infonew file+76
This diff is too big to show here.
materialized/dummy-ghc/ghc-9.0.2-x86_64-darwin/ghc/numeric-versionnew file+1
This diff is too big to show here.
materialized/dummy-ghc/ghc-9.0.2-x86_64-darwin/ghc/supported-languagesnew file+261
This diff is too big to show here.
materialized/dummy-ghc/ghc-9.0.2-x86_64-darwin/ghc/versionnew file+1
This diff is too big to show here.
materialized/dummy-ghc/ghc-9.0.2-x86_64-linux/ghc-pkg/dump-globalnew file+1767
This diff is too big to show here.
materialized/dummy-ghc/ghc-9.0.2-x86_64-linux/ghc-pkg/versionnew file+1
This diff is too big to show here.
materialized/dummy-ghc/ghc-9.0.2-x86_64-linux/ghc/infonew file+76
This diff is too big to show here.
materialized/dummy-ghc/ghc-9.0.2-x86_64-linux/ghc/numeric-versionnew file+1
This diff is too big to show here.
materialized/dummy-ghc/ghc-9.0.2-x86_64-linux/ghc/supported-languagesnew file+261
This diff is too big to show here.
materialized/dummy-ghc/ghc-9.0.2-x86_64-linux/ghc/versionnew file+1
This diff is too big to show here.
materialized/dummy-ghc/ghc-9.2.1-aarch64-darwin/ghc-pkg/dump-globalnew file+1826
This diff is too big to show here.
materialized/dummy-ghc/ghc-9.2.1-aarch64-darwin/ghc-pkg/versionnew file+1
This diff is too big to show here.
materialized/dummy-ghc/ghc-9.2.1-aarch64-darwin/ghc/infonew file+73
This diff is too big to show here.
materialized/dummy-ghc/ghc-9.2.1-aarch64-darwin/ghc/numeric-versionnew file+1
This diff is too big to show here.
materialized/dummy-ghc/ghc-9.2.1-aarch64-darwin/ghc/supported-languagesnew file+266
This diff is too big to show here.
materialized/dummy-ghc/ghc-9.2.1-aarch64-darwin/ghc/versionnew file+1
This diff is too big to show here.
materialized/dummy-ghc/ghc-9.2.1-aarch64-linux/ghc-pkg/dump-globalnew file+1826
This diff is too big to show here.
materialized/dummy-ghc/ghc-9.2.1-aarch64-linux/ghc-pkg/versionnew file+1
This diff is too big to show here.
materialized/dummy-ghc/ghc-9.2.1-aarch64-linux/ghc/infonew file+73
This diff is too big to show here.
materialized/dummy-ghc/ghc-9.2.1-aarch64-linux/ghc/numeric-versionnew file+1
This diff is too big to show here.
materialized/dummy-ghc/ghc-9.2.1-aarch64-linux/ghc/supported-languagesnew file+266
This diff is too big to show here.
materialized/dummy-ghc/ghc-9.2.1-aarch64-linux/ghc/versionnew file+1
This diff is too big to show here.
materialized/dummy-ghc/ghc-9.2.1-x86_64-darwin/ghc-pkg/dump-globalnew file+1826
This diff is too big to show here.
materialized/dummy-ghc/ghc-9.2.1-x86_64-darwin/ghc-pkg/versionnew file+1
This diff is too big to show here.
materialized/dummy-ghc/ghc-9.2.1-x86_64-darwin/ghc/infonew file+73
This diff is too big to show here.
materialized/dummy-ghc/ghc-9.2.1-x86_64-darwin/ghc/numeric-versionnew file+1
This diff is too big to show here.
materialized/dummy-ghc/ghc-9.2.1-x86_64-darwin/ghc/supported-languagesnew file+266
This diff is too big to show here.
materialized/dummy-ghc/ghc-9.2.1-x86_64-darwin/ghc/versionnew file+1
This diff is too big to show here.
materialized/dummy-ghc/ghc-9.2.1-x86_64-linux/ghc-pkg/dump-globalnew file+1826
This diff is too big to show here.
materialized/dummy-ghc/ghc-9.2.1-x86_64-linux/ghc-pkg/versionnew file+1
This diff is too big to show here.
materialized/dummy-ghc/ghc-9.2.1-x86_64-linux/ghc/infonew file+73
This diff is too big to show here.
materialized/dummy-ghc/ghc-9.2.1-x86_64-linux/ghc/numeric-versionnew file+1
This diff is too big to show here.
materialized/dummy-ghc/ghc-9.2.1-x86_64-linux/ghc/supported-languagesnew file+266
This diff is too big to show here.
materialized/dummy-ghc/ghc-9.2.1-x86_64-linux/ghc/versionnew file+1
This diff is too big to show here.
materialized/dummy-ghc/ghc-9.2.2-aarch64-darwin/ghc-pkg/dump-globalnew file+1834
This diff is too big to show here.
materialized/dummy-ghc/ghc-9.2.2-aarch64-darwin/ghc-pkg/versionnew file+1
This diff is too big to show here.
materialized/dummy-ghc/ghc-9.2.2-aarch64-darwin/ghc/infonew file+72
This diff is too big to show here.
materialized/dummy-ghc/ghc-9.2.2-aarch64-darwin/ghc/numeric-versionnew file+1
This diff is too big to show here.
materialized/dummy-ghc/ghc-9.2.2-aarch64-darwin/ghc/supported-languagesnew file+266
This diff is too big to show here.
materialized/dummy-ghc/ghc-9.2.2-aarch64-darwin/ghc/versionnew file+1
This diff is too big to show here.
materialized/dummy-ghc/ghc-9.2.2-aarch64-linux/ghc-pkg/dump-globalnew file+1834
This diff is too big to show here.
materialized/dummy-ghc/ghc-9.2.2-aarch64-linux/ghc-pkg/versionnew file+1
This diff is too big to show here.
materialized/dummy-ghc/ghc-9.2.2-aarch64-linux/ghc/infonew file+72
This diff is too big to show here.
materialized/dummy-ghc/ghc-9.2.2-aarch64-linux/ghc/numeric-versionnew file+1
This diff is too big to show here.
materialized/dummy-ghc/ghc-9.2.2-aarch64-linux/ghc/supported-languagesnew file+266
This diff is too big to show here.
materialized/dummy-ghc/ghc-9.2.2-aarch64-linux/ghc/versionnew file+1
This diff is too big to show here.
materialized/dummy-ghc/ghc-9.2.2-x86_64-darwin/ghc-pkg/dump-globalnew file+1834
This diff is too big to show here.
materialized/dummy-ghc/ghc-9.2.2-x86_64-darwin/ghc-pkg/versionnew file+1
This diff is too big to show here.
materialized/dummy-ghc/ghc-9.2.2-x86_64-darwin/ghc/infonew file+72
This diff is too big to show here.
materialized/dummy-ghc/ghc-9.2.2-x86_64-darwin/ghc/numeric-versionnew file+1
This diff is too big to show here.
materialized/dummy-ghc/ghc-9.2.2-x86_64-darwin/ghc/supported-languagesnew file+266
This diff is too big to show here.
materialized/dummy-ghc/ghc-9.2.2-x86_64-darwin/ghc/versionnew file+1
This diff is too big to show here.
materialized/dummy-ghc/ghc-9.2.2-x86_64-linux/ghc-pkg/dump-globalnew file+1834
This diff is too big to show here.
materialized/dummy-ghc/ghc-9.2.2-x86_64-linux/ghc-pkg/versionnew file+1
This diff is too big to show here.
materialized/dummy-ghc/ghc-9.2.2-x86_64-linux/ghc/infonew file+72
This diff is too big to show here.
materialized/dummy-ghc/ghc-9.2.2-x86_64-linux/ghc/numeric-versionnew file+1
This diff is too big to show here.
materialized/dummy-ghc/ghc-9.2.2-x86_64-linux/ghc/supported-languagesnew file+266
This diff is too big to show here.
materialized/dummy-ghc/ghc-9.2.2-x86_64-linux/ghc/versionnew file+1
This diff is too big to show here.
materialized/dummy-ghc/ghc-9.2.3-aarch64-darwin/ghc-pkg/dump-globalnew file+1834
This diff is too big to show here.
materialized/dummy-ghc/ghc-9.2.3-aarch64-darwin/ghc-pkg/versionnew file+1
This diff is too big to show here.
materialized/dummy-ghc/ghc-9.2.3-aarch64-darwin/ghc/infonew file+72
This diff is too big to show here.
materialized/dummy-ghc/ghc-9.2.3-aarch64-darwin/ghc/numeric-versionnew file+1
This diff is too big to show here.
materialized/dummy-ghc/ghc-9.2.3-aarch64-darwin/ghc/supported-languagesnew file+266
This diff is too big to show here.
materialized/dummy-ghc/ghc-9.2.3-aarch64-darwin/ghc/versionnew file+1
This diff is too big to show here.
materialized/dummy-ghc/ghc-9.2.3-aarch64-linux/ghc-pkg/dump-globalnew file+1834
This diff is too big to show here.
materialized/dummy-ghc/ghc-9.2.3-aarch64-linux/ghc-pkg/versionnew file+1
This diff is too big to show here.
materialized/dummy-ghc/ghc-9.2.3-aarch64-linux/ghc/infonew file+72
This diff is too big to show here.
materialized/dummy-ghc/ghc-9.2.3-aarch64-linux/ghc/numeric-versionnew file+1
This diff is too big to show here.
materialized/dummy-ghc/ghc-9.2.3-aarch64-linux/ghc/supported-languagesnew file+266
This diff is too big to show here.
materialized/dummy-ghc/ghc-9.2.3-aarch64-linux/ghc/versionnew file+1
This diff is too big to show here.
materialized/dummy-ghc/ghc-9.2.3-x86_64-darwin/ghc-pkg/dump-globalnew file+1834
This diff is too big to show here.
materialized/dummy-ghc/ghc-9.2.3-x86_64-darwin/ghc-pkg/versionnew file+1
This diff is too big to show here.
materialized/dummy-ghc/ghc-9.2.3-x86_64-darwin/ghc/infonew file+72
This diff is too big to show here.
materialized/dummy-ghc/ghc-9.2.3-x86_64-darwin/ghc/numeric-versionnew file+1
This diff is too big to show here.
materialized/dummy-ghc/ghc-9.2.3-x86_64-darwin/ghc/supported-languagesnew file+266
This diff is too big to show here.
materialized/dummy-ghc/ghc-9.2.3-x86_64-darwin/ghc/versionnew file+1
This diff is too big to show here.
materialized/dummy-ghc/ghc-9.2.3-x86_64-linux/ghc-pkg/dump-globalnew file+1834
This diff is too big to show here.
materialized/dummy-ghc/ghc-9.2.3-x86_64-linux/ghc-pkg/versionnew file+1
This diff is too big to show here.
materialized/dummy-ghc/ghc-9.2.3-x86_64-linux/ghc/infonew file+72
This diff is too big to show here.
materialized/dummy-ghc/ghc-9.2.3-x86_64-linux/ghc/numeric-versionnew file+1
This diff is too big to show here.
materialized/dummy-ghc/ghc-9.2.3-x86_64-linux/ghc/supported-languagesnew file+266
This diff is too big to show here.
materialized/dummy-ghc/ghc-9.2.3-x86_64-linux/ghc/versionnew file+1
This diff is too big to show here.
materialized/dummy-ghc/ghc-9.2.4-aarch64-darwin/ghc-pkg/dump-globalnew file+1834
This diff is too big to show here.
materialized/dummy-ghc/ghc-9.2.4-aarch64-darwin/ghc-pkg/versionnew file+1
This diff is too big to show here.
materialized/dummy-ghc/ghc-9.2.4-aarch64-darwin/ghc/infonew file+72
This diff is too big to show here.
materialized/dummy-ghc/ghc-9.2.4-aarch64-darwin/ghc/numeric-versionnew file+1
This diff is too big to show here.
materialized/dummy-ghc/ghc-9.2.4-aarch64-darwin/ghc/supported-languagesnew file+268
This diff is too big to show here.
materialized/dummy-ghc/ghc-9.2.4-aarch64-darwin/ghc/versionnew file+1
This diff is too big to show here.
materialized/dummy-ghc/ghc-9.2.4-aarch64-linux/ghc-pkg/dump-globalnew file+1833
This diff is too big to show here.
materialized/dummy-ghc/ghc-9.2.4-aarch64-linux/ghc-pkg/versionnew file+1
This diff is too big to show here.
materialized/dummy-ghc/ghc-9.2.4-aarch64-linux/ghc/infonew file+72
This diff is too big to show here.
materialized/dummy-ghc/ghc-9.2.4-aarch64-linux/ghc/numeric-versionnew file+1
This diff is too big to show here.
materialized/dummy-ghc/ghc-9.2.4-aarch64-linux/ghc/supported-languagesnew file+268
This diff is too big to show here.
materialized/dummy-ghc/ghc-9.2.4-aarch64-linux/ghc/versionnew file+1
This diff is too big to show here.
materialized/dummy-ghc/ghc-9.2.4-x86_64-darwin/ghc-pkg/dump-globalnew file+1834
This diff is too big to show here.
materialized/dummy-ghc/ghc-9.2.4-x86_64-darwin/ghc-pkg/versionnew file+1
This diff is too big to show here.
materialized/dummy-ghc/ghc-9.2.4-x86_64-darwin/ghc/infonew file+72
This diff is too big to show here.
materialized/dummy-ghc/ghc-9.2.4-x86_64-darwin/ghc/numeric-versionnew file+1
This diff is too big to show here.
materialized/dummy-ghc/ghc-9.2.4-x86_64-darwin/ghc/supported-languagesnew file+268
This diff is too big to show here.
materialized/dummy-ghc/ghc-9.2.4-x86_64-darwin/ghc/versionnew file+1
This diff is too big to show here.
materialized/dummy-ghc/ghc-9.2.4-x86_64-linux/ghc-pkg/dump-globalnew file+1833
This diff is too big to show here.
materialized/dummy-ghc/ghc-9.2.4-x86_64-linux/ghc-pkg/versionnew file+1
This diff is too big to show here.
materialized/dummy-ghc/ghc-9.2.4-x86_64-linux/ghc/infonew file+72
This diff is too big to show here.
materialized/dummy-ghc/ghc-9.2.4-x86_64-linux/ghc/numeric-versionnew file+1
This diff is too big to show here.
materialized/dummy-ghc/ghc-9.2.4-x86_64-linux/ghc/supported-languagesnew file+268
This diff is too big to show here.
materialized/dummy-ghc/ghc-9.2.4-x86_64-linux/ghc/versionnew file+1
This diff is too big to show here.
materialized/dummy-ghc/js-unknown-ghcjs-js-unknown-ghcjs-ghc-8.10.5-x86_64-darwin/ghc-pkg/dump-global+183−183
This diff is too big to show here.
materialized/dummy-ghc/js-unknown-ghcjs-js-unknown-ghcjs-ghc-8.10.5-x86_64-linux/ghc-pkg/dump-global+183−183
This diff is too big to show here.
materialized/dummy-ghc/js-unknown-ghcjs-js-unknown-ghcjs-ghc-8.10.6-x86_64-darwin/ghc-pkg/dump-globalnew file+1330
This diff is too big to show here.
materialized/dummy-ghc/js-unknown-ghcjs-js-unknown-ghcjs-ghc-8.10.6-x86_64-darwin/ghc-pkg/numeric-ghcjs-versionnew file+1
This diff is too big to show here.
materialized/dummy-ghc/js-unknown-ghcjs-js-unknown-ghcjs-ghc-8.10.6-x86_64-darwin/ghc-pkg/versionnew file+1
This diff is too big to show here.
materialized/dummy-ghc/js-unknown-ghcjs-js-unknown-ghcjs-ghc-8.10.6-x86_64-darwin/ghc/infonew file+71
This diff is too big to show here.
materialized/dummy-ghc/js-unknown-ghcjs-js-unknown-ghcjs-ghc-8.10.6-x86_64-darwin/ghc/numeric-ghc-versionnew file+1
This diff is too big to show here.
materialized/dummy-ghc/js-unknown-ghcjs-js-unknown-ghcjs-ghc-8.10.6-x86_64-darwin/ghc/numeric-ghcjs-versionnew file+1
This diff is too big to show here.
materialized/dummy-ghc/js-unknown-ghcjs-js-unknown-ghcjs-ghc-8.10.6-x86_64-darwin/ghc/numeric-versionnew file+1
This diff is too big to show here.
materialized/dummy-ghc/js-unknown-ghcjs-js-unknown-ghcjs-ghc-8.10.6-x86_64-darwin/ghc/supported-languagesnew file+255
This diff is too big to show here.
materialized/dummy-ghc/js-unknown-ghcjs-js-unknown-ghcjs-ghc-8.10.6-x86_64-darwin/ghc/versionnew file+1
This diff is too big to show here.
materialized/dummy-ghc/js-unknown-ghcjs-js-unknown-ghcjs-ghc-8.10.6-x86_64-linux/ghc-pkg/dump-globalnew file+1330
This diff is too big to show here.
materialized/dummy-ghc/js-unknown-ghcjs-js-unknown-ghcjs-ghc-8.10.6-x86_64-linux/ghc-pkg/numeric-ghcjs-versionnew file+1
This diff is too big to show here.
materialized/dummy-ghc/js-unknown-ghcjs-js-unknown-ghcjs-ghc-8.10.6-x86_64-linux/ghc-pkg/versionnew file+1
This diff is too big to show here.
materialized/dummy-ghc/js-unknown-ghcjs-js-unknown-ghcjs-ghc-8.10.6-x86_64-linux/ghc/infonew file+71
This diff is too big to show here.
materialized/dummy-ghc/js-unknown-ghcjs-js-unknown-ghcjs-ghc-8.10.6-x86_64-linux/ghc/numeric-ghc-versionnew file+1
This diff is too big to show here.
materialized/dummy-ghc/js-unknown-ghcjs-js-unknown-ghcjs-ghc-8.10.6-x86_64-linux/ghc/numeric-ghcjs-versionnew file+1
This diff is too big to show here.
materialized/dummy-ghc/js-unknown-ghcjs-js-unknown-ghcjs-ghc-8.10.6-x86_64-linux/ghc/numeric-versionnew file+1
This diff is too big to show here.
materialized/dummy-ghc/js-unknown-ghcjs-js-unknown-ghcjs-ghc-8.10.6-x86_64-linux/ghc/supported-languagesnew file+255
This diff is too big to show here.
materialized/dummy-ghc/js-unknown-ghcjs-js-unknown-ghcjs-ghc-8.10.6-x86_64-linux/ghc/versionnew file+1
This diff is too big to show here.
materialized/dummy-ghc/js-unknown-ghcjs-js-unknown-ghcjs-ghc-8.10.7-x86_64-darwin/ghc-pkg/dump-globalnew file+1330
This diff is too big to show here.
materialized/dummy-ghc/js-unknown-ghcjs-js-unknown-ghcjs-ghc-8.10.7-x86_64-darwin/ghc-pkg/numeric-ghcjs-versionnew file+1
This diff is too big to show here.
materialized/dummy-ghc/js-unknown-ghcjs-js-unknown-ghcjs-ghc-8.10.7-x86_64-darwin/ghc-pkg/versionnew file+1
This diff is too big to show here.
materialized/dummy-ghc/js-unknown-ghcjs-js-unknown-ghcjs-ghc-8.10.7-x86_64-darwin/ghc/infonew file+71
This diff is too big to show here.
materialized/dummy-ghc/js-unknown-ghcjs-js-unknown-ghcjs-ghc-8.10.7-x86_64-darwin/ghc/numeric-ghc-versionnew file+1
This diff is too big to show here.
materialized/dummy-ghc/js-unknown-ghcjs-js-unknown-ghcjs-ghc-8.10.7-x86_64-darwin/ghc/numeric-ghcjs-versionnew file+1
This diff is too big to show here.
materialized/dummy-ghc/js-unknown-ghcjs-js-unknown-ghcjs-ghc-8.10.7-x86_64-darwin/ghc/numeric-versionnew file+1
This diff is too big to show here.
materialized/dummy-ghc/js-unknown-ghcjs-js-unknown-ghcjs-ghc-8.10.7-x86_64-darwin/ghc/supported-languagesnew file+255
This diff is too big to show here.
materialized/dummy-ghc/js-unknown-ghcjs-js-unknown-ghcjs-ghc-8.10.7-x86_64-darwin/ghc/versionnew file+1
This diff is too big to show here.
materialized/dummy-ghc/js-unknown-ghcjs-js-unknown-ghcjs-ghc-8.10.7-x86_64-linux/ghc-pkg/dump-globalnew file+1330
This diff is too big to show here.
materialized/dummy-ghc/js-unknown-ghcjs-js-unknown-ghcjs-ghc-8.10.7-x86_64-linux/ghc-pkg/numeric-ghcjs-versionnew file+1
This diff is too big to show here.
materialized/dummy-ghc/js-unknown-ghcjs-js-unknown-ghcjs-ghc-8.10.7-x86_64-linux/ghc-pkg/versionnew file+1
This diff is too big to show here.
materialized/dummy-ghc/js-unknown-ghcjs-js-unknown-ghcjs-ghc-8.10.7-x86_64-linux/ghc/infonew file+71
This diff is too big to show here.
materialized/dummy-ghc/js-unknown-ghcjs-js-unknown-ghcjs-ghc-8.10.7-x86_64-linux/ghc/numeric-ghc-versionnew file+1
This diff is too big to show here.
materialized/dummy-ghc/js-unknown-ghcjs-js-unknown-ghcjs-ghc-8.10.7-x86_64-linux/ghc/numeric-ghcjs-versionnew file+1
This diff is too big to show here.
materialized/dummy-ghc/js-unknown-ghcjs-js-unknown-ghcjs-ghc-8.10.7-x86_64-linux/ghc/numeric-versionnew file+1
This diff is too big to show here.
materialized/dummy-ghc/js-unknown-ghcjs-js-unknown-ghcjs-ghc-8.10.7-x86_64-linux/ghc/supported-languagesnew file+255
This diff is too big to show here.
materialized/dummy-ghc/js-unknown-ghcjs-js-unknown-ghcjs-ghc-8.10.7-x86_64-linux/ghc/versionnew file+1
This diff is too big to show here.
materialized/dummy-ghc/x86_64-unknown-linux-musl-x86_64-unknown-linux-musl-ghc-8.10.4-x86_64-linux/ghc-pkg/dump-global+38−3
This diff is too big to show here.
materialized/dummy-ghc/x86_64-unknown-linux-musl-x86_64-unknown-linux-musl-ghc-8.10.5-x86_64-linux/ghc-pkg/dump-global+38−3
This diff is too big to show here.
materialized/dummy-ghc/x86_64-unknown-linux-musl-x86_64-unknown-linux-musl-ghc-8.10.6-x86_64-linux/ghc-pkg/dump-globalnew file+1638
This diff is too big to show here.
materialized/dummy-ghc/x86_64-unknown-linux-musl-x86_64-unknown-linux-musl-ghc-8.10.6-x86_64-linux/ghc-pkg/versionnew file+1
This diff is too big to show here.
materialized/dummy-ghc/x86_64-unknown-linux-musl-x86_64-unknown-linux-musl-ghc-8.10.6-x86_64-linux/ghc/infonew file+69
This diff is too big to show here.
materialized/dummy-ghc/x86_64-unknown-linux-musl-x86_64-unknown-linux-musl-ghc-8.10.6-x86_64-linux/ghc/numeric-versionnew file+1
This diff is too big to show here.
materialized/dummy-ghc/x86_64-unknown-linux-musl-x86_64-unknown-linux-musl-ghc-8.10.6-x86_64-linux/ghc/supported-languagesnew file+255
This diff is too big to show here.
materialized/dummy-ghc/x86_64-unknown-linux-musl-x86_64-unknown-linux-musl-ghc-8.10.6-x86_64-linux/ghc/versionnew file+1
This diff is too big to show here.
materialized/dummy-ghc/x86_64-unknown-linux-musl-x86_64-unknown-linux-musl-ghc-8.10.7-x86_64-linux/ghc-pkg/dump-globalnew file+1638
This diff is too big to show here.
materialized/dummy-ghc/x86_64-unknown-linux-musl-x86_64-unknown-linux-musl-ghc-8.10.7-x86_64-linux/ghc-pkg/versionnew file+1
This diff is too big to show here.
materialized/dummy-ghc/x86_64-unknown-linux-musl-x86_64-unknown-linux-musl-ghc-8.10.7-x86_64-linux/ghc/infonew file+69
This diff is too big to show here.
materialized/dummy-ghc/x86_64-unknown-linux-musl-x86_64-unknown-linux-musl-ghc-8.10.7-x86_64-linux/ghc/numeric-versionnew file+1
This diff is too big to show here.
materialized/dummy-ghc/x86_64-unknown-linux-musl-x86_64-unknown-linux-musl-ghc-8.10.7-x86_64-linux/ghc/supported-languagesnew file+255
This diff is too big to show here.
materialized/dummy-ghc/x86_64-unknown-linux-musl-x86_64-unknown-linux-musl-ghc-8.10.7-x86_64-linux/ghc/versionnew file+1
This diff is too big to show here.
materialized/dummy-ghc/x86_64-unknown-linux-musl-x86_64-unknown-linux-musl-ghc-8.6.5-x86_64-linux/ghc-pkg/dump-global+31−2
This diff is too big to show here.
materialized/dummy-ghc/x86_64-unknown-linux-musl-x86_64-unknown-linux-musl-ghc-8.8.2-x86_64-linux/ghc-pkg/dump-globalnew file+1590
This diff is too big to show here.
materialized/dummy-ghc/x86_64-unknown-linux-musl-x86_64-unknown-linux-musl-ghc-8.8.2-x86_64-linux/ghc-pkg/versionnew file+1
This diff is too big to show here.
materialized/dummy-ghc/x86_64-unknown-linux-musl-x86_64-unknown-linux-musl-ghc-8.8.2-x86_64-linux/ghc/infonew file+57
This diff is too big to show here.
materialized/dummy-ghc/x86_64-unknown-linux-musl-x86_64-unknown-linux-musl-ghc-8.8.2-x86_64-linux/ghc/numeric-versionnew file+1
This diff is too big to show here.
materialized/dummy-ghc/x86_64-unknown-linux-musl-x86_64-unknown-linux-musl-ghc-8.8.2-x86_64-linux/ghc/supported-languagesnew file+247
This diff is too big to show here.
materialized/dummy-ghc/x86_64-unknown-linux-musl-x86_64-unknown-linux-musl-ghc-8.8.2-x86_64-linux/ghc/versionnew file+1
This diff is too big to show here.
materialized/dummy-ghc/x86_64-unknown-linux-musl-x86_64-unknown-linux-musl-ghc-8.8.3-x86_64-linux/ghc-pkg/dump-global+37−3
This diff is too big to show here.
materialized/dummy-ghc/x86_64-unknown-linux-musl-x86_64-unknown-linux-musl-ghc-8.8.4-x86_64-linux/ghc-pkg/dump-global+37−3
This diff is too big to show here.
materialized/dummy-ghc/x86_64-unknown-linux-musl-x86_64-unknown-linux-musl-ghc-9.0.1-x86_64-linux/ghc-pkg/dump-global+38−3
This diff is too big to show here.
materialized/dummy-ghc/x86_64-unknown-linux-musl-x86_64-unknown-linux-musl-ghc-9.0.2-x86_64-linux/ghc-pkg/dump-globalnew file+1729
This diff is too big to show here.
materialized/dummy-ghc/x86_64-unknown-linux-musl-x86_64-unknown-linux-musl-ghc-9.0.2-x86_64-linux/ghc-pkg/versionnew file+1
This diff is too big to show here.
materialized/dummy-ghc/x86_64-unknown-linux-musl-x86_64-unknown-linux-musl-ghc-9.0.2-x86_64-linux/ghc/infonew file+70
This diff is too big to show here.
materialized/dummy-ghc/x86_64-unknown-linux-musl-x86_64-unknown-linux-musl-ghc-9.0.2-x86_64-linux/ghc/numeric-versionnew file+1
This diff is too big to show here.
materialized/dummy-ghc/x86_64-unknown-linux-musl-x86_64-unknown-linux-musl-ghc-9.0.2-x86_64-linux/ghc/supported-languagesnew file+261
This diff is too big to show here.
materialized/dummy-ghc/x86_64-unknown-linux-musl-x86_64-unknown-linux-musl-ghc-9.0.2-x86_64-linux/ghc/versionnew file+1
This diff is too big to show here.
materialized/dummy-ghc/x86_64-unknown-linux-musl-x86_64-unknown-linux-musl-ghc-9.2.1-x86_64-linux/ghc-pkg/dump-globalnew file+1788
This diff is too big to show here.
materialized/dummy-ghc/x86_64-unknown-linux-musl-x86_64-unknown-linux-musl-ghc-9.2.1-x86_64-linux/ghc-pkg/versionnew file+1
This diff is too big to show here.
materialized/dummy-ghc/x86_64-unknown-linux-musl-x86_64-unknown-linux-musl-ghc-9.2.1-x86_64-linux/ghc/infonew file+67
This diff is too big to show here.
materialized/dummy-ghc/x86_64-unknown-linux-musl-x86_64-unknown-linux-musl-ghc-9.2.1-x86_64-linux/ghc/numeric-versionnew file+1
This diff is too big to show here.
materialized/dummy-ghc/x86_64-unknown-linux-musl-x86_64-unknown-linux-musl-ghc-9.2.1-x86_64-linux/ghc/supported-languagesnew file+266
This diff is too big to show here.
materialized/dummy-ghc/x86_64-unknown-linux-musl-x86_64-unknown-linux-musl-ghc-9.2.1-x86_64-linux/ghc/versionnew file+1
This diff is too big to show here.
materialized/dummy-ghc/x86_64-unknown-linux-musl-x86_64-unknown-linux-musl-ghc-9.2.2-x86_64-linux/ghc-pkg/dump-globalnew file+1796
This diff is too big to show here.
materialized/dummy-ghc/x86_64-unknown-linux-musl-x86_64-unknown-linux-musl-ghc-9.2.2-x86_64-linux/ghc-pkg/versionnew file+1
This diff is too big to show here.
materialized/dummy-ghc/x86_64-unknown-linux-musl-x86_64-unknown-linux-musl-ghc-9.2.2-x86_64-linux/ghc/infonew file+66
This diff is too big to show here.
materialized/dummy-ghc/x86_64-unknown-linux-musl-x86_64-unknown-linux-musl-ghc-9.2.2-x86_64-linux/ghc/numeric-versionnew file+1
This diff is too big to show here.
materialized/dummy-ghc/x86_64-unknown-linux-musl-x86_64-unknown-linux-musl-ghc-9.2.2-x86_64-linux/ghc/supported-languagesnew file+266
This diff is too big to show here.
materialized/dummy-ghc/x86_64-unknown-linux-musl-x86_64-unknown-linux-musl-ghc-9.2.2-x86_64-linux/ghc/versionnew file+1
This diff is too big to show here.
materialized/dummy-ghc/x86_64-unknown-linux-musl-x86_64-unknown-linux-musl-ghc-9.2.3-x86_64-linux/ghc-pkg/dump-globalnew file+1796
This diff is too big to show here.
materialized/dummy-ghc/x86_64-unknown-linux-musl-x86_64-unknown-linux-musl-ghc-9.2.3-x86_64-linux/ghc-pkg/versionnew file+1
This diff is too big to show here.
materialized/dummy-ghc/x86_64-unknown-linux-musl-x86_64-unknown-linux-musl-ghc-9.2.3-x86_64-linux/ghc/infonew file+66
This diff is too big to show here.
materialized/dummy-ghc/x86_64-unknown-linux-musl-x86_64-unknown-linux-musl-ghc-9.2.3-x86_64-linux/ghc/numeric-versionnew file+1
This diff is too big to show here.
materialized/dummy-ghc/x86_64-unknown-linux-musl-x86_64-unknown-linux-musl-ghc-9.2.3-x86_64-linux/ghc/supported-languagesnew file+266
This diff is too big to show here.
materialized/dummy-ghc/x86_64-unknown-linux-musl-x86_64-unknown-linux-musl-ghc-9.2.3-x86_64-linux/ghc/versionnew file+1
This diff is too big to show here.
materialized/dummy-ghc/x86_64-unknown-linux-musl-x86_64-unknown-linux-musl-ghc-9.2.4-x86_64-linux/ghc-pkg/dump-globalnew file+1796
This diff is too big to show here.
materialized/dummy-ghc/x86_64-unknown-linux-musl-x86_64-unknown-linux-musl-ghc-9.2.4-x86_64-linux/ghc-pkg/versionnew file+1
This diff is too big to show here.
materialized/dummy-ghc/x86_64-unknown-linux-musl-x86_64-unknown-linux-musl-ghc-9.2.4-x86_64-linux/ghc/infonew file+66
This diff is too big to show here.
materialized/dummy-ghc/x86_64-unknown-linux-musl-x86_64-unknown-linux-musl-ghc-9.2.4-x86_64-linux/ghc/numeric-versionnew file+1
This diff is too big to show here.
materialized/dummy-ghc/x86_64-unknown-linux-musl-x86_64-unknown-linux-musl-ghc-9.2.4-x86_64-linux/ghc/supported-languagesnew file+268
This diff is too big to show here.
materialized/dummy-ghc/x86_64-unknown-linux-musl-x86_64-unknown-linux-musl-ghc-9.2.4-x86_64-linux/ghc/versionnew file+1
This diff is too big to show here.
materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-8.10.4-x86_64-darwin/ghc-pkg/dump-globalnew file+1449
This diff is too big to show here.
materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-8.10.4-x86_64-darwin/ghc-pkg/versionnew file+1
This diff is too big to show here.
materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-8.10.4-x86_64-darwin/ghc/infonew file+69
This diff is too big to show here.
materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-8.10.4-x86_64-darwin/ghc/numeric-versionnew file+1
This diff is too big to show here.
materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-8.10.4-x86_64-darwin/ghc/supported-languagesnew file+255
This diff is too big to show here.
materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-8.10.4-x86_64-darwin/ghc/versionnew file+1
This diff is too big to show here.
materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-8.10.5-x86_64-darwin/ghc-pkg/dump-globalnew file+1449
This diff is too big to show here.
materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-8.10.5-x86_64-darwin/ghc-pkg/versionnew file+1
This diff is too big to show here.
materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-8.10.5-x86_64-darwin/ghc/infonew file+69
This diff is too big to show here.
materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-8.10.5-x86_64-darwin/ghc/numeric-versionnew file+1
This diff is too big to show here.
materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-8.10.5-x86_64-darwin/ghc/supported-languagesnew file+255
This diff is too big to show here.
materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-8.10.5-x86_64-darwin/ghc/versionnew file+1
This diff is too big to show here.
materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-8.10.6-x86_64-darwin/ghc-pkg/dump-globalnew file+1450
This diff is too big to show here.
materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-8.10.6-x86_64-darwin/ghc-pkg/versionnew file+1
This diff is too big to show here.
materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-8.10.6-x86_64-darwin/ghc/infonew file+69
This diff is too big to show here.
materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-8.10.6-x86_64-darwin/ghc/numeric-versionnew file+1
This diff is too big to show here.
materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-8.10.6-x86_64-darwin/ghc/supported-languagesnew file+255
This diff is too big to show here.
materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-8.10.6-x86_64-darwin/ghc/versionnew file+1
This diff is too big to show here.
materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-8.10.6-x86_64-linux/ghc-pkg/dump-globalnew file+1450
This diff is too big to show here.
materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-8.10.6-x86_64-linux/ghc-pkg/versionnew file+1
This diff is too big to show here.
materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-8.10.6-x86_64-linux/ghc/infonew file+69
This diff is too big to show here.
materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-8.10.6-x86_64-linux/ghc/numeric-versionnew file+1
This diff is too big to show here.
materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-8.10.6-x86_64-linux/ghc/supported-languagesnew file+255
This diff is too big to show here.
materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-8.10.6-x86_64-linux/ghc/versionnew file+1
This diff is too big to show here.
materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-8.10.7-x86_64-darwin/ghc-pkg/dump-globalnew file+1450
This diff is too big to show here.
materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-8.10.7-x86_64-darwin/ghc-pkg/versionnew file+1
This diff is too big to show here.
materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-8.10.7-x86_64-darwin/ghc/infonew file+69
This diff is too big to show here.
materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-8.10.7-x86_64-darwin/ghc/numeric-versionnew file+1
This diff is too big to show here.
materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-8.10.7-x86_64-darwin/ghc/supported-languagesnew file+255
This diff is too big to show here.
materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-8.10.7-x86_64-darwin/ghc/versionnew file+1
This diff is too big to show here.
materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-8.10.7-x86_64-linux/ghc-pkg/dump-globalnew file+1450
This diff is too big to show here.
materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-8.10.7-x86_64-linux/ghc-pkg/versionnew file+1
This diff is too big to show here.
materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-8.10.7-x86_64-linux/ghc/infonew file+69
This diff is too big to show here.
materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-8.10.7-x86_64-linux/ghc/numeric-versionnew file+1
This diff is too big to show here.
materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-8.10.7-x86_64-linux/ghc/supported-languagesnew file+255
This diff is too big to show here.
materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-8.10.7-x86_64-linux/ghc/versionnew file+1
This diff is too big to show here.
materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-8.8.2-x86_64-darwin/ghc-pkg/dump-globalnew file+1411
This diff is too big to show here.
materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-8.8.2-x86_64-darwin/ghc-pkg/versionnew file+1
This diff is too big to show here.
materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-8.8.2-x86_64-darwin/ghc/infonew file+57
This diff is too big to show here.
materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-8.8.2-x86_64-darwin/ghc/numeric-versionnew file+1
This diff is too big to show here.
materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-8.8.2-x86_64-darwin/ghc/supported-languagesnew file+247
This diff is too big to show here.
materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-8.8.2-x86_64-darwin/ghc/versionnew file+1
This diff is too big to show here.
materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-8.8.2-x86_64-linux/ghc-pkg/dump-globalnew file+1411
This diff is too big to show here.
materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-8.8.2-x86_64-linux/ghc-pkg/versionnew file+1
This diff is too big to show here.
materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-8.8.2-x86_64-linux/ghc/infonew file+57
This diff is too big to show here.
materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-8.8.2-x86_64-linux/ghc/numeric-versionnew file+1
This diff is too big to show here.
materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-8.8.2-x86_64-linux/ghc/supported-languagesnew file+247
This diff is too big to show here.
materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-8.8.2-x86_64-linux/ghc/versionnew file+1
This diff is too big to show here.
materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-8.8.3-x86_64-darwin/ghc-pkg/dump-globalnew file+1411
This diff is too big to show here.
materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-8.8.3-x86_64-darwin/ghc-pkg/versionnew file+1
This diff is too big to show here.
materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-8.8.3-x86_64-darwin/ghc/infonew file+57
This diff is too big to show here.
materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-8.8.3-x86_64-darwin/ghc/numeric-versionnew file+1
This diff is too big to show here.
materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-8.8.3-x86_64-darwin/ghc/supported-languagesnew file+247
This diff is too big to show here.
materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-8.8.3-x86_64-darwin/ghc/versionnew file+1
This diff is too big to show here.
materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-8.8.4-x86_64-darwin/ghc-pkg/dump-globalnew file+1411
This diff is too big to show here.
materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-8.8.4-x86_64-darwin/ghc-pkg/versionnew file+1
This diff is too big to show here.
materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-8.8.4-x86_64-darwin/ghc/infonew file+57
This diff is too big to show here.
materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-8.8.4-x86_64-darwin/ghc/numeric-versionnew file+1
This diff is too big to show here.
materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-8.8.4-x86_64-darwin/ghc/supported-languagesnew file+247
This diff is too big to show here.
materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-8.8.4-x86_64-darwin/ghc/versionnew file+1
This diff is too big to show here.
materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-9.0.1-x86_64-darwin/ghc-pkg/dump-globalnew file+1504
This diff is too big to show here.
materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-9.0.1-x86_64-darwin/ghc-pkg/versionnew file+1
This diff is too big to show here.
materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-9.0.1-x86_64-darwin/ghc/infonew file+70
This diff is too big to show here.
materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-9.0.1-x86_64-darwin/ghc/numeric-versionnew file+1
This diff is too big to show here.
materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-9.0.1-x86_64-darwin/ghc/supported-languagesnew file+261
This diff is too big to show here.
materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-9.0.1-x86_64-darwin/ghc/versionnew file+1
This diff is too big to show here.
materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-9.0.1-x86_64-linux/ghc-pkg/dump-globalnew file+1504
This diff is too big to show here.
materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-9.0.1-x86_64-linux/ghc-pkg/versionnew file+1
This diff is too big to show here.
materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-9.0.1-x86_64-linux/ghc/infonew file+70
This diff is too big to show here.
materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-9.0.1-x86_64-linux/ghc/numeric-versionnew file+1
This diff is too big to show here.
materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-9.0.1-x86_64-linux/ghc/supported-languagesnew file+261
This diff is too big to show here.
materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-9.0.1-x86_64-linux/ghc/versionnew file+1
This diff is too big to show here.
materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-9.0.2-x86_64-darwin/ghc-pkg/dump-globalnew file+1512
This diff is too big to show here.
materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-9.0.2-x86_64-darwin/ghc-pkg/versionnew file+1
This diff is too big to show here.
materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-9.0.2-x86_64-darwin/ghc/infonew file+70
This diff is too big to show here.
materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-9.0.2-x86_64-darwin/ghc/numeric-versionnew file+1
This diff is too big to show here.
materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-9.0.2-x86_64-darwin/ghc/supported-languagesnew file+261
This diff is too big to show here.
materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-9.0.2-x86_64-darwin/ghc/versionnew file+1
This diff is too big to show here.
materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-9.0.2-x86_64-linux/ghc-pkg/dump-globalnew file+1512
This diff is too big to show here.
materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-9.0.2-x86_64-linux/ghc-pkg/versionnew file+1
This diff is too big to show here.
materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-9.0.2-x86_64-linux/ghc/infonew file+70
This diff is too big to show here.
materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-9.0.2-x86_64-linux/ghc/numeric-versionnew file+1
This diff is too big to show here.
materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-9.0.2-x86_64-linux/ghc/supported-languagesnew file+261
This diff is too big to show here.
materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-9.0.2-x86_64-linux/ghc/versionnew file+1
This diff is too big to show here.
materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-9.2.1-x86_64-darwin/ghc-pkg/dump-globalnew file+1522
This diff is too big to show here.
materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-9.2.1-x86_64-darwin/ghc-pkg/versionnew file+1
This diff is too big to show here.
materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-9.2.1-x86_64-darwin/ghc/infonew file+67
This diff is too big to show here.
materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-9.2.1-x86_64-darwin/ghc/numeric-versionnew file+1
This diff is too big to show here.
materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-9.2.1-x86_64-darwin/ghc/supported-languagesnew file+266
This diff is too big to show here.
materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-9.2.1-x86_64-darwin/ghc/versionnew file+1
This diff is too big to show here.
materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-9.2.1-x86_64-linux/ghc-pkg/dump-globalnew file+1522
This diff is too big to show here.
materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-9.2.1-x86_64-linux/ghc-pkg/versionnew file+1
This diff is too big to show here.
materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-9.2.1-x86_64-linux/ghc/infonew file+67
This diff is too big to show here.
materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-9.2.1-x86_64-linux/ghc/numeric-versionnew file+1
This diff is too big to show here.
materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-9.2.1-x86_64-linux/ghc/supported-languagesnew file+266
This diff is too big to show here.
materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-9.2.1-x86_64-linux/ghc/versionnew file+1
This diff is too big to show here.
materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-9.2.2-x86_64-darwin/ghc-pkg/dump-globalnew file+1533
This diff is too big to show here.
materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-9.2.2-x86_64-darwin/ghc-pkg/versionnew file+1
This diff is too big to show here.
materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-9.2.2-x86_64-darwin/ghc/infonew file+66
This diff is too big to show here.
materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-9.2.2-x86_64-darwin/ghc/numeric-versionnew file+1
This diff is too big to show here.
materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-9.2.2-x86_64-darwin/ghc/supported-languagesnew file+266
This diff is too big to show here.
materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-9.2.2-x86_64-darwin/ghc/versionnew file+1
This diff is too big to show here.
materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-9.2.2-x86_64-linux/ghc-pkg/dump-globalnew file+1533
This diff is too big to show here.
materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-9.2.2-x86_64-linux/ghc-pkg/versionnew file+1
This diff is too big to show here.
materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-9.2.2-x86_64-linux/ghc/infonew file+66
This diff is too big to show here.
materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-9.2.2-x86_64-linux/ghc/numeric-versionnew file+1
This diff is too big to show here.
materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-9.2.2-x86_64-linux/ghc/supported-languagesnew file+266
This diff is too big to show here.
materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-9.2.2-x86_64-linux/ghc/versionnew file+1
This diff is too big to show here.
materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-9.2.3-x86_64-darwin/ghc-pkg/dump-globalnew file+1533
This diff is too big to show here.
materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-9.2.3-x86_64-darwin/ghc-pkg/versionnew file+1
This diff is too big to show here.
materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-9.2.3-x86_64-darwin/ghc/infonew file+66
This diff is too big to show here.
materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-9.2.3-x86_64-darwin/ghc/numeric-versionnew file+1
This diff is too big to show here.
materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-9.2.3-x86_64-darwin/ghc/supported-languagesnew file+266
This diff is too big to show here.
materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-9.2.3-x86_64-darwin/ghc/versionnew file+1
This diff is too big to show here.
materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-9.2.3-x86_64-linux/ghc-pkg/dump-globalnew file+1533
This diff is too big to show here.
materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-9.2.3-x86_64-linux/ghc-pkg/versionnew file+1
This diff is too big to show here.
materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-9.2.3-x86_64-linux/ghc/infonew file+66
This diff is too big to show here.
materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-9.2.3-x86_64-linux/ghc/numeric-versionnew file+1
This diff is too big to show here.
materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-9.2.3-x86_64-linux/ghc/supported-languagesnew file+266
This diff is too big to show here.
materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-9.2.3-x86_64-linux/ghc/versionnew file+1
This diff is too big to show here.
materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-9.2.4-x86_64-darwin/ghc-pkg/dump-globalnew file+1533
This diff is too big to show here.
materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-9.2.4-x86_64-darwin/ghc-pkg/versionnew file+1
This diff is too big to show here.
materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-9.2.4-x86_64-darwin/ghc/infonew file+66
This diff is too big to show here.
materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-9.2.4-x86_64-darwin/ghc/numeric-versionnew file+1
This diff is too big to show here.
materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-9.2.4-x86_64-darwin/ghc/supported-languagesnew file+268
This diff is too big to show here.
materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-9.2.4-x86_64-darwin/ghc/versionnew file+1
This diff is too big to show here.
materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-9.2.4-x86_64-linux/ghc-pkg/dump-globalnew file+1533
This diff is too big to show here.
materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-9.2.4-x86_64-linux/ghc-pkg/versionnew file+1
This diff is too big to show here.
materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-9.2.4-x86_64-linux/ghc/infonew file+66
This diff is too big to show here.
materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-9.2.4-x86_64-linux/ghc/numeric-versionnew file+1
This diff is too big to show here.
materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-9.2.4-x86_64-linux/ghc/supported-languagesnew file+268
This diff is too big to show here.
materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-9.2.4-x86_64-linux/ghc/versionnew file+1
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc8101/Win32.nixnew file+46
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc8101/base.nixnew file+43
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc8101/ghc-heap.nixnew file+35
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc8101/ghc-prim.nixnew file+40
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc8101/integer-gmp.nixnew file+33
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc8101/template-haskell.nixnew file+36
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc8102/Win32.nixnew file+46
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc8102/base.nixnew file+43
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc8102/ghc-heap.nixnew file+35
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc8102/ghc-prim.nixnew file+43
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc8102/integer-gmp.nixnew file+33
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc8102/iserv-proxy.nix+1−1
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc8102/template-haskell.nixnew file+36
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc8103/Win32.nixnew file+46
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc8103/base.nixnew file+43
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc8103/ghc-heap.nixnew file+35
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc8103/ghc-prim.nixnew file+43
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc8103/integer-gmp.nixnew file+33
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc8103/iserv-proxy.nix+1−1
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc8103/template-haskell.nixnew file+36
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc8104/Win32.nixnew file+46
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc8104/base.nixnew file+43
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc8104/ghc-heap.nixnew file+35
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc8104/ghc-prim.nixnew file+43
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc8104/integer-gmp.nixnew file+33
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc8104/iserv-proxy.nix+1−1
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc8104/template-haskell.nixnew file+36
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc810420210212/Win32.nixnew file+46
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc810420210212/base.nixnew file+43
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc810420210212/ghc-heap.nixnew file+35
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc810420210212/ghc-prim.nixnew file+43
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc810420210212/integer-gmp.nixnew file+33
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc810420210212/iserv-proxy.nix+1−1
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc810420210212/template-haskell.nixnew file+36
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc8105-aarch64/Win32.nixnew file+46
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc8105-aarch64/base.nixnew file+43
This diff is too big to show here.
materialized/ghc-extra-projects/cross/ghc8105/.plan.nix/bytestring.nix → materialized/ghc-boot-packages-nix/ghc8105-aarch64/bytestring.nixrenamed+1−37
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc8105-aarch64/ghc-boot.nixnew file+39
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc8105-aarch64/ghc-heap.nixnew file+35
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc8105-aarch64/ghc-prim.nixnew file+44
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc8105-aarch64/ghc.nixnew file+62
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc8105-aarch64/ghci.nixnew file+45
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc8105-aarch64/hpc.nixnew file+38
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc8105-aarch64/integer-gmp.nixnew file+33
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc8105-aarch64/iserv-proxy.nixnew file+45
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc8105-aarch64/iserv.nixnew file+42
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc8105-aarch64/libiserv.nixnew file+42
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc8105-aarch64/remote-iserv.nixnew file+36
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc8105-aarch64/template-haskell.nixnew file+36
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc8105/Win32.nixnew file+46
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc8105/iserv-proxy.nix+1−1
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc8106-aarch64/Win32.nixnew file+46
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc8106-aarch64/base.nixnew file+43
This diff is too big to show here.
materialized/ghc-extra-projects/cross/ghc8104/.plan.nix/bytestring.nix → materialized/ghc-boot-packages-nix/ghc8106-aarch64/bytestring.nixrenamed+1−37
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc8106-aarch64/ghc-boot.nixnew file+39
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc8106-aarch64/ghc-heap.nixnew file+35
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc8106-aarch64/ghc-prim.nixnew file+44
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc8106-aarch64/ghc.nixnew file+62
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc8106-aarch64/ghci.nixnew file+45
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc8106-aarch64/hpc.nixnew file+38
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc8106-aarch64/integer-gmp.nixnew file+33
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc8106-aarch64/iserv-proxy.nixnew file+45
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc8106-aarch64/iserv.nixnew file+42
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc8106-aarch64/libiserv.nixnew file+42
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc8106-aarch64/remote-iserv.nixnew file+36
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc8106-aarch64/template-haskell.nixnew file+36
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc8106/Win32.nixnew file+46
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc8106/base.nixnew file+43
This diff is too big to show here.
materialized/ghc-extra-projects/cross/ghc810420210212/.plan.nix/bytestring.nix → materialized/ghc-boot-packages-nix/ghc8106/bytestring.nixrenamed+1−37
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc8106/ghc-boot.nixnew file+39
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc8106/ghc-heap.nixnew file+35
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc8106/ghc-prim.nixnew file+43
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc8106/ghc.nixnew file+62
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc8106/ghci.nixnew file+45
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc8106/hpc.nixnew file+38
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc8106/integer-gmp.nixnew file+33
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc8106/iserv-proxy.nixnew file+45
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc8106/iserv.nixnew file+42
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc8106/libiserv.nixnew file+42
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc8106/remote-iserv.nixnew file+36
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc8106/template-haskell.nixnew file+36
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc8107-aarch64/Win32.nixnew file+46
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc8107-aarch64/base.nixnew file+43
This diff is too big to show here.
materialized/ghc-extra-projects/cross/ghc8103/.plan.nix/bytestring.nix → materialized/ghc-boot-packages-nix/ghc8107-aarch64/bytestring.nixrenamed+1−37
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc8107-aarch64/ghc-boot.nixnew file+39
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc8107-aarch64/ghc-heap.nixnew file+35
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc8107-aarch64/ghc-prim.nixnew file+44
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc8107-aarch64/ghc.nixnew file+62
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc8107-aarch64/ghci.nixnew file+45
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc8107-aarch64/hpc.nixnew file+38
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc8107-aarch64/integer-gmp.nixnew file+33
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc8107-aarch64/iserv-proxy.nixnew file+45
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc8107-aarch64/iserv.nixnew file+42
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc8107-aarch64/libiserv.nixnew file+42
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc8107-aarch64/remote-iserv.nixnew file+36
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc8107-aarch64/template-haskell.nixnew file+36
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc8107/Win32.nixnew file+46
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc8107/base.nixnew file+43
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc8107/bytestring.nixnew file+35
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc8107/ghc-boot.nixnew file+39
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc8107/ghc-heap.nixnew file+35
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc8107/ghc-prim.nixnew file+43
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc8107/ghc.nixnew file+62
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc8107/ghci.nixnew file+45
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc8107/hpc.nixnew file+38
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc8107/integer-gmp.nixnew file+33
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc8107/iserv-proxy.nixnew file+45
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc8107/iserv.nixnew file+42
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc8107/libiserv.nixnew file+42
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc8107/remote-iserv.nixnew file+36
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc8107/template-haskell.nixnew file+36
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc844/ghc.nix−4
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc863/Win32.nixnew file+46
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc863/base.nixnew file+42
This diff is too big to show here.
materialized/ghc-extra-projects/cross/ghc865/.plan.nix/bytestring.nix → materialized/ghc-boot-packages-nix/ghc863/bytestring.nixrenamed+1−57
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc863/ghc-boot.nixnew file+38
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc863/ghc-heap.nixnew file+35
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc863/ghc-prim.nixnew file+40
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc863/ghc.nixnew file+59
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc863/ghci.nixnew file+44
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc863/hpc.nixnew file+37
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc863/integer-gmp.nixnew file+33
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc863/iserv-proxy.nixnew file+45
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc863/iserv.nixnew file+42
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc863/libiserv.nixnew file+42
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc863/remote-iserv.nixnew file+36
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc863/template-haskell.nixnew file+35
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc864/Win32.nixnew file+46
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc864/base.nixnew file+42
This diff is too big to show here.
materialized/ghc-extra-projects/ghcjs/ghc865/.plan.nix/bytestring.nix → materialized/ghc-boot-packages-nix/ghc864/bytestring.nixrenamed+1−57
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc864/ghc-boot.nixnew file+38
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc864/ghc-heap.nixnew file+35
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc864/ghc-prim.nixnew file+40
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc864/ghc.nixnew file+60
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc864/ghci.nixnew file+44
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc864/hpc.nixnew file+37
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc864/integer-gmp.nixnew file+33
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc864/iserv-proxy.nixnew file+45
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc864/iserv.nixnew file+42
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc864/libiserv.nixnew file+42
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc864/remote-iserv.nixnew file+36
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc864/template-haskell.nixnew file+35
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc865/Win32.nixnew file+46
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc865/base.nix+1−1
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc865/ghc-heap.nix+1−1
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc865/ghc-prim.nixnew file+40
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc865/ghc.nix−4
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc865/integer-gmp.nixnew file+33
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc865/iserv-proxy.nix+1−1
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc865/template-haskell.nixnew file+35
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc882/Win32.nixnew file+46
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc882/base.nixnew file+42
This diff is too big to show here.
materialized/ghc-extra-projects/default/ghc8101/.plan.nix/bytestring.nix → materialized/ghc-boot-packages-nix/ghc882/bytestring.nixrenamed+1−57
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc882/ghc-boot.nixnew file+38
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc882/ghc-heap.nixnew file+35
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc882/ghc-prim.nixnew file+40
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc882/ghc.nixnew file+61
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc882/ghci.nixnew file+44
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc882/hpc.nixnew file+37
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc882/integer-gmp.nixnew file+33
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc882/iserv-proxy.nixnew file+45
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc882/iserv.nixnew file+42
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc882/libiserv.nixnew file+42
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc882/remote-iserv.nixnew file+36
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc882/template-haskell.nixnew file+35
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc883-aarch64/Win32.nixnew file+46
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc883-aarch64/base.nixnew file+42
This diff is too big to show here.
materialized/ghc-extra-projects/cross/ghc8101/.plan.nix/bytestring.nix → materialized/ghc-boot-packages-nix/ghc883-aarch64/bytestring.nixrenamed+1−57
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc883-aarch64/ghc-boot.nixnew file+38
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc883-aarch64/ghc-heap.nixnew file+35
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc883-aarch64/ghc-prim.nixnew file+40
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc883-aarch64/ghc.nixnew file+61
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc883-aarch64/ghci.nixnew file+44
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc883-aarch64/hpc.nixnew file+37
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc883-aarch64/integer-gmp.nixnew file+33
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc883-aarch64/iserv-proxy.nixnew file+45
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc883-aarch64/iserv.nixnew file+42
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc883-aarch64/libiserv.nixnew file+42
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc883-aarch64/remote-iserv.nixnew file+36
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc883-aarch64/template-haskell.nixnew file+35
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc883/Win32.nixnew file+46
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc883/base.nixnew file+42
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc883/ghc-heap.nixnew file+35
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc883/ghc-prim.nixnew file+40
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc883/ghc.nix−4
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc883/integer-gmp.nixnew file+33
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc883/iserv-proxy.nix+1−1
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc883/template-haskell.nixnew file+35
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc884-aarch64/Win32.nixnew file+46
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc884-aarch64/base.nixnew file+42
This diff is too big to show here.
materialized/ghc-extra-projects/windows/ghc8101/.plan.nix/bytestring.nix → materialized/ghc-boot-packages-nix/ghc884-aarch64/bytestring.nixrenamed+4−60
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc884-aarch64/ghc-boot.nixnew file+38
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc884-aarch64/ghc-heap.nixnew file+35
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc884-aarch64/ghc-prim.nixnew file+43
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc884-aarch64/ghc.nixnew file+61
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc884-aarch64/ghci.nixnew file+44
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc884-aarch64/hpc.nixnew file+37
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc884-aarch64/integer-gmp.nixnew file+33
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc884-aarch64/iserv-proxy.nixnew file+45
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc884-aarch64/iserv.nixnew file+42
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc884-aarch64/libiserv.nixnew file+42
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc884-aarch64/remote-iserv.nixnew file+36
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc884-aarch64/template-haskell.nixnew file+35
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc884/Win32.nixnew file+46
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc884/base.nixnew file+42
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc884/ghc-heap.nixnew file+35
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc884/ghc-prim.nixnew file+43
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc884/ghc.nix−4
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc884/integer-gmp.nixnew file+33
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc884/iserv-proxy.nix+1−1
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc884/template-haskell.nixnew file+35
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc901-aarch64/Win32.nixnew file+49
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc901-aarch64/base.nixnew file+48
This diff is too big to show here.
materialized/ghc-extra-projects/cross/ghc901/.plan.nix/bytestring.nix → materialized/ghc-boot-packages-nix/ghc901-aarch64/bytestring.nixrenamed+1−37
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc901-aarch64/ghc-bignum.nixnew file+37
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc901-aarch64/ghc-boot.nixnew file+39
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc901-aarch64/ghc-heap.nixnew file+35
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc901-aarch64/ghc-prim.nixnew file+44
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc901-aarch64/ghc.nixnew file+61
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc901-aarch64/ghci.nixnew file+44
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc901-aarch64/hpc.nixnew file+38
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc901-aarch64/integer-gmp.nixnew file+35
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc901-aarch64/iserv-proxy.nixnew file+45
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc901-aarch64/iserv.nixnew file+42
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc901-aarch64/libiserv.nixnew file+42
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc901-aarch64/remote-iserv.nixnew file+36
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc901-aarch64/template-haskell.nixnew file+36
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc901/Win32.nixnew file+49
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc901/base.nixnew file+48
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc901/ghc-heap.nixnew file+35
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc901/iserv-proxy.nix+1−1
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc902-aarch64/Win32.nixnew file+48
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc902-aarch64/base.nixnew file+48
This diff is too big to show here.
materialized/ghc-extra-projects/default/ghc901/.plan.nix/bytestring.nix → materialized/ghc-boot-packages-nix/ghc902-aarch64/bytestring.nixrenamed+1−37
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc902-aarch64/ghc-bignum.nixnew file+37
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc902-aarch64/ghc-boot.nixnew file+39
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc902-aarch64/ghc-heap.nixnew file+35
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc902-aarch64/ghc-prim.nixnew file+44
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc902-aarch64/ghc.nixnew file+61
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc902-aarch64/ghci.nixnew file+45
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc902-aarch64/hpc.nixnew file+38
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc902-aarch64/integer-gmp.nixnew file+35
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc902-aarch64/iserv-proxy.nixnew file+45
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc902-aarch64/iserv.nixnew file+42
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc902-aarch64/libiserv.nixnew file+42
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc902-aarch64/remote-iserv.nixnew file+36
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc902-aarch64/template-haskell.nixnew file+36
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc902/Win32.nixnew file+48
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc902/base.nixnew file+48
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc902/bytestring.nixnew file+35
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc902/ghc-bignum.nixnew file+37
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc902/ghc-boot.nixnew file+39
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc902/ghc-heap.nixnew file+35
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc902/ghc-prim.nixnew file+43
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc902/ghc.nixnew file+61
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc902/ghci.nixnew file+45
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc902/hpc.nixnew file+38
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc902/integer-gmp.nixnew file+35
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc902/iserv-proxy.nixnew file+45
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc902/iserv.nixnew file+42
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc902/libiserv.nixnew file+42
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc902/remote-iserv.nixnew file+36
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc902/template-haskell.nixnew file+36
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc921-aarch64/Win32.nixnew file+48
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc921-aarch64/base.nixnew file+48
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc921-aarch64/bytestring.nixnew file+86
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc921-aarch64/deepseq.nixnew file+47
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc921-aarch64/ghc-bignum.nixnew file+37
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc921-aarch64/ghc-boot.nixnew file+40
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc921-aarch64/ghc-heap.nixnew file+36
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc921-aarch64/ghc-prim.nixnew file+44
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc921-aarch64/ghc.nixnew file+61
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc921-aarch64/ghci.nixnew file+45
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc921-aarch64/hpc.nixnew file+38
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc921-aarch64/integer-gmp.nixnew file+35
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc921-aarch64/iserv-proxy.nixnew file+45
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc921-aarch64/iserv.nixnew file+42
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc921-aarch64/libiserv.nixnew file+42
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc921-aarch64/pretty.nixnew file+56
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc921-aarch64/remote-iserv.nixnew file+36
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc921-aarch64/template-haskell.nixnew file+36
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc921/Win32.nixnew file+48
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc921/base.nixnew file+48
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc921/bytestring.nixnew file+86
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc921/deepseq.nixnew file+47
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc921/ghc-bignum.nixnew file+37
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc921/ghc-boot.nixnew file+40
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc921/ghc-heap.nixnew file+36
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc921/ghc-prim.nixnew file+43
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc921/ghc.nixnew file+61
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc921/ghci.nixnew file+45
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc921/hpc.nixnew file+38
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc921/integer-gmp.nixnew file+35
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc921/iserv-proxy.nixnew file+45
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc921/iserv.nixnew file+42
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc921/libiserv.nixnew file+42
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc921/pretty.nixnew file+56
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc921/remote-iserv.nixnew file+36
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc921/template-haskell.nixnew file+36
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc922-aarch64/Win32.nixnew file+48
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc922-aarch64/base.nixnew file+48
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc922-aarch64/bytestring.nixnew file+68
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc922-aarch64/deepseq.nixnew file+47
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc922-aarch64/ghc-bignum.nixnew file+37
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc922-aarch64/ghc-boot.nixnew file+40
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc922-aarch64/ghc-heap.nixnew file+36
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc922-aarch64/ghc-prim.nixnew file+44
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc922-aarch64/ghc.nixnew file+60
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc922-aarch64/ghci.nixnew file+45
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc922-aarch64/hpc.nixnew file+38
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc922-aarch64/integer-gmp.nixnew file+35
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc922-aarch64/iserv-proxy.nixnew file+45
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc922-aarch64/iserv.nixnew file+42
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc922-aarch64/libiserv.nixnew file+42
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc922-aarch64/pretty.nixnew file+56
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc922-aarch64/remote-iserv.nixnew file+36
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc922-aarch64/template-haskell.nixnew file+36
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc922/Win32.nixnew file+48
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc922/base.nixnew file+48
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc922/bytestring.nixnew file+68
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc922/deepseq.nixnew file+47
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc922/ghc-bignum.nixnew file+37
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc922/ghc-boot.nixnew file+40
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc922/ghc-heap.nixnew file+36
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc922/ghc-prim.nixnew file+43
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc922/ghc.nixnew file+60
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc922/ghci.nixnew file+45
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc922/hpc.nixnew file+38
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc922/integer-gmp.nixnew file+35
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc922/iserv-proxy.nixnew file+45
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc922/iserv.nixnew file+42
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc922/libiserv.nixnew file+42
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc922/pretty.nixnew file+56
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc922/remote-iserv.nixnew file+36
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc922/template-haskell.nixnew file+36
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc923-aarch64/Win32.nixnew file+48
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc923-aarch64/base.nixnew file+48
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc923-aarch64/bytestring.nixnew file+65
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc923-aarch64/deepseq.nixnew file+47
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc923-aarch64/ghc-bignum.nixnew file+37
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc923-aarch64/ghc-boot.nixnew file+40
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc923-aarch64/ghc-heap.nixnew file+36
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc923-aarch64/ghc-prim.nixnew file+44
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc923-aarch64/ghc.nixnew file+60
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc923-aarch64/ghci.nixnew file+45
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc923-aarch64/hpc.nixnew file+38
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc923-aarch64/integer-gmp.nixnew file+35
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc923-aarch64/iserv-proxy.nixnew file+45
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc923-aarch64/iserv.nixnew file+42
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc923-aarch64/libiserv.nixnew file+42
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc923-aarch64/pretty.nixnew file+56
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc923-aarch64/remote-iserv.nixnew file+36
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc923-aarch64/template-haskell.nixnew file+36
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc923/Win32.nixnew file+48
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc923/base.nixnew file+48
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc923/bytestring.nixnew file+65
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc923/deepseq.nixnew file+47
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc923/ghc-bignum.nixnew file+37
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc923/ghc-boot.nixnew file+40
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc923/ghc-heap.nixnew file+36
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc923/ghc-prim.nixnew file+43
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc923/ghc.nixnew file+60
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc923/ghci.nixnew file+45
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc923/hpc.nixnew file+38
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc923/integer-gmp.nixnew file+35
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc923/iserv-proxy.nixnew file+45
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc923/iserv.nixnew file+42
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc923/libiserv.nixnew file+42
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc923/pretty.nixnew file+56
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc923/remote-iserv.nixnew file+36
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc923/template-haskell.nixnew file+36
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc924-aarch64/Win32.nixnew file+48
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc924-aarch64/base.nixnew file+48
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc924-aarch64/bytestring.nixnew file+65
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc924-aarch64/deepseq.nixnew file+47
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc924-aarch64/ghc-bignum.nixnew file+37
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc924-aarch64/ghc-boot.nixnew file+40
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc924-aarch64/ghc-heap.nixnew file+36
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc924-aarch64/ghc-prim.nixnew file+44
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc924-aarch64/ghc.nixnew file+60
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc924-aarch64/ghci.nixnew file+45
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc924-aarch64/hpc.nixnew file+38
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc924-aarch64/integer-gmp.nixnew file+35
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc924-aarch64/iserv-proxy.nixnew file+45
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc924-aarch64/iserv.nixnew file+42
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc924-aarch64/libiserv.nixnew file+42
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc924-aarch64/pretty.nixnew file+56
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc924-aarch64/remote-iserv.nixnew file+36
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc924-aarch64/template-haskell.nixnew file+36
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc924/Win32.nixnew file+48
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc924/base.nixnew file+48
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc924/bytestring.nixnew file+65
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc924/deepseq.nixnew file+47
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc924/ghc-bignum.nixnew file+37
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc924/ghc-boot.nixnew file+40
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc924/ghc-heap.nixnew file+36
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc924/ghc-prim.nixnew file+43
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc924/ghc.nixnew file+60
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc924/ghci.nixnew file+45
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc924/hpc.nixnew file+38
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc924/integer-gmp.nixnew file+35
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc924/iserv-proxy.nixnew file+45
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc924/iserv.nixnew file+42
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc924/libiserv.nixnew file+42
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc924/pretty.nixnew file+56
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc924/remote-iserv.nixnew file+36
This diff is too big to show here.
materialized/ghc-boot-packages-nix/ghc924/template-haskell.nixnew file+36
This diff is too big to show here.
materialized/ghc-extra-projects/cross/ghc8101/.plan.nix/Win32.nixnew file+155
This diff is too big to show here.
materialized/ghc-extra-projects/cross/ghc8101/.plan.nix/ghc-boot.nix+1−1
This diff is too big to show here.
materialized/ghc-extra-projects/cross/ghc8101/.plan.nix/ghc.nix+1−1
This diff is too big to show here.
materialized/ghc-extra-projects/cross/ghc8101/.plan.nix/ghci.nix+1−1
This diff is too big to show here.
materialized/ghc-extra-projects/cross/ghc8101/.plan.nix/hpc.nix+1−1
This diff is too big to show here.
materialized/ghc-extra-projects/cross/ghc8101/.plan.nix/iserv-proxy.nix+1−1
This diff is too big to show here.
materialized/ghc-extra-projects/cross/ghc8101/.plan.nix/iserv.nix+1−1
This diff is too big to show here.
materialized/ghc-extra-projects/cross/ghc8101/.plan.nix/libiserv.nix+1−1
This diff is too big to show here.
materialized/ghc-extra-projects/cross/ghc8101/.plan.nix/remote-iserv.nix+1−1
This diff is too big to show here.
materialized/ghc-extra-projects/cross/ghc8101/default.nix+77−39
This diff is too big to show here.
materialized/ghc-extra-projects/cross/ghc8102/.plan.nix/Win32.nixnew file+155
This diff is too big to show here.
materialized/ghc-extra-projects/cross/ghc8102/.plan.nix/bytestring.nixdeleted−136
This diff is too big to show here.
materialized/ghc-extra-projects/cross/ghc8102/.plan.nix/iserv-proxy.nix+1−1
This diff is too big to show here.
materialized/ghc-extra-projects/cross/ghc8102/default.nix+79−41
This diff is too big to show here.
materialized/ghc-extra-projects/cross/ghc8103/.plan.nix/Win32.nixnew file+155
This diff is too big to show here.
materialized/ghc-extra-projects/cross/ghc8103/.plan.nix/iserv-proxy.nix+1−1
This diff is too big to show here.
materialized/ghc-extra-projects/cross/ghc8103/default.nix+79−41
This diff is too big to show here.
materialized/ghc-extra-projects/cross/ghc8104/.plan.nix/Win32.nixnew file+155
This diff is too big to show here.
materialized/ghc-extra-projects/cross/ghc8104/.plan.nix/iserv-proxy.nix+1−1
This diff is too big to show here.
materialized/ghc-extra-projects/cross/ghc8104/default.nix+78−40
This diff is too big to show here.
materialized/ghc-extra-projects/cross/ghc810420210212/.plan.nix/Win32.nixnew file+155
This diff is too big to show here.
materialized/ghc-extra-projects/cross/ghc810420210212/.plan.nix/iserv-proxy.nix+1−1
This diff is too big to show here.
materialized/ghc-extra-projects/cross/ghc810420210212/default.nix+78−40
This diff is too big to show here.
materialized/ghc-extra-projects/cross/ghc8105/.plan.nix/Win32.nixnew file+155
This diff is too big to show here.
materialized/ghc-extra-projects/cross/ghc8105/.plan.nix/iserv-proxy.nix+1−1
This diff is too big to show here.
materialized/ghc-extra-projects/cross/ghc8105/default.nix+78−40
This diff is too big to show here.
materialized/ghc-extra-projects/cross/ghc8106/.plan.nix/Win32.nixnew file+155
This diff is too big to show here.
materialized/ghc-extra-projects/cross/ghc8106/.plan.nix/ghc-boot.nixnew file+60
This diff is too big to show here.
materialized/ghc-extra-projects/cross/ghc8106/.plan.nix/ghc.nixnew file+586
This diff is too big to show here.
materialized/ghc-extra-projects/cross/ghc8106/.plan.nix/ghci.nixnew file+71
This diff is too big to show here.
materialized/ghc-extra-projects/cross/ghc8106/.plan.nix/hpc.nixnew file+52
This diff is too big to show here.
materialized/ghc-extra-projects/cross/ghc8106/.plan.nix/iserv-proxy.nixnew file+55
This diff is too big to show here.
materialized/ghc-extra-projects/cross/ghc8106/.plan.nix/iserv.nixnew file+54
This diff is too big to show here.
materialized/ghc-extra-projects/cross/ghc8106/.plan.nix/libiserv.nixnew file+58
This diff is too big to show here.
materialized/ghc-extra-projects/cross/ghc8106/.plan.nix/remote-iserv.nixnew file+46
This diff is too big to show here.
materialized/ghc-extra-projects/cross/ghc8106/default.nixnew file+128
This diff is too big to show here.
materialized/ghc-extra-projects/cross/ghc8107/.plan.nix/Win32.nixnew file+155
This diff is too big to show here.
materialized/ghc-extra-projects/cross/ghc8107/.plan.nix/ghc-boot.nixnew file+60
This diff is too big to show here.
materialized/ghc-extra-projects/cross/ghc8107/.plan.nix/ghc.nixnew file+586
This diff is too big to show here.
materialized/ghc-extra-projects/cross/ghc8107/.plan.nix/ghci.nixnew file+71
This diff is too big to show here.
materialized/ghc-extra-projects/cross/ghc8107/.plan.nix/hpc.nixnew file+52
This diff is too big to show here.
materialized/ghc-extra-projects/cross/ghc8107/.plan.nix/iserv-proxy.nixnew file+55
This diff is too big to show here.
materialized/ghc-extra-projects/cross/ghc8107/.plan.nix/iserv.nixnew file+54
This diff is too big to show here.
materialized/ghc-extra-projects/cross/ghc8107/.plan.nix/libiserv.nixnew file+58
This diff is too big to show here.
materialized/ghc-extra-projects/cross/ghc8107/.plan.nix/remote-iserv.nixnew file+46
This diff is too big to show here.
materialized/ghc-extra-projects/cross/ghc8107/default.nixnew file+128
This diff is too big to show here.
materialized/ghc-extra-projects/cross/ghc865/.plan.nix/Win32.nixnew file+155
This diff is too big to show here.
materialized/ghc-extra-projects/cross/ghc865/.plan.nix/ghc.nix−4
This diff is too big to show here.
materialized/ghc-extra-projects/cross/ghc865/.plan.nix/iserv-proxy.nix+1−1
This diff is too big to show here.
materialized/ghc-extra-projects/cross/ghc865/default.nix+78−44
This diff is too big to show here.
materialized/ghc-extra-projects/cross/ghc882/.plan.nix/Win32.nixnew file+155
This diff is too big to show here.
materialized/ghc-extra-projects/cross/ghc882/.plan.nix/ghc-boot.nixnew file+53
This diff is too big to show here.
materialized/ghc-extra-projects/cross/ghc882/.plan.nix/ghc.nixnew file+573
This diff is too big to show here.
materialized/ghc-extra-projects/cross/ghc882/.plan.nix/ghci.nixnew file+70
This diff is too big to show here.
materialized/ghc-extra-projects/cross/ghc882/.plan.nix/hpc.nixnew file+51
This diff is too big to show here.
materialized/ghc-extra-projects/cross/ghc882/.plan.nix/iserv-proxy.nixnew file+55
This diff is too big to show here.
materialized/ghc-extra-projects/cross/ghc882/.plan.nix/iserv.nixnew file+54
This diff is too big to show here.
materialized/ghc-extra-projects/cross/ghc882/.plan.nix/libiserv.nixnew file+58
This diff is too big to show here.
materialized/ghc-extra-projects/cross/ghc882/.plan.nix/remote-iserv.nixnew file+46
This diff is too big to show here.
materialized/ghc-extra-projects/cross/ghc882/default.nixnew file+127
This diff is too big to show here.
materialized/ghc-extra-projects/cross/ghc883/.plan.nix/Win32.nixnew file+155
This diff is too big to show here.
materialized/ghc-extra-projects/cross/ghc883/.plan.nix/bytestring.nixdeleted−136
This diff is too big to show here.
materialized/ghc-extra-projects/cross/ghc883/.plan.nix/ghc.nix−4
This diff is too big to show here.
materialized/ghc-extra-projects/cross/ghc883/.plan.nix/iserv-proxy.nix+1−1
This diff is too big to show here.
materialized/ghc-extra-projects/cross/ghc883/default.nix+78−45
This diff is too big to show here.
materialized/ghc-extra-projects/cross/ghc884/.plan.nix/Win32.nixnew file+155
This diff is too big to show here.
materialized/ghc-extra-projects/cross/ghc884/.plan.nix/bytestring.nixdeleted−167
This diff is too big to show here.
materialized/ghc-extra-projects/cross/ghc884/.plan.nix/ghc.nix−4
This diff is too big to show here.
materialized/ghc-extra-projects/cross/ghc884/.plan.nix/iserv-proxy.nix+1−1
This diff is too big to show here.
materialized/ghc-extra-projects/cross/ghc884/default.nix+78−45
This diff is too big to show here.
materialized/ghc-extra-projects/cross/ghc901/.plan.nix/Win32.nixnew file+158
This diff is too big to show here.
materialized/ghc-extra-projects/cross/ghc901/.plan.nix/iserv-proxy.nix+1−1
This diff is too big to show here.
materialized/ghc-extra-projects/cross/ghc901/default.nix+85−44
This diff is too big to show here.
materialized/ghc-extra-projects/cross/ghc902/.plan.nix/Win32.nixnew file+158
This diff is too big to show here.
materialized/ghc-extra-projects/cross/ghc902/.plan.nix/ghc-boot.nixnew file+61
This diff is too big to show here.
materialized/ghc-extra-projects/cross/ghc902/.plan.nix/ghc.nixnew file+572
This diff is too big to show here.
materialized/ghc-extra-projects/cross/ghc902/.plan.nix/ghci.nixnew file+71
This diff is too big to show here.
materialized/ghc-extra-projects/cross/ghc902/.plan.nix/hpc.nixnew file+52
This diff is too big to show here.
materialized/ghc-extra-projects/cross/ghc902/.plan.nix/iserv-proxy.nixnew file+55
This diff is too big to show here.
materialized/ghc-extra-projects/cross/ghc902/.plan.nix/iserv.nixnew file+54
This diff is too big to show here.
materialized/ghc-extra-projects/cross/ghc902/.plan.nix/libiserv.nixnew file+58
This diff is too big to show here.
materialized/ghc-extra-projects/cross/ghc902/.plan.nix/remote-iserv.nixnew file+46
This diff is too big to show here.
materialized/ghc-extra-projects/cross/ghc902/default.nixnew file+136
This diff is too big to show here.
materialized/ghc-extra-projects/cross/ghc921/.plan.nix/Win32.nixnew file+158
This diff is too big to show here.
materialized/ghc-extra-projects/cross/ghc921/.plan.nix/ghc-boot.nixnew file+64
This diff is too big to show here.
materialized/ghc-extra-projects/cross/ghc921/.plan.nix/ghc.nixnew file+663
This diff is too big to show here.
materialized/ghc-extra-projects/cross/ghc921/.plan.nix/ghci.nixnew file+70
This diff is too big to show here.
materialized/ghc-extra-projects/cross/ghc921/.plan.nix/hpc.nixnew file+52
This diff is too big to show here.
materialized/ghc-extra-projects/cross/ghc921/.plan.nix/iserv-proxy.nixnew file+55
This diff is too big to show here.
materialized/ghc-extra-projects/cross/ghc921/.plan.nix/iserv.nixnew file+54
This diff is too big to show here.
materialized/ghc-extra-projects/cross/ghc921/.plan.nix/libiserv.nixnew file+58
This diff is too big to show here.
materialized/ghc-extra-projects/cross/ghc921/.plan.nix/remote-iserv.nixnew file+46
This diff is too big to show here.
materialized/ghc-extra-projects/cross/ghc921/default.nixnew file+143
This diff is too big to show here.
materialized/ghc-extra-projects/cross/ghc922/.plan.nix/Win32.nixnew file+158
This diff is too big to show here.
materialized/ghc-extra-projects/cross/ghc922/.plan.nix/ghc-boot.nixnew file+64
This diff is too big to show here.
materialized/ghc-extra-projects/cross/ghc922/.plan.nix/ghc.nixnew file+661
This diff is too big to show here.
materialized/ghc-extra-projects/cross/ghc922/.plan.nix/ghci.nixnew file+70
This diff is too big to show here.
materialized/ghc-extra-projects/cross/ghc922/.plan.nix/hpc.nixnew file+52
This diff is too big to show here.
materialized/ghc-extra-projects/cross/ghc922/.plan.nix/iserv-proxy.nixnew file+55
This diff is too big to show here.
materialized/ghc-extra-projects/cross/ghc922/.plan.nix/iserv.nixnew file+54
This diff is too big to show here.
materialized/ghc-extra-projects/cross/ghc922/.plan.nix/libiserv.nixnew file+58
This diff is too big to show here.
materialized/ghc-extra-projects/cross/ghc922/.plan.nix/remote-iserv.nixnew file+46
This diff is too big to show here.
materialized/ghc-extra-projects/cross/ghc922/default.nixnew file+138
This diff is too big to show here.
materialized/ghc-extra-projects/cross/ghc923/.plan.nix/Win32.nixnew file+158
This diff is too big to show here.
materialized/ghc-extra-projects/cross/ghc923/.plan.nix/ghc-boot.nixnew file+64
This diff is too big to show here.
materialized/ghc-extra-projects/cross/ghc923/.plan.nix/ghc.nixnew file+661
This diff is too big to show here.
materialized/ghc-extra-projects/cross/ghc923/.plan.nix/ghci.nixnew file+70
This diff is too big to show here.
materialized/ghc-extra-projects/cross/ghc923/.plan.nix/hpc.nixnew file+52
This diff is too big to show here.
materialized/ghc-extra-projects/cross/ghc923/.plan.nix/iserv-proxy.nixnew file+55
This diff is too big to show here.
materialized/ghc-extra-projects/cross/ghc923/.plan.nix/iserv.nixnew file+54
This diff is too big to show here.
materialized/ghc-extra-projects/cross/ghc923/.plan.nix/libiserv.nixnew file+58
This diff is too big to show here.
materialized/ghc-extra-projects/cross/ghc923/.plan.nix/remote-iserv.nixnew file+46
This diff is too big to show here.
materialized/ghc-extra-projects/cross/ghc923/default.nixnew file+138
This diff is too big to show here.
materialized/ghc-extra-projects/cross/ghc924/.plan.nix/Win32.nixnew file+158
This diff is too big to show here.
materialized/ghc-extra-projects/cross/ghc924/.plan.nix/ghc-boot.nixnew file+64
This diff is too big to show here.
materialized/ghc-extra-projects/cross/ghc924/.plan.nix/ghc.nixnew file+661
This diff is too big to show here.
materialized/ghc-extra-projects/cross/ghc924/.plan.nix/ghci.nixnew file+70
This diff is too big to show here.
materialized/ghc-extra-projects/cross/ghc924/.plan.nix/hpc.nixnew file+52
This diff is too big to show here.
materialized/ghc-extra-projects/cross/ghc924/.plan.nix/iserv-proxy.nixnew file+55
This diff is too big to show here.
materialized/ghc-extra-projects/cross/ghc924/.plan.nix/iserv.nixnew file+54
This diff is too big to show here.
materialized/ghc-extra-projects/cross/ghc924/.plan.nix/libiserv.nixnew file+58
This diff is too big to show here.
materialized/ghc-extra-projects/cross/ghc924/.plan.nix/remote-iserv.nixnew file+46
This diff is too big to show here.
materialized/ghc-extra-projects/cross/ghc924/default.nixnew file+137
This diff is too big to show here.
materialized/ghc-extra-projects/default/ghc8101/.plan.nix/Win32.nixnew file+155
This diff is too big to show here.
materialized/ghc-extra-projects/default/ghc8101/.plan.nix/ghc-boot.nix+1−1
This diff is too big to show here.
materialized/ghc-extra-projects/default/ghc8101/.plan.nix/ghc.nix+1−1
This diff is too big to show here.
materialized/ghc-extra-projects/default/ghc8101/.plan.nix/ghci.nix+1−1
This diff is too big to show here.
materialized/ghc-extra-projects/default/ghc8101/.plan.nix/hpc.nix+1−1
This diff is too big to show here.
materialized/ghc-extra-projects/default/ghc8101/.plan.nix/iserv-proxy.nix+1−1
This diff is too big to show here.
materialized/ghc-extra-projects/default/ghc8101/.plan.nix/iserv.nix+1−1
This diff is too big to show here.
materialized/ghc-extra-projects/default/ghc8101/.plan.nix/libiserv.nix+1−1
This diff is too big to show here.
materialized/ghc-extra-projects/default/ghc8101/.plan.nix/remote-iserv.nix+1−1
This diff is too big to show here.
materialized/ghc-extra-projects/default/ghc8101/default.nix+78−40
This diff is too big to show here.
materialized/ghc-extra-projects/default/ghc8102/.plan.nix/Win32.nixnew file+155
This diff is too big to show here.
materialized/ghc-extra-projects/default/ghc8102/.plan.nix/bytestring.nixdeleted−136
This diff is too big to show here.
materialized/ghc-extra-projects/default/ghc8102/.plan.nix/iserv-proxy.nix+1−1
This diff is too big to show here.
materialized/ghc-extra-projects/default/ghc8102/default.nix+80−42
This diff is too big to show here.
materialized/ghc-extra-projects/default/ghc8103/.plan.nix/Win32.nixnew file+155
This diff is too big to show here.
materialized/ghc-extra-projects/default/ghc8103/.plan.nix/bytestring.nixdeleted−71
This diff is too big to show here.
materialized/ghc-extra-projects/default/ghc8103/.plan.nix/iserv-proxy.nix+1−1
This diff is too big to show here.
materialized/ghc-extra-projects/default/ghc8103/default.nix+80−42
This diff is too big to show here.
materialized/ghc-extra-projects/default/ghc8104/.plan.nix/Win32.nixnew file+155
This diff is too big to show here.
materialized/ghc-extra-projects/default/ghc8104/.plan.nix/bytestring.nixdeleted−71
This diff is too big to show here.
materialized/ghc-extra-projects/default/ghc8104/.plan.nix/iserv-proxy.nix+1−1
This diff is too big to show here.
materialized/ghc-extra-projects/default/ghc8104/default.nix+79−41
This diff is too big to show here.
materialized/ghc-extra-projects/default/ghc810420210212/.plan.nix/Win32.nixnew file+155
This diff is too big to show here.
materialized/ghc-extra-projects/default/ghc810420210212/.plan.nix/bytestring.nixdeleted−71
This diff is too big to show here.
materialized/ghc-extra-projects/default/ghc810420210212/.plan.nix/iserv-proxy.nix+1−1
This diff is too big to show here.
materialized/ghc-extra-projects/default/ghc810420210212/default.nix+79−41
This diff is too big to show here.
materialized/ghc-extra-projects/default/ghc8105/.plan.nix/Win32.nixnew file+155
This diff is too big to show here.
materialized/ghc-extra-projects/default/ghc8105/.plan.nix/bytestring.nixdeleted−71
This diff is too big to show here.
materialized/ghc-extra-projects/default/ghc8105/.plan.nix/iserv-proxy.nix+1−1
This diff is too big to show here.
materialized/ghc-extra-projects/default/ghc8105/default.nix+79−41
This diff is too big to show here.
materialized/ghc-extra-projects/default/ghc8106/.plan.nix/Win32.nixnew file+155
This diff is too big to show here.
materialized/ghc-extra-projects/default/ghc8106/.plan.nix/ghc-boot.nixnew file+60
This diff is too big to show here.
materialized/ghc-extra-projects/default/ghc8106/.plan.nix/ghc.nixnew file+586
This diff is too big to show here.
materialized/ghc-extra-projects/default/ghc8106/.plan.nix/ghci.nixnew file+71
This diff is too big to show here.
materialized/ghc-extra-projects/default/ghc8106/.plan.nix/hpc.nixnew file+52
This diff is too big to show here.
materialized/ghc-extra-projects/default/ghc8106/.plan.nix/iserv-proxy.nixnew file+55
This diff is too big to show here.
materialized/ghc-extra-projects/default/ghc8106/.plan.nix/iserv.nixnew file+54
This diff is too big to show here.
materialized/ghc-extra-projects/default/ghc8106/.plan.nix/libiserv.nixnew file+58
This diff is too big to show here.
materialized/ghc-extra-projects/default/ghc8106/.plan.nix/remote-iserv.nixnew file+46
This diff is too big to show here.
materialized/ghc-extra-projects/default/ghc8106/default.nixnew file+129
This diff is too big to show here.
materialized/ghc-extra-projects/default/ghc8107/.plan.nix/Win32.nixnew file+155
This diff is too big to show here.
materialized/ghc-extra-projects/default/ghc8107/.plan.nix/ghc-boot.nixnew file+60
This diff is too big to show here.
materialized/ghc-extra-projects/default/ghc8107/.plan.nix/ghc.nixnew file+586
This diff is too big to show here.
materialized/ghc-extra-projects/default/ghc8107/.plan.nix/ghci.nixnew file+71
This diff is too big to show here.
materialized/ghc-extra-projects/default/ghc8107/.plan.nix/hpc.nixnew file+52
This diff is too big to show here.
materialized/ghc-extra-projects/default/ghc8107/.plan.nix/iserv-proxy.nixnew file+55
This diff is too big to show here.
materialized/ghc-extra-projects/default/ghc8107/.plan.nix/iserv.nixnew file+54
This diff is too big to show here.
materialized/ghc-extra-projects/default/ghc8107/.plan.nix/libiserv.nixnew file+58
This diff is too big to show here.
materialized/ghc-extra-projects/default/ghc8107/.plan.nix/remote-iserv.nixnew file+46
This diff is too big to show here.
materialized/ghc-extra-projects/default/ghc8107/default.nixnew file+129
This diff is too big to show here.
materialized/ghc-extra-projects/default/ghc863/.plan.nix/Win32.nixnew file+155
This diff is too big to show here.
materialized/ghc-extra-projects/default/ghc863/.plan.nix/ghc-boot.nixnew file+53
This diff is too big to show here.
materialized/ghc-extra-projects/default/ghc863/.plan.nix/ghc.nixnew file+555
This diff is too big to show here.
materialized/ghc-extra-projects/default/ghc863/.plan.nix/ghci.nixnew file+70
This diff is too big to show here.
materialized/ghc-extra-projects/default/ghc863/.plan.nix/hpc.nixnew file+51
This diff is too big to show here.
materialized/ghc-extra-projects/default/ghc863/.plan.nix/iserv-proxy.nixnew file+55
This diff is too big to show here.
materialized/ghc-extra-projects/default/ghc863/.plan.nix/iserv.nixnew file+54
This diff is too big to show here.
materialized/ghc-extra-projects/default/ghc863/.plan.nix/libiserv.nixnew file+58
This diff is too big to show here.
materialized/ghc-extra-projects/default/ghc863/.plan.nix/remote-iserv.nixnew file+46
This diff is too big to show here.
materialized/ghc-extra-projects/default/ghc863/default.nixnew file+126
This diff is too big to show here.
materialized/ghc-extra-projects/default/ghc864/.plan.nix/Win32.nixnew file+155
This diff is too big to show here.
materialized/ghc-extra-projects/default/ghc864/.plan.nix/ghc-boot.nixnew file+53
This diff is too big to show here.
materialized/ghc-extra-projects/default/ghc864/.plan.nix/ghc.nixnew file+556
This diff is too big to show here.
materialized/ghc-extra-projects/default/ghc864/.plan.nix/ghci.nixnew file+70
This diff is too big to show here.
materialized/ghc-extra-projects/default/ghc864/.plan.nix/hpc.nixnew file+51
This diff is too big to show here.
materialized/ghc-extra-projects/default/ghc864/.plan.nix/iserv-proxy.nixnew file+55
This diff is too big to show here.
materialized/ghc-extra-projects/default/ghc864/.plan.nix/iserv.nixnew file+54
This diff is too big to show here.
materialized/ghc-extra-projects/default/ghc864/.plan.nix/libiserv.nixnew file+58
This diff is too big to show here.
materialized/ghc-extra-projects/default/ghc864/.plan.nix/remote-iserv.nixnew file+46
This diff is too big to show here.
materialized/ghc-extra-projects/default/ghc864/default.nixnew file+127
This diff is too big to show here.
materialized/ghc-extra-projects/default/ghc865/.plan.nix/Win32.nixnew file+155
This diff is too big to show here.
materialized/ghc-extra-projects/default/ghc865/.plan.nix/bytestring.nixdeleted−136
This diff is too big to show here.
materialized/ghc-extra-projects/default/ghc865/.plan.nix/ghc.nix−4
This diff is too big to show here.
materialized/ghc-extra-projects/default/ghc865/.plan.nix/iserv-proxy.nix+1−1
This diff is too big to show here.
materialized/ghc-extra-projects/default/ghc865/default.nix+78−45
This diff is too big to show here.
materialized/ghc-extra-projects/default/ghc882/.plan.nix/Win32.nixnew file+155
This diff is too big to show here.
materialized/ghc-extra-projects/default/ghc882/.plan.nix/ghc-boot.nixnew file+53
This diff is too big to show here.
materialized/ghc-extra-projects/default/ghc882/.plan.nix/ghc.nixnew file+573
This diff is too big to show here.
materialized/ghc-extra-projects/default/ghc882/.plan.nix/ghci.nixnew file+70
This diff is too big to show here.
materialized/ghc-extra-projects/default/ghc882/.plan.nix/hpc.nixnew file+51
This diff is too big to show here.
materialized/ghc-extra-projects/default/ghc882/.plan.nix/iserv-proxy.nixnew file+55
This diff is too big to show here.
materialized/ghc-extra-projects/default/ghc882/.plan.nix/iserv.nixnew file+54
This diff is too big to show here.
materialized/ghc-extra-projects/default/ghc882/.plan.nix/libiserv.nixnew file+58
This diff is too big to show here.
materialized/ghc-extra-projects/default/ghc882/.plan.nix/remote-iserv.nixnew file+46
This diff is too big to show here.
materialized/ghc-extra-projects/default/ghc882/default.nixnew file+128
This diff is too big to show here.
materialized/ghc-extra-projects/default/ghc883/.plan.nix/Win32.nixnew file+155
This diff is too big to show here.
materialized/ghc-extra-projects/default/ghc883/.plan.nix/bytestring.nixdeleted−136
This diff is too big to show here.
materialized/ghc-extra-projects/default/ghc883/.plan.nix/ghc.nix−4
This diff is too big to show here.
materialized/ghc-extra-projects/default/ghc883/.plan.nix/iserv-proxy.nix+1−1
This diff is too big to show here.
materialized/ghc-extra-projects/default/ghc883/default.nix+79−46
This diff is too big to show here.
materialized/ghc-extra-projects/default/ghc884/.plan.nix/Win32.nixnew file+155
This diff is too big to show here.
materialized/ghc-extra-projects/default/ghc884/.plan.nix/bytestring.nixdeleted−167
This diff is too big to show here.
materialized/ghc-extra-projects/default/ghc884/.plan.nix/ghc.nix−4
This diff is too big to show here.
materialized/ghc-extra-projects/default/ghc884/.plan.nix/iserv-proxy.nix+1−1
This diff is too big to show here.
materialized/ghc-extra-projects/default/ghc884/default.nix+79−46
This diff is too big to show here.
materialized/ghc-extra-projects/default/ghc901/.plan.nix/Win32.nixnew file+158
This diff is too big to show here.
materialized/ghc-extra-projects/default/ghc901/.plan.nix/iserv-proxy.nix+1−1
This diff is too big to show here.
materialized/ghc-extra-projects/default/ghc901/default.nix+86−45
This diff is too big to show here.
materialized/ghc-extra-projects/default/ghc902/.plan.nix/Win32.nixnew file+158
This diff is too big to show here.
materialized/ghc-extra-projects/default/ghc902/.plan.nix/ghc-boot.nixnew file+61
This diff is too big to show here.
materialized/ghc-extra-projects/default/ghc902/.plan.nix/ghc.nixnew file+572
This diff is too big to show here.
materialized/ghc-extra-projects/default/ghc902/.plan.nix/ghci.nixnew file+71
This diff is too big to show here.
materialized/ghc-extra-projects/default/ghc902/.plan.nix/hpc.nixnew file+52
This diff is too big to show here.
materialized/ghc-extra-projects/default/ghc902/.plan.nix/iserv-proxy.nixnew file+55
This diff is too big to show here.
materialized/ghc-extra-projects/default/ghc902/.plan.nix/iserv.nixnew file+54
This diff is too big to show here.
materialized/ghc-extra-projects/default/ghc902/.plan.nix/libiserv.nixnew file+58
This diff is too big to show here.
materialized/ghc-extra-projects/default/ghc902/.plan.nix/remote-iserv.nixnew file+46
This diff is too big to show here.
materialized/ghc-extra-projects/default/ghc902/default.nixnew file+136
This diff is too big to show here.
materialized/ghc-extra-projects/default/ghc921/.plan.nix/Win32.nixnew file+158
This diff is too big to show here.
materialized/ghc-extra-projects/default/ghc921/.plan.nix/ghc-boot.nixnew file+64
This diff is too big to show here.
materialized/ghc-extra-projects/default/ghc921/.plan.nix/ghc.nixnew file+663
This diff is too big to show here.
materialized/ghc-extra-projects/default/ghc921/.plan.nix/ghci.nixnew file+70
This diff is too big to show here.
materialized/ghc-extra-projects/default/ghc921/.plan.nix/hpc.nixnew file+52
This diff is too big to show here.
materialized/ghc-extra-projects/default/ghc921/.plan.nix/iserv-proxy.nixnew file+55
This diff is too big to show here.
materialized/ghc-extra-projects/default/ghc921/.plan.nix/iserv.nixnew file+54
This diff is too big to show here.
materialized/ghc-extra-projects/default/ghc921/.plan.nix/libiserv.nixnew file+58
This diff is too big to show here.
materialized/ghc-extra-projects/default/ghc921/.plan.nix/remote-iserv.nixnew file+46
This diff is too big to show here.
materialized/ghc-extra-projects/default/ghc921/default.nixnew file+144
This diff is too big to show here.
materialized/ghc-extra-projects/default/ghc922/.plan.nix/Win32.nixnew file+158
This diff is too big to show here.
materialized/ghc-extra-projects/default/ghc922/.plan.nix/ghc-boot.nixnew file+64
This diff is too big to show here.
materialized/ghc-extra-projects/default/ghc922/.plan.nix/ghc.nixnew file+661
This diff is too big to show here.
materialized/ghc-extra-projects/default/ghc922/.plan.nix/ghci.nixnew file+70
This diff is too big to show here.
materialized/ghc-extra-projects/default/ghc922/.plan.nix/hpc.nixnew file+52
This diff is too big to show here.
materialized/ghc-extra-projects/default/ghc922/.plan.nix/iserv-proxy.nixnew file+55
This diff is too big to show here.
materialized/ghc-extra-projects/default/ghc922/.plan.nix/iserv.nixnew file+54
This diff is too big to show here.
materialized/ghc-extra-projects/default/ghc922/.plan.nix/libiserv.nixnew file+58
This diff is too big to show here.
materialized/ghc-extra-projects/default/ghc922/.plan.nix/remote-iserv.nixnew file+46
This diff is too big to show here.
materialized/ghc-extra-projects/default/ghc922/default.nixnew file+138
This diff is too big to show here.
materialized/ghc-extra-projects/default/ghc923/.plan.nix/Win32.nixnew file+158
This diff is too big to show here.
materialized/ghc-extra-projects/default/ghc923/.plan.nix/ghc-boot.nixnew file+64
This diff is too big to show here.
materialized/ghc-extra-projects/default/ghc923/.plan.nix/ghc.nixnew file+661
This diff is too big to show here.
materialized/ghc-extra-projects/default/ghc923/.plan.nix/ghci.nixnew file+70
This diff is too big to show here.
materialized/ghc-extra-projects/default/ghc923/.plan.nix/hpc.nixnew file+52
This diff is too big to show here.
materialized/ghc-extra-projects/default/ghc923/.plan.nix/iserv-proxy.nixnew file+55
This diff is too big to show here.
materialized/ghc-extra-projects/default/ghc923/.plan.nix/iserv.nixnew file+54
This diff is too big to show here.
materialized/ghc-extra-projects/default/ghc923/.plan.nix/libiserv.nixnew file+58
This diff is too big to show here.
materialized/ghc-extra-projects/default/ghc923/.plan.nix/remote-iserv.nixnew file+46
This diff is too big to show here.
materialized/ghc-extra-projects/default/ghc923/default.nixnew file+138
This diff is too big to show here.
materialized/ghc-extra-projects/default/ghc924/.plan.nix/Win32.nixnew file+158
This diff is too big to show here.
materialized/ghc-extra-projects/default/ghc924/.plan.nix/ghc-boot.nixnew file+64
This diff is too big to show here.
materialized/ghc-extra-projects/default/ghc924/.plan.nix/ghc.nixnew file+661
This diff is too big to show here.
materialized/ghc-extra-projects/default/ghc924/.plan.nix/ghci.nixnew file+70
This diff is too big to show here.
materialized/ghc-extra-projects/default/ghc924/.plan.nix/hpc.nixnew file+52
This diff is too big to show here.
materialized/ghc-extra-projects/default/ghc924/.plan.nix/iserv-proxy.nixnew file+55
This diff is too big to show here.
materialized/ghc-extra-projects/default/ghc924/.plan.nix/iserv.nixnew file+54
This diff is too big to show here.
materialized/ghc-extra-projects/default/ghc924/.plan.nix/libiserv.nixnew file+58
This diff is too big to show here.
materialized/ghc-extra-projects/default/ghc924/.plan.nix/remote-iserv.nixnew file+46
This diff is too big to show here.
materialized/ghc-extra-projects/default/ghc924/default.nixnew file+138
This diff is too big to show here.
materialized/ghc-extra-projects/ghcjs/ghc8105/.plan.nix/Win32.nixnew file+155
This diff is too big to show here.
materialized/ghc-extra-projects/ghcjs/ghc8105/.plan.nix/bytestring.nixdeleted−71
This diff is too big to show here.
materialized/ghc-extra-projects/ghcjs/ghc8105/.plan.nix/ghc-boot.nix+1−1
This diff is too big to show here.
materialized/ghc-extra-projects/ghcjs/ghc8105/.plan.nix/ghc.nix+1−1
This diff is too big to show here.
materialized/ghc-extra-projects/ghcjs/ghc8105/.plan.nix/ghci.nix+1−1
This diff is too big to show here.
materialized/ghc-extra-projects/ghcjs/ghc8105/.plan.nix/iserv-proxy.nix+2−2
This diff is too big to show here.
materialized/ghc-extra-projects/ghcjs/ghc8105/.plan.nix/iserv.nix+1−1
This diff is too big to show here.
materialized/ghc-extra-projects/ghcjs/ghc8105/.plan.nix/libiserv.nix+1−1
This diff is too big to show here.
materialized/ghc-extra-projects/ghcjs/ghc8105/.plan.nix/remote-iserv.nix+1−1
This diff is too big to show here.
materialized/ghc-extra-projects/ghcjs/ghc8105/default.nix+84−43
This diff is too big to show here.
materialized/ghc-extra-projects/ghcjs/ghc8106/.plan.nix/Win32.nixnew file+155
This diff is too big to show here.
materialized/ghc-extra-projects/ghcjs/ghc8106/.plan.nix/ghc-boot.nix+60
This diff is too big to show here.
materialized/ghc-extra-projects/ghcjs/ghc8106/.plan.nix/ghc.nix+586
This diff is too big to show here.
materialized/ghc-extra-projects/ghcjs/ghc8106/.plan.nix/ghci.nix+71
This diff is too big to show here.
materialized/ghc-extra-projects/ghcjs/ghc8106/.plan.nix/hpc.nix+52
This diff is too big to show here.
materialized/ghc-extra-projects/ghcjs/ghc8106/.plan.nix/iserv-proxy.nix+55
This diff is too big to show here.
materialized/ghc-extra-projects/ghcjs/ghc8106/.plan.nix/iserv.nix+54
This diff is too big to show here.
materialized/ghc-extra-projects/ghcjs/ghc8106/.plan.nix/libiserv.nix+58
This diff is too big to show here.
materialized/ghc-extra-projects/ghcjs/ghc8106/.plan.nix/remote-iserv.nix+46
This diff is too big to show here.
materialized/ghc-extra-projects/ghcjs/ghc8106/default.nix+131
This diff is too big to show here.
materialized/ghc-extra-projects/ghcjs/ghc8107/.plan.nix/Win32.nix+155
This diff is too big to show here.
materialized/ghc-extra-projects/ghcjs/ghc8107/.plan.nix/ghc-boot.nix+60
This diff is too big to show here.
materialized/ghc-extra-projects/ghcjs/ghc8107/.plan.nix/ghc.nix+586
This diff is too big to show here.
materialized/ghc-extra-projects/ghcjs/ghc8107/.plan.nix/ghci.nix+71
This diff is too big to show here.
materialized/ghc-extra-projects/ghcjs/ghc8107/.plan.nix/hpc.nix+52
This diff is too big to show here.
materialized/ghc-extra-projects/ghcjs/ghc8107/.plan.nix/iserv-proxy.nix+55
This diff is too big to show here.
materialized/ghc-extra-projects/ghcjs/ghc8107/.plan.nix/iserv.nix+54
This diff is too big to show here.
materialized/ghc-extra-projects/ghcjs/ghc8107/.plan.nix/libiserv.nix+58
This diff is too big to show here.
materialized/ghc-extra-projects/ghcjs/ghc8107/.plan.nix/remote-iserv.nix+46
This diff is too big to show here.
materialized/ghc-extra-projects/ghcjs/ghc8107/default.nix+131
This diff is too big to show here.
materialized/ghc-extra-projects/ghcjs/ghc865/.plan.nix/Win32.nix+155
This diff is too big to show here.
materialized/ghc-extra-projects/ghcjs/ghc865/.plan.nix/iserv-proxy.nix+1−1
This diff is too big to show here.
materialized/ghc-extra-projects/ghcjs/ghc865/default.nix+75−36
This diff is too big to show here.
materialized/ghc-extra-projects/ghcjs/ghc884/.plan.nix/Win32.nix+155
This diff is too big to show here.
materialized/ghc-extra-projects/ghcjs/ghc884/.plan.nix/bytestring.nix−136
This diff is too big to show here.
materialized/ghc-extra-projects/ghcjs/ghc884/.plan.nix/iserv-proxy.nix+1−1
This diff is too big to show here.
materialized/ghc-extra-projects/ghcjs/ghc884/default.nix+76−37
This diff is too big to show here.
materialized/ghc-extra-projects/windows/ghc8101/.plan.nix/Win32.nix+155
This diff is too big to show here.
materialized/ghc-extra-projects/windows/ghc8101/.plan.nix/ghc-boot.nix+1−1
This diff is too big to show here.
materialized/ghc-extra-projects/windows/ghc8101/.plan.nix/ghc.nix+1−1
This diff is too big to show here.
materialized/ghc-extra-projects/windows/ghc8101/.plan.nix/ghci.nix+1−1
This diff is too big to show here.
materialized/ghc-extra-projects/windows/ghc8101/.plan.nix/hpc.nix+1−1
This diff is too big to show here.
materialized/ghc-extra-projects/windows/ghc8101/.plan.nix/iserv-proxy.nix+1−1
This diff is too big to show here.
materialized/ghc-extra-projects/windows/ghc8101/.plan.nix/iserv.nix+1−1
This diff is too big to show here.
materialized/ghc-extra-projects/windows/ghc8101/.plan.nix/libiserv.nix+1−1
This diff is too big to show here.
materialized/ghc-extra-projects/windows/ghc8101/.plan.nix/remote-iserv.nix+1−1
This diff is too big to show here.
materialized/ghc-extra-projects/windows/ghc8101/default.nix+71−38
This diff is too big to show here.
materialized/ghc-extra-projects/windows/ghc8102/.plan.nix/Win32.nix+155
This diff is too big to show here.
materialized/ghc-extra-projects/windows/ghc8102/.plan.nix/bytestring.nix−136
This diff is too big to show here.
materialized/ghc-extra-projects/windows/ghc8102/.plan.nix/iserv-proxy.nix+1−1
This diff is too big to show here.
materialized/ghc-extra-projects/windows/ghc8102/default.nix+73−40
This diff is too big to show here.
materialized/ghc-extra-projects/windows/ghc8103/.plan.nix/Win32.nix+155
This diff is too big to show here.
materialized/ghc-extra-projects/windows/ghc8103/.plan.nix/bytestring.nix−71
This diff is too big to show here.
materialized/ghc-extra-projects/windows/ghc8103/.plan.nix/iserv-proxy.nix+1−1
This diff is too big to show here.
materialized/ghc-extra-projects/windows/ghc8103/default.nix+73−40
This diff is too big to show here.
materialized/ghc-extra-projects/windows/ghc8104/.plan.nix/Win32.nix+155
This diff is too big to show here.
materialized/ghc-extra-projects/windows/ghc8104/.plan.nix/bytestring.nix−71
This diff is too big to show here.
materialized/ghc-extra-projects/windows/ghc8104/.plan.nix/iserv-proxy.nix+1−1
This diff is too big to show here.
materialized/ghc-extra-projects/windows/ghc8104/default.nix+72−39
This diff is too big to show here.
materialized/ghc-extra-projects/windows/ghc810420210212/.plan.nix/Win32.nix+155
This diff is too big to show here.
materialized/ghc-extra-projects/windows/ghc810420210212/.plan.nix/bytestring.nix−71
This diff is too big to show here.
materialized/ghc-extra-projects/windows/ghc810420210212/.plan.nix/iserv-proxy.nix+1−1
This diff is too big to show here.
materialized/ghc-extra-projects/windows/ghc810420210212/default.nix+73−40
This diff is too big to show here.
materialized/ghc-extra-projects/windows/ghc8105/.plan.nix/Win32.nix+155
This diff is too big to show here.
materialized/ghc-extra-projects/windows/ghc8105/.plan.nix/bytestring.nix−71
This diff is too big to show here.
materialized/ghc-extra-projects/windows/ghc8105/.plan.nix/iserv-proxy.nix+1−1
This diff is too big to show here.
materialized/ghc-extra-projects/windows/ghc8105/default.nix+72−39
This diff is too big to show here.
materialized/ghc-extra-projects/windows/ghc8106/.plan.nix/Win32.nix+155
This diff is too big to show here.
materialized/ghc-extra-projects/windows/ghc8106/.plan.nix/ghc-boot.nix+60
This diff is too big to show here.
materialized/ghc-extra-projects/windows/ghc8106/.plan.nix/ghc.nix+586
This diff is too big to show here.
materialized/ghc-extra-projects/windows/ghc8106/.plan.nix/ghci.nix+71
This diff is too big to show here.
materialized/ghc-extra-projects/windows/ghc8106/.plan.nix/hpc.nix+52
This diff is too big to show here.
materialized/ghc-extra-projects/windows/ghc8106/.plan.nix/iserv-proxy.nix+55
This diff is too big to show here.
materialized/ghc-extra-projects/windows/ghc8106/.plan.nix/iserv.nix+54
This diff is too big to show here.
materialized/ghc-extra-projects/windows/ghc8106/.plan.nix/libiserv.nix+58
This diff is too big to show here.
materialized/ghc-extra-projects/windows/ghc8106/.plan.nix/remote-iserv.nix+46
This diff is too big to show here.
materialized/ghc-extra-projects/windows/ghc8106/default.nix+121
This diff is too big to show here.
materialized/ghc-extra-projects/windows/ghc8107/.plan.nix/Win32.nix+155
This diff is too big to show here.
materialized/ghc-extra-projects/windows/ghc8107/.plan.nix/ghc-boot.nix+60
This diff is too big to show here.
materialized/ghc-extra-projects/windows/ghc8107/.plan.nix/ghc.nix+586
This diff is too big to show here.
materialized/ghc-extra-projects/windows/ghc8107/.plan.nix/ghci.nix+71
This diff is too big to show here.
materialized/ghc-extra-projects/windows/ghc8107/.plan.nix/hpc.nix+52
This diff is too big to show here.
materialized/ghc-extra-projects/windows/ghc8107/.plan.nix/iserv-proxy.nix+55
This diff is too big to show here.
materialized/ghc-extra-projects/windows/ghc8107/.plan.nix/iserv.nix+54
This diff is too big to show here.
materialized/ghc-extra-projects/windows/ghc8107/.plan.nix/libiserv.nix+58
This diff is too big to show here.
materialized/ghc-extra-projects/windows/ghc8107/.plan.nix/remote-iserv.nix+46
This diff is too big to show here.
materialized/ghc-extra-projects/windows/ghc8107/default.nix+121
This diff is too big to show here.
materialized/ghc-extra-projects/windows/ghc863/.plan.nix/Win32.nix+155
This diff is too big to show here.
materialized/ghc-extra-projects/windows/ghc863/.plan.nix/ghc-boot.nix+53
This diff is too big to show here.
materialized/ghc-extra-projects/windows/ghc863/.plan.nix/ghc.nix+555
This diff is too big to show here.
materialized/ghc-extra-projects/windows/ghc863/.plan.nix/ghci.nix+70
This diff is too big to show here.
materialized/ghc-extra-projects/windows/ghc863/.plan.nix/hpc.nix+51
This diff is too big to show here.
materialized/ghc-extra-projects/windows/ghc863/.plan.nix/iserv-proxy.nix+55
This diff is too big to show here.
materialized/ghc-extra-projects/windows/ghc863/.plan.nix/iserv.nix+54
This diff is too big to show here.
materialized/ghc-extra-projects/windows/ghc863/.plan.nix/libiserv.nix+58
This diff is too big to show here.
materialized/ghc-extra-projects/windows/ghc863/.plan.nix/remote-iserv.nix+46
This diff is too big to show here.
materialized/ghc-extra-projects/windows/ghc863/default.nix+118
This diff is too big to show here.
materialized/ghc-extra-projects/windows/ghc864/.plan.nix/Win32.nix+155
This diff is too big to show here.
materialized/ghc-extra-projects/windows/ghc864/.plan.nix/ghc-boot.nix+53
This diff is too big to show here.
materialized/ghc-extra-projects/windows/ghc864/.plan.nix/ghc.nix+556
This diff is too big to show here.
materialized/ghc-extra-projects/windows/ghc864/.plan.nix/ghci.nix+70
This diff is too big to show here.
materialized/ghc-extra-projects/windows/ghc864/.plan.nix/hpc.nix+51
This diff is too big to show here.
materialized/ghc-extra-projects/windows/ghc864/.plan.nix/iserv-proxy.nix+55
This diff is too big to show here.
materialized/ghc-extra-projects/windows/ghc864/.plan.nix/iserv.nix+54
This diff is too big to show here.
materialized/ghc-extra-projects/windows/ghc864/.plan.nix/libiserv.nix+58
This diff is too big to show here.
materialized/ghc-extra-projects/windows/ghc864/.plan.nix/remote-iserv.nix+46
This diff is too big to show here.
materialized/ghc-extra-projects/windows/ghc864/default.nix+119
This diff is too big to show here.
materialized/ghc-extra-projects/windows/ghc865/.plan.nix/Win32.nix+155
This diff is too big to show here.
materialized/ghc-extra-projects/windows/ghc865/.plan.nix/bytestring.nix−136
This diff is too big to show here.
materialized/ghc-extra-projects/windows/ghc865/.plan.nix/ghc.nix−4
This diff is too big to show here.
materialized/ghc-extra-projects/windows/ghc865/.plan.nix/iserv-proxy.nix+1−1
This diff is too big to show here.
materialized/ghc-extra-projects/windows/ghc865/default.nix+71−43
This diff is too big to show here.
materialized/ghc-extra-projects/windows/ghc882/.plan.nix/Win32.nix+155
This diff is too big to show here.
materialized/ghc-extra-projects/windows/ghc882/.plan.nix/ghc-boot.nix+53
This diff is too big to show here.
materialized/ghc-extra-projects/windows/ghc882/.plan.nix/ghc.nix+573
This diff is too big to show here.
materialized/ghc-extra-projects/windows/ghc882/.plan.nix/ghci.nix+70
This diff is too big to show here.
materialized/ghc-extra-projects/windows/ghc882/.plan.nix/hpc.nix+51
This diff is too big to show here.
materialized/ghc-extra-projects/windows/ghc882/.plan.nix/iserv-proxy.nix+55
This diff is too big to show here.
materialized/ghc-extra-projects/windows/ghc882/.plan.nix/iserv.nix+54
This diff is too big to show here.
materialized/ghc-extra-projects/windows/ghc882/.plan.nix/libiserv.nix+58
This diff is too big to show here.
materialized/ghc-extra-projects/windows/ghc882/.plan.nix/remote-iserv.nix+46
This diff is too big to show here.
materialized/ghc-extra-projects/windows/ghc882/default.nix+120
This diff is too big to show here.
materialized/ghc-extra-projects/windows/ghc883/.plan.nix/Win32.nix+155
This diff is too big to show here.
materialized/ghc-extra-projects/windows/ghc883/.plan.nix/bytestring.nix−136
This diff is too big to show here.
materialized/ghc-extra-projects/windows/ghc883/.plan.nix/ghc.nix−4
This diff is too big to show here.
materialized/ghc-extra-projects/windows/ghc883/.plan.nix/iserv-proxy.nix+1−1
This diff is too big to show here.
materialized/ghc-extra-projects/windows/ghc883/default.nix+72−44
This diff is too big to show here.
materialized/ghc-extra-projects/windows/ghc884/.plan.nix/Win32.nix+155
This diff is too big to show here.
materialized/ghc-extra-projects/windows/ghc884/.plan.nix/bytestring.nix−167
This diff is too big to show here.
materialized/ghc-extra-projects/windows/ghc884/.plan.nix/ghc.nix−4
This diff is too big to show here.
materialized/ghc-extra-projects/windows/ghc884/.plan.nix/iserv-proxy.nix+1−1
This diff is too big to show here.
materialized/ghc-extra-projects/windows/ghc884/default.nix+72−44
This diff is too big to show here.
materialized/ghc-extra-projects/windows/ghc901/.plan.nix/Win32.nix+158
This diff is too big to show here.
materialized/ghc-extra-projects/windows/ghc901/.plan.nix/ghc-boot.nix+61
This diff is too big to show here.
materialized/ghc-extra-projects/windows/ghc901/.plan.nix/ghc.nix+572
This diff is too big to show here.
materialized/ghc-extra-projects/windows/ghc901/.plan.nix/ghci.nix+70
This diff is too big to show here.
materialized/ghc-extra-projects/windows/ghc901/.plan.nix/hpc.nix+52
This diff is too big to show here.
materialized/ghc-extra-projects/windows/ghc901/.plan.nix/iserv-proxy.nix+55
This diff is too big to show here.
materialized/ghc-extra-projects/windows/ghc901/.plan.nix/iserv.nix+54
This diff is too big to show here.
materialized/ghc-extra-projects/windows/ghc901/.plan.nix/libiserv.nix+58
This diff is too big to show here.
materialized/ghc-extra-projects/windows/ghc901/.plan.nix/remote-iserv.nix+46
This diff is too big to show here.
materialized/ghc-extra-projects/windows/ghc901/default.nix+132
This diff is too big to show here.
materialized/ghc-extra-projects/windows/ghc902/.plan.nix/Win32.nix+158
This diff is too big to show here.
materialized/ghc-extra-projects/windows/ghc902/.plan.nix/ghc-boot.nix+61
This diff is too big to show here.
materialized/ghc-extra-projects/windows/ghc902/.plan.nix/ghc.nix+572
This diff is too big to show here.
materialized/ghc-extra-projects/windows/ghc902/.plan.nix/ghci.nix+71
This diff is too big to show here.
materialized/ghc-extra-projects/windows/ghc902/.plan.nix/hpc.nix+52
This diff is too big to show here.
materialized/ghc-extra-projects/windows/ghc902/.plan.nix/iserv-proxy.nix+55
This diff is too big to show here.
materialized/ghc-extra-projects/windows/ghc902/.plan.nix/iserv.nix+54
This diff is too big to show here.
materialized/ghc-extra-projects/windows/ghc902/.plan.nix/libiserv.nix+58
This diff is too big to show here.
materialized/ghc-extra-projects/windows/ghc902/.plan.nix/remote-iserv.nix+46
This diff is too big to show here.
materialized/ghc-extra-projects/windows/ghc902/default.nix+132
This diff is too big to show here.
materialized/ghc-extra-projects/windows/ghc921/.plan.nix/Win32.nix+158
This diff is too big to show here.
materialized/ghc-extra-projects/windows/ghc921/.plan.nix/ghc-boot.nix+64
This diff is too big to show here.
materialized/ghc-extra-projects/windows/ghc921/.plan.nix/ghc.nix+663
This diff is too big to show here.
materialized/ghc-extra-projects/windows/ghc921/.plan.nix/ghci.nix+70
This diff is too big to show here.
materialized/ghc-extra-projects/windows/ghc921/.plan.nix/hpc.nix+52
This diff is too big to show here.
materialized/ghc-extra-projects/windows/ghc921/.plan.nix/iserv-proxy.nix+55
This diff is too big to show here.
materialized/ghc-extra-projects/windows/ghc921/.plan.nix/iserv.nix+54
This diff is too big to show here.
materialized/ghc-extra-projects/windows/ghc921/.plan.nix/libiserv.nix+58
This diff is too big to show here.
materialized/ghc-extra-projects/windows/ghc921/.plan.nix/remote-iserv.nix+46
This diff is too big to show here.
materialized/ghc-extra-projects/windows/ghc921/default.nix+140
This diff is too big to show here.
materialized/ghc-extra-projects/windows/ghc922/.plan.nix/Win32.nix+158
This diff is too big to show here.
materialized/ghc-extra-projects/windows/ghc922/.plan.nix/ghc-boot.nix+64
This diff is too big to show here.
materialized/ghc-extra-projects/windows/ghc922/.plan.nix/ghc.nix+661
This diff is too big to show here.
materialized/ghc-extra-projects/windows/ghc922/.plan.nix/ghci.nix+70
This diff is too big to show here.
materialized/ghc-extra-projects/windows/ghc922/.plan.nix/hpc.nix+52
This diff is too big to show here.
materialized/ghc-extra-projects/windows/ghc922/.plan.nix/iserv-proxy.nix+55
This diff is too big to show here.
materialized/ghc-extra-projects/windows/ghc922/.plan.nix/iserv.nix+54
This diff is too big to show here.
materialized/ghc-extra-projects/windows/ghc922/.plan.nix/libiserv.nix+58
This diff is too big to show here.
materialized/ghc-extra-projects/windows/ghc922/.plan.nix/remote-iserv.nix+46
This diff is too big to show here.
materialized/ghc-extra-projects/windows/ghc922/default.nix+134
This diff is too big to show here.
materialized/ghc-extra-projects/windows/ghc923/.plan.nix/Win32.nix+158
This diff is too big to show here.
materialized/ghc-extra-projects/windows/ghc923/.plan.nix/ghc-boot.nix+64
This diff is too big to show here.
materialized/ghc-extra-projects/windows/ghc923/.plan.nix/ghc.nix+661
This diff is too big to show here.
materialized/ghc-extra-projects/windows/ghc923/.plan.nix/ghci.nix+70
This diff is too big to show here.
materialized/ghc-extra-projects/windows/ghc923/.plan.nix/hpc.nix+52
This diff is too big to show here.
materialized/ghc-extra-projects/windows/ghc923/.plan.nix/iserv-proxy.nix+55
This diff is too big to show here.
materialized/ghc-extra-projects/windows/ghc923/.plan.nix/iserv.nix+54
This diff is too big to show here.
materialized/ghc-extra-projects/windows/ghc923/.plan.nix/libiserv.nix+58
This diff is too big to show here.
materialized/ghc-extra-projects/windows/ghc923/.plan.nix/remote-iserv.nix+46
This diff is too big to show here.
materialized/ghc-extra-projects/windows/ghc923/default.nix+134
This diff is too big to show here.
materialized/ghc-extra-projects/windows/ghc924/.plan.nix/Win32.nix+158
This diff is too big to show here.
materialized/ghc-extra-projects/windows/ghc924/.plan.nix/ghc-boot.nix+64
This diff is too big to show here.
materialized/ghc-extra-projects/windows/ghc924/.plan.nix/ghc.nix+661
This diff is too big to show here.
materialized/ghc-extra-projects/windows/ghc924/.plan.nix/ghci.nix+70
This diff is too big to show here.
materialized/ghc-extra-projects/windows/ghc924/.plan.nix/hpc.nix+52
This diff is too big to show here.
materialized/ghc-extra-projects/windows/ghc924/.plan.nix/iserv-proxy.nix+55
This diff is too big to show here.
materialized/ghc-extra-projects/windows/ghc924/.plan.nix/iserv.nix+54
This diff is too big to show here.
materialized/ghc-extra-projects/windows/ghc924/.plan.nix/libiserv.nix+58
This diff is too big to show here.
materialized/ghc-extra-projects/windows/ghc924/.plan.nix/remote-iserv.nix+46
This diff is too big to show here.
materialized/ghc-extra-projects/windows/ghc924/default.nix+134
This diff is too big to show here.
materialized/ghc8101/cabal-install/.plan.nix/cabal-install.nix+10−79
This diff is too big to show here.
materialized/ghc8101/cabal-install/default.nix+131−79
This diff is too big to show here.
materialized/ghc8101/nix-tools/default.nix−362
This diff is too big to show here.
materialized/ghc8102/cabal-install/.plan.nix/cabal-install.nix+9−78
This diff is too big to show here.
materialized/ghc8102/cabal-install/default.nix+131−79
This diff is too big to show here.
materialized/ghc8102/nix-tools/.plan.nix/hackage-db.nix+11−1
This diff is too big to show here.
materialized/ghc8102/nix-tools/.plan.nix/nix-tools.nix+1
This diff is too big to show here.
materialized/ghc8102/nix-tools/default.nix+453−297
This diff is too big to show here.
materialized/ghc8103/cabal-install/.plan.nix/cabal-install.nix+9−78
This diff is too big to show here.
materialized/ghc8103/cabal-install/default.nix+131−79
This diff is too big to show here.
materialized/ghc8103/nix-tools/.plan.nix/hackage-db.nix+11−1
This diff is too big to show here.
materialized/ghc8103/nix-tools/.plan.nix/nix-tools.nix+1
This diff is too big to show here.
materialized/ghc8103/nix-tools/default.nix+453−297
This diff is too big to show here.
materialized/ghc8104/cabal-install/.plan.nix/cabal-install.nix+9−78
This diff is too big to show here.
materialized/ghc8104/cabal-install/default.nix+128−77
This diff is too big to show here.
materialized/ghc8104/nix-tools/.plan.nix/hackage-db.nix+11−1
This diff is too big to show here.
materialized/ghc8104/nix-tools/.plan.nix/nix-tools.nix+1
This diff is too big to show here.
materialized/ghc8104/nix-tools/default.nix+455−267
This diff is too big to show here.
materialized/ghc810420210212/cabal-install/.plan.nix/cabal-install.nix+9−78
This diff is too big to show here.
materialized/ghc810420210212/cabal-install/default.nix+128−77
This diff is too big to show here.
materialized/ghc810420210212/nix-tools/.plan.nix/hackage-db.nix+11−1
This diff is too big to show here.
materialized/ghc810420210212/nix-tools/.plan.nix/nix-tools.nix+1
This diff is too big to show here.
materialized/ghc810420210212/nix-tools/default.nix+455−267
This diff is too big to show here.
materialized/ghc8105/cabal-install/.plan.nix/cabal-install.nix+9−78
This diff is too big to show here.
materialized/ghc8105/cabal-install/default.nix+128−77
This diff is too big to show here.
materialized/ghc8105/nix-tools/.plan.nix/hackage-db.nix+11−1
This diff is too big to show here.
materialized/ghc8105/nix-tools/.plan.nix/nix-tools.nix+1
This diff is too big to show here.
materialized/ghc8105/nix-tools/default.nix+455−267
This diff is too big to show here.
materialized/ghc8106/cabal-install/.plan.nix/cabal-install.nix+292
This diff is too big to show here.
materialized/ghc8106/cabal-install/default.nix+180
This diff is too big to show here.
materialized/ghc8106/nix-tools/.plan.nix/hackage-db.nix+11−1
This diff is too big to show here.
materialized/ghc8106/nix-tools/.plan.nix/nix-tools.nix+1
This diff is too big to show here.
materialized/ghc8106/nix-tools/default.nix+518
This diff is too big to show here.
materialized/ghc8107/cabal-install/.plan.nix/cabal-install.nix+292
This diff is too big to show here.
materialized/ghc8107/cabal-install/default.nix+180
This diff is too big to show here.
materialized/ghc8107/nix-tools/.plan.nix/hackage-db.nix+11−1
This diff is too big to show here.
materialized/ghc8107/nix-tools/.plan.nix/nix-tools.nix+1
This diff is too big to show here.
materialized/ghc8107/nix-tools/default.nix+518
This diff is too big to show here.
materialized/ghc863/cabal-install/.plan.nix/cabal-install.nix+292
This diff is too big to show here.
materialized/ghc863/cabal-install/default.nix+180
This diff is too big to show here.
materialized/ghc863/nix-tools/.plan.nix/hackage-db.nix+110
This diff is too big to show here.
materialized/ghc863/nix-tools/.plan.nix/nix-tools.nix+234
This diff is too big to show here.
materialized/ghc863/nix-tools/default.nix+509
This diff is too big to show here.
materialized/ghc864/cabal-install/.plan.nix/cabal-install.nix+292
This diff is too big to show here.
materialized/ghc864/cabal-install/default.nix+180
This diff is too big to show here.
materialized/ghc864/nix-tools/.plan.nix/hackage-db.nix+110
This diff is too big to show here.
materialized/ghc864/nix-tools/.plan.nix/nix-tools.nix+234
This diff is too big to show here.
materialized/ghc864/nix-tools/default.nix+509
This diff is too big to show here.
materialized/ghc865/cabal-install/.plan.nix/cabal-install.nix+9−78
This diff is too big to show here.
materialized/ghc865/cabal-install/default.nix+128−77
This diff is too big to show here.
materialized/ghc865/nix-tools/.plan.nix/hackage-db.nix+11−1
This diff is too big to show here.
materialized/ghc865/nix-tools/.plan.nix/nix-tools.nix+1
This diff is too big to show here.
materialized/ghc865/nix-tools/default.nix+446−262
This diff is too big to show here.
materialized/ghc882/cabal-install/.plan.nix/cabal-install.nix+292
This diff is too big to show here.
materialized/ghc882/cabal-install/default.nix+180
This diff is too big to show here.
materialized/ghc882/nix-tools/.plan.nix/hackage-db.nix+110
This diff is too big to show here.
materialized/ghc882/nix-tools/.plan.nix/nix-tools.nix+234
This diff is too big to show here.
materialized/ghc882/nix-tools/default.nix+509
This diff is too big to show here.
materialized/ghc883/cabal-install/.plan.nix/cabal-install.nix+9−78
This diff is too big to show here.
materialized/ghc883/cabal-install/default.nix+131−79
This diff is too big to show here.
materialized/ghc883/nix-tools/.plan.nix/hackage-db.nix+11−1
This diff is too big to show here.
materialized/ghc883/nix-tools/.plan.nix/nix-tools.nix+1
This diff is too big to show here.
materialized/ghc883/nix-tools/default.nix+445−293
This diff is too big to show here.
materialized/ghc884/cabal-install/.plan.nix/cabal-install.nix+9−78
This diff is too big to show here.
materialized/ghc884/cabal-install/default.nix+128−77
This diff is too big to show here.
materialized/ghc884/nix-tools/.plan.nix/hackage-db.nix+11−1
This diff is too big to show here.
materialized/ghc884/nix-tools/.plan.nix/nix-tools.nix+1
This diff is too big to show here.
materialized/ghc884/nix-tools/default.nix+446−262
This diff is too big to show here.
materialized/ghc901/cabal-install/.plan.nix/cabal-install.nix+9−78
This diff is too big to show here.
materialized/ghc901/cabal-install/default.nix+125−74
This diff is too big to show here.
materialized/ghc901/nix-tools/default.nix−363
This diff is too big to show here.
materialized/ghc902/cabal-install/.plan.nix/cabal-install.nix+292
This diff is too big to show here.
materialized/ghc902/cabal-install/default.nix+183
This diff is too big to show here.
materialized/ghc921/cabal-install/.plan.nix/cabal-install.nix+292
This diff is too big to show here.
materialized/ghc921/cabal-install/default.nix+174
This diff is too big to show here.
materialized/ghc922/cabal-install/.plan.nix/cabal-install.nix+292
This diff is too big to show here.
materialized/ghc922/cabal-install/default.nix+174
This diff is too big to show here.
materialized/ghc923/cabal-install/.plan.nix/cabal-install.nix+292
This diff is too big to show here.
materialized/ghc923/cabal-install/default.nix+174
This diff is too big to show here.
materialized/ghc924/cabal-install/.plan.nix/cabal-install.nix+292
This diff is too big to show here.
materialized/ghc924/cabal-install/default.nix+174
This diff is too big to show here.
materialized/ghcjs/alex/ghc8105/default.nix+32−14
This diff is too big to show here.
materialized/ghcjs/alex/ghc8106/.plan.nix/alex.nix+160
This diff is too big to show here.
materialized/ghcjs/alex/ghc8106/default.nix+65
This diff is too big to show here.
materialized/ghcjs/alex/ghc8107/.plan.nix/alex.nix+160
This diff is too big to show here.
materialized/ghcjs/alex/ghc8107/default.nix+65
This diff is too big to show here.
materialized/ghcjs/alex/ghc865/default.nix+32−14
This diff is too big to show here.
materialized/ghcjs/alex/ghc884/default.nix+32−14
This diff is too big to show here.
materialized/ghcjs/cabal/ghc8105/.plan.nix/cabal-install.nix+9−78
This diff is too big to show here.
materialized/ghcjs/cabal/ghc8105/default.nix+128−77
This diff is too big to show here.
materialized/ghcjs/cabal/ghc8106/.plan.nix/cabal-install.nix+292
This diff is too big to show here.
materialized/ghcjs/cabal/ghc8106/default.nix+180
This diff is too big to show here.
materialized/ghcjs/cabal/ghc8107/.plan.nix/cabal-install.nix+292
This diff is too big to show here.
materialized/ghcjs/cabal/ghc8107/default.nix+180
This diff is too big to show here.
materialized/ghcjs/cabal/ghc865/default.nix+121−72
This diff is too big to show here.
materialized/ghcjs/cabal/ghc884/default.nix+121−72
This diff is too big to show here.
materialized/ghcjs/ghc8104/.plan.nix/ghcjs-th.nix
This diff is too big to show here.
materialized/ghcjs/ghc8104/.plan.nix/ghcjs.nix
This diff is too big to show here.
materialized/ghcjs/ghc8104/default.nix
This diff is too big to show here.
materialized/ghcjs/ghc8105/.plan.nix/ghcjs-th.nix
This diff is too big to show here.
materialized/ghcjs/ghc8105/.plan.nix/ghcjs.nix
This diff is too big to show here.
materialized/ghcjs/ghc8105/default.nix+497−300
This diff is too big to show here.
materialized/ghcjs/ghc8106/.plan.nix/ghcjs-th.nix+48
This diff is too big to show here.
materialized/ghcjs/ghc8106/.plan.nix/ghcjs.nix+985
This diff is too big to show here.
materialized/ghcjs/ghc8106/default.nix+576
This diff is too big to show here.
materialized/ghcjs/ghc8107/.plan.nix/ghcjs-th.nix+48
This diff is too big to show here.
materialized/ghcjs/ghc8107/.plan.nix/ghcjs.nix+985
This diff is too big to show here.
materialized/ghcjs/ghc8107/default.nix+576
This diff is too big to show here.
materialized/ghcjs/ghc865/.plan.nix/ghci-ghcjs.nix
This diff is too big to show here.
materialized/ghcjs/ghc865/.plan.nix/ghcjs-th.nix
This diff is too big to show here.
materialized/ghcjs/ghc865/.plan.nix/ghcjs.nix
This diff is too big to show here.
materialized/ghcjs/ghc865/.plan.nix/haddock-library-ghcjs.nix
This diff is too big to show here.
materialized/ghcjs/ghc865/.plan.nix/template-haskell-ghcjs.nix
This diff is too big to show here.
materialized/ghcjs/ghc865/default.nix+541−317
This diff is too big to show here.
materialized/ghcjs/ghc884/.plan.nix/ghcjs-th.nix
This diff is too big to show here.
materialized/ghcjs/ghc884/.plan.nix/ghcjs.nix
This diff is too big to show here.
materialized/ghcjs/ghc884/default.nix+501−303
This diff is too big to show here.
materialized/ghcjs/happy/ghc8105/default.nix+25−10
This diff is too big to show here.
materialized/ghcjs/happy/ghc8106/.plan.nix/happy.nix+200
This diff is too big to show here.
materialized/ghcjs/happy/ghc8106/default.nix+56
This diff is too big to show here.
materialized/ghcjs/happy/ghc8107/.plan.nix/happy.nix+200
This diff is too big to show here.
materialized/ghcjs/happy/ghc8107/default.nix+56
This diff is too big to show here.
materialized/ghcjs/happy/ghc865/default.nix+25−10
This diff is too big to show here.
materialized/ghcjs/happy/ghc884/default.nix+25−10
This diff is too big to show here.
materialized/spdx-3.12/licenses.json+5622
This diff is too big to show here.
materialized/spdx-3.14/licenses.json+5937
This diff is too big to show here.
materialized/spdx-3.16/licenses.json+6090
This diff is too big to show here.
materialized/spdx-3.17/licenses.json+6155
This diff is too big to show here.
mk-local-hackage-repo/default.nix+9−9
This diff is too big to show here.
This diff is too big to show here.
modules/cabal-project.nix+13−12
This diff is too big to show here.
modules/component-driver.nix+12−6
This diff is too big to show here.
modules/configuration-nix.nix+95−1
This diff is too big to show here.
modules/hackage-project.nix+60
This diff is too big to show here.
modules/hackage-quirks.nix+88
This diff is too big to show here.
modules/hix-project.nix+47
This diff is too big to show here.
This diff is too big to show here.
This diff is too big to show here.
modules/project-common.nix+38−1
This diff is too big to show here.
modules/stack-project.nix+2−13
This diff is too big to show here.
This diff is too big to show here.
This diff is too big to show here.
This diff is too big to show here.
overlays/armv6l-linux.nix+2−1
This diff is too big to show here.
overlays/bootstrap.nix+374−76
This diff is too big to show here.
overlays/default.nix+9−10
This diff is too big to show here.
overlays/emscripten.nix+2−52
This diff is too big to show here.
overlays/emscripten/binaryen.nix−46
This diff is too big to show here.
overlays/emscripten/default.nix−71
This diff is too big to show here.
overlays/emscripten/fastcomp/emscripten-fastcomp.nix−55
This diff is too big to show here.
overlays/emscripten/upstream/emscripten-upstream.nix−60
This diff is too big to show here.
overlays/eval-on-build.nix−6
This diff is too big to show here.
overlays/eval-on-current.nix−8
This diff is too big to show here.
overlays/ghc-packages.nix+73−35
This diff is too big to show here.
This diff is too big to show here.
This diff is too big to show here.
overlays/hackage-quirks.nix−91
This diff is too big to show here.
overlays/haskell.nix+136−128
This diff is too big to show here.
This diff is too big to show here.
This diff is too big to show here.
overlays/linux-cross.nix+1−1
This diff is too big to show here.
overlays/mingw_w64.nix+21−21
This diff is too big to show here.
This diff is too big to show here.
overlays/nix-prefetch-git-minimal.nix+14
This diff is too big to show here.
overlays/patches/Cabal/Cabal-3.4-defer-build-tool-depends-7532.patch+63
This diff is too big to show here.
overlays/patches/Cabal/Cabal-3.4-speedup-solver-when-tests-enabled-7490.patch+147
This diff is too big to show here.
overlays/patches/Cabal/Cabal-3.6.0.0-drop-pkg-db-check.diff+20
This diff is too big to show here.
overlays/patches/Cabal/Cabal-3.6.0.0-no-final-checks.diff+24
This diff is too big to show here.
overlays/patches/ghc-lib-parser-8.10-global-unique-counters-in-rts.patch+20
This diff is too big to show here.
overlays/patches/ghc-lib-parser-9.2-global-unique-counters-in-rts.patch+20
This diff is too big to show here.
overlays/patches/ghc/MR6595-nonmoving-mutvar.patch+521
This diff is too big to show here.
overlays/patches/ghc/MR6617-nonmoving-mvar.patch+174
This diff is too big to show here.
overlays/patches/ghc/MR6654-nonmoving-maxmem.patch+31
This diff is too big to show here.
overlays/patches/ghc/Sphinx_Unicode_Error.patch+20
This diff is too big to show here.
overlays/patches/ghc/android-base-needs-iconv.patch+14
This diff is too big to show here.
overlays/patches/ghc/external-static-8.10.4.patch+219
This diff is too big to show here.
overlays/patches/ghc/ghc-8.10-3434.patch
This diff is too big to show here.
overlays/patches/ghc/ghc-8.10-global-unique-counters-in-rts.patch+55
This diff is too big to show here.
overlays/patches/ghc/ghc-8.10.7-linker-weak-and-common.patch+189
This diff is too big to show here.
overlays/patches/ghc/ghc-8.4.4-reinstallable-lib-ghc.patch−10
This diff is too big to show here.
overlays/patches/ghc/ghc-8.6.3-reinstallable-lib-ghc.patch−10
This diff is too big to show here.
overlays/patches/ghc/ghc-8.6.4-reinstallable-lib-ghc.patch−10
This diff is too big to show here.
overlays/patches/ghc/ghc-8.6.5-reinstallable-lib-ghc.patch−10
This diff is too big to show here.
overlays/patches/ghc/ghc-8.8.1-reinstallable-lib-ghc.patch−10
This diff is too big to show here.
overlays/patches/ghc/ghc-8.8.2-reinstallable-lib-ghc.patch−10
This diff is too big to show here.
overlays/patches/ghc/ghc-9.0-macOS-loadArchive-fix.patch+9
This diff is too big to show here.
overlays/patches/ghc/ghc-9.2-3434.patch+68
This diff is too big to show here.
overlays/patches/ghc/ghc-9.2-Cabal-3886.patch+170
This diff is too big to show here.
overlays/patches/ghc/ghc-9.2-cabal-host.patch+13
This diff is too big to show here.
overlays/patches/ghc/ghc-9.2-global-unique-counters-in-rts.patch+83
This diff is too big to show here.
overlays/patches/ghc/ghc-9.2-macOS-loadArchive-fix.patch+9
This diff is too big to show here.
overlays/patches/ghc/ghc-9.2.1-xattr-fix.patch+30
This diff is too big to show here.
overlays/patches/ghc/ghc-mprotect-nonzero-len.patch+14
This diff is too big to show here.
overlays/patches/ghc/ghc-rts-linker-condbr.patch+73
This diff is too big to show here.
overlays/patches/ghc/issue-18708.patch+39
This diff is too big to show here.
overlays/patches/ghc/libc-memory-symbols.patch+43
This diff is too big to show here.
overlays/patches/ghc/libraries-prim-os-android.patch+13
This diff is too big to show here.
overlays/patches/ghc/mmap-next.patch+70
This diff is too big to show here.
overlays/patches/ghc/rts-android-jemalloc-qemu.patch+48
This diff is too big to show here.
overlays/patches/ghc/stack-protector-symbols.patch+67
This diff is too big to show here.
This diff is too big to show here.
overlays/windows.nix+16−40
This diff is too big to show here.
This diff is too big to show here.
This diff is too big to show here.
patches/ghc862/default.nix+1−1
This diff is too big to show here.
patches/ghc863/default.nix+1−1
This diff is too big to show here.
patches/ghc864/default.nix+1−1
This diff is too big to show here.
patches/ghc865/default.nix+1−1
This diff is too big to show here.
patches/ghcide-1.7-plutus-ghc.patch+13
This diff is too big to show here.
patches/ghcide-1.7-unboxed-tuple-fix-issue-1455.patch+76
This diff is too big to show here.
This diff is too big to show here.
patches/js-ghc8107/buffer-builder.patch+79
This diff is too big to show here.
patches/js-ghc8107/conduit-extra.patch+48
This diff is too big to show here.
patches/js-ghc8107/default.nix+7
This diff is too big to show here.
patches/js-ghc8107/double-conversion.patch+64
This diff is too big to show here.
patches/js-ghc8107/network.patch+16
This diff is too big to show here.
patches/js-ghc8107/say.patch+22
This diff is too big to show here.
patches/languge-c-int128.patch+146
This diff is too big to show here.
patches/update-patches.sh+6−2
This diff is too big to show here.
This diff is too big to show here.
scripts/check-compiler-materialization/default.nix+39−13
This diff is too big to show here.
scripts/check-hydra.nix+4−3
This diff is too big to show here.
scripts/check-path-support.nix+2−2
This diff is too big to show here.
scripts/options-doc.nix+1−1
This diff is too big to show here.
scripts/update-external.nix+3−3
This diff is too big to show here.
scripts/update-hackage.nix+1−1
This diff is too big to show here.
scripts/update-pins.nix+1−1
This diff is too big to show here.
scripts/update-stackage.nix+1−1
This diff is too big to show here.
This diff is too big to show here.
This diff is too big to show here.
This diff is too big to show here.
test/buildable/default.nix+2−2
This diff is too big to show here.
test/builder-haddock/.plan.nix/test-haddock.nix+12−43
This diff is too big to show here.
test/builder-haddock/default.nix+4−2
This diff is too big to show here.
test/builder-haddock/pkgs.nix+18−6
This diff is too big to show here.
test/c-ffi/c-ffi.cabal+24
This diff is too big to show here.
test/c-ffi/cbits/test.c+7
This diff is too big to show here.
test/c-ffi/default.nix+65
This diff is too big to show here.
test/c-ffi/exe/Main.hs+15
This diff is too big to show here.
test/c-ffi/jsbits/bindings.js+6
This diff is too big to show here.
This diff is too big to show here.
test/ca-derivations-include/default.nix+57
This diff is too big to show here.
test/ca-derivations/default.nix+59
This diff is too big to show here.
test/cabal-22/default.nix+4−3
This diff is too big to show here.
test/cabal-doctests/default.nix+2−2
This diff is too big to show here.
test/cabal-hpack/default.nix+3−3
This diff is too big to show here.
test/cabal-simple-debug/default.nix+8−3
This diff is too big to show here.
test/cabal-simple-prof/default.nix+7−3
This diff is too big to show here.
test/cabal-simple/default.nix+8−4
This diff is too big to show here.
test/cabal-source-repo-comments/cabal.project+2
This diff is too big to show here.
test/cabal-source-repo-comments/default.nix+3−3
This diff is too big to show here.
test/cabal-source-repo/cabal.project+3−1
This diff is too big to show here.
test/cabal-source-repo/default.nix+3−3
This diff is too big to show here.
test/cabal-sublib/default.nix+6−2
This diff is too big to show here.
test/call-cabal-project-to-nix/default.nix+7−2
This diff is too big to show here.
test/call-stack-to-nix/default.nix+4−2
This diff is too big to show here.
test/coverage-golden/default.nix+2−2
This diff is too big to show here.
test/coverage-no-libs/default.nix+3−2
This diff is too big to show here.
test/coverage/default.nix+3−2
This diff is too big to show here.
This diff is too big to show here.
test/exe-dlls/default.nix+25
This diff is too big to show here.
test/exe-dlls/exe-dlls.cabal+18
This diff is too big to show here.
test/exe-dlls/src/Main.hs+14
This diff is too big to show here.
test/exe-lib-dlls/default.nix+25
This diff is too big to show here.
test/exe-lib-dlls/exe-lib-dlls.cabal+24
This diff is too big to show here.
test/exe-lib-dlls/exes/Main.hs+6
This diff is too big to show here.
test/exe-lib-dlls/src/Lib.hs+14
This diff is too big to show here.
test/exe-only/default.nix+3−3
This diff is too big to show here.
test/external-static-plugin/cabal.project+1
This diff is too big to show here.
test/external-static-plugin/default.nix+27
This diff is too big to show here.
test/external-static-plugin/plugin/CHANGELOG.md+5
This diff is too big to show here.
test/external-static-plugin/plugin/plugin.cabal+12
This diff is too big to show here.
test/external-static-plugin/plugin/src/Plugin.hs+16
This diff is too big to show here.
test/external-static-plugin/prog/CHANGELOG.md+5
This diff is too big to show here.
test/external-static-plugin/prog/app/Main.hs+4
This diff is too big to show here.
test/external-static-plugin/prog/prog.cabal+12
This diff is too big to show here.
test/extra-hackage/default.nix+6−7
This diff is too big to show here.
test/extra-hackage/external-package-user/cabal.project+6−2
This diff is too big to show here.
test/fully-static/cross.nix+1−1
This diff is too big to show here.
test/fully-static/default.nix+5
This diff is too big to show here.
test/ghc-options/cabal.nix+3−3
This diff is too big to show here.
test/ghc-options/stack.nix+8−3
This diff is too big to show here.
test/ghcjs-overlay/CHANGELOG.md+5
This diff is too big to show here.
test/ghcjs-overlay/Main.hs+8
This diff is too big to show here.
test/ghcjs-overlay/MyLib.hs+4
This diff is too big to show here.
test/ghcjs-overlay/Setup.hs+2
This diff is too big to show here.
test/ghcjs-overlay/cabal.project+2
This diff is too big to show here.
test/ghcjs-overlay/default.nix+60
This diff is too big to show here.
test/ghcjs-overlay/ghcjs-overlay-test.cabal+21
This diff is too big to show here.
test/githash/default.nix+3−3
This diff is too big to show here.
test/haskell-language-server/cabal.nix+4−4
This diff is too big to show here.
test/haskell-language-server/stack.nix+7−7
This diff is too big to show here.
test/index-state/default.nix+3−3
This diff is too big to show here.
test/project-flags/cabal.nix+3−3
This diff is too big to show here.
test/project-flags/stack.nix+3−1
This diff is too big to show here.
test/setup-deps/default.nix+6−9
This diff is too big to show here.
test/setup-deps/pkg/Setup.hs+5
This diff is too big to show here.
test/setup-deps/pkg/pkg.cabal+1
This diff is too big to show here.
test/sha256map/default.nix+4−5
This diff is too big to show here.
test/shell-for-setup-deps/default.nix+6−4
This diff is too big to show here.
test/shell-for-setup-deps/pkg/pkg.cabal+1
This diff is too big to show here.
test/shell-for/.plan.nix/pkga.nix−10
This diff is too big to show here.
test/shell-for/.plan.nix/pkgb.nix−13
This diff is too big to show here.
test/shell-for/default.nix+2−1
This diff is too big to show here.
test/shell-for/pkgs.nix+241−156
This diff is too big to show here.
test/snapshots/default.nix+2−2
This diff is too big to show here.
test/stack-local-resolver-subdir/default.nix+3−1
This diff is too big to show here.
test/stack-local-resolver/default.nix+3−1
This diff is too big to show here.
test/stack-remote-resolver/default.nix+3−1
This diff is too big to show here.
test/stack-simple/default.nix+4−2
This diff is too big to show here.
test/stack-simple/pkgs.nix+7−1
This diff is too big to show here.
test/stack-simple/stack-simple.nix+16−47
This diff is too big to show here.
test/stack-source-repo/default.nix+3−1
This diff is too big to show here.
test/sublib-docs/default.nix+6−2
This diff is too big to show here.
This diff is too big to show here.
test/th-dlls/apps/Main.hs+9
This diff is too big to show here.
test/th-dlls/default.nix+24
This diff is too big to show here.
test/th-dlls/src/Lib.hs+14
This diff is too big to show here.
test/th-dlls/th-dlls.cabal+24
This diff is too big to show here.
This diff is too big to show here.
test/with-packages/.plan.nix/test-with-packages.nix+12−43
This diff is too big to show here.
test/with-packages/default.nix+6−3
This diff is too big to show here.
test/with-packages/pkgs.nix+161−118
This diff is too big to show here.