on iko/ghcjs-patch-master help sign in
2235 files changed+354499−11639
since splitsnapshots
unifiedsplit
.buildkite/pipeline.yml+17−5 .buildkite/updates.yml+3−10 .github/workflows/rebase.yaml+28 .github/workflows/windows-secp256k1.yml+51 README.md+22−6 build.nix+30−14 builder/Setup.ghcjs.hs+272 builder/Setup.hs+2 builder/comp-builder.nix+271−91 builder/default.nix+24−16 builder/ghc-for-component-wrapper.nix+65−13 builder/haddock-builder.nix+4−2 builder/hspkg-builder.nix+44−14 builder/make-config-files.nix+36−12 builder/setup-builder.nix+33−18 builder/shell-for.nix+73−48 changelog.md+96 ci-lib.nix+4−4 ci.nix+61−40 compiler/bootstrap/cabal-install.nix+2−2 compiler/ghc/configured-src.nix−116 compiler/ghc/default.nix+275−93 compiler/ghcjs/ghcjs-src.json+2−2 compiler/ghcjs/ghcjs.nix+48−27 compiler/ghcjs/ghcjs810-patched-boot-packages/aeson.patch+13 compiler/ghcjs/ghcjs810-patched-boot-packages/default.nix+176 compiler/ghcjs/ghcjs810-patched-boot-packages/ghcjs-base.patch+471 compiler/ghcjs/ghcjs810-patched-boot-packages/hashable.patch+99 compiler/ghcjs/ghcjs810-src.json+6 compiler/ghcjs/ghcjs88-src.json+2−2 compiler/ghcjs/patches/810/boot-optimization-flags.patch+14 compiler/ghcjs/patches/810/fast-weak.patch+87 compiler/old-ghc-nix/default.nix−10 compiler/old-ghc-nix/old-ghc-nix.json−7 compiler/windows/include/synchapi.h+1 compiler/windows/include/windows.h+18 config.nix−4 default.nix+29−28 docs/dev/hix.md+27 docs/dev/nix-tools-pin.md+16 docs/dev/nixpkgs-pin.md+7−15 docs/reference/commands.md+7−3 docs/reference/library.md+21−12 docs/reference/supported-ghc-versions.md+45−26 docs/tutorials/ca-derivations.md+65 docs/tutorials/cross-compilation.md+1−1 docs/tutorials/development.md+23−15 docs/tutorials/getting-started-flakes.md+142 docs/tutorials/getting-started-hix.md+227 docs/tutorials/getting-started.md+110−26 docs/tutorials/materialization.md+99−115 docs/tutorials/pkg-map.md+32−6 flake.lock+396 flake.nix+143−29 hackage-src.json+7−4 hix/default.nix+43 hix/project.nix+77 lib/cabal-licenses.nix+18−21 lib/cabal-os-arch-comp.nix+1−1 lib/cabal-project-parser.nix+120−14 lib/call-cabal-project-to-nix.nix+214−79 lib/call-stack-to-nix.nix+33−18 lib/check.nix+19−8 lib/clean-cabal-component.nix+105−56 lib/clean-git.nix+88−47 lib/clean-source-haskell.nix+1−15 lib/clean-source-with.nix+35−8 lib/cover-project.nix+50−56 lib/cover.nix+103−70 lib/default.nix+100−30 lib/failed-cabal-configure.nix+9 lib/fetch-resolver.nix+6−2 lib/ghcjs-project.nix+81−40 lib/import-and-filter-project.nix+39−25 lib/materialize.nix+23−11 lib/pkgconf-nixpkgs-map.nix+27−17 lib/project-overlays.nix+37 lib/spdx/cabal.nix+19 lib/spdx/licenses.nix+27 lib/spdx/parser.nix+115 lib/spdx/test.nix+32 lib/stack-cache-generator.nix+46−31 lib/system-nixpkgs-map.nix+119−82 lib/system-pkgs.nix+16 materialized/bootstrap/ghc8107/alex/.plan.nix/alex.nix+160 materialized/bootstrap/ghc8107/alex/default.nix+69 materialized/bootstrap/ghc8107/happy-1.19.12/.plan.nix/happy.nix+200 materialized/bootstrap/ghc8107/happy-1.19.12/default.nix+75 materialized/bootstrap/ghc8107/hscolour/.plan.nix/hscolour.nix+70 materialized/bootstrap/ghc8107/hscolour/default.nix+47 materialized/bootstrap/ghc844/alex/.plan.nix/alex.nix+1−1 materialized/bootstrap/ghc844/alex/default.nix+34−18 materialized/bootstrap/ghc844/happy-1.19.11/.plan.nix/happy.nix+5−5 materialized/bootstrap/ghc844/happy-1.19.11/default.nix+55−28 materialized/bootstrap/ghc844/happy-1.19.12/.plan.nix/happy.nix+1−1 materialized/bootstrap/ghc844/happy-1.19.12/default.nix+25−22 materialized/bootstrap/ghc844/hscolour/.plan.nix/hscolour.nix+1−1 materialized/bootstrap/ghc844/hscolour/default.nix+22−8 materialized/bootstrap/ghc882/alex/.plan.nix/alex.nix+1−1 materialized/bootstrap/ghc882/alex/default.nix+38−18 materialized/bootstrap/ghc882/happy-1.19.12/.plan.nix/happy.nix+1−1 materialized/bootstrap/ghc882/happy-1.19.12/default.nix+44−22 materialized/bootstrap/ghc882/hscolour/.plan.nix/hscolour.nix+1−1 materialized/bootstrap/ghc882/hscolour/default.nix+22−8 materialized/bootstrap/ghc883/alex/.plan.nix/alex.nix+160 materialized/bootstrap/ghc883/alex/default.nix+65 materialized/bootstrap/ghc883/happy-1.19.12/.plan.nix/happy.nix+200 materialized/bootstrap/ghc883/happy-1.19.12/default.nix+56 materialized/bootstrap/ghc883/hscolour/.plan.nix/hscolour.nix+70 materialized/bootstrap/ghc883/hscolour/default.nix+47 materialized/bootstrap/ghc884/alex/.plan.nix/alex.nix+160 materialized/bootstrap/ghc884/alex/default.nix+65 materialized/bootstrap/ghc884/happy-1.19.12/.plan.nix/happy.nix+200 materialized/bootstrap/ghc884/happy-1.19.12/default.nix+56 materialized/bootstrap/ghc884/hscolour/.plan.nix/hscolour.nix+70 materialized/bootstrap/ghc884/hscolour/default.nix+47 materialized/dummy-ghc/aarch64-unknown-linux-gnu-aarch64-unknown-linux-gnu-ghc-8.10.3-x86_64-linux/ghc-pkg/dump-global+1443 materialized/dummy-ghc/aarch64-unknown-linux-gnu-aarch64-unknown-linux-gnu-ghc-8.10.3-x86_64-linux/ghc-pkg/version+1 materialized/dummy-ghc/aarch64-unknown-linux-gnu-aarch64-unknown-linux-gnu-ghc-8.10.3-x86_64-linux/ghc/info+69 materialized/dummy-ghc/aarch64-unknown-linux-gnu-aarch64-unknown-linux-gnu-ghc-8.10.3-x86_64-linux/ghc/numeric-version+1 materialized/dummy-ghc/aarch64-unknown-linux-gnu-aarch64-unknown-linux-gnu-ghc-8.10.3-x86_64-linux/ghc/supported-languages+255 materialized/dummy-ghc/aarch64-unknown-linux-gnu-aarch64-unknown-linux-gnu-ghc-8.10.3-x86_64-linux/ghc/version+1 materialized/dummy-ghc/aarch64-unknown-linux-gnu-aarch64-unknown-linux-gnu-ghc-8.10.4-x86_64-linux/ghc-pkg/dump-global+1443 materialized/dummy-ghc/aarch64-unknown-linux-gnu-aarch64-unknown-linux-gnu-ghc-8.10.4-x86_64-linux/ghc-pkg/version+1 materialized/dummy-ghc/aarch64-unknown-linux-gnu-aarch64-unknown-linux-gnu-ghc-8.10.4-x86_64-linux/ghc/info+69 materialized/dummy-ghc/aarch64-unknown-linux-gnu-aarch64-unknown-linux-gnu-ghc-8.10.4-x86_64-linux/ghc/numeric-version+1 materialized/dummy-ghc/aarch64-unknown-linux-gnu-aarch64-unknown-linux-gnu-ghc-8.10.4-x86_64-linux/ghc/supported-languages+255 materialized/dummy-ghc/aarch64-unknown-linux-gnu-aarch64-unknown-linux-gnu-ghc-8.10.4-x86_64-linux/ghc/version+1 materialized/dummy-ghc/aarch64-unknown-linux-gnu-aarch64-unknown-linux-gnu-ghc-8.10.4.20210212-x86_64-linux/ghc-pkg/dump-global+1446 materialized/dummy-ghc/aarch64-unknown-linux-gnu-aarch64-unknown-linux-gnu-ghc-8.10.4.20210212-x86_64-linux/ghc-pkg/version+1 materialized/dummy-ghc/aarch64-unknown-linux-gnu-aarch64-unknown-linux-gnu-ghc-8.10.4.20210212-x86_64-linux/ghc/info+69 materialized/dummy-ghc/aarch64-unknown-linux-gnu-aarch64-unknown-linux-gnu-ghc-8.10.4.20210212-x86_64-linux/ghc/numeric-version+1 materialized/dummy-ghc/aarch64-unknown-linux-gnu-aarch64-unknown-linux-gnu-ghc-8.10.4.20210212-x86_64-linux/ghc/supported-languages+255 materialized/dummy-ghc/aarch64-unknown-linux-gnu-aarch64-unknown-linux-gnu-ghc-8.10.4.20210212-x86_64-linux/ghc/version+1 materialized/dummy-ghc/aarch64-unknown-linux-gnu-aarch64-unknown-linux-gnu-ghc-8.10.5-x86_64-linux/ghc-pkg/dump-global+1443 materialized/dummy-ghc/aarch64-unknown-linux-gnu-aarch64-unknown-linux-gnu-ghc-8.10.5-x86_64-linux/ghc-pkg/version+1 materialized/dummy-ghc/aarch64-unknown-linux-gnu-aarch64-unknown-linux-gnu-ghc-8.10.5-x86_64-linux/ghc/info+69 materialized/dummy-ghc/aarch64-unknown-linux-gnu-aarch64-unknown-linux-gnu-ghc-8.10.5-x86_64-linux/ghc/numeric-version+1 materialized/dummy-ghc/aarch64-unknown-linux-gnu-aarch64-unknown-linux-gnu-ghc-8.10.5-x86_64-linux/ghc/supported-languages+255 materialized/dummy-ghc/aarch64-unknown-linux-gnu-aarch64-unknown-linux-gnu-ghc-8.10.5-x86_64-linux/ghc/version+1 materialized/dummy-ghc/aarch64-unknown-linux-gnu-aarch64-unknown-linux-gnu-ghc-8.10.6-x86_64-linux/ghc-pkg/dump-global+1443 materialized/dummy-ghc/aarch64-unknown-linux-gnu-aarch64-unknown-linux-gnu-ghc-8.10.6-x86_64-linux/ghc-pkg/version+1 materialized/dummy-ghc/aarch64-unknown-linux-gnu-aarch64-unknown-linux-gnu-ghc-8.10.6-x86_64-linux/ghc/info+67 materialized/dummy-ghc/aarch64-unknown-linux-gnu-aarch64-unknown-linux-gnu-ghc-8.10.6-x86_64-linux/ghc/numeric-version+1 materialized/dummy-ghc/aarch64-unknown-linux-gnu-aarch64-unknown-linux-gnu-ghc-8.10.6-x86_64-linux/ghc/supported-languages+255 materialized/dummy-ghc/aarch64-unknown-linux-gnu-aarch64-unknown-linux-gnu-ghc-8.10.6-x86_64-linux/ghc/version+1 materialized/dummy-ghc/aarch64-unknown-linux-gnu-aarch64-unknown-linux-gnu-ghc-8.10.7-x86_64-linux/ghc-pkg/dump-global+1443 materialized/dummy-ghc/aarch64-unknown-linux-gnu-aarch64-unknown-linux-gnu-ghc-8.10.7-x86_64-linux/ghc-pkg/version+1 materialized/dummy-ghc/aarch64-unknown-linux-gnu-aarch64-unknown-linux-gnu-ghc-8.10.7-x86_64-linux/ghc/info+67 materialized/dummy-ghc/aarch64-unknown-linux-gnu-aarch64-unknown-linux-gnu-ghc-8.10.7-x86_64-linux/ghc/numeric-version+1 materialized/dummy-ghc/aarch64-unknown-linux-gnu-aarch64-unknown-linux-gnu-ghc-8.10.7-x86_64-linux/ghc/supported-languages+255 materialized/dummy-ghc/aarch64-unknown-linux-gnu-aarch64-unknown-linux-gnu-ghc-8.10.7-x86_64-linux/ghc/version+1 materialized/dummy-ghc/aarch64-unknown-linux-gnu-aarch64-unknown-linux-gnu-ghc-8.8.4-x86_64-linux/ghc/info+1−3 materialized/dummy-ghc/aarch64-unknown-linux-gnu-aarch64-unknown-linux-gnu-ghc-9.0.1-x86_64-linux/ghc-pkg/dump-global+1485 materialized/dummy-ghc/aarch64-unknown-linux-gnu-aarch64-unknown-linux-gnu-ghc-9.0.1-x86_64-linux/ghc-pkg/version+1 materialized/dummy-ghc/aarch64-unknown-linux-gnu-aarch64-unknown-linux-gnu-ghc-9.0.1-x86_64-linux/ghc/info+70 materialized/dummy-ghc/aarch64-unknown-linux-gnu-aarch64-unknown-linux-gnu-ghc-9.0.1-x86_64-linux/ghc/numeric-version+1 materialized/dummy-ghc/aarch64-unknown-linux-gnu-aarch64-unknown-linux-gnu-ghc-9.0.1-x86_64-linux/ghc/supported-languages+261 materialized/dummy-ghc/aarch64-unknown-linux-gnu-aarch64-unknown-linux-gnu-ghc-9.0.1-x86_64-linux/ghc/version+1 materialized/dummy-ghc/aarch64-unknown-linux-gnu-aarch64-unknown-linux-gnu-ghc-9.2.4-x86_64-linux/ghc-pkg/dump-global+1512 materialized/dummy-ghc/aarch64-unknown-linux-gnu-aarch64-unknown-linux-gnu-ghc-9.2.4-x86_64-linux/ghc-pkg/version+1 materialized/dummy-ghc/aarch64-unknown-linux-gnu-aarch64-unknown-linux-gnu-ghc-9.2.4-x86_64-linux/ghc/info+66 materialized/dummy-ghc/aarch64-unknown-linux-gnu-aarch64-unknown-linux-gnu-ghc-9.2.4-x86_64-linux/ghc/numeric-version+1 materialized/dummy-ghc/aarch64-unknown-linux-gnu-aarch64-unknown-linux-gnu-ghc-9.2.4-x86_64-linux/ghc/supported-languages+268 materialized/dummy-ghc/aarch64-unknown-linux-gnu-aarch64-unknown-linux-gnu-ghc-9.2.4-x86_64-linux/ghc/version+1 materialized/dummy-ghc/ghc-8.10.2-x86_64-linux/ghc/info+6 materialized/dummy-ghc/ghc-8.10.3-x86_64-darwin/ghc-pkg/dump-global+1638 materialized/dummy-ghc/ghc-8.10.3-x86_64-darwin/ghc-pkg/version+1 materialized/dummy-ghc/ghc-8.10.3-x86_64-darwin/ghc/info+69 materialized/dummy-ghc/ghc-8.10.3-x86_64-darwin/ghc/numeric-version+1 materialized/dummy-ghc/ghc-8.10.3-x86_64-darwin/ghc/supported-languages+255 materialized/dummy-ghc/ghc-8.10.3-x86_64-darwin/ghc/version+1 materialized/dummy-ghc/ghc-8.10.3-x86_64-linux/ghc-pkg/dump-global+1639 materialized/dummy-ghc/ghc-8.10.3-x86_64-linux/ghc-pkg/version+1 materialized/dummy-ghc/ghc-8.10.3-x86_64-linux/ghc/info+75 materialized/dummy-ghc/ghc-8.10.3-x86_64-linux/ghc/numeric-version+1 materialized/dummy-ghc/ghc-8.10.3-x86_64-linux/ghc/supported-languages+255 materialized/dummy-ghc/ghc-8.10.3-x86_64-linux/ghc/version+1 materialized/dummy-ghc/ghc-8.10.4-x86_64-darwin/ghc-pkg/dump-global+1638 materialized/dummy-ghc/ghc-8.10.4-x86_64-darwin/ghc-pkg/version+1 materialized/dummy-ghc/ghc-8.10.4-x86_64-darwin/ghc/info+75 materialized/dummy-ghc/ghc-8.10.4-x86_64-darwin/ghc/numeric-version+1 materialized/dummy-ghc/ghc-8.10.4-x86_64-darwin/ghc/supported-languages+255 materialized/dummy-ghc/ghc-8.10.4-x86_64-darwin/ghc/version+1 materialized/dummy-ghc/ghc-8.10.4-x86_64-linux/ghc-pkg/dump-global+1639 materialized/dummy-ghc/ghc-8.10.4-x86_64-linux/ghc-pkg/version+1 materialized/dummy-ghc/ghc-8.10.4-x86_64-linux/ghc/info+75 materialized/dummy-ghc/ghc-8.10.4-x86_64-linux/ghc/numeric-version+1 materialized/dummy-ghc/ghc-8.10.4-x86_64-linux/ghc/supported-languages+255 materialized/dummy-ghc/ghc-8.10.4-x86_64-linux/ghc/version+1 materialized/dummy-ghc/ghc-8.10.4.20210212-x86_64-darwin/ghc-pkg/dump-global+1642 materialized/dummy-ghc/ghc-8.10.4.20210212-x86_64-darwin/ghc-pkg/version+1 materialized/dummy-ghc/ghc-8.10.4.20210212-x86_64-darwin/ghc/info+69 materialized/dummy-ghc/ghc-8.10.4.20210212-x86_64-darwin/ghc/numeric-version+1 materialized/dummy-ghc/ghc-8.10.4.20210212-x86_64-darwin/ghc/supported-languages+255 materialized/dummy-ghc/ghc-8.10.4.20210212-x86_64-darwin/ghc/version+1 materialized/dummy-ghc/ghc-8.10.4.20210212-x86_64-linux/ghc-pkg/dump-global+1643 materialized/dummy-ghc/ghc-8.10.4.20210212-x86_64-linux/ghc-pkg/version+1 materialized/dummy-ghc/ghc-8.10.4.20210212-x86_64-linux/ghc/info+75 materialized/dummy-ghc/ghc-8.10.4.20210212-x86_64-linux/ghc/numeric-version+1 materialized/dummy-ghc/ghc-8.10.4.20210212-x86_64-linux/ghc/supported-languages+255 materialized/dummy-ghc/ghc-8.10.4.20210212-x86_64-linux/ghc/version+1 materialized/dummy-ghc/ghc-8.10.5-x86_64-darwin/ghc-pkg/dump-global+1638 materialized/dummy-ghc/ghc-8.10.5-x86_64-darwin/ghc-pkg/version+1 materialized/dummy-ghc/ghc-8.10.5-x86_64-darwin/ghc/info+75 materialized/dummy-ghc/ghc-8.10.5-x86_64-darwin/ghc/numeric-version+1 materialized/dummy-ghc/ghc-8.10.5-x86_64-darwin/ghc/supported-languages+255 materialized/dummy-ghc/ghc-8.10.5-x86_64-darwin/ghc/version+1 materialized/dummy-ghc/ghc-8.10.5-x86_64-linux/ghc-pkg/dump-global+1639 materialized/dummy-ghc/ghc-8.10.5-x86_64-linux/ghc-pkg/version+1 materialized/dummy-ghc/ghc-8.10.5-x86_64-linux/ghc/info+75 materialized/dummy-ghc/ghc-8.10.5-x86_64-linux/ghc/numeric-version+1 materialized/dummy-ghc/ghc-8.10.5-x86_64-linux/ghc/supported-languages+255 materialized/dummy-ghc/ghc-8.10.5-x86_64-linux/ghc/version+1 materialized/dummy-ghc/ghc-8.10.6-x86_64-darwin/ghc-pkg/dump-global+1638 materialized/dummy-ghc/ghc-8.10.6-x86_64-darwin/ghc-pkg/version+1 materialized/dummy-ghc/ghc-8.10.6-x86_64-darwin/ghc/info+75 materialized/dummy-ghc/ghc-8.10.6-x86_64-darwin/ghc/numeric-version+1 materialized/dummy-ghc/ghc-8.10.6-x86_64-darwin/ghc/supported-languages+255 materialized/dummy-ghc/ghc-8.10.6-x86_64-darwin/ghc/version+1 materialized/dummy-ghc/ghc-8.10.6-x86_64-linux/ghc-pkg/dump-global+1639 materialized/dummy-ghc/ghc-8.10.6-x86_64-linux/ghc-pkg/version+1 materialized/dummy-ghc/ghc-8.10.6-x86_64-linux/ghc/info+75 materialized/dummy-ghc/ghc-8.10.6-x86_64-linux/ghc/numeric-version+1 materialized/dummy-ghc/ghc-8.10.6-x86_64-linux/ghc/supported-languages+255 materialized/dummy-ghc/ghc-8.10.6-x86_64-linux/ghc/version+1 materialized/dummy-ghc/ghc-8.10.7-aarch64-darwin/ghc-pkg/dump-global+1639 materialized/dummy-ghc/ghc-8.10.7-aarch64-darwin/ghc-pkg/version+1 materialized/dummy-ghc/ghc-8.10.7-aarch64-darwin/ghc/info+73 materialized/dummy-ghc/ghc-8.10.7-aarch64-darwin/ghc/numeric-version+1 materialized/dummy-ghc/ghc-8.10.7-aarch64-darwin/ghc/supported-languages+255 materialized/dummy-ghc/ghc-8.10.7-aarch64-darwin/ghc/version+1 materialized/dummy-ghc/ghc-8.10.7-aarch64-linux/ghc-pkg/dump-global+1638 materialized/dummy-ghc/ghc-8.10.7-aarch64-linux/ghc-pkg/version+1 materialized/dummy-ghc/ghc-8.10.7-aarch64-linux/ghc/info+73 materialized/dummy-ghc/ghc-8.10.7-aarch64-linux/ghc/numeric-version+1 materialized/dummy-ghc/ghc-8.10.7-aarch64-linux/ghc/supported-languages+255 materialized/dummy-ghc/ghc-8.10.7-aarch64-linux/ghc/version+1 materialized/dummy-ghc/ghc-8.10.7-x86_64-darwin/ghc-pkg/dump-global+1639 materialized/dummy-ghc/ghc-8.10.7-x86_64-darwin/ghc-pkg/version+1 materialized/dummy-ghc/ghc-8.10.7-x86_64-darwin/ghc/info+75 materialized/dummy-ghc/ghc-8.10.7-x86_64-darwin/ghc/numeric-version+1 materialized/dummy-ghc/ghc-8.10.7-x86_64-darwin/ghc/supported-languages+255 materialized/dummy-ghc/ghc-8.10.7-x86_64-darwin/ghc/version+1 materialized/dummy-ghc/ghc-8.10.7-x86_64-linux/ghc-pkg/dump-global+1638 materialized/dummy-ghc/ghc-8.10.7-x86_64-linux/ghc-pkg/version+1 materialized/dummy-ghc/ghc-8.10.7-x86_64-linux/ghc/info+75 materialized/dummy-ghc/ghc-8.10.7-x86_64-linux/ghc/numeric-version+1 materialized/dummy-ghc/ghc-8.10.7-x86_64-linux/ghc/supported-languages+255 materialized/dummy-ghc/ghc-8.10.7-x86_64-linux/ghc/version+1 materialized/dummy-ghc/ghc-8.4.4-x86_64-darwin/ghc-pkg/dump-global+88−115 materialized/dummy-ghc/ghc-8.4.4-x86_64-darwin/ghc/info+7−2 materialized/dummy-ghc/ghc-8.4.4-x86_64-linux/ghc-pkg/dump-global+5−30 materialized/dummy-ghc/ghc-8.4.4-x86_64-linux/ghc/info+7−2 materialized/dummy-ghc/ghc-8.6.5-x86_64-darwin/ghc/info+5 materialized/dummy-ghc/ghc-8.6.5-x86_64-linux/ghc/info+5 materialized/dummy-ghc/ghc-8.8.2-x86_64-darwin/ghc-pkg/dump-global+6−3 materialized/dummy-ghc/ghc-8.8.2-x86_64-darwin/ghc/info+1−1 materialized/dummy-ghc/ghc-8.8.2-x86_64-linux/ghc-pkg/dump-global+4−2 materialized/dummy-ghc/ghc-8.8.3-aarch64-linux/ghc/info+5−3 materialized/dummy-ghc/ghc-8.8.3-aarch64-linux/ghc/version+1 materialized/dummy-ghc/ghc-8.8.3-x86_64-darwin/ghc/info+5 materialized/dummy-ghc/ghc-8.8.3-x86_64-linux/ghc/info+5 materialized/dummy-ghc/ghc-8.8.4-aarch64-linux/ghc-pkg/dump-global+1592 materialized/dummy-ghc/ghc-8.8.4-aarch64-linux/ghc-pkg/version+1 materialized/dummy-ghc/ghc-8.8.4-aarch64-linux/ghc/info+60 materialized/dummy-ghc/ghc-8.8.4-aarch64-linux/ghc/numeric-version+1 materialized/dummy-ghc/ghc-8.8.4-aarch64-linux/ghc/supported-languages+247 materialized/dummy-ghc/ghc-8.8.4-aarch64-linux/ghc/version+1 materialized/dummy-ghc/ghc-8.8.4-x86_64-darwin/ghc/info+5 materialized/dummy-ghc/ghc-8.8.4-x86_64-linux/ghc/info+5 materialized/dummy-ghc/ghc-9.0.1-aarch64-darwin/ghc-pkg/dump-global+1759 materialized/dummy-ghc/ghc-9.0.1-aarch64-darwin/ghc-pkg/version+1 materialized/dummy-ghc/ghc-9.0.1-aarch64-darwin/ghc/info+74 materialized/dummy-ghc/ghc-9.0.1-aarch64-darwin/ghc/numeric-version+1 materialized/dummy-ghc/ghc-9.0.1-aarch64-darwin/ghc/supported-languages+261 materialized/dummy-ghc/ghc-9.0.1-aarch64-darwin/ghc/version+1 materialized/dummy-ghc/ghc-9.0.1-aarch64-linux/ghc-pkg/dump-global+1760 materialized/dummy-ghc/ghc-9.0.1-aarch64-linux/ghc-pkg/version+1 materialized/dummy-ghc/ghc-9.0.1-aarch64-linux/ghc/info+74 materialized/dummy-ghc/ghc-9.0.1-aarch64-linux/ghc/numeric-version+1 materialized/dummy-ghc/ghc-9.0.1-aarch64-linux/ghc/supported-languages+261 materialized/dummy-ghc/ghc-9.0.1-aarch64-linux/ghc/version+1 materialized/dummy-ghc/ghc-9.0.1-x86_64-darwin/ghc-pkg/dump-global+1759 materialized/dummy-ghc/ghc-9.0.1-x86_64-darwin/ghc-pkg/version+1 materialized/dummy-ghc/ghc-9.0.1-x86_64-darwin/ghc/info+76 materialized/dummy-ghc/ghc-9.0.1-x86_64-darwin/ghc/numeric-version+1 materialized/dummy-ghc/ghc-9.0.1-x86_64-darwin/ghc/supported-languages+261 materialized/dummy-ghc/ghc-9.0.1-x86_64-darwin/ghc/version+1 materialized/dummy-ghc/ghc-9.0.1-x86_64-linux/ghc-pkg/dump-global+1760 materialized/dummy-ghc/ghc-9.0.1-x86_64-linux/ghc-pkg/version+1 materialized/dummy-ghc/ghc-9.0.1-x86_64-linux/ghc/info+76 materialized/dummy-ghc/ghc-9.0.1-x86_64-linux/ghc/numeric-version+1 materialized/dummy-ghc/ghc-9.0.1-x86_64-linux/ghc/supported-languages+261 materialized/dummy-ghc/ghc-9.0.1-x86_64-linux/ghc/version+1 materialized/dummy-ghc/ghc-9.0.2-aarch64-darwin/ghc-pkg/dump-global+1766 materialized/dummy-ghc/ghc-9.0.2-aarch64-darwin/ghc-pkg/version+1 materialized/dummy-ghc/ghc-9.0.2-aarch64-darwin/ghc/info+74 materialized/dummy-ghc/ghc-9.0.2-aarch64-darwin/ghc/numeric-version+1 materialized/dummy-ghc/ghc-9.0.2-aarch64-darwin/ghc/supported-languages+261 materialized/dummy-ghc/ghc-9.0.2-aarch64-darwin/ghc/version+1 materialized/dummy-ghc/ghc-9.0.2-aarch64-linux/ghc-pkg/dump-global+1767 materialized/dummy-ghc/ghc-9.0.2-aarch64-linux/ghc-pkg/version+1 materialized/dummy-ghc/ghc-9.0.2-aarch64-linux/ghc/info+74 materialized/dummy-ghc/ghc-9.0.2-aarch64-linux/ghc/numeric-version+1 materialized/dummy-ghc/ghc-9.0.2-aarch64-linux/ghc/supported-languages+261 materialized/dummy-ghc/ghc-9.0.2-aarch64-linux/ghc/version+1 materialized/dummy-ghc/ghc-9.0.2-x86_64-darwin/ghc-pkg/dump-global+1766 materialized/dummy-ghc/ghc-9.0.2-x86_64-darwin/ghc-pkg/version+1 materialized/dummy-ghc/ghc-9.0.2-x86_64-darwin/ghc/info+76 materialized/dummy-ghc/ghc-9.0.2-x86_64-darwin/ghc/numeric-version+1 materialized/dummy-ghc/ghc-9.0.2-x86_64-darwin/ghc/supported-languages+261 materialized/dummy-ghc/ghc-9.0.2-x86_64-darwin/ghc/version+1 materialized/dummy-ghc/ghc-9.0.2-x86_64-linux/ghc-pkg/dump-global+1767 materialized/dummy-ghc/ghc-9.0.2-x86_64-linux/ghc-pkg/version+1 materialized/dummy-ghc/ghc-9.0.2-x86_64-linux/ghc/info+76 materialized/dummy-ghc/ghc-9.0.2-x86_64-linux/ghc/numeric-version+1 materialized/dummy-ghc/ghc-9.0.2-x86_64-linux/ghc/supported-languages+261 materialized/dummy-ghc/ghc-9.0.2-x86_64-linux/ghc/version+1 materialized/dummy-ghc/ghc-9.2.1-aarch64-darwin/ghc-pkg/dump-global+1826 materialized/dummy-ghc/ghc-9.2.1-aarch64-darwin/ghc-pkg/version+1 materialized/dummy-ghc/ghc-9.2.1-aarch64-darwin/ghc/info+73 materialized/dummy-ghc/ghc-9.2.1-aarch64-darwin/ghc/numeric-version+1 materialized/dummy-ghc/ghc-9.2.1-aarch64-darwin/ghc/supported-languages+266 materialized/dummy-ghc/ghc-9.2.1-aarch64-darwin/ghc/version+1 materialized/dummy-ghc/ghc-9.2.1-aarch64-linux/ghc-pkg/dump-global+1826 materialized/dummy-ghc/ghc-9.2.1-aarch64-linux/ghc-pkg/version+1 materialized/dummy-ghc/ghc-9.2.1-aarch64-linux/ghc/info+73 materialized/dummy-ghc/ghc-9.2.1-aarch64-linux/ghc/numeric-version+1 materialized/dummy-ghc/ghc-9.2.1-aarch64-linux/ghc/supported-languages+266 materialized/dummy-ghc/ghc-9.2.1-aarch64-linux/ghc/version+1 materialized/dummy-ghc/ghc-9.2.1-x86_64-darwin/ghc-pkg/dump-global+1826 materialized/dummy-ghc/ghc-9.2.1-x86_64-darwin/ghc-pkg/version+1 materialized/dummy-ghc/ghc-9.2.1-x86_64-darwin/ghc/info+73 materialized/dummy-ghc/ghc-9.2.1-x86_64-darwin/ghc/numeric-version+1 materialized/dummy-ghc/ghc-9.2.1-x86_64-darwin/ghc/supported-languages+266 materialized/dummy-ghc/ghc-9.2.1-x86_64-darwin/ghc/version+1 materialized/dummy-ghc/ghc-9.2.1-x86_64-linux/ghc-pkg/dump-global+1826 materialized/dummy-ghc/ghc-9.2.1-x86_64-linux/ghc-pkg/version+1 materialized/dummy-ghc/ghc-9.2.1-x86_64-linux/ghc/info+73 materialized/dummy-ghc/ghc-9.2.1-x86_64-linux/ghc/numeric-version+1 materialized/dummy-ghc/ghc-9.2.1-x86_64-linux/ghc/supported-languages+266 materialized/dummy-ghc/ghc-9.2.1-x86_64-linux/ghc/version+1 materialized/dummy-ghc/ghc-9.2.2-aarch64-darwin/ghc-pkg/dump-global+1834 materialized/dummy-ghc/ghc-9.2.2-aarch64-darwin/ghc-pkg/version+1 materialized/dummy-ghc/ghc-9.2.2-aarch64-darwin/ghc/info+72 materialized/dummy-ghc/ghc-9.2.2-aarch64-darwin/ghc/numeric-version+1 materialized/dummy-ghc/ghc-9.2.2-aarch64-darwin/ghc/supported-languages+266 materialized/dummy-ghc/ghc-9.2.2-aarch64-darwin/ghc/version+1 materialized/dummy-ghc/ghc-9.2.2-aarch64-linux/ghc-pkg/dump-global+1834 materialized/dummy-ghc/ghc-9.2.2-aarch64-linux/ghc-pkg/version+1 materialized/dummy-ghc/ghc-9.2.2-aarch64-linux/ghc/info+72 materialized/dummy-ghc/ghc-9.2.2-aarch64-linux/ghc/numeric-version+1 materialized/dummy-ghc/ghc-9.2.2-aarch64-linux/ghc/supported-languages+266 materialized/dummy-ghc/ghc-9.2.2-aarch64-linux/ghc/version+1 materialized/dummy-ghc/ghc-9.2.2-x86_64-darwin/ghc-pkg/dump-global+1834 materialized/dummy-ghc/ghc-9.2.2-x86_64-darwin/ghc-pkg/version+1 materialized/dummy-ghc/ghc-9.2.2-x86_64-darwin/ghc/info+72 materialized/dummy-ghc/ghc-9.2.2-x86_64-darwin/ghc/numeric-version+1 materialized/dummy-ghc/ghc-9.2.2-x86_64-darwin/ghc/supported-languages+266 materialized/dummy-ghc/ghc-9.2.2-x86_64-darwin/ghc/version+1 materialized/dummy-ghc/ghc-9.2.2-x86_64-linux/ghc-pkg/dump-global+1834 materialized/dummy-ghc/ghc-9.2.2-x86_64-linux/ghc-pkg/version+1 materialized/dummy-ghc/ghc-9.2.2-x86_64-linux/ghc/info+72 materialized/dummy-ghc/ghc-9.2.2-x86_64-linux/ghc/numeric-version+1 materialized/dummy-ghc/ghc-9.2.2-x86_64-linux/ghc/supported-languages+266 materialized/dummy-ghc/ghc-9.2.2-x86_64-linux/ghc/version+1 materialized/dummy-ghc/ghc-9.2.3-aarch64-darwin/ghc-pkg/dump-global+1834 materialized/dummy-ghc/ghc-9.2.3-aarch64-darwin/ghc-pkg/version+1 materialized/dummy-ghc/ghc-9.2.3-aarch64-darwin/ghc/info+72 materialized/dummy-ghc/ghc-9.2.3-aarch64-darwin/ghc/numeric-version+1 materialized/dummy-ghc/ghc-9.2.3-aarch64-darwin/ghc/supported-languages+266 materialized/dummy-ghc/ghc-9.2.3-aarch64-darwin/ghc/version+1 materialized/dummy-ghc/ghc-9.2.3-aarch64-linux/ghc-pkg/dump-global+1834 materialized/dummy-ghc/ghc-9.2.3-aarch64-linux/ghc-pkg/version+1 materialized/dummy-ghc/ghc-9.2.3-aarch64-linux/ghc/info+72 materialized/dummy-ghc/ghc-9.2.3-aarch64-linux/ghc/numeric-version+1 materialized/dummy-ghc/ghc-9.2.3-aarch64-linux/ghc/supported-languages+266 materialized/dummy-ghc/ghc-9.2.3-aarch64-linux/ghc/version+1 materialized/dummy-ghc/ghc-9.2.3-x86_64-darwin/ghc-pkg/dump-global+1834 materialized/dummy-ghc/ghc-9.2.3-x86_64-darwin/ghc-pkg/version+1 materialized/dummy-ghc/ghc-9.2.3-x86_64-darwin/ghc/info+72 materialized/dummy-ghc/ghc-9.2.3-x86_64-darwin/ghc/numeric-version+1 materialized/dummy-ghc/ghc-9.2.3-x86_64-darwin/ghc/supported-languages+266 materialized/dummy-ghc/ghc-9.2.3-x86_64-darwin/ghc/version+1 materialized/dummy-ghc/ghc-9.2.3-x86_64-linux/ghc-pkg/dump-global+1834 materialized/dummy-ghc/ghc-9.2.3-x86_64-linux/ghc-pkg/version+1 materialized/dummy-ghc/ghc-9.2.3-x86_64-linux/ghc/info+72 materialized/dummy-ghc/ghc-9.2.3-x86_64-linux/ghc/numeric-version+1 materialized/dummy-ghc/ghc-9.2.3-x86_64-linux/ghc/supported-languages+266 materialized/dummy-ghc/ghc-9.2.3-x86_64-linux/ghc/version+1 materialized/dummy-ghc/ghc-9.2.4-aarch64-darwin/ghc-pkg/dump-global+1834 materialized/dummy-ghc/ghc-9.2.4-aarch64-darwin/ghc-pkg/version+1 materialized/dummy-ghc/ghc-9.2.4-aarch64-darwin/ghc/info+72 materialized/dummy-ghc/ghc-9.2.4-aarch64-darwin/ghc/numeric-version+1 materialized/dummy-ghc/ghc-9.2.4-aarch64-darwin/ghc/supported-languages+268 materialized/dummy-ghc/ghc-9.2.4-aarch64-darwin/ghc/version+1 materialized/dummy-ghc/ghc-9.2.4-aarch64-linux/ghc-pkg/dump-global+1833 materialized/dummy-ghc/ghc-9.2.4-aarch64-linux/ghc-pkg/version+1 materialized/dummy-ghc/ghc-9.2.4-aarch64-linux/ghc/info+72 materialized/dummy-ghc/ghc-9.2.4-aarch64-linux/ghc/numeric-version+1 materialized/dummy-ghc/ghc-9.2.4-aarch64-linux/ghc/supported-languages+268 materialized/dummy-ghc/ghc-9.2.4-aarch64-linux/ghc/version+1 materialized/dummy-ghc/ghc-9.2.4-x86_64-darwin/ghc-pkg/dump-global+1834 materialized/dummy-ghc/ghc-9.2.4-x86_64-darwin/ghc-pkg/version+1 materialized/dummy-ghc/ghc-9.2.4-x86_64-darwin/ghc/info+72 materialized/dummy-ghc/ghc-9.2.4-x86_64-darwin/ghc/numeric-version+1 materialized/dummy-ghc/ghc-9.2.4-x86_64-darwin/ghc/supported-languages+268 materialized/dummy-ghc/ghc-9.2.4-x86_64-darwin/ghc/version+1 materialized/dummy-ghc/ghc-9.2.4-x86_64-linux/ghc-pkg/dump-global+1833 materialized/dummy-ghc/ghc-9.2.4-x86_64-linux/ghc-pkg/version+1 materialized/dummy-ghc/ghc-9.2.4-x86_64-linux/ghc/info+72 materialized/dummy-ghc/ghc-9.2.4-x86_64-linux/ghc/numeric-version+1 materialized/dummy-ghc/ghc-9.2.4-x86_64-linux/ghc/supported-languages+268 materialized/dummy-ghc/ghc-9.2.4-x86_64-linux/ghc/version+1 materialized/dummy-ghc/js-unknown-ghcjs-js-unknown-ghcjs-ghc-8.10.4-x86_64-darwin/ghc-pkg/dump-global+1328 materialized/dummy-ghc/js-unknown-ghcjs-js-unknown-ghcjs-ghc-8.10.4-x86_64-darwin/ghc-pkg/numeric-ghcjs-version+1 materialized/dummy-ghc/js-unknown-ghcjs-js-unknown-ghcjs-ghc-8.10.4-x86_64-darwin/ghc-pkg/version+1 materialized/dummy-ghc/js-unknown-ghcjs-js-unknown-ghcjs-ghc-8.10.4-x86_64-darwin/ghc/info+71 materialized/dummy-ghc/js-unknown-ghcjs-js-unknown-ghcjs-ghc-8.10.4-x86_64-darwin/ghc/numeric-ghc-version+1 materialized/dummy-ghc/js-unknown-ghcjs-js-unknown-ghcjs-ghc-8.10.4-x86_64-darwin/ghc/numeric-ghcjs-version+1 materialized/dummy-ghc/js-unknown-ghcjs-js-unknown-ghcjs-ghc-8.10.4-x86_64-darwin/ghc/numeric-version+1 materialized/dummy-ghc/js-unknown-ghcjs-js-unknown-ghcjs-ghc-8.10.4-x86_64-darwin/ghc/supported-languages+255 materialized/dummy-ghc/js-unknown-ghcjs-js-unknown-ghcjs-ghc-8.10.4-x86_64-darwin/ghc/version+1 materialized/dummy-ghc/js-unknown-ghcjs-js-unknown-ghcjs-ghc-8.10.4-x86_64-linux/ghc-pkg/dump-global+1328 materialized/dummy-ghc/js-unknown-ghcjs-js-unknown-ghcjs-ghc-8.10.4-x86_64-linux/ghc-pkg/numeric-ghcjs-version+1 materialized/dummy-ghc/js-unknown-ghcjs-js-unknown-ghcjs-ghc-8.10.4-x86_64-linux/ghc-pkg/version+1 materialized/dummy-ghc/js-unknown-ghcjs-js-unknown-ghcjs-ghc-8.10.4-x86_64-linux/ghc/info+71 materialized/dummy-ghc/js-unknown-ghcjs-js-unknown-ghcjs-ghc-8.10.4-x86_64-linux/ghc/numeric-ghc-version+1 materialized/dummy-ghc/js-unknown-ghcjs-js-unknown-ghcjs-ghc-8.10.4-x86_64-linux/ghc/numeric-ghcjs-version+1 materialized/dummy-ghc/js-unknown-ghcjs-js-unknown-ghcjs-ghc-8.10.4-x86_64-linux/ghc/numeric-version+1 materialized/dummy-ghc/js-unknown-ghcjs-js-unknown-ghcjs-ghc-8.10.4-x86_64-linux/ghc/supported-languages+255 materialized/dummy-ghc/js-unknown-ghcjs-js-unknown-ghcjs-ghc-8.10.4-x86_64-linux/ghc/version+1 materialized/dummy-ghc/js-unknown-ghcjs-js-unknown-ghcjs-ghc-8.10.5-x86_64-darwin/ghc-pkg/dump-global+1330 materialized/dummy-ghc/js-unknown-ghcjs-js-unknown-ghcjs-ghc-8.10.5-x86_64-darwin/ghc-pkg/numeric-ghcjs-version+1 materialized/dummy-ghc/js-unknown-ghcjs-js-unknown-ghcjs-ghc-8.10.5-x86_64-darwin/ghc-pkg/version+1 materialized/dummy-ghc/js-unknown-ghcjs-js-unknown-ghcjs-ghc-8.10.5-x86_64-darwin/ghc/info+71 materialized/dummy-ghc/js-unknown-ghcjs-js-unknown-ghcjs-ghc-8.10.5-x86_64-darwin/ghc/numeric-ghc-version+1 materialized/dummy-ghc/js-unknown-ghcjs-js-unknown-ghcjs-ghc-8.10.5-x86_64-darwin/ghc/numeric-ghcjs-version+1 materialized/dummy-ghc/js-unknown-ghcjs-js-unknown-ghcjs-ghc-8.10.5-x86_64-darwin/ghc/numeric-version+1 materialized/dummy-ghc/js-unknown-ghcjs-js-unknown-ghcjs-ghc-8.10.5-x86_64-darwin/ghc/supported-languages+255 materialized/dummy-ghc/js-unknown-ghcjs-js-unknown-ghcjs-ghc-8.10.5-x86_64-darwin/ghc/version+1 materialized/dummy-ghc/js-unknown-ghcjs-js-unknown-ghcjs-ghc-8.10.5-x86_64-linux/ghc-pkg/dump-global+1330 materialized/dummy-ghc/js-unknown-ghcjs-js-unknown-ghcjs-ghc-8.10.5-x86_64-linux/ghc-pkg/numeric-ghcjs-version+1 materialized/dummy-ghc/js-unknown-ghcjs-js-unknown-ghcjs-ghc-8.10.5-x86_64-linux/ghc-pkg/version+1 materialized/dummy-ghc/js-unknown-ghcjs-js-unknown-ghcjs-ghc-8.10.5-x86_64-linux/ghc/info+71 materialized/dummy-ghc/js-unknown-ghcjs-js-unknown-ghcjs-ghc-8.10.5-x86_64-linux/ghc/numeric-ghc-version+1 materialized/dummy-ghc/js-unknown-ghcjs-js-unknown-ghcjs-ghc-8.10.5-x86_64-linux/ghc/numeric-ghcjs-version+1 materialized/dummy-ghc/js-unknown-ghcjs-js-unknown-ghcjs-ghc-8.10.5-x86_64-linux/ghc/numeric-version+1 materialized/dummy-ghc/js-unknown-ghcjs-js-unknown-ghcjs-ghc-8.10.5-x86_64-linux/ghc/supported-languages+255 materialized/dummy-ghc/js-unknown-ghcjs-js-unknown-ghcjs-ghc-8.10.5-x86_64-linux/ghc/version+1 materialized/dummy-ghc/js-unknown-ghcjs-js-unknown-ghcjs-ghc-8.10.6-x86_64-darwin/ghc-pkg/dump-global+1330 materialized/dummy-ghc/js-unknown-ghcjs-js-unknown-ghcjs-ghc-8.10.6-x86_64-darwin/ghc-pkg/numeric-ghcjs-version+1 materialized/dummy-ghc/js-unknown-ghcjs-js-unknown-ghcjs-ghc-8.10.6-x86_64-darwin/ghc-pkg/version+1 materialized/dummy-ghc/js-unknown-ghcjs-js-unknown-ghcjs-ghc-8.10.6-x86_64-darwin/ghc/info+71 materialized/dummy-ghc/js-unknown-ghcjs-js-unknown-ghcjs-ghc-8.10.6-x86_64-darwin/ghc/numeric-ghc-version+1 materialized/dummy-ghc/js-unknown-ghcjs-js-unknown-ghcjs-ghc-8.10.6-x86_64-darwin/ghc/numeric-ghcjs-version+1 materialized/dummy-ghc/js-unknown-ghcjs-js-unknown-ghcjs-ghc-8.10.6-x86_64-darwin/ghc/numeric-version+1 materialized/dummy-ghc/js-unknown-ghcjs-js-unknown-ghcjs-ghc-8.10.6-x86_64-darwin/ghc/supported-languages+255 materialized/dummy-ghc/js-unknown-ghcjs-js-unknown-ghcjs-ghc-8.10.6-x86_64-darwin/ghc/version+1 materialized/dummy-ghc/js-unknown-ghcjs-js-unknown-ghcjs-ghc-8.10.6-x86_64-linux/ghc-pkg/dump-global+1330 materialized/dummy-ghc/js-unknown-ghcjs-js-unknown-ghcjs-ghc-8.10.6-x86_64-linux/ghc-pkg/numeric-ghcjs-version+1 materialized/dummy-ghc/js-unknown-ghcjs-js-unknown-ghcjs-ghc-8.10.6-x86_64-linux/ghc-pkg/version+1 materialized/dummy-ghc/js-unknown-ghcjs-js-unknown-ghcjs-ghc-8.10.6-x86_64-linux/ghc/info+71 materialized/dummy-ghc/js-unknown-ghcjs-js-unknown-ghcjs-ghc-8.10.6-x86_64-linux/ghc/numeric-ghc-version+1 materialized/dummy-ghc/js-unknown-ghcjs-js-unknown-ghcjs-ghc-8.10.6-x86_64-linux/ghc/numeric-ghcjs-version+1 materialized/dummy-ghc/js-unknown-ghcjs-js-unknown-ghcjs-ghc-8.10.6-x86_64-linux/ghc/numeric-version+1 materialized/dummy-ghc/js-unknown-ghcjs-js-unknown-ghcjs-ghc-8.10.6-x86_64-linux/ghc/supported-languages+255 materialized/dummy-ghc/js-unknown-ghcjs-js-unknown-ghcjs-ghc-8.10.6-x86_64-linux/ghc/version+1 materialized/dummy-ghc/js-unknown-ghcjs-js-unknown-ghcjs-ghc-8.10.7-x86_64-darwin/ghc-pkg/dump-global+1330 materialized/dummy-ghc/js-unknown-ghcjs-js-unknown-ghcjs-ghc-8.10.7-x86_64-darwin/ghc-pkg/numeric-ghcjs-version+1 materialized/dummy-ghc/js-unknown-ghcjs-js-unknown-ghcjs-ghc-8.10.7-x86_64-darwin/ghc-pkg/version+1 materialized/dummy-ghc/js-unknown-ghcjs-js-unknown-ghcjs-ghc-8.10.7-x86_64-darwin/ghc/info+71 materialized/dummy-ghc/js-unknown-ghcjs-js-unknown-ghcjs-ghc-8.10.7-x86_64-darwin/ghc/numeric-ghc-version+1 materialized/dummy-ghc/js-unknown-ghcjs-js-unknown-ghcjs-ghc-8.10.7-x86_64-darwin/ghc/numeric-ghcjs-version+1 materialized/dummy-ghc/js-unknown-ghcjs-js-unknown-ghcjs-ghc-8.10.7-x86_64-darwin/ghc/numeric-version+1 materialized/dummy-ghc/js-unknown-ghcjs-js-unknown-ghcjs-ghc-8.10.7-x86_64-darwin/ghc/supported-languages+255 materialized/dummy-ghc/js-unknown-ghcjs-js-unknown-ghcjs-ghc-8.10.7-x86_64-darwin/ghc/version+1 materialized/dummy-ghc/js-unknown-ghcjs-js-unknown-ghcjs-ghc-8.10.7-x86_64-linux/ghc-pkg/dump-global+1330 materialized/dummy-ghc/js-unknown-ghcjs-js-unknown-ghcjs-ghc-8.10.7-x86_64-linux/ghc-pkg/numeric-ghcjs-version+1 materialized/dummy-ghc/js-unknown-ghcjs-js-unknown-ghcjs-ghc-8.10.7-x86_64-linux/ghc-pkg/version+1 materialized/dummy-ghc/js-unknown-ghcjs-js-unknown-ghcjs-ghc-8.10.7-x86_64-linux/ghc/info+71 materialized/dummy-ghc/js-unknown-ghcjs-js-unknown-ghcjs-ghc-8.10.7-x86_64-linux/ghc/numeric-ghc-version+1 materialized/dummy-ghc/js-unknown-ghcjs-js-unknown-ghcjs-ghc-8.10.7-x86_64-linux/ghc/numeric-ghcjs-version+1 materialized/dummy-ghc/js-unknown-ghcjs-js-unknown-ghcjs-ghc-8.10.7-x86_64-linux/ghc/numeric-version+1 materialized/dummy-ghc/js-unknown-ghcjs-js-unknown-ghcjs-ghc-8.10.7-x86_64-linux/ghc/supported-languages+255 materialized/dummy-ghc/js-unknown-ghcjs-js-unknown-ghcjs-ghc-8.10.7-x86_64-linux/ghc/version+1 materialized/dummy-ghc/js-unknown-ghcjs-js-unknown-ghcjs-ghc-8.6.5-x86_64-linux/ghc-pkg/dump-global+2−65 materialized/dummy-ghc/js-unknown-ghcjs-js-unknown-ghcjs-ghc-8.6.5-x86_64-linux/ghc/info+18−17 materialized/dummy-ghc/js-unknown-ghcjs-js-unknown-ghcjs-ghc-8.8.4-x86_64-linux/ghc-pkg/dump-global+1321 materialized/dummy-ghc/js-unknown-ghcjs-js-unknown-ghcjs-ghc-8.8.4-x86_64-linux/ghc-pkg/numeric-ghcjs-version+1 materialized/dummy-ghc/js-unknown-ghcjs-js-unknown-ghcjs-ghc-8.8.4-x86_64-linux/ghc-pkg/version+1 materialized/dummy-ghc/js-unknown-ghcjs-js-unknown-ghcjs-ghc-8.8.4-x86_64-linux/ghc/info+59 materialized/dummy-ghc/js-unknown-ghcjs-js-unknown-ghcjs-ghc-8.8.4-x86_64-linux/ghc/numeric-ghc-version+1 materialized/dummy-ghc/js-unknown-ghcjs-js-unknown-ghcjs-ghc-8.8.4-x86_64-linux/ghc/numeric-ghcjs-version+1 materialized/dummy-ghc/js-unknown-ghcjs-js-unknown-ghcjs-ghc-8.8.4-x86_64-linux/ghc/numeric-version+1 materialized/dummy-ghc/js-unknown-ghcjs-js-unknown-ghcjs-ghc-8.8.4-x86_64-linux/ghc/supported-languages+247 materialized/dummy-ghc/js-unknown-ghcjs-js-unknown-ghcjs-ghc-8.8.4-x86_64-linux/ghc/version+1 materialized/dummy-ghc/x86_64-unknown-linux-musl-x86_64-unknown-linux-musl-ghc-8.10.3-x86_64-linux/ghc-pkg/dump-global+1603 materialized/dummy-ghc/x86_64-unknown-linux-musl-x86_64-unknown-linux-musl-ghc-8.10.3-x86_64-linux/ghc-pkg/version+1 materialized/dummy-ghc/x86_64-unknown-linux-musl-x86_64-unknown-linux-musl-ghc-8.10.3-x86_64-linux/ghc/info+69 materialized/dummy-ghc/x86_64-unknown-linux-musl-x86_64-unknown-linux-musl-ghc-8.10.3-x86_64-linux/ghc/numeric-version+1 materialized/dummy-ghc/x86_64-unknown-linux-musl-x86_64-unknown-linux-musl-ghc-8.10.3-x86_64-linux/ghc/supported-languages+255 materialized/dummy-ghc/x86_64-unknown-linux-musl-x86_64-unknown-linux-musl-ghc-8.10.3-x86_64-linux/ghc/version+1 materialized/dummy-ghc/x86_64-unknown-linux-musl-x86_64-unknown-linux-musl-ghc-8.10.4-x86_64-linux/ghc-pkg/dump-global+1638 materialized/dummy-ghc/x86_64-unknown-linux-musl-x86_64-unknown-linux-musl-ghc-8.10.4-x86_64-linux/ghc-pkg/version+1 materialized/dummy-ghc/x86_64-unknown-linux-musl-x86_64-unknown-linux-musl-ghc-8.10.4-x86_64-linux/ghc/info+69 materialized/dummy-ghc/x86_64-unknown-linux-musl-x86_64-unknown-linux-musl-ghc-8.10.4-x86_64-linux/ghc/numeric-version+1 materialized/dummy-ghc/x86_64-unknown-linux-musl-x86_64-unknown-linux-musl-ghc-8.10.4-x86_64-linux/ghc/supported-languages+255 materialized/dummy-ghc/x86_64-unknown-linux-musl-x86_64-unknown-linux-musl-ghc-8.10.4-x86_64-linux/ghc/version+1 materialized/dummy-ghc/x86_64-unknown-linux-musl-x86_64-unknown-linux-musl-ghc-8.10.4.20210212-x86_64-linux/ghc-pkg/dump-global+1607 materialized/dummy-ghc/x86_64-unknown-linux-musl-x86_64-unknown-linux-musl-ghc-8.10.4.20210212-x86_64-linux/ghc-pkg/version+1 materialized/dummy-ghc/x86_64-unknown-linux-musl-x86_64-unknown-linux-musl-ghc-8.10.4.20210212-x86_64-linux/ghc/info+69 materialized/dummy-ghc/x86_64-unknown-linux-musl-x86_64-unknown-linux-musl-ghc-8.10.4.20210212-x86_64-linux/ghc/numeric-version+1 materialized/dummy-ghc/x86_64-unknown-linux-musl-x86_64-unknown-linux-musl-ghc-8.10.4.20210212-x86_64-linux/ghc/supported-languages+255 materialized/dummy-ghc/x86_64-unknown-linux-musl-x86_64-unknown-linux-musl-ghc-8.10.4.20210212-x86_64-linux/ghc/version+1 materialized/dummy-ghc/x86_64-unknown-linux-musl-x86_64-unknown-linux-musl-ghc-8.10.5-x86_64-linux/ghc-pkg/dump-global+1638 materialized/dummy-ghc/x86_64-unknown-linux-musl-x86_64-unknown-linux-musl-ghc-8.10.5-x86_64-linux/ghc-pkg/version+1 materialized/dummy-ghc/x86_64-unknown-linux-musl-x86_64-unknown-linux-musl-ghc-8.10.5-x86_64-linux/ghc/info+69 materialized/dummy-ghc/x86_64-unknown-linux-musl-x86_64-unknown-linux-musl-ghc-8.10.5-x86_64-linux/ghc/numeric-version+1 materialized/dummy-ghc/x86_64-unknown-linux-musl-x86_64-unknown-linux-musl-ghc-8.10.5-x86_64-linux/ghc/supported-languages+255 materialized/dummy-ghc/x86_64-unknown-linux-musl-x86_64-unknown-linux-musl-ghc-8.10.5-x86_64-linux/ghc/version+1 materialized/dummy-ghc/x86_64-unknown-linux-musl-x86_64-unknown-linux-musl-ghc-8.10.6-x86_64-linux/ghc-pkg/dump-global+1638 materialized/dummy-ghc/x86_64-unknown-linux-musl-x86_64-unknown-linux-musl-ghc-8.10.6-x86_64-linux/ghc-pkg/version+1 materialized/dummy-ghc/x86_64-unknown-linux-musl-x86_64-unknown-linux-musl-ghc-8.10.6-x86_64-linux/ghc/info+69 materialized/dummy-ghc/x86_64-unknown-linux-musl-x86_64-unknown-linux-musl-ghc-8.10.6-x86_64-linux/ghc/numeric-version+1 materialized/dummy-ghc/x86_64-unknown-linux-musl-x86_64-unknown-linux-musl-ghc-8.10.6-x86_64-linux/ghc/supported-languages+255 materialized/dummy-ghc/x86_64-unknown-linux-musl-x86_64-unknown-linux-musl-ghc-8.10.6-x86_64-linux/ghc/version+1 materialized/dummy-ghc/x86_64-unknown-linux-musl-x86_64-unknown-linux-musl-ghc-8.10.7-x86_64-linux/ghc-pkg/dump-global+1638 materialized/dummy-ghc/x86_64-unknown-linux-musl-x86_64-unknown-linux-musl-ghc-8.10.7-x86_64-linux/ghc-pkg/version+1 materialized/dummy-ghc/x86_64-unknown-linux-musl-x86_64-unknown-linux-musl-ghc-8.10.7-x86_64-linux/ghc/info+69 materialized/dummy-ghc/x86_64-unknown-linux-musl-x86_64-unknown-linux-musl-ghc-8.10.7-x86_64-linux/ghc/numeric-version+1 materialized/dummy-ghc/x86_64-unknown-linux-musl-x86_64-unknown-linux-musl-ghc-8.10.7-x86_64-linux/ghc/supported-languages+255 materialized/dummy-ghc/x86_64-unknown-linux-musl-x86_64-unknown-linux-musl-ghc-8.10.7-x86_64-linux/ghc/version+1 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 materialized/dummy-ghc/x86_64-unknown-linux-musl-x86_64-unknown-linux-musl-ghc-8.8.2-x86_64-linux/ghc-pkg/dump-global+1590 materialized/dummy-ghc/x86_64-unknown-linux-musl-x86_64-unknown-linux-musl-ghc-8.8.2-x86_64-linux/ghc-pkg/version+1 materialized/dummy-ghc/x86_64-unknown-linux-musl-x86_64-unknown-linux-musl-ghc-8.8.2-x86_64-linux/ghc/info+57 materialized/dummy-ghc/x86_64-unknown-linux-musl-x86_64-unknown-linux-musl-ghc-8.8.2-x86_64-linux/ghc/numeric-version+1 materialized/dummy-ghc/x86_64-unknown-linux-musl-x86_64-unknown-linux-musl-ghc-8.8.2-x86_64-linux/ghc/supported-languages+247 materialized/dummy-ghc/x86_64-unknown-linux-musl-x86_64-unknown-linux-musl-ghc-8.8.2-x86_64-linux/ghc/version+1 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 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 materialized/dummy-ghc/x86_64-unknown-linux-musl-x86_64-unknown-linux-musl-ghc-9.0.1-x86_64-linux/ghc-pkg/dump-global+1722 materialized/dummy-ghc/x86_64-unknown-linux-musl-x86_64-unknown-linux-musl-ghc-9.0.1-x86_64-linux/ghc-pkg/version+1 materialized/dummy-ghc/x86_64-unknown-linux-musl-x86_64-unknown-linux-musl-ghc-9.0.1-x86_64-linux/ghc/info+70 materialized/dummy-ghc/x86_64-unknown-linux-musl-x86_64-unknown-linux-musl-ghc-9.0.1-x86_64-linux/ghc/numeric-version+1 materialized/dummy-ghc/x86_64-unknown-linux-musl-x86_64-unknown-linux-musl-ghc-9.0.1-x86_64-linux/ghc/supported-languages+261 materialized/dummy-ghc/x86_64-unknown-linux-musl-x86_64-unknown-linux-musl-ghc-9.0.1-x86_64-linux/ghc/version+1 materialized/dummy-ghc/x86_64-unknown-linux-musl-x86_64-unknown-linux-musl-ghc-9.0.2-x86_64-linux/ghc-pkg/dump-global+1729 materialized/dummy-ghc/x86_64-unknown-linux-musl-x86_64-unknown-linux-musl-ghc-9.0.2-x86_64-linux/ghc-pkg/version+1 materialized/dummy-ghc/x86_64-unknown-linux-musl-x86_64-unknown-linux-musl-ghc-9.0.2-x86_64-linux/ghc/info+70 materialized/dummy-ghc/x86_64-unknown-linux-musl-x86_64-unknown-linux-musl-ghc-9.0.2-x86_64-linux/ghc/numeric-version+1 materialized/dummy-ghc/x86_64-unknown-linux-musl-x86_64-unknown-linux-musl-ghc-9.0.2-x86_64-linux/ghc/supported-languages+261 materialized/dummy-ghc/x86_64-unknown-linux-musl-x86_64-unknown-linux-musl-ghc-9.0.2-x86_64-linux/ghc/version+1 materialized/dummy-ghc/x86_64-unknown-linux-musl-x86_64-unknown-linux-musl-ghc-9.2.1-x86_64-linux/ghc-pkg/dump-global+1788 materialized/dummy-ghc/x86_64-unknown-linux-musl-x86_64-unknown-linux-musl-ghc-9.2.1-x86_64-linux/ghc-pkg/version+1 materialized/dummy-ghc/x86_64-unknown-linux-musl-x86_64-unknown-linux-musl-ghc-9.2.1-x86_64-linux/ghc/info+67 materialized/dummy-ghc/x86_64-unknown-linux-musl-x86_64-unknown-linux-musl-ghc-9.2.1-x86_64-linux/ghc/numeric-version+1 materialized/dummy-ghc/x86_64-unknown-linux-musl-x86_64-unknown-linux-musl-ghc-9.2.1-x86_64-linux/ghc/supported-languages+266 materialized/dummy-ghc/x86_64-unknown-linux-musl-x86_64-unknown-linux-musl-ghc-9.2.1-x86_64-linux/ghc/version+1 materialized/dummy-ghc/x86_64-unknown-linux-musl-x86_64-unknown-linux-musl-ghc-9.2.2-x86_64-linux/ghc-pkg/dump-global+1796 materialized/dummy-ghc/x86_64-unknown-linux-musl-x86_64-unknown-linux-musl-ghc-9.2.2-x86_64-linux/ghc-pkg/version+1 materialized/dummy-ghc/x86_64-unknown-linux-musl-x86_64-unknown-linux-musl-ghc-9.2.2-x86_64-linux/ghc/info+66 materialized/dummy-ghc/x86_64-unknown-linux-musl-x86_64-unknown-linux-musl-ghc-9.2.2-x86_64-linux/ghc/numeric-version+1 materialized/dummy-ghc/x86_64-unknown-linux-musl-x86_64-unknown-linux-musl-ghc-9.2.2-x86_64-linux/ghc/supported-languages+266 materialized/dummy-ghc/x86_64-unknown-linux-musl-x86_64-unknown-linux-musl-ghc-9.2.2-x86_64-linux/ghc/version+1 materialized/dummy-ghc/x86_64-unknown-linux-musl-x86_64-unknown-linux-musl-ghc-9.2.3-x86_64-linux/ghc-pkg/dump-global+1796 materialized/dummy-ghc/x86_64-unknown-linux-musl-x86_64-unknown-linux-musl-ghc-9.2.3-x86_64-linux/ghc-pkg/version+1 materialized/dummy-ghc/x86_64-unknown-linux-musl-x86_64-unknown-linux-musl-ghc-9.2.3-x86_64-linux/ghc/info+66 materialized/dummy-ghc/x86_64-unknown-linux-musl-x86_64-unknown-linux-musl-ghc-9.2.3-x86_64-linux/ghc/numeric-version+1 materialized/dummy-ghc/x86_64-unknown-linux-musl-x86_64-unknown-linux-musl-ghc-9.2.3-x86_64-linux/ghc/supported-languages+266 materialized/dummy-ghc/x86_64-unknown-linux-musl-x86_64-unknown-linux-musl-ghc-9.2.3-x86_64-linux/ghc/version+1 materialized/dummy-ghc/x86_64-unknown-linux-musl-x86_64-unknown-linux-musl-ghc-9.2.4-x86_64-linux/ghc-pkg/dump-global+1796 materialized/dummy-ghc/x86_64-unknown-linux-musl-x86_64-unknown-linux-musl-ghc-9.2.4-x86_64-linux/ghc-pkg/version+1 materialized/dummy-ghc/x86_64-unknown-linux-musl-x86_64-unknown-linux-musl-ghc-9.2.4-x86_64-linux/ghc/info+66 materialized/dummy-ghc/x86_64-unknown-linux-musl-x86_64-unknown-linux-musl-ghc-9.2.4-x86_64-linux/ghc/numeric-version+1 materialized/dummy-ghc/x86_64-unknown-linux-musl-x86_64-unknown-linux-musl-ghc-9.2.4-x86_64-linux/ghc/supported-languages+268 materialized/dummy-ghc/x86_64-unknown-linux-musl-x86_64-unknown-linux-musl-ghc-9.2.4-x86_64-linux/ghc/version+1 materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-8.10.2-x86_64-linux/ghc-pkg/dump-global+1437 materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-8.10.2-x86_64-linux/ghc-pkg/version+1 materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-8.10.2-x86_64-linux/ghc/info+67 materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-8.10.2-x86_64-linux/ghc/numeric-version+1 materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-8.10.2-x86_64-linux/ghc/supported-languages+255 materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-8.10.2-x86_64-linux/ghc/version+1 materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-8.10.3-x86_64-linux/ghc-pkg/dump-global+1449 materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-8.10.3-x86_64-linux/ghc-pkg/version+1 materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-8.10.3-x86_64-linux/ghc/info+69 materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-8.10.3-x86_64-linux/ghc/numeric-version+1 materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-8.10.3-x86_64-linux/ghc/supported-languages+255 materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-8.10.3-x86_64-linux/ghc/version+1 materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-8.10.4-x86_64-darwin/ghc-pkg/dump-global+1449 materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-8.10.4-x86_64-darwin/ghc-pkg/version+1 materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-8.10.4-x86_64-darwin/ghc/info+69 materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-8.10.4-x86_64-darwin/ghc/numeric-version+1 materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-8.10.4-x86_64-darwin/ghc/supported-languages+255 materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-8.10.4-x86_64-darwin/ghc/version+1 materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-8.10.4-x86_64-linux/ghc-pkg/dump-global+1449 materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-8.10.4-x86_64-linux/ghc-pkg/version+1 materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-8.10.4-x86_64-linux/ghc/info+69 materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-8.10.4-x86_64-linux/ghc/numeric-version+1 materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-8.10.4-x86_64-linux/ghc/supported-languages+255 materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-8.10.4-x86_64-linux/ghc/version+1 materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-8.10.4.20210212-x86_64-linux/ghc-pkg/dump-global+1451 materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-8.10.4.20210212-x86_64-linux/ghc-pkg/version+1 materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-8.10.4.20210212-x86_64-linux/ghc/info+69 materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-8.10.4.20210212-x86_64-linux/ghc/numeric-version+1 materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-8.10.4.20210212-x86_64-linux/ghc/supported-languages+255 materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-8.10.4.20210212-x86_64-linux/ghc/version+1 materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-8.10.5-x86_64-darwin/ghc-pkg/dump-global+1449 materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-8.10.5-x86_64-darwin/ghc-pkg/version+1 materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-8.10.5-x86_64-darwin/ghc/info+69 materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-8.10.5-x86_64-darwin/ghc/numeric-version+1 materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-8.10.5-x86_64-darwin/ghc/supported-languages+255 materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-8.10.5-x86_64-darwin/ghc/version+1 materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-8.10.5-x86_64-linux/ghc-pkg/dump-global+1449 materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-8.10.5-x86_64-linux/ghc-pkg/version+1 materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-8.10.5-x86_64-linux/ghc/info+69 materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-8.10.5-x86_64-linux/ghc/numeric-version+1 materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-8.10.5-x86_64-linux/ghc/supported-languages+255 materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-8.10.5-x86_64-linux/ghc/version+1 materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-8.10.6-x86_64-darwin/ghc-pkg/dump-global+1450 materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-8.10.6-x86_64-darwin/ghc-pkg/version+1 materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-8.10.6-x86_64-darwin/ghc/info+69 materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-8.10.6-x86_64-darwin/ghc/numeric-version+1 materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-8.10.6-x86_64-darwin/ghc/supported-languages+255 materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-8.10.6-x86_64-darwin/ghc/version+1 materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-8.10.6-x86_64-linux/ghc-pkg/dump-global+1450 materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-8.10.6-x86_64-linux/ghc-pkg/version+1 materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-8.10.6-x86_64-linux/ghc/info+69 materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-8.10.6-x86_64-linux/ghc/numeric-version+1 materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-8.10.6-x86_64-linux/ghc/supported-languages+255 materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-8.10.6-x86_64-linux/ghc/version+1 materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-8.10.7-x86_64-darwin/ghc-pkg/dump-global+1450 materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-8.10.7-x86_64-darwin/ghc-pkg/version+1 materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-8.10.7-x86_64-darwin/ghc/info+69 materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-8.10.7-x86_64-darwin/ghc/numeric-version+1 materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-8.10.7-x86_64-darwin/ghc/supported-languages+255 materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-8.10.7-x86_64-darwin/ghc/version+1 materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-8.10.7-x86_64-linux/ghc-pkg/dump-global+1450 materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-8.10.7-x86_64-linux/ghc-pkg/version+1 materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-8.10.7-x86_64-linux/ghc/info+69 materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-8.10.7-x86_64-linux/ghc/numeric-version+1 materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-8.10.7-x86_64-linux/ghc/supported-languages+255 materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-8.10.7-x86_64-linux/ghc/version+1 materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-8.8.2-x86_64-darwin/ghc-pkg/dump-global+1411 materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-8.8.2-x86_64-darwin/ghc-pkg/version+1 materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-8.8.2-x86_64-darwin/ghc/info+57 materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-8.8.2-x86_64-darwin/ghc/numeric-version+1 materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-8.8.2-x86_64-darwin/ghc/supported-languages+247 materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-8.8.2-x86_64-darwin/ghc/version+1 materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-8.8.2-x86_64-linux/ghc-pkg/dump-global+1411 materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-8.8.2-x86_64-linux/ghc-pkg/version+1 materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-8.8.2-x86_64-linux/ghc/info+57 materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-8.8.2-x86_64-linux/ghc/numeric-version+1 materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-8.8.2-x86_64-linux/ghc/supported-languages+247 materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-8.8.2-x86_64-linux/ghc/version+1 materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-8.8.3-x86_64-darwin/ghc-pkg/dump-global+1411 materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-8.8.3-x86_64-darwin/ghc-pkg/version+1 materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-8.8.3-x86_64-darwin/ghc/info+57 materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-8.8.3-x86_64-darwin/ghc/numeric-version+1 materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-8.8.3-x86_64-darwin/ghc/supported-languages+247 materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-8.8.3-x86_64-darwin/ghc/version+1 materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-8.8.4-x86_64-darwin/ghc-pkg/dump-global+1411 materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-8.8.4-x86_64-darwin/ghc-pkg/version+1 materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-8.8.4-x86_64-darwin/ghc/info+57 materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-8.8.4-x86_64-darwin/ghc/numeric-version+1 materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-8.8.4-x86_64-darwin/ghc/supported-languages+247 materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-8.8.4-x86_64-darwin/ghc/version+1 materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-9.0.1-x86_64-darwin/ghc-pkg/dump-global+1504 materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-9.0.1-x86_64-darwin/ghc-pkg/version+1 materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-9.0.1-x86_64-darwin/ghc/info+70 materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-9.0.1-x86_64-darwin/ghc/numeric-version+1 materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-9.0.1-x86_64-darwin/ghc/supported-languages+261 materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-9.0.1-x86_64-darwin/ghc/version+1 materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-9.0.1-x86_64-linux/ghc-pkg/dump-global+1504 materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-9.0.1-x86_64-linux/ghc-pkg/version+1 materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-9.0.1-x86_64-linux/ghc/info+70 materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-9.0.1-x86_64-linux/ghc/numeric-version+1 materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-9.0.1-x86_64-linux/ghc/supported-languages+261 materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-9.0.1-x86_64-linux/ghc/version+1 materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-9.0.2-x86_64-darwin/ghc-pkg/dump-global+1512 materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-9.0.2-x86_64-darwin/ghc-pkg/version+1 materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-9.0.2-x86_64-darwin/ghc/info+70 materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-9.0.2-x86_64-darwin/ghc/numeric-version+1 materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-9.0.2-x86_64-darwin/ghc/supported-languages+261 materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-9.0.2-x86_64-darwin/ghc/version+1 materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-9.0.2-x86_64-linux/ghc-pkg/dump-global+1512 materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-9.0.2-x86_64-linux/ghc-pkg/version+1 materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-9.0.2-x86_64-linux/ghc/info+70 materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-9.0.2-x86_64-linux/ghc/numeric-version+1 materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-9.0.2-x86_64-linux/ghc/supported-languages+261 materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-9.0.2-x86_64-linux/ghc/version+1 materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-9.2.1-x86_64-darwin/ghc-pkg/dump-global+1522 materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-9.2.1-x86_64-darwin/ghc-pkg/version+1 materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-9.2.1-x86_64-darwin/ghc/info+67 materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-9.2.1-x86_64-darwin/ghc/numeric-version+1 materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-9.2.1-x86_64-darwin/ghc/supported-languages+266 materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-9.2.1-x86_64-darwin/ghc/version+1 materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-9.2.1-x86_64-linux/ghc-pkg/dump-global+1522 materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-9.2.1-x86_64-linux/ghc-pkg/version+1 materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-9.2.1-x86_64-linux/ghc/info+67 materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-9.2.1-x86_64-linux/ghc/numeric-version+1 materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-9.2.1-x86_64-linux/ghc/supported-languages+266 materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-9.2.1-x86_64-linux/ghc/version+1 materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-9.2.2-x86_64-darwin/ghc-pkg/dump-global+1533 materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-9.2.2-x86_64-darwin/ghc-pkg/version+1 materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-9.2.2-x86_64-darwin/ghc/info+66 materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-9.2.2-x86_64-darwin/ghc/numeric-version+1 materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-9.2.2-x86_64-darwin/ghc/supported-languages+266 materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-9.2.2-x86_64-darwin/ghc/version+1 materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-9.2.2-x86_64-linux/ghc-pkg/dump-global+1533 materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-9.2.2-x86_64-linux/ghc-pkg/version+1 materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-9.2.2-x86_64-linux/ghc/info+66 materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-9.2.2-x86_64-linux/ghc/numeric-version+1 materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-9.2.2-x86_64-linux/ghc/supported-languages+266 materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-9.2.2-x86_64-linux/ghc/version+1 materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-9.2.3-x86_64-darwin/ghc-pkg/dump-global+1533 materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-9.2.3-x86_64-darwin/ghc-pkg/version+1 materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-9.2.3-x86_64-darwin/ghc/info+66 materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-9.2.3-x86_64-darwin/ghc/numeric-version+1 materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-9.2.3-x86_64-darwin/ghc/supported-languages+266 materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-9.2.3-x86_64-darwin/ghc/version+1 materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-9.2.3-x86_64-linux/ghc-pkg/dump-global+1533 materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-9.2.3-x86_64-linux/ghc-pkg/version+1 materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-9.2.3-x86_64-linux/ghc/info+66 materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-9.2.3-x86_64-linux/ghc/numeric-version+1 materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-9.2.3-x86_64-linux/ghc/supported-languages+266 materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-9.2.3-x86_64-linux/ghc/version+1 materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-9.2.4-x86_64-darwin/ghc-pkg/dump-global+1533 materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-9.2.4-x86_64-darwin/ghc-pkg/version+1 materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-9.2.4-x86_64-darwin/ghc/info+66 materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-9.2.4-x86_64-darwin/ghc/numeric-version+1 materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-9.2.4-x86_64-darwin/ghc/supported-languages+268 materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-9.2.4-x86_64-darwin/ghc/version+1 materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-9.2.4-x86_64-linux/ghc-pkg/dump-global+1533 materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-9.2.4-x86_64-linux/ghc-pkg/version+1 materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-9.2.4-x86_64-linux/ghc/info+66 materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-9.2.4-x86_64-linux/ghc/numeric-version+1 materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-9.2.4-x86_64-linux/ghc/supported-languages+268 materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-9.2.4-x86_64-linux/ghc/version+1 materialized/ghc-boot-packages-nix/ghc8101/Win32.nix+46 materialized/ghc-boot-packages-nix/ghc8101/base.nix+43 materialized/ghc-boot-packages-nix/ghc8101/ghc-heap.nix+35 materialized/ghc-boot-packages-nix/ghc8101/ghc-prim.nix+40 materialized/ghc-boot-packages-nix/ghc8101/integer-gmp.nix+33 materialized/ghc-boot-packages-nix/ghc8101/template-haskell.nix+36 materialized/ghc-boot-packages-nix/ghc8102/Win32.nix+46 materialized/ghc-boot-packages-nix/ghc8102/base.nix+43 materialized/ghc-boot-packages-nix/ghc8102/ghc-heap.nix+35 materialized/ghc-boot-packages-nix/ghc8102/ghc-prim.nix+43 materialized/ghc-boot-packages-nix/ghc8102/integer-gmp.nix+33 materialized/ghc-boot-packages-nix/ghc8102/iserv-proxy.nix+1−1 materialized/ghc-boot-packages-nix/ghc8102/template-haskell.nix+36 materialized/ghc-boot-packages-nix/ghc8103/Win32.nix+46 materialized/ghc-boot-packages-nix/ghc8103/base.nix+43 materialized/ghc-boot-packages-nix/ghc8103/bytestring.nix+35 materialized/ghc-boot-packages-nix/ghc8103/ghc-boot.nix+1−1 materialized/ghc-boot-packages-nix/ghc8103/ghc-heap.nix+35 materialized/ghc-boot-packages-nix/ghc8103/ghc-prim.nix+43 materialized/ghc-boot-packages-nix/ghc8103/ghc.nix+1−1 materialized/ghc-boot-packages-nix/ghc8103/ghci.nix+1−1 materialized/ghc-boot-packages-nix/ghc8103/hpc.nix materialized/ghc-boot-packages-nix/ghc8103/integer-gmp.nix+33 materialized/ghc-boot-packages-nix/ghc8103/iserv-proxy.nix+2−2 materialized/ghc-boot-packages-nix/ghc8103/iserv.nix+1−1 materialized/ghc-boot-packages-nix/ghc8103/libiserv.nix+1−1 materialized/ghc-boot-packages-nix/ghc8103/remote-iserv.nix+1−1 materialized/ghc-boot-packages-nix/ghc8103/template-haskell.nix+36 materialized/ghc-boot-packages-nix/ghc8104/Win32.nix+46 materialized/ghc-boot-packages-nix/ghc8104/base.nix+43 materialized/ghc-boot-packages-nix/ghc8104/bytestring.nix+35 materialized/ghc-boot-packages-nix/ghc8104/ghc-boot.nix+39 materialized/ghc-boot-packages-nix/ghc8104/ghc-heap.nix+35 materialized/ghc-boot-packages-nix/ghc8104/ghc-prim.nix+43 materialized/ghc-boot-packages-nix/ghc8104/ghc.nix+62 materialized/ghc-boot-packages-nix/ghc8104/ghci.nix+44 materialized/ghc-boot-packages-nix/ghc8104/hpc.nix+38 materialized/ghc-boot-packages-nix/ghc8104/integer-gmp.nix+33 materialized/ghc-boot-packages-nix/ghc8104/iserv-proxy.nix+45 materialized/ghc-boot-packages-nix/ghc8104/iserv.nix+42 materialized/ghc-boot-packages-nix/ghc8104/libiserv.nix+42 materialized/ghc-boot-packages-nix/ghc8104/remote-iserv.nix+36 materialized/ghc-boot-packages-nix/ghc8104/template-haskell.nix+36 materialized/ghc-boot-packages-nix/ghc810420210212/Win32.nix+46 materialized/ghc-boot-packages-nix/ghc810420210212/base.nix+43 materialized/ghc-boot-packages-nix/ghc810420210212/bytestring.nix+35 materialized/ghc-boot-packages-nix/ghc810420210212/ghc-boot.nix+39 materialized/ghc-boot-packages-nix/ghc810420210212/ghc-heap.nix+35 materialized/ghc-boot-packages-nix/ghc810420210212/ghc-prim.nix+43 materialized/ghc-boot-packages-nix/ghc810420210212/ghc.nix+62 materialized/ghc-boot-packages-nix/ghc810420210212/ghci.nix+44 materialized/ghc-boot-packages-nix/ghc810420210212/hpc.nix+38 materialized/ghc-boot-packages-nix/ghc810420210212/integer-gmp.nix+33 materialized/ghc-boot-packages-nix/ghc810420210212/iserv-proxy.nix+45 materialized/ghc-boot-packages-nix/ghc810420210212/iserv.nix+42 materialized/ghc-boot-packages-nix/ghc810420210212/libiserv.nix+42 materialized/ghc-boot-packages-nix/ghc810420210212/remote-iserv.nix+36 materialized/ghc-boot-packages-nix/ghc810420210212/template-haskell.nix+36 materialized/ghc-boot-packages-nix/ghc8105-aarch64/Win32.nix+46 materialized/ghc-boot-packages-nix/ghc8105-aarch64/base.nix+43 materialized/ghc-boot-packages-nix/ghc8105-aarch64/bytestring.nix+35 materialized/ghc-boot-packages-nix/ghc8105-aarch64/ghc-boot.nix+39 materialized/ghc-boot-packages-nix/ghc8105-aarch64/ghc-heap.nix+35 materialized/ghc-boot-packages-nix/ghc8105-aarch64/ghc-prim.nix+44 materialized/ghc-boot-packages-nix/ghc8105-aarch64/ghc.nix+62 materialized/ghc-boot-packages-nix/ghc8105-aarch64/ghci.nix+45 materialized/ghc-boot-packages-nix/ghc8105-aarch64/hpc.nix+38 materialized/ghc-boot-packages-nix/ghc8105-aarch64/integer-gmp.nix+33 materialized/ghc-boot-packages-nix/ghc8105-aarch64/iserv-proxy.nix+45 materialized/ghc-boot-packages-nix/ghc8105-aarch64/iserv.nix+42 materialized/ghc-boot-packages-nix/ghc8105-aarch64/libiserv.nix+42 materialized/ghc-boot-packages-nix/ghc8105-aarch64/remote-iserv.nix+36 materialized/ghc-boot-packages-nix/ghc8105-aarch64/template-haskell.nix+36 materialized/ghc-boot-packages-nix/ghc8105/Win32.nix+46 materialized/ghc-boot-packages-nix/ghc8105/base.nix+43 materialized/ghc-boot-packages-nix/ghc8105/bytestring.nix+35 materialized/ghc-boot-packages-nix/ghc8105/ghc-boot.nix+39 materialized/ghc-boot-packages-nix/ghc8105/ghc-heap.nix+35 materialized/ghc-boot-packages-nix/ghc8105/ghc-prim.nix+43 materialized/ghc-boot-packages-nix/ghc8105/ghc.nix+62 materialized/ghc-boot-packages-nix/ghc8105/ghci.nix+45 materialized/ghc-boot-packages-nix/ghc8105/hpc.nix+38 materialized/ghc-boot-packages-nix/ghc8105/integer-gmp.nix+33 materialized/ghc-boot-packages-nix/ghc8105/iserv-proxy.nix+45 materialized/ghc-boot-packages-nix/ghc8105/iserv.nix+42 materialized/ghc-boot-packages-nix/ghc8105/libiserv.nix+42 materialized/ghc-boot-packages-nix/ghc8105/remote-iserv.nix+36 materialized/ghc-boot-packages-nix/ghc8105/template-haskell.nix+36 materialized/ghc-boot-packages-nix/ghc8106-aarch64/Win32.nix+46 materialized/ghc-boot-packages-nix/ghc8106-aarch64/base.nix+43 materialized/ghc-boot-packages-nix/ghc8106-aarch64/bytestring.nix+35 materialized/ghc-boot-packages-nix/ghc8106-aarch64/ghc-boot.nix+39 materialized/ghc-boot-packages-nix/ghc8106-aarch64/ghc-heap.nix+35 materialized/ghc-boot-packages-nix/ghc8106-aarch64/ghc-prim.nix+44 materialized/ghc-boot-packages-nix/ghc8106-aarch64/ghc.nix+62 materialized/ghc-boot-packages-nix/ghc8106-aarch64/ghci.nix+45 materialized/ghc-boot-packages-nix/ghc8106-aarch64/hpc.nix+38 materialized/ghc-boot-packages-nix/ghc8106-aarch64/integer-gmp.nix+33 materialized/ghc-boot-packages-nix/ghc8106-aarch64/iserv-proxy.nix+45 materialized/ghc-boot-packages-nix/ghc8106-aarch64/iserv.nix+42 materialized/ghc-boot-packages-nix/ghc8106-aarch64/libiserv.nix+42 materialized/ghc-boot-packages-nix/ghc8106-aarch64/remote-iserv.nix+36 materialized/ghc-boot-packages-nix/ghc8106-aarch64/template-haskell.nix+36 materialized/ghc-boot-packages-nix/ghc8106/Win32.nix+46 materialized/ghc-boot-packages-nix/ghc8106/base.nix+43 materialized/ghc-boot-packages-nix/ghc8106/bytestring.nix+35 materialized/ghc-boot-packages-nix/ghc8106/ghc-boot.nix+39 materialized/ghc-boot-packages-nix/ghc8106/ghc-heap.nix+35 materialized/ghc-boot-packages-nix/ghc8106/ghc-prim.nix+43 materialized/ghc-boot-packages-nix/ghc8106/ghc.nix+62 materialized/ghc-boot-packages-nix/ghc8106/ghci.nix+45 materialized/ghc-boot-packages-nix/ghc8106/hpc.nix+38 materialized/ghc-boot-packages-nix/ghc8106/integer-gmp.nix+33 materialized/ghc-boot-packages-nix/ghc8106/iserv-proxy.nix+45 materialized/ghc-boot-packages-nix/ghc8106/iserv.nix+42 materialized/ghc-boot-packages-nix/ghc8106/libiserv.nix+42 materialized/ghc-boot-packages-nix/ghc8106/remote-iserv.nix+36 materialized/ghc-boot-packages-nix/ghc8106/template-haskell.nix+36 materialized/ghc-boot-packages-nix/ghc8107-aarch64/Win32.nix+46 materialized/ghc-boot-packages-nix/ghc8107-aarch64/base.nix+43 materialized/ghc-boot-packages-nix/ghc8107-aarch64/bytestring.nix+35 materialized/ghc-boot-packages-nix/ghc8107-aarch64/ghc-boot.nix+39 materialized/ghc-boot-packages-nix/ghc8107-aarch64/ghc-heap.nix+35 materialized/ghc-boot-packages-nix/ghc8107-aarch64/ghc-prim.nix+44 materialized/ghc-boot-packages-nix/ghc8107-aarch64/ghc.nix+62 materialized/ghc-boot-packages-nix/ghc8107-aarch64/ghci.nix+45 materialized/ghc-boot-packages-nix/ghc8107-aarch64/hpc.nix+38 materialized/ghc-boot-packages-nix/ghc8107-aarch64/integer-gmp.nix+33 materialized/ghc-boot-packages-nix/ghc8107-aarch64/iserv-proxy.nix+45 materialized/ghc-boot-packages-nix/ghc8107-aarch64/iserv.nix+42 materialized/ghc-boot-packages-nix/ghc8107-aarch64/libiserv.nix+42 materialized/ghc-boot-packages-nix/ghc8107-aarch64/remote-iserv.nix+36 materialized/ghc-boot-packages-nix/ghc8107-aarch64/template-haskell.nix+36 materialized/ghc-boot-packages-nix/ghc8107/Win32.nix+46 materialized/ghc-boot-packages-nix/ghc8107/base.nix+43 materialized/ghc-boot-packages-nix/ghc8107/bytestring.nix+35 materialized/ghc-boot-packages-nix/ghc8107/ghc-boot.nix+39 materialized/ghc-boot-packages-nix/ghc8107/ghc-heap.nix+35 materialized/ghc-boot-packages-nix/ghc8107/ghc-prim.nix+43 materialized/ghc-boot-packages-nix/ghc8107/ghc.nix+62 materialized/ghc-boot-packages-nix/ghc8107/ghci.nix+45 materialized/ghc-boot-packages-nix/ghc8107/hpc.nix+38 materialized/ghc-boot-packages-nix/ghc8107/integer-gmp.nix+33 materialized/ghc-boot-packages-nix/ghc8107/iserv-proxy.nix+45 materialized/ghc-boot-packages-nix/ghc8107/iserv.nix+42 materialized/ghc-boot-packages-nix/ghc8107/libiserv.nix+42 materialized/ghc-boot-packages-nix/ghc8107/remote-iserv.nix+36 materialized/ghc-boot-packages-nix/ghc8107/template-haskell.nix+36 materialized/ghc-boot-packages-nix/ghc844/ghc.nix−4 materialized/ghc-boot-packages-nix/ghc863/Win32.nix+46 materialized/ghc-boot-packages-nix/ghc863/base.nix+42 materialized/ghc-boot-packages-nix/ghc863/bytestring.nix+1−57 materialized/ghc-boot-packages-nix/ghc863/ghc-boot.nix+38 materialized/ghc-boot-packages-nix/ghc863/ghc-heap.nix+35 materialized/ghc-boot-packages-nix/ghc863/ghc-prim.nix+40 materialized/ghc-boot-packages-nix/ghc863/ghc.nix+59 materialized/ghc-boot-packages-nix/ghc863/ghci.nix+44 materialized/ghc-boot-packages-nix/ghc863/hpc.nix+37 materialized/ghc-boot-packages-nix/ghc863/integer-gmp.nix+33 materialized/ghc-boot-packages-nix/ghc863/iserv-proxy.nix+45 materialized/ghc-boot-packages-nix/ghc863/iserv.nix+42 materialized/ghc-boot-packages-nix/ghc863/libiserv.nix+42 materialized/ghc-boot-packages-nix/ghc863/remote-iserv.nix+36 materialized/ghc-boot-packages-nix/ghc863/template-haskell.nix+35 materialized/ghc-boot-packages-nix/ghc864/Win32.nix+46 materialized/ghc-boot-packages-nix/ghc864/base.nix+42 materialized/ghc-boot-packages-nix/ghc864/bytestring.nix+1−57 materialized/ghc-boot-packages-nix/ghc864/ghc-boot.nix+38 materialized/ghc-boot-packages-nix/ghc864/ghc-heap.nix+35 materialized/ghc-boot-packages-nix/ghc864/ghc-prim.nix+40 materialized/ghc-boot-packages-nix/ghc864/ghc.nix+60 materialized/ghc-boot-packages-nix/ghc864/ghci.nix+44 materialized/ghc-boot-packages-nix/ghc864/hpc.nix+37 materialized/ghc-boot-packages-nix/ghc864/integer-gmp.nix+33 materialized/ghc-boot-packages-nix/ghc864/iserv-proxy.nix+45 materialized/ghc-boot-packages-nix/ghc864/iserv.nix+42 materialized/ghc-boot-packages-nix/ghc864/libiserv.nix+42 materialized/ghc-boot-packages-nix/ghc864/remote-iserv.nix+36 materialized/ghc-boot-packages-nix/ghc864/template-haskell.nix+35 materialized/ghc-boot-packages-nix/ghc865/Win32.nix+46 materialized/ghc-boot-packages-nix/ghc865/base.nix+1−1 materialized/ghc-boot-packages-nix/ghc865/ghc-heap.nix+1−1 materialized/ghc-boot-packages-nix/ghc865/ghc-prim.nix+40 materialized/ghc-boot-packages-nix/ghc865/ghc.nix−4 materialized/ghc-boot-packages-nix/ghc865/integer-gmp.nix+33 materialized/ghc-boot-packages-nix/ghc865/iserv-proxy.nix+1−1 materialized/ghc-boot-packages-nix/ghc865/template-haskell.nix+35 materialized/ghc-boot-packages-nix/ghc882/Win32.nix+46 materialized/ghc-boot-packages-nix/ghc882/base.nix+42 materialized/ghc-boot-packages-nix/ghc882/bytestring.nix materialized/ghc-boot-packages-nix/ghc882/ghc-boot.nix+38 materialized/ghc-boot-packages-nix/ghc882/ghc-heap.nix+35 materialized/ghc-boot-packages-nix/ghc882/ghc-prim.nix+40 materialized/ghc-boot-packages-nix/ghc882/ghc.nix+61 materialized/ghc-boot-packages-nix/ghc882/ghci.nix+44 materialized/ghc-boot-packages-nix/ghc882/hpc.nix+37 materialized/ghc-boot-packages-nix/ghc882/integer-gmp.nix+33 materialized/ghc-boot-packages-nix/ghc882/iserv-proxy.nix+45 materialized/ghc-boot-packages-nix/ghc882/iserv.nix+42 materialized/ghc-boot-packages-nix/ghc882/libiserv.nix+42 materialized/ghc-boot-packages-nix/ghc882/remote-iserv.nix+36 materialized/ghc-boot-packages-nix/ghc882/template-haskell.nix+35 materialized/ghc-boot-packages-nix/ghc883-aarch64/Win32.nix+46 materialized/ghc-boot-packages-nix/ghc883-aarch64/base.nix+42 materialized/ghc-boot-packages-nix/ghc883-aarch64/bytestring.nix+1−57 materialized/ghc-boot-packages-nix/ghc883-aarch64/ghc-boot.nix+38 materialized/ghc-boot-packages-nix/ghc883-aarch64/ghc-heap.nix+35 materialized/ghc-boot-packages-nix/ghc883-aarch64/ghc-prim.nix+40 materialized/ghc-boot-packages-nix/ghc883-aarch64/ghc.nix+61 materialized/ghc-boot-packages-nix/ghc883-aarch64/ghci.nix+44 materialized/ghc-boot-packages-nix/ghc883-aarch64/hpc.nix+37 materialized/ghc-boot-packages-nix/ghc883-aarch64/integer-gmp.nix+33 materialized/ghc-boot-packages-nix/ghc883-aarch64/iserv-proxy.nix+45 materialized/ghc-boot-packages-nix/ghc883-aarch64/iserv.nix+42 materialized/ghc-boot-packages-nix/ghc883-aarch64/libiserv.nix+42 materialized/ghc-boot-packages-nix/ghc883-aarch64/remote-iserv.nix+36 materialized/ghc-boot-packages-nix/ghc883-aarch64/template-haskell.nix+35 materialized/ghc-boot-packages-nix/ghc883/Win32.nix+46 materialized/ghc-boot-packages-nix/ghc883/base.nix+42 materialized/ghc-boot-packages-nix/ghc883/ghc-heap.nix+35 materialized/ghc-boot-packages-nix/ghc883/ghc-prim.nix+40 materialized/ghc-boot-packages-nix/ghc883/ghc.nix−4 materialized/ghc-boot-packages-nix/ghc883/integer-gmp.nix+33 materialized/ghc-boot-packages-nix/ghc883/iserv-proxy.nix+1−1 materialized/ghc-boot-packages-nix/ghc883/template-haskell.nix+35 materialized/ghc-boot-packages-nix/ghc884-aarch64/Win32.nix+46 materialized/ghc-boot-packages-nix/ghc884-aarch64/base.nix+42 materialized/ghc-boot-packages-nix/ghc884-aarch64/bytestring.nix+4−60 materialized/ghc-boot-packages-nix/ghc884-aarch64/ghc-boot.nix+38 materialized/ghc-boot-packages-nix/ghc884-aarch64/ghc-heap.nix+35 materialized/ghc-boot-packages-nix/ghc884-aarch64/ghc-prim.nix+43 materialized/ghc-boot-packages-nix/ghc884-aarch64/ghc.nix+61 materialized/ghc-boot-packages-nix/ghc884-aarch64/ghci.nix+44 materialized/ghc-boot-packages-nix/ghc884-aarch64/hpc.nix+37 materialized/ghc-boot-packages-nix/ghc884-aarch64/integer-gmp.nix+33 materialized/ghc-boot-packages-nix/ghc884-aarch64/iserv-proxy.nix+45 materialized/ghc-boot-packages-nix/ghc884-aarch64/iserv.nix+42 materialized/ghc-boot-packages-nix/ghc884-aarch64/libiserv.nix+42 materialized/ghc-boot-packages-nix/ghc884-aarch64/remote-iserv.nix+36 materialized/ghc-boot-packages-nix/ghc884-aarch64/template-haskell.nix+35 materialized/ghc-boot-packages-nix/ghc884/Win32.nix+46 materialized/ghc-boot-packages-nix/ghc884/base.nix+42 materialized/ghc-boot-packages-nix/ghc884/ghc-heap.nix+35 materialized/ghc-boot-packages-nix/ghc884/ghc-prim.nix+43 materialized/ghc-boot-packages-nix/ghc884/ghc.nix−4 materialized/ghc-boot-packages-nix/ghc884/integer-gmp.nix+33 materialized/ghc-boot-packages-nix/ghc884/iserv-proxy.nix+1−1 materialized/ghc-boot-packages-nix/ghc884/template-haskell.nix+35 materialized/ghc-boot-packages-nix/ghc901-aarch64/Win32.nix+49 materialized/ghc-boot-packages-nix/ghc901-aarch64/base.nix+48 materialized/ghc-boot-packages-nix/ghc901-aarch64/bytestring.nix+35 materialized/ghc-boot-packages-nix/ghc901-aarch64/ghc-bignum.nix+37 materialized/ghc-boot-packages-nix/ghc901-aarch64/ghc-boot.nix+39 materialized/ghc-boot-packages-nix/ghc901-aarch64/ghc-heap.nix+35 materialized/ghc-boot-packages-nix/ghc901-aarch64/ghc-prim.nix+44 materialized/ghc-boot-packages-nix/ghc901-aarch64/ghc.nix+61 materialized/ghc-boot-packages-nix/ghc901-aarch64/ghci.nix+44 materialized/ghc-boot-packages-nix/ghc901-aarch64/hpc.nix+38 materialized/ghc-boot-packages-nix/ghc901-aarch64/integer-gmp.nix+35 materialized/ghc-boot-packages-nix/ghc901-aarch64/iserv-proxy.nix+45 materialized/ghc-boot-packages-nix/ghc901-aarch64/iserv.nix+42 materialized/ghc-boot-packages-nix/ghc901-aarch64/libiserv.nix+42 materialized/ghc-boot-packages-nix/ghc901-aarch64/remote-iserv.nix+36 materialized/ghc-boot-packages-nix/ghc901-aarch64/template-haskell.nix+36 materialized/ghc-boot-packages-nix/ghc901/Win32.nix+49 materialized/ghc-boot-packages-nix/ghc901/base.nix+48 materialized/ghc-boot-packages-nix/ghc901/bytestring.nix+35 materialized/ghc-boot-packages-nix/ghc901/ghc-bignum.nix+37 materialized/ghc-boot-packages-nix/ghc901/ghc-boot.nix+39 materialized/ghc-boot-packages-nix/ghc901/ghc-heap.nix+35 materialized/ghc-boot-packages-nix/ghc901/ghc-prim.nix+43 materialized/ghc-boot-packages-nix/ghc901/ghc.nix+61 materialized/ghc-boot-packages-nix/ghc901/ghci.nix+44 materialized/ghc-boot-packages-nix/ghc901/hpc.nix+38 materialized/ghc-boot-packages-nix/ghc901/integer-gmp.nix+35 materialized/ghc-boot-packages-nix/ghc901/iserv-proxy.nix+45 materialized/ghc-boot-packages-nix/ghc901/iserv.nix+42 materialized/ghc-boot-packages-nix/ghc901/libiserv.nix+42 materialized/ghc-boot-packages-nix/ghc901/remote-iserv.nix+36 materialized/ghc-boot-packages-nix/ghc901/template-haskell.nix+36 materialized/ghc-boot-packages-nix/ghc902-aarch64/Win32.nix+48 materialized/ghc-boot-packages-nix/ghc902-aarch64/base.nix+48 materialized/ghc-boot-packages-nix/ghc902-aarch64/bytestring.nix+35 materialized/ghc-boot-packages-nix/ghc902-aarch64/ghc-bignum.nix+37 materialized/ghc-boot-packages-nix/ghc902-aarch64/ghc-boot.nix+39 materialized/ghc-boot-packages-nix/ghc902-aarch64/ghc-heap.nix+35 materialized/ghc-boot-packages-nix/ghc902-aarch64/ghc-prim.nix+44 materialized/ghc-boot-packages-nix/ghc902-aarch64/ghc.nix+61 materialized/ghc-boot-packages-nix/ghc902-aarch64/ghci.nix+45 materialized/ghc-boot-packages-nix/ghc902-aarch64/hpc.nix+38 materialized/ghc-boot-packages-nix/ghc902-aarch64/integer-gmp.nix+35 materialized/ghc-boot-packages-nix/ghc902-aarch64/iserv-proxy.nix+45 materialized/ghc-boot-packages-nix/ghc902-aarch64/iserv.nix+42 materialized/ghc-boot-packages-nix/ghc902-aarch64/libiserv.nix+42 materialized/ghc-boot-packages-nix/ghc902-aarch64/remote-iserv.nix+36 materialized/ghc-boot-packages-nix/ghc902-aarch64/template-haskell.nix+36 materialized/ghc-boot-packages-nix/ghc902/Win32.nix+48 materialized/ghc-boot-packages-nix/ghc902/base.nix+48 materialized/ghc-boot-packages-nix/ghc902/bytestring.nix+35 materialized/ghc-boot-packages-nix/ghc902/ghc-bignum.nix+37 materialized/ghc-boot-packages-nix/ghc902/ghc-boot.nix+39 materialized/ghc-boot-packages-nix/ghc902/ghc-heap.nix+35 materialized/ghc-boot-packages-nix/ghc902/ghc-prim.nix+43 materialized/ghc-boot-packages-nix/ghc902/ghc.nix+61 materialized/ghc-boot-packages-nix/ghc902/ghci.nix+45 materialized/ghc-boot-packages-nix/ghc902/hpc.nix+38 materialized/ghc-boot-packages-nix/ghc902/integer-gmp.nix+35 materialized/ghc-boot-packages-nix/ghc902/iserv-proxy.nix+45 materialized/ghc-boot-packages-nix/ghc902/iserv.nix+42 materialized/ghc-boot-packages-nix/ghc902/libiserv.nix+42 materialized/ghc-boot-packages-nix/ghc902/remote-iserv.nix+36 materialized/ghc-boot-packages-nix/ghc902/template-haskell.nix+36 materialized/ghc-boot-packages-nix/ghc921-aarch64/Win32.nix+48 materialized/ghc-boot-packages-nix/ghc921-aarch64/base.nix+48 materialized/ghc-boot-packages-nix/ghc921-aarch64/bytestring.nix+86 materialized/ghc-boot-packages-nix/ghc921-aarch64/deepseq.nix+47 materialized/ghc-boot-packages-nix/ghc921-aarch64/ghc-bignum.nix+37 materialized/ghc-boot-packages-nix/ghc921-aarch64/ghc-boot.nix+40 materialized/ghc-boot-packages-nix/ghc921-aarch64/ghc-heap.nix+36 materialized/ghc-boot-packages-nix/ghc921-aarch64/ghc-prim.nix+44 materialized/ghc-boot-packages-nix/ghc921-aarch64/ghc.nix+61 materialized/ghc-boot-packages-nix/ghc921-aarch64/ghci.nix+45 materialized/ghc-boot-packages-nix/ghc921-aarch64/hpc.nix+38 materialized/ghc-boot-packages-nix/ghc921-aarch64/integer-gmp.nix+35 materialized/ghc-boot-packages-nix/ghc921-aarch64/iserv-proxy.nix+45 materialized/ghc-boot-packages-nix/ghc921-aarch64/iserv.nix+42 materialized/ghc-boot-packages-nix/ghc921-aarch64/libiserv.nix+42 materialized/ghc-boot-packages-nix/ghc921-aarch64/pretty.nix+56 materialized/ghc-boot-packages-nix/ghc921-aarch64/remote-iserv.nix+36 materialized/ghc-boot-packages-nix/ghc921-aarch64/template-haskell.nix+36 materialized/ghc-boot-packages-nix/ghc921/Win32.nix+48 materialized/ghc-boot-packages-nix/ghc921/base.nix+48 materialized/ghc-boot-packages-nix/ghc921/bytestring.nix+86 materialized/ghc-boot-packages-nix/ghc921/deepseq.nix+47 materialized/ghc-boot-packages-nix/ghc921/ghc-bignum.nix+37 materialized/ghc-boot-packages-nix/ghc921/ghc-boot.nix+40 materialized/ghc-boot-packages-nix/ghc921/ghc-heap.nix+36 materialized/ghc-boot-packages-nix/ghc921/ghc-prim.nix+43 materialized/ghc-boot-packages-nix/ghc921/ghc.nix+61 materialized/ghc-boot-packages-nix/ghc921/ghci.nix+45 materialized/ghc-boot-packages-nix/ghc921/hpc.nix+38 materialized/ghc-boot-packages-nix/ghc921/integer-gmp.nix+35 materialized/ghc-boot-packages-nix/ghc921/iserv-proxy.nix+45 materialized/ghc-boot-packages-nix/ghc921/iserv.nix+42 materialized/ghc-boot-packages-nix/ghc921/libiserv.nix+42 materialized/ghc-boot-packages-nix/ghc921/pretty.nix+56 materialized/ghc-boot-packages-nix/ghc921/remote-iserv.nix+36 materialized/ghc-boot-packages-nix/ghc921/template-haskell.nix+36 materialized/ghc-boot-packages-nix/ghc922-aarch64/Win32.nix+48 materialized/ghc-boot-packages-nix/ghc922-aarch64/base.nix+48 materialized/ghc-boot-packages-nix/ghc922-aarch64/bytestring.nix+68 materialized/ghc-boot-packages-nix/ghc922-aarch64/deepseq.nix+47 materialized/ghc-boot-packages-nix/ghc922-aarch64/ghc-bignum.nix+37 materialized/ghc-boot-packages-nix/ghc922-aarch64/ghc-boot.nix+40 materialized/ghc-boot-packages-nix/ghc922-aarch64/ghc-heap.nix+36 materialized/ghc-boot-packages-nix/ghc922-aarch64/ghc-prim.nix+44 materialized/ghc-boot-packages-nix/ghc922-aarch64/ghc.nix+60 materialized/ghc-boot-packages-nix/ghc922-aarch64/ghci.nix+45 materialized/ghc-boot-packages-nix/ghc922-aarch64/hpc.nix+38 materialized/ghc-boot-packages-nix/ghc922-aarch64/integer-gmp.nix+35 materialized/ghc-boot-packages-nix/ghc922-aarch64/iserv-proxy.nix+45 materialized/ghc-boot-packages-nix/ghc922-aarch64/iserv.nix+42 materialized/ghc-boot-packages-nix/ghc922-aarch64/libiserv.nix+42 materialized/ghc-boot-packages-nix/ghc922-aarch64/pretty.nix+56 materialized/ghc-boot-packages-nix/ghc922-aarch64/remote-iserv.nix+36 materialized/ghc-boot-packages-nix/ghc922-aarch64/template-haskell.nix+36 materialized/ghc-boot-packages-nix/ghc922/Win32.nix+48 materialized/ghc-boot-packages-nix/ghc922/base.nix+48 materialized/ghc-boot-packages-nix/ghc922/bytestring.nix+68 materialized/ghc-boot-packages-nix/ghc922/deepseq.nix+47 materialized/ghc-boot-packages-nix/ghc922/ghc-bignum.nix+37 materialized/ghc-boot-packages-nix/ghc922/ghc-boot.nix+40 materialized/ghc-boot-packages-nix/ghc922/ghc-heap.nix+36 materialized/ghc-boot-packages-nix/ghc922/ghc-prim.nix+43 materialized/ghc-boot-packages-nix/ghc922/ghc.nix+60 materialized/ghc-boot-packages-nix/ghc922/ghci.nix+45 materialized/ghc-boot-packages-nix/ghc922/hpc.nix+38 materialized/ghc-boot-packages-nix/ghc922/integer-gmp.nix+35 materialized/ghc-boot-packages-nix/ghc922/iserv-proxy.nix+45 materialized/ghc-boot-packages-nix/ghc922/iserv.nix+42 materialized/ghc-boot-packages-nix/ghc922/libiserv.nix+42 materialized/ghc-boot-packages-nix/ghc922/pretty.nix+56 materialized/ghc-boot-packages-nix/ghc922/remote-iserv.nix+36 materialized/ghc-boot-packages-nix/ghc922/template-haskell.nix+36 materialized/ghc-boot-packages-nix/ghc923-aarch64/Win32.nix+48 materialized/ghc-boot-packages-nix/ghc923-aarch64/base.nix+48 materialized/ghc-boot-packages-nix/ghc923-aarch64/bytestring.nix+65 materialized/ghc-boot-packages-nix/ghc923-aarch64/deepseq.nix+47 materialized/ghc-boot-packages-nix/ghc923-aarch64/ghc-bignum.nix+37 materialized/ghc-boot-packages-nix/ghc923-aarch64/ghc-boot.nix+40 materialized/ghc-boot-packages-nix/ghc923-aarch64/ghc-heap.nix+36 materialized/ghc-boot-packages-nix/ghc923-aarch64/ghc-prim.nix+44 materialized/ghc-boot-packages-nix/ghc923-aarch64/ghc.nix+60 materialized/ghc-boot-packages-nix/ghc923-aarch64/ghci.nix+45 materialized/ghc-boot-packages-nix/ghc923-aarch64/hpc.nix+38 materialized/ghc-boot-packages-nix/ghc923-aarch64/integer-gmp.nix+35 materialized/ghc-boot-packages-nix/ghc923-aarch64/iserv-proxy.nix+45 materialized/ghc-boot-packages-nix/ghc923-aarch64/iserv.nix+42 materialized/ghc-boot-packages-nix/ghc923-aarch64/libiserv.nix+42 materialized/ghc-boot-packages-nix/ghc923-aarch64/pretty.nix+56 materialized/ghc-boot-packages-nix/ghc923-aarch64/remote-iserv.nix+36 materialized/ghc-boot-packages-nix/ghc923-aarch64/template-haskell.nix+36 materialized/ghc-boot-packages-nix/ghc923/Win32.nix+48 materialized/ghc-boot-packages-nix/ghc923/base.nix+48 materialized/ghc-boot-packages-nix/ghc923/bytestring.nix+65 materialized/ghc-boot-packages-nix/ghc923/deepseq.nix+47 materialized/ghc-boot-packages-nix/ghc923/ghc-bignum.nix+37 materialized/ghc-boot-packages-nix/ghc923/ghc-boot.nix+40 materialized/ghc-boot-packages-nix/ghc923/ghc-heap.nix+36 materialized/ghc-boot-packages-nix/ghc923/ghc-prim.nix+43 materialized/ghc-boot-packages-nix/ghc923/ghc.nix+60 materialized/ghc-boot-packages-nix/ghc923/ghci.nix+45 materialized/ghc-boot-packages-nix/ghc923/hpc.nix+38 materialized/ghc-boot-packages-nix/ghc923/integer-gmp.nix+35 materialized/ghc-boot-packages-nix/ghc923/iserv-proxy.nix+45 materialized/ghc-boot-packages-nix/ghc923/iserv.nix+42 materialized/ghc-boot-packages-nix/ghc923/libiserv.nix+42 materialized/ghc-boot-packages-nix/ghc923/pretty.nix+56 materialized/ghc-boot-packages-nix/ghc923/remote-iserv.nix+36 materialized/ghc-boot-packages-nix/ghc923/template-haskell.nix+36 materialized/ghc-boot-packages-nix/ghc924-aarch64/Win32.nix+48 materialized/ghc-boot-packages-nix/ghc924-aarch64/base.nix+48 materialized/ghc-boot-packages-nix/ghc924-aarch64/bytestring.nix+65 materialized/ghc-boot-packages-nix/ghc924-aarch64/deepseq.nix+47 materialized/ghc-boot-packages-nix/ghc924-aarch64/ghc-bignum.nix+37 materialized/ghc-boot-packages-nix/ghc924-aarch64/ghc-boot.nix+40 materialized/ghc-boot-packages-nix/ghc924-aarch64/ghc-heap.nix+36 materialized/ghc-boot-packages-nix/ghc924-aarch64/ghc-prim.nix+44 materialized/ghc-boot-packages-nix/ghc924-aarch64/ghc.nix+60 materialized/ghc-boot-packages-nix/ghc924-aarch64/ghci.nix+45 materialized/ghc-boot-packages-nix/ghc924-aarch64/hpc.nix+38 materialized/ghc-boot-packages-nix/ghc924-aarch64/integer-gmp.nix+35 materialized/ghc-boot-packages-nix/ghc924-aarch64/iserv-proxy.nix+45 materialized/ghc-boot-packages-nix/ghc924-aarch64/iserv.nix+42 materialized/ghc-boot-packages-nix/ghc924-aarch64/libiserv.nix+42 materialized/ghc-boot-packages-nix/ghc924-aarch64/pretty.nix+56 materialized/ghc-boot-packages-nix/ghc924-aarch64/remote-iserv.nix+36 materialized/ghc-boot-packages-nix/ghc924-aarch64/template-haskell.nix+36 materialized/ghc-boot-packages-nix/ghc924/Win32.nix+48 materialized/ghc-boot-packages-nix/ghc924/base.nix+48 materialized/ghc-boot-packages-nix/ghc924/bytestring.nix+65 materialized/ghc-boot-packages-nix/ghc924/deepseq.nix+47 materialized/ghc-boot-packages-nix/ghc924/ghc-bignum.nix+37 materialized/ghc-boot-packages-nix/ghc924/ghc-boot.nix+40 materialized/ghc-boot-packages-nix/ghc924/ghc-heap.nix+36 materialized/ghc-boot-packages-nix/ghc924/ghc-prim.nix+43 materialized/ghc-boot-packages-nix/ghc924/ghc.nix+60 materialized/ghc-boot-packages-nix/ghc924/ghci.nix+45 materialized/ghc-boot-packages-nix/ghc924/hpc.nix+38 materialized/ghc-boot-packages-nix/ghc924/integer-gmp.nix+35 materialized/ghc-boot-packages-nix/ghc924/iserv-proxy.nix+45 materialized/ghc-boot-packages-nix/ghc924/iserv.nix+42 materialized/ghc-boot-packages-nix/ghc924/libiserv.nix+42 materialized/ghc-boot-packages-nix/ghc924/pretty.nix+56 materialized/ghc-boot-packages-nix/ghc924/remote-iserv.nix+36 materialized/ghc-boot-packages-nix/ghc924/template-haskell.nix+36 materialized/ghc-extra-projects/cross/ghc8101/.plan.nix/Win32.nix+155 materialized/ghc-extra-projects/cross/ghc8101/.plan.nix/bytestring.nix−136 materialized/ghc-extra-projects/cross/ghc8101/.plan.nix/ghc-boot.nix+1−1 materialized/ghc-extra-projects/cross/ghc8101/.plan.nix/ghc.nix+1−1 materialized/ghc-extra-projects/cross/ghc8101/.plan.nix/ghci.nix+1−1 materialized/ghc-extra-projects/cross/ghc8101/.plan.nix/hpc.nix+1−1 materialized/ghc-extra-projects/cross/ghc8101/.plan.nix/iserv-proxy.nix+1−1 materialized/ghc-extra-projects/cross/ghc8101/.plan.nix/iserv.nix+1−1 materialized/ghc-extra-projects/cross/ghc8101/.plan.nix/libiserv.nix+1−1 materialized/ghc-extra-projects/cross/ghc8101/.plan.nix/remote-iserv.nix+1−1 materialized/ghc-extra-projects/cross/ghc8101/default.nix+77−39 materialized/ghc-extra-projects/cross/ghc8102/.plan.nix/Win32.nix+155 materialized/ghc-extra-projects/cross/ghc8102/.plan.nix/ghc-boot.nix+1−1 materialized/ghc-extra-projects/cross/ghc8102/.plan.nix/ghc.nix+1−1 materialized/ghc-extra-projects/cross/ghc8102/.plan.nix/ghci.nix+1−1 materialized/ghc-extra-projects/cross/ghc8102/.plan.nix/hpc.nix+1−1 materialized/ghc-extra-projects/cross/ghc8102/.plan.nix/iserv-proxy.nix+2−2 materialized/ghc-extra-projects/cross/ghc8102/.plan.nix/iserv.nix+1−1 materialized/ghc-extra-projects/cross/ghc8102/.plan.nix/libiserv.nix+1−1 materialized/ghc-extra-projects/cross/ghc8102/.plan.nix/remote-iserv.nix+1−1 materialized/ghc-extra-projects/cross/ghc8102/default.nix+79−41 materialized/ghc-extra-projects/cross/ghc8103/.plan.nix/Win32.nix+155 materialized/ghc-extra-projects/cross/ghc8103/.plan.nix/ghc-boot.nix+2−2 materialized/ghc-extra-projects/cross/ghc8103/.plan.nix/ghc.nix+2−2 materialized/ghc-extra-projects/cross/ghc8103/.plan.nix/ghci.nix+70 materialized/ghc-extra-projects/cross/ghc8103/.plan.nix/hpc.nix+1−1 materialized/ghc-extra-projects/cross/ghc8103/.plan.nix/iserv-proxy.nix+3−3 materialized/ghc-extra-projects/cross/ghc8103/.plan.nix/iserv.nix+54 materialized/ghc-extra-projects/cross/ghc8103/.plan.nix/libiserv.nix+58 materialized/ghc-extra-projects/cross/ghc8103/.plan.nix/remote-iserv.nix+2−2 materialized/ghc-extra-projects/cross/ghc8103/default.nix+128 materialized/ghc-extra-projects/cross/ghc8104/.plan.nix/Win32.nix+155 materialized/ghc-extra-projects/cross/ghc8104/.plan.nix/ghc-boot.nix+2−2 materialized/ghc-extra-projects/cross/ghc8104/.plan.nix/ghc.nix+2−2 materialized/ghc-extra-projects/cross/ghc8104/.plan.nix/ghci.nix+70 materialized/ghc-extra-projects/cross/ghc8104/.plan.nix/hpc.nix+1−1 materialized/ghc-extra-projects/cross/ghc8104/.plan.nix/iserv-proxy.nix+55 materialized/ghc-extra-projects/cross/ghc8104/.plan.nix/iserv.nix+54 materialized/ghc-extra-projects/cross/ghc8104/.plan.nix/libiserv.nix+58 materialized/ghc-extra-projects/cross/ghc8104/.plan.nix/remote-iserv.nix+2−2 materialized/ghc-extra-projects/cross/ghc8104/default.nix+128 materialized/ghc-extra-projects/cross/ghc810420210212/.plan.nix/Win32.nix+155 materialized/ghc-extra-projects/cross/ghc810420210212/.plan.nix/ghc-boot.nix+60 materialized/ghc-extra-projects/cross/ghc810420210212/.plan.nix/ghc.nix+586 materialized/ghc-extra-projects/cross/ghc810420210212/.plan.nix/ghci.nix+70 materialized/ghc-extra-projects/cross/ghc810420210212/.plan.nix/hpc.nix+52 materialized/ghc-extra-projects/cross/ghc810420210212/.plan.nix/iserv-proxy.nix+55 materialized/ghc-extra-projects/cross/ghc810420210212/.plan.nix/iserv.nix+54 materialized/ghc-extra-projects/cross/ghc810420210212/.plan.nix/libiserv.nix+58 materialized/ghc-extra-projects/cross/ghc810420210212/.plan.nix/remote-iserv.nix+46 materialized/ghc-extra-projects/cross/ghc810420210212/default.nix+128 materialized/ghc-extra-projects/cross/ghc8105/.plan.nix/Win32.nix+155 materialized/ghc-extra-projects/cross/ghc8105/.plan.nix/ghc-boot.nix+60 materialized/ghc-extra-projects/cross/ghc8105/.plan.nix/ghc.nix+586 materialized/ghc-extra-projects/cross/ghc8105/.plan.nix/ghci.nix+71 materialized/ghc-extra-projects/cross/ghc8105/.plan.nix/hpc.nix+52 materialized/ghc-extra-projects/cross/ghc8105/.plan.nix/iserv-proxy.nix+55 materialized/ghc-extra-projects/cross/ghc8105/.plan.nix/iserv.nix+54 materialized/ghc-extra-projects/cross/ghc8105/.plan.nix/libiserv.nix+58 materialized/ghc-extra-projects/cross/ghc8105/.plan.nix/remote-iserv.nix+46 materialized/ghc-extra-projects/cross/ghc8105/default.nix+128 materialized/ghc-extra-projects/cross/ghc8106/.plan.nix/Win32.nix+155 materialized/ghc-extra-projects/cross/ghc8106/.plan.nix/ghc-boot.nix+60 materialized/ghc-extra-projects/cross/ghc8106/.plan.nix/ghc.nix+586 materialized/ghc-extra-projects/cross/ghc8106/.plan.nix/ghci.nix+71 materialized/ghc-extra-projects/cross/ghc8106/.plan.nix/hpc.nix+52 materialized/ghc-extra-projects/cross/ghc8106/.plan.nix/iserv-proxy.nix+55 materialized/ghc-extra-projects/cross/ghc8106/.plan.nix/iserv.nix+54 materialized/ghc-extra-projects/cross/ghc8106/.plan.nix/libiserv.nix+58 materialized/ghc-extra-projects/cross/ghc8106/.plan.nix/remote-iserv.nix+46 materialized/ghc-extra-projects/cross/ghc8106/default.nix+128 materialized/ghc-extra-projects/cross/ghc8107/.plan.nix/Win32.nix+155 materialized/ghc-extra-projects/cross/ghc8107/.plan.nix/ghc-boot.nix+60 materialized/ghc-extra-projects/cross/ghc8107/.plan.nix/ghc.nix+586 materialized/ghc-extra-projects/cross/ghc8107/.plan.nix/ghci.nix+71 materialized/ghc-extra-projects/cross/ghc8107/.plan.nix/hpc.nix+52 materialized/ghc-extra-projects/cross/ghc8107/.plan.nix/iserv-proxy.nix+55 materialized/ghc-extra-projects/cross/ghc8107/.plan.nix/iserv.nix+54 materialized/ghc-extra-projects/cross/ghc8107/.plan.nix/libiserv.nix+58 materialized/ghc-extra-projects/cross/ghc8107/.plan.nix/remote-iserv.nix+46 materialized/ghc-extra-projects/cross/ghc8107/default.nix+128 materialized/ghc-extra-projects/cross/ghc865/.plan.nix/Win32.nix+155 materialized/ghc-extra-projects/cross/ghc865/.plan.nix/bytestring.nix−136 materialized/ghc-extra-projects/cross/ghc865/.plan.nix/ghc-boot.nix+1−1 materialized/ghc-extra-projects/cross/ghc865/.plan.nix/ghc.nix+1−5 materialized/ghc-extra-projects/cross/ghc865/.plan.nix/ghci.nix+1−1 materialized/ghc-extra-projects/cross/ghc865/.plan.nix/hpc.nix+1−1 materialized/ghc-extra-projects/cross/ghc865/.plan.nix/iserv-proxy.nix+2−2 materialized/ghc-extra-projects/cross/ghc865/.plan.nix/iserv.nix+1−1 materialized/ghc-extra-projects/cross/ghc865/.plan.nix/libiserv.nix+1−1 materialized/ghc-extra-projects/cross/ghc865/.plan.nix/remote-iserv.nix+1−1 materialized/ghc-extra-projects/cross/ghc865/default.nix+79−46 materialized/ghc-extra-projects/cross/ghc882/.plan.nix/Win32.nix+155 materialized/ghc-extra-projects/cross/ghc882/.plan.nix/ghc-boot.nix+53 materialized/ghc-extra-projects/cross/ghc882/.plan.nix/ghc.nix+573 materialized/ghc-extra-projects/cross/ghc882/.plan.nix/ghci.nix+2−2 materialized/ghc-extra-projects/cross/ghc882/.plan.nix/hpc.nix+51 materialized/ghc-extra-projects/cross/ghc882/.plan.nix/iserv-proxy.nix+55 materialized/ghc-extra-projects/cross/ghc882/.plan.nix/iserv.nix+2−2 materialized/ghc-extra-projects/cross/ghc882/.plan.nix/libiserv.nix+2−2 materialized/ghc-extra-projects/cross/ghc882/.plan.nix/remote-iserv.nix+46 materialized/ghc-extra-projects/cross/ghc882/default.nix+127 materialized/ghc-extra-projects/cross/ghc883/.plan.nix/Win32.nix+155 materialized/ghc-extra-projects/cross/ghc883/.plan.nix/bytestring.nix−136 materialized/ghc-extra-projects/cross/ghc883/.plan.nix/ghc-boot.nix+1−1 materialized/ghc-extra-projects/cross/ghc883/.plan.nix/ghc.nix+1−5 materialized/ghc-extra-projects/cross/ghc883/.plan.nix/ghci.nix+1−1 materialized/ghc-extra-projects/cross/ghc883/.plan.nix/hpc.nix+1−1 materialized/ghc-extra-projects/cross/ghc883/.plan.nix/iserv-proxy.nix+2−2 materialized/ghc-extra-projects/cross/ghc883/.plan.nix/iserv.nix+1−1 materialized/ghc-extra-projects/cross/ghc883/.plan.nix/libiserv.nix+1−1 materialized/ghc-extra-projects/cross/ghc883/.plan.nix/remote-iserv.nix+1−1 materialized/ghc-extra-projects/cross/ghc883/default.nix+78−46 materialized/ghc-extra-projects/cross/ghc884/.plan.nix/Win32.nix+155 materialized/ghc-extra-projects/cross/ghc884/.plan.nix/bytestring.nix−167 materialized/ghc-extra-projects/cross/ghc884/.plan.nix/ghc-boot.nix+1−1 materialized/ghc-extra-projects/cross/ghc884/.plan.nix/ghc.nix+1−5 materialized/ghc-extra-projects/cross/ghc884/.plan.nix/ghci.nix+1−1 materialized/ghc-extra-projects/cross/ghc884/.plan.nix/hpc.nix+1−1 materialized/ghc-extra-projects/cross/ghc884/.plan.nix/iserv-proxy.nix+2−2 materialized/ghc-extra-projects/cross/ghc884/.plan.nix/iserv.nix+1−1 materialized/ghc-extra-projects/cross/ghc884/.plan.nix/libiserv.nix+1−1 materialized/ghc-extra-projects/cross/ghc884/.plan.nix/remote-iserv.nix+1−1 materialized/ghc-extra-projects/cross/ghc884/default.nix+78−46 materialized/ghc-extra-projects/cross/ghc901/.plan.nix/Win32.nix+158 materialized/ghc-extra-projects/cross/ghc901/.plan.nix/ghc-boot.nix+61 materialized/ghc-extra-projects/cross/ghc901/.plan.nix/ghc.nix+572 materialized/ghc-extra-projects/cross/ghc901/.plan.nix/ghci.nix+2−2 materialized/ghc-extra-projects/cross/ghc901/.plan.nix/hpc.nix+52 materialized/ghc-extra-projects/cross/ghc901/.plan.nix/iserv-proxy.nix+55 materialized/ghc-extra-projects/cross/ghc901/.plan.nix/iserv.nix+2−2 materialized/ghc-extra-projects/cross/ghc901/.plan.nix/libiserv.nix+2−2 materialized/ghc-extra-projects/cross/ghc901/.plan.nix/remote-iserv.nix+46 materialized/ghc-extra-projects/cross/ghc901/default.nix+135 materialized/ghc-extra-projects/cross/ghc902/.plan.nix/Win32.nix+158 materialized/ghc-extra-projects/cross/ghc902/.plan.nix/ghc-boot.nix+61 materialized/ghc-extra-projects/cross/ghc902/.plan.nix/ghc.nix+572 materialized/ghc-extra-projects/cross/ghc902/.plan.nix/ghci.nix+71 materialized/ghc-extra-projects/cross/ghc902/.plan.nix/hpc.nix+52 materialized/ghc-extra-projects/cross/ghc902/.plan.nix/iserv-proxy.nix+55 materialized/ghc-extra-projects/cross/ghc902/.plan.nix/iserv.nix+54 materialized/ghc-extra-projects/cross/ghc902/.plan.nix/libiserv.nix+58 materialized/ghc-extra-projects/cross/ghc902/.plan.nix/remote-iserv.nix+46 materialized/ghc-extra-projects/cross/ghc902/default.nix+136 materialized/ghc-extra-projects/cross/ghc921/.plan.nix/Win32.nix+158 materialized/ghc-extra-projects/cross/ghc921/.plan.nix/ghc-boot.nix+64 materialized/ghc-extra-projects/cross/ghc921/.plan.nix/ghc.nix+663 materialized/ghc-extra-projects/cross/ghc921/.plan.nix/ghci.nix+70 materialized/ghc-extra-projects/cross/ghc921/.plan.nix/hpc.nix+52 materialized/ghc-extra-projects/cross/ghc921/.plan.nix/iserv-proxy.nix+55 materialized/ghc-extra-projects/cross/ghc921/.plan.nix/iserv.nix+54 materialized/ghc-extra-projects/cross/ghc921/.plan.nix/libiserv.nix+58 materialized/ghc-extra-projects/cross/ghc921/.plan.nix/remote-iserv.nix+46 materialized/ghc-extra-projects/cross/ghc921/default.nix+143 materialized/ghc-extra-projects/cross/ghc922/.plan.nix/Win32.nix+158 materialized/ghc-extra-projects/cross/ghc922/.plan.nix/ghc-boot.nix+64 materialized/ghc-extra-projects/cross/ghc922/.plan.nix/ghc.nix+661 materialized/ghc-extra-projects/cross/ghc922/.plan.nix/ghci.nix+70 materialized/ghc-extra-projects/cross/ghc922/.plan.nix/hpc.nix+52 materialized/ghc-extra-projects/cross/ghc922/.plan.nix/iserv-proxy.nix+55 materialized/ghc-extra-projects/cross/ghc922/.plan.nix/iserv.nix+54 materialized/ghc-extra-projects/cross/ghc922/.plan.nix/libiserv.nix+58 materialized/ghc-extra-projects/cross/ghc922/.plan.nix/remote-iserv.nix+46 materialized/ghc-extra-projects/cross/ghc922/default.nix+138 materialized/ghc-extra-projects/cross/ghc923/.plan.nix/Win32.nix+158 materialized/ghc-extra-projects/cross/ghc923/.plan.nix/ghc-boot.nix+64 materialized/ghc-extra-projects/cross/ghc923/.plan.nix/ghc.nix+661 materialized/ghc-extra-projects/cross/ghc923/.plan.nix/ghci.nix+70 materialized/ghc-extra-projects/cross/ghc923/.plan.nix/hpc.nix+52 materialized/ghc-extra-projects/cross/ghc923/.plan.nix/iserv-proxy.nix+55 materialized/ghc-extra-projects/cross/ghc923/.plan.nix/iserv.nix+54 materialized/ghc-extra-projects/cross/ghc923/.plan.nix/libiserv.nix+58 materialized/ghc-extra-projects/cross/ghc923/.plan.nix/remote-iserv.nix+46 materialized/ghc-extra-projects/cross/ghc923/default.nix+138 materialized/ghc-extra-projects/cross/ghc924/.plan.nix/Win32.nix+158 materialized/ghc-extra-projects/cross/ghc924/.plan.nix/ghc-boot.nix+64 materialized/ghc-extra-projects/cross/ghc924/.plan.nix/ghc.nix+661 materialized/ghc-extra-projects/cross/ghc924/.plan.nix/ghci.nix+70 materialized/ghc-extra-projects/cross/ghc924/.plan.nix/hpc.nix+52 materialized/ghc-extra-projects/cross/ghc924/.plan.nix/iserv-proxy.nix+55 materialized/ghc-extra-projects/cross/ghc924/.plan.nix/iserv.nix+54 materialized/ghc-extra-projects/cross/ghc924/.plan.nix/libiserv.nix+58 materialized/ghc-extra-projects/cross/ghc924/.plan.nix/remote-iserv.nix+46 materialized/ghc-extra-projects/cross/ghc924/default.nix+137 materialized/ghc-extra-projects/default/ghc8101/.plan.nix/Win32.nix+155 materialized/ghc-extra-projects/default/ghc8101/.plan.nix/bytestring.nix−136 materialized/ghc-extra-projects/default/ghc8101/.plan.nix/ghc-boot.nix+1−1 materialized/ghc-extra-projects/default/ghc8101/.plan.nix/ghc.nix+1−1 materialized/ghc-extra-projects/default/ghc8101/.plan.nix/ghci.nix+1−1 materialized/ghc-extra-projects/default/ghc8101/.plan.nix/hpc.nix+1−1 materialized/ghc-extra-projects/default/ghc8101/.plan.nix/iserv-proxy.nix+1−1 materialized/ghc-extra-projects/default/ghc8101/.plan.nix/iserv.nix+1−1 materialized/ghc-extra-projects/default/ghc8101/.plan.nix/libiserv.nix+1−1 materialized/ghc-extra-projects/default/ghc8101/.plan.nix/remote-iserv.nix+1−1 materialized/ghc-extra-projects/default/ghc8101/default.nix+78−40 materialized/ghc-extra-projects/default/ghc8102-experimental/.plan.nix/bytestring.nix−136 materialized/ghc-extra-projects/default/ghc8102/.plan.nix/Win32.nix+155 materialized/ghc-extra-projects/default/ghc8102/.plan.nix/bytestring.nix−136 materialized/ghc-extra-projects/default/ghc8102/.plan.nix/ghc-boot.nix+1−1 materialized/ghc-extra-projects/default/ghc8102/.plan.nix/ghc.nix+1−1 materialized/ghc-extra-projects/default/ghc8102/.plan.nix/ghci.nix+1−1 materialized/ghc-extra-projects/default/ghc8102/.plan.nix/hpc.nix+1−1 materialized/ghc-extra-projects/default/ghc8102/.plan.nix/iserv-proxy.nix+2−2 materialized/ghc-extra-projects/default/ghc8102/.plan.nix/iserv.nix+1−1 materialized/ghc-extra-projects/default/ghc8102/.plan.nix/libiserv.nix+1−1 materialized/ghc-extra-projects/default/ghc8102/.plan.nix/remote-iserv.nix+1−1 materialized/ghc-extra-projects/default/ghc8102/default.nix+80−42 materialized/ghc-extra-projects/default/ghc8103/.plan.nix/Win32.nix+155 materialized/ghc-extra-projects/default/ghc8103/.plan.nix/ghc-boot.nix+60 materialized/ghc-extra-projects/default/ghc8103/.plan.nix/ghc.nix+586 materialized/ghc-extra-projects/default/ghc8103/.plan.nix/ghci.nix+70 materialized/ghc-extra-projects/default/ghc8103/.plan.nix/hpc.nix+52 materialized/ghc-extra-projects/default/ghc8103/.plan.nix/iserv-proxy.nix+55 materialized/ghc-extra-projects/default/ghc8103/.plan.nix/iserv.nix+54 materialized/ghc-extra-projects/default/ghc8103/.plan.nix/libiserv.nix+58 materialized/ghc-extra-projects/default/ghc8103/.plan.nix/remote-iserv.nix+46 materialized/ghc-extra-projects/default/ghc8103/default.nix+82−44 materialized/ghc-extra-projects/default/ghc8104/.plan.nix/Win32.nix+155 materialized/ghc-extra-projects/default/ghc8104/.plan.nix/ghc-boot.nix+60 materialized/ghc-extra-projects/default/ghc8104/.plan.nix/ghc.nix+586 materialized/ghc-extra-projects/default/ghc8104/.plan.nix/ghci.nix+70 materialized/ghc-extra-projects/default/ghc8104/.plan.nix/hpc.nix+52 materialized/ghc-extra-projects/default/ghc8104/.plan.nix/iserv-proxy.nix+55 materialized/ghc-extra-projects/default/ghc8104/.plan.nix/iserv.nix+54 materialized/ghc-extra-projects/default/ghc8104/.plan.nix/libiserv.nix+58 materialized/ghc-extra-projects/default/ghc8104/.plan.nix/remote-iserv.nix+46 materialized/ghc-extra-projects/default/ghc8104/default.nix+82−43 materialized/ghc-extra-projects/default/ghc810420210212/.plan.nix/Win32.nix+155 materialized/ghc-extra-projects/default/ghc810420210212/.plan.nix/ghc-boot.nix+60 materialized/ghc-extra-projects/default/ghc810420210212/.plan.nix/ghc.nix+586 materialized/ghc-extra-projects/default/ghc810420210212/.plan.nix/ghci.nix+70 materialized/ghc-extra-projects/default/ghc810420210212/.plan.nix/hpc.nix+52 materialized/ghc-extra-projects/default/ghc810420210212/.plan.nix/iserv-proxy.nix+55 materialized/ghc-extra-projects/default/ghc810420210212/.plan.nix/iserv.nix+54 materialized/ghc-extra-projects/default/ghc810420210212/.plan.nix/libiserv.nix+58 materialized/ghc-extra-projects/default/ghc810420210212/.plan.nix/remote-iserv.nix+46 materialized/ghc-extra-projects/default/ghc810420210212/default.nix+129 materialized/ghc-extra-projects/default/ghc8105/.plan.nix/Win32.nix+155 materialized/ghc-extra-projects/default/ghc8105/.plan.nix/ghc-boot.nix+60 materialized/ghc-extra-projects/default/ghc8105/.plan.nix/ghc.nix+586 materialized/ghc-extra-projects/default/ghc8105/.plan.nix/ghci.nix+71 materialized/ghc-extra-projects/default/ghc8105/.plan.nix/hpc.nix+52 materialized/ghc-extra-projects/default/ghc8105/.plan.nix/iserv-proxy.nix+55 materialized/ghc-extra-projects/default/ghc8105/.plan.nix/iserv.nix+54 materialized/ghc-extra-projects/default/ghc8105/.plan.nix/libiserv.nix+58 materialized/ghc-extra-projects/default/ghc8105/.plan.nix/remote-iserv.nix+46 materialized/ghc-extra-projects/default/ghc8105/default.nix+129 materialized/ghc-extra-projects/default/ghc8106/.plan.nix/Win32.nix+155 materialized/ghc-extra-projects/default/ghc8106/.plan.nix/ghc-boot.nix+60 materialized/ghc-extra-projects/default/ghc8106/.plan.nix/ghc.nix+586 materialized/ghc-extra-projects/default/ghc8106/.plan.nix/ghci.nix+71 materialized/ghc-extra-projects/default/ghc8106/.plan.nix/hpc.nix+52 materialized/ghc-extra-projects/default/ghc8106/.plan.nix/iserv-proxy.nix+55 materialized/ghc-extra-projects/default/ghc8106/.plan.nix/iserv.nix+54 materialized/ghc-extra-projects/default/ghc8106/.plan.nix/libiserv.nix+58 materialized/ghc-extra-projects/default/ghc8106/.plan.nix/remote-iserv.nix+46 materialized/ghc-extra-projects/default/ghc8106/default.nix+129 materialized/ghc-extra-projects/default/ghc8107/.plan.nix/Win32.nix+155 materialized/ghc-extra-projects/default/ghc8107/.plan.nix/ghc-boot.nix+60 materialized/ghc-extra-projects/default/ghc8107/.plan.nix/ghc.nix+586 materialized/ghc-extra-projects/default/ghc8107/.plan.nix/ghci.nix+71 materialized/ghc-extra-projects/default/ghc8107/.plan.nix/hpc.nix+52 materialized/ghc-extra-projects/default/ghc8107/.plan.nix/iserv-proxy.nix+55 materialized/ghc-extra-projects/default/ghc8107/.plan.nix/iserv.nix+54 materialized/ghc-extra-projects/default/ghc8107/.plan.nix/libiserv.nix+58 materialized/ghc-extra-projects/default/ghc8107/.plan.nix/remote-iserv.nix+46 materialized/ghc-extra-projects/default/ghc8107/default.nix+129 materialized/ghc-extra-projects/default/ghc863/.plan.nix/Win32.nix+155 materialized/ghc-extra-projects/default/ghc863/.plan.nix/ghc-boot.nix+53 materialized/ghc-extra-projects/default/ghc863/.plan.nix/ghc.nix+47−81 materialized/ghc-extra-projects/default/ghc863/.plan.nix/ghci.nix+70 materialized/ghc-extra-projects/default/ghc863/.plan.nix/hpc.nix+51 materialized/ghc-extra-projects/default/ghc863/.plan.nix/iserv-proxy.nix+55 materialized/ghc-extra-projects/default/ghc863/.plan.nix/iserv.nix+54 materialized/ghc-extra-projects/default/ghc863/.plan.nix/libiserv.nix+58 materialized/ghc-extra-projects/default/ghc863/.plan.nix/remote-iserv.nix+46 materialized/ghc-extra-projects/default/ghc863/default.nix+126 materialized/ghc-extra-projects/default/ghc864/.plan.nix/Win32.nix+155 materialized/ghc-extra-projects/default/ghc864/.plan.nix/ghc-boot.nix+53 materialized/ghc-extra-projects/default/ghc864/.plan.nix/ghc.nix+556 materialized/ghc-extra-projects/default/ghc864/.plan.nix/ghci.nix+70 materialized/ghc-extra-projects/default/ghc864/.plan.nix/hpc.nix+51 materialized/ghc-extra-projects/default/ghc864/.plan.nix/iserv-proxy.nix+55 materialized/ghc-extra-projects/default/ghc864/.plan.nix/iserv.nix+54 materialized/ghc-extra-projects/default/ghc864/.plan.nix/libiserv.nix+58 materialized/ghc-extra-projects/default/ghc864/.plan.nix/remote-iserv.nix+46 materialized/ghc-extra-projects/default/ghc864/default.nix+127 materialized/ghc-extra-projects/default/ghc865/.plan.nix/Win32.nix+155 materialized/ghc-extra-projects/default/ghc865/.plan.nix/ghc-boot.nix+1−1 materialized/ghc-extra-projects/default/ghc865/.plan.nix/ghc.nix+1−5 materialized/ghc-extra-projects/default/ghc865/.plan.nix/ghci.nix+1−1 materialized/ghc-extra-projects/default/ghc865/.plan.nix/hpc.nix+1−1 materialized/ghc-extra-projects/default/ghc865/.plan.nix/iserv-proxy.nix+2−2 materialized/ghc-extra-projects/default/ghc865/.plan.nix/iserv.nix+1−1 materialized/ghc-extra-projects/default/ghc865/.plan.nix/libiserv.nix+1−1 materialized/ghc-extra-projects/default/ghc865/.plan.nix/remote-iserv.nix+1−1 materialized/ghc-extra-projects/default/ghc865/default.nix+79−47 materialized/ghc-extra-projects/default/ghc882/.plan.nix/Win32.nix+155 materialized/ghc-extra-projects/default/ghc882/.plan.nix/ghc-boot.nix+53 materialized/ghc-extra-projects/default/ghc882/.plan.nix/ghc.nix+573 materialized/ghc-extra-projects/default/ghc882/.plan.nix/ghci.nix+70 materialized/ghc-extra-projects/default/ghc882/.plan.nix/hpc.nix+51 materialized/ghc-extra-projects/default/ghc882/.plan.nix/iserv-proxy.nix+55 materialized/ghc-extra-projects/default/ghc882/.plan.nix/iserv.nix+54 materialized/ghc-extra-projects/default/ghc882/.plan.nix/libiserv.nix+58 materialized/ghc-extra-projects/default/ghc882/.plan.nix/remote-iserv.nix+46 materialized/ghc-extra-projects/default/ghc882/default.nix+128 materialized/ghc-extra-projects/default/ghc883/.plan.nix/Win32.nix+155 materialized/ghc-extra-projects/default/ghc883/.plan.nix/bytestring.nix−136 materialized/ghc-extra-projects/default/ghc883/.plan.nix/ghc-boot.nix+1−1 materialized/ghc-extra-projects/default/ghc883/.plan.nix/ghc.nix+1−5 materialized/ghc-extra-projects/default/ghc883/.plan.nix/ghci.nix+1−1 materialized/ghc-extra-projects/default/ghc883/.plan.nix/hpc.nix+1−1 materialized/ghc-extra-projects/default/ghc883/.plan.nix/iserv-proxy.nix+2−2 materialized/ghc-extra-projects/default/ghc883/.plan.nix/iserv.nix+1−1 materialized/ghc-extra-projects/default/ghc883/.plan.nix/libiserv.nix+1−1 materialized/ghc-extra-projects/default/ghc883/.plan.nix/remote-iserv.nix+1−1 materialized/ghc-extra-projects/default/ghc883/default.nix+79−47 materialized/ghc-extra-projects/default/ghc884/.plan.nix/Win32.nix+155 materialized/ghc-extra-projects/default/ghc884/.plan.nix/bytestring.nix−167 materialized/ghc-extra-projects/default/ghc884/.plan.nix/ghc-boot.nix+1−1 materialized/ghc-extra-projects/default/ghc884/.plan.nix/ghc.nix+1−5 materialized/ghc-extra-projects/default/ghc884/.plan.nix/ghci.nix+1−1 materialized/ghc-extra-projects/default/ghc884/.plan.nix/hpc.nix+1−1 materialized/ghc-extra-projects/default/ghc884/.plan.nix/iserv-proxy.nix+2−2 materialized/ghc-extra-projects/default/ghc884/.plan.nix/iserv.nix+1−1 materialized/ghc-extra-projects/default/ghc884/.plan.nix/libiserv.nix+1−1 materialized/ghc-extra-projects/default/ghc884/.plan.nix/remote-iserv.nix+1−1 materialized/ghc-extra-projects/default/ghc884/default.nix+79−47 materialized/ghc-extra-projects/default/ghc901/.plan.nix/Win32.nix+158 materialized/ghc-extra-projects/default/ghc901/.plan.nix/ghc-boot.nix+61 materialized/ghc-extra-projects/default/ghc901/.plan.nix/ghc.nix+572 materialized/ghc-extra-projects/default/ghc901/.plan.nix/ghci.nix+70 materialized/ghc-extra-projects/default/ghc901/.plan.nix/hpc.nix+52 materialized/ghc-extra-projects/default/ghc901/.plan.nix/iserv-proxy.nix+55 materialized/ghc-extra-projects/default/ghc901/.plan.nix/iserv.nix+54 materialized/ghc-extra-projects/default/ghc901/.plan.nix/libiserv.nix+58 materialized/ghc-extra-projects/default/ghc901/.plan.nix/remote-iserv.nix+46 materialized/ghc-extra-projects/default/ghc901/default.nix+136 materialized/ghc-extra-projects/default/ghc902/.plan.nix/Win32.nix+158 materialized/ghc-extra-projects/default/ghc902/.plan.nix/ghc-boot.nix+61 materialized/ghc-extra-projects/default/ghc902/.plan.nix/ghc.nix+572 materialized/ghc-extra-projects/default/ghc902/.plan.nix/ghci.nix+71 materialized/ghc-extra-projects/default/ghc902/.plan.nix/hpc.nix+52 materialized/ghc-extra-projects/default/ghc902/.plan.nix/iserv-proxy.nix+55 materialized/ghc-extra-projects/default/ghc902/.plan.nix/iserv.nix+54 materialized/ghc-extra-projects/default/ghc902/.plan.nix/libiserv.nix+58 materialized/ghc-extra-projects/default/ghc902/.plan.nix/remote-iserv.nix+46 materialized/ghc-extra-projects/default/ghc902/default.nix+136 materialized/ghc-extra-projects/default/ghc921/.plan.nix/Win32.nix+158 materialized/ghc-extra-projects/default/ghc921/.plan.nix/ghc-boot.nix+64 materialized/ghc-extra-projects/default/ghc921/.plan.nix/ghc.nix+663 materialized/ghc-extra-projects/default/ghc921/.plan.nix/ghci.nix+70 materialized/ghc-extra-projects/default/ghc921/.plan.nix/hpc.nix+52 materialized/ghc-extra-projects/default/ghc921/.plan.nix/iserv-proxy.nix+55 materialized/ghc-extra-projects/default/ghc921/.plan.nix/iserv.nix+54 materialized/ghc-extra-projects/default/ghc921/.plan.nix/libiserv.nix+58 materialized/ghc-extra-projects/default/ghc921/.plan.nix/remote-iserv.nix+46 materialized/ghc-extra-projects/default/ghc921/default.nix+144 materialized/ghc-extra-projects/default/ghc922/.plan.nix/Win32.nix+158 materialized/ghc-extra-projects/default/ghc922/.plan.nix/ghc-boot.nix+64 materialized/ghc-extra-projects/default/ghc922/.plan.nix/ghc.nix+661 materialized/ghc-extra-projects/default/ghc922/.plan.nix/ghci.nix+70 materialized/ghc-extra-projects/default/ghc922/.plan.nix/hpc.nix+52 materialized/ghc-extra-projects/default/ghc922/.plan.nix/iserv-proxy.nix+55 materialized/ghc-extra-projects/default/ghc922/.plan.nix/iserv.nix+54 materialized/ghc-extra-projects/default/ghc922/.plan.nix/libiserv.nix+58 materialized/ghc-extra-projects/default/ghc922/.plan.nix/remote-iserv.nix+46 materialized/ghc-extra-projects/default/ghc922/default.nix+138 materialized/ghc-extra-projects/default/ghc923/.plan.nix/Win32.nix+158 materialized/ghc-extra-projects/default/ghc923/.plan.nix/ghc-boot.nix+64 materialized/ghc-extra-projects/default/ghc923/.plan.nix/ghc.nix+661 materialized/ghc-extra-projects/default/ghc923/.plan.nix/ghci.nix+70 materialized/ghc-extra-projects/default/ghc923/.plan.nix/hpc.nix+52 materialized/ghc-extra-projects/default/ghc923/.plan.nix/iserv-proxy.nix+55 materialized/ghc-extra-projects/default/ghc923/.plan.nix/iserv.nix+54 materialized/ghc-extra-projects/default/ghc923/.plan.nix/libiserv.nix+58 materialized/ghc-extra-projects/default/ghc923/.plan.nix/remote-iserv.nix+46 materialized/ghc-extra-projects/default/ghc923/default.nix+138 materialized/ghc-extra-projects/default/ghc924/.plan.nix/Win32.nix+158 materialized/ghc-extra-projects/default/ghc924/.plan.nix/ghc-boot.nix+64 materialized/ghc-extra-projects/default/ghc924/.plan.nix/ghc.nix+661 materialized/ghc-extra-projects/default/ghc924/.plan.nix/ghci.nix+70 materialized/ghc-extra-projects/default/ghc924/.plan.nix/hpc.nix+52 materialized/ghc-extra-projects/default/ghc924/.plan.nix/iserv-proxy.nix+55 materialized/ghc-extra-projects/default/ghc924/.plan.nix/iserv.nix+54 materialized/ghc-extra-projects/default/ghc924/.plan.nix/libiserv.nix+58 materialized/ghc-extra-projects/default/ghc924/.plan.nix/remote-iserv.nix+46 materialized/ghc-extra-projects/default/ghc924/default.nix+138 materialized/ghc-extra-projects/ghcjs/ghc8105/.plan.nix/Win32.nix+155 materialized/ghc-extra-projects/ghcjs/ghc8105/.plan.nix/ghc-boot.nix+60 materialized/ghc-extra-projects/ghcjs/ghc8105/.plan.nix/ghc.nix+586 materialized/ghc-extra-projects/ghcjs/ghc8105/.plan.nix/ghci.nix+71 materialized/ghc-extra-projects/ghcjs/ghc8105/.plan.nix/hpc.nix+52 materialized/ghc-extra-projects/ghcjs/ghc8105/.plan.nix/iserv-proxy.nix+55 materialized/ghc-extra-projects/ghcjs/ghc8105/.plan.nix/iserv.nix+54 materialized/ghc-extra-projects/ghcjs/ghc8105/.plan.nix/libiserv.nix+58 materialized/ghc-extra-projects/ghcjs/ghc8105/.plan.nix/remote-iserv.nix+46 materialized/ghc-extra-projects/ghcjs/ghc8105/default.nix+131 materialized/ghc-extra-projects/ghcjs/ghc8106/.plan.nix/Win32.nix+155 materialized/ghc-extra-projects/ghcjs/ghc8106/.plan.nix/ghc-boot.nix+60 materialized/ghc-extra-projects/ghcjs/ghc8106/.plan.nix/ghc.nix+586 materialized/ghc-extra-projects/ghcjs/ghc8106/.plan.nix/ghci.nix+71 materialized/ghc-extra-projects/ghcjs/ghc8106/.plan.nix/hpc.nix+52 materialized/ghc-extra-projects/ghcjs/ghc8106/.plan.nix/iserv-proxy.nix+55 materialized/ghc-extra-projects/ghcjs/ghc8106/.plan.nix/iserv.nix+54 materialized/ghc-extra-projects/ghcjs/ghc8106/.plan.nix/libiserv.nix+58 materialized/ghc-extra-projects/ghcjs/ghc8106/.plan.nix/remote-iserv.nix+46 materialized/ghc-extra-projects/ghcjs/ghc8106/default.nix+131 materialized/ghc-extra-projects/ghcjs/ghc8107/.plan.nix/Win32.nix+155 materialized/ghc-extra-projects/ghcjs/ghc8107/.plan.nix/ghc-boot.nix+60 materialized/ghc-extra-projects/ghcjs/ghc8107/.plan.nix/ghc.nix+586 materialized/ghc-extra-projects/ghcjs/ghc8107/.plan.nix/ghci.nix+71 materialized/ghc-extra-projects/ghcjs/ghc8107/.plan.nix/hpc.nix+52 materialized/ghc-extra-projects/ghcjs/ghc8107/.plan.nix/iserv-proxy.nix+55 materialized/ghc-extra-projects/ghcjs/ghc8107/.plan.nix/iserv.nix+54 materialized/ghc-extra-projects/ghcjs/ghc8107/.plan.nix/libiserv.nix+58 materialized/ghc-extra-projects/ghcjs/ghc8107/.plan.nix/remote-iserv.nix+46 materialized/ghc-extra-projects/ghcjs/ghc8107/default.nix+131 materialized/ghc-extra-projects/ghcjs/ghc865/.plan.nix/Win32.nix+155 materialized/ghc-extra-projects/ghcjs/ghc865/.plan.nix/ghc-boot.nix+53 materialized/ghc-extra-projects/ghcjs/ghc865/.plan.nix/ghc.nix+554 materialized/ghc-extra-projects/ghcjs/ghc865/.plan.nix/ghci.nix+70 materialized/ghc-extra-projects/ghcjs/ghc865/.plan.nix/hpc.nix+51 materialized/ghc-extra-projects/ghcjs/ghc865/.plan.nix/iserv-proxy.nix+55 materialized/ghc-extra-projects/ghcjs/ghc865/.plan.nix/iserv.nix+54 materialized/ghc-extra-projects/ghcjs/ghc865/.plan.nix/libiserv.nix+58 materialized/ghc-extra-projects/ghcjs/ghc865/default.nix+123 materialized/ghc-extra-projects/ghcjs/ghc884/.plan.nix/Win32.nix+155 materialized/ghc-extra-projects/ghcjs/ghc884/.plan.nix/ghc-boot.nix+53 materialized/ghc-extra-projects/ghcjs/ghc884/.plan.nix/ghc.nix+572 materialized/ghc-extra-projects/ghcjs/ghc884/.plan.nix/ghci.nix+70 materialized/ghc-extra-projects/ghcjs/ghc884/.plan.nix/hpc.nix+51 materialized/ghc-extra-projects/ghcjs/ghc884/.plan.nix/iserv-proxy.nix+55 materialized/ghc-extra-projects/ghcjs/ghc884/.plan.nix/iserv.nix+54 materialized/ghc-extra-projects/ghcjs/ghc884/.plan.nix/libiserv.nix+58 materialized/ghc-extra-projects/ghcjs/ghc884/default.nix+125 materialized/ghc-extra-projects/windows/ghc8101/.plan.nix/Win32.nix+155 materialized/ghc-extra-projects/windows/ghc8101/.plan.nix/ghc-boot.nix+60 materialized/ghc-extra-projects/windows/ghc8101/.plan.nix/ghc.nix+585 materialized/ghc-extra-projects/windows/ghc8101/.plan.nix/ghci.nix+70 materialized/ghc-extra-projects/windows/ghc8101/.plan.nix/hpc.nix+52 materialized/ghc-extra-projects/windows/ghc8101/.plan.nix/iserv-proxy.nix+2−2 materialized/ghc-extra-projects/windows/ghc8101/.plan.nix/iserv.nix+54 materialized/ghc-extra-projects/windows/ghc8101/.plan.nix/libiserv.nix+58 materialized/ghc-extra-projects/windows/ghc8101/.plan.nix/remote-iserv.nix+46 materialized/ghc-extra-projects/windows/ghc8101/default.nix+120 materialized/ghc-extra-projects/windows/ghc8102/.plan.nix/Win32.nix+155 materialized/ghc-extra-projects/windows/ghc8102/.plan.nix/bytestring.nix−136 materialized/ghc-extra-projects/windows/ghc8102/.plan.nix/ghc-boot.nix+1−1 materialized/ghc-extra-projects/windows/ghc8102/.plan.nix/ghc.nix+1−1 materialized/ghc-extra-projects/windows/ghc8102/.plan.nix/ghci.nix+1−1 materialized/ghc-extra-projects/windows/ghc8102/.plan.nix/hpc.nix+1−1 materialized/ghc-extra-projects/windows/ghc8102/.plan.nix/iserv-proxy.nix+2−2 materialized/ghc-extra-projects/windows/ghc8102/.plan.nix/iserv.nix+1−1 materialized/ghc-extra-projects/windows/ghc8102/.plan.nix/libiserv.nix+1−1 materialized/ghc-extra-projects/windows/ghc8102/.plan.nix/remote-iserv.nix+1−1 materialized/ghc-extra-projects/windows/ghc8102/default.nix+73−40 materialized/ghc-extra-projects/windows/ghc8103/.plan.nix/Win32.nix+155 materialized/ghc-extra-projects/windows/ghc8103/.plan.nix/ghc-boot.nix+60 materialized/ghc-extra-projects/windows/ghc8103/.plan.nix/ghc.nix+586 materialized/ghc-extra-projects/windows/ghc8103/.plan.nix/ghci.nix+70 materialized/ghc-extra-projects/windows/ghc8103/.plan.nix/hpc.nix+52 materialized/ghc-extra-projects/windows/ghc8103/.plan.nix/iserv-proxy.nix+55 materialized/ghc-extra-projects/windows/ghc8103/.plan.nix/iserv.nix+54 materialized/ghc-extra-projects/windows/ghc8103/.plan.nix/libiserv.nix+58 materialized/ghc-extra-projects/windows/ghc8103/.plan.nix/remote-iserv.nix+46 materialized/ghc-extra-projects/windows/ghc8103/default.nix+121 materialized/ghc-extra-projects/windows/ghc8104/.plan.nix/Win32.nix+155 materialized/ghc-extra-projects/windows/ghc8104/.plan.nix/ghc-boot.nix+60 materialized/ghc-extra-projects/windows/ghc8104/.plan.nix/ghc.nix+586 materialized/ghc-extra-projects/windows/ghc8104/.plan.nix/ghci.nix+70 materialized/ghc-extra-projects/windows/ghc8104/.plan.nix/hpc.nix+52 materialized/ghc-extra-projects/windows/ghc8104/.plan.nix/iserv-proxy.nix+55 materialized/ghc-extra-projects/windows/ghc8104/.plan.nix/iserv.nix+54 materialized/ghc-extra-projects/windows/ghc8104/.plan.nix/libiserv.nix+58 materialized/ghc-extra-projects/windows/ghc8104/.plan.nix/remote-iserv.nix+46 materialized/ghc-extra-projects/windows/ghc8104/default.nix+121 materialized/ghc-extra-projects/windows/ghc810420210212/.plan.nix/Win32.nix+155 materialized/ghc-extra-projects/windows/ghc810420210212/.plan.nix/ghc-boot.nix+60 materialized/ghc-extra-projects/windows/ghc810420210212/.plan.nix/ghc.nix+586 materialized/ghc-extra-projects/windows/ghc810420210212/.plan.nix/ghci.nix+70 materialized/ghc-extra-projects/windows/ghc810420210212/.plan.nix/hpc.nix+52 materialized/ghc-extra-projects/windows/ghc810420210212/.plan.nix/iserv-proxy.nix+55 materialized/ghc-extra-projects/windows/ghc810420210212/.plan.nix/iserv.nix+54 materialized/ghc-extra-projects/windows/ghc810420210212/.plan.nix/libiserv.nix+58 materialized/ghc-extra-projects/windows/ghc810420210212/.plan.nix/remote-iserv.nix+46 materialized/ghc-extra-projects/windows/ghc810420210212/default.nix+121 materialized/ghc-extra-projects/windows/ghc8105/.plan.nix/Win32.nix+155 materialized/ghc-extra-projects/windows/ghc8105/.plan.nix/ghc-boot.nix+60 materialized/ghc-extra-projects/windows/ghc8105/.plan.nix/ghc.nix+586 materialized/ghc-extra-projects/windows/ghc8105/.plan.nix/ghci.nix+71 materialized/ghc-extra-projects/windows/ghc8105/.plan.nix/hpc.nix+52 materialized/ghc-extra-projects/windows/ghc8105/.plan.nix/iserv-proxy.nix+55 materialized/ghc-extra-projects/windows/ghc8105/.plan.nix/iserv.nix+54 materialized/ghc-extra-projects/windows/ghc8105/.plan.nix/libiserv.nix+58 materialized/ghc-extra-projects/windows/ghc8105/.plan.nix/remote-iserv.nix+46 materialized/ghc-extra-projects/windows/ghc8105/default.nix+121 materialized/ghc-extra-projects/windows/ghc8106/.plan.nix/Win32.nix+155 materialized/ghc-extra-projects/windows/ghc8106/.plan.nix/ghc-boot.nix+60 materialized/ghc-extra-projects/windows/ghc8106/.plan.nix/ghc.nix+586 materialized/ghc-extra-projects/windows/ghc8106/.plan.nix/ghci.nix+71 materialized/ghc-extra-projects/windows/ghc8106/.plan.nix/hpc.nix+52 materialized/ghc-extra-projects/windows/ghc8106/.plan.nix/iserv-proxy.nix+55 materialized/ghc-extra-projects/windows/ghc8106/.plan.nix/iserv.nix+54 materialized/ghc-extra-projects/windows/ghc8106/.plan.nix/libiserv.nix+58 materialized/ghc-extra-projects/windows/ghc8106/.plan.nix/remote-iserv.nix+46 materialized/ghc-extra-projects/windows/ghc8106/default.nix+121 materialized/ghc-extra-projects/windows/ghc8107/.plan.nix/Win32.nix+155 materialized/ghc-extra-projects/windows/ghc8107/.plan.nix/ghc-boot.nix+60 materialized/ghc-extra-projects/windows/ghc8107/.plan.nix/ghc.nix+586 materialized/ghc-extra-projects/windows/ghc8107/.plan.nix/ghci.nix+71 materialized/ghc-extra-projects/windows/ghc8107/.plan.nix/hpc.nix+52 materialized/ghc-extra-projects/windows/ghc8107/.plan.nix/iserv-proxy.nix+55 materialized/ghc-extra-projects/windows/ghc8107/.plan.nix/iserv.nix+54 materialized/ghc-extra-projects/windows/ghc8107/.plan.nix/libiserv.nix+58 materialized/ghc-extra-projects/windows/ghc8107/.plan.nix/remote-iserv.nix+46 materialized/ghc-extra-projects/windows/ghc8107/default.nix+121 materialized/ghc-extra-projects/windows/ghc863/.plan.nix/Win32.nix+155 materialized/ghc-extra-projects/windows/ghc863/.plan.nix/ghc-boot.nix+53 materialized/ghc-extra-projects/windows/ghc863/.plan.nix/ghc.nix+555 materialized/ghc-extra-projects/windows/ghc863/.plan.nix/ghci.nix+70 materialized/ghc-extra-projects/windows/ghc863/.plan.nix/hpc.nix+51 materialized/ghc-extra-projects/windows/ghc863/.plan.nix/iserv-proxy.nix+55 materialized/ghc-extra-projects/windows/ghc863/.plan.nix/iserv.nix+54 materialized/ghc-extra-projects/windows/ghc863/.plan.nix/libiserv.nix+58 materialized/ghc-extra-projects/windows/ghc863/.plan.nix/remote-iserv.nix+46 materialized/ghc-extra-projects/windows/ghc863/default.nix+118 materialized/ghc-extra-projects/windows/ghc864/.plan.nix/Win32.nix+155 materialized/ghc-extra-projects/windows/ghc864/.plan.nix/ghc-boot.nix+53 materialized/ghc-extra-projects/windows/ghc864/.plan.nix/ghc.nix+556 materialized/ghc-extra-projects/windows/ghc864/.plan.nix/ghci.nix+70 materialized/ghc-extra-projects/windows/ghc864/.plan.nix/hpc.nix+51 materialized/ghc-extra-projects/windows/ghc864/.plan.nix/iserv-proxy.nix+55 materialized/ghc-extra-projects/windows/ghc864/.plan.nix/iserv.nix+54 materialized/ghc-extra-projects/windows/ghc864/.plan.nix/libiserv.nix+58 materialized/ghc-extra-projects/windows/ghc864/.plan.nix/remote-iserv.nix+46 materialized/ghc-extra-projects/windows/ghc864/default.nix+119 materialized/ghc-extra-projects/windows/ghc865/.plan.nix/Win32.nix+155 materialized/ghc-extra-projects/windows/ghc865/.plan.nix/ghc-boot.nix+1−1 materialized/ghc-extra-projects/windows/ghc865/.plan.nix/ghc.nix+1−5 materialized/ghc-extra-projects/windows/ghc865/.plan.nix/ghci.nix+1−1 materialized/ghc-extra-projects/windows/ghc865/.plan.nix/hpc.nix+1−1 materialized/ghc-extra-projects/windows/ghc865/.plan.nix/iserv-proxy.nix+2−2 materialized/ghc-extra-projects/windows/ghc865/.plan.nix/iserv.nix+1−1 materialized/ghc-extra-projects/windows/ghc865/.plan.nix/libiserv.nix+1−1 materialized/ghc-extra-projects/windows/ghc865/.plan.nix/remote-iserv.nix+1−1 materialized/ghc-extra-projects/windows/ghc865/default.nix+72−45 materialized/ghc-extra-projects/windows/ghc882/.plan.nix/Win32.nix+155 materialized/ghc-extra-projects/windows/ghc882/.plan.nix/ghc-boot.nix+53 materialized/ghc-extra-projects/windows/ghc882/.plan.nix/ghc.nix+573 materialized/ghc-extra-projects/windows/ghc882/.plan.nix/ghci.nix+70 materialized/ghc-extra-projects/windows/ghc882/.plan.nix/hpc.nix+51 materialized/ghc-extra-projects/windows/ghc882/.plan.nix/iserv-proxy.nix+55 materialized/ghc-extra-projects/windows/ghc882/.plan.nix/iserv.nix+54 materialized/ghc-extra-projects/windows/ghc882/.plan.nix/libiserv.nix+58 materialized/ghc-extra-projects/windows/ghc882/.plan.nix/remote-iserv.nix+46 materialized/ghc-extra-projects/windows/ghc882/default.nix+120 materialized/ghc-extra-projects/windows/ghc883/.plan.nix/Win32.nix+155 materialized/ghc-extra-projects/windows/ghc883/.plan.nix/bytestring.nix−136 materialized/ghc-extra-projects/windows/ghc883/.plan.nix/ghc-boot.nix+1−1 materialized/ghc-extra-projects/windows/ghc883/.plan.nix/ghc.nix+1−5 materialized/ghc-extra-projects/windows/ghc883/.plan.nix/ghci.nix+1−1 materialized/ghc-extra-projects/windows/ghc883/.plan.nix/hpc.nix+1−1 materialized/ghc-extra-projects/windows/ghc883/.plan.nix/iserv-proxy.nix+2−2 materialized/ghc-extra-projects/windows/ghc883/.plan.nix/iserv.nix+1−1 materialized/ghc-extra-projects/windows/ghc883/.plan.nix/libiserv.nix+1−1 materialized/ghc-extra-projects/windows/ghc883/.plan.nix/remote-iserv.nix+1−1 materialized/ghc-extra-projects/windows/ghc883/default.nix+72−45 materialized/ghc-extra-projects/windows/ghc884/.plan.nix/Win32.nix+155 materialized/ghc-extra-projects/windows/ghc884/.plan.nix/bytestring.nix−167 materialized/ghc-extra-projects/windows/ghc884/.plan.nix/ghc-boot.nix+1−1 materialized/ghc-extra-projects/windows/ghc884/.plan.nix/ghc.nix+1−5 materialized/ghc-extra-projects/windows/ghc884/.plan.nix/ghci.nix+1−1 materialized/ghc-extra-projects/windows/ghc884/.plan.nix/hpc.nix+1−1 materialized/ghc-extra-projects/windows/ghc884/.plan.nix/iserv-proxy.nix+2−2 materialized/ghc-extra-projects/windows/ghc884/.plan.nix/iserv.nix+1−1 materialized/ghc-extra-projects/windows/ghc884/.plan.nix/libiserv.nix+1−1 materialized/ghc-extra-projects/windows/ghc884/.plan.nix/remote-iserv.nix+1−1 materialized/ghc-extra-projects/windows/ghc884/default.nix+72−45 materialized/ghc-extra-projects/windows/ghc901/.plan.nix/Win32.nix+158 materialized/ghc-extra-projects/windows/ghc901/.plan.nix/ghc-boot.nix+61 materialized/ghc-extra-projects/windows/ghc901/.plan.nix/ghc.nix+572 materialized/ghc-extra-projects/windows/ghc901/.plan.nix/ghci.nix+70 materialized/ghc-extra-projects/windows/ghc901/.plan.nix/hpc.nix+52 materialized/ghc-extra-projects/windows/ghc901/.plan.nix/iserv-proxy.nix+55 materialized/ghc-extra-projects/windows/ghc901/.plan.nix/iserv.nix+54 materialized/ghc-extra-projects/windows/ghc901/.plan.nix/libiserv.nix+58 materialized/ghc-extra-projects/windows/ghc901/.plan.nix/remote-iserv.nix+46 materialized/ghc-extra-projects/windows/ghc901/default.nix+132 materialized/ghc-extra-projects/windows/ghc902/.plan.nix/Win32.nix+158 materialized/ghc-extra-projects/windows/ghc902/.plan.nix/ghc-boot.nix+61 materialized/ghc-extra-projects/windows/ghc902/.plan.nix/ghc.nix+572 materialized/ghc-extra-projects/windows/ghc902/.plan.nix/ghci.nix+71 materialized/ghc-extra-projects/windows/ghc902/.plan.nix/hpc.nix+52 materialized/ghc-extra-projects/windows/ghc902/.plan.nix/iserv-proxy.nix+55 materialized/ghc-extra-projects/windows/ghc902/.plan.nix/iserv.nix+54 materialized/ghc-extra-projects/windows/ghc902/.plan.nix/libiserv.nix+58 materialized/ghc-extra-projects/windows/ghc902/.plan.nix/remote-iserv.nix+46 materialized/ghc-extra-projects/windows/ghc902/default.nix+132 materialized/ghc-extra-projects/windows/ghc921/.plan.nix/Win32.nix+158 materialized/ghc-extra-projects/windows/ghc921/.plan.nix/ghc-boot.nix+64 materialized/ghc-extra-projects/windows/ghc921/.plan.nix/ghc.nix+663 materialized/ghc-extra-projects/windows/ghc921/.plan.nix/ghci.nix+70 materialized/ghc-extra-projects/windows/ghc921/.plan.nix/hpc.nix+52 materialized/ghc-extra-projects/windows/ghc921/.plan.nix/iserv-proxy.nix+55 materialized/ghc-extra-projects/windows/ghc921/.plan.nix/iserv.nix+54 materialized/ghc-extra-projects/windows/ghc921/.plan.nix/libiserv.nix+58 materialized/ghc-extra-projects/windows/ghc921/.plan.nix/remote-iserv.nix+46 materialized/ghc-extra-projects/windows/ghc921/default.nix+140 materialized/ghc-extra-projects/windows/ghc922/.plan.nix/Win32.nix+158 materialized/ghc-extra-projects/windows/ghc922/.plan.nix/ghc-boot.nix+64 materialized/ghc-extra-projects/windows/ghc922/.plan.nix/ghc.nix+661 materialized/ghc-extra-projects/windows/ghc922/.plan.nix/ghci.nix+70 materialized/ghc-extra-projects/windows/ghc922/.plan.nix/hpc.nix+52 materialized/ghc-extra-projects/windows/ghc922/.plan.nix/iserv-proxy.nix+55 materialized/ghc-extra-projects/windows/ghc922/.plan.nix/iserv.nix+54 materialized/ghc-extra-projects/windows/ghc922/.plan.nix/libiserv.nix+58 materialized/ghc-extra-projects/windows/ghc922/.plan.nix/remote-iserv.nix+46 materialized/ghc-extra-projects/windows/ghc922/default.nix+134 materialized/ghc-extra-projects/windows/ghc923/.plan.nix/Win32.nix+158 materialized/ghc-extra-projects/windows/ghc923/.plan.nix/ghc-boot.nix+64 materialized/ghc-extra-projects/windows/ghc923/.plan.nix/ghc.nix+661 materialized/ghc-extra-projects/windows/ghc923/.plan.nix/ghci.nix+70 materialized/ghc-extra-projects/windows/ghc923/.plan.nix/hpc.nix+52 materialized/ghc-extra-projects/windows/ghc923/.plan.nix/iserv-proxy.nix+55 materialized/ghc-extra-projects/windows/ghc923/.plan.nix/iserv.nix+54 materialized/ghc-extra-projects/windows/ghc923/.plan.nix/libiserv.nix+58 materialized/ghc-extra-projects/windows/ghc923/.plan.nix/remote-iserv.nix+46 materialized/ghc-extra-projects/windows/ghc923/default.nix+134 materialized/ghc-extra-projects/windows/ghc924/.plan.nix/Win32.nix+158 materialized/ghc-extra-projects/windows/ghc924/.plan.nix/ghc-boot.nix+64 materialized/ghc-extra-projects/windows/ghc924/.plan.nix/ghc.nix+661 materialized/ghc-extra-projects/windows/ghc924/.plan.nix/ghci.nix+70 materialized/ghc-extra-projects/windows/ghc924/.plan.nix/hpc.nix+52 materialized/ghc-extra-projects/windows/ghc924/.plan.nix/iserv-proxy.nix+55 materialized/ghc-extra-projects/windows/ghc924/.plan.nix/iserv.nix+54 materialized/ghc-extra-projects/windows/ghc924/.plan.nix/libiserv.nix+58 materialized/ghc-extra-projects/windows/ghc924/.plan.nix/remote-iserv.nix+46 materialized/ghc-extra-projects/windows/ghc924/default.nix+134 materialized/ghc8101/cabal-install/.plan.nix/cabal-install.nix+51−99 materialized/ghc8101/cabal-install/default.nix+133−75 materialized/ghc8101/nix-tools/default.nix−355 materialized/ghc8102-experimental/nix-tools/default.nix−355 materialized/ghc8102/cabal-install/.plan.nix/cabal-install.nix+51−99 materialized/ghc8102/cabal-install/default.nix+132−74 materialized/ghc8102/nix-tools/.plan.nix/hackage-db.nix+13−3 materialized/ghc8102/nix-tools/.plan.nix/nix-tools.nix+2−1 materialized/ghc8102/nix-tools/default.nix+458−295 materialized/ghc8103/cabal-install/.plan.nix/cabal-install.nix+292 materialized/ghc8103/cabal-install/default.nix+180 materialized/ghc8103/nix-tools/.plan.nix/hackage-db.nix+13−3 materialized/ghc8103/nix-tools/.plan.nix/nix-tools.nix+2−1 materialized/ghc8103/nix-tools/default.nix+518 materialized/ghc8104/cabal-install/.plan.nix/cabal-install.nix+292 materialized/ghc8104/cabal-install/default.nix+180 materialized/ghc8104/nix-tools/.plan.nix/hackage-db.nix+13−3 materialized/ghc8104/nix-tools/.plan.nix/nix-tools.nix+2−1 materialized/ghc8104/nix-tools/default.nix+518 materialized/ghc810420210212/cabal-install/.plan.nix/cabal-install.nix+292 materialized/ghc810420210212/cabal-install/default.nix+180 materialized/ghc810420210212/nix-tools/.plan.nix/hackage-db.nix+13−3 materialized/ghc810420210212/nix-tools/.plan.nix/nix-tools.nix+2−1 materialized/ghc810420210212/nix-tools/default.nix+518 materialized/ghc8105/cabal-install/.plan.nix/cabal-install.nix+292 materialized/ghc8105/cabal-install/default.nix+180 materialized/ghc8105/nix-tools/.plan.nix/hackage-db.nix+110 materialized/ghc8105/nix-tools/.plan.nix/nix-tools.nix+234 materialized/ghc8105/nix-tools/default.nix+518 materialized/ghc8106/cabal-install/.plan.nix/cabal-install.nix+292 materialized/ghc8106/cabal-install/default.nix+180 materialized/ghc8106/nix-tools/.plan.nix/hackage-db.nix+110 materialized/ghc8106/nix-tools/.plan.nix/nix-tools.nix+234 materialized/ghc8106/nix-tools/default.nix+518 materialized/ghc8107/cabal-install/.plan.nix/cabal-install.nix+292 materialized/ghc8107/cabal-install/default.nix+180 materialized/ghc8107/nix-tools/.plan.nix/hackage-db.nix+110 materialized/ghc8107/nix-tools/.plan.nix/nix-tools.nix+234 materialized/ghc8107/nix-tools/default.nix+518 materialized/ghc844/cabal-install/default.nix−122 materialized/ghc844/nix-tools/default.nix−355 materialized/ghc863/cabal-install/.plan.nix/cabal-install.nix+292 materialized/ghc863/cabal-install/default.nix+180 materialized/ghc863/nix-tools/.plan.nix/hackage-db.nix+110 materialized/ghc863/nix-tools/.plan.nix/nix-tools.nix+234 materialized/ghc863/nix-tools/default.nix+509 materialized/ghc864/cabal-install/.plan.nix/cabal-install.nix+292 materialized/ghc864/cabal-install/default.nix+180 materialized/ghc864/nix-tools/.plan.nix/hackage-db.nix+110 materialized/ghc864/nix-tools/.plan.nix/nix-tools.nix+234 materialized/ghc864/nix-tools/default.nix+509 materialized/ghc865/cabal-install/.plan.nix/cabal-install.nix+51−99 materialized/ghc865/cabal-install/default.nix+132−74 materialized/ghc865/nix-tools/.plan.nix/hackage-db.nix+13−3 materialized/ghc865/nix-tools/.plan.nix/nix-tools.nix+2−1 materialized/ghc865/nix-tools/default.nix+448−294 materialized/ghc882/cabal-install/.plan.nix/cabal-install.nix+292 materialized/ghc882/cabal-install/default.nix+180 materialized/ghc882/nix-tools/.plan.nix/hackage-db.nix+110 materialized/ghc882/nix-tools/.plan.nix/nix-tools.nix+234 materialized/ghc882/nix-tools/default.nix+509 materialized/ghc883/cabal-install/.plan.nix/cabal-install.nix+51−99 materialized/ghc883/cabal-install/default.nix+132−74 materialized/ghc883/nix-tools/.plan.nix/hackage-db.nix+13−3 materialized/ghc883/nix-tools/.plan.nix/nix-tools.nix+2−1 materialized/ghc883/nix-tools/default.nix+448−294 materialized/ghc884/cabal-install/.plan.nix/cabal-install.nix+51−99 materialized/ghc884/cabal-install/default.nix+132−74 materialized/ghc884/nix-tools/.plan.nix/hackage-db.nix+13−3 materialized/ghc884/nix-tools/.plan.nix/nix-tools.nix+2−1 materialized/ghc884/nix-tools/default.nix+448−294 materialized/ghc901/cabal-install/.plan.nix/cabal-install.nix+292 materialized/ghc901/cabal-install/default.nix+178 materialized/ghc902/cabal-install/.plan.nix/cabal-install.nix+292 materialized/ghc902/cabal-install/default.nix+183 materialized/ghc921/cabal-install/.plan.nix/cabal-install.nix+292 materialized/ghc921/cabal-install/default.nix+174 materialized/ghc922/cabal-install/.plan.nix/cabal-install.nix+292 materialized/ghc922/cabal-install/default.nix+174 materialized/ghc923/cabal-install/.plan.nix/cabal-install.nix+292 materialized/ghc923/cabal-install/default.nix+174 materialized/ghc924/cabal-install/.plan.nix/cabal-install.nix+292 materialized/ghc924/cabal-install/default.nix+174 materialized/ghcjs/alex/ghc8104/.plan.nix/alex.nix+160 materialized/ghcjs/alex/ghc8104/default.nix+47 materialized/ghcjs/alex/ghc8105/.plan.nix/alex.nix+160 materialized/ghcjs/alex/ghc8105/default.nix+65 materialized/ghcjs/alex/ghc8106/.plan.nix/alex.nix+160 materialized/ghcjs/alex/ghc8106/default.nix+65 materialized/ghcjs/alex/ghc8107/.plan.nix/alex.nix+160 materialized/ghcjs/alex/ghc8107/default.nix+65 materialized/ghcjs/alex/ghc865/.plan.nix/alex.nix+1−1 materialized/ghcjs/alex/ghc865/default.nix+34−18 materialized/ghcjs/alex/ghc884/.plan.nix/alex.nix+1−1 materialized/ghcjs/alex/ghc884/default.nix+34−18 materialized/ghcjs/cabal/ghc8104/.plan.nix/cabal-install.nix+361 materialized/ghcjs/cabal/ghc8104/default.nix+31−25 materialized/ghcjs/cabal/ghc8105/.plan.nix/cabal-install.nix+292 materialized/ghcjs/cabal/ghc8105/default.nix+180 materialized/ghcjs/cabal/ghc8106/.plan.nix/cabal-install.nix+292 materialized/ghcjs/cabal/ghc8106/default.nix+180 materialized/ghcjs/cabal/ghc8107/.plan.nix/cabal-install.nix+292 materialized/ghcjs/cabal/ghc8107/default.nix+180 materialized/ghcjs/cabal/ghc865/.plan.nix/cabal-install.nix+5−5 materialized/ghcjs/cabal/ghc865/default.nix+173 materialized/ghcjs/cabal/ghc884/.plan.nix/cabal-install.nix+5−5 materialized/ghcjs/cabal/ghc884/default.nix+173 materialized/ghcjs/ghc8104/.plan.nix/ghcjs-th.nix+48 materialized/ghcjs/ghc8104/.plan.nix/ghcjs.nix+985 materialized/ghcjs/ghc8104/default.nix+96−94 materialized/ghcjs/ghc8105/.plan.nix/ghcjs-th.nix+48 materialized/ghcjs/ghc8105/.plan.nix/ghcjs.nix+985 materialized/ghcjs/ghc8105/default.nix+576 materialized/ghcjs/ghc8106/.plan.nix/ghcjs-th.nix+48 materialized/ghcjs/ghc8106/.plan.nix/ghcjs.nix+985 materialized/ghcjs/ghc8106/default.nix+576 materialized/ghcjs/ghc8107/.plan.nix/ghcjs-th.nix+48 materialized/ghcjs/ghc8107/.plan.nix/ghcjs.nix+985 materialized/ghcjs/ghc8107/default.nix+576 materialized/ghcjs/ghc865/.plan.nix/ghci-ghcjs.nix+1−1 materialized/ghcjs/ghc865/.plan.nix/ghcjs-th.nix+1−1 materialized/ghcjs/ghc865/.plan.nix/ghcjs.nix+987 materialized/ghcjs/ghc865/.plan.nix/haddock-library-ghcjs.nix+2−2 materialized/ghcjs/ghc865/.plan.nix/template-haskell-ghcjs.nix+1−1 materialized/ghcjs/ghc865/default.nix+555−334 materialized/ghcjs/ghc884/.plan.nix/ghcjs-th.nix+1−1 materialized/ghcjs/ghc884/.plan.nix/ghcjs.nix+3−2 materialized/ghcjs/ghc884/default.nix+581 materialized/ghcjs/happy/ghc8104/.plan.nix/happy.nix+200 materialized/ghcjs/happy/ghc8104/default.nix+41 materialized/ghcjs/happy/ghc8105/.plan.nix/happy.nix+200 materialized/ghcjs/happy/ghc8105/default.nix+56 materialized/ghcjs/happy/ghc8106/.plan.nix/happy.nix+200 materialized/ghcjs/happy/ghc8106/default.nix+56 materialized/ghcjs/happy/ghc8107/.plan.nix/happy.nix+200 materialized/ghcjs/happy/ghc8107/default.nix+56 materialized/ghcjs/happy/ghc865/.plan.nix/happy.nix+1−1 materialized/ghcjs/happy/ghc865/default.nix+25−22 materialized/ghcjs/happy/ghc884/.plan.nix/happy.nix+1−1 materialized/ghcjs/happy/ghc884/default.nix+25−22 materialized/ghcjs865/.plan.nix/ghcjs.nix−331 materialized/ghcjs865/.plan.nix/haddock-api-ghcjs.nix−184 materialized/spdx-3.12/licenses.json+5622 materialized/spdx-3.14/licenses.json+5937 materialized/spdx-3.16/licenses.json+6090 materialized/spdx-3.17/licenses.json+6155 mk-local-hackage-repo/default.nix+10−10 mkdocs.yml+3−1 modules/cabal-project.nix+134 modules/component-driver.nix+15−5 modules/configuration-nix.nix+114−2 modules/error-handler.nix+10−2 modules/hackage-project.nix+60 modules/hackage-quirks.nix+88 modules/hix-project.nix+47 modules/package.nix+144−83 modules/plan.nix+39−3 modules/project-common.nix+65 modules/project.nix+9 modules/stack-project.nix+94 nix-tools/README.md−3 nix-tools/regenerate.nix−100 nix/sources.json−106 nix/sources.nix−134 overlays/android.nix+28 overlays/armv6l-linux.nix+9−8 overlays/bootstrap.nix+577−142 overlays/darwin.nix+21−3 overlays/default.nix+11−12 overlays/emscripten.nix+6−19 overlays/emscripten/binaryen.nix−46 overlays/emscripten/default.nix−71 overlays/emscripten/fastcomp/default.nix+2−2 overlays/emscripten/fastcomp/emscripten-fastcomp.nix−55 overlays/emscripten/upstream/default.nix+2−2 overlays/emscripten/upstream/emscripten-upstream.nix−60 overlays/eval-on-build.nix−6 overlays/eval-on-current.nix−8 overlays/ghc-packages.nix+109−55 overlays/ghc.nix+13−7 overlays/ghcjs.nix+55−55 overlays/gobject-introspection.nix+3−3 overlays/hackage-quirks.nix−65 overlays/haskell.nix+382−171 overlays/hix.nix+51 overlays/hydra.nix+9 overlays/linux-cross.nix+1−1 overlays/mingw_w64.nix+22−22 overlays/musl.nix+13−10 overlays/nix-prefetch-git-minimal.nix+29 overlays/patches/Cabal/Cabal-3.4-defer-build-tool-depends-7532.patch+63 overlays/patches/Cabal/Cabal-3.4-speedup-solver-when-tests-enabled-7490.patch+147 overlays/patches/Cabal/Cabal-3.6.0.0-drop-pkg-db-check.diff+20 overlays/patches/Cabal/Cabal-3.6.0.0-no-final-checks.diff+24 overlays/patches/config.guess+1702 overlays/patches/config.sub+23−12 overlays/patches/file-embed-lzma-0.patch−44 overlays/patches/ghc-lib-parser-8.10-global-unique-counters-in-rts.patch+20 overlays/patches/ghc-lib-parser-9.2-global-unique-counters-in-rts.patch+20 overlays/patches/ghc/AC_PROG_CC_99.patch+13 overlays/patches/ghc/Cabal-unbreak-GHCJS.patch+20 overlays/patches/ghc/MR6595-nonmoving-mutvar.patch+521 overlays/patches/ghc/MR6617-nonmoving-mvar.patch+174 overlays/patches/ghc/MR6654-nonmoving-maxmem.patch+31 overlays/patches/ghc/Sphinx_Unicode_Error.patch+20 overlays/patches/ghc/android-base-needs-iconv.patch+14 overlays/patches/ghc/external-static-8.10.4.patch+219 overlays/patches/ghc/ghc-8.10-3434.patch+68 overlays/patches/ghc/ghc-8.10-global-unique-counters-in-rts.patch+55 overlays/patches/ghc/ghc-8.10-windows-add-dependent-file.patch+22 overlays/patches/ghc/ghc-8.10-z-drive-fix.patch+14 overlays/patches/ghc/ghc-8.10.3-rts-make-markLiveObject-thread-safe.patch+63 overlays/patches/ghc/ghc-8.10.3-ubxt.patch+7884 overlays/patches/ghc/ghc-8.10.5-add-rts-exports.patch+26 overlays/patches/ghc/ghc-8.10.5-darwin-allocateExec.patch+13 overlays/patches/ghc/ghc-8.10.5-ubxt.patch+7884 overlays/patches/ghc/ghc-8.10.7-linker-weak-and-common.patch+189 overlays/patches/ghc/ghc-8.4.4-reinstallable-lib-ghc.patch−10 overlays/patches/ghc/ghc-8.6.3-reinstallable-lib-ghc.patch−10 overlays/patches/ghc/ghc-8.6.4-reinstallable-lib-ghc.patch−10 overlays/patches/ghc/ghc-8.6.5-reinstallable-lib-ghc.patch−10 overlays/patches/ghc/ghc-8.8.1-reinstallable-lib-ghc.patch−10 overlays/patches/ghc/ghc-8.8.2-reinstallable-lib-ghc.patch−10 overlays/patches/ghc/ghc-9.0-macOS-loadArchive-fix.patch+9 overlays/patches/ghc/ghc-9.2-3434.patch+68 overlays/patches/ghc/ghc-9.2-Cabal-3886.patch+170 overlays/patches/ghc/ghc-9.2-cabal-host.patch+13 overlays/patches/ghc/ghc-9.2-global-unique-counters-in-rts.patch+83 overlays/patches/ghc/ghc-9.2-macOS-loadArchive-fix.patch+9 overlays/patches/ghc/ghc-9.2.1-xattr-fix.patch+30 overlays/patches/ghc/ghc-mprotect-nonzero-len.patch+14 overlays/patches/ghc/ghc-rts-linker-condbr.patch+73 overlays/patches/ghc/issue-18708.patch+39 overlays/patches/ghc/libc-memory-symbols.patch+43 overlays/patches/ghc/libraries-prim-os-android.patch+13 overlays/patches/ghc/mmap-next.patch+70 overlays/patches/ghc/rts-android-jemalloc-qemu.patch+48 overlays/patches/ghc/stack-protector-symbols.patch+67 overlays/shims.nix−9 overlays/tools.nix+28−108 overlays/windows.nix+22−41 overlays/wine.nix+10−8 package-set.nix+1−1 patches/default.nix+1 patches/ghc862/default.nix+1−1 patches/ghc863/default.nix+1−1 patches/ghc864/default.nix+1−1 patches/ghc865/default.nix+1−1 patches/ghcide-1.7-plutus-ghc.patch+13 patches/ghcide-1.7-unboxed-tuple-fix-issue-1455.patch+76 patches/hnix.patch+13 patches/js-ghc8107/buffer-builder.patch+79 patches/js-ghc8107/conduit-extra.patch+48 patches/js-ghc8107/default.nix+7 patches/js-ghc8107/double-conversion.patch+64 patches/js-ghc8107/network.patch+16 patches/js-ghc8107/say.patch+22 patches/languge-c-int128.patch+146 patches/update-patches.sh+6−2 release-linux-only.nix+5 release.nix+54−10 scripts/check-closure-size.nix+2−2 scripts/check-compiler-materialization/default.nix+40−12 scripts/check-hydra.nix+5−4 scripts/check-materialization-concurrency/check.nix+2−2 scripts/check-path-support.nix+3−3 scripts/options-doc.nix+1−1 scripts/update-docs.nix+2−2 scripts/update-external.nix+5−5 scripts/update-hackage.nix+2−2 scripts/update-index-state-hashes.nix+2−2 scripts/update-pins.nix+3−3 scripts/update-stackage.nix+2−2 shell.nix+1−12 snapshots.nix+1−1 stackage-src.json+7−4 test/buildable/default.nix+3−4 test/builder-haddock/.plan.nix/test-haddock.nix+12−43 test/builder-haddock/default.nix+9−10 test/builder-haddock/pkgs.nix+18−6 test/c-ffi/c-ffi.cabal+24 test/c-ffi/cbits/test.c+7 test/c-ffi/default.nix+65 test/c-ffi/exe/Main.hs+15 test/c-ffi/jsbits/bindings.js+6 test/c-ffi/src/Lib.hs+6 test/ca-derivations-include/default.nix+57 test/ca-derivations/default.nix+59 test/cabal-22/default.nix+8−3 test/cabal-doctests/Setup.hs+6 test/cabal-doctests/cabal-doctests-test.cabal+31 test/cabal-doctests/default.nix+48 test/cabal-doctests/doctests/Doctests.hs+16 test/cabal-doctests/src/Lib.hs+18 test/cabal-hpack/default.nix+4−4 test/cabal-simple-debug/Main.hs+4 test/cabal-simple-debug/Setup.hs+2 test/cabal-simple-debug/cabal-simple.cabal+37 test/cabal-simple-debug/default.nix+52 test/cabal-simple-prof/default.nix+16−10 test/cabal-simple/default.nix+9−5 test/cabal-source-repo-comments/cabal.project+2 test/cabal-source-repo-comments/default.nix+4−5 test/cabal-source-repo/cabal.project+3−1 test/cabal-source-repo/default.nix+4−5 test/cabal-sublib/cabal-sublib.cabal+2−1 test/cabal-sublib/default.nix+8−4 test/call-cabal-project-to-nix/default.nix+8−4 test/call-stack-to-nix/default.nix+5−3 test/call-stack-to-nix/stack.yaml+1−1 test/compiler-nix-name/Main.hs−5 test/compiler-nix-name/compiler-nix-name.cabal−11 test/compiler-nix-name/default.nix−41 test/coverage-golden/default.nix+53 test/coverage-golden/golden.json+2069 test/coverage-no-libs/cabal.project+1 test/coverage-no-libs/default.nix+104 test/coverage-no-libs/pkga/MainA.hs+4 test/coverage-no-libs/pkga/Setup.hs+2 test/coverage-no-libs/pkga/pkga.cabal+19 test/coverage-no-libs/stack.yaml+4 test/coverage/default.nix+6−3 test/coverage/pkgb/pkgb.cabal+1−1 test/default.nix+65−47 test/exe-dlls/default.nix+25 test/exe-dlls/exe-dlls.cabal+18 test/exe-dlls/src/Main.hs+14 test/exe-lib-dlls/default.nix+25 test/exe-lib-dlls/exe-lib-dlls.cabal+24 test/exe-lib-dlls/exes/Main.hs+6 test/exe-lib-dlls/src/Lib.hs+14 test/exe-only/default.nix+4−4 test/external-static-plugin/cabal.project+1 test/external-static-plugin/default.nix+27 test/external-static-plugin/plugin/CHANGELOG.md+5 test/external-static-plugin/plugin/plugin.cabal+12 test/external-static-plugin/plugin/src/Plugin.hs+16 test/external-static-plugin/prog/CHANGELOG.md+5 test/external-static-plugin/prog/app/Main.hs+4 test/external-static-plugin/prog/prog.cabal+12 test/extra-hackage/default.nix+7−8 test/extra-hackage/external-package-user/cabal.project+6−2 test/fully-static/cross.nix+1−1 test/fully-static/default.nix+11−3 test/ghc-options/cabal.nix+13−6 test/ghc-options/stack.nix+11−3 test/ghcjs-overlay/CHANGELOG.md+5 test/ghcjs-overlay/Main.hs+8 test/ghcjs-overlay/MyLib.hs+4 test/ghcjs-overlay/Setup.hs+2 test/ghcjs-overlay/cabal.project+2 test/ghcjs-overlay/default.nix+60 test/ghcjs-overlay/ghcjs-overlay-test.cabal+21 test/githash/default.nix+71 test/githash/githash-test.cabal+16 test/githash/src/Main.hs+15 test/haskell-language-server/cabal.nix+6−21 test/haskell-language-server/stack.nix+10−5 test/index-state/default.nix+12−7 test/lookup-sha256/default.nix−13 test/project-flags/cabal.nix+4−5 test/project-flags/stack.nix+4−2 test/setup-deps/cabal.project−2 test/setup-deps/default.nix+18−24 test/setup-deps/pkg/Setup.hs+5 test/setup-deps/pkg/pkg.cabal+1 test/sha256map/default.nix+21 test/shell-for-setup-deps/cabal.project−2 test/shell-for-setup-deps/default.nix+17−23 test/shell-for-setup-deps/pkg/pkg.cabal+1 test/shell-for/.plan.nix/pkga.nix+14−45 test/shell-for/.plan.nix/pkgb.nix+24−55 test/shell-for/default.nix+16−4 test/shell-for/pkgb/pkgb.cabal+1−1 test/shell-for/pkgs.nix+250−164 test/snapshots/default.nix+4−2 test/stack-local-resolver-subdir/.gitignore+2 test/stack-local-resolver-subdir/default.nix+16 test/stack-local-resolver-subdir/package.yaml+7 test/stack-local-resolver-subdir/snapshot/snapshot.yaml+4 test/stack-local-resolver-subdir/src/Lib.hs+6 test/stack-local-resolver-subdir/stack.yaml+4 test/stack-local-resolver/default.nix+3−1 test/stack-remote-resolver/default.nix+3−1 test/stack-simple/default.nix+5−3 test/stack-simple/pkgs.nix+7−1 test/stack-simple/stack-simple.nix+16−47 test/stack-source-repo/default.nix+3−1 test/sublib-docs/default.nix+9−3 test/tests.sh+10−4 test/th-dlls/apps/Main.hs+9 test/th-dlls/default.nix+24 test/th-dlls/src/Lib.hs+14 test/th-dlls/th-dlls.cabal+24 test/unit.nix+128−15 test/with-packages/.plan.nix/test-with-packages.nix+12−43 test/with-packages/default.nix+29−13 test/with-packages/pkgs.nix+161−118
.buildkite/pipeline.yml+17−5
@@ -1,6 +1,6 @@
11steps:
2− - label: 'Run tests with ghc884'
3− command: "./test/tests.sh ghc884"
2+ - label: 'Run tests with ghc8107'
3+ command: "./test/tests.sh ghc8107"
44 agents:
55 system: x86_64-linux
66
@@ -14,9 +14,9 @@ steps:
1414 agents:
1515 system: x86_64-linux
1616
17− - label: 'Check closure size with ghc884'
17+ - label: 'Check closure size with ghc8107'
1818 command:
19− - nix-build build.nix -A maintainer-scripts.check-closure-size --argstr compiler-nix-name ghc884 -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
2020 - echo "+++ Closure size (MB)"
2121 - ./check-closure-size.sh
2222 agents:
@@ -36,5 +36,17 @@ steps:
3636
3737 - label: 'Make sure non store paths like can be used as src'
3838 command:
39− - nix-build build.nix -A maintainer-scripts.check-path-support --argstr compiler-nix-name ghc884 -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
4040 - ./check-path-support.sh
41+
42+ - label: 'Check that the haskell.nix roots do not require IFDs'
43+ command:
44+ - nix build .#roots.x86_64-linux --option allow-import-from-derivation false
45+ agents:
46+ system: x86_64-linux
47+
48+ - label: 'Check that evaluation of hydra jobs works without using remote builders'
49+ command:
50+ - nix-instantiate release.nix -A required-unstable-ghc8107-x86_64-darwin-native --show-trace --builders ''
51+ agents:
52+ system: x86_64-linux
.buildkite/updates.yml+3−10
@@ -1,21 +1,14 @@
11steps:
2− - label: 'Update hackage.nix'
2+ - label: 'Update hackage.nix and stackage.nix'
33 command:
44 - nix-build build.nix -A maintainer-scripts.update-hackage -o update-hackage.sh
55 - echo "+++ Updating hackage.nix"
66 - ./update-hackage.sh
7− artifact_paths:
8− - "hackage-src.json"
9− agents:
10− system: x86_64-linux
11−
12− - label: 'Update stackage.nix'
13− command:
147 - nix-build build.nix -A maintainer-scripts.update-stackage -o update-stackage.sh
158 - echo "+++ Updating stackage.nix"
169 - ./update-stackage.sh
1710 artifact_paths:
18− - "stackage-src.json"
11+ - "flake.lock"
1912 agents:
2013 system: x86_64-linux
2114
@@ -24,7 +17,7 @@ steps:
2417
2518 - label: 'Update pins'
2619 command:
27− - 'buildkite-agent artifact download "*.json" .'
20+ - 'buildkite-agent artifact download "flake.lock" .'
2821 - nix-build build.nix -A maintainer-scripts.update-pins -o update-pins.sh
2922 - ./update-pins.sh
3023 agents:
.github/workflows/rebase.yamlnew file+28
@@ -0,0 +1,28 @@
1+name: Rebase on iohk/haskell.nix
2+
3+on:
4+ schedule:
5+ - cron: 0 0 * * *
6+
7+jobs:
8+ Linux:
9+ runs-on: ubuntu-latest
10+ steps:
11+ - uses: actions/checkout@v2.4.0
12+ with:
13+ fetch-depth: 0
14+ - name: Rebase and push
15+ run: |
16+ git config --global user.name "GitHub Actions"
17+
18+
19+ git remote add iohk https://github.com/input-output-hk/haskell.nix.git
20+ git fetch iohk
21+
22+ git checkout iko/ghcjs-patch-master
23+ git rebase iohk/master
24+ git push --force
25+
26+ git checkout --track origin/master
27+ git reset --hard iohk/master
28+ git push --force
.github/workflows/windows-secp256k1.ymlnew file+51
@@ -0,0 +1,51 @@
1+name: "Test secp256k1 on windows"
2+on: workflow_dispatch
3+jobs:
4+ tests:
5+ runs-on: windows-latest
6+
7+ defaults:
8+ run:
9+ shell: bash
10+
11+ steps:
12+
13+ - uses: haskell/actions/setup@v1
14+ id: setup-haskell
15+ with:
16+ ghc-version: 8.10.7
17+ cabal-version: 3.6.2.0
18+
19+ - name: Install pkgconfiglite
20+ run: choco install -y pkgconfiglite
21+
22+ - name: Install libsecp256k1
23+ run: |
24+ curl -Ls \
25+ --connect-timeout 5 \
26+ --max-time 10 \
27+ --retry 5 \
28+ --retry-delay 0 \
29+ --retry-max-time 40 \
30+ https://hydra.iohk.io/job/Cardano/haskell-nix/windows-secp256k1/latest/download/1 -o secp256k1.zip
31+ mkdir secp256k1
32+ cd secp256k1
33+ unzip ../secp256k1.zip
34+ cd ..
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
41+
42+ - name: Cabal update
43+ run: cabal update
44+
45+ - name: Build and run haskell-secp256k1 tests
46+ run: |
47+ cabal unpack secp256k1-haskell
48+ cd secp256k1-haskell-*
49+ cabal build --enable-tests
50+ cabal test
51+
README.md+22−6
@@ -1,3 +1,19 @@
1+# What is this fork?
2+
3+This fork contains a patched version of GHCJS 8.10 which improves performance and memory usage.
4+
5+For more info see this PR: https://github.com/input-output-hk/haskell.nix/pull/1306
6+
7+## Package versions
8+
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.
10+
11+## Caching
12+
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).
14+
15+---
16+
117# `haskell.nix` is infrastructure for building Haskell packages with Nix
218
319[![](https://badge.buildkite.com/d453edcd29bd2f8f3f3b32c9b7d6777a33773d9671c37a6ccc.svg?branch=master)](https://buildkite.com/input-output-hk/haskell-dot-nix)
@@ -8,9 +24,9 @@ its dependencies into Nix code.
824
925## Documentation
1026
11−- [Introduction](https://input-output-hk.github.io/haskell.nix/)
12−- [Getting Started](https://input-output-hk.github.io/haskell.nix/tutorials/getting-started/)
13−- [Troubleshooting](https://input-output-hk.github.io/haskell.nix/troubleshooting/)
27+- [Introduction](https://input-output-hk.github.io/haskell.nix/index.html)
28+- [Getting Started](https://input-output-hk.github.io/haskell.nix/tutorials/getting-started.html)
29+- [Troubleshooting](https://input-output-hk.github.io/haskell.nix/troubleshooting.html)
1430- Explore the documentation from there to find further topics.
1531
1632## Help! Something isn't working
@@ -18,13 +34,13 @@ its dependencies into Nix code.
1834The #1 problem that people have when using `haskell.nix` is that they find themselves building GHC.
1935This should not happen, but you *must* follow the `haskell.nix` setup instructions properly to avoid it.
2036If 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
22−consult the corresponding [troubleshooting section](https://input-output-hk.github.io/haskell.nix/troubleshooting/#why-am-i-building-ghc).
37+[getting started instructions](https://input-output-hk.github.io/haskell.nix/tutorials/getting-started.html#setting-up-the-binary-cache) and
38+consult the corresponding [troubleshooting section](https://input-output-hk.github.io/haskell.nix/troubleshooting.html#why-am-i-building-ghc).
2339
2440The troubleshooting documentation also contains some help for other common issues.
2541Please give it a read before asking on IRC or opening an issue.
2642
27−If you're still stuck, join the [#haskell.nix](https://www.irccloud.com/invite?channel=%23haskell.nix&hostname=irc.freenode.net&port=6697&ssl=1) channel on [irc.freenode.net](https://freenode.net/), or open an issue.
43+If you're still stuck, join the [#haskell.nix](https://www.irccloud.com/invite?channel=%23haskell.nix&hostname=irc.libera.chat&port=6697&ssl=1) channel on [irc.libera.chat](https://libera.chat/), or open an issue.
2844
2945## Related repos
3046
build.nix+30−14
@@ -5,9 +5,12 @@
55let
66 haskellNix = (import ./default.nix {});
77in
8−{ nixpkgs ? haskellNix.sources.nixpkgs
8+{ nixpkgs ? haskellNix.sources.nixpkgs-2111
99, nixpkgsArgs ? haskellNix.nixpkgsArgs
1010, pkgs ? import nixpkgs nixpkgsArgs
11+, evalPackages ? import nixpkgs nixpkgsArgs
12+, nixpkgsForHydra ? haskellNix.sources.nixpkgs-2105
13+, pkgsForHydra ? import nixpkgsForHydra (nixpkgsArgs // { inherit (pkgs) system; })
1114, ifdLevel ? 1000
1215, compiler-nix-name ? throw "No `compiler-nix-name` passed to build.nix"
1316}:
@@ -17,14 +20,23 @@ let
1720 buildHaskell = pkgs.buildPackages.haskell-nix;
1821 tool = buildHaskell.tool;
1922in rec {
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; };
2124
2225 tools = pkgs.lib.optionalAttrs (ifdLevel >= 3) (
23− pkgs.recurseIntoAttrs {
24− ghcide-020 = tool compiler-nix-name "ghcide" "0.2.0";
25− cabal-32 = tool compiler-nix-name "cabal" "3.2.0.0";
26− hls-051 = tool compiler-nix-name "haskell-language-server" "0.5.1";
27− }
26+ pkgs.recurseIntoAttrs ({
27+ cabal-latest = tool compiler-nix-name "cabal" { inherit evalPackages; };
28+ hlint-latest = tool compiler-nix-name "hlint" {
29+ inherit evalPackages;
30+ version = {
31+ "ghc865" = "3.2.8";
32+ "ghc882" = "3.3.6";
33+ "ghc883" = "3.3.6";
34+ "ghc884" = "3.3.6";
35+ }.compiler-nix-name or "latest";
36+ };
37+ } // pkgs.lib.optionalAttrs (!__elem compiler-nix-name ["ghc921" "ghc922" "ghc923" "ghc924"]) {
38+ hls-latest = tool compiler-nix-name "haskell-language-server" { inherit evalPackages; };
39+ })
2840 );
2941
3042 # Scripts for keeping Hackage and Stackage up to date, and CI tasks.
@@ -33,16 +45,16 @@ in rec {
3345 # are not pure).
3446 maintainer-scripts = pkgs.dontRecurseIntoAttrs {
3547 update-hackage = import ./scripts/update-hackage.nix {
36− inherit (pkgs) stdenv writeScript coreutils glibc git
37− openssh nix-prefetch-git gawk bash curl findutils;
48+ inherit (pkgs) stdenv lib writeScript coreutils glibc git
49+ openssh nixFlakes gawk bash curl findutils;
3850 # Update scripts use the internal nix-tools and cabal-install (compiled with a fixed GHC version)
3951 nix-tools = haskell.internal-nix-tools;
4052 cabal-install = haskell.internal-cabal-install;
4153 inherit (haskell) update-index-state-hashes;
4254 };
4355 update-stackage = haskell.callPackage ./scripts/update-stackage.nix {
44− inherit (pkgs) stdenv writeScript coreutils glibc git
45− openssh nix-prefetch-git gawk bash curl findutils;
56+ inherit (pkgs) stdenv lib writeScript coreutils glibc git
57+ openssh nixFlakes gawk bash curl findutils;
4658 # Update scripts use the internal nix-tools and cabal-install (compiled with a fixed GHC version)
4759 nix-tools = haskell.internal-nix-tools;
4860 cabal-install = haskell.internal-cabal-install;
@@ -56,7 +68,7 @@ in rec {
5668 # it uses `pkgs.buildPackages.callPackage` not `haskell.callPackage`
5769 # (We could pull in darcs from a known good haskell.nix for hydra to
5870 # use)
59− check-hydra = pkgs.buildPackages.callPackage ./scripts/check-hydra.nix {};
71+ check-hydra = pkgsForHydra.buildPackages.callPackage ./scripts/check-hydra.nix {};
6072 check-closure-size = pkgs.buildPackages.callPackage ./scripts/check-closure-size.nix {
6173 # Includes cabal-install since this is commonly used.
6274 nix-tools = pkgs.linkFarm "common-tools" [
@@ -65,13 +77,17 @@ in rec {
6577 ];
6678 };
6779 check-materialization-concurrency = pkgs.buildPackages.callPackage ./scripts/check-materialization-concurrency/check.nix {};
68− 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;
84+ };
6985 };
7086
7187 # These are pure parts of maintainer-script so they can be built by hydra
7288 # and added to the cache to speed up buildkite.
7389 maintainer-script-cache = pkgs.recurseIntoAttrs (
74− (pkgs.lib.optionalAttrs pkgs.stdenv.hostPlatform.isWindows {
90+ (pkgs.lib.optionalAttrs (pkgsForHydra.system == "x86_64-linux") {
7591 inherit (maintainer-scripts) check-hydra;
7692 })
7793 // (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)
33+
34+
35+emarProgram :: Program
36+emarProgram = simpleProgram "emar"
37+
38+buildEMCCLib :: PackageDescription -> LocalBuildInfo -> IO ()
39+buildEMCCLib desc lbi = do
40+ let verbosity = verbose
41+ -- get build dir
42+ createDirectoryIfMissingVerbose verbosity True ((buildDir lbi) </> "emcc")
43+ --
44+ case library desc of
45+ Just lib -> do
46+ -- Let's see if we are going to export anything. If not there is likely no point in compiling anything
47+ -- from the C code.
48+ names <- forM (jsSources . libBuildInfo $ lib) $ \src -> do
49+ unwords . concatMap (drop 2 . words) . filter (isPrefixOf "// EMCC:EXPORTED_FUNCTIONS") . lines <$> readFile src
50+
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]
59+
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 ]
65+
66+ let expLib = (buildDir lbi) </> "libEMCC" <> (unPackageName . pkgName . package $ desc) <> ".exported.js_a"
67+ writeFile expLib (unwords names)
68+
69+ -- if there's no lib, this is a fairly pointless exercise
70+ Nothing -> return ()
71+
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.
74+--
75+linkEMCCLib :: PackageDescription -> LocalBuildInfo -> IO ()
76+linkEMCCLib desc lbi = linkCLib ("emcc" </> "lib.js") desc lbi
77+
78+linkEMCCTHLib :: PackageDescription -> LocalBuildInfo -> IO ()
79+linkEMCCTHLib desc lbi = linkCLib ("th-support.js") desc lbi
80+
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)
85+ , l /= "m"
86+ , l /= "dl" ]
87+ libDirs = [ "-L" <> path | path <- concatMap IPI.libraryDirs (topologicalOrder $ installedPkgs lbi) ]
88+
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)
98+ print exff
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")]
106+ _ -> return libs
107+
108+ let dst = if libname == "emcc" </> "lib.js" then buildDir lbi
109+ -- who designed this shit in cabal?
110+ else case comp of
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) $
118+ [ "-o", dst'
119+ , "-s", "WASM=0"
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']"
124+ --
125+ , "-s", "EXPORTED_FUNCTIONS=['" <> intercalate "', '" exfns <> "']"
126+ ] ++ libs ++ libDirs ++ extraLibs
127+
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"
137+ _ -> print "EEk!"
138+ _ -> return ()
139+
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
153+ _ -> print "EEk!"
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
156+
157+--
158+-- Injecting emcc/lib.js as needed.
159+--
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
171+
172+ where
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
190+ }
191+
192+--
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
197+--
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
207+ where
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 }
214+
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
224+ where
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 }
231+
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
241+ where
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 }
248+--
249+-- Main
250+--
251+main :: IO ()
252+main = do
253+ args <- getArgs
254+ defaultMainWithHooksArgs emccHooks (injectEmar args)
255+ where
256+ injectEmar :: [String] -> [String]
257+ injectEmar [] = []
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
262+
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]
272+ }
builder/Setup.hsnew file+2
@@ -0,0 +1,2 @@
1+import Distribution.Simple
2+main = defaultMain
builder/comp-builder.nix+271−91
@@ -1,4 +1,4 @@
1−{ stdenv, buildPackages, ghc, lib, gobject-introspection ? null, haskellLib, makeConfigFiles, haddockBuilder, ghcForComponent, hsPkgs, compiler, runCommand, libffi, gmp, zlib, ncurses, numactl, nodejs }:
1+{ pkgs, stdenv, buildPackages, ghc, lib, gobject-introspection ? null, haskellLib, makeConfigFiles, haddockBuilder, ghcForComponent, hsPkgs, compiler, runCommand, libffi, gmp, zlib, ncurses, nodejs }@defaults:
22lib.makeOverridable (
33let self =
44{ componentId
@@ -23,6 +23,14 @@ let self =
2323, preInstall ? component.preInstall , postInstall ? component.postInstall
2424, preHaddock ? component.preHaddock , postHaddock ? component.postHaddock
2525, shellHook ? ""
26+, configureAllComponents ? component.configureAllComponents ||
27+ # When set, configure all the components in the package
28+ # (not just the one we are building).
29+ # Enable for tests in packages that use cabal-doctest.
30+ ( haskellLib.isTest componentId &&
31+ lib.any (x: x.identifier.name or "" == "cabal-doctest") package.setup-depends
32+ )
33+, allComponent # Used when `configureAllComponents` is set to get a suitable configuration.
2634
2735, build-tools ? component.build-tools
2836, pkgconfig ? component.pkgconfig
@@ -39,18 +47,22 @@ let self =
3947 # ghc's internal linker seems to be broken on x86.
4048 && !(stdenv.hostPlatform.isMusl && !stdenv.hostPlatform.isx86)
4149, enableDeadCodeElimination ? component.enableDeadCodeElimination
50+, writeHieFiles ? component.writeHieFiles
51+
52+, ghcOptions ? component.ghcOptions
53+, contentAddressed ? component.contentAddressed
4254
4355# Options for Haddock generation
4456, doHaddock ? component.doHaddock # Enable haddock and hoogle generation
4557, doHoogle ? component.doHoogle # Also build a hoogle index
4658, hyperlinkSource ? component.doHyperlinkSource # Link documentation to the source code
4759, quickjump ? component.doQuickjump # Generate an index for interactive documentation navigation
48−, keepSource ? component.keepSource # Build from `source` output in the store then delete `dist`
60+, keepSource ? component.keepSource || configureAllComponents # Build from `source` output in the store then delete `dist`
4961, setupHaddockFlags ? component.setupHaddockFlags
5062
5163# Profiling
5264, enableLibraryProfiling ? component.enableLibraryProfiling
53−, enableExecutableProfiling ? component.enableExecutableProfiling
65+, enableProfiling ? component.enableProfiling
5466, profilingDetail ? component.profilingDetail
5567
5668# Coverage
@@ -71,24 +83,62 @@ let self =
7183
7284# LLVM
7385, useLLVM ? ghc.useLLVM
86+, smallAddressSpace ? false
7487
7588}@drvArgs:
7689
7790let
91+ componentForSetup =
92+ if configureAllComponents
93+ then allComponent
94+ else component;
95+
96+ # Ignore attempts to include DWARF info when it is not possible
97+ enableDWARF = drvArgs.enableDWARF or false
98+ && stdenv.hostPlatform.isLinux
99+ && !haskellLib.isCrossHost
100+ && !stdenv.hostPlatform.isMusl
101+ && builtins.compareVersions defaults.ghc.version "8.10.2" >= 0;
102+
103+ ghc = (if enableDWARF then (x: x.dwarf) else (x: x)) (
104+ (if smallAddressSpace then (x: x.smallAddressSpace) else (x: x)) defaults.ghc);
105+ setup = (if enableDWARF then (x: x.dwarf) else (x: x)) (
106+ (if smallAddressSpace then (x: x.smallAddressSpace) else (x: x)) drvArgs.setup);
107+
78108 # TODO fix cabal wildcard support so hpack wildcards can be mapped to cabal wildcards
79− cleanSrc = if cabal-generator == "hpack" && !(package.cleanHpack or false)
80− then builtins.trace ("Cleaning component source not supported for hpack package: " + name) src
81− else haskellLib.cleanCabalComponent package component src;
109+ canCleanSource = !(cabal-generator == "hpack" && !(package.cleanHpack or false));
110+ # In order to support relative references to other packages we need to use
111+ # the `origSrc` diretory as the root `src` for the derivation.
112+ # We use `rootAndSubDir` here to split the cleaned source into a `cleanSrc.root`
113+ # path (that respects the filtering) and a `cleanSrc.subDir` that
114+ # is the sub directory in that root path that contains the package.
115+ # `cleanSrc.subDir` is used in `prePatch` and `lib/cover.nix`.
116+ cleanSrc = haskellLib.rootAndSubDir (if canCleanSource
117+ then haskellLib.cleanCabalComponent package componentForSetup "${componentId.ctype}-${componentId.cname}" src
118+ else
119+ # We can clean out the siblings though to at least avoid changes to other packages
120+ # from triggering a rebuild of this one.
121+ # Passing `subDir` but not `includeSiblings = true;` will exclude anything not
122+ # in the `subDir`.
123+ if src ? origSrc && src ? filter && src.origSubDir or "" != ""
124+ then haskellLib.cleanSourceWith {
125+ name = src.name or "source";
126+ src = src.origSrc;
127+ subDir = lib.removePrefix "/" src.origSubDir;
128+ inherit (src) filter;
129+ }
130+ else src);
82131
83132 nameOnly = "${package.identifier.name}-${componentId.ctype}-${componentId.cname}";
84133
85134 fullName = "${nameOnly}-${package.identifier.version}";
86135
87− needsProfiling = enableExecutableProfiling || enableLibraryProfiling;
136+ needsProfiling = enableProfiling || enableLibraryProfiling;
88137
89138 configFiles = makeConfigFiles {
139+ component = componentForSetup;
90140 inherit (package) identifier;
91− inherit component fullName flags needsProfiling;
141+ inherit fullName flags needsProfiling enableDWARF;
92142 };
93143
94144 enableFeature = enable: feature:
@@ -98,8 +148,21 @@ let
98148
99149 finalConfigureFlags = lib.concatStringsSep " " (
100150 [ "--prefix=$out"
101− "${haskellLib.componentTarget componentId}"
102− "$(cat ${configFiles}/configure-flags)"
151+ ] ++
152+ # We don't specify this in 'commonConfigureFlags', as these are also
153+ # used by haddock-builder.nix. If we do specify these options in
154+ # commonConfigureFlags, then the haddock-builder will fail, because it
155+ # sets its own outputs which *don't* include $hie
156+ lib.optionals writeHieFiles [
157+ "--ghc-option=-fwrite-ide-info" "--ghc-option=-hiedir$hie"
158+ ] ++
159+ (
160+ # If configureAllComponents is set we should not specify the component
161+ # and Setup will attempt to configure them all.
162+ if configureAllComponents
163+ then ["--enable-tests" "--enable-benchmarks"]
164+ else ["${haskellLib.componentTarget componentId}"]
165+ ) ++ [ "$(cat ${configFiles}/configure-flags)"
103166 ] ++ commonConfigureFlags);
104167
105168 # From nixpkgs 20.09, the pkg-config exe has a prefix matching the ghc one
@@ -117,7 +180,7 @@ let
117180 [ "--with-gcc=${stdenv.cc.targetPrefix}cc"
118181 ] ++
119182 # BINTOOLS
120− (if stdenv.hostPlatform.isLinux
183+ (if stdenv.hostPlatform.isLinux && !stdenv.hostPlatform.isAndroid # might be better check to see if cc is clang/llvm?
121184 # use gold as the linker on linux to improve link times
122185 then [
123186 "--with-ld=${stdenv.cc.bintools.targetPrefix}ld.gold"
@@ -134,7 +197,7 @@ let
134197 (disableFeature dontStrip "executable-stripping")
135198 (disableFeature dontStrip "library-stripping")
136199 (enableFeature enableLibraryProfiling "library-profiling")
137− (enableFeature enableExecutableProfiling "executable-profiling")
200+ (enableFeature enableProfiling "profiling")
138201 (enableFeature enableStatic "static")
139202 (enableFeature enableShared "shared")
140203 (enableFeature doCoverage "coverage")
@@ -142,13 +205,13 @@ let
142205 ] ++ lib.optionals (stdenv.hostPlatform.isMusl && (haskellLib.isExecutableType componentId)) [
143206 # These flags will make sure the resulting executable is statically linked.
144207 # If it uses other libraries it may be necessary for to add more
145− # `--ghc-option=-optl=-L` options to the `configurationFlags` of the
208+ # `--ghc-option=-optl=-L` options to the `configureFlags` of the
146209 # component.
147210 "--disable-executable-dynamic"
148211 "--ghc-option=-optl=-pthread"
149212 "--ghc-option=-optl=-static"
150213 ] ++ lib.optional enableSeparateDataOutput "--datadir=$data/share/${ghc.name}"
151− ++ lib.optional (enableLibraryProfiling || enableExecutableProfiling) "--profiling-detail=${profilingDetail}"
214+ ++ lib.optional (enableLibraryProfiling || enableProfiling) "--profiling-detail=${profilingDetail}"
152215 ++ lib.optional stdenv.hostPlatform.isLinux (enableFeature enableDeadCodeElimination "split-sections")
153216 ++ lib.optionals haskellLib.isCrossHost (
154217 map (arg: "--hsc2hs-option=" + arg) (["--cross-compile"] ++ lib.optionals (stdenv.hostPlatform.isWindows) ["--via-asm"])
@@ -157,14 +220,21 @@ let
157220 ++ (ghc.extraConfigureFlags or [])
158221 ++ lib.optional enableDebugRTS "--ghc-option=-debug"
159222 ++ lib.optional enableTSanRTS "--ghc-option=-tsan"
160− ++ lib.optional enableDWARF "--ghc-option=-g"
223+ ++ lib.optional enableDWARF "--ghc-option=-g3"
161224 ++ lib.optionals useLLVM [
162225 "--ghc-option=-fPIC" "--gcc-option=-fPIC"
163226 ]
227+ ++ map (o: ''--ghc${lib.optionalString (stdenv.hostPlatform.isGhcjs) "js"}-options="${o}"'') ghcOptions
228+ ++ lib.optional (
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)
235+ "--ghc-options=-j1"
164236 );
165237
166− setupGhcOptions = lib.optional (package.ghcOptions != null) '' --ghc${lib.optionalString (stdenv.hostPlatform.isGhcjs) "js"}-options="${package.ghcOptions}"'';
167−
168238 executableToolDepends =
169239 (lib.concatMap (c: if c.isHaskell or false
170240 then builtins.attrValues (c.components.exes or {})
@@ -175,7 +245,8 @@ let
175245 # work in the nix-shell. See ../doc/removing-with-package-wrapper.md.
176246 shellWrappers = ghcForComponent {
177247 componentName = fullName;
178− inherit configFiles;
248+ inherit configFiles enableDWARF;
249+ inherit (component) plugins;
179250 };
180251
181252 # In order to let shell hooks make package-specific things like Hoogle databases
@@ -190,7 +261,7 @@ let
190261
191262 # Attributes that are common to both the build and haddock derivations
192263 commonAttrs = {
193− src = cleanSrc;
264+ src = cleanSrc.root;
194265
195266 LANG = "en_US.UTF-8"; # GHC needs the locale configured during the Haddock phase.
196267 LC_ALL = "en_US.UTF-8";
@@ -199,14 +270,27 @@ let
199270
200271 SETUP_HS = setup + /bin/Setup;
201272
202− prePatch = if (cabalFile != null)
203− then ''cat ${cabalFile} > ${package.identifier.name}.cabal''
204− else
205− # When building hpack package we use the internal nix-tools
206− # (compiled with a fixed GHC version)
207− lib.optionalString (cabal-generator == "hpack") ''
208− ${buildPackages.haskell-nix.internal-nix-tools}/bin/hpack
209− '';
273+ prePatch =
274+ # If the package is in a sub directory `cd` there first.
275+ # In some cases the `cleanSrc.subDir` will be empty and the `.cabal`
276+ # file will be in the root of `src` (`cleanSrc.root`). This
277+ # will happen when:
278+ # * the .cabal file is in the projects `src.origSrc or src`
279+ # * the package src was overridden with a value that does not
280+ # include an `origSubDir`
281+ (lib.optionalString (cleanSrc.subDir != "") ''
282+ cd ${lib.removePrefix "/" cleanSrc.subDir}
283+ ''
284+ ) +
285+ (if cabalFile != null
286+ then ''cat ${cabalFile} > ${package.identifier.name}.cabal''
287+ else
288+ # When building hpack package we use the internal nix-tools
289+ # (compiled with a fixed GHC version)
290+ lib.optionalString (cabal-generator == "hpack") ''
291+ ${buildPackages.haskell-nix.internal-nix-tools}/bin/hpack
292+ ''
293+ );
210294 }
211295 # patches can (if they like) depend on the version and revision of the package.
212296 // lib.optionalAttrs (patches != []) {
@@ -226,14 +310,20 @@ let
226310
227311 haddock = haddockBuilder {
228312 inherit componentId component package flags commonConfigureFlags
229− commonAttrs revision setupGhcOptions doHaddock
313+ commonAttrs revision doHaddock
230314 doHoogle hyperlinkSource quickjump setupHaddockFlags
231315 needsProfiling configFiles preHaddock postHaddock pkgconfig;
232316
233317 componentDrv = drv;
234318 };
235319
236− drv = stdenv.mkDerivation (commonAttrs // {
320+ contentAddressedAttrs = lib.optionalAttrs contentAddressed {
321+ __contentAddressed = true;
322+ outputHashMode = "recursive";
323+ outputHashAlgo = "sha256";
324+ };
325+
326+ drv = stdenv.mkDerivation (commonAttrs // contentAddressedAttrs // {
237327 pname = nameOnly;
238328 inherit (package.identifier) version;
239329
@@ -245,10 +335,13 @@ let
245335 passthru = {
246336 inherit (package) identifier;
247337 config = component;
248− inherit configFiles executableToolDepends cleanSrc exeName;
338+ srcSubDir = cleanSrc.subDir;
339+ srcSubDirPath = cleanSrc.root + cleanSrc.subDir;
340+ inherit configFiles executableToolDepends exeName enableDWARF;
249341 exePath = drv + "/bin/${exeName}";
250342 env = shellWrappers;
251343 profiled = self (drvArgs // { enableLibraryProfiling = true; });
344+ dwarf = self (drvArgs // { enableDWARF = true; });
252345 } // lib.optionalAttrs (haskellLib.isLibrary componentId) ({
253346 inherit haddock;
254347 inherit (haddock) haddockDir; # This is null if `doHaddock = false`
@@ -261,22 +354,30 @@ let
261354 meta = {
262355 homepage = package.homepage or "";
263356 description = package.synopsis or "";
264− license =
265− let
266− license-map = import ../lib/cabal-licenses.nix lib;
267− in license-map.${package.license} or
268− (builtins.trace "WARNING: license \"${package.license}\" not found" license-map.LicenseRef-OtherLicense);
269− platforms = if platforms == null then stdenv.lib.platforms.all else platforms;
357+ license = haskellLib.cabalToNixpkgsLicense package.license;
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;
270367 };
271368
272369 propagatedBuildInputs =
273370 frameworks # Frameworks will be needed at link time
274371 # Not sure why pkgconfig needs to be propagatedBuildInputs but
275372 # for gi-gtk-hs it seems to help.
276− ++ builtins.concatLists pkgconfig;
373+ ++ builtins.concatLists pkgconfig
374+ ++ lib.optionals (stdenv.hostPlatform.isWindows)
375+ (lib.flatten component.libs
376+ ++ map haskellLib.dependToLib component.depends);
277377
278− buildInputs = component.libs
279− ++ map (d: d.components.library or d) component.depends;
378+ buildInputs = lib.optionals (!stdenv.hostPlatform.isWindows)
379+ (lib.flatten component.libs
380+ ++ map haskellLib.dependToLib component.depends);
280381
281382 nativeBuildInputs =
282383 [shellWrappers buildPackages.removeReferencesTo]
@@ -284,14 +385,24 @@ let
284385
285386 outputs = ["out" ]
286387 ++ (lib.optional enableSeparateDataOutput "data")
287− ++ (lib.optional keepSource "source");
288−
289− configurePhase =
388+ ++ (lib.optional keepSource "source")
389+ ++ (lib.optional writeHieFiles "hie");
390+
391+ prePatch =
392+ # emcc is very slow if it cannot cache stuff in $HOME
393+ (lib.optionalString (stdenv.hostPlatform.isGhcjs) ''
394+ export HOME=$(mktemp -d)
395+ '') +
396+ (lib.optionalString (!canCleanSource) ''
397+ echo "Cleaning component source not supported, leaving it un-cleaned"
398+ '') +
290399 (lib.optionalString keepSource ''
291400 cp -r . $source
292401 cd $source
293402 chmod -R +w .
294− '') + ''
403+ '') + commonAttrs.prePatch;
404+
405+ configurePhase = ''
295406 runHook preConfigure
296407 echo Configure flags:
297408 printf "%q " ${finalConfigureFlags}
@@ -300,12 +411,36 @@ let
300411 runHook postConfigure
301412 '';
302413
303− buildPhase = ''
304− runHook preBuild
305− # https://gitlab.haskell.org/ghc/ghc/issues/9221
306− $SETUP_HS build ${haskellLib.componentTarget componentId} -j$(($NIX_BUILD_CORES > 4 ? 4 : $NIX_BUILD_CORES)) ${lib.concatStringsSep " " (setupBuildFlags ++ setupGhcOptions)}
307− runHook postBuild
308− '';
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[@]}"
422+ '') +
423+ # The following could be refactored but would lead to many rebuilds
424+
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 ''
430+ runHook preBuild
431+ $SETUP_HS build ${haskellLib.componentTarget componentId} -j1 ${lib.concatStringsSep " " setupBuildFlags}
432+ runHook postBuild
433+ '' else if stdenv.hostPlatform.isGhcjs then ''
434+ runHook preBuild
435+ # https://gitlab.haskell.org/ghc/ghc/issues/9221
436+ $SETUP_HS build ${haskellLib.componentTarget componentId} ${lib.concatStringsSep " " setupBuildFlags}
437+ runHook postBuild
438+ '' else ''
439+ runHook preBuild
440+ # https://gitlab.haskell.org/ghc/ghc/issues/9221
441+ $SETUP_HS build ${haskellLib.componentTarget componentId} -j$(($NIX_BUILD_CORES > 4 ? 4 : $NIX_BUILD_CORES)) ${lib.concatStringsSep " " setupBuildFlags}
442+ runHook postBuild
443+ '');
309444
310445 # Note: Cabal does *not* copy test executables during the `install` phase.
311446 #
@@ -319,49 +454,65 @@ let
319454 target-pkg-and-db = "${ghc.targetPrefix}ghc-pkg -v0 --package-db $out/package.conf.d";
320455 in ''
321456 runHook preInstall
322− $SETUP_HS copy ${lib.concatStringsSep " " setupInstallFlags}
457+ $SETUP_HS copy ${lib.concatStringsSep " " (
458+ setupInstallFlags
459+ ++ lib.optional configureAllComponents
460+ (haskellLib.componentTarget componentId)
461+ )}
323462 ${lib.optionalString (haskellLib.isLibrary componentId) ''
324463 $SETUP_HS register --gen-pkg-config=${name}.conf
325464 ${ghc.targetPrefix}ghc-pkg -v0 init $out/package.conf.d
326− if [ -d "${name}.conf" ]; then
327− for pkg in ${name}.conf/*; do
328− ${ghc.targetPrefix}ghc-pkg -v0 --package-db ${configFiles}/${configFiles.packageCfgDir} -f $out/package.conf.d register "$pkg"
329− done
330− elif [ -e "${name}.conf" ]; then
331− ${ghc.targetPrefix}ghc-pkg -v0 --package-db ${configFiles}/${configFiles.packageCfgDir} -f $out/package.conf.d register ${name}.conf
332− fi
465+ ${ghc.targetPrefix}ghc-pkg -v0 --package-db ${configFiles}/${configFiles.packageCfgDir} -f $out/package.conf.d register ${name}.conf
333466
334467 mkdir -p $out/exactDep
335468 touch $out/exactDep/configure-flags
336469 touch $out/exactDep/cabal.config
337470 touch $out/envDep
338471
339− if id=$(${target-pkg-and-db} field ${package.identifier.name} id --simple-output); then
340− echo "--dependency=${package.identifier.name}=$id" >> $out/exactDep/configure-flags
341− echo "package-id $id" >> $out/envDep
342− elif id=$(${target-pkg-and-db} field "z-${package.identifier.name}-z-*" id --simple-output); then
343− name=$(${target-pkg-and-db} field "z-${package.identifier.name}-z-*" name --simple-output)
344− # so we are dealing with a sublib. As we build sublibs separately, the above
345− # query should be safe.
346− echo "--dependency=''${name#z-${package.identifier.name}-z-}=$id" >> $out/exactDep/configure-flags
347− else
348− echo 'ERROR: ${package.identifier.name} id could not be found with ${target-pkg-and-db}'
349− exit 0
350− fi
351− if ver=$(${target-pkg-and-db} field ${package.identifier.name} version --simple-output); then
352− echo "constraint: ${package.identifier.name} == $ver" >> $out/exactDep/cabal.config
353− echo "constraint: ${package.identifier.name} installed" >> $out/exactDep/cabal.config
354− else
355− echo 'ERROR: ${package.identifier.name} version could not be found with ${target-pkg-and-db}'
356− exit 0
357− fi
472+ ${ # The main library in a package has the same name as the package
473+ if package.identifier.name == componentId.cname
474+ then ''
475+ if id=$(${target-pkg-and-db} field ${package.identifier.name} id --simple-output); then
476+ echo "--dependency=${package.identifier.name}=$id" >> $out/exactDep/configure-flags
477+ echo "package-id $id" >> $out/envDep
478+ else
479+ echo 'ERROR: ${package.identifier.name} id could not be found with ${target-pkg-and-db}'
480+ exit 1
481+ fi
482+ if ver=$(${target-pkg-and-db} field ${package.identifier.name} version --simple-output); then
483+ echo "constraint: ${package.identifier.name} == $ver" >> $out/exactDep/cabal.config
484+ echo "constraint: ${package.identifier.name} installed" >> $out/exactDep/cabal.config
485+ else
486+ echo 'ERROR: ${package.identifier.name} version could not be found with ${target-pkg-and-db}'
487+ exit 1
488+ fi
489+ ''
490+ else
491+ # If the component name is not the package name this must be a sublib.
492+ # As we build sublibs separately, the following query should be safe.
493+ (''
494+ if id=$(${target-pkg-and-db} field "z-${package.identifier.name}-z-*" id --simple-output); then
495+ name=$(${target-pkg-and-db} field "z-${package.identifier.name}-z-*" name --simple-output)
496+ echo "--dependency=''${name#z-${package.identifier.name}-z-}=$id" >> $out/exactDep/configure-flags
497+ ''
498+ # Allow `package-name:sublib-name` to work in `build-depends`
499+ # by adding the same `--dependency` again, but with the package
500+ # name added.
501+ + ''
502+ echo "--dependency=${package.identifier.name}:''${name#z-${package.identifier.name}-z-}=$id" >> $out/exactDep/configure-flags
503+ else
504+ echo 'ERROR: ${package.identifier.name} id could not be found with ${target-pkg-and-db}'
505+ exit 1
506+ fi
507+ '')
508+ }
358509 ''}
359510 ${(lib.optionalString (haskellLib.isTest componentId || haskellLib.isBenchmark componentId) ''
360511 mkdir -p $out/bin
361512 if [ -f ${testExecutable} ]; then
362513 mkdir -p $(dirname $out/bin/${exeName})
363514 ${if stdenv.hostPlatform.isGhcjs then ''
364− 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}
365516 chmod +x $out/bin/${exeName}
366517 '' else ''
367518 cp -r ${testExecutable} $(dirname $out/bin/${exeName})
@@ -369,22 +520,22 @@ let
369520 fi
370521 '')
371522 # In case `setup copy` did not create this
372− + (lib.optionalString enableSeparateDataOutput "mkdir -p $data")
373− + (lib.optionalString (stdenv.hostPlatform.isWindows && (haskellLib.mayHaveExecutable componentId)) ''
523+ + (lib.optionalString enableSeparateDataOutput ''
524+ mkdir -p $data
525+ '')
526+ + (lib.optionalString (stdenv.hostPlatform.isWindows && (haskellLib.mayHaveExecutable componentId)) (''
374527 echo "Symlink libffi and gmp .dlls ..."
375528 for p in ${lib.concatStringsSep " " [ libffi gmp ]}; do
376529 find "$p" -iname '*.dll' -exec ln -s {} $out/bin \;
377530 done
531+ ''
378532 # symlink all .dlls into the local directory.
379− # we ask ghc-pkg for *all* dynamic-library-dirs and then iterate over the unique set
380− # to symlink over dlls as needed.
381− echo "Symlink library dependencies..."
382− for libdir in $(x86_64-pc-mingw32-ghc-pkg --package-db=$packageConfDir field "*" dynamic-library-dirs --simple-output|xargs|sed 's/ /\n/g'|sort -u); do
383− if [ -d "$libdir" ]; then
384− find "$libdir" -iname '*.dll' -exec ln -s {} $out/bin \;
385− fi
533+ + ''
534+ for p in $pkgsHostTargetAsString; do
535+ find "$p" -iname '*.dll' -exec ln -s {} $out/bin \;
536+ find "$p" -iname '*.dll.a' -exec ln -s {} $out/bin \;
386537 done
387− '')
538+ ''))
388539 + (lib.optionalString doCoverage ''
389540 mkdir -p $out/share
390541 cp -r dist/hpc $out/share
@@ -392,12 +543,41 @@ let
392543 '')
393544 }
394545 runHook postInstall
395− '' + (lib.optionalString keepSource ''
396− rm -rf dist
546+ '' + (
547+ # Keep just the autogen files and package.conf.inplace package
548+ # DB (probably empty unless this is a library component).
549+ # We also have to remove any refernces to $out to avoid
550+ # circular references.
551+ lib.optionalString (configureAllComponents || keepSource) ''
552+ mv dist dist-tmp-dir
553+ mkdir -p dist/build
554+ if [ -d dist-tmp-dir/build/${componentId.cname}/autogen ]; then
555+ mv dist-tmp-dir/build/${componentId.cname}/autogen dist/build/
556+ elif [ -d dist-tmp-dir/build/autogen ]; then
557+ mv dist-tmp-dir/build/autogen dist/build/
558+ fi
559+ mv dist-tmp-dir/package.conf.inplace dist/
560+ if [ -d dist/build/autogen ]; then
561+ remove-references-to -t $out dist/build/autogen/*
562+ fi
563+ rm -rf dist-tmp-dir
564+ ''
565+ ) + (lib.optionalString (keepSource && haskellLib.isLibrary componentId) ''
566+ remove-references-to -t $out ${name}.conf
397567 '') + (lib.optionalString (haskellLib.isTest componentId) ''
398568 echo The test ${package.identifier.name}.components.tests.${componentId.cname} was built. To run the test build ${package.identifier.name}.checks.${componentId.cname}.
399569 '');
400570
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"
575+ else
576+ echo "ERROR: $out/package.conf.d/${name}-*.conf was not created"
577+ exit 1
578+ fi
579+ '';
580+
401581 shellHook = ''
402582 export PATH="${shellWrappers}/bin:$PATH"
403583 ${shellHookApplied}
@@ -410,7 +590,7 @@ let
410590 preBuild postBuild
411591 preInstall postInstall;
412592 }
413− // lib.optionalAttrs (hardeningDisable != []) {
414− inherit hardeningDisable;
593+ // lib.optionalAttrs (hardeningDisable != [] || stdenv.hostPlatform.isMusl) {
594+ hardeningDisable = hardeningDisable ++ lib.optional stdenv.hostPlatform.isMusl "pie";
415595 });
416596in drv; in self)
builder/default.nix+24−16
@@ -1,4 +1,4 @@
1−{ pkgs, buildPackages, stdenv, lib, haskellLib, ghc, fetchurl, pkgconfig, nonReinstallablePkgs, hsPkgs, compiler }:
1+{ pkgs, buildPackages, evalPackages, stdenv, lib, haskellLib, ghc, compiler-nix-name, fetchurl, pkgconfig, nonReinstallablePkgs, hsPkgs, compiler }:
22
33let
44 # Builds a single component of a package.
@@ -17,8 +17,8 @@ let
1717 # in the native case, it would be the same in the cross case however
1818 # we *really* want to build the Setup.hs on the build machine and not
1919 # have the stdenv confuse it with the target/host env.
20− inherit (buildPackages) stdenv;
21− inherit buildPackages pkgconfig;
20+ inherit (buildPackages) stdenv pkgconfig;
21+ inherit buildPackages;
2222 inherit haskellLib nonReinstallablePkgs makeSetupConfigFiles;
2323 };
2424
@@ -26,8 +26,9 @@ let
2626 # component builder and for nix-shells.
2727 ghcForComponent = import ./ghc-for-component-wrapper.nix {
2828 inherit lib ghc haskellLib;
29− inherit (buildPackages) stdenv runCommand makeWrapper;
30− inherit (buildPackages.xorg) lndir;
29+ inherit (buildPackages) stdenv;
30+ inherit (buildPackages.buildPackages) runCommand makeWrapper;
31+ inherit (buildPackages.buildPackages.xorg) lndir;
3132 };
3233
3334 # Builds a derivation which contains a ghc package-db of
@@ -44,22 +45,29 @@ let
4445
4546 hoogleLocal = let
4647 nixpkgsHoogle = import (pkgs.path + /pkgs/development/haskell-modules/hoogle.nix);
47− in { packages ? [], hoogle ? pkgs.buildPackages.haskell-nix.tool compiler.nix-name "hoogle" {
48− version = "5.0.17.15";
48+ in { packages ? [], hoogle ? pkgs.buildPackages.haskell-nix.tool "ghc8107" "hoogle" {
49+ inherit evalPackages;
50+ version = "5.0.18.3";
4951 index-state = pkgs.haskell-nix.internalHackageIndexState;
5052 }
5153 }:
52− haskellLib.weakCallPackage pkgs nixpkgsHoogle {
53− # For musl we can use haddock from the buildGHC
54− ghc = if stdenv.hostPlatform.isLinux && stdenv.targetPlatform.isMusl && !haskellLib.isNativeMusl
55− then ghc.buildGHC
56− else ghc;
57− inherit packages hoogle;
58− };
54+ let
55+ haskellPackages = {
56+ # For musl we can use haddock from the buildGHC
57+ ghc = if stdenv.hostPlatform.isLinux && stdenv.targetPlatform.isMusl && !haskellLib.isNativeMusl
58+ then ghc.buildGHC
59+ else ghc;
60+ inherit packages hoogle;
61+ };
62+ in if lib.versionAtLeast lib.trivial.release "22.05"
63+ then haskellLib.weakCallPackage pkgs nixpkgsHoogle {
64+ inherit haskellPackages;
65+ } (p: p.packages)
66+ else haskellLib.weakCallPackage pkgs nixpkgsHoogle haskellPackages;
5967
6068 # Same as haskellPackages.shellFor in nixpkgs.
6169 shellFor = haskellLib.weakCallPackage pkgs ./shell-for.nix {
62− inherit hsPkgs ghcForComponent makeConfigFiles hoogleLocal haskellLib buildPackages compiler;
70+ inherit hsPkgs ghcForComponent makeConfigFiles hoogleLocal haskellLib buildPackages evalPackages compiler;
6371 inherit (buildPackages) glibcLocales;
6472 };
6573
@@ -75,7 +83,7 @@ in {
7583 # Build a Haskell package from its config.
7684 # TODO: this pkgs is the adjusted pkgs, but pkgs.pkgs is unadjusted
7785 build-package = haskellLib.weakCallPackage pkgs ./hspkg-builder.nix {
78− inherit haskellLib ghc comp-builder setup-builder;
86+ inherit haskellLib ghc compiler-nix-name comp-builder setup-builder;
7987 };
8088
8189 inherit shellFor makeConfigFiles;
builder/ghc-for-component-wrapper.nix+65−13
@@ -7,14 +7,18 @@
77# database.
88
99{ lib, stdenv, ghc, runCommand, lndir, makeWrapper, haskellLib
10−}:
10+}@defaults:
1111
1212{ componentName # Full derivation name of the component
1313, configFiles # The component's "config" derivation
1414, postInstall ? ""
15+, enableDWARF
16+, plugins
1517}:
1618
1719let
20+ ghc = if enableDWARF then defaults.ghc.dwarf else defaults.ghc;
21+
1822 inherit (configFiles) targetPrefix ghcCommand ghcCommandCaps packageCfgDir;
1923 libDir = "$out/${configFiles.libDir}";
2024 docDir = "$out/share/doc/ghc/html";
@@ -34,27 +38,70 @@ in runCommand "${componentName}-${ghc.name}-env" {
3438 ''
3539 . ${makeWrapper}/nix-support/setup-hook
3640
37− # Start with a ghc...
41+ ''
42+ # Start with a ghc and remove all of the package directories
43+ + ''
3844 mkdir -p $out/bin
3945 ${lndir}/bin/lndir -silent ${ghc} $out
40− # ... remove all of the package directories
4146 rm -rf ${libDir}/*/
42− # ... but retain the lib/ghc/bin directory. This contains `unlit' and friends.
47+ ''
48+ # ... but retain the lib/ghc/bin directory. This contains `unlit' and friends.
49+ + ''
4350 ln -s ${ghc}/lib/${ghcCommand}-${ghc.version}/bin ${libDir}
44− # ... and the ghcjs shim's if they are available ...
51+ ''
52+ # ... and the ghcjs shim's if they are available ...
53+ + ''
4554 if [ -d ${ghc}/lib/${ghcCommand}-${ghc.version}/shims ]; then
4655 ln -s ${ghc}/lib/${ghcCommand}-${ghc.version}/shims ${libDir}
4756 fi
48− # ... and node modules ...
57+ ''
58+ # ... and node modules ...
59+ + ''
4960 if [ -d ${ghc}/lib/${ghcCommand}-${ghc.version}/ghcjs-node ]; then
5061 ln -s ${ghc}/lib/${ghcCommand}-${ghc.version}/ghcjs-node ${libDir}
5162 fi
52− # Replace the package database with the one from target package config.
63+ ''
64+ # Replace the package database with the one from target package config.
65+ + ''
5366 ln -s ${configFiles}/${packageCfgDir} $out/${packageCfgDir}
5467
55− # Wrap compiler executables with correct env variables.
56− # The NIX_ variables are used by the patched Paths_ghc module.
68+ ''
69+ # Set the GHC_PLUGINS environment variable according to the plugins for the component.
70+ # GHC will automatically load the relevant symbols from the given libraries and
71+ # initialize them with the given arguments.
72+ #
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.
76+ + ''
77+ GHC_PLUGINS="["
78+ LIST_PREFIX=""
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}\",["
85+ LIST_PREFIX=""
86+ ${builtins.concatStringsSep "\n" (map (arg: ''
87+ GHC_PLUGINS="''${GHC_PLUGINS}''${LIST_PREFIX}\"${arg}\""
88+ LIST_PREFIX=","
89+ '') plugin.args)}
90+ GHC_PLUGINS="''${GHC_PLUGINS}])"
91+ LIST_PREFIX=","
92+ '') plugins)}
93+ GHC_PLUGINS="''${GHC_PLUGINS}]"
94+
95+ ''
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.
98+ + ''
99+ echo "${ghc.buildGHC or ghc}/lib/${(ghc.buildGHC or ghc).name}" > "${libDir}/ghc_libdir"
57100
101+ ''
102+ # Wrap compiler executables with correct env variables.
103+ # The NIX_ variables are used by the patched Paths_ghc module.
104+ + ''
58105 for prg in ${ghcCommand} ${ghcCommand}i ${ghcCommand}-${ghc.version} ${ghcCommand}i-${ghc.version}; do
59106 if [[ -x "${ghc}/bin/$prg" ]]; then
60107 rm -f $out/bin/$prg
@@ -63,6 +110,7 @@ in runCommand "${componentName}-${ghc.name}-env" {
63110 --set "NIX_${ghcCommandCaps}" "$out/bin/${ghcCommand}" \
64111 --set "NIX_${ghcCommandCaps}PKG" "$out/bin/${ghcCommand}-pkg" \
65112 --set "NIX_${ghcCommandCaps}_DOCDIR" "${docDir}" \
113+ --set "GHC_PLUGINS" "$GHC_PLUGINS" \
66114 --set "NIX_${ghcCommandCaps}_LIBDIR" "${libDir}"
67115 fi
68116 done
@@ -75,11 +123,14 @@ in runCommand "${componentName}-${ghc.name}-env" {
75123 --set "NIX_${ghcCommandCaps}" "$out/bin/${ghcCommand}" \
76124 --set "NIX_${ghcCommandCaps}PKG" "$out/bin/${ghcCommand}-pkg" \
77125 --set "NIX_${ghcCommandCaps}_DOCDIR" "${docDir}" \
126+ --set "GHC_PLUGINS" "$GHC_PLUGINS" \
78127 --set "NIX_${ghcCommandCaps}_LIBDIR" "${libDir}"
79128 fi
80129 done
81130
82− # Wrap haddock, if the base GHC provides it.
131+ ''
132+ # Wrap haddock, if the base GHC provides it.
133+ + ''
83134 if [[ -x "${haddock}/bin/haddock" ]]; then
84135 rm -f $out/bin/haddock
85136 makeWrapper ${haddock}/bin/haddock $out/bin/haddock \
@@ -87,9 +138,10 @@ in runCommand "${componentName}-${ghc.name}-env" {
87138 --set "NIX_${ghcCommandCaps}_LIBDIR" "${libDir}"
88139 fi
89140
90− # Point ghc-pkg to the package database of the component using the
91− # --global-package-db flag.
92−
141+ ''
142+ # Point ghc-pkg to the package database of the component using the
143+ # --global-package-db flag.
144+ + ''
93145 for prg in ${ghcCommand}-pkg ${ghcCommand}-pkg-${ghc.version}; do
94146 if [[ -x "${ghc}/bin/$prg" ]]; then
95147 rm -f $out/bin/$prg
builder/haddock-builder.nix+4−2
@@ -16,7 +16,6 @@
1616, hyperlinkSource
1717, quickjump
1818, setupHaddockFlags
19−, setupGhcOptions
2019
2120, needsProfiling
2221, componentDrv
@@ -42,6 +41,7 @@ let
4241 inherit (package) identifier;
4342 inherit component fullName flags needsProfiling;
4443 chooseDrv = p: p.haddock;
44+ inherit (componentDrv) enableDWARF;
4545 };
4646
4747 finalConfigureFlags = lib.concatStringsSep " " (
@@ -55,6 +55,8 @@ let
5555 shellWrappers = ghcForComponent {
5656 componentName = fullName;
5757 configFiles = docsConfigFiles;
58+ inherit (componentDrv) enableDWARF;
59+ inherit (component) plugins;
5860 };
5961
6062 drv = stdenv.mkDerivation (commonAttrs // {
@@ -108,7 +110,7 @@ let
108110 ${lib.optionalString doHoogle "--hoogle"} \
109111 ${lib.optionalString hyperlinkSource "--hyperlink-source"} \
110112 ${lib.optionalString quickjump "--quickjump"} \
111− ${lib.concatStringsSep " " (setupHaddockFlags ++ setupGhcOptions)}
113+ ${lib.concatStringsSep " " setupHaddockFlags}
112114 }
113115 runHook postHaddock
114116 '';
builder/hspkg-builder.nix+44−14
@@ -1,4 +1,4 @@
1−{ pkgs, buildPackages, stdenv, lib, haskellLib, ghc, fetchurl, runCommand, comp-builder, setup-builder }:
1+{ pkgs, buildPackages, stdenv, lib, haskellLib, ghc, compiler-nix-name, fetchurl, runCommand, comp-builder, setup-builder }:
22
33config:
44{ flags
@@ -23,21 +23,44 @@ assert (if ghc.isHaskellNixCompiler or false then true
2323 + pkgs.lib.optionalString (name != null) (" for " + name)));
2424
2525let
26− cabalFile = if revision == null || revision == 0 then null else
26+ # Some packages bundled with GHC are not the same as they are in hackage.
27+ bundledSrc = {
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;
33+ cabalFile = if revision == null || revision == 0 || bundledSrc != null then null else
2734 fetchurl {
2835 name = "${name}-${toString revision}.cabal";
2936 url = "https://hackage.haskell.org/package/${name}/revision/${toString revision}.cabal";
3037 sha256 = revisionSha256;
3138 };
3239
33− defaultSetupSrc = builtins.toFile "Setup.hs" ''
34− import Distribution.Simple
35− main = defaultMain
36− '';
37− defaultSetup = setup-builder {
40+ defaultSetupSrc = if stdenv.hostPlatform.isGhcjs then ./Setup.ghcjs.hs else ./Setup.hs;
41+
42+ # This is the `Cabal` library that was built for `cabal-install` to use.
43+ # It makes sense to use this version (when possible) because it will match the behavior of
44+ # building with `cabal-install` (including fixes that may not be in the
45+ # version of Cabal bundled with GHC).
46+ cabalFromCabalInstall = buildPackages.haskell-nix.cabal-install-unchecked.${compiler-nix-name}.project.hsPkgs.Cabal.components.library;
47+
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
52+ stdenv.buildPlatform != stdenv.hostPlatform
53+ ||
54+ # These are the dependencies of `Cabal`
55+ !builtins.elem package.identifier.name
56+ ["nix-tools" "alex" "happy" "hscolour" "Cabal" "bytestring" "aeson" "time"
57+ "filepath" "base-compat-batteries" "base-compat" "unix" "directory" "transformers"
58+ "containers" "binary" "mtl" "text" "process" "parsec"];
59+
60+ defaultSetup = setup-builder ({
3861 name = "${ghc.targetPrefix}default-Setup";
3962 component = {
40− depends = config.setup-depends;
63+ depends = config.setup-depends ++ lib.optional useCabalFromCabalInstall cabalFromCabalInstall;
4164 libs = [];
4265 frameworks = [];
4366 doExactConfig = false;
@@ -65,12 +88,19 @@ let
6588 synopsis = null;
6689 license = "MIT";
6790 };
68− src = null; cleanSrc = buildPackages.runCommand "default-Setup-src" {} ''
91+ src = null;
92+ cleanSrc = buildPackages.runCommand "default-Setup-src" {} ''
6993 mkdir $out
7094 cat ${defaultSetupSrc} > $out/Setup.hs
7195 '';
7296 inherit defaultSetupSrc;
73− };
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 = [];
103+ });
74104
75105 # buildPackages.runCommand "default-Setup" { nativeBuildInputs = [(ghc.passthru.buildGHC or ghc)]; } ''
76106 # cat ${defaultSetupSrc} > Setup.hs
@@ -90,18 +120,18 @@ let
90120 inherit (pkg) preUnpack postUnpack;
91121 };
92122
93− buildComp = componentId: component: comp-builder {
94− inherit componentId component package name src flags setup cabalFile cabal-generator patches revision
123+ buildComp = allComponent: componentId: component: comp-builder {
124+ inherit allComponent componentId component package name src flags setup cabalFile cabal-generator patches revision
95125 shellHook
96126 ;
97127 };
98128
99129in rec {
100− components = haskellLib.applyComponents buildComp pkg;
130+ components = haskellLib.applyComponents (buildComp pkg.allComponent) pkg;
101131 checks = pkgs.recurseIntoAttrs (builtins.mapAttrs
102132 (_: d: haskellLib.check d)
103133 (lib.filterAttrs (_: d: d.config.doCheck) components.tests));
104− inherit (package) identifier detailLevel isLocal;
134+ inherit (package) identifier detailLevel isLocal isProject buildType;
105135 inherit setup cabalFile;
106136 isHaskell = true;
107137 inherit src;
builder/make-config-files.nix+36−12
@@ -1,8 +1,14 @@
1−{ stdenv, lib, haskellLib, ghc, nonReinstallablePkgs, runCommand, writeText, writeScript }:
1+{ stdenv, lib, haskellLib, ghc, nonReinstallablePkgs, runCommand, writeText, writeScript }@defaults:
22
3−{ identifier, component, fullName, flags ? {}, needsProfiling ? false, chooseDrv ? drv: drv }:
3+{ identifier, component, fullName, flags ? {}, needsProfiling ? false, enableDWARF ? false, chooseDrv ? drv: drv, nonReinstallablePkgs ? defaults.nonReinstallablePkgs }:
44
55let
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));
9+
10+ ghc = if enableDWARF then defaults.ghc.dwarf else defaults.ghc;
11+
612 flagsAndConfig = field: xs: lib.optionalString (xs != []) ''
713 echo ${lib.concatStringsSep " " (map (x: "--${field}=${x}") xs)} >> $out/configure-flags
814 echo "${field}: ${lib.concatStringsSep " " xs}" >> $out/cabal.config
@@ -47,9 +53,10 @@ let
4753 # TODO investigate why this is needed
4854 # TODO find out why p ? configFiles helps (for instance for `R1909.aarch64-unknown-linux-gnu.tests.cabal-22.run.x86_64-linux`)
4955 libDeps = map chooseDrv (
50− (if needsProfiling then (x: map (p: p.profiled or p) x) else x: x)
56+ (if enableDWARF then (x: map (p: p.dwarf or p) x) else x: x)
57+ ((if needsProfiling then (x: map (p: p.profiled or p) x) else x: x)
5158 (lib.filter (p: (p ? configFiles) && p.configFiles.targetPrefix == ghc.targetPrefix)
52− (map getLibComponent component.depends))
59+ (map getLibComponent component.depends)))
5360 );
5461 cfgFiles =
5562 let xs = map
@@ -78,27 +85,44 @@ let
7885 ${target-pkg} init $out/${packageCfgDir}
7986
8087 ${lib.concatStringsSep "\n" (lib.mapAttrsToList flagsAndConfig {
81− "extra-lib-dirs" = map (p: "${lib.getLib p}/lib") component.libs;
82− "extra-include-dirs" = map (p: "${lib.getDev p}/include") component.libs;
83− "extra-framework-dirs" = map (p: "${p}/Library/Frameworks") component.frameworks;
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
90+ ++ lib.optionals (stdenv.hostPlatform.isWindows)
91+ (map (p: "${lib.getBin p}/bin")
92+ (lib.flatten component.libs ++ lib.concatLists component.pkgconfig));
93+ "extra-include-dirs" = map (p: "${lib.getDev p}/include") (lib.flatten component.libs);
94+ "extra-framework-dirs" = lib.optionals (stdenv.hostPlatform.isDarwin)
95+ (map (p: "${p}/Library/Frameworks") component.frameworks);
8496 })}
8597
8698 ghc=${ghc}
8799 ${ # Copy over the nonReinstallablePkgs from the global package db.
88100 ''
89− for p in ${lib.concatStringsSep " " nonReinstallablePkgs}; do
101+ for p in ${lib.concatStringsSep " " nonReinstallablePkgs'}; do
90102 find $ghc/lib/${ghc.name}/package.conf.d -name $p'*.conf' -exec cp -f {} $out/${packageCfgDir} \;
91103 done
92104 ''}
93105
94106 for l in "${cfgFiles}"; do
95107 if [ -n "$l" ]; then
96− cp -f "$l/${packageCfgDir}/"*.conf $out/${packageCfgDir}
108+ files=("$l/${packageCfgDir}/"*.conf)
109+ if (( ''${#files[@]} )); then
110+ cp -f "''${files[@]}" $out/${packageCfgDir}
111+ else
112+ echo "$l/${packageCfgDir} didn't contain any *.conf files!"
113+ exit 1
114+ fi
97115 fi
98116 done
99117 for l in "${libs}"; do
100118 if [ -n "$l" ]; then
101− cp -f "$l/package.conf.d/"*.conf $out/${packageCfgDir}
119+ files=("$l/package.conf.d/"*.conf)
120+ if (( ''${#files[@]} )); then
121+ cp -f "''${files[@]}" $out/${packageCfgDir}
122+ else
123+ echo "$l/package.conf.d didn't contain any *.conf files!"
124+ exit 1
125+ fi
102126 fi
103127 done
104128
@@ -133,13 +157,13 @@ let
133157 cat $p/exactDep/cabal.config >> $out/cabal.config
134158 ''}
135159 done
136− for p in ${lib.concatStringsSep " " (lib.remove "ghc" nonReinstallablePkgs)}; do
160+ for p in ${lib.concatStringsSep " " (lib.remove "ghc" nonReinstallablePkgs')}; do
137161 if [ -e $ghc/envDeps/$p ]; then
138162 cat $ghc/envDeps/$p >> $out/ghc-environment
139163 fi
140164 done
141165 '' + lib.optionalString component.doExactConfig ''
142− for p in ${lib.concatStringsSep " " nonReinstallablePkgs}; do
166+ for p in ${lib.concatStringsSep " " nonReinstallablePkgs'}; do
143167 if [ -e $ghc/exactDeps/$p ]; then
144168 cat $ghc/exactDeps/$p/configure-flags >> $out/configure-flags
145169 cat $ghc/exactDeps/$p/cabal.config >> $out/cabal.config
builder/setup-builder.nix+33−18
@@ -1,21 +1,29 @@
1−{ stdenv, lib, buildPackages, haskellLib, ghc, nonReinstallablePkgs, hsPkgs, makeSetupConfigFiles, pkgconfig }:
1+{ pkgs, stdenv, lib, buildPackages, haskellLib, ghc, nonReinstallablePkgs, hsPkgs, makeSetupConfigFiles, pkgconfig }@defaults:
22
3−{ component, package, name, src, flags ? {}, revision ? null, patches ? [], defaultSetupSrc
3+let self =
4+{ component, package, name, src, enableDWARF ? false, flags ? {}, revision ? null, patches ? [], defaultSetupSrc
45, preUnpack ? component.preUnpack, postUnpack ? component.postUnpack
56, prePatch ? null, postPatch ? null
67, preBuild ? component.preBuild , postBuild ? component.postBuild
78, preInstall ? component.preInstall , postInstall ? component.postInstall
8−, cleanSrc ? haskellLib.cleanCabalComponent package component src
9−}:
9+, cleanSrc ? haskellLib.cleanCabalComponent package component "setup" src
10+, nonReinstallablePkgs ? defaults.nonReinstallablePkgs
11+, smallAddressSpace ? false
12+}@drvArgs:
1013
1114let
15+ ghc = (if enableDWARF then (x: x.dwarf) else (x: x)) (
16+ (if smallAddressSpace then (x: x.smallAddressSpace) else (x: x)) defaults.ghc);
17+
18+ cleanSrc' = haskellLib.rootAndSubDir cleanSrc;
19+
1220 fullName = "${name}-setup";
1321
1422 includeGhcPackage = lib.any (p: p.identifier.name == "ghc") component.depends;
1523
1624 configFiles = makeSetupConfigFiles {
1725 inherit (package) identifier;
18− inherit fullName flags component;
26+ inherit fullName flags component enableDWARF nonReinstallablePkgs;
1927 };
2028 hooks = haskellLib.optionalHooks {
2129 inherit
@@ -35,7 +43,7 @@ let
3543 drv =
3644 stdenv.mkDerivation ({
3745 name = "${ghc.targetPrefix}${fullName}";
38− src = cleanSrc;
46+ src = cleanSrc'.root;
3947 buildInputs = component.libs
4048 ++ component.frameworks
4149 ++ builtins.concatLists component.pkgconfig;
@@ -44,18 +52,19 @@ let
4452 passthru = {
4553 inherit (package) identifier;
4654 config = component;
47− inherit configFiles cleanSrc;
55+ srcSubDir = cleanSrc'.subDir;
56+ srcSubDirPath = cleanSrc'.root + cleanSrc'.subDir;
57+ cleanSrc = cleanSrc';
58+ inherit configFiles;
59+ dwarf = self (drvArgs // { enableDWARF = true; });
60+ smallAddressSpace = self (drvArgs // { smallAddressSpace = true; });
4861 };
4962
5063 meta = {
5164 homepage = package.homepage or "";
5265 description = package.synopsis or "";
53− license =
54− let
55− license-map = import ../lib/cabal-licenses.nix lib;
56− in license-map.${package.license} or
57− (builtins.trace "WARNING: license \"${package.license}\" not found" license-map.LicenseRef-OtherLicense);
58− platforms = if component.platforms == null then stdenv.lib.platforms.all else component.platforms;
66+ license = haskellLib.cabalToNixpkgsLicense package.license;
67+ platforms = if component.platforms == null then lib.platforms.all else component.platforms;
5968 };
6069
6170 phases = ["unpackPhase" "patchPhase" "buildPhase" "installPhase"];
@@ -67,13 +76,12 @@ let
6776 for f in Setup.hs Setup.lhs; do
6877 if [ -f $f ]; then
6978 echo Compiling package $f
70− ghc $f -threaded '' + (if includeGhcPackage then "-package ghc " else "")
71− + ''-package-db ${configFiles}/${configFiles.packageCfgDir} --make -o ./Setup
72− setup=$(pwd)/Setup
79+ ghc $f -threaded ${if includeGhcPackage then "-package ghc " else ""
80+ }-package-db ${configFiles}/${configFiles.packageCfgDir} --make -o ./Setup
7381 fi
7482 done
7583 [ -f ./Setup ] || (echo Failed to build Setup && exit 1)
76− runHook preBuild
84+ runHook postBuild
7785 '';
7886
7987 installPhase = ''
@@ -83,7 +91,14 @@ let
8391 runHook postInstall
8492 '';
8593 }
94+ // (lib.optionalAttrs (cleanSrc'.subDir != "") {
95+ prePatch =
96+ # If the package is in a sub directory `cd` there first
97+ ''
98+ cd ${lib.removePrefix "/" cleanSrc'.subDir}
99+ '';
100+ })
86101 // (lib.optionalAttrs (patches != []) { patches = map (p: if builtins.isFunction p then p { inherit (package.identifier) version; inherit revision; } else p) patches; })
87102 // hooks
88103 );
89−in drv
104+in drv; in self
builder/shell-for.nix+73−48
@@ -1,26 +1,23 @@
1−{ lib, stdenv, glibcLocales, pkgconfig, ghcForComponent, makeConfigFiles, hsPkgs, hoogleLocal, haskellLib, buildPackages, compiler }:
1+{ lib, stdenv, mkShell, glibcLocales, pkgconfig, ghcForComponent, makeConfigFiles, hsPkgs, hoogleLocal, haskellLib, buildPackages, evalPackages, compiler }:
22
33{ # `packages` function selects packages that will be worked on in the shell itself.
44 # These packages will not be built by `shellFor`, but their
55 # dependencies will be included in the shell's `ghc-pkg list`.
6− packages ? ps:
7− let
8− selected = haskellLib.selectLocalPackages ps;
9− in
10− builtins.trace ("Shell for " + toString (builtins.attrNames selected))
11− (builtins.attrValues selected)
6+ packages ? ps: builtins.attrValues (haskellLib.selectLocalPackages ps)
127 # `components` function selects components that will be worked on in the shell itself.
138 # By default `shellFor` will include the dependencies of all of the components
149 # in the selected packages. If only as subset of the components will be
1510 # worked on in the shell then we can pass a different `components` function
1611 # to select those.
17−, components ? ps: lib.concatMap haskellLib.getAllComponents (packages hsPkgs)
12+, components ? ps: lib.concatMap haskellLib.getAllComponents (packages ps)
1813 # Additional packages to be added unconditionally
1914, additional ? _: []
2015, withHoogle ? true
16+, withHaddock ? withHoogle
2117, exactDeps ? false
2218, tools ? {}
23−, otherShells ? [] # List of other shells to include in this one
19+, packageSetupDeps ? true
20+, enableDWARF ? false
2421, ... } @ args:
2522
2623let
@@ -29,50 +26,69 @@ let
2926
3027 selectedPackages = packages hsPkgs;
3128 additionalPackages = additional hsPkgs;
32− selectedComponents = components hsPkgs;
29+ directlySelectedComponents = components hsPkgs;
3330
34− # The configs of all the selected components
35− selectedConfigs = map (c: c.config) selectedComponents ++ map (p: p.setup.config) selectedPackages;
36−
37− name = if lib.length selectedPackages == 1
38− then "ghc-shell-for-${(lib.head selectedPackages).identifier.name}"
39− else "ghc-shell-for-packages";
40−
41− # Given a `packages = [ a b ]` we construct a shell with the dependencies of `a` and `b`.
31+ # Given `directlySelectedComponents = [ a b ]`, we construct a shell that includes all of their dependencies
4232 #
43− # But if `a` depends on `b`, we don't want to include `b`, because
33+ # But we want to exclude `a` if it is a transitive dependecy of `b`
34+ # because:
4435 # - cabal will end up ignoring that built version;
4536 # - The user has indicated that's what they're working on, so they probably don't want to have to build
4637 # it first (and it will change often).
47− # Generally we never want to include any of (the components of) the selected packages as dependencies.
38+ # Generally we never want to include any of `directlySelectedComponents` as dependencies.
39+ #
40+ # We do this by defining a set of `selectedComponents`, where `x` is in `selectedComponents` if and only if:
41+ # - `x` is in `directlySelectedComponents`
42+ # - `x` is a transitive dependency of something in `directlySelectedComponents`
43+ # and `x` transitively depends on something in `directlySelectedComponents`
44+ # We use the dependencies of `selectedComponents` filtering out members of `selectedComponents`
4845 #
4946 # Furthermore, if `a` depends on `b`, `a` will include the library component of `b` in its `buildInputs`
5047 # (to make `propagatedBuildInputs` of `pkgconfig-depends` work). So we also need to filter those
5148 # (the pkgconfig depends of `b` will still be included in the
5249 # system shell's `buildInputs` via `b`'s own `buildInputs`).
53− # We have to do this slightly differently because we will be looking at the actual components rather
54− # than the packages.
5550
56− # Given a list of packages, removes those which were selected as part of the shell.
57− # We do this on the basis of their identifiers being the same, not direct equality (why?).
58− removeSelectedPackages =
59− # All the identifiers of the selected packages
60− let selectedPackageIds = map (p: p.identifier) selectedPackages;
61− in lib.filter (input: !(builtins.elem (input.identifier or null) selectedPackageIds));
6251
63− # Given a list of derivations, removes those which are components of packages which were selected as part of the shell.
52+ # all packages that are indirectly depended on by `directlySelectedComponents`
53+ # including `directlySelectedComponents`
54+ transitiveDependenciesComponents =
55+ builtins.listToAttrs
56+ (builtins.map (x: lib.nameValuePair (x.name) x)
57+ (haskellLib.flatLibDepends {depends = directlySelectedComponents;}));
58+
59+ isSelectedComponent =
60+ comp: selectedComponentsBitmap."${((haskellLib.dependToLib comp).name or null)}" or false;
61+ selectedComponentsBitmap =
62+ lib.mapAttrs
63+ (_: x: (builtins.any isSelectedComponent x.config.depends))
64+ transitiveDependenciesComponents
65+ // builtins.listToAttrs (map (x: lib.nameValuePair x.name true) directlySelectedComponents); # base case
66+
67+ selectedComponents =
68+ lib.filter isSelectedComponent (lib.attrValues transitiveDependenciesComponents);
69+
70+ # Given a list of `depends`, removes those which are selected components
6471 removeSelectedInputs =
65− # All the components of the selected packages: we shouldn't add any of these as dependencies
66− let selectedPackageComponents = lib.concatMap haskellLib.getAllComponents selectedPackages;
67− in lib.filter (input: !(builtins.elem input selectedPackageComponents));
72+ lib.filter (input: !(isSelectedComponent input));
6873
69− # We need to remove any dependencies which are selected packages (see above).
70− # `depends` contains packages so we use 'removeSelectedPackages`.
71− packageInputs = removeSelectedPackages (lib.concatMap (cfg: cfg.depends) selectedConfigs) ++ additionalPackages;
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.
77+ selectedConfigs = map (c: c.config) selectedComponents
78+ ++ lib.optionals packageSetupDeps (map (p: p.setup.config)
79+ (lib.filter (p: p.buildType != "Simple") selectedPackages));
80+
81+ name = if lib.length selectedPackages == 1
82+ then "ghc-shell-for-${(lib.head selectedPackages).identifier.name}"
83+ else "ghc-shell-for-packages";
84+
85+ # We need to remove any dependencies which would bring in selected components (see above).
86+ packageInputs = removeSelectedInputs (lib.concatMap (cfg: cfg.depends) selectedConfigs)
87+ ++ additionalPackages;
7288
7389 # Add the system libraries and build tools of the selected haskell packages to the shell.
7490 # We need to remove any inputs which are selected components (see above).
75− # `buildInputs`, `propagatedBuildInputs`, and `executableToolDepends` contain component
91+ # `buildInputs`, `propagatedBuildInputs`, and `executableToolDepends` contain component
7692 # derivations, not packages, so we use `removeSelectedInputs`).
7793 systemInputs = removeSelectedInputs (lib.concatMap
7894 (c: c.buildInputs ++ c.propagatedBuildInputs) selectedComponents);
@@ -83,13 +99,15 @@ let
8399 component = {
84100 depends = packageInputs;
85101 libs = [];
102+ pkgconfig = [];
86103 frameworks = [];
87104 doExactConfig = false;
88105 };
89106 configFiles = makeConfigFiles {
90107 fullName = args.name or name;
91108 identifier.name = name;
92− inherit component;
109+ inherit component enableDWARF;
110+ chooseDrv = p: if withHaddock && p ? haddock then p.haddock else p;
93111 };
94112 ghcEnv = ghcForComponent {
95113 inherit configFiles;
@@ -97,6 +115,8 @@ let
97115 postInstall = lib.optionalString withHoogle' ''
98116 ln -s ${hoogleIndex}/bin/hoogle $out/bin
99117 '';
118+ inherit enableDWARF;
119+ plugins = [];
100120 };
101121
102122 hoogleIndex = let
@@ -113,30 +133,34 @@ let
113133 # inherit (hsPkgs) hoogle;
114134 } // (
115135 lib.optionalAttrs (args ? tools && args.tools ? hoogle) {
116− 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 ++ [{
138+ name = "hoogle";
139+ compiler-nix-name = compiler.nix-name;
140+ inherit evalPackages;
141+ }]);
117142 }
118143 ));
119144
120− mkDrvArgs = builtins.removeAttrs args ["packages" "additional" "withHoogle" "tools" "otherShells"];
145+ mkDrvArgs = builtins.removeAttrs args ["packages" "components" "additional" "withHoogle" "tools"];
121146in
122− stdenv.mkDerivation (mkDrvArgs // {
147+ mkShell (mkDrvArgs // {
123148 name = mkDrvArgs.name or name;
124149
125150 buildInputs = systemInputs
126− ++ mkDrvArgs.buildInputs or []
127− ++ lib.optional withHoogle' hoogleIndex
128− ++ lib.concatMap (s: s.buildInputs) otherShells;
151+ ++ mkDrvArgs.buildInputs or [];
129152 nativeBuildInputs = [ ghcEnv ]
130153 ++ nativeBuildInputs
131154 ++ mkDrvArgs.nativeBuildInputs or []
132− ++ lib.attrValues (buildPackages.haskell-nix.tools compiler.nix-name tools)
133− ++ lib.concatMap (s: s.nativeBuildInputs) otherShells
155+ ++ lib.attrValues (buildPackages.haskell-nix.tools' evalPackages compiler.nix-name tools)
134156 # If this shell is a cross compilation shell include
135157 # wrapper script for running cabal build with appropriate args.
158+ # Includes `--with-compiler` in case the `cabal.project` file has `with-compiler:` in it.
136159 ++ lib.optional (ghcEnv.targetPrefix != "") (
137160 buildPackages.writeShellScriptBin "${ghcEnv.targetPrefix}cabal" ''
138161 exec cabal \
139162 --with-ghc=${ghcEnv.targetPrefix}ghc \
163+ --with-compiler=${ghcEnv.targetPrefix}ghc \
140164 --with-ghc-pkg=${ghcEnv.targetPrefix}ghc-pkg \
141165 --with-hsc2hs=${ghcEnv.targetPrefix}hsc2hs \
142166 ${lib.optionalString (ghcEnv.targetPrefix == "js-unknown-ghcjs-") ''
@@ -147,9 +171,10 @@ in
147171 "$@"
148172 '');
149173 phases = ["installPhase"];
150− installPhase = "echo $nativeBuildInputs $buildInputs > $out";
151− LANG = "en_US.UTF-8";
152− LOCALE_ARCHIVE = lib.optionalString (stdenv.hostPlatform.libc == "glibc") "${glibcLocales}/lib/locale/locale-archive";
174+ installPhase = ''
175+ echo "${"Shell for " + toString (builtins.map (p : p.identifier.name) selectedPackages)}"
176+ echo $nativeBuildInputs $buildInputs > $out
177+ '';
153178
154179 # This helps tools like `ghcide` (that use the ghc api) to find
155180 # the correct global package DB.
changelog.md+96
@@ -1,6 +1,102 @@
11This file contains a summary of changes to Haskell.nix and `nix-tools`
22that will impact users.
33
4+## Jul 27, 2022
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).
8+
9+ These derivations are now run on `buildPackages` by default.
10+
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;
14+
15+ Passing `evalSystem` instead will use create a suitable `nixpkgs` using `pkgs.path`
16+ and `pkgs.overlay`:
17+ evalSystem = "x86_64-linux";
18+ or
19+ evalSystem = builtins.currentSystem;
20+
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 = ./.; };
28+ };
29+
30+## Feb 16, 2022
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`.
36+
37+## Aug 6, 2021
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
41+ flake projects.
42+
43+## Jul 23, 2021
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.
55+
56+## Apr 8, 2021
57+* Project arguments are now validated with the Nix module system.
58+ If unexpected argments are passed to a project function this may now
59+ result in an error.
60+
61+## Feb 22, 2021
62+* Add `.dwarf` to build any component with DWARF dubug info on linux
63+ (ghc >=8.10.2).
64+* Pass `enableDWARF` to `shellFor` for to get a shell where all the
65+ components are the `.dwarf` ones.
66+
67+## Feb 18, 2021
68+* `ghcOptions` has been moved from package and is now a list of strings.
69+ old: packages.x.package.ghcOptions = "someGHCoption";
70+ new: packages.x.ghcOptions = ["someGHCoption"];
71+ To specify ghcOptions for all packages:
72+ ghcOptions = ["someGHCoption"];
73+ For a single component:
74+ packages.x.compoents.library.ghcOptions = ["someGHCoption"];
75+
76+## Feb 8, 2021
77+* Removed older versions of haskell-language-server from custom-tools
78+ (0.8.0 is in hackage so we can still get that version).
79+
80+## Jan 14, 2021
81+* Added support for cross package refs (with a project). Relative
82+ directory references between packages within a project should now
83+ work.
84+* Added `includeSiblings` to `cleanSourceWith`. When `true` it
85+ prevents the `subDir` arg from causing filtering of other directories.
86+* Added `keepGitDir` to `cleanGit` to allow `.git` directory to be kept
87+ (useful for components that use the `githash` package).
88+
89+## Nov 26, 2020
90+* Renamed `otherShells` arg for `shellFor` to `inputsFrom
91+
92+## Nov 25, 2020
93+* The `shellFor` `makeConfigFiles` `ghcWithHoogle` and `ghcWithPackages`
94+ functions have been removed from `project.hsPkgs`. Instead access
95+ them from `project` itself (e.g. change `p.hsPkgs.shellFor` to `p.shellFor`).
96+* The reflex-platform like `project.shells.ghc` has been removed.
97+ If needed, add something like `p // { shells.ghc = p.shellFor {} }`
98+ to `shell.nix`.
99+
4100## Nov 24, 2020
5101* Added `${targetPrefix}cabal` wrapper script for running cross
6102 compilers in `shellFor`.
ci-lib.nix+4−4
@@ -1,8 +1,8 @@
1−let
1+{
22 # Generic nixpkgs, use *only* for lib functions that are stable across versions
3− pkgs = import (import ./nix/sources.nix).nixpkgs {};
4− lib = pkgs.lib;
5−in rec {
3+ pkgs ? (import ./. {}).pkgs,
4+ lib ? pkgs.lib
5+}: rec {
66 inherit (import ./dimension.nix) dimension;
77
88 # A filter for removing packages that aren't supported on the current platform
ci.nix+61−40
@@ -4,17 +4,24 @@
44, ifdLevel ? 3
55# Whether or not we are evaluating in restricted mode. This is true in Hydra, but not in Hercules.
66, restrictEval ? false
7−, checkMaterialization ? false }:
7+, checkMaterialization ? false
8+, pkgs ? (import ./. {}).pkgs }:
89 let
9− inherit (import ./ci-lib.nix) dimension platformFilterGeneric filterAttrsOnlyRecursive;
10− sources = import ./nix/sources.nix {};
10+ inherit (import ./ci-lib.nix { inherit pkgs; }) dimension platformFilterGeneric filterAttrsOnlyRecursive;
11+ inherit (pkgs.haskell-nix) sources;
1112 nixpkgsVersions = {
12− "R1909" = "nixpkgs-1909";
13− "R2003" = "nixpkgs-2003";
14− "R2009" = "nixpkgs-2009";
13+ "R2111" = "nixpkgs-2111";
14+ "R2205" = "nixpkgs-2205";
15+ "unstable" = "nixpkgs-unstable";
16+ };
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"];
22+ };
1523 };
1624 compilerNixNames = nixpkgsName: nixpkgs: builtins.mapAttrs (compiler-nix-name: runTests: {
17− inherit (import ./default.nix { inherit checkMaterialization; }) nixpkgsArgs;
1825 inherit runTests;
1926 }) (
2027 # GHC version to cache and whether to run the tests against them.
@@ -23,47 +30,61 @@
2330 # cabal-install and nix-tools plans. When removing a ghc version
2431 # from here (so that is no longer cached) also remove ./materialized/ghcXXX.
2532 # Update supported-ghc-versions.md to reflect any changes made here.
26− {
27− ghc865 = true;
28− } // nixpkgs.lib.optionalAttrs (nixpkgsName == "R2003") {
29− ghc883 = false;
30− ghc884 = true;
31− ghc8101 = false;
32− ghc8102 = true;
33− ghc8102-experimental = true;
34− } // nixpkgs.lib.optionalAttrs (nixpkgsName == "R2009") {
35− ghc8102 = true;
33+ nixpkgs.lib.optionalAttrs (nixpkgsName == "R2111") {
34+ ghc865 = false;
35+ ghc8107 = true;
36+ } // nixpkgs.lib.optionalAttrs (nixpkgsName == "R2205") {
37+ ghc865 = false;
38+ ghc8107 = true;
39+ } // nixpkgs.lib.optionalAttrs (nixpkgsName == "unstable") {
40+ ghc865 = false;
41+ ghc884 = false; # Native version is used to boot 9.0.1
42+ ghc8107 = true;
43+ ghc902 = true;
44+ ghc924 = true;
3645 });
37− systems = nixpkgs: nixpkgs.lib.filterAttrs (_: v: builtins.elem v supportedSystems) {
38− # I wanted to take these from 'lib.systems.examples', but apparently there isn't one for linux!
39− linux = "x86_64-linux";
40− darwin = "x86_64-darwin";
41− };
46+ systems = nixpkgsName: nixpkgs: compiler-nix-name: nixpkgs.lib.genAttrs (
47+ nixpkgs.lib.filter (v:
48+ # We have less x86_64-darwin build capacity so build fewer GhC versions
49+ (v != "x86_64-darwin" || (
50+ !__elem compiler-nix-name ["ghc8104" "ghc810420210212" "ghc8105" "ghc8106" "ghc901" "ghc921" "ghc922"]))
51+ &&
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"]))
55+ &&
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);
4260 crossSystems = nixpkgsName: nixpkgs: compiler-nix-name: system:
4361 # We need to use the actual nixpkgs version we're working with here, since the values
4462 # of 'lib.systems.examples' are not understood between all versions
4563 let lib = nixpkgs.lib;
46− in lib.optionalAttrs (nixpkgsName == "R2003" && (__elem compiler-nix-name ["ghc865" "ghc884"])) {
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"]))) {
4767 inherit (lib.systems.examples) ghcjs;
48− } // lib.optionalAttrs (system == "x86_64-linux" && (nixpkgsName == "R2009" || (!(__elem compiler-nix-name ["ghc8101" "ghc8102" "ghc8102-experimental"])))) {
49− # Windows cross compilation is currently broken on macOS
68+ } // lib.optionalAttrs (nixpkgsName == "unstable"
69+ && ((system == "x86_64-linux" && __elem compiler-nix-name ["ghc8107" "ghc902" "ghc924"])
70+ || (system == "x86_64-darwin" && __elem compiler-nix-name []))) { # TODO add ghc versions when we have more darwin build capacity
5071 inherit (lib.systems.examples) mingwW64;
51− } // lib.optionalAttrs (system == "x86_64-linux") {
72+ } // lib.optionalAttrs (system == "x86_64-linux" && nixpkgsName == "unstable" && __elem compiler-nix-name ["ghc8107" "ghc902" "ghc922" "ghc923" "ghc924"]) {
5273 # Musl cross only works on linux
5374 # aarch64 cross only works on linux
5475 inherit (lib.systems.examples) musl64 aarch64-multiplatform;
5576 };
77+ isDisabled = d: d.meta.disabled or false;
5678in
5779dimension "Nixpkgs version" nixpkgsVersions (nixpkgsName: nixpkgs-pin:
5880 let pinnedNixpkgsSrc = sources.${nixpkgs-pin};
59− # We need this for generic nixpkgs stuff at the right version
60− genericPkgs = import pinnedNixpkgsSrc {};
61− in dimension "GHC version" (compilerNixNames nixpkgsName genericPkgs) (compiler-nix-name: {nixpkgsArgs, runTests}:
62− dimension "System" (systems genericPkgs) (systemName: system:
81+ evalPackages = import pinnedNixpkgsSrc nixpkgsArgs;
82+ in dimension "GHC version" (compilerNixNames nixpkgsName evalPackages) (compiler-nix-name: {runTests}:
83+ dimension "System" (systems nixpkgsName evalPackages compiler-nix-name) (systemName: system:
6384 let pkgs = import pinnedNixpkgsSrc (nixpkgsArgs // { inherit system; });
64− build = import ./build.nix { inherit pkgs ifdLevel compiler-nix-name; };
85+ build = import ./build.nix { inherit pkgs evalPackages ifdLevel compiler-nix-name; };
6586 platformFilter = platformFilterGeneric pkgs system;
66− in filterAttrsOnlyRecursive (_: v: platformFilter v) {
87+ in filterAttrsOnlyRecursive (_: v: platformFilter v && !(isDisabled v)) ({
6788 # Native builds
6889 # TODO: can we merge this into the general case by picking an appropriate "cross system" to mean native?
6990 native = pkgs.recurseIntoAttrs ({
@@ -72,16 +93,16 @@ dimension "Nixpkgs version" nixpkgsVersions (nixpkgsName: nixpkgs-pin:
7293 } // pkgs.lib.optionalAttrs runTests {
7394 inherit (build) tests tools maintainer-scripts maintainer-script-cache;
7495 } // pkgs.lib.optionalAttrs (ifdLevel >= 1) {
75− iserv-proxy = pkgs.ghc-extra-packages."${compiler-nix-name}".iserv-proxy.components.exes.iserv-proxy;
96+ iserv-proxy = pkgs.ghc-extra-projects."${compiler-nix-name}".getComponent "iserv-proxy:exe:iserv-proxy";
7697 } // pkgs.lib.optionalAttrs (ifdLevel >= 3) {
77− hello = (pkgs.haskell-nix.hackage-package { name = "hello"; version = "1.0.0.2"; inherit compiler-nix-name; }).components.exes.hello;
98+ hello = (pkgs.haskell-nix.hackage-package { name = "hello"; version = "1.0.0.2"; inherit evalPackages compiler-nix-name; }).getComponent "exe:hello";
7899 });
79100 }
80101 //
81− 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:
82103 # Cross builds
83104 let pkgs = import pinnedNixpkgsSrc (nixpkgsArgs // { inherit system crossSystem; });
84− build = import ./build.nix { inherit pkgs ifdLevel compiler-nix-name; };
105+ build = import ./build.nix { inherit pkgs evalPackages ifdLevel compiler-nix-name; };
85106 in pkgs.recurseIntoAttrs (pkgs.lib.optionalAttrs (ifdLevel >= 1) ({
86107 roots = pkgs.haskell-nix.roots' compiler-nix-name ifdLevel;
87108 ghc = pkgs.buildPackages.haskell-nix.compiler."${compiler-nix-name}";
@@ -94,12 +115,12 @@ dimension "Nixpkgs version" nixpkgsVersions (nixpkgsName: nixpkgs-pin:
94115 inherit (build) tests;
95116 }) // pkgs.lib.optionalAttrs (ifdLevel >= 2 && crossSystemName != "ghcjs") {
96117 # GHCJS builds its own template haskell runner.
97− remote-iserv = pkgs.ghc-extra-packages."${compiler-nix-name}".remote-iserv.components.exes.remote-iserv;
98− iserv-proxy = pkgs.ghc-extra-packages."${compiler-nix-name}".iserv-proxy.components.exes.iserv-proxy;
118+ remote-iserv = pkgs.ghc-extra-projects."${compiler-nix-name}".getComponent "remote-iserv:exe:remote-iserv";
119+ iserv-proxy = pkgs.ghc-extra-projects."${compiler-nix-name}".getComponent "iserv-proxy:exe:iserv-proxy";
99120 } // pkgs.lib.optionalAttrs (ifdLevel >= 3) {
100− hello = (pkgs.haskell-nix.hackage-package { name = "hello"; version = "1.0.0.2"; inherit compiler-nix-name; }).components.exes.hello;
121+ hello = (pkgs.haskell-nix.hackage-package { name = "hello"; version = "1.0.0.2"; inherit compiler-nix-name; }).getComponent "exe:hello";
101122 })
102− )
123+ ))
103124 )
104125 )
105126)
compiler/bootstrap/cabal-install.nix+2−2
@@ -1,4 +1,4 @@
1−{ fetchurl, hackage, stdenv, ghc, zlib, src, version }:
1+{ fetchurl, hackage, stdenv, lib, ghc, zlib, src, version }:
22let dependencies =
33 [ { name = "deepseq"; version = "1.4.3.0"; }
44 { name = "binary"; version = "0.8.5.1"; }
@@ -42,7 +42,7 @@ in stdenv.mkDerivation ({
4242 };
4343
4444 meta = {
45− platforms = stdenv.lib.platforms.all;
45+ platforms = lib.platforms.all;
4646 };
4747
4848 nativeBuildInputs = [ ghc zlib ];
compiler/ghc/configured-src.nixdeleted−116
@@ -1,116 +0,0 @@
1−{ stdenv, fetchurl
2−, ghc-version, ghc-patches, src-spec
3−, targetPrefix
4−, targetPlatform, hostPlatform
5−, targetPackages
6−, perl, autoconf, automake, m4, python3, sphinx, ghc, bootPkgs
7−, autoreconfHook, toolsForTarget, bash
8−, libDeps
9−, useLLVM, llvmPackages
10−, targetCC
11−, enableIntegerSimple, targetGmp
12−, ncurses, targetLibffi, libiconv
13−, disableLargeAddressSpace
14−, buildMK
15−}:
16−stdenv.mkDerivation (rec {
17−
18− version = ghc-version;
19− patches = ghc-patches;
20− name = "${targetPrefix}ghc-${ghc-version}-configured-src";
21−
22− # Make sure we never relax`$PATH` and hooks support for compatability.
23− strictDeps = true;
24−
25− nativeBuildInputs = [
26− perl autoconf automake m4 python3 sphinx
27− ghc bootPkgs.alex bootPkgs.happy bootPkgs.hscolour
28− ] ++ stdenv.lib.optional (patches != []) autoreconfHook;
29−
30− # For building runtime libs
31− depsBuildTarget = toolsForTarget;
32−
33− buildInputs = [ perl bash ] ++ (libDeps hostPlatform);
34−
35− propagatedBuildInputs = [ targetPackages.stdenv.cc ]
36− ++ stdenv.lib.optional useLLVM llvmPackages.llvm;
37−
38− depsTargetTarget = map stdenv.lib.getDev (libDeps targetPlatform);
39− depsTargetTargetPropagated = map (stdenv.lib.getOutput "out") (libDeps targetPlatform);
40−
41− postPatch = "patchShebangs .";
42−
43− src = if src-spec ? file
44− then src-spec.file
45− else fetchurl { inherit (src-spec) url sha256; };
46−
47− # GHC is a bit confused on its cross terminology.
48− preConfigure = ''
49− for env in $(env | grep '^TARGET_' | sed -E 's|\+?=.*||'); do
50− export "''${env#TARGET_}=''${!env}"
51− done
52− # GHC is a bit confused on its cross terminology, as these would normally be
53− # the *host* tools.
54− export CC="${targetCC}/bin/${targetCC.targetPrefix}cc"
55− export CXX="${targetCC}/bin/${targetCC.targetPrefix}cxx"
56− # Use gold to work around https://sourceware.org/bugzilla/show_bug.cgi?id=16177
57− export LD="${targetCC.bintools}/bin/${targetCC.bintools.targetPrefix}ld${stdenv.lib.optionalString targetPlatform.isAarch32 ".gold"}"
58− export AS="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}as"
59− export AR="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}ar"
60− export NM="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}nm"
61− export RANLIB="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}ranlib"
62− export READELF="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}readelf"
63− export STRIP="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}strip"
64−
65− echo -n "${buildMK}" > mk/build.mk
66− sed -i -e 's|-isysroot /Developer/SDKs/MacOSX10.5.sdk||' configure
67− '' + stdenv.lib.optionalString (!stdenv.isDarwin) ''
68− export NIX_LDFLAGS+=" -rpath $out/lib/${targetPrefix}ghc-${version}"
69− '' + stdenv.lib.optionalString stdenv.isDarwin ''
70− export NIX_LDFLAGS+=" -no_dtrace_dof"
71− '' + stdenv.lib.optionalString targetPlatform.useAndroidPrebuilt ''
72− 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
73− '' + stdenv.lib.optionalString targetPlatform.isMusl ''
74− echo "patching llvm-targets for musl targets..."
75− echo "Cloning these existing '*-linux-gnu*' targets:"
76− grep linux-gnu llvm-targets | sed 's/^/ /'
77− echo "(go go gadget sed)"
78− sed -i 's,\(^.*linux-\)gnu\(.*\)$,\0\n\1musl\2,' llvm-targets
79− echo "llvm-targets now contains these '*-linux-musl*' targets:"
80− grep linux-musl llvm-targets | sed 's/^/ /'
81−
82− echo "And now patching to preserve '-musleabi' as done with '-gnueabi'"
83− # (aclocal.m4 is actual source, but patch configure as well since we don't re-gen)
84− for x in configure aclocal.m4; do
85− substituteInPlace $x \
86− --replace '*-android*|*-gnueabi*)' \
87− '*-android*|*-gnueabi*|*-musleabi*)'
88− done
89− '';
90−
91− configurePlatforms = [ "build" "host" "target" ];
92− # `--with` flags for libraries needed for RTS linker
93− configureFlags = [
94− "--datadir=$doc/share/doc/ghc"
95− "--with-curses-includes=${ncurses.dev}/include" "--with-curses-libraries=${ncurses.out}/lib"
96− ] ++ stdenv.lib.optionals (targetLibffi != null) ["--with-system-libffi" "--with-ffi-includes=${targetLibffi.dev}/include" "--with-ffi-libraries=${targetLibffi.out}/lib"
97− ] ++ stdenv.lib.optional (!enableIntegerSimple) [
98− "--with-gmp-includes=${targetGmp.dev}/include" "--with-gmp-libraries=${targetGmp.out}/lib"
99− ] ++ stdenv.lib.optional (targetPlatform == hostPlatform && hostPlatform.libc != "glibc" && !targetPlatform.isWindows) [
100− "--with-iconv-includes=${libiconv}/include" "--with-iconv-libraries=${libiconv}/lib"
101− ] ++ stdenv.lib.optionals (targetPlatform != hostPlatform) [
102− "--enable-bootstrap-with-devel-snapshot"
103− ] ++ stdenv.lib.optionals (disableLargeAddressSpace) [
104− "--disable-large-address-space"
105− ] ++ stdenv.lib.optionals (targetPlatform.isAarch32) [
106− "CFLAGS=-fuse-ld=gold"
107− "CONF_GCC_LINKER_OPTS_STAGE1=-fuse-ld=gold"
108− "CONF_GCC_LINKER_OPTS_STAGE2=-fuse-ld=gold"
109− ] ;
110−
111− outputs = [ "out" ];
112− phases = [ "unpackPhase" "patchPhase" ]
113− ++ stdenv.lib.optional (ghc-patches != []) "autoreconfPhase"
114− ++ [ "configurePhase" "installPhase" ];
115− installPhase = "cp -r . $out";
116−})
compiler/ghc/default.nix+275−93
@@ -3,15 +3,19 @@
33# haskell.nix ships its own version of the ghc expression as it needs more
44# control over the expression to isolate it against varying <nixpkgs> and
55# allow us to customize it to the way haskell.nix works.
6−{ stdenv, haskell-nix, targetPackages
6+let self =
7+{ stdenv, lib, haskell-nix, targetPackages
78
89# build-tools
910, bootPkgs
10−, autoconf, automake, coreutils, fetchurl, fetchpatch, perl, python3, m4, sphinx, numactl
11+, buildPackages
12+, autoconf, automake, coreutils, fetchurl, fetchpatch, perl, python3, m4, sphinx, numactl, elfutils
1113, autoreconfHook
1214, bash
1315
14−, libiconv ? null, ncurses
16+, libiconv ? null
17+
18+, ncurses # TODO remove this once the cross compilers all work without
1519
1620, installDeps
1721
@@ -26,7 +30,10 @@
2630
2731, # If enabled, GHC will be built with the GPL-free but slower integer-simple
2832 # library instead of the faster but GPLed integer-gmp library.
29− enableIntegerSimple ? !(stdenv.lib.any (stdenv.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)
3037
3138, # If enabled, use -fPIC when compiling static libs.
3239 enableRelocatedStaticLibs ? stdenv.targetPlatform != stdenv.hostPlatform && !stdenv.targetPlatform.isAarch32
@@ -37,12 +44,18 @@
3744
3845, enableLibraryProfiling ? true
3946
40−, # Whether to build terminfo. Musl fails to build terminfo as ncurses seems to be linked to glibc
41− enableTerminfo ? !stdenv.targetPlatform.isWindows && !stdenv.targetPlatform.isMusl
47+, enableDWARF ? false
48+
49+, enableTerminfo ?
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)
52+
53+, # Wheter to build in NUMA support
54+ enableNUMA ? true
4255
4356, # What flavour to build. An empty string indicates no
4457 # specific flavour and falls back to ghc default values.
45− ghcFlavour ? stdenv.lib.optionalString haskell-nix.haskellLib.isCrossTarget (
58+ ghcFlavour ? lib.optionalString haskell-nix.haskellLib.isCrossTarget (
4659 if useLLVM
4760 then "perf-cross"
4861 else "perf-cross-ncg"
@@ -53,14 +66,19 @@
5366 disableLargeAddressSpace ? stdenv.targetPlatform.isDarwin && stdenv.targetPlatform.isAarch64
5467
5568, ghc-version ? src-spec.version
69+, ghc-version-date ? null
5670, src-spec
5771, ghc-patches ? []
5872
5973# extra values we want to have available as passthru values.
6074, extra-passthru ? {}
61−}:
75+}@args:
76+
77+assert !(enableIntegerSimple || enableNativeBignum) -> gmp != null;
6278
63−assert !enableIntegerSimple -> gmp != null;
79+# Early check to make sure only one of these is enabled
80+assert enableNativeBignum -> !enableIntegerSimple;
81+assert enableIntegerSimple -> !enableNativeBignum;
6482
6583let
6684 inherit (stdenv) buildPlatform hostPlatform targetPlatform;
@@ -68,6 +86,17 @@ let
6886
6987 inherit (bootPkgs) ghc;
7088
89+ ghcHasNativeBignum = builtins.compareVersions ghc-version "9.0" >= 0;
90+
91+ bignumSpec =
92+ assert ghcHasNativeBignum -> !enableIntegerSimple;
93+ assert !ghcHasNativeBignum -> !enableNativeBignum;
94+ if ghcHasNativeBignum then ''
95+ BIGNUM_BACKEND = ${if enableNativeBignum then "native" else "gmp"}
96+ '' else ''
97+ INTEGER_LIBRARY = ${if enableIntegerSimple then "integer-simple" else "integer-gmp"}
98+ '';
99+
71100 # TODO check if this possible fix for segfaults works or not.
72101 targetLibffi =
73102 # on native platforms targetPlatform.{libffi, gmp} do not exist; thus fall back
@@ -80,8 +109,12 @@ let
80109
81110 targetGmp = targetPackages.gmp or gmp;
82111
112+ targetIconv = targetPackages.libiconv or libiconv;
113+
114+ targetNumactl = targetPackages.numactl or numactl;
115+
83116 # TODO(@Ericson2314) Make unconditional
84− targetPrefix = stdenv.lib.optionalString
117+ targetPrefix = lib.optionalString
85118 (targetPlatform != hostPlatform)
86119 "${targetPlatform.config}-";
87120
@@ -91,68 +124,67 @@ let
91124 include mk/flavours/\$(BuildFlavour).mk
92125 endif
93126 DYNAMIC_GHC_PROGRAMS = ${if enableShared then "YES" else "NO"}
94− INTEGER_LIBRARY = ${if enableIntegerSimple then "integer-simple" else "integer-gmp"}
95− '' + stdenv.lib.optionalString (targetPlatform != hostPlatform) ''
127+ '' + bignumSpec + ''
128+ EXTRA_HADDOCK_OPTS += --quickjump --hyperlinked-source
129+ '' + lib.optionalString (targetPlatform != hostPlatform) ''
96130 CrossCompilePrefix = ${targetPrefix}
97− '' + stdenv.lib.optionalString isCrossTarget ''
131+ '' + lib.optionalString isCrossTarget ''
98132 Stage1Only = ${if targetPlatform.system == hostPlatform.system then "NO" else "YES"}
133+ ''
134+ # GHC 9.0.1 fails to compile for musl unless HADDOC_DOCS = NO
135+ + lib.optionalString (isCrossTarget || (targetPlatform.isMusl && builtins.compareVersions ghc-version "9.0.1" >= 0)) ''
99136 HADDOCK_DOCS = NO
100137 BUILD_SPHINX_HTML = NO
101138 BUILD_SPHINX_PDF = NO
102− '' + stdenv.lib.optionalString enableRelocatedStaticLibs ''
139+ '' + lib.optionalString enableRelocatedStaticLibs ''
103140 GhcLibHcOpts += -fPIC
104141 GhcRtsHcOpts += -fPIC
105− '' + stdenv.lib.optionalString targetPlatform.useAndroidPrebuilt ''
142+ GhcRtsCcOpts += -fPIC
143+ '' + lib.optionalString (enableRelocatedStaticLibs && targetPlatform.isx86_64 && !targetPlatform.isWindows) ''
144+ GhcLibHcOpts += -fexternal-dynamic-refs
145+ GhcRtsHcOpts += -fexternal-dynamic-refs
146+ '' + lib.optionalString enableDWARF ''
147+ GhcLibHcOpts += -g3
148+ GhcRtsHcOpts += -g3
149+ '' + lib.optionalString targetPlatform.useAndroidPrebuilt ''
106150 EXTRA_CC_OPTS += -std=gnu99
107− '' + stdenv.lib.optionalString (!enableTerminfo) ''
151+ '' + lib.optionalString (!enableTerminfo) ''
108152 WITH_TERMINFO=NO
109153 ''
110154 # musl doesn't have a system-linker. Only on x86, and on x86 we need it, as
111155 # our elf linker for x86_64 is broken.
112− + stdenv.lib.optionalString (targetPlatform.isMusl && !targetPlatform.isx86) ''
156+ + lib.optionalString (targetPlatform.isAndroid || (targetPlatform.isMusl && !targetPlatform.isx86)) ''
113157 compiler_CONFIGURE_OPTS += --flags=-dynamic-system-linker
114158 ''
115159 # While split sections are now enabled by default in ghc 8.8 for windows,
116160 # the seem to lead to `too many sections` errors when building base for
117161 # profiling.
118− + stdenv.lib.optionalString targetPlatform.isWindows ''
162+ #
163+ # It appears that loading split sections through iserv on qemu-aarch64, is
164+ # particularly slow. Let's disable them for now.
165+ + lib.optionalString (targetPlatform.isWindows || targetPlatform.isAndroid) ''
119166 SplitSections = NO
120− '' + stdenv.lib.optionalString (!enableLibraryProfiling) ''
167+ '' + lib.optionalString (!enableLibraryProfiling) ''
121168 BUILD_PROF_LIBS = NO
122169 '';
123170
124171 # Splicer will pull out correct variations
125− libDeps = platform: stdenv.lib.optional enableTerminfo [ ncurses ]
172+ libDeps = platform: lib.optional enableTerminfo [ targetPackages.ncurses targetPackages.ncurses.dev ]
126173 ++ [targetLibffi]
127− ++ stdenv.lib.optional (!enableIntegerSimple) gmp
128− ++ stdenv.lib.optional (platform.libc != "glibc" && !targetPlatform.isWindows) libiconv
129− ++ stdenv.lib.optional (platform.isLinux && !platform.isAarch32) numactl;
174+ ++ lib.optional (!enableIntegerSimple) gmp
175+ ++ lib.optional (platform.libc != "glibc" && !targetPlatform.isWindows) libiconv
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;
130179
131180 toolsForTarget =
132181 if hostPlatform == buildPlatform then
133− [ targetPackages.stdenv.cc ] ++ stdenv.lib.optional useLLVM llvmPackages.llvm
182+ [ targetPackages.stdenv.cc ] ++ lib.optional useLLVM llvmPackages.llvm
134183 else assert targetPlatform == hostPlatform; # build != host == target
135− [ stdenv.cc ] ++ stdenv.lib.optional useLLVM buildLlvmPackages.llvm;
184+ [ stdenv.cc ] ++ lib.optional useLLVM buildLlvmPackages.llvm;
136185
137186 targetCC = builtins.head toolsForTarget;
138187
139− configured-src = import ./configured-src.nix {
140− inherit stdenv fetchurl
141− ghc-version ghc-patches src-spec
142− targetPrefix
143− targetPlatform hostPlatform
144− targetPackages
145− perl autoconf automake m4 python3 sphinx ghc bootPkgs
146− autoreconfHook toolsForTarget bash
147− libDeps
148− useLLVM llvmPackages
149− targetCC
150− enableIntegerSimple targetGmp
151− ncurses targetLibffi libiconv
152− disableLargeAddressSpace
153− buildMK
154− ;
155− };
156188in
157189stdenv.mkDerivation (rec {
158190 version = ghc-version;
@@ -160,42 +192,102 @@ stdenv.mkDerivation (rec {
160192
161193 patches = ghc-patches;
162194
163− # for this to properly work (with inheritance of patches, postPatch, ...)
164− # this needs to be a function over the values we want to inherit and then called
165− # accordingly. Most trivial might be to just have args, and mash them into the
166− # attrset.
167− src = configured-src;
195+ src = if src-spec ? file
196+ then src-spec.file
197+ else fetchurl { inherit (src-spec) url sha256; };
168198
169199 # configure was run by configured-src already.
170− phases = [ "unpackPhase" "buildPhase"
200+ phases = [ "unpackPhase" "patchPhase" ]
201+ ++ lib.optional (ghc-patches != []) "autoreconfPhase"
202+ ++ [ "configurePhase" "buildPhase"
171203 "checkPhase" "installPhase"
172204 "fixupPhase"
173205 "installCheckPhase"
174206 "distPhase"
175207 ];
176208
177− # ghc hardcodes the TOP dir during config, this breaks when
178− # splitting the configured src from the build process.
179− postUnpack = ''
180− (cd $sourceRoot
181− TOP=$(cat mk/config.mk|grep ^TOP|awk -F\ '{ print $3 }')
182− PREFIX=$(cat mk/install.mk|grep ^prefix|awk -F\ '{ print $3 }')
183−
184− # these two are required
185− substituteInPlace mk/config.mk --replace "$TOP" "$PWD" \
186− --replace "$PREFIX" "$out"
187−
188− substituteInPlace mk/install.mk --replace "$TOP" "$PWD" \
189− --replace "$PREFIX" "$out"
190−
191− # these two only for convencience.
192− substituteInPlace config.log --replace "$TOP" "$PWD"\
193− --replace "$PREFIX" "$out"
194− substituteInPlace config.status --replace "$TOP" "$PWD"\
195− --replace "$PREFIX" "$out")
196−
197−
198− '';
209+ # GHC is a bit confused on its cross terminology.
210+ preConfigure =
211+ # This code is only included when cross compiling as it breaks aarch64-darwin native compilation
212+ lib.optionalString (targetPlatform != hostPlatform) ''
213+ for env in $(env | grep '^TARGET_' | sed -E 's|\+?=.*||'); do
214+ export "''${env#TARGET_}=''${!env}"
215+ done
216+ # GHC is a bit confused on its cross terminology, as these would normally be
217+ # the *host* tools.
218+ export CC="${targetCC}/bin/${targetCC.targetPrefix}cc"
219+ export CXX="${targetCC}/bin/${targetCC.targetPrefix}cxx"
220+ # Use gold to work around https://sourceware.org/bugzilla/show_bug.cgi?id=16177
221+ export LD="${targetCC.bintools}/bin/${targetCC.bintools.targetPrefix}ld${lib.optionalString targetPlatform.isAarch32 ".gold"}"
222+ export AS="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}as"
223+ export AR="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}ar"
224+ export NM="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}nm"
225+ export RANLIB="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}ranlib"
226+ export READELF="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}readelf"
227+ export STRIP="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}strip"
228+ '' + ''
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/^/ /'
248+
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*)'
255+ done
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) ''
263+ ./boot
264+ '';
265+
266+ configurePlatforms = [ "build" "host" "target" ];
267+ # `--with` flags for libraries needed for RTS linker
268+ configureFlags = [
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"
290+ ];
199291
200292 enableParallelBuilding = true;
201293 postPatch = "patchShebangs .";
@@ -211,22 +303,19 @@ stdenv.mkDerivation (rec {
211303 nativeBuildInputs = [
212304 perl autoconf automake m4 python3 sphinx
213305 ghc bootPkgs.alex bootPkgs.happy bootPkgs.hscolour
214− ] ++ stdenv.lib.optional (patches != []) autoreconfHook;
306+ ] ++ lib.optional (patches != []) autoreconfHook;
215307
216308 # For building runtime libs
217309 depsBuildTarget = toolsForTarget;
218310
219311 buildInputs = [ perl bash ] ++ (libDeps hostPlatform);
220312
221− propagatedBuildInputs = [ targetPackages.stdenv.cc ]
222− ++ stdenv.lib.optional useLLVM llvmPackages.llvm;
223−
224− depsTargetTarget = map stdenv.lib.getDev (libDeps targetPlatform);
225− depsTargetTargetPropagated = map (stdenv.lib.getOutput "out") (libDeps targetPlatform);
313+ depsTargetTarget = map lib.getDev (libDeps targetPlatform);
314+ depsTargetTargetPropagated = map (lib.getOutput "out") (libDeps targetPlatform);
226315
227316 # required, because otherwise all symbols from HSffi.o are stripped, and
228317 # that in turn causes GHCi to abort
229− stripDebugFlags = [ "-S" ] ++ stdenv.lib.optional (!targetPlatform.isDarwin) "--keep-file-symbols";
318+ stripDebugFlags = [ "-S" ] ++ lib.optional (!targetPlatform.isDarwin) "--keep-file-symbols";
230319
231320 # See #63511 - the only unstripped file is the debug rts which isn't meant to
232321 # be stripped.
@@ -235,10 +324,21 @@ stdenv.mkDerivation (rec {
235324 checkTarget = "test";
236325
237326 hardeningDisable = [ "format" ]
238− ++ stdenv.lib.optional stdenv.targetPlatform.isAarch32 "pic"
239− ++ stdenv.lib.optional stdenv.targetPlatform.isMusl "pie";
240−
241− postInstall = ''
327+ ++ lib.optional stdenv.targetPlatform.isAarch32 "pic"
328+ ++ lib.optional stdenv.targetPlatform.isMusl "pie";
329+
330+ postInstall = lib.optionalString (enableNUMA && targetPlatform.isLinux) ''
331+ # Patch rts.conf to ensure libnuma can be found
332+
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
339+ fi
340+ done
341+ '' + ''
242342 # Install the bash completion file.
243343 install -D -m 444 utils/completion/ghc.bash $out/share/bash-completion/completions/${targetPrefix}ghc
244344
@@ -249,16 +349,14 @@ stdenv.mkDerivation (rec {
249349 # The ghcprog fixup is for musl (where runhaskell script just needs to point to the correct
250350 # ghc program to work).
251351 sed -i \
252− -e '2i export PATH="$PATH:${stdenv.lib.makeBinPath [ targetPackages.stdenv.cc.bintools coreutils ]}"' \
352+ -e '2i export PATH="$PATH:${lib.makeBinPath [ targetPackages.stdenv.cc.bintools coreutils ]}"' \
253353 -e 's/ghcprog="ghc-/ghcprog="${targetPrefix}ghc-/' \
254354 $i
255355 done
256356
257− # Save generated files for needed when building ghcjs
357+ # Save generated files for needed when building ghc and ghcjs
258358 mkdir -p $generated/includes/dist-derivedconstants/header
259− cp includes/dist-derivedconstants/header/GHCConstantsHaskellExports.hs \
260− includes/dist-derivedconstants/header/GHCConstantsHaskellType.hs \
261− includes/dist-derivedconstants/header/GHCConstantsHaskellWrappers.hs \
359+ cp includes/dist-derivedconstants/header/GHCConstantsHaskell*.hs \
262360 $generated/includes/dist-derivedconstants/header
263361 if [[ -f includes/ghcplatform.h ]]; then
264362 cp includes/ghcplatform.h $generated/includes
@@ -267,6 +365,15 @@ stdenv.mkDerivation (rec {
267365 fi
268366 mkdir -p $generated/compiler/stage2/build
269367 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
371+ fi
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
375+ fi
376+ cp compiler/stage2/build/*.hs-incl $generated/compiler/stage2/build || true
270377 mkdir -p $generated/rts/build
271378 cp rts/build/config.hs-incl $generated/rts/build || true
272379
@@ -284,19 +391,19 @@ stdenv.mkDerivation (rec {
284391 # Sanity checks for https://github.com/input-output-hk/haskell.nix/issues/660
285392 if ! "$out/bin/${targetPrefix}ghc" --version; then
286393 echo "ERROR: Missing file $out/bin/${targetPrefix}ghc"
287− exit 0
394+ exit 1
288395 fi
289396 if ! "$out/bin/${targetPrefix}ghc-pkg" --version; then
290397 echo "ERROR: Missing file $out/bin/${targetPrefix}ghc-pkg"
291− exit 0
398+ exit 1
292399 fi
293400 if [[ ! -d "$out/lib/${targetPrefix}ghc-${version}" ]]; then
294401 echo "ERROR: Missing directory $out/lib/${targetPrefix}ghc-${version}"
295− exit 0
402+ exit 1
296403 fi
297404 if (( $(ls -1 "$out/lib/${targetPrefix}ghc-${version}" | wc -l) < 30 )); then
298405 echo "ERROR: Expected more files in $out/lib/${targetPrefix}ghc-${version}"
299− exit 0
406+ exit 1
300407 fi
301408 '';
302409
@@ -310,10 +417,54 @@ stdenv.mkDerivation (rec {
310417 # Our Cabal compiler name
311418 haskellCompilerName = "ghc-${version}";
312419
313− configured-src = configured-src;
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
423+ # building GHC.
424+ configured-src = stdenv.mkDerivation ({
425+ name = name + "-configured-src";
426+ inherit
427+ buildInputs
428+ version
429+ nativeBuildInputs
430+ patches
431+ src
432+ strictDeps
433+ depsBuildTarget
434+ depsTargetTarget
435+ depsTargetTargetPropagated
436+ postPatch
437+ preConfigure
438+ configurePlatforms
439+ configureFlags
440+ outputs
441+ ;
442+
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`.
445+ installPhase = ''
446+ cp -r . $out
447+ mkdir $doc
448+ mkdir $generated
449+ '';
450+ phases = [ "unpackPhase" "patchPhase" ]
451+ ++ lib.optional (ghc-patches != []) "autoreconfPhase"
452+ ++ [ "configurePhase" "installPhase"];
453+ });
314454
315455 # Used to detect non haskell-nix compilers (accidental use of nixpkgs compilers can lead to unexpected errors)
316456 isHaskellNixCompiler = true;
457+
458+ # The same GHC, but with debug enabled (if it can be)
459+ dwarf = lib.makeOverridable self (args // {
460+ enableDWARF = stdenv.targetPlatform.isLinux
461+ && builtins.compareVersions ghc-version "8.10.2" >= 0;
462+ });
463+
464+ # The same GHC, but without the large (1TB) address space reservation
465+ smallAddressSpace = lib.makeOverridable self (args // {
466+ disableLargeAddressSpace = true;
467+ });
317468 } // extra-passthru;
318469
319470 meta = {
@@ -323,8 +474,39 @@ stdenv.mkDerivation (rec {
323474 inherit (ghc.meta) license platforms;
324475 };
325476
326−} // stdenv.lib.optionalAttrs targetPlatform.useAndroidPrebuilt {
477+ # Needed for `haddock` to work on source that includes non ASCII chars
478+ LANG = "en_US.UTF-8";
479+ LC_ALL = "en_US.UTF-8";
480+} // lib.optionalAttrs (stdenv.buildPlatform.libc == "glibc") {
481+ LOCALE_ARCHIVE = "${buildPackages.glibcLocales}/lib/locale/locale-archive";
482+} // lib.optionalAttrs targetPlatform.useAndroidPrebuilt {
327483 dontStrip = true;
328484 dontPatchELF = true;
329485 noAuditTmpdir = true;
330−})
486+} // lib.optionalAttrs (stdenv.buildPlatform.isDarwin || stdenv.targetPlatform.isWindows) {
487+ # ghc install on macOS wants to run `xattr -r -c`
488+ # The macOS version fails because it wants python 2.
489+ # The nix version of xattr does not support those args.
490+ # Luckily setting the path to something that does not exist will skip the step.
491+ preBuild = lib.optionalString stdenv.buildPlatform.isDarwin ''
492+ export XATTR=$(mktemp -d)/nothing
493+ ''
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
506+ fi
507+ if [[ -f rts/win32/ThrIOManager.c ]]; then
508+ substituteInPlace rts/win32/ThrIOManager.c --replace rts\\OSThreads.h rts/OSThreads.h
509+ fi
510+ '';
511+});
512+in self
compiler/ghcjs/ghcjs-src.json+2−2
@@ -1,6 +1,6 @@
11{
22 "url": "https://github.com/ghcjs/ghcjs",
3− "rev": "31a54f7320b1f9700eb6389c2eb2d50c712e8371",
4− "sha256": "1cj1gfqcj0ygc23xj5gbm0ym9wmh8ini57zlgd6s25avgjbrwga6",
3+ "rev": "58ed01e77028108c2b1da10d52cb331788b6a466",
4+ "sha256": "1lr3grk5jjm8bvvkndilm06ry1dj7i66k4g27fr009bggdy9q6ws",
55 "fetchSubmodules": true
66}
compiler/ghcjs/ghcjs.nix+48−27
@@ -1,20 +1,28 @@
11{ pkgs
22, ghcjsSrcJson ? ./ghcjs-src.json
33, ghcjsSrc ? pkgs.buildPackages.fetchgit (builtins.fromJSON (builtins.readFile ghcjsSrcJson))
4−, ghcjsVersion ? "8.6.0.1"
4+, ghcjsVersion ? "8.6.0.0.10"
55, ghcVersion ? "8.6.5"
66, compiler-nix-name ? if builtins.compareVersions ghcjsVersion "8.8.0.0" > 0
77 then "ghc884"
88 else "ghc865"
99, ghc ? pkgs.buildPackages.ghc
10+, overrideBootPackages ? [] # adds if not present, overrides if present.
1011}:
1112let
12− isGhcjs88 = builtins.compareVersions ghcjsVersion "8.8.0.0" > 0;
13+ isGhcjs88 = builtins.compareVersions ghcjsVersion "8.8.0.0" >= 0;
14+ isGhcjs810 = builtins.compareVersions ghcjsVersion "8.10.0.0" >= 0;
1315
1416 project = pkgs.buildPackages.haskell-nix.ghcjsProject {
1517 src = ghcjsSrc;
16− inherit ghcjsVersion compiler-nix-name;
18+ inherit ghcjsVersion compiler-nix-name overrideBootPackages;
1719 index-state = "2020-04-25T00:00:00Z";
20+ patches = if isGhcjs810
21+ then [
22+ ./patches/810/fast-weak.patch
23+ ./patches/810/boot-optimization-flags.patch
24+ ]
25+ else [];
1826# plan-sha256 = "1wy2lr08maxyi7r8jiwf2gj6pdayk5vxxwh42bj4s2gg4035z0yc";
1927# materialized = ../../materialized/ghcjs;
2028 };
@@ -24,21 +32,25 @@ let
2432 all-ghcjs = pkgs.buildPackages.symlinkJoin {
2533 name = "ghcjs-${ghcjsVersion}-symlinked";
2634 paths = [
27− ghcjs.components.exes.ghcjs
28− ghcjs.components.exes.ghcjs-pkg
29− ghcjs.components.exes.ghcjs-boot
30− ghcjs.components.exes.ghcjs-dumparchive
35+ (ghcjs.getComponent "exe:ghcjs-boot")
3136 ] ++ (if isGhcjs88
3237 then [
33− ghcjs.components.exes.haddock
34− ghcjs.components.exes.private-ghcjs-run
35− ghcjs.components.exes.private-ghcjs-unlit
36− ghcjs.components.exes.private-ghcjs-hsc2hs
38+ (ghcjs.getComponent "exe:ghcjs")
39+ (ghcjs.getComponent "exe:ghcjs-pkg")
40+ (ghcjs.getComponent "exe:private-ghcjs-hsc2hs")
41+ (ghcjs.getComponent "exe:haddock")
42+ (ghcjs.getComponent "exe:ghcjs-dumparchive")
43+ (ghcjs.getComponent "exe:private-ghcjs-run")
44+ (ghcjs.getComponent "exe:private-ghcjs-unlit")
3745 ]
3846 else [
39− ghcjs.components.exes.haddock-ghcjs
40− ghcjs.components.exes.hsc2hs-ghcjs
41− ghcjs.components.exes.ghcjs-run
47+ (ghcjs.getComponent "exe:private-ghcjs-ghcjs")
48+ (ghcjs.getComponent "exe:private-ghcjs-ghcjs-pkg")
49+ (ghcjs.getComponent "exe:private-ghcjs-run")
50+ (ghcjs.getComponent "exe:private-ghcjs-unlit")
51+ (ghcjs.getComponent "exe:private-ghcjs-hsc2hs")
52+ (ghcjs.getComponent "exe:private-ghcjs-haddock")
53+ (ghcjs.getComponent "exe:private-ghcjs-ghcjs-dumparchive")
4254 ]);
4355 };
4456 libexec = "libexec/${builtins.replaceStrings ["darwin" "i686"] ["osx" "i386"] pkgs.stdenv.buildPlatform.system}-${ghc.name}/ghcjs-${ghcVersion}";
@@ -50,10 +62,11 @@ let
5062 ++ pkgs.lib.optional isGhcjs88 pkgs.buildPackages.procps;
5163 passthru = {
5264 inherit all-ghcjs bundled-ghcjs project;
53− inherit (project) configured-src;
65+ configured-src = project.configured-src + "/ghc";
5466 # Used to detect non haskell-nix compilers (accidental use of nixpkgs compilers can lead to unexpected errors)
5567 isHaskellNixCompiler = true;
5668 } // ghcjs.components.exes;
69+ dontUpdateAutotoolsGnuConfigScripts = true;
5770 dontConfigure = true;
5871 dontInstall = true;
5972 buildPhase = ''
@@ -68,22 +81,26 @@ let
6881 lndir ${all-ghcjs}/bin $out/bin
6982 chmod -R +w $out/bin
7083 rm $out/bin/ghcjs-boot
71− cp ${ghcjs.components.exes.ghcjs-boot}/bin/ghcjs-boot $out/bin
84+ cp ${ghcjs.getComponent "exe:ghcjs-boot"}/bin/ghcjs-boot $out/bin
7285 rm $out/bin/haddock
73− cp ${ghcjs.components.exes.haddock}/bin/haddock $out/bin
86+ cp ${ghcjs.getComponent "exe:haddock"}/bin/haddock $out/bin
7487
7588 wrapProgram $out/bin/ghcjs --add-flags "-B$out/lib"
7689 wrapProgram $out/bin/haddock --add-flags "-B$out/lib"
7790 wrapProgram $out/bin/ghcjs-pkg --add-flags "--global-package-db=$out/lib/package.conf.d"
7891 ''
7992 else ''
80− mkdir -p $out/bin
93+ mkdir -p $out
94+ lndir ${all-ghcjs} $out
8195 mkdir -p $out/lib/ghcjs-${ghcVersion}
82− lndir ${all-ghcjs}/${libexec} $out/bin
96+ rm $out/bin/ghcjs-boot
97+ cp ${ghcjs.getComponent "exe:ghcjs-boot"}/bin/ghcjs-boot $out/bin
98+ wrapProgram $out/bin/ghcjs-boot --set ghcjs_libexecdir $out/bin
99+ mv $out/${libexec}/* $out/bin
83100
84− wrapProgram $out/bin/ghcjs --add-flags "-B$out/lib/ghcjs-${ghcVersion}"
85− wrapProgram $out/bin/haddock-ghcjs --add-flags "-B$out/lib/ghcjs-${ghcVersion}"
86− wrapProgram $out/bin/ghcjs-pkg --add-flags "--global-package-db=$out/lib/ghcjs-${ghcVersion}/package.conf.d"
101+ wrapProgram $out/bin/private-ghcjs-ghcjs --add-flags "-B$out/lib"
102+ wrapProgram $out/bin/private-ghcjs-haddock --add-flags "-B$out/lib"
103+ wrapProgram $out/bin/private-ghcjs-ghcjs-pkg --add-flags "--global-package-db=$out/lib/package.conf.d"
87104 ''
88105 }
89106 # Avoid timeouts while unix package runs hsc2hs (it does not print anything
@@ -96,17 +113,21 @@ let
96113 fi
97114 done
98115 } &
99− ${ if isGhcjs88
100− then
101− # Unsets NIX_CFLAGS_COMPILE so the osx version of iconv.h is not used by mistake
116+ ${
117+ # Unsets NIX_CFLAGS_COMPILE so the osx version of iconv.h is not used by mistake
118+ if isGhcjs810 then ''
119+ env -u NIX_CFLAGS_COMPILE PATH=$out/bin:$PATH \
120+ $out/bin/ghcjs-boot --with-emsdk=${project.emsdk} --no-haddock \
121+ || (echo failed > $TMP/done; false)
102122 ''
123+ else if isGhcjs88 then ''
103124 env -u NIX_CFLAGS_COMPILE PATH=$out/bin:$PATH \
104− PYTHON=${pkgs.buildPackages.python3}/bin/python3 \
105125 $out/bin/ghcjs-boot -j1 --with-emsdk=${project.emsdk} --no-prof --no-haddock \
106126 || (echo failed > $TMP/done; false)
107127 ''
108128 else ''
109− env PATH=$out/bin:$PATH $out/bin/ghcjs-boot -j1 --with-ghcjs-bin $out/bin \
129+ env -u NIX_CFLAGS_COMPILE PATH=$out/bin:$PATH \
130+ $out/bin/ghcjs-boot -j1 --with-ghcjs-libdir=$out --with-emsdk=${project.emsdk} \
110131 || (echo failed > $TMP/done; false)
111132 ''
112133 }
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
3+--- a/aeson.cabal
4++++ b/aeson.cabal
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
13+
compiler/ghcjs/ghcjs810-patched-boot-packages/default.nixnew file+176
@@ -0,0 +1,176 @@
1+{ pkgs
2+, ...
3+}:
4+let
5+ patch = p: path: pkgs.runCommand "patched" { buildInputs = [ pkgs.gnupatch ]; } ''
6+ cp -r ${path} $out
7+ chmod -R +w $out
8+ cd $out
9+ patch -p1 <${p}
10+ '';
11+ getSubdir = d: path: pkgs.runCommand "subdir" { } ''
12+ cp -r ${path}/${d} $out
13+ '';
14+in
15+[
16+ {
17+ name = "primitive";
18+ src = pkgs.fetchgit {
19+ url = "https://github.com/haskell/primitive.git";
20+ rev = "11ff865fd2157a1dfd7dfd525b1cf27e1a300633";
21+ sha256 = "1skim1vlmf0v4ixm8h8ja3m1pz0h10xrfdh1rfzawsy8rvrp2cc0";
22+ };
23+ }
24+ {
25+ name = "dlist";
26+ src = pkgs.fetchgit {
27+ url = "https://github.com/spl/dlist.git";
28+ rev = "567cfeb2f5da30f2e5faf167895b3ee04c698ca0";
29+ sha256 = "0b8ij3ls7bccbp9rlm8dnflnf1wim9xsg42wmirvwxwmh2c0r0hg";
30+ };
31+ }
32+ {
33+ name = "vector";
34+ src = pkgs.fetchgit {
35+ url = "https://github.com/haskell/vector.git";
36+ rev = "de10fd281fa5d8beee3623e809a71385a5ef6864";
37+ sha256 = "09vhbvrkw90xgqfrybmhy120rwcy4snw2f97004alr3n96lwpg1q";
38+ };
39+ }
40+ {
41+ name = "ghcjs-base";
42+ src = patch ./ghcjs-base.patch (pkgs.fetchgit {
43+ url = "https://github.com/ghcjs/ghcjs-base.git";
44+ rev = "85e31beab9beffc3ea91b954b61a5d04e708b8f2";
45+ sha256 = "15fdkjv0l7hpbbsn5238xxgzfdg61g666nzbv2sgxkwryn5rycv0";
46+ });
47+ }
48+ {
49+ name = "text";
50+ src = pkgs.fetchgit {
51+ url = "https://github.com/dfordivam/text.git";
52+ rev = "126174753ea8e5f45df8fcbba609e3f1c453bf27";
53+ sha256 = "0l7nbln2w77s12fm4ybhi0jsfnxkyiwskfx3b682pfisa6n32rgm";
54+ };
55+ }
56+ {
57+ name = "hashable";
58+ src = patch ./hashable.patch (pkgs.fetchgit {
59+ url = "https://github.com/haskell-unordered-containers/hashable.git";
60+ rev = "819fdbeaeeb62ed1344fb057de17fa29b10fa3e1";
61+ sha256 = "0xnwfwnnh0bxq16wx0qmdakvgvj8i22km3bhvvki15rd9jil04cc";
62+ });
63+ }
64+ {
65+ name = "integer-logarithms";
66+ src = pkgs.fetchgit {
67+ url = "https://github.com/haskellari/integer-logarithms.git";
68+ rev = "df09cef2c8eb0d5899e2bcccee2a4fad413bdc11";
69+ sha256 = "1k17hjnjmy44dfywx9nr804qiqmjjhkpfpll5bsfvzvpnl5r75nj";
70+ };
71+ }
72+ {
73+ name = "scientific";
74+ src = pkgs.fetchgit {
75+ url = "https://github.com/basvandijk/scientific.git";
76+ rev = "1d049cdf04e2d92ab187754044b0df933c5e6b0d";
77+ sha256 = "1v4fmfq8hyhdb5ck5r2b45s1izr7hx97v4g7s597ajbv72ldvilq";
78+ };
79+ }
80+ {
81+ name = "attoparsec";
82+ src = pkgs.fetchgit {
83+ url = "https://github.com/dfordivam/attoparsec.git";
84+ rev = "cbfb944aeff61144059a28ada93c579e93ccf7d2";
85+ sha256 = "0bbr4943439sy3grwpwbna4mk7iv87ijaiv3jjfhxhp7y67z51h8";
86+ };
87+ }
88+ {
89+ name = "splitmix";
90+ src = pkgs.fetchgit {
91+ url = "https://github.com/haskellari/splitmix.git";
92+ rev = "d8c1b57bb75178675423f87b1ff58429f37bc9fe";
93+ sha256 = "1m8v439vlwqpqw28dbr04n6m0j2cfb169ly285lp0bjmzcwlr289";
94+ };
95+ }
96+ {
97+ name = "random";
98+ src = pkgs.fetchgit {
99+ url = "https://github.com/haskell/random.git";
100+ rev = "8c59bd0fda84fa581d53069b45100d810f5a778f";
101+ sha256 = "1drdipfbmpg2g2cdrnq1k8yysh86i7ljwm6zkrrs3g8l47n4ha4d";
102+ };
103+ }
104+ {
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";
110+ });
111+ }
112+ {
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";
118+ };
119+ }
120+ {
121+ name = "base-orphans";
122+ src = pkgs.fetchgit {
123+ url = "https://github.com/haskell-compat/base-orphans.git";
124+ rev = "1af3a3512efbcc12e0c34637a0e433ab6e195932";
125+ sha256 = "14b6qwc3dbnmrhqk66a2cn4pvv3nf6kb3h7ym1hjn5xs7n62zhw1";
126+ };
127+ }
128+ {
129+ name = "time-compat";
130+ src = pkgs.fetchgit {
131+ url = "https://github.com/haskellari/time-compat.git";
132+ rev = "67b8b063295601fb1db185baad363a3f33ed63a9";
133+ sha256 = "0nbjsn7yrygv4i1fd8x90mnf4janq536ffvkjd5zsnyzm8qk8k3j";
134+ };
135+ }
136+ {
137+ name = "th-abstraction";
138+ src = pkgs.fetchgit {
139+ url = "https://github.com/glguy/th-abstraction.git";
140+ rev = "d75761bc5a0f912aeeb508e2c227b9fd830153fd";
141+ sha256 = "070ihxncymzsbrgvwmrm717n0qq5bf9nvc2k210nkil1cwrsnhvc";
142+ };
143+ }
144+ {
145+ name = "tagged";
146+ src = pkgs.fetchgit {
147+ url = "https://github.com/ekmett/tagged.git";
148+ rev = "15fcfe90c779efea951ecf4d451d709aed5f7d32";
149+ sha256 = "1x1wr4zf7k1kvd6rj06h9shw7p5di1jra9fysyw0jx7riiq0v3ch";
150+ };
151+ }
152+ {
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";
158+ });
159+ }
160+ {
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";
166+ });
167+ }
168+ {
169+ name = "aeson";
170+ src = patch ./aeson.patch (pkgs.fetchgit {
171+ url = "https://github.com/dfordivam/aeson.git";
172+ rev = "9a8f57a52eb748a030bc2bcf5c3159a5e2e696b2";
173+ sha256 = "1y8j3ddxxddpnb7c0vi73ijb08sr09z1gdzfg1rfyzn82d6i38zv";
174+ });
175+ }
176+]
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
3+--- a/Data/JSString.hs
4++++ b/Data/JSString.hs
5+@@ -99,6 +99,7 @@ module Data.JSString ( JSString
6+ , breakOnEnd
7+ , break
8+ , span
9++ , span_
10+ , group
11+ , group'
12+ , groupBy
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)
22++{-# INLINE span #-}
23++
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 #)
29+ where
30+ loop i l
31+- | isTrue# (i >=# l) = (x, empty)
32++ | isTrue# (i >=# l) = (# x, empty #)
33+ | otherwise =
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)
38+-{-# INLINE span #-}
39++ else (# js_substr 0# i x, js_substr1 i x #)
40++{-# INLINE span_ #-}
41+
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
50+ -}
51+ import Data.String (IsString(..))
52+-import qualified Data.Text as T
53++-- import qualified Data.Text as T
54+
55+
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)
64+
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)
73+
74+ import Unsafe.Coerce
75+
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
80+@@ -16,7 +16,7 @@
81+
82+ module GHCJS.Marshal ( FromJSVal(..)
83+ , ToJSVal(..)
84+- , toJSVal_aeson
85++ -- , toJSVal_aeson
86+ , toJSVal_pure
87+ ) where
88+
89+@@ -24,17 +24,17 @@ import Control.Applicative
90+ import Control.Monad
91+ import Control.Monad.Trans.Maybe (MaybeT(..), runMaybeT)
92+
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
105+ import Data.Maybe
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))
138+- <$> fromJSVal r
139+- JSONFloat -> liftM (AE.Number . (fromFloatDigits :: Double -> Scientific))
140+- <$> fromJSVal r
141+- JSONBool -> liftM AE.Bool <$> fromJSVal r
142+- JSONString -> liftM AE.String <$> fromJSVal r
143+- JSONArray -> liftM (AE.Array . V.fromList) <$> fromJSVal r
144+- JSONObject -> do
145+- props <- OI.listProps (OI.Object r)
146+- runMaybeT $ do
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))
156++-- <$> fromJSVal r
157++-- JSONFloat -> liftM (AE.Number . (fromFloatDigits :: Double -> Scientific))
158++-- <$> fromJSVal r
159++-- JSONBool -> liftM AE.Bool <$> fromJSVal r
160++-- JSONString -> liftM AE.String <$> fromJSVal r
161++-- JSONArray -> liftM (AE.Array . V.fromList) <$> fromJSVal r
162++-- JSONObject -> do
163++-- props <- OI.listProps (OI.Object r)
164++-- runMaybeT $ do
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
198+
199+-toJSVal_aeson :: AE.ToJSON a => a -> IO JSVal
200+-toJSVal_aeson x = cv (AE.toJSON x)
201+- where
202+- cv = convertValue
203++-- toJSVal_aeson :: AE.ToJSON a => a -> IO JSVal
204++-- toJSVal_aeson x = cv (AE.toJSON x)
205++-- where
206++-- cv = convertValue
207+
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)
218+- return obj'
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)
229++-- return obj'
230+
231+
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
239+ import Data.Maybe
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)
249+ import GHC.Int
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)
277+
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
282+
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 #-}
288+
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 #-}
295+
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 #-}
302+
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 #-}
309+
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 #-}
316+
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
324+
325+ import Data.Data
326+ import Data.Maybe (fromJust)
327+-import Data.Text (Text)
328++-- import Data.Text (Text)
329+ import Data.Typeable
330+
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
340+- Data.JSString.Text
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
347+ JavaScript.Array.ST
348+ JavaScript.Cast
349+- JavaScript.JSON
350+- JavaScript.JSON.Types
351+- JavaScript.JSON.Types.Class
352+- JavaScript.JSON.Types.Generic
353+- JavaScript.JSON.Types.Instances
354+- JavaScript.JSON.Types.Internal
355++ -- JavaScript.JSON
356++ -- JavaScript.JSON.Types
357++ -- JavaScript.JSON.Types.Class
358++ -- JavaScript.JSON.Types.Generic
359++ -- JavaScript.JSON.Types.Instances
360++ -- JavaScript.JSON.Types.Internal
361+ JavaScript.Number
362+ JavaScript.Object
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
379+ integer-gmp,
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)
402+ buildable: False
403+
404+-test-suite tests
405+- type: exitcode-stdio-1.0
406+- hs-source-dirs: test
407+- main-is: Tests.hs
408+- other-modules: Tests.Marshal
409+- Tests.Properties
410+- Tests.Properties.Numeric
411+- Tests.SlowFunctions
412+- Tests.QuickCheckUtils
413+- Tests.Regressions
414+- Tests.Utils
415+- ghc-options:
416+- -Wall -rtsopts
417+- build-depends:
418+- HUnit >= 1.2,
419+- QuickCheck >= 2.7,
420+- array,
421+- text,
422+- base,
423+- bytestring,
424+- deepseq,
425+- directory,
426+- ghc-prim,
427+- ghcjs-prim,
428+- ghcjs-base,
429+- primitive,
430+- quickcheck-unicode,
431+- random,
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)
437+- buildable: False
438++-- test-suite tests
439++-- type: exitcode-stdio-1.0
440++-- hs-source-dirs: test
441++-- main-is: Tests.hs
442++-- other-modules: Tests.Marshal
443++-- Tests.Properties
444++-- Tests.Properties.Numeric
445++-- Tests.SlowFunctions
446++-- Tests.QuickCheckUtils
447++-- Tests.Regressions
448++-- Tests.Utils
449++-- ghc-options:
450++-- -Wall -rtsopts
451++-- build-depends:
452++-- HUnit >= 1.2,
453++-- QuickCheck >= 2.7,
454++-- array,
455++-- text,
456++-- base,
457++-- bytestring,
458++-- deepseq,
459++-- directory,
460++-- ghc-prim,
461++-- ghcjs-prim,
462++-- ghcjs-base,
463++-- primitive,
464++-- quickcheck-unicode,
465++-- random,
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)
471++-- buildable: False
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
3+--- a/hashable.cabal
4++++ b/hashable.cabal
5+@@ -88,6 +88,8 @@ library
6+ build-depends: ghc-bignum ==1.0.* || ==1.2.*
7+
8+ else
9++ if impl(ghcjs)
10++ build-depends: ghcjs-base
11+ if flag(integer-gmp)
12+ build-depends: integer-gmp >=0.4 && <1.1
13+
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
18+@@ -5,6 +5,10 @@
19+
20+ {-# LANGUAGE Trustworthy #-}
21+
22++#ifdef __GHCJS__
23++{-# LANGUAGE JavaScriptFFI, UnboxedTuples, GHCForeignImportPrim #-}
24++#endif
25++
26+ #if __GLASGOW_HASKELL__ >= 801
27+ {-# LANGUAGE PolyKinds #-} -- For TypeRep instances
28+ #endif
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
33++#ifndef __GHCJS__
34+ import qualified Data.Text.Array as TA
35++#endif
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
41+ # endif
42+
43++#ifndef __GHCJS__
44+ import GHC.Exts (Int(..))
45++#else
46++import GHC.Exts (Int(..), Int#)
47++#endif
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
54+
55++#ifdef __GHCJS__
56++import Data.JSString (JSString)
57++#endif
58++
59+ #include "MachDeps.h"
60+
61+ infixl 0 `hashWithSalt`
62+@@ -676,17 +690,18 @@ instance Hashable BSI.ShortByteString where
63+ #endif
64+
65+ instance Hashable T.Text where
66++#ifndef __GHCJS__
67+ hashWithSalt salt (T.Text arr off len) =
68+ hashByteArrayWithSalt (TA.aBA arr) (off `shiftL` 1) (len `shiftL` 1)
69+ (hashWithSalt salt len)
70++#else
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
74++#endif
75+
76+ instance Hashable TL.Text where
77+- hashWithSalt salt = finalise . TL.foldlChunks step (SP salt 0)
78+- where
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)
82+- (l + len)
83++ hashWithSalt = TL.foldlChunks hashWithSalt
84+
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
88+ #endif
89+ #endif
90+
91++#ifdef __GHCJS__
92++foreign import javascript unsafe
93++ "h$textFromString"
94++ js_textFromJSString :: JSString -> (# ByteArray#, Int# #)
95++#endif
96++
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.jsonnew file+6
@@ -0,0 +1,6 @@
1+{
2+ "url": "https://github.com/ghcjs/ghcjs",
3+ "rev": "bb403ec3a1506831aae2d608b7b21c1937e4fb20",
4+ "sha256": "0bs3hijwn0p4wvphwg78mwbz8qyi10wqgfh8yfaszaj1766892ba",
5+ "fetchSubmodules": true
6+}
compiler/ghcjs/ghcjs88-src.json+2−2
@@ -1,6 +1,6 @@
11{
22 "url": "https://github.com/ghcjs/ghcjs",
3− "rev": "1193ead2c760bab1e2ab461458ec771237ccf9b5",
4− "sha256": "1h7gaq1lhf61b5x693phgpm2z0w393b1sbkxrd9mxzz9xxlyrhkl",
3+ "rev": "1af48a877fdf1f647a3b81e828a1e61adb0baceb",
4+ "sha256": "sha256-B4LFpd1nl96SO6/gsTjkizMGSglMkrujmwgXVjahC68=",
55 "fetchSubmodules": true
66}
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
3+--- a/src-bin/Boot.hs
4++++ b/src-bin/Boot.hs
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");
8+ MARK_OBJ(c);
9++ } else if(c instanceof h$FastWeak) {
10++ MARK_OBJ(c);
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
13++ }
14++ } else if(c instanceof h$FastWeakTicket) {
15++ MARK_OBJ(c);
16++ if(!IS_MARKED(c.val)) {
17++ ADDW(c.val);
18++ }
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
21++ c.weak.ticket = c;
22++ }
23++ } else if(c instanceof h$FastWeakBag) {
24++ MARK_OBJ(c);
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) {
29++ if(j !== i) {
30++ c.tickets[i].pos = j;
31++ }
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
39++ j++;
40++ }
41++ }
42++ c.tickets.length = j; // Shrink the array if any nulls have been dropped
43++ } else if(c instanceof h$FastWeakBagTicket) {
44++ MARK_OBJ(c);
45++ if(!IS_MARKED(c.val)) {
46++ ADDW(c.val);
47++ }
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;
51++ }
52++
53+ } else if(c instanceof h$Weak) {
54+ MARK_OBJ(c);
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);
62+ }
63+ }
64++
65++function h$FastWeak(ticket) {
66++ this.ticket = ticket;
67++ this.m = 0;
68++}
69++
70++function h$FastWeakTicket(val) {
71++ this.val = val;
72++ this.weak = new h$FastWeak(this);
73++ this.m = 0;
74++}
75++
76++function h$FastWeakBag() {
77++ this.tickets = [];
78++ this.m = 0;
79++}
80++
81++function h$FastWeakBagTicket(bag, val) {
82++ this.val = val;
83++ this.bag = bag;
84++ this.pos = bag.tickets.length;
85++ bag.tickets.push(this);
86++ this.m = 0;
87++};
compiler/old-ghc-nix/default.nixdeleted−10
@@ -1,10 +0,0 @@
1−{ pkgs ? import <nixpkgs> {} }:
2−let
3− fetch = jsonFile:
4− with builtins;
5− let spec = fromJSON (readFile jsonFile);
6− in pkgs.fetchgit {
7− name = "old-ghc-nix";
8− inherit (spec) sha256 url rev;
9− };
10−in import (fetch ./old-ghc-nix.json) { inherit pkgs; }
compiler/old-ghc-nix/old-ghc-nix.jsondeleted−7
@@ -1,7 +0,0 @@
1−{
2− "url": "https://github.com/angerman/old-ghc-nix",
3− "rev": "2a41a09127f6dc7a6384823d1acd51ba257f95bd",
4− "date": "2020-06-03T12:50:09+08:00",
5− "sha256": "1cp6aksb6ldgjb5zyqikyjrjij79n9z7wd86migph0wp19vmszkf",
6− "fetchSubmodules": false
7−}
compiler/windows/include/synchapi.hnew file+1
@@ -0,0 +1 @@
1+#include <windows.h>
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.
3+#ifndef _WINDOWS_
4+#define _WINDOWS_
5+
6+#define __stdcall
7+
8+typedef unsigned long DWORD;
9+typedef void * PVOID;
10+
11+typedef struct _RTL_CONDITION_VARIABLE { PVOID Ptr; } RTL_CONDITION_VARIABLE;
12+typedef RTL_CONDITION_VARIABLE CONDITION_VARIABLE;
13+
14+typedef struct _RTL_SRWLOCK { PVOID Ptr; } RTL_SRWLOCK;
15+typedef RTL_SRWLOCK SRWLOCK;
16+
17+#endif
18+
config.nix−4
@@ -2,11 +2,7 @@
22 # allow building for windows
33 allowUnsupportedSystem = true;
44 # we want the 64bit wine version
5− # See overlays/wine.nix as well!
65 wine.build = "wine64";
76 wine.release = "stable";
8−
9− # This is marked insecure on 20.03, but many packages still depend on it
10− permittedInsecurePackages = [ "openssl-1.0.2u" ];
117}
128
default.nix+29−28
@@ -1,28 +1,29 @@
1−{ checkMaterialization ? false # Allows us to easily switch on materialization checking
2−, system ? builtins.currentSystem
3−, sourcesOverride ? {}
4−, ... }@args: rec {
5− sources = (import ./nix/sources.nix) // sourcesOverride;
6− config = import ./config.nix;
7− overlays = [ allOverlays.combined ] ++ (
8− if checkMaterialization == true
9− then [(
10− final: prev: {
11− haskell-nix = prev.haskell-nix // {
12− checkMaterialization = true;
13− };
14− }
15− )]
16− else []
17− ) ++ [(
18− final: prev: {
19− haskell-nix = prev.haskell-nix // {
20− inherit overlays;
21− sources = prev.haskell-nix.sources // sourcesOverride;
22− };
23− }
24− )];
25− allOverlays = import ./overlays args;
26− nixpkgsArgs = { inherit config overlays system; };
27− pkgs = import sources.nixpkgs nixpkgsArgs;
28−}
1+{...}@args:
2+
3+let
4+ nixpkgsSrc =
5+ builtins.fetchTarball {
6+ url = "https://github.com/NixOS/nixpkgs/archive/110a2c9ebbf5d4a94486854f18a37a938cfacbbb.tar.gz";
7+ sha256 = "sha256-leWXLchbAbqOlLT6tju631G40SzQWPqaAXQG3zH1Imw=";
8+ };
9+ pkgs = args.pkgs or (import nixpkgsSrc {});
10+ flake-compat =
11+ pkgs.fetchzip {
12+ url = "https://github.com/edolstra/flake-compat/archive/5523c47f13259b981c49b26e28499724a5125fd8.tar.gz";
13+ sha256 = "sha256-7IySNHriQjzOZ88DDk6VDPf1GoUaOrOeUdukY62o52o=";
14+ };
15+ self = import flake-compat {
16+ # We bypass flake-compat's rootSrc cleaning by evading its detection of this as a git
17+ # repo.
18+ # This is done for 3 reasons:
19+ # * To workaround https://github.com/edolstra/flake-compat/issues/25
20+ # * Make `updateMaterilized` scripts work (if filtering is done by `flake-compat`
21+ # the `updateMaterilized` scripts will try to update the copy in the store).
22+ # * Allow more granular filtering done by the tests (the use of `cleanGit` and `cleanSourceWith`
23+ # in `test/default.nix`). If `flake-compat` copies the whole git repo, any change to the
24+ # repo causes a change of input for all tests.
25+ src = { outPath = ./.; };
26+ inherit pkgs;
27+ };
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
2+
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.
5+
6+## Hix Command Wrappers
7+
8+Install the hix command wrappers after making changes to a local clone of haskell.nix:
9+
10+```
11+nix-env -iA hix -f /path/to/local/haskell.nix
12+hix-shell
13+```
14+
15+Or override the version of haskell.nix used by the commands with the `HIX_ROOT` environment variable:
16+
17+```
18+HIX_ROOT=/path/to/local/haskell.nix hix-shell
19+```
20+
21+## Flakes
22+
23+For flakes use `--override-input` to point to the modified haskell.nix:
24+
25+```
26+nix develop --override-input haskellNix /path/to/local/haskell.nix
27+```
docs/dev/nix-tools-pin.mdnew file+16
@@ -0,0 +1,16 @@
1+## How to update [`nix-tools`](https://github.com/input-output-hk/nix-tools)
2+
3+1. Use niv to update the sources.json:
4+
5+ ```
6+ niv update nix-tools
7+ ```
8+
9+
10+2. If `nix-tools.cabal` or `plan-to-nix` have changed, check the
11+ materialized files for each of the compiler nix name in
12+ `ls -d materialized/ghc*/nix-tools` with:
13+
14+ ```
15+ nix-build scripts/check-compiler-materialization --argstr compiler-nix-name ghc884
16+ ```
docs/dev/nixpkgs-pin.md+7−15
@@ -1,25 +1,17 @@
11# Haskell.nix Nixpkgs Pin
22
3−Haskell.nix contains a Nixpkgs pin in
4−[`nixpkgs/github.json`](https://github.com/input-output-hk/haskell.nix/blob/master/nixpkgs/github.json).
5−This is the version of Nixpkgs used for builds of `nix-tools` and
6−running the tests.
3+Haskell.nix contains several Nixpkgs pins imanaged by `niv` in
4+`nix/sources.json`.
5+
6+These are used in testing various versions of nixpkgs.
77
88To use haskell.nix the `config` and `overlays` need to be applied to
99Nixpkgs. Users should probably pin a suitable version of nixpkgs, although things might not work for them if their Nixpkgs version is
1010too different.
1111
1212We aim to keep this pin somewhere on a channel of the **Nixpkgs latest
13−stable release**. That is currently 19.09.
13+stable release**. That is currently 20.09.
1414
1515We also execute tests on MacOS (darwin). The darwin channel is usually
16−behind the NixOS channel. So we choose the `nixpkgs-19.09-darwin`
17−channel:
18−
19−```
20−nix-prefetch-git https://github.com/NixOS/nixpkgs-channels refs/heads/nixpkgs-19.09-darwin
21−```
22−
23−Keep the URL in `github.json` pointing at
24−<https://github.com/NixOS/nixpkgs>. Case matters because the Hydra
25−trusted URL whitelist is case-sensitive.
16+behind the NixOS channel. So we follow the `nixpkgs-20.09-darwin`
17+channel.
docs/reference/commands.md+7−3
@@ -1,4 +1,8 @@
1−# stack-to-nix
1+# Command line tools
2+
3+To install the command line tools refer to the [Installing nix-tools](https://input-output-hk.github.io/haskell.nix/dev/manually-generating-nix-expressions/) section.
4+
5+## stack-to-nix
26
37```
48stack-to-nix - a stack to nix converter
@@ -28,7 +32,7 @@ output directory, it will create a basic one with a
2832
2933[cache-issue]: https://github.com/input-output-hk/haskell.nix/issues/57
3034
31−# plan-to-nix
35+## plan-to-nix
3236
3337```
3438plan-to-nix - a stack to nix converter
@@ -65,7 +69,7 @@ these files.
6569 generated, remove `.nix-tools.cache`
6670 (The open issue is [#57][cache-issue]).
6771
68−# cabal-to-nix
72+## cabal-to-nix
6973
7074```
7175Usage: cabal-to-nix FILE.cabal
docs/reference/library.md+21−12
@@ -112,16 +112,16 @@ will be passed to it:
112112
113113# Top-level attributes
114114
115−## project
115+## project'
116116
117117Function that accepts attribute set with a `src` attribute and looks for `stack.yaml` file relative to it.
118118
119−If file exists, it calls [stackProject](#stackproject) function. Otherwise it will call [cabalProject](#cabalproject) function.
119+If file exists, it calls [stackProject](#stackproject') function. Otherwise it will call [cabalProject](#cabalproject') function.
120120
121121**Example**:
122122
123123```nix
124−pkgs.haskell-nix.project {
124+pkgs.haskell-nix.project' {
125125 # 'cleanGit' cleans a source directory based on the files known by git
126126 src = pkgs.haskell-nix.haskellLib.cleanGit {
127127 name = "haskell-nix-project";
@@ -130,7 +130,7 @@ pkgs.haskell-nix.project {
130130}
131131```
132132
133−## stackProject
133+## stackProject'
134134
135135A function calling [callStackToNix](#callstacktonix) with all arguments.
136136
@@ -142,14 +142,13 @@ Then feeding its result into [mkStackPkgSet](#mkstackpkgset) passing also
142142| Attribute | Type | Description |
143143|-------------------|--------------------------------------------------|----------------------------------------------------------------------------|
144144| `hsPkgs` | Attrset of [Haskell Packages](#haskell-package) | Buildable packages, created from `packages` |
145−| `pkg-set` | Attrset | [`pkgSet`](#package-set) |
146145| `stack-nix` | | `projectNix` attribute of [`callStackToNix`](#callstacktonix) return value |
147146| `shellFor` | Function | [`shellFor`](#shellfor) |
148−| `ghcWithHoogle` | Function | [`ghcWithHoogle`](#ghcwithhoogle) |
147+| `ghcWithHoogle` | Function | [`ghcWithHoogle`](#ghcwithhoogle) |
149148| `ghcWithPackages` | Function | [`ghcWithPackages`](#ghcwithpackages) |
150149
151150
152−## cabalProject
151+## cabalProject'
153152
154153A function calling [callCabalProjectToNix](#callcabalprojecttonix) with all arguments.
155154
@@ -161,14 +160,21 @@ Then feeding its result into [mkCabalProjectPkgSet](#mkcabalprojectpkgset) passi
161160| Attribute | Type | Description |
162161|-------------------|--------------------------------------------------|-----------------------------------------------------------------------------|
163162| `hsPkgs` | Attrset of [Haskell Packages](#haskell-package) | Buildable packages, created from `packages` |
164−| `pkg-set` | Attrset | [`pkgSet`](#package-set) |
165163| `plan-nix` | | `projectNix` attribute of [`callCabalProjectToNix`](#callcabalprojecttonix) return value |
166164| `index-state` | | `index-state` attribute of [`callCabalProjectToNix`](#callcabalprojecttonix) return value |
167165| `shellFor` | Function | [`shellFor`](#shellfor) |
168−| `ghcWithHoogle` | Function | [`ghcWithHoogle`](#ghcwithhoogle) |
166+| `ghcWithHoogle` | Function | [`ghcWithHoogle`](#ghcwithhoogle) |
169167| `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 |
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. |
170171
172+## project, cabalProject and stackProject
171173
174+These versions of the function are the same as project', cabalProject'
175+and stackProject', but `hsPkgs` attributes are also included in the
176+return value directly. That way a package can be referenced as
177+`(project {...}).foo` instead of `(project' {...}).hsPkgs.foo`.
172178
173179## mkStackPkgSet
174180
@@ -404,9 +410,11 @@ Sub-component types identify [components](#component) and are one of:
404410 - `tests`
405411 - `benchmarks`
406412
407−# Package-set functions
413+# Project functions
408414
409−These functions exist within the `hsPkgs` package set.
415+These functions are included in the `project` return values.
416+In the past they also existed within `project.hsPkgs`,
417+but have now been removed from there.
410418
411419## shellFor
412420
@@ -428,7 +436,8 @@ shellFor =
428436| `withHoogle` | Boolean | Whether to build a Hoogle documentation index and provide the `hoogle` command. |
429437| `exactDeps` | Boolean | Prevents the Cabal solver from choosing any package dependency other than what are in the package set. |
430438| `tools` | Function | AttrSet of tools to make available e.g. `{ cabal = "3.2.0.0"; }` or `{ cabal = { version = "3.2.0.0"; }; }`. If an AttrSet is provided for a tool, the additional arguments will be passed to the function creating the derivation for that tool. So you can provide an `index-state` or a `materialized` argument like that `{ cabal = { version = "3.2.0.0"; index-state = "2020-10-30T00:00:00Z"; materialized = ./cabal.materialized; }; }` for example. You can specify and materialize the version of hoogle used to construct the hoogle index by including something like `{ hoogle = { version = "5.0.17.15"; index-state = "2020-05-31T00:00:00Z"; materialized = ./hoogle.materialized; }`. Uses a default version of hoogle if omitted. |
431−| `otherShells | List | List of other shells to include in this one. The `buildInputs` and `nativeBuildInputs` of each will be included.
439+| `inputsFrom` | List | List of other shells to include in this one. The `buildInputs` and `nativeBuildInputs` of each will be included using [mkShell](https://nixos.org/manual/nixpkgs/stable/#sec-pkgs-mkShell).
440+| `crossPlatforms` | Function | Platform selection function for cross compilation targets to support eg. `ps: with ps; [ghcjs mingwW64]` (see nixpkgs lib.systems.examples for list of platform names). |
432441| `{ ... }` | Attrset | All the other arguments are passed to [`mkDerivation`](https://nixos.org/nixpkgs/manual/#sec-using-stdenv). |
433442
434443**Return value**: a derivation
docs/reference/supported-ghc-versions.md+45−26
@@ -1,30 +1,49 @@
11# Supported GHC Versions
22
3−The following versions of GHC built on the CI servers and should be included
4−in the binary cache (for the default haskell.nix `nixpkgs`).
5−
6−* 8.6.5 `compiler-nix-name = "ghc865";`
7−* 8.8.3 `compiler-nix-name = "ghc883";`
8−* 8.8.4 `compiler-nix-name = "ghc884";`
9−* 8.10.1 `compiler-nix-name = "ghc8101";`
10−* 8.10.2 `compiler-nix-name = "ghc8102";`
11−
12−Full test suite is run against 8.6.5, 8.8.4 and 8.10.2.
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):
5+- 8.4.4
6+- 8.6.{1,2,3,4,5}
7+- 8.8.{1,2,3,4}
8+- 8.10.{1,2,3,4,5}
9+- 9.0.1
10+- 9.2.1
11+- 9.2.2
12+
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.
17+
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.
21+
22+| Nixpkgs version | Nixpkgs pinning | GHC version | `compiler-nix-name` | Tested in CI? |
23+|------------------|--------------------|-------------|-----------------------|---------------|
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 |
1331
1432See [ci.nix](https://github.com/input-output-hk/haskell.nix/blob/master/ci.nix)
15−for the list of tested GHC versions.
16−
17−The following GHC versions are not included in CI and will not be cached:
18−
19−* 8.4.4 `compiler-nix-name = "ghc844";`
20−* 8.6.1 `compiler-nix-name = "ghc861";`
21−* 8.6.2 `compiler-nix-name = "ghc862";`
22−* 8.6.3 `compiler-nix-name = "ghc863";`
23−* 8.6.4 `compiler-nix-name = "ghc864";`
24−* 8.8.1 `compiler-nix-name = "ghc881";`
25−* 8.8.2 `compiler-nix-name = "ghc882";`
26−
27−See [overlays/bootstrap.nix](https://github.com/input-output-hk/haskell.nix/blob/master/overlays/bootstrap.nix)
28−for a list of all the valid `compiler-nix-names`.
29−
30−See also: [Instructions on adding new GHC versions](../dev/adding-new-ghc.md).
33+for the source of truth about what is built and tested (in the off chance this
34+document is out-of-sync with your checkout).
35+
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).
41+
42+See
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
46+times.
47+
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
2+## Introduction
3+
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.
6+
7+This has two main advantages:
8+
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.
12+
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).
14+
15+## Usage
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`:
18+
19+```
20+experimental-features = ca-derivations
21+```
22+
23+Or if you use NixOS:
24+```
25+nix.extraOptions = ''
26+ experimental-features = ca-derivations
27+'';
28+```
29+
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.
32+
33+```
34+haskell-nix.project' {
35+ # ...
36+
37+ modules = [{
38+ contentAddressed = true;
39+ # packages.project-name.components.exes.executable.contentAddressed = true;
40+ }];
41+};
42+```
43+
44+Optionally you can also specify which components you don't want to be content addressed.
45+
46+## Known problems
47+### Limitation of the current CA derivations implementation
48+
49+As explained in the [RFC 62](https://github.com/tweag/rfcs/blob/cas-rfc/rfcs/0062-content-addressed-paths.md)
50+
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.
52+
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.
55+
56+This means that, in some cases, enabling CA derivations would lead to more rebuilds than not having it.
57+
58+### Hydra
59+Hydra currently doesn't support CA derivations, efforts are being made in this direction.
60+
61+
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.
64+
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/cross-compilation.md+1−1
@@ -90,7 +90,7 @@ executables you must add package overrides to:
9090```nix
9191{
9292 packages.bench.components.exes.bench.configureFlags =
93− stdenv.lib.optionals stdenv.hostPlatform.isMusl [
93+ lib.optionals stdenv.hostPlatform.isMusl [
9494 "--disable-executable-dynamic"
9595 "--disable-shared"
9696 "--ghc-option=-optl=-pthread"
docs/tutorials/development.md+23−15
@@ -34,13 +34,14 @@ themselves. This is what the [`shellFor`][shellFor] function does.
3434
3535```nix
3636# shell.nix
37−{ pkgs ? import <nixpkgs> {} }:
38−
3937let
40− hsPkgs = import ./default.nix { inherit pkgs; };
38+ project = import ./default.nix;
4139in
42− hsPkgs.shellFor {
43− # Include only the *local* packages of your project.
40+ project.shellFor {
41+ # ALL of these arguments are optional.
42+
43+ # List of packages from the project you want to work on in
44+ # the shell (default is all the projects local packages).
4445 packages = ps: with ps; [
4546 pkga
4647 pkgb
@@ -50,15 +51,22 @@ in
5051 # and provides a "hoogle" command to search the index.
5152 withHoogle = true;
5253
53− # You might want some extra tools in the shell (optional).
54−
5554 # Some common tools can be added with the `tools` argument
56− tools = { cabal = "3.2.0.0"; hlint = "2.2.11"; };
55+ tools = {
56+ cabal = "3.2.0.0";
57+ hlint = "latest"; # Selects the latest version in the hackage.nix snapshot
58+ haskell-language-server = "latest";
59+ };
5760 # See overlays/tools.nix for more details
5861
5962 # Some you may need to get some other way.
60− buildInputs = with pkgs.haskellPackages;
61− [ ghcid ];
63+ buildInputs = [ (import <nixpkgs> {}).git ];
64+
65+ # Sellect cross compilers to include.
66+ crossPlatforms = ps: with ps; [
67+ ghcjs # Adds support for `js-unknown-ghcjs-cabal build` in the shell
68+ # mingwW64 # Adds support for `x86_64-W64-mingw32-cabal build` in the shell
69+ ];
6270
6371 # Prevents cabal from choosing alternate plans, so that
6472 # *all* dependencies are provided by Nix.
@@ -77,15 +85,15 @@ If you need a local Hoogle for all the dependencies of your project create this
7785```nix
7886# shell-hoogle.nix
7987let
80− hsPkgs = import ./default.nix {};
88+ project = import ./default.nix {};
8189in
82− hsPkgs.shellFor {
90+ project.shellFor {
8391 packages = ps: [ps.my-package];
8492 withHoogle = true;
8593 }
8694```
8795
88−and run `nix-shell shell-hoogle.nix --run "hoogle server --local"`.
96+and run `nix-shell shell-hoogle.nix --run "hoogle server --local"`.
8997This will open a local Hoogle server at `http://127.0.0.1:8080`.
9098
9199
@@ -100,7 +108,7 @@ selects packages from the larger package set.
100108# shell.nix
101109let
102110 haskellNix = import (builtins.fetchTarball https://github.com/input-output-hk/haskell.nix/archive/master.tar.gz) {};
103− nixpkgs = import haskellNix.sources.nixpkgs-1909 haskellNix.nixpkgsArgs;
111+ nixpkgs = import haskellNix.sources.nixpkgs haskellNix.nixpkgsArgs;
104112 haskell = nixpkgs.haskell-nix;
105113in
106114 haskell.haskellPackages.ghcWithPackages (ps: with ps;
@@ -119,7 +127,7 @@ project.
119127```nix
120128let
121129 haskellNix = import (builtins.fetchTarball https://github.com/input-output-hk/haskell.nix/archive/master.tar.gz) {};
122− nixpkgs = import haskellNix.sources.nixpkgs-1909 haskellNix.nixpkgsArgs;
130+ nixpkgs = import haskellNix.sources.nixpkgs haskellNix.nixpkgsArgs;
123131 haskell = nixpkgs.haskell-nix;
124132in
125133 haskell.snapshots."lts-13.18".alex.components.exes.alex
docs/tutorials/getting-started-flakes.mdnew file+142
@@ -0,0 +1,142 @@
1+# Getting started with flakes
2+
3+This version of the getting started guide is for users who
4+are using [Nix Flakes](https://nixos.wiki/wiki/Flakes).
5+The non flakes version of the guide is [here](getting-started.md).
6+
7+`haskell.nix` can automatically translate your
8+[Cabal](https://cabal.readthedocs.io/en/latest/cabal-project.html)
9+or [Stack](https://docs.haskellstack.org/en/stable/README/#quick-start-guide)
10+project and its dependencies into Nix code.
11+
12+Assuming you have [Nix](https://nixos.org/download.html) installed, you can
13+start setting up your project.
14+
15+## Setting up the binary cache
16+
17+IMPORTANT: you *must* do this or you *will* build several copies of GHC!
18+
19+You can configure Nix to use our binary cache, which is pushed to by CI, so should contain the artifacts that you need.
20+
21+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).
22+
23+```
24+trusted-public-keys = [...] hydra.iohk.io:f/Ea+s+dFdN+3Y/G+FDgSq+a5NEWhJGzdjvKNGv0/EQ= [...]
25+substituters = [...] https://cache.iog.io [...]
26+```
27+
28+If you're running NixOS, you need to add/update the following in your `/etc/nixos/configuration.nix` files instead.
29+
30+```
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="
34+];
35+nix.settings.substituters = [
36+ "https://cache.iog.io"
37+];
38+```
39+
40+NixOS-21.11 and older use slightly different settings.
41+
42+```
43+# Binary Cache for Haskell.nix
44+nix.binaryCachePublicKeys = [
45+ "hydra.iohk.io:f/Ea+s+dFdN+3Y/G+FDgSq+a5NEWhJGzdjvKNGv0/EQ="
46+];
47+nix.binaryCaches = [
48+ "https://cache.iog.io"
49+];
50+```
51+
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).
53+
54+## Scaffolding
55+
56+The following work with `stack.yaml` and `cabal.project` based
57+projects.
58+
59+Add `flake.nix`:
60+
61+```nix
62+{
63+ description = "A very basic flake";
64+ inputs.haskellNix.url = "github:input-output-hk/haskell.nix";
65+ inputs.nixpkgs.follows = "haskellNix/nixpkgs-unstable";
66+ inputs.flake-utils.url = "github:numtide/flake-utils";
67+ outputs = { self, nixpkgs, flake-utils, haskellNix }:
68+ flake-utils.lib.eachSystem [ "x86_64-linux" "x86_64-darwin" ] (system:
69+ let
70+ overlays = [ haskellNix.overlay
71+ (final: prev: {
72+ # This overlay adds our project to pkgs
73+ helloProject =
74+ final.haskell-nix.project' {
75+ src = ./.;
76+ compiler-nix-name = "ghc8104";
77+ # This is used by `nix develop .` to open a shell for use with
78+ # `cabal`, `hlint` and `haskell-language-server`
79+ shell.tools = {
80+ cabal = {};
81+ hlint = {};
82+ haskell-language-server = {};
83+ };
84+ # Non-Haskell shell tools go here
85+ shell.buildInputs = with pkgs; [
86+ nixpkgs-fmt
87+ ];
88+ # This adds `js-unknown-ghcjs-cabal` to the shell.
89+ # shell.crossPlatforms = p: [p.ghcjs];
90+ };
91+ })
92+ ];
93+ pkgs = import nixpkgs { inherit system overlays; inherit (haskellNix) config; };
94+ flake = pkgs.helloProject.flake {
95+ # This adds support for `nix build .#js-unknown-ghcjs-cabal:hello:exe:hello`
96+ # crossPlatforms = p: [p.ghcjs];
97+ };
98+ in flake // {
99+ # Built by `nix build .`
100+ defaultPackage = flake.packages."hello:exe:hello";
101+ });
102+}
103+```
104+
105+!!! note "git dependencies"
106+ If you have git dependencies in your project, you'll need
107+ to [calculate sha256 hashes for them](./source-repository-hashes.md).
108+
109+### Working with a project
110+
111+Top-level attributes are Haskell packages (incl. dependencies) part of your project.
112+
113+To build the library component of a package in the project run:
114+
115+```shell
116+nix build .#your-package-name:lib:your-package-name
117+```
118+
119+There are also other components such as `exe`, `test` and `benchmark`.
120+To build an executable:
121+
122+```shell
123+nix build .#your-package-name:exe:your-exe-name
124+```
125+
126+To use the `devShell` provided by the flake run:
127+
128+```shell
129+nix develop .
130+cabal repl your-package-name:lib:your-package-name
131+cabal build your-package-name
132+```
133+
134+To open a shell for use with `stack` see [the following issue](https://github.com/input-output-hk/haskell.nix/issues/689#issuecomment-643832619).
135+
136+## Going forward
137+
138+Read through [project](../reference/library.md#project) function reference to see how the API works.
139+
140+There are a number of things to explore further in the tutorials section.
141+
142+[haskell.nix]: https://github.com/input-output-hk/haskell.nix
docs/tutorials/getting-started-hix.mdnew file+227
@@ -0,0 +1,227 @@
1+# Getting started with Hix
2+
3+The `hix` tools are wrappers for the various `nix` tools that
4+use `haskell.nix` without the need to add any `.nix` files.
5+
6+This is useful for:
7+
8+* A quick way to try out haskell.nix for new users.
9+
10+* Using haskell.nix to work on projects that do not have
11+ `.nix` files.
12+
13+* Testing to see if `haskell.nix` can build a project.
14+
15+* Making `flake` and `non flake` configurations to check `haskell.nix`
16+ treats them the same.
17+
18+## Installing Nix
19+
20+To use Hix you will need to install [Nix](https://nixos.org/download.html).
21+
22+## Setting up the binary cache
23+
24+IMPORTANT: you *must* do this or you *will* build several copies of GHC!
25+
26+You can configure Nix to use our binary cache, which is pushed to by CI, so should contain the artifacts that you need.
27+
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).
29+
30+```
31+trusted-public-keys = [...] hydra.iohk.io:f/Ea+s+dFdN+3Y/G+FDgSq+a5NEWhJGzdjvKNGv0/EQ= [...]
32+substituters = [...] https://cache.iog.io [...]
33+```
34+
35+If you're running NixOS, you need to add/update the following in your `/etc/nixos/configuration.nix` files instead.
36+
37+```
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="
41+];
42+nix.settings.substituters = [
43+ "https://cache.iog.io"
44+];
45+```
46+
47+NixOS-21.11 and older use slightly different settings.
48+
49+```
50+# Binary Cache for Haskell.nix
51+nix.binaryCachePublicKeys = [
52+ "hydra.iohk.io:f/Ea+s+dFdN+3Y/G+FDgSq+a5NEWhJGzdjvKNGv0/EQ="
53+];
54+nix.binaryCaches = [
55+ "https://cache.iog.io"
56+];
57+```
58+
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).
60+
61+## Installing Hix
62+
63+```
64+nix-env -iA hix -f https://github.com/input-output-hk/haskell.nix/tarball/master
65+```
66+
67+## Updating Hix (also updates hackage)
68+
69+```
70+hix update
71+```
72+
73+This is also necessary to make the latest nightly snapshot of hackage
74+avaiable to nix.
75+
76+## Building with Hix
77+
78+To run `cabal build` in a nix-shell with all the dependencies required:
79+
80+```
81+cabal unpack hello
82+cd hello-1.0.0.2
83+hix-shell --run 'cabal build'
84+```
85+
86+Build with nix:
87+
88+```
89+hix-build -A hsPkgs.hello.components.exes.hello
90+```
91+
92+Cross compile to JavaScript:
93+
94+```
95+hix-build -A projectCross.ghcjs.hsPkgs.hello.components.exes.hello
96+```
97+
98+## Configuring Hix
99+
100+The configuration arguments for `Hix` can be (from highest precedence to lowest):
101+
102+* Passed on the command line with `--arg` (or `--argstr` for string args).
103+
104+* Placed in `nix/hix.nix` file in the project dir.
105+
106+* Placed in `~/.config/hix/hix.conf`
107+
108+For example to build with GHC 8.10.7:
109+
110+```
111+hix-shell --argstr compiler-nix-name ghc8107 --run 'cabal build'
112+```
113+
114+or add a `nix/hix.nix` or `~/.config/hix/hix.conf` file:
115+
116+```nix
117+{ compiler-nix-name = "ghc8107"; }
118+```
119+
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):
122+
123+```nix
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)
132+
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.
135+
136+}
137+```
138+
139+## Adding Nix Support with Niv
140+
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
143+install Hix).
144+
145+[Niv](https://github.com/nmattia/niv) is a command line tool for keeping track of Nix project dependencies.
146+
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:
149+
150+```
151+niv init
152+niv add input-output-hk/haskell.nix -n haskellNix
153+```
154+
155+Add `default.nix`:
156+
157+```nix
158+(import (import nix/sources.nix).haskellNix {}).hix.project { src = ./.; }
159+```
160+
161+If you want to also pin `nixpkgs` with Niv use:
162+
163+```nix
164+let
165+ sources = import nix/sources.nix;
166+in
167+ (import sources.haskellNix {}).hix.project {
168+ inherit (sources) nixpkgs;
169+ src = ./.;
170+ }
171+```
172+
173+Add `shell.nix`:
174+
175+```nix
176+(import ./.).shell
177+```
178+
179+When you want to update to the latest version of haskell.nix use:
180+
181+```
182+niv update haskellNix
183+```
184+
185+## Adding Nix Flake Support
186+
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'`
190+
191+The `nixpkgs` used will need to be selected as a flake input (any selection
192+made in `nix/hix.nix` will be ignored).
193+
194+Example `flake.nix` file:
195+
196+```nix
197+{
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:
204+ let
205+ overlays = [ haskellNix.overlay
206+ (final: prev: {
207+ # This overlay adds our project to pkgs
208+ helloProject =
209+ final.haskell-nix.hix.project {
210+ src = ./.;
211+ # Other project options can be put in `nix/hix.nix`
212+ };
213+ })
214+ ];
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];
219+ };
220+ in flake // {
221+ # Built by `nix build .`
222+ defaultPackage = flake.packages."hello:exe:hello";
223+ });
224+}
225+```
226+
227+
docs/tutorials/getting-started.md+110−26
@@ -18,10 +18,61 @@ You need to add the following sections to `/etc/nix/nix.conf` or, if you are a t
1818
1919```
2020trusted-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 [...]
2222```
2323
24−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).
24+If you're running NixOS, you need to add/update the following in your `/etc/nixos/configuration.nix` files instead.
25+
26+```
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="
30+];
31+nix.settings.substituters = [
32+ "https://cache.iog.io"
33+];
34+```
35+
36+NixOS-21.11 and older use slightly different settings.
37+
38+```
39+# Binary Cache for Haskell.nix
40+nix.binaryCachePublicKeys = [
41+ "hydra.iohk.io:f/Ea+s+dFdN+3Y/G+FDgSq+a5NEWhJGzdjvKNGv0/EQ="
42+];
43+nix.binaryCaches = [
44+ "https://cache.iog.io"
45+];
46+```
47+
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).
49+
50+## Niv
51+
52+[Niv](https://github.com/nmattia/niv) is a command line tool for keeping track of Nix project dependencies.
53+
54+This guide assumes that the `sources.haskellNix` will be set to point
55+a pinned copy of the haskell.nix github repo. One easy way to do this
56+is to use Niv. If you prefer not to use Niv another option is described
57+in the in the "Using haskell.nix without niv" section of this document.
58+
59+If you want to use Nix Flakes to pin your dependencies then you should
60+consider following the [Getting started with flakes](./getting-started-flakes.md)
61+document instead of this one.
62+
63+After installing niv you can initialize niv and pin the latest haskell.nix
64+commit by running the following in the root directory of the project:
65+
66+```
67+niv init
68+niv add input-output-hk/haskell.nix -n haskellNix
69+```
70+
71+Then when you want to update to the latest version of haskellNix use:
72+
73+```
74+niv update haskellNix
75+```
2576
2677## Scaffolding
2778
@@ -31,21 +82,28 @@ projects.
3182Add `default.nix`:
3283
3384```nix
34−{ # Fetch the latest haskell.nix and import its default.nix
35− haskellNix ? import (builtins.fetchTarball "https://github.com/input-output-hk/haskell.nix/archive/master.tar.gz") {}
36−
37−# haskell.nix provides access to the nixpkgs pins which are used by our CI,
38−# hence you will be more likely to get cache hits when using these.
39−# But you can also just use your own, e.g. '<nixpkgs>'.
40−, nixpkgsSrc ? haskellNix.sources.nixpkgs-2003
41−
42−# haskell.nix provides some arguments to be passed to nixpkgs, including some
43−# patches and also the haskell.nix functionality itself as an overlay.
44−, nixpkgsArgs ? haskellNix.nixpkgsArgs
45−
46−# import nixpkgs with overlays
47−, pkgs ? import nixpkgsSrc nixpkgsArgs
48−}: pkgs.haskell-nix.project {
85+let
86+ # Read in the Niv sources
87+ sources = import ./nix/sources.nix {};
88+ # If ./nix/sources.nix file is not found run:
89+ # niv init
90+ # niv add input-output-hk/haskell.nix -n haskellNix
91+
92+ # Fetch the haskell.nix commit we have pinned with Niv
93+ haskellNix = import sources.haskellNix {};
94+ # If haskellNix is not found run:
95+ # niv add input-output-hk/haskell.nix -n haskellNix
96+
97+ # Import nixpkgs and pass the haskell.nix provided nixpkgsArgs
98+ pkgs = import
99+ # haskell.nix provides access to the nixpkgs pins which are used by our CI,
100+ # hence you will be more likely to get cache hits when using these.
101+ # But you can also just use your own, e.g. '<nixpkgs>'.
102+ haskellNix.sources.nixpkgs-unstable
103+ # These arguments passed to nixpkgs, include some patches and also
104+ # the haskell.nix functionality itself as an overlay.
105+ haskellNix.nixpkgsArgs;
106+in pkgs.haskell-nix.project {
49107 # 'cleanGit' cleans a source directory based on the files known by git
50108 src = pkgs.haskell-nix.haskellLib.cleanGit {
51109 name = "haskell-nix-project";
@@ -77,20 +135,47 @@ To build an executable:
77135nix-build -A your-package-name.components.exes.your-exe-name
78136```
79137
80−To open a shell for use with `cabal` run:
138+To cross compile use the `projectCross` attribute:
139+
140+```
141+nix-build -A projectCross.ghcjs.hsPkgs.your-package-name.components.exes.your-exe-name
142+nix-build -A projectCross.mingwW64.hsPkgs.your-package-name.components.exes.your-exe-name
143+```
144+
145+To open a shell for use with `cabal`, `hlint` and `haskell-language-server` add `shell.nix`:
146+
147+```nix
148+(import ./default.nix).shellFor {
149+ tools = {
150+ cabal = "3.2.0.0";
151+ hlint = "latest";
152+ haskell-language-server = "latest";
153+ };
154+}
155+```
156+
157+Then run:
81158
82159```shell
83−nix-shell -A shellFor
160+nix-shell
84161cabal new-repl your-package-name:library:your-package-name
85162cabal new-build your-package-name
86163```
87164
88165To open a shell for use with `stack` see [the following issue](https://github.com/input-output-hk/haskell.nix/issues/689#issuecomment-643832619).
89166
90−### Pinning the [haskell.nix][] version
167+## Using haskell.nix without Niv
168+
169+If you would prefer not to use niv you can replace
170+`sources = import ./nix/sources.nix {};` in the examples with:
171+
172+```nix
173+let sources = {
174+ haskellNix = builtins.fetchTarball "https://github.com/input-output-hk/haskell.nix/archive/master.tar.gz";
175+ };
176+```
91177
92−For simplicity's sake we will use `fetchTarball` for the examples in
93−this documentation. This will always get the latest version, and is
178+The `fetchTarball` call above will always get the latest version, and is
94179similar to an auto-updating Nix channel.
95180
96181However, in your own project, you may wish to pin [haskell.nix][] (as
@@ -100,10 +185,9 @@ predictable, and faster (because the fixed version is cached).
100185Straightforward way of doing this is to change the branch name to a revision.
101186
102187```nix
103−{ # Fetch a specific haskell.nix and import its default.nix
104− haskellNix ? import (builtins.fetchTarball "https://github.com/input-output-hk/haskell.nix/archive/f1a94a4c82a2ab999a67c3b84269da78d89f0075.tar.gz") {}
105−
106−...
188+let sources = {
189+ haskellNix = builtins.fetchTarball "https://github.com/input-output-hk/haskell.nix/archive/f1a94a4c82a2ab999a67c3b84269da78d89f0075.tar.gz";
190+ };
107191```
108192
109193There are other possible schemes for pinning. See
docs/tutorials/materialization.md+99−115
@@ -2,7 +2,7 @@
22
33## What is materialization?
44
5−Capturing and storing the nix files for a project so that they do
5+Capturing and storing the Nix files for a project so that they do
66not need to be built (or checked). This allows us to cache the input
77of an IFD (import from derivation).
88
@@ -16,143 +16,146 @@ dependencies of nix-tools for instance).
1616 is not unusual for it to take 5 seconds per project).
1717
1818* They can be slow to build (or download) on machines that do not
19− yet have them in the nix store.
19+ yet have them in the Nix store.
2020
21−* Hydra does not show progress because it does not provide feedback
22− until it has a list of jobs and the list of jobs cannot depends
23− on the nix being present (although this is often blamed on IFD
24− it would be the same if it wrote out JSON files and read them in)
21+* Hydra does not show progress because it does not provide feedback until it
22+ has a list of jobs and the list of jobs cannot depend on the Nix expressions
23+ being present (although this is often blamed on IFD it would be the same if
24+ it wrote out JSON files and read them in)
2525
26−## When is it ok to materialize?
26+## When is it OK to materialize?
2727
28−* The nix is unlikely to change frequently (and when it does you
28+* The Nix expressions are unlikely to change frequently (and when it does you
2929 are happy to manually update it).
3030
31−* You are happy to script something to update the materialized
32− nix files automatically.
33−* You are certain that the IFD you materialize is not `system`-dependent. If it was you'd
34− obtain different nix expressions depending on which `system` the IFD was evaluated.
31+* You are happy to script something to update the materialized Nix files
32+ automatically.
3533
36−## How can we materialize the nix files?
34+* You are certain that the IFD you materialize is not `system`-dependent. If it
35+ was you'd obtain different Nix expressions depending on which `system` the
36+ IFD was evaluated.
3737
38−Lets say we want to build `hlint`. We might start with an `hlint`
38+## How can we materialize the Nix files?
39+
40+Lets say we want to build `hlint`. We might start with an `hlint.nix`
3941file that looks like this:
4042
4143```nix
4244let inherit (import ./. {}) sources nixpkgsArgs;
4345 pkgs = import sources.nixpkgs nixpkgsArgs;
4446 hlint = pkgs.haskell-nix.hackage-package {
45− compiler-nix-name = "ghc884";
47+ compiler-nix-name = "ghc8102";
4648 name = "hlint";
4749 version = "2.2.11";
4850 };
49−in hlint.components.exes.hlint
51+in hlint
5052```
5153
5254Building this may result in a lot of output, but if you build
5355it again it should give just:
5456
5557```
56−$ nix-build hlint.nix
57−trace: Using latest index state for hlint!
58−trace: Using index-state: 2020-04-15T00:00:00Z for hlint
59−/nix/store/rnfz66v7k8i38c8rsmchzsyqjrmrbdpk-hlint-2.2.11-exe-hlint
58+$ nix-build hlint.nix -A components.exes.hlint
59+trace: No index state specified for hlint, using the latest index state that we know about (2021-01-04T00:00:00Z)!
60+/nix/store/2ybrfmcp79gg75ad4pr1cbxjak70yg8b-hlint-exe-hlint-2.2.11
6061```
6162
62−To materialize the nix files we need to take care to pin down the
63−inputs. For cabal projects this means we must specify the
64−`index-state` of hackage we want to use:
63+To materialize the Nix files we need to take care to pin down the inputs. Stack
64+projects have their inputs pinned through specifying the snapshot. For cabal
65+projects this means we must specify the `index-state` of hackage we want to
66+use:
6567
6668```nix
6769let inherit (import ./. {}) sources nixpkgsArgs;
6870 pkgs = import sources.nixpkgs nixpkgsArgs;
6971 hlint = pkgs.haskell-nix.hackage-package {
70− compiler-nix-name = "ghc884";
72+ compiler-nix-name = "ghc8102";
7173 name = "hlint";
7274 version = "2.2.11";
73− index-state = "2020-04-15T00:00:00Z";
75+ index-state = "2021-01-04T00:00:00Z";
7476 };
75−in hlint.components.exes.hlint
77+in hlint
7678```
7779
78−Now if we build again we get a hint telling use how to
79−calculate a suitable sha256 hash to turn the derivation
80−containing the nix files into a fixed output derivation:
80+Now if we build again we get a hint telling use how to calculate a suitable
81+sha256 hash to turn the derivation containing the Nix files into a fixed-output
82+derivation:
8183
8284```
83−$ nix-build hlint.nix
84−trace: Using index-state: 2020-04-15T00:00:00Z for hlint
85−trace: Get `plan-sha256` with `nix-hash --base32 --type sha256 /nix/store/8z6p4237rin3c6c1lmjwshmj8rdqrhw2-hlint-plan-to-nix-pkgs/`
86−/nix/store/rnfz66v7k8i38c8rsmchzsyqjrmrbdpk-hlint-2.2.11-exe-hlint
87−
88−$ nix-hash --base32 --type sha256 /nix/store/8z6p4237rin3c6c1lmjwshmj8rdqrhw2-hlint-plan-to-nix-pkgs/
89−02hasr27a994sml1fzf8swb716lm6lgixxr53y0gxkhw437xkck4
85+$ nix-build hlint.nix -A components.exes.hlint
86+trace: To make project.plan-nix for hlint a fixed-output derivation but not materialized, set `plan-sha256` to the output of the 'calculateMaterializedSha' script in 'passthru'.
87+trace: To materialize project.plan-nix for hlint entirely, pass a writable path as the `materialized` argument and run the 'updateMaterialized' script in 'passthru'.
88+/nix/store/2ybrfmcp79gg75ad4pr1cbxjak70yg8b-hlint-exe-hlint-2.2.11
89+
90+$ nix-build hlint.nix -A project.plan-nix.passthru.calculateMaterializedSha | bash
91+trace: To make project.plan-nix for hlint a fixed-output derivation but not materialized, set `plan-sha256` to the output of the 'calculateMaterializedSha' script in 'passthru'.
92+trace: To materialize project.plan-nix for hlint entirely, pass a writable path as the `materialized` argument and run the 'updateMaterialized' script in 'passthru'.
93+04hdgqwpaswmyb0ili7fwi6czzihd6x0jlvivw52d1i7wv4gaqy7
9094```
9195
92−We can add the hash as `plan-sha256` or (`stack-sha256` for
93−stack projects)
96+For a Stack project all occurences of `plan-nix` and `plan-sha256` are replaced
97+by `stack-nix` and `stack-sha256`, respectively. We can add the hash as
98+`plan-sha256`:
9499
95100```nix
96101let inherit (import ./. {}) sources nixpkgsArgs;
97102 pkgs = import sources.nixpkgs nixpkgsArgs;
98103 hlint = pkgs.haskell-nix.hackage-package {
99− compiler-nix-name = "ghc884";
104+ compiler-nix-name = "ghc8102";
100105 name = "hlint";
101106 version = "2.2.11";
102− index-state = "2020-04-15T00:00:00Z";
103− plan-sha256 = "02hasr27a994sml1fzf8swb716lm6lgixxr53y0gxkhw437xkck4";
107+ index-state = "2021-01-04T00:00:00Z";
108+ plan-sha256 = "04hdgqwpaswmyb0ili7fwi6czzihd6x0jlvivw52d1i7wv4gaqy7";
104109 };
105−in hlint.components.exes.hlint
110+in hlint
106111```
107112
108−Just adding the hash might help reuse of the cached nix, but nix will
109−still calculate all the dependencies (which can add seconds to
110−`nix-build` and `nix-shell` commands when no other work is needed)
111−and users who do not yet have the dependencies in their store will have
112−to wait while they are built or downloaded.
113+Just adding the hash might help reuse of the cached Nix expressions, but Nix
114+will still calculate all the dependencies (which can add seconds to `nix-build`
115+and `nix-shell` commands when no other work is needed) and users who do not yet
116+have the dependencies in their store will have to wait while they are built or
117+downloaded.
113118
114−Running nix build again gives us a hint on what we can do next:
119+Running `nix-build` again gives us a hint on what we can do next:
115120
116121```
117−$ nix-build hlint.nix
118−trace: Using index-state: 2020-04-15T00:00:00Z for hlint
119−trace: To materialize, point `materialized` to a copy of /nix/store/kk047cqsjvbj4w8psv4l05abdcnyrqdc-hlint-plan-to-nix-pkgs
120−/nix/store/rnfz66v7k8i38c8rsmchzsyqjrmrbdpk-hlint-2.2.11-exe-hlint
122+$ nix-build hlint.nix -A components.exes.hlint
123+trace: To materialize project.plan-nix for hlint entirely, pass a writable path as the `materialized` argument and run the 'updateMaterialized' script in 'passthru'.
124+/nix/store/2ybrfmcp79gg75ad4pr1cbxjak70yg8b-hlint-exe-hlint-2.2.11
121125```
122126
123−To capture the nix we can do something like:
127+To capture the Nix expressions we can do something like:
124128
125129```nix
126130let inherit (import ./. {}) sources nixpkgsArgs;
127131 pkgs = import sources.nixpkgs nixpkgsArgs;
128132 hlint = pkgs.haskell-nix.hackage-package {
129− compiler-nix-name = "ghc884";
133+ compiler-nix-name = "ghc8102";
130134 name = "hlint";
131135 version = "2.2.11";
132− index-state = "2020-04-15T00:00:00Z";
133− plan-sha256 = "02hasr27a994sml1fzf8swb716lm6lgixxr53y0gxkhw437xkck4";
136+ index-state = "2021-01-04T00:00:00Z";
137+ plan-sha256 = "04hdgqwpaswmyb0ili7fwi6czzihd6x0jlvivw52d1i7wv4gaqy7";
134138 materialized = ./hlint.materialized;
135139 };
136−in hlint.components.exes.hlint
140+in hlint
137141```
138142
139−Now we can copy the nix files needed and build with:
143+Now we can copy the Nix files needed and build with:
140144
141145```
142−$ cp -r /nix/store/8z6p4237rin3c6c1lmjwshmj8rdqrhw2-hlint-plan-to-nix-pkgs hlint.materialized
143−$ nix-build hlint.nix
144−/nix/store/rnfz66v7k8i38c8rsmchzsyqjrmrbdpk-hlint-2.2.11-exe-hlint
146+$ nix-build hlint.nix 2>&1 | grep -om1 '/nix/store/.*-updateMaterialized' | bash
147+$ nix-build hlint.nix -A components.exes.hlint
148+building '/nix/store/wpxsgzl1z4jnhfqzmzg3xxv3ljpmzr5h-hlint-plan-to-nix-pkgs.drv'...
149+/nix/store/2ybrfmcp79gg75ad4pr1cbxjak70yg8b-hlint-exe-hlint-2.2.11
145150```
146151
147−We may want to run `chmod -R +w hlint.materialized` as the files copied from the
148−store will be read only.
149−
150152## How can we check `sha256` and `materialized` are up to date?
151153
152154Let's pretend we had to go back to `hlint` version `2.2.10`.
153155We can tell haskell.nix to check the materialization either by:
154156
155157* Removing the materialization files with `rm -rf hlint.materialized`
158+
156159* Temporarily adding `checkMaterialization = true;`
157160
158161If we choose to add the `checkMaterialization` flag you would have:
@@ -161,68 +164,50 @@ If we choose to add the `checkMaterialization` flag you would have:
161164let inherit (import ./. {}) sources nixpkgsArgs;
162165 pkgs = import sources.nixpkgs nixpkgsArgs;
163166 hlint = pkgs.haskell-nix.hackage-package {
164− compiler-nix-name = "ghc884";
167+ compiler-nix-name = "ghc8102";
165168 name = "hlint";
166169 version = "2.2.10";
167− index-state = "2020-04-15T00:00:00Z";
168− plan-sha256 = "02hasr27a994sml1fzf8swb716lm6lgixxr53y0gxkhw437xkck4";
170+ index-state = "2021-01-04T00:00:00Z";
171+ plan-sha256 = "04hdgqwpaswmyb0ili7fwi6czzihd6x0jlvivw52d1i7wv4gaqy7";
169172 materialized = ./hlint.materialized;
170173 checkMaterialization = true;
171174 };
172−in hlint.components.exes.hlint
175+in hlint
173176```
174177
175178This will fail and report the details of what is wrong and how to fix it:
176179
177180```
178−$ nix-build hlint.nix
181+$ nix-build hlint.nix -A components.exes.hlint
179182
180183...
181184
182−Calculated hash for hlint-plan-to-nix-pkgs was not 02hasr27a994sml1fzf8swb716lm6lgixxr53y0gxkhw437xkck4. New hash is :
183− plan-sha256 = "0zsi3wv92qax33ic4n5dfsqd1r9qam1k75za3c5jqgdxl3hy8vph";
184−Materialized nix used for hlint-plan-to-nix-pkgs incorrect. To fix run :
185− rm -rf /Users/hamish/iohk/haskell.nix/hlint.materialized
186− cp -r /nix/store/ywdhbx9rzzkfc60c5vzk7cins2hnvkgx-hlint-plan-to-nix-pkgs /Users/hamish/iohk/haskell.nix/hlint.materialized
187− chmod -R +w /Users/hamish/iohk/haskell.nix/hlint.materialized
188−builder for '/nix/store/a5zmgfjfxahapw0q8hd2da5bg7knqvbx-hlint-plan-to-nix-pkgs.drv' failed with exit code 1
189−error: build of '/nix/store/a5zmgfjfxahapw0q8hd2da5bg7knqvbx-hlint-plan-to-nix-pkgs.drv' failed
185+Calculated hash for hlint-plan-to-nix-pkgs was not 04hdgqwpaswmyb0ili7fwi6czzihd6x0jlvivw52d1i7wv4gaqy7. New hash is :
186+ plan-sha256 = "0jsgdmii0a6b35sd42cpbc83s4sp4fbx8slphzvamq8n9x49i5b6";
187+Materialized nix used for hlint-plan-to-nix-pkgs incorrect. To fix run: /nix/store/6wp0zzal40ls874f5ddpaac7qmii9y4z-updateMaterialized
188+builder for '/nix/store/61a0vginv76w4p9ycyd628pjanav06pl-hlint-plan-to-nix-pkgs.drv' failed with exit code 1
189+error: build of '/nix/store/61a0vginv76w4p9ycyd628pjanav06pl-hlint-plan-to-nix-pkgs.drv' failed
190190(use '--show-trace' to show detailed location information)
191191```
192192
193−Checking the materialization requires nix to do all the work that materialization
194−avoids. So while it might be tempting to leave `checkMaterialization = true` all
195−the time, we would be better off just removing `materialized` and `plan-sha256`.
193+Checking the materialization requires Nix to do all the work that
194+materialization avoids. So while it might be tempting to leave
195+`checkMaterialization = true` all the time, we would be better off just
196+removing `materialized` and `plan-sha256`.
196197
197−## How can we update the nix files with a script?
198+## How can we update the Nix files with a script?
198199
199−There are versions of the functions (`project'`, `cabalProject'`,
200−`stackProject'` and `hackage-project`) that also return the nix as
201−`plan-nix` or `stack-nix`. By calling one of these functions without
202−the hash and materialized nix we can find out what nix files should be.
203−For instance:
200+We can simply put the commands we used earlier in a script:
204201
205202```nix
206−let inherit (import ./. {}) sources nixpkgsArgs;
207− pkgs = import sources.nixpkgs nixpkgsArgs;
208− hlint = pkgs.haskell-nix.hackage-project {
209− compiler-nix-name = "ghc884";
210− name = "hlint";
211− version = "2.2.10";
212− index-state = "2020-04-15T00:00:00Z";
213− };
214−in hlint
215−```
203+#!/bin/sh
216204
217−```
218−$ nix-build hlint.nix -A plan-nix
219−trace: Using index-state: 2020-04-15T00:00:00Z for hlint
220−trace: Get `plan-sha256` with `nix-hash --base32 --type sha256 /nix/store/ywdhbx9rzzkfc60c5vzk7cins2hnvkgx-hlint-plan-to-nix-pkgs/`
221−/nix/store/ywdhbx9rzzkfc60c5vzk7cins2hnvkgx-hlint-plan-to-nix-pkgs
222−```
205+# Output new plan-sha256
206+nix-build hlint.nix -A project.plan-nix.passthru.calculateMaterializedSha | bash
223207
224−We can have the script copy `$(nix-build hlint.nix -A plan-nix --no-out-link)`
225−and use `nix-hash` to calculate the new value for `plan-sha256`.
208+# Update materialized Nix expressions
209+nix-build hlint.nix 2>&1 | grep -om1 '/nix/store/.*-updateMaterialized' | bash
210+```
226211
227212## Can we skip making a copy and use `materialized = /nix/store/...`?
228213
@@ -231,7 +216,7 @@ Yes and it gives us the same speed improvement, however:
231216* It does not help at all in `restricted-eval` mode (Hydra).
232217
233218* Users will still wind up building or downloading the dependencies
234− needed to build the nix files (if they do not have them).
219+ needed to build the Nix files (if they do not have them).
235220
236221For those reasons it might be best to make a copy instead
237222of using the `/nix/store/...` path directly.
@@ -243,30 +228,29 @@ a non-existing path is now an error:
243228```nix
244229let inherit (import ./. {}) sources nixpkgsArgs;
245230 pkgs = import sources.nixpkgs nixpkgsArgs;
246− hlintPlan = /nix/store/kk047cqsjvbj4w8psv4l05abdcnyrqdc-hlint-plan-to-nix-pkgs;
231+ hlintPlan = /nix/store/63k3f8bvsnag7v36vb3149208jyx61rk-hlint-plan-to-nix-pkgs;
247232 hlint = pkgs.haskell-nix.hackage-package {
248− compiler-nix-name = "ghc884";
233+ compiler-nix-name = "ghc8102";
249234 name = "hlint";
250235 version = "2.2.11";
251− index-state = "2020-04-15T00:00:00Z";
252− plan-sha256 = "02hasr27a994sml1fzf8swb716lm6lgixxr53y0gxkhw437xkck4";
236+ index-state = "2021-01-04T00:00:00Z";
237+ plan-sha256 = "04hdgqwpaswmyb0ili7fwi6czzihd6x0jlvivw52d1i7wv4gaqy7";
253238 materialized = if __pathExists hlintPlan then hlintPlan else null;
254239 };
255−in hlint.components.exes.hlint
240+in hlint
256241```
257242
258243Running when no building is needed is still slow in restricted evaluation mode.
259244
260245```
261−$ time nix-build --option restrict-eval true -I . --option allowed-uris "https://github.com/NixOS https://github.com/input-output-hk" hlint.nix --show-trace
262−trace: Using index-state: 2020-04-15T00:00:00Z for hlint
263−/nix/store/rnfz66v7k8i38c8rsmchzsyqjrmrbdpk-hlint-2.2.11-exe-hlint
246+$ time nix-build --option restrict-eval true -I . --option allowed-uris "https://github.com/NixOS https://github.com/input-output-hk" hlint.nix -A components.exes.hlint --show-trace
247+/nix/store/2ybrfmcp79gg75ad4pr1cbxjak70yg8b-hlint-exe-hlint-2.2.11
264248
265249real 0m4.463s
266250user 0m4.440s
267251sys 0m0.461s
268−$ time nix-build hlint.nix
269−/nix/store/rnfz66v7k8i38c8rsmchzsyqjrmrbdpk-hlint-2.2.11-exe-hlint
252+$ time nix-build hlint.nix -A components.exes.hlint
253+/nix/store/2ybrfmcp79gg75ad4pr1cbxjak70yg8b-hlint-exe-hlint-2.2.11
270254
271255real 0m2.206s
272256user 0m1.665s
docs/tutorials/pkg-map.md+32−6
@@ -3,10 +3,10 @@
33Cabal files may contain dependencies to external non-Haskell
44dependencies via:
55
6−* [`build-tool-depends`](https://cabal.readthedocs.io/en/latest/developing-packages.html#pkg-field-build-tool-depends)
7−* [`pkgconfig-depends`](https://cabal.readthedocs.io/en/latest/developing-packages.html#pkg-field-pkgconfig-depends)
8−* [`frameworks`](https://cabal.readthedocs.io/en/latest/developing-packages.html#pkg-field-frameworks)
9−* [`extra-libraries`](https://cabal.readthedocs.io/en/latest/developing-packages.html#pkg-field-extra-libraries)
6+* [`build-tool-depends`](https://cabal.readthedocs.io/en/latest/cabal-package.html#pkg-field-build-tool-depends)
7+* [`pkgconfig-depends`](https://cabal.readthedocs.io/en/latest/cabal-package.html#pkg-field-pkgconfig-depends)
8+* [`frameworks`](https://cabal.readthedocs.io/en/latest/cabal-package.html#pkg-field-frameworks)
9+* [`extra-libraries`](https://cabal.readthedocs.io/en/latest/cabal-package.html#pkg-field-extra-libraries)
1010
1111If there is a `pkgs` attribute in Nixpkgs that matches the name given
1212in the Cabal file, then it will be added as a dependency (see the
@@ -29,13 +29,39 @@ nixpkgs.overlays = [
2929];
3030```
3131
32+### Replace libraries of components
33+
34+If a component is missing a dependency it can be added via modules. For example:
35+
36+``` nix
37+project = pkgs.haskell-nix.project' {
38+ src = self;
39+ compiler-nix-name = "ghc8102";
40+ modules = [{
41+ # Replace `extra-libraries` dependencies
42+ packages.X11.components.library.libs = pkgs.lib.mkForce (with pkgs.xorg;
43+ [ libX11 libXrandr libXext libXScrnSaver libXinerama ]);
44+ }];
45+};
46+```
47+
3248### Mapping in Haskell.nix
3349
3450Alternatively, if the name is commonly used, an alias can be added to
3551the Haskell.nix sources, so that it's solved for all users.
3652
37−* [`lib/pkgconf-nixpkgs-map.nix`](https://github.com/input-output-hk/haskell.nix/blob/master/lib/pkgconf-nixpkgs-map.nix) - for `pkgconfig-depends`
38−* [`lib/system-nixpkgs-map.nix`](https://github.com/input-output-hk/haskell.nix/blob/master/lib/system-nixpkgs-map.nix) - for `build-tool-depends`, `frameworks`, `extra-libraries`, etc.
53+* [`lib/pkgconf-nixpkgs-map.nix`](https://github.com/input-output-hk/haskell.nix/blob/master/lib/pkgconf-nixpkgs-map.nix)
54+ — for `pkgconfig-depends`.
55+
56+ Each mapping entry is a list of packages.
57+
58+* [`lib/system-nixpkgs-map.nix`](https://github.com/input-output-hk/haskell.nix/blob/master/lib/system-nixpkgs-map.nix)
59+ — for `build-tool-depends`, `frameworks`, `extra-libraries`, etc.
60+
61+ Each name can be mapped to:
62+ 1. A single package from nixkpgs.
63+ 2. `null` — eliminates the dependency
64+ 3. A list of packages — sometimes needed for dependencies such as `X11`.
3965
4066!!! tip "Open a PR"
4167 Please go ahead and open a [pull request](https://github.com/input-output-hk/haskell.nix/pulls)
flake.locknew file+396
@@ -0,0 +1,396 @@
1+{
2+ "nodes": {
3+ "HTTP": {
4+ "flake": false,
5+ "locked": {
6+ "lastModified": 1451647621,
7+ "narHash": "sha256-oHIyw3x0iKBexEo49YeUDV1k74ZtyYKGR2gNJXXRxts=",
8+ "owner": "phadej",
9+ "repo": "HTTP",
10+ "rev": "9bc0996d412fef1787449d841277ef663ad9a915",
11+ "type": "github"
12+ },
13+ "original": {
14+ "owner": "phadej",
15+ "repo": "HTTP",
16+ "type": "github"
17+ }
18+ },
19+ "cabal-32": {
20+ "flake": false,
21+ "locked": {
22+ "lastModified": 1603716527,
23+ "narHash": "sha256-X0TFfdD4KZpwl0Zr6x+PLxUt/VyKQfX7ylXHdmZIL+w=",
24+ "owner": "haskell",
25+ "repo": "cabal",
26+ "rev": "48bf10787e27364730dd37a42b603cee8d6af7ee",
27+ "type": "github"
28+ },
29+ "original": {
30+ "owner": "haskell",
31+ "ref": "3.2",
32+ "repo": "cabal",
33+ "type": "github"
34+ }
35+ },
36+ "cabal-34": {
37+ "flake": false,
38+ "locked": {
39+ "lastModified": 1640353650,
40+ "narHash": "sha256-N1t6M3/wqj90AEdRkeC8i923gQYUpzSr8b40qVOZ1Rk=",
41+ "owner": "haskell",
42+ "repo": "cabal",
43+ "rev": "942639c18c0cd8ec53e0a6f8d120091af35312cd",
44+ "type": "github"
45+ },
46+ "original": {
47+ "owner": "haskell",
48+ "ref": "3.4",
49+ "repo": "cabal",
50+ "type": "github"
51+ }
52+ },
53+ "cabal-36": {
54+ "flake": false,
55+ "locked": {
56+ "lastModified": 1641652457,
57+ "narHash": "sha256-BlFPKP4C4HRUJeAbdembX1Rms1LD380q9s0qVDeoAak=",
58+ "owner": "haskell",
59+ "repo": "cabal",
60+ "rev": "f27667f8ec360c475027dcaee0138c937477b070",
61+ "type": "github"
62+ },
63+ "original": {
64+ "owner": "haskell",
65+ "ref": "3.6",
66+ "repo": "cabal",
67+ "type": "github"
68+ }
69+ },
70+ "cardano-shell": {
71+ "flake": false,
72+ "locked": {
73+ "lastModified": 1608537748,
74+ "narHash": "sha256-PulY1GfiMgKVnBci3ex4ptk2UNYMXqGjJOxcPy2KYT4=",
75+ "owner": "input-output-hk",
76+ "repo": "cardano-shell",
77+ "rev": "9392c75087cb9a3d453998f4230930dea3a95725",
78+ "type": "github"
79+ },
80+ "original": {
81+ "owner": "input-output-hk",
82+ "repo": "cardano-shell",
83+ "type": "github"
84+ }
85+ },
86+ "flake-utils": {
87+ "locked": {
88+ "lastModified": 1644229661,
89+ "narHash": "sha256-1YdnJAsNy69bpcjuoKdOYQX0YxZBiCYZo4Twxerqv7k=",
90+ "owner": "numtide",
91+ "repo": "flake-utils",
92+ "rev": "3cecb5b042f7f209c56ffd8371b2711a290ec797",
93+ "type": "github"
94+ },
95+ "original": {
96+ "owner": "numtide",
97+ "repo": "flake-utils",
98+ "type": "github"
99+ }
100+ },
101+ "ghc-8.6.5-iohk": {
102+ "flake": false,
103+ "locked": {
104+ "lastModified": 1600920045,
105+ "narHash": "sha256-DO6kxJz248djebZLpSzTGD6s8WRpNI9BTwUeOf5RwY8=",
106+ "owner": "input-output-hk",
107+ "repo": "ghc",
108+ "rev": "95713a6ecce4551240da7c96b6176f980af75cae",
109+ "type": "github"
110+ },
111+ "original": {
112+ "owner": "input-output-hk",
113+ "ref": "release/8.6.5-iohk",
114+ "repo": "ghc",
115+ "type": "github"
116+ }
117+ },
118+ "hackage": {
119+ "flake": false,
120+ "locked": {
121+ "lastModified": 1659402819,
122+ "narHash": "sha256-1ghmulyIk+obGnyFeouVHBQXxUHMBmgCIRazLfEoT34=",
123+ "owner": "input-output-hk",
124+ "repo": "hackage.nix",
125+ "rev": "2f6f97ca3db96f91eea674ef46f4a0785d1e9d9c",
126+ "type": "github"
127+ },
128+ "original": {
129+ "owner": "input-output-hk",
130+ "repo": "hackage.nix",
131+ "type": "github"
132+ }
133+ },
134+ "hpc-coveralls": {
135+ "flake": false,
136+ "locked": {
137+ "lastModified": 1607498076,
138+ "narHash": "sha256-8uqsEtivphgZWYeUo5RDUhp6bO9j2vaaProQxHBltQk=",
139+ "owner": "sevanspowell",
140+ "repo": "hpc-coveralls",
141+ "rev": "14df0f7d229f4cd2e79f8eabb1a740097fdfa430",
142+ "type": "github"
143+ },
144+ "original": {
145+ "owner": "sevanspowell",
146+ "repo": "hpc-coveralls",
147+ "type": "github"
148+ }
149+ },
150+ "hydra": {
151+ "inputs": {
152+ "nix": "nix",
153+ "nixpkgs": [
154+ "hydra",
155+ "nix",
156+ "nixpkgs"
157+ ]
158+ },
159+ "locked": {
160+ "lastModified": 1646878427,
161+ "narHash": "sha256-KtbrofMtN8GlM7D+n90kixr7QpSlVmdN+vK5CA/aRzc=",
162+ "owner": "NixOS",
163+ "repo": "hydra",
164+ "rev": "28b682b85b7efc5cf7974065792a1f22203a5927",
165+ "type": "github"
166+ },
167+ "original": {
168+ "id": "hydra",
169+ "type": "indirect"
170+ }
171+ },
172+ "lowdown-src": {
173+ "flake": false,
174+ "locked": {
175+ "lastModified": 1633514407,
176+ "narHash": "sha256-Dw32tiMjdK9t3ETl5fzGrutQTzh2rufgZV4A/BbxuD4=",
177+ "owner": "kristapsdz",
178+ "repo": "lowdown",
179+ "rev": "d2c2b44ff6c27b936ec27358a2653caaef8f73b8",
180+ "type": "github"
181+ },
182+ "original": {
183+ "owner": "kristapsdz",
184+ "repo": "lowdown",
185+ "type": "github"
186+ }
187+ },
188+ "nix": {
189+ "inputs": {
190+ "lowdown-src": "lowdown-src",
191+ "nixpkgs": "nixpkgs",
192+ "nixpkgs-regression": "nixpkgs-regression"
193+ },
194+ "locked": {
195+ "lastModified": 1643066034,
196+ "narHash": "sha256-xEPeMcNJVOeZtoN+d+aRwolpW8mFSEQx76HTRdlhPhg=",
197+ "owner": "NixOS",
198+ "repo": "nix",
199+ "rev": "a1cd7e58606a41fcf62bf8637804cf8306f17f62",
200+ "type": "github"
201+ },
202+ "original": {
203+ "owner": "NixOS",
204+ "ref": "2.6.0",
205+ "repo": "nix",
206+ "type": "github"
207+ }
208+ },
209+ "nix-tools": {
210+ "flake": false,
211+ "locked": {
212+ "lastModified": 1658968505,
213+ "narHash": "sha256-UnbQ/Ig/23e9hUdDOBwYHwHgHmQawZ2uazpJ8DLIJgE=",
214+ "owner": "input-output-hk",
215+ "repo": "nix-tools",
216+ "rev": "8a754bdcf20b20e116409c2341cf69065d083053",
217+ "type": "github"
218+ },
219+ "original": {
220+ "owner": "input-output-hk",
221+ "repo": "nix-tools",
222+ "type": "github"
223+ }
224+ },
225+ "nixpkgs": {
226+ "locked": {
227+ "lastModified": 1632864508,
228+ "narHash": "sha256-d127FIvGR41XbVRDPVvozUPQ/uRHbHwvfyKHwEt5xFM=",
229+ "owner": "NixOS",
230+ "repo": "nixpkgs",
231+ "rev": "82891b5e2c2359d7e58d08849e4c89511ab94234",
232+ "type": "github"
233+ },
234+ "original": {
235+ "id": "nixpkgs",
236+ "ref": "nixos-21.05-small",
237+ "type": "indirect"
238+ }
239+ },
240+ "nixpkgs-2003": {
241+ "locked": {
242+ "lastModified": 1620055814,
243+ "narHash": "sha256-8LEHoYSJiL901bTMVatq+rf8y7QtWuZhwwpKE2fyaRY=",
244+ "owner": "NixOS",
245+ "repo": "nixpkgs",
246+ "rev": "1db42b7fe3878f3f5f7a4f2dc210772fd080e205",
247+ "type": "github"
248+ },
249+ "original": {
250+ "owner": "NixOS",
251+ "ref": "nixpkgs-20.03-darwin",
252+ "repo": "nixpkgs",
253+ "type": "github"
254+ }
255+ },
256+ "nixpkgs-2105": {
257+ "locked": {
258+ "lastModified": 1655034179,
259+ "narHash": "sha256-rf1/7AbzuYDw6+8Xvvf3PtEOygymLBrFsFxvext5ZjI=",
260+ "owner": "NixOS",
261+ "repo": "nixpkgs",
262+ "rev": "046ee4af7a9f016a364f8f78eeaa356ba524ac31",
263+ "type": "github"
264+ },
265+ "original": {
266+ "owner": "NixOS",
267+ "ref": "nixpkgs-21.05-darwin",
268+ "repo": "nixpkgs",
269+ "type": "github"
270+ }
271+ },
272+ "nixpkgs-2111": {
273+ "locked": {
274+ "lastModified": 1656782578,
275+ "narHash": "sha256-1eMCBEqJplPotTo/SZ/t5HU6Sf2I8qKlZi9MX7jv9fw=",
276+ "owner": "NixOS",
277+ "repo": "nixpkgs",
278+ "rev": "573603b7fdb9feb0eb8efc16ee18a015c667ab1b",
279+ "type": "github"
280+ },
281+ "original": {
282+ "owner": "NixOS",
283+ "ref": "nixpkgs-21.11-darwin",
284+ "repo": "nixpkgs",
285+ "type": "github"
286+ }
287+ },
288+ "nixpkgs-2205": {
289+ "locked": {
290+ "lastModified": 1657876628,
291+ "narHash": "sha256-URmf0O2cQ/3heg2DJOeLyU/JmfVMqG4X5t9crQXMaeY=",
292+ "owner": "NixOS",
293+ "repo": "nixpkgs",
294+ "rev": "549d82bdd40f760a438c3c3497c1c61160f3de55",
295+ "type": "github"
296+ },
297+ "original": {
298+ "owner": "NixOS",
299+ "ref": "nixpkgs-22.05-darwin",
300+ "repo": "nixpkgs",
301+ "type": "github"
302+ }
303+ },
304+ "nixpkgs-regression": {
305+ "locked": {
306+ "lastModified": 1643052045,
307+ "narHash": "sha256-uGJ0VXIhWKGXxkeNnq4TvV3CIOkUJ3PAoLZ3HMzNVMw=",
308+ "owner": "NixOS",
309+ "repo": "nixpkgs",
310+ "rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2",
311+ "type": "github"
312+ },
313+ "original": {
314+ "id": "nixpkgs",
315+ "rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2",
316+ "type": "indirect"
317+ }
318+ },
319+ "nixpkgs-unstable": {
320+ "locked": {
321+ "lastModified": 1657888067,
322+ "narHash": "sha256-GnwJoFBTPfW3+mz7QEeJEEQ9OMHZOiIJ/qDhZxrlKh8=",
323+ "owner": "NixOS",
324+ "repo": "nixpkgs",
325+ "rev": "65fae659e31098ca4ac825a6fef26d890aaf3f4e",
326+ "type": "github"
327+ },
328+ "original": {
329+ "owner": "NixOS",
330+ "ref": "nixpkgs-unstable",
331+ "repo": "nixpkgs",
332+ "type": "github"
333+ }
334+ },
335+ "old-ghc-nix": {
336+ "flake": false,
337+ "locked": {
338+ "lastModified": 1631092763,
339+ "narHash": "sha256-sIKgO+z7tj4lw3u6oBZxqIhDrzSkvpHtv0Kki+lh9Fg=",
340+ "owner": "angerman",
341+ "repo": "old-ghc-nix",
342+ "rev": "af48a7a7353e418119b6dfe3cd1463a657f342b8",
343+ "type": "github"
344+ },
345+ "original": {
346+ "owner": "angerman",
347+ "ref": "master",
348+ "repo": "old-ghc-nix",
349+ "type": "github"
350+ }
351+ },
352+ "root": {
353+ "inputs": {
354+ "HTTP": "HTTP",
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",
363+ "hydra": "hydra",
364+ "nix-tools": "nix-tools",
365+ "nixpkgs": [
366+ "nixpkgs-unstable"
367+ ],
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"
375+ }
376+ },
377+ "stackage": {
378+ "flake": false,
379+ "locked": {
380+ "lastModified": 1659402917,
381+ "narHash": "sha256-zRDOtN4A2KmfzmZiqqxOAIw1YVPhnoIaszKKd+qCEcQ=",
382+ "owner": "input-output-hk",
383+ "repo": "stackage.nix",
384+ "rev": "778df3c4b35eac853d57fac7bafc7c9f2dde917f",
385+ "type": "github"
386+ },
387+ "original": {
388+ "owner": "input-output-hk",
389+ "repo": "stackage.nix",
390+ "type": "github"
391+ }
392+ }
393+ },
394+ "root": "root",
395+ "version": 7
396+}
flake.nix+143−29
@@ -1,34 +1,148 @@
11{
22 description = "Alternative Haskell Infrastructure for Nixpkgs";
33
4− outputs = { self }: {
5− # Using the eval-on-build version here as the plan is that
6− # `builtins.currentSystem` will not be supported in flakes.
7− # https://github.com/NixOS/rfcs/pull/49/files#diff-a5a138ca225433534de8d260f225fe31R429
8− overlay = (self.overlays {sourcesOverride = self.sources;}).combined-eval-on-build;
9− overlays = import ./overlays;
10− config = import ./config.nix;
11− # We can't import ./nix/sources.nix directly, because that uses nixpkgs to fetch by default,
12− # and importing nixpkgs without specifying localSystem doesn't work on flakes.
13− sources = let
14− sourcesInfo =
15− builtins.fromJSON (builtins.readFile ./nix/sources.json);
16− fetch = sourceInfo:
17− builtins.fetchTarball { inherit (sourceInfo) url sha256; };
18− in builtins.mapAttrs (_: fetch) sourcesInfo;
19−
20− nixpkgsArgs = {
21− inherit (self) config;
22− overlays = [ self.overlay ];
23− };
24− legacyPackages = let
25− genAttrs = lst: f:
26− builtins.listToAttrs (map (name: {
27− inherit name;
28− value = f name;
29− }) lst);
30− in genAttrs [ "x86_64-linux" "x86_64-darwin" ] (system:
31− import self.sources.nixpkgs
32− (self.nixpkgsArgs // { localSystem = { inherit system; }; }));
4+ inputs = {
5+ nixpkgs.follows = "nixpkgs-unstable";
6+ nixpkgs-2003 = { url = "github:NixOS/nixpkgs/nixpkgs-20.03-darwin"; };
7+ nixpkgs-2105 = { url = "github:NixOS/nixpkgs/nixpkgs-21.05-darwin"; };
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"; };
12+ hydra.url = "hydra";
13+ hackage = {
14+ url = "github:input-output-hk/hackage.nix";
15+ flake = false;
16+ };
17+ stackage = {
18+ url = "github:input-output-hk/stackage.nix";
19+ flake = false;
20+ };
21+ cabal-32 = {
22+ url = "github:haskell/cabal/3.2";
23+ flake = false;
24+ };
25+ cabal-34 = {
26+ url = "github:haskell/cabal/3.4";
27+ flake = false;
28+ };
29+ cabal-36 = {
30+ url = "github:haskell/cabal/3.6";
31+ flake = false;
32+ };
33+ cardano-shell = {
34+ url = "github:input-output-hk/cardano-shell";
35+ flake = false;
36+ };
37+ "ghc-8.6.5-iohk" = {
38+ type = "github";
39+ owner = "input-output-hk";
40+ repo = "ghc";
41+ ref = "release/8.6.5-iohk";
42+ flake = false;
43+ };
44+ hpc-coveralls = {
45+ url = "github:sevanspowell/hpc-coveralls";
46+ flake = false;
47+ };
48+ nix-tools = {
49+ url = "github:input-output-hk/nix-tools";
50+ flake = false;
51+ };
52+ old-ghc-nix = {
53+ url = "github:angerman/old-ghc-nix/master";
54+ flake = false;
55+ };
56+ HTTP = {
57+ url = "github:phadej/HTTP";
58+ flake = false;
59+ };
3360 };
61+
62+ outputs = { self, nixpkgs, nixpkgs-unstable, nixpkgs-2105, nixpkgs-2111, nixpkgs-2205, flake-utils, ... }@inputs:
63+ let compiler = "ghc924";
64+ config = import ./config.nix;
65+ in {
66+ inherit config;
67+ overlay = self.overlays.combined;
68+ overlays = import ./overlays { sources = inputs; };
69+ internal = rec {
70+ nixpkgsArgs = {
71+ inherit config;
72+ overlays = [ self.overlay ];
73+ };
74+
75+ sources = inputs;
76+
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; });
84+ inherit config;
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
90+ [
91+ (final: prev: {
92+ haskell-nix = prev.haskell-nix // {
93+ checkMaterialization = true;
94+ };
95+ })
96+ ]
97+ else
98+ [ ]);
99+ nixpkgsArgs = {
100+ inherit config overlays;
101+ };
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; };
113+ };
114+ };
115+
116+ # Note: `nix flake check` evaluates outputs for all platforms, and haskell.nix
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;
124+
125+ # FIXME: Currently `nix flake check` requires `--impure` because coverage-golden
126+ # (and maybe other tests) import projects that use builtins.currentSystem
127+ checks = builtins.listToAttrs (map (pkg: {
128+ name = pkg.name;
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;
134+ })));
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;
137+
138+ devShell = with self.legacyPackages.${system};
139+ mkShell {
140+ buildInputs = [
141+ nixUnstable
142+ cabal-install
143+ haskell-nix.compiler.${compiler}
144+ haskell-nix.nix-tools.${compiler}
145+ ];
146+ };
147+ });
34148}
hackage-src.json+7−4
@@ -1,7 +1,10 @@
11{
22 "url": "https://github.com/input-output-hk/hackage.nix",
3− "rev": "661ededb5510b00f9049add0dfedfbafb321527a",
4− "date": "2020-11-25T01:12:48+00:00",
5− "sha256": "1m8d86fa9zknyzljn5fxmyqqj4n1q4761zdg93cipgwf7p4jn8w3",
6− "fetchSubmodules": false
3+ "rev": "9bdefa51c864bbef48a2758b05b4b568f0ded62b",
4+ "date": "2021-08-06T01:11:48+00:00",
5+ "path": "/nix/store/isypgnv4qa5398z6vjc3fi620l4y87c4-hackage.nix-9bdefa5",
6+ "sha256": "0pm3m864wwgf76isjwb8244xh8xykc94b5az6zb1h38q30s9xjji",
7+ "fetchSubmodules": false,
8+ "deepClone": false,
9+ "leaveDotGit": false
710}
hix/default.nixnew file+43
@@ -0,0 +1,43 @@
1+{ pkgs }:
2+let
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";
7+in pkgs.symlinkJoin {
8+ name = "hix";
9+ paths = [
10+ (pkgs.writeScriptBin "hix-shell" ''
11+ nix-shell ${hixProject} ${args} -A shell "$@"
12+ '')
13+ (pkgs.writeScriptBin "hix-build" ''
14+ nix-build ${hixProject} ${args} "$@"
15+ '')
16+ (pkgs.writeScriptBin "hix-instantiate" ''
17+ nix-instantiate ${hixProject} ${args} "$@"
18+ '')
19+ (pkgs.writeScriptBin "hix-env" ''
20+ nix-env -f ${hixProject} ${args} "$@"
21+ '')
22+ (pkgs.writeScriptBin "hix" ''
23+ cmd=$1
24+ shift
25+ case $cmd in
26+ update)
27+ nix-env -iA hix -f https://github.com/input-output-hk/haskell.nix/tarball/master
28+ ;;
29+ build|dump-path|eval|log|path-info|run|search|show-derivation|sign-paths|verify|why-depends)
30+ nix $cmd -f ${hixProject} ${args} "$@"
31+ ;;
32+ repl)
33+ nix $cmd ${hixProject} ${args} "$@"
34+ ;;
35+ *)
36+ nix $cmd "$@"
37+ ;;
38+ esac
39+ '')
40+ ];
41+} // {
42+ project = import ./project.nix;
43+}
hix/project.nixnew file+77
@@ -0,0 +1,77 @@
1+{ src
2+, userDefaults ? {}
3+, nixpkgs ? null
4+, nixpkgsPin ? null
5+, pkgs ? null
6+, checkMaterialization ? null
7+, compiler-nix-name ? null
8+, shell ? null
9+, ...}@commandArgs:
10+let
11+ inherit ((lib.evalModules {
12+ modules = [
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)
18+ projectDefaults
19+ commandArgs'
20+ { _module.args.pkgs = {}; }
21+ ];
22+ }).config) name;
23+ inherit (import ./.. {}) sources;
24+ lib = import (sources.nixpkgs-unstable + "/lib");
25+ commandArgs' =
26+ builtins.listToAttrs (
27+ builtins.concatMap (
28+ name:
29+ if commandArgs.${name} == null || name == "src" || name == "userDefaults" || name == "inNixShell"
30+ then []
31+ else [{ inherit name; value = commandArgs.${name}; }]
32+ ) (builtins.attrNames commandArgs));
33+ defaultArgs = {
34+ nixpkgsPin = "nixpkgs-unstable";
35+ };
36+ importDefaults = src:
37+ if src == null || !(__pathExists src)
38+ then {}
39+ else import src;
40+ userDefaults = importDefaults (commandArgs.userDefaults or null);
41+ projectDefaults = importDefaults (toString (src.origSrcSubDir or src) + "/nix/hix.nix");
42+ inherit ((lib.evalModules {
43+ modules = [
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)
49+ userDefaults
50+ projectDefaults
51+ commandArgs'
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;
58+ };
59+ _module.args.pkgs = import config.nixpkgs config.nixpkgsArgs;
60+ project = pkgs.haskell-nix.project [
61+ (import ../modules/hix-project.nix)
62+ userDefaults
63+ projectDefaults
64+ commandArgs'
65+ ({config, ...}: {
66+ src =
67+ if __pathExists (toString (src.origSrcSubDir or src) + "/.git")
68+ then config.evalPackages.haskell-nix.haskellLib.cleanGit {
69+ inherit src name;
70+ }
71+ else src;
72+ })
73+ ];
74+ })
75+ ];
76+ }).config) project shell;
77+in project
lib/cabal-licenses.nix+18−21
@@ -1,24 +1,21 @@
1−lib: with lib.licenses;
2−{ BSD-3-Clause = bsd3;
3− BSD-2-Clause = bsd2;
4− MIT = mit;
5− "MPL-2.0" = mpl20;
6− ISC = isc;
7− "LGPL-2.1-only" = lgpl21;
8− "LGPL-3.0-only" = lgpl3;
9− "GPL-2.0-only" = gpl2;
10− "GPL-2.0-or-later" = gpl2Plus;
11− "GPL-3.0-only" = gpl3;
12− "AGPL-3.0-only" = agpl3;
13− "AGPL-3.0-or-later" = agpl3Plus;
14− "Apache-2.0" = asl20;
15− "GPL-2.0-or-later AND BSD-3-Clause" = [gpl2Plus bsd3];
16− "NCSA" = ncsa;
1+pkgs:
2+let licenses = import spdx/licenses.nix pkgs;
3+in licenses // {
174 # Generic
18− LicenseRef-Apache = "Apache";
19− LicenseRef-GPL = "GPL";
20− LicenseRef-LGPL = "LGPL";
21− LicenseRef-PublicDomain = publicDomain;
22− LicenseRef-OtherLicense = null;
5+ LicenseRef-PublicDomain = {
6+ spdxId = "LicenseRef-PublicDomain";
7+ shortName = "Public Domain";
8+ fullName = "This work is dedicated to the Public Domain";
9+ url = "https://wikipedia.org/wiki/Public_domain";
10+ free = true;
11+ };
12+ LicenseRef-OtherLicense = {
13+ spdxId = "LicenseRef-OtherLicense";
14+ shortName = "Other License";
15+ fullName = "Unidentified Other License";
16+ url = "https://spdx.github.io/spdx-spec/appendix-IV-SPDX-license-expressions/";
17+ # Not setting `free` here. The license may or may not be `free`.
18+ # See https://github.com/input-output-hk/haskell.nix/pull/1006
19+ };
2320 NONE = null;
2421}
lib/cabal-os-arch-comp.nix+1−1
@@ -43,7 +43,7 @@
4343 isPPC64 = false;
4444 isSparc = false;
4545 isArm = false;
46− isAArch64= false;
46+ isAarch64= false;
4747 isMips = false;
4848 isSH = false;
4949 isIA64 = false;
lib/cabal-project-parser.nix+120−14
@@ -74,20 +74,21 @@ let
7474 # --shar256: 003lm3pm0000hbfmii7xcdd9v20000flxf7gdl2pyxia7p014i8z
7575 # will be trated like a field and returned here
7676 # (used in call-cabal-project-to-nix.nix to create a fixed-output derivation)
77− extractRepoData = cabalProjectFileName: lookupSha256: repo:
78− builtins.map (subdir:
79− {
80− url = repo.location;
81− ref = repo.tag;
82− sha256 = repo."--sha256" or (lookupSha256 repo);
83− inherit subdir;
84− })
85− (if repo ? subdir
86− then pkgs.lib.filter (x: x != "") (pkgs.lib.splitString " " repo.subdir)
87− else ["."]);
77+ extractSourceRepoPackageData = cabalProjectFileName: sha256map: repo: {
78+ url = repo.location;
79+ ref = repo.tag;
80+ sha256 = repo."--sha256" or (
81+ if sha256map != null
82+ then sha256map."${repo.location}"."${repo.tag}"
83+ else null);
84+ subdirs = if repo ? subdir
85+ then pkgs.lib.filter (x: x != "") (pkgs.lib.splitString " " repo.subdir)
86+ else ["."];
87+ };
8888
8989 # Parse a source-repository-package and return data of `type: git` repositories
90− parseBlock = cabalProjectFileName: lookupSha256: block:
90+ # See tests/unit.nix for examples of input and output.
91+ parseSourceRepositoryPackageBlock = cabalProjectFileName: sha256map: block:
9192 let
9293 x = span (pkgs.lib.strings.hasPrefix " ") (pkgs.lib.splitString "\n" block);
9394 attrs = parseBlockLines x.fst;
@@ -98,10 +99,115 @@ let
9899 otherText = "\nsource-repository-package\n" + block;
99100 }
100101 else {
101− sourceRepo = extractRepoData cabalProjectFileName lookupSha256 attrs;
102+ sourceRepo = extractSourceRepoPackageData cabalProjectFileName sha256map attrs;
102103 otherText = pkgs.lib.strings.concatStringsSep "\n" x.snd;
103104 };
104105
106+ parseSourceRepositoryPackages = cabalProjectFileName: sha256map: source-repo-override: projectFile:
107+ let
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;
112+ in {
113+ sourceRepos = pkgs.lib.lists.map (block: overrideSourceRepo block.sourceRepo) repoBlocks;
114+ otherText = pkgs.lib.strings.concatStringsSep "\n" (
115+ initialText
116+ ++ (builtins.map (x: x.otherText) repoBlocks));
117+ };
118+
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:
126+ let
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}"
134+ else null);
135+ in rec {
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;
144+ }) ''
145+ HOME=$(mktemp -d)
146+ mkdir -p $HOME/.cabal/packages/${name}
147+ cat <<EOF > $HOME/.cabal/config
148+ repository ${name}
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}"}
153+ EOF
154+
155+ cabal v2-update ${name}
156+ cp -r $HOME/.cabal/packages/${name} $out
157+ ''
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;
167+ }) ''
168+ HOME=$(mktemp -d)
169+ mkdir -p $HOME/.cabal/packages/${name}
170+ cat <<EOF > $HOME/.cabal/config
171+ repository ${name}
172+ url: ${attrs.url}
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}"}
176+ EOF
177+
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
181+ '';
182+ # Output of hackage-to-nix
183+ hackage = import (
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;
189+ } ''
190+ mkdir -p $out
191+ hackage-to-nix $out ${repoContents}/01-index.tar ${attrs.url}
192+ '');
193+ # Directory to `lndir` when constructing a suitable $HOME/.cabal dir
194+ repo = {
195+ ${name} = repoContents;
196+ };
197+ };
198+
199+ parseRepositories = evalPackages: cabalProjectFileName: sha256map: inputMap: cabal-install: nix-tools: projectFile:
200+ let
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);
204+ in {
205+ extra-hackages = pkgs.lib.lists.map (block: block.hackage) repoBlocks;
206+ repos = pkgs.lib.lists.foldl' (x: block: x // block.repo) {} repoBlocks;
207+ };
208+
105209in {
106− inherit parseIndexState parseBlockLines parseBlock;
210+ inherit parseIndexState parseSourceRepositoryPackages parseRepositories
211+ # These are only exposed for tests
212+ parseSourceRepositoryPackageBlock parseRepositoryBlock;
107213}
lib/call-cabal-project-to-nix.nix+214−79
@@ -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:
22let readIfExists = src: fileName:
33 let origSrcDir = src.origSrcSubDir or src;
44 in
@@ -21,8 +21,6 @@ in
2121, caller ? "callCabalProjectToNix" # Name of the calling function for better warning messages
2222, ghc ? null # Deprecated in favour of `compiler-nix-name`
2323, ghcOverride ? null # Used when we need to set ghc explicitly during bootstrapping
24−, nix-tools ? evalPackages.haskell-nix.nix-tools-unchecked.${compiler-nix-name} # When building cabal projects we use the nix-tools
25−, cabal-install ? evalPackages.haskell-nix.cabal-install-unchecked.${compiler-nix-name} # and cabal-install compiled with matching ghc version
2624, configureArgs ? "" # Extra arguments to pass to `cabal v2-configure`.
2725 # `--enable-tests --enable-benchmarks` are included by default.
2826 # If the tests and benchmarks are not needed and they
@@ -32,18 +30,59 @@ in
3230 # An alternative to adding `--sha256` comments into the
3331 # cabal.project file:
3432 # sha256map =
35− # { "https://github.com/jgm/pandoc-citeproc"."0.17"
36− # = "0dxx8cp2xndpw3jwiawch2dkrkp15mil7pyx7dvd810pwc22pm2q"; };
37−, lookupSha256 ?
38− if sha256map != null
39− then { location, tag, ...}: sha256map."${location}"."${tag}"
40− else _: null
41−, extra-hackage-tarballs ? []
33+ # { # For a `source-repository-package` use the `location` and `tag` as the key
34+ # "https://github.com/jgm/pandoc-citeproc"."0.17"
35+ # = "0dxx8cp2xndpw3jwiawch2dkrkp15mil7pyx7dvd810pwc22pm2q";
36+ # # For a `repository` use the `url` as the key
37+ # "https://raw.githubusercontent.com/input-output-hk/hackage-overlay-ghcjs/bfc363b9f879c360e0a0460ec0c18ec87222ec32"
38+ # = "sha256-g9xGgJqYmiczjxjQ5JOiK5KUUps+9+nlNGI/0SpSOpg=";
39+ # };
40+, inputMap ? {}
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;
45+ # outputs = inputs:
46+ # ...
47+ # inputMap."https://github.com/jgm/pandoc-citeproc" = inputs.inputs.pandoc-citeproc;
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.
56+ #
57+ # This argument is a map from url to
58+ # a function taking the existing repoData
59+ # and returning the new repoData in its
60+ # place. E.g.
61+ #
62+ # { "https://github.com/input-output-hk/plutus-apps" = orig: orig // { subdirs = (orig.subdirs or [ "." ]) ++ [ "foo" ]; }; }
63+ #
64+ # would result in the "foo" subdirectory of
65+ # any plutus-apps input being used for a
66+ # package.
67+, evalPackages
4268, ...
4369}@args:
4470
4571let
72+ inherit (evalPackages.haskell-nix) materialize dotCabal;
73+
74+ # These defaults are hear rather than in modules/cabal-project.nix to make them
75+ # lazy enough to avoid infinite recursion issues.
76+ # Using null as the default also improves performance as they are not forced by the
77+ # nix module system for `nix-tools-unchecked` and `cabal-install-unchecked`.
78+ nix-tools = if args.nix-tools or null != null
79+ then args.nix-tools
80+ else evalPackages.haskell-nix.nix-tools-unchecked.${compiler-nix-name};
81+ cabal-install = if args.cabal-install or null != null
82+ then args.cabal-install
83+ else evalPackages.haskell-nix.cabal-install-unchecked.${compiler-nix-name};
4684 forName = pkgs.lib.optionalString (name != null) (" for " + name);
85+ nameAndSuffix = suffix: if name == null then suffix else name + "-" + suffix;
4786
4887 ghc' =
4988 if ghcOverride != null
@@ -75,15 +114,13 @@ let
75114 ghc = ghc';
76115 subDir' = src.origSubDir or "";
77116 subDir = pkgs.lib.strings.removePrefix "/" subDir';
78− maybeCleanedSource =
79− if haskellLib.canCleanSource src
80− then (haskellLib.cleanSourceWith {
81− name = if name != null then "${name}-root-cabal-files" else "source-root-cabal-files";
82− src = src.origSrc or src;
83− filter = path: type: (!(src ? filter) || src.filter path type) && (
84− type == "directory" ||
85− pkgs.lib.any (i: (pkgs.lib.hasSuffix i path)) [ ".cabal" "package.yaml" ]); })
86− else src.origSrc or src;
117+
118+ cleanedSource = haskellLib.cleanSourceWith {
119+ name = if name != null then "${name}-root-cabal-files" else "source-root-cabal-files";
120+ src = src.origSrc or src;
121+ filter = path: type: (!(src ? filter) || src.filter path type) && (
122+ type == "directory" ||
123+ pkgs.lib.any (i: (pkgs.lib.hasSuffix i path)) [ ".cabal" "package.yaml" ]); };
87124
88125 # Using origSrcSubDir bypasses any cleanSourceWith so that it will work when
89126 # access to the store is restricted. If origSrc was already in the store
@@ -111,8 +148,9 @@ let
111148 then index-state
112149 else if cabalProjectIndexState != null
113150 then cabalProjectIndexState
114− else builtins.trace ("Using latest index state" + (if name == null then "" else " for " + name) + "!")
115− (pkgs.lib.last (builtins.attrNames index-state-hashes));
151+ else
152+ let latest-index-state = pkgs.lib.last (builtins.attrNames index-state-hashes);
153+ in builtins.trace ("No index state specified" + (if name == null then "" else " for " + name) + ", using the latest index state that we know about (${latest-index-state})!") latest-index-state;
116154
117155 index-state-pinned = index-state != null || cabalProjectIndexState != null;
118156
@@ -162,67 +200,104 @@ let
162200 builtins.readFile (pkgs.runCommand "hash-path" { preferLocalBuild = true; }
163201 "echo -n $(${pkgs.nix}/bin/nix-hash --type sha256 --base32 ${path}) > $out");
164202
165− replaceSoureRepos = projectFile:
203+ replaceSourceRepos = projectFile:
166204 let
167− fetchRepo = fetchgit: repoData:
205+ fetchPackageRepo = fetchgit: repoData:
168206 let
169207 fetched =
170− if repoData.sha256 != null
171− then fetchgit { inherit (repoData) url sha256; rev = repoData.ref; }
208+ if inputMap ? "${repoData.url}/${repoData.ref}"
209+ then inputMap."${repoData.url}/${repoData.ref}"
210+ else if inputMap ? ${repoData.url}
211+ then
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})
215+ else if repoData.sha256 != null
216+ then fetchgit { inherit (repoData) url sha256; rev = repoData.ref; }
172217 else
173218 let drv = builtins.fetchGit { inherit (repoData) url ref; };
174219 in __trace "WARNING: No sha256 found for source-repository-package ${repoData.url} ${repoData.ref} download may fail in restricted mode (hydra)"
175− (__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"
176221 drv);
177− in fetched + (if repoData.subdir == "." then "" else "/" + repoData.subdir);
222+ in {
223+ # Download the source-repository-package commit and add it to a minimal git
224+ # repository that `cabal` will be able to access from a non fixed output derivation.
225+ location = evalPackages.runCommand "source-repository-package" {
226+ nativeBuildInputs = [ evalPackages.rsync evalPackages.gitMinimal ];
227+ } ''
228+ mkdir $out
229+ rsync -a --prune-empty-dirs "${fetched}/" "$out/"
230+ cd $out
231+ chmod -R +w .
232+ git init -b minimal
233+ git add --force .
234+ GIT_COMMITTER_NAME='No One' GIT_COMMITTER_EMAIL= git commit -m "Minimal Repo For Haskell.Nix" --author 'No One <>'
235+ '';
236+ inherit (repoData) subdirs;
237+ inherit fetched;
238+ tag = "minimal";
239+ };
240+
241+ # Parse the `source-repository-package` blocks
242+ sourceRepoPackageResult = pkgs.haskell-nix.haskellLib.parseSourceRepositoryPackages
243+ cabalProjectFileName sha256map source-repo-override projectFile;
178244
179− blocks = pkgs.lib.splitString "\nsource-repository-package\n" ("\n" + projectFile);
180− initialText = pkgs.lib.lists.take 1 blocks;
181− repoBlocks = builtins.map (pkgs.haskell-nix.haskellLib.parseBlock cabalProjectFileName lookupSha256) (pkgs.lib.lists.drop 1 blocks);
182− sourceRepoData = pkgs.lib.lists.concatMap (x: x.sourceRepo) repoBlocks;
183− otherText = pkgs.evalPackages.writeText "cabal.project" (pkgs.lib.strings.concatStringsSep "\n" (
184− initialText
185− ++ (builtins.map (x: x.otherText) repoBlocks)));
245+ # Parse the `repository` blocks
246+ repoResult = pkgs.haskell-nix.haskellLib.parseRepositories
247+ evalPackages cabalProjectFileName sha256map inputMap cabal-install nix-tools sourceRepoPackageResult.otherText;
186248
187249 # we need the repository content twice:
188250 # * at eval time (below to build the fixed project file)
189− # Here we want to use pkgs.evalPackages.fetchgit, so one can calculate
251+ # Here we want to use evalPackages.fetchgit, so one can calculate
190252 # the build plan for any target without a remote builder
191253 # * at built time (passed out)
192254 # Here we want to use plain pkgs.fetchgit, which is what a builder
193255 # on the target system would use, so that the derivation is unaffected
194256 # and, say, a linux release build job can identify the derivation
195257 # as built by a darwin builder, and fetch it from a cache
196− sourceReposBuild = builtins.map (fetchRepo pkgs.evalPackages.fetchgit) sourceRepoData ;
197− sourceReposEval = builtins.map (fetchRepo pkgs.fetchgit) sourceRepoData;
258+ sourceReposEval = builtins.map (fetchPackageRepo evalPackages.fetchgit) sourceRepoPackageResult.sourceRepos;
259+ sourceReposBuild = builtins.map (x: (fetchPackageRepo pkgs.fetchgit x).fetched) sourceRepoPackageResult.sourceRepos;
198260 in {
199261 sourceRepos = sourceReposBuild;
262+ inherit (repoResult) repos extra-hackages;
200263 makeFixedProjectFile = ''
201− cp -f ${otherText} ./cabal.project
264+ cp -f ${evalPackages.writeText "cabal.project" sourceRepoPackageResult.otherText} ./cabal.project
265+ '' +
266+ pkgs.lib.optionalString (builtins.length sourceReposEval != 0) (''
202267 chmod +w -R ./cabal.project
203268 # The newline here is important in case cabal.project does not have one at the end
204− printf "\npackages:" >> ./cabal.project
205− mkdir -p ./.source-repository-packages
269+ echo >> ./cabal.project
206270 '' +
207− ( pkgs.lib.strings.concatStrings (
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
278+ '') sourceReposEval
279+ ));
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.
284+ replaceLocations = pkgs.lib.strings.concatStrings (
208285 pkgs.lib.lists.zipListsWith (n: f: ''
209− mkdir -p ./.source-repository-packages/${builtins.toString n}
210− rsync -a --prune-empty-dirs \
211− --include '*/' --include '*.cabal' --include 'package.yaml' \
212− --exclude '*' \
213− "${f}/" "./.source-repository-packages/${builtins.toString n}/"
214− echo " ./.source-repository-packages/${builtins.toString n}" >> ./cabal.project
286+ (cd $out${subDir'}
287+ substituteInPlace $tmp${subDir'}/dist-newstyle/cache/plan.json --replace file://${f.location} ${builtins.toString n}
288+ for a in $(grep -rl file://${f.location} .plan.nix/*.nix); do
289+ substituteInPlace $a --replace file://${f.location} ${builtins.toString n}
290+ done)
215291 '')
216292 (pkgs.lib.lists.range 0 ((builtins.length sourceReposEval) - 1))
217293 sourceReposEval
218− )
219− );
294+ );
220295 };
221296
222297 fixedProject =
223298 if rawCabalProject == null
224− then { sourceRepos = []; makeFixedProjectFile = ""; }
225− else replaceSoureRepos rawCabalProject;
299+ then { sourceRepos = []; repos = {}; extra-hackages = []; makeFixedProjectFile = ""; replaceLocations = ""; }
300+ else replaceSourceRepos rawCabalProject;
226301
227302 # The use of the actual GHC can cause significant problems:
228303 # * For hydra to assemble a list of jobs from `components.tests` it must
@@ -293,12 +368,12 @@ let
293368 '');
294369
295370 # Dummy `ghc` that uses the captured output
296− dummy-ghc = pkgs.evalPackages.writeTextFile {
371+ dummy-ghc = evalPackages.writeTextFile {
297372 name = "dummy-" + ghc.name;
298373 executable = true;
299374 destination = "/bin/${ghc.targetPrefix}ghc";
300375 text = ''
301− #!${pkgs.evalPackages.runtimeShell}
376+ #!${evalPackages.runtimeShell}
302377 case "$*" in
303378 --version*)
304379 cat ${dummy-ghc-data}/ghc/version
@@ -336,12 +411,12 @@ let
336411 };
337412
338413 # Dummy `ghc-pkg` that uses the captured output
339− dummy-ghc-pkg = pkgs.evalPackages.writeTextFile {
414+ dummy-ghc-pkg = evalPackages.writeTextFile {
340415 name = "dummy-pkg-" + ghc.name;
341416 executable = true;
342417 destination = "/bin/${ghc.targetPrefix}ghc-pkg";
343418 text = ''
344− #!${pkgs.evalPackages.runtimeShell}
419+ #!${evalPackages.runtimeShell}
345420 case "$*" in
346421 --version)
347422 cat ${dummy-ghc-data}/ghc-pkg/version
@@ -369,6 +444,7 @@ let
369444 inherit materialized;
370445 sha256 = plan-sha256;
371446 sha256Arg = "plan-sha256";
447+ this = "project.plan-nix" + (if name != null then " for ${name}" else "");
372448 # Before pinning stuff down we need an index state to use
373449 reasonNotSafe =
374450 if !index-state-pinned
@@ -376,25 +452,55 @@ let
376452 else null;
377453 } // pkgs.lib.optionalAttrs (checkMaterialization != null) {
378454 inherit checkMaterialization;
379− }) (pkgs.evalPackages.runCommand (if name == null then "plan-to-nix-pkgs" else name + "-plan-to-nix-pkgs") {
380− nativeBuildInputs = [ nix-tools dummy-ghc dummy-ghc-pkg cabal-install pkgs.evalPackages.rsync ];
455+ }) (evalPackages.runCommand (nameAndSuffix "plan-to-nix-pkgs") {
456+ nativeBuildInputs = [ nix-tools dummy-ghc dummy-ghc-pkg cabal-install evalPackages.rsync evalPackages.gitMinimal ];
381457 # Needed or stack-to-nix will die on unicode inputs
382− 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";
383459 LANG = "en_US.UTF-8";
384460 meta.platforms = pkgs.lib.platforms.all;
385461 preferLocalBuild = false;
386− outputs = ["out" "json"];
462+ outputs = [
463+ "out" # The results of plan-to-nix
464+ # These two output will be present if in cabal configure failed.
465+ # They are used to provide passthru.json and passthru.freeze that
466+ # check first for cabal configure failure.
467+ "maybeJson" # The `plan.json` file generated by cabal and used for `plan-to-nix` input
468+ "maybeFreeze" # The `cabal.project.freeze` file created by `cabal v2-freeze`
469+ ];
470+ passthru =
471+ let
472+ checkCabalConfigure = ''
473+ if [[ -f ${plan-nix}/cabal-configure.out ]]; then
474+ cat ${plan-nix}/cabal-configure.out
475+ exit 1
476+ fi
477+ '';
478+ in {
479+ # These check for cabal configure failure
480+ json = evalPackages.runCommand (nameAndSuffix "plan-json") {} ''
481+ ${checkCabalConfigure}
482+ cp ${plan-nix.maybeJson} $out
483+ '';
484+ freeze = evalPackages.runCommand (nameAndSuffix "plan-freeze") {} ''
485+ ${checkCabalConfigure}
486+ cp ${plan-nix.maybeFreeze} $out
487+ '';
488+ };
387489 } ''
388490 tmp=$(mktemp -d)
389491 cd $tmp
390− # if maybeCleanedSource is empty, this means it's a new
492+ # if cleanedSource is empty, this means it's a new
391493 # project where the files haven't been added to the git
392494 # repo yet. We fail early and provide a useful error
393495 # message to prevent headaches (#290).
394− if [ -z "$(ls -A ${maybeCleanedSource})" ]; then
395− echo "cleaned source is empty. Did you forget to 'git add -A'?"; exit 1;
496+ if [ -z "$(ls -A ${cleanedSource})" ]; then
497+ echo "cleaned source is empty. Did you forget to 'git add -A'?"
498+ ${pkgs.lib.optionalString (__length fixedProject.sourceRepos == 0) ''
499+ exit 1
500+ ''}
501+ else
502+ cp -r ${cleanedSource}/* .
396503 fi
397− cp -r ${maybeCleanedSource}/* .
398504 chmod +w -R .
399505 # Decide what to do for each `package.yaml` file.
400506 for hpackFile in $(find . -name package.yaml); do (
@@ -417,28 +523,35 @@ let
417523 ${pkgs.lib.optionalString (subDir != "") "cd ${subDir}"}
418524 ${fixedProject.makeFixedProjectFile}
419525 ${pkgs.lib.optionalString (cabalProjectFreeze != null) ''
420− cp ${pkgs.evalPackages.writeText "cabal.project.freeze" cabalProjectFreeze} \
526+ cp ${evalPackages.writeText "cabal.project.freeze" cabalProjectFreeze} \
421527 cabal.project.freeze
528+ chmod +w cabal.project.freeze
422529 ''}
423530 export SSL_CERT_FILE=${cacert}/etc/ssl/certs/ca-bundle.crt
424531 export GIT_SSL_CAINFO=${cacert}/etc/ssl/certs/ca-bundle.crt
425− HOME=${
532+
533+ # Using `cabal v2-freeze` will configure the project (since
534+ # it is not configured yet), taking the existing `cabal.project.freeze`
535+ # file into account. Then it "writes out a freeze file which
536+ # records all of the versions and flags that are picked" (from cabal docs).
537+ echo "Using index-state ${index-state-found}"
538+ if(HOME=${
426539 # This creates `.cabal` directory that is as it would have
427540 # been at the time `cached-index-state`. We may include
428541 # some packages that will be excluded by `index-state-found`
429542 # which is used by cabal (cached-index-state >= index-state-found).
430543 dotCabal {
431544 inherit cabal-install nix-tools extra-hackage-tarballs;
545+ extra-hackage-repos = fixedProject.repos;
432546 index-state = cached-index-state;
433547 sha256 = index-sha256-found;
434548 }
435− } cabal v2-configure \
436− --index-state=${
437− # Setting the desired `index-state` here in case it was not
438− # from the cabal.project file. This will further restrict the
439− # packages used by the solver (cached-index-state >= index-state-found).
440− builtins.trace ("Using index-state: ${index-state-found}" + (if name == null then "" else " for " + name))
441− index-state-found} \
549+ } cabal v2-freeze ${
550+ # Setting the desired `index-state` here in case it is not
551+ # in the cabal.project file. This will further restrict the
552+ # packages used by the solver (cached-index-state >= index-state-found).
553+ pkgs.lib.optionalString (index-state != null) "--index-state=${index-state}"
554+ } \
442555 -w ${
443556 # We are using `-w` rather than `--with-ghc` here to override
444557 # the `with-compiler:` in the `cabal.project` file.
@@ -448,10 +561,14 @@ let
448561 --enable-benchmarks \
449562 ${pkgs.lib.optionalString (ghc.targetPrefix == "js-unknown-ghcjs-")
450563 "--ghcjs --with-ghcjs=js-unknown-ghcjs-ghc --with-ghcjs-pkg=js-unknown-ghcjs-ghc-pkg"} \
451− ${configureArgs}
564+ ${configureArgs} 2>&1 | tee -a cabal-configure.out); then
452565
453566 mkdir -p $out
454567
568+ cp cabal.project.freeze $maybeFreeze
569+ # Not needed any more (we don't want it to wind up in the $out hash)
570+ rm cabal.project.freeze
571+
455572 # ensure we have all our .cabal files (also those generated from package.yaml) files.
456573 # otherwise we'd need to be careful about putting the `cabal-generator = hpack` into
457574 # the nix expression. As we already called `hpack` on all `package.yaml` files we can
@@ -472,26 +589,44 @@ let
472589 # proper relative paths.
473590 (cd $out${subDir'} && plan-to-nix --full --plan-json $tmp${subDir'}/dist-newstyle/cache/plan.json -o .)
474591
592+ # Replace the /nix/store paths to minimal git repos with indexes (that will work with materialization).
593+ ${fixedProject.replaceLocations}
594+
475595 # Make the plan.json file available in case we need to debug plan-to-nix
476− cp $tmp${subDir'}/dist-newstyle/cache/plan.json $json
596+ cp $tmp${subDir'}/dist-newstyle/cache/plan.json $maybeJson
477597
478598 # Remove the non nix files ".project" ".cabal" "package.yaml" files
479599 # as they should not be in the output hash (they may change slightly
480600 # without affecting the nix).
481− if [ -d $out${subDir'}/.source-repository-packages ]; then
482− chmod +w -R $out${subDir'}/.source-repository-packages
483− rm -rf $out${subDir'}/.source-repository-packages
484− fi
485601 find $out \( -type f -or -type l \) ! -name '*.nix' -delete
486602 # Remove empty dirs
487603 find $out -type d -empty -delete
488604
489605 # move pkgs.nix to default.nix ensure we can just nix `import` the result.
490606 mv $out${subDir'}/pkgs.nix $out${subDir'}/default.nix
607+ else
608+ # Check that this was a solver failure that (not some other
609+ # possibly non deterministic failure).
610+ # TODO replace grep once https://github.com/haskell/cabal/issues/5191
611+ # is fixed.
612+ grep "cabal: Could not resolve dependencies" cabal-configure.out
613+
614+ # When cabal configure fails copy the output that we captured above and
615+ # use `failed-cabal-configure.nix` to make a suitable derviation with.
616+ mkdir -p $out${subDir'}
617+ cp cabal-configure.out $out${subDir'}
618+ cp ${./failed-cabal-configure.nix} $out${subDir'}/default.nix
619+
620+ # These should only be used indirectly by `passthru.json` and `passthru.freeze`.
621+ # Those derivations will check for `cabal-configure.out` out first to see if
622+ # it is ok to use these files.
623+ echo "Cabal configure failed see $out${subDir'}/cabal-configure.out for details" > $maybeJson
624+ echo "Cabal configure failed see $out${subDir'}/cabal-configure.out for details" > $maybeFreeze
625+ fi
491626 '');
492627in {
493628 projectNix = plan-nix;
494629 index-state = index-state-found;
495630 inherit src;
496− inherit (fixedProject) sourceRepos;
631+ inherit (fixedProject) sourceRepos extra-hackages;
497632}
lib/call-stack-to-nix.nix+33−18
@@ -5,7 +5,6 @@
55 *
66 * see also `call-cabal-project-to-nix`!
77 */
8−{ runCommand, pkgs, mkCacheFile, materialize, haskellLib }:
98{ name ? src.name or null # optional name for better error messages
109, src
1110, stackYaml ? "stack.yaml"
@@ -15,17 +14,28 @@
1514, resolverSha256 ? null
1615, materialized ? null # Location of a materialized copy of the nix files
1716, 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)
19−, ... }:
17+, nix-tools
18+, evalPackages
19+, ... }@args:
2020let
21+ inherit (evalPackages) runCommand;
22+ inherit (evalPackages.haskell-nix) mkCacheFile materialize haskellLib;
2123 inherit (haskellLib.fetchResolver {
2224 inherit src stackYaml resolverSha256;
2325 }) resolver fetchedResolver;
2426
2527 subDir' = src.origSubDir or "";
28+ subDir = evalPackages.lib.strings.removePrefix "/" subDir';
29+ cleanedSource = (haskellLib.cleanSourceWith {
30+ name = if name != null then "${name}-root-cabal-files" else "source-root-cabal-files";
31+ src = src.origSrc or src;
32+ filter = path: type: (!(src ? filter) || src.filter path type) && (
33+ type == "directory" ||
34+ evalPackages.lib.any (i: (evalPackages.lib.hasSuffix i path)) [ stackYaml ".cabal" "package.yaml" ]); });
35+
2636 stackToNixArgs = builtins.concatStringsSep " " [
2737 "--full"
28− "--stack-yaml=$SRC/${stackYaml}"
38+ "--stack-yaml=$SRC${subDir'}/${stackYaml}"
2939 (if ignorePackageYaml then "--ignore-package-yaml" else "")
3040 "-o ."
3141 ];
@@ -34,35 +44,40 @@ let
3444 sha256 = stack-sha256;
3545 sha256Arg = "stack-sha256";
3646 reasonNotSafe = null;
37− } // pkgs.lib.optionalAttrs (checkMaterialization != null) {
47+ this = "project.stack-nix" + (if name != null then " for ${name}" else "");
48+ } // evalPackages.lib.optionalAttrs (checkMaterialization != null) {
3849 inherit checkMaterialization;
3950 }) (runCommand (if name == null then "stack-to-nix-pkgs" else name + "-stack-to-nix-pkgs") {
40− 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 ];
4152 # Needed or stack-to-nix will die on unicode inputs
42− 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";
4354 LANG = "en_US.UTF-8";
4455 LC_ALL = "en_US.UTF-8";
4556 preferLocalBuild = false;
4657 } (''
4758 mkdir -p $out${subDir'}
59+ SRC=$(mktemp -d)
60+ cd $SRC
61+ # if cleanedSource is empty, this means it's a new
62+ # project where the files haven't been added to the git
63+ # repo yet. We fail early and provide a useful error
64+ # message to prevent headaches (#290).
65+ if [ -z "$(ls -A ${cleanedSource})" ]; then
66+ echo "cleaned source is empty. Did you forget to 'git add -A'?"; exit 1;
67+ fi
68+ lndir -silent "${cleanedSource}/." $SRC
69+ ${evalPackages.lib.optionalString (subDir != "") "cd ${subDir}"}
4870 ${
49− # If no resolver was fetched use the original stack.yaml
50− if fetchedResolver == null
51− then ''
52− SRC=${src}
53− ''
54− else
71+ # If a resolver was fetched use the it instead of the original stack.yaml
72+ evalPackages.lib.optionalString (fetchedResolver != null)
5573 # Replace the resolver path in the stack.yaml with the fetched version
5674 ''
57− SRC=$(mktemp -d)
58− cd $SRC
59− lndir -silent "${src}/." $SRC
6075 rm ${stackYaml}
6176 cp ${src}/${stackYaml} .
6277 chmod +w ${stackYaml}
6378 substituteInPlace ${stackYaml} --replace "${resolver}" "${fetchedResolver}"
6479 ''}
65− ${pkgs.lib.optionalString (cache != null) ''
80+ ${evalPackages.lib.optionalString (cache != null) ''
6681 cp ${mkCacheFile cache}/.stack-to-nix.cache* $out${subDir'}
6782 ''}
6883 (cd $out${subDir'} && stack-to-nix ${stackToNixArgs})
@@ -70,7 +85,7 @@ let
7085 # We need to strip out any references to $src, as those won't
7186 # be accessable in restricted mode.
7287 for nixf in $(find $out -name "*.nix" -type f); do
73− substituteInPlace $nixf --replace "$SRC" "."
88+ substituteInPlace $nixf --replace "$SRC${subDir'}" "."
7489 done
7590
7691 # move pkgs.nix to default.nix ensure we can just nix `import` the result.
lib/check.nix+19−8
@@ -1,4 +1,4 @@
1−{ stdenv, lib, haskellLib, srcOnly }:
1+{ stdenv, lib, haskellLib }:
22drv:
33
44let
@@ -7,13 +7,25 @@ let
77# This derivation can be used to execute test component.
88# The $out of the derivation is a file containing the resulting
99# stdout output.
10−in stdenv.mkDerivation ({
10+in stdenv.mkDerivation ((
11+ if drv ? source
12+ then {
13+ src = drv.source;
14+ patchPhase =
15+ # This `cd` is normally done in the `prePatch` of the drv
16+ lib.optionalString (drv.srcSubDir != "") ''
17+ cd ${lib.removePrefix "/" drv.srcSubDir}
18+ '';
19+ }
20+ else
21+ # This makes the derivation work a bit like `srcOnly`,
22+ # using the original derivation, but replacing the `buildPhase`.
23+ (drv.drvAttrs or drv) // {
24+ outputs = [ "out" ];
25+ separateDebugInfo = false;
26+ }) // {
1127 name = (drv.name + "-check");
1228
13− # Useing `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);
16−
1729 passthru = {
1830 inherit (drv) identifier config configFiles executableToolDepends cleanSrc env exeName;
1931 };
@@ -22,13 +34,12 @@ in stdenv.mkDerivation ({
2234
2335 inherit (component) doCheck doCrossCheck;
2436
25− phases = ["unpackPhase" "buildPhase"];
37+ phases = ["unpackPhase" "patchPhase" "buildPhase"];
2638
2739 # If doCheck or doCrossCheck are false we may still build this
2840 # component and we want it to quietly succeed.
2941 buildPhase = ''
3042 mkdir $out
31−
3243 runHook preCheck
3344
3445 ${toString component.testWrapper} ${drv}/bin/${drv.exeName} ${lib.concatStringsSep " " component.testFlags} | tee $out/test-stdout
lib/clean-cabal-component.nix+105−56
@@ -1,19 +1,55 @@
11# Use cleanSourceWith to filter just the files needed for a particular
22# component of the package
3−{ lib, cleanSourceWith }: package: component: src:
3+{ lib, cleanSourceWith }: package: component: componentName: src:
44let
5− srcStr' = src.origSrcSubDir or src.origSrc or null;
5+ srcStr' = src.origSrc or null;
6+ subDir = if src.origSubDir or "" == ""
7+ then ""
8+ else lib.removePrefix "/" src.origSubDir + "/";
9+ # Remove a directory for each .. part of a path.
10+ removeDotDots = parts: lib.reverseList (
11+ builtins.foldl' (a: b:
12+ if b == ".."
13+ then builtins.tail a
14+ else builtins.concatLists [ [b] a ]) [] parts);
615 # Transform
7− # "." -> ""
8− # "./." -> ""
9− # "./xyz" -> "xyz"
10− normalizeRelativePath = rel:
11− if rel == "." || rel == "./."
12− then ""
13− else lib.strings.removePrefix "./" rel;
14− # Like normalizeRelativePath but with a trailing / when needed
15− normalizeRelativeDir = dir:
16− let p = normalizeRelativePath dir;
16+ # "." -> ""
17+ # "./." -> ""
18+ # "./xyz" -> "xyz"
19+ # "../abc" -> ERROR
20+ # "abc/.." -> ""
21+ # "abc/../xyz" -> "xyz"
22+ # "abc/./xyz" -> "abc/xyz"
23+ # "abc/./../xyz" -> "xyz"
24+ # "abc/.././xyz" -> "xyz"
25+ # "abc/" -> "abc/"
26+ normalizeRelativePath = path:
27+ let
28+ # Split the path into component parts and remove the empty ones and single dots.
29+ nonEmptyParts = lib.filter (x: x != "" && x != ".") (lib.splitString "/" path);
30+ in lib.concatStringsSep "/" (removeDotDots nonEmptyParts)
31+ # Keep the trailing slash if there was one.
32+ + (if lib.hasSuffix "/" path then "/" else "");
33+ isAbsolutePath = path: lib.hasPrefix "/" path;
34+ isRelativePath = path: !(isAbsolutePath path);
35+ normalizePath = path:
36+ (if isAbsolutePath path
37+ then "/"
38+ else ""
39+ ) + normalizeRelativePath path;
40+ combinePaths = a: b:
41+ if isAbsolutePath b
42+ then b
43+ else normalizePath (
44+ if a == ""
45+ then b
46+ else if b == ""
47+ then a
48+ else a + "/" + b
49+ );
50+ # Like normalizePath but with a trailing / when needed
51+ normalizeDir = dir:
52+ let p = normalizePath dir;
1753 in if p == "" || p == "/"
1854 then ""
1955 else if lib.hasSuffix "/" p
@@ -25,65 +61,78 @@ in
2561 else
2662 let
2763 srcStr = toString srcStr';
28− dataDir = normalizeRelativeDir package.dataDir;
29− hsSourceDirs = builtins.map normalizeRelativeDir component.hsSourceDirs
30− ++ (if component.hsSourceDirs == [] then [""] else []);
31− includeDirs = builtins.map normalizeRelativeDir component.includeDirs;
32− dirsNeeded = [dataDir]
64+ dataDir = combinePaths subDir package.dataDir;
65+ hsSourceDirs = builtins.map (d: combinePaths subDir d) component.hsSourceDirs
66+ ++ (if component.hsSourceDirs == [] then [subDir] else []);
67+ includeDirs = builtins.map (d: combinePaths subDir d) component.includeDirs;
68+ # paths that will be needed (used to check if a parent dir should be included)
69+ dirsNeeded =
70+ # These already include subDir
71+ [dataDir]
3372 ++ hsSourceDirs
34− ++ includeDirs;
73+ ++ includeDirs
74+ ++ builtins.map (f: combinePaths dataDir f) package.dataFiles
75+ ++ otherSourceFiles
76+ ++ builtins.map (d: combinePaths subDir d) (
77+ # These need the subDir added
78+ package.licenseFiles
79+ ++ package.extraSrcFiles
80+ ++ component.extraSrcFiles
81+ ++ package.extraDocFiles);
3582 fileMatch = dir: list:
3683 let
37− prefixes = builtins.map (f: dir + f) (
84+ prefixes = builtins.map (f: combinePaths dir f) (
3885 lib.lists.remove null (lib.lists.flatten (
3986 builtins.map (f: builtins.match "([^*]*)[*].*" f) list)));
40− exactMatches = builtins.map (f: dataDir + f) (
87+ exactMatches = builtins.map (f: combinePaths dir f) (
4188 lib.lists.remove null (lib.lists.flatten (
4289 builtins.map (f: builtins.match "([^*]*)" f) list)));
4390 in rPath: lib.any (d: lib.strings.hasPrefix d rPath) prefixes
4491 || lib.any (d: d == rPath) exactMatches;
4592 dataFileMatch = fileMatch dataDir package.dataFiles;
46− licenseMatch = fileMatch "" package.licenseFiles;
47− extraSrcMatch = fileMatch "" (
93+ licenseMatch = fileMatch subDir package.licenseFiles;
94+ extraSrcMatch = fileMatch subDir (
4895 package.extraSrcFiles
4996 ++ component.extraSrcFiles);
50− extraDocMatch = fileMatch "" package.extraDocFiles;
51− otherSourceFiles =
97+ extraDocMatch = fileMatch subDir package.extraDocFiles;
98+ otherSourceFiles = builtins.map (f: combinePaths subDir f) (
5299 component.asmSources
53100 ++ component.cmmSources
54101 ++ component.cSources
55102 ++ component.cxxSources
56− ++ component.jsSources;
103+ ++ component.jsSources);
57104 in cleanSourceWith {
58− inherit src;
59− filter = path: type:
60− assert (if !lib.strings.hasPrefix (srcStr + "/") (path + "/")
61− then throw ("Unexpected path " + path + " (expected something in " + srcStr + "/)")
62− else true);
63− let
64− srcStrLen = lib.strings.stringLength srcStr;
65− rPath = lib.strings.substring (srcStrLen + 1) (lib.strings.stringLength path - srcStrLen - 1) path;
66− # This is a handy way to find out why different files are included
67− # traceReason = reason: v: if v then builtins.trace (rPath + " : " + reason) true else false;
68− traceReason = reason: v: v;
69− in
70− traceReason "directory is needed" (
71− lib.any (d: lib.strings.hasPrefix (rPath + "/") d) (
72− dirsNeeded
73− ++ package.licenseFiles
74− ++ package.extraSrcFiles
75− ++ component.extraSrcFiles
76− ++ package.extraDocFiles
77− ++ builtins.map (f: dataDir + f) package.dataFiles
78− ++ otherSourceFiles))
79− || traceReason "cabal package definition" (lib.strings.hasSuffix ".cabal" rPath)
80− || traceReason "hpack package defintion" (rPath == "package.yaml")
81− || traceReason "data file" (lib.strings.hasPrefix dataDir rPath
82− && dataFileMatch rPath)
83− || traceReason "haskell source dir" (lib.any (d: lib.strings.hasPrefix d rPath) hsSourceDirs)
84− || traceReason "include dir" (lib.any (d: lib.strings.hasPrefix d rPath) includeDirs)
85− || traceReason "license file" (licenseMatch rPath)
86− || traceReason "extra source file" (extraSrcMatch rPath)
87− || traceReason "extra doc file" (extraDocMatch rPath)
88− || traceReason "other source file" (lib.any (f: f == rPath) otherSourceFiles);
105+ name = src.name or "source" + "-${componentName}";
106+ subDir = lib.removePrefix "/" (src.origSubDir or "");
107+ includeSiblings = true;
108+ src = cleanSourceWith {
109+ src = src.origSrc or src;
110+ filter = path: type:
111+ (!(src ? filter) || src.filter path type) && (
112+ assert (if !lib.strings.hasPrefix (srcStr + "/") (path + "/")
113+ then throw ("Unexpected path " + path + " (expected something in " + srcStr + "/)")
114+ else true);
115+ let
116+ srcStrLen = lib.strings.stringLength srcStr;
117+ rPath = lib.strings.substring (srcStrLen + 1) (lib.strings.stringLength path - srcStrLen - 1) path;
118+ # This is a handy way to find out why different files are included
119+ # traceReason = reason: v: if v then builtins.trace (rPath + " : " + reason) true else false;
120+ traceReason = reason: v: v;
121+ in
122+ traceReason "directory is needed" (
123+ lib.any (d: lib.strings.hasPrefix (rPath + "/") d) dirsNeeded)
124+ || traceReason "cabal package definition" (lib.strings.hasPrefix subDir rPath
125+ && lib.strings.hasSuffix ".cabal" rPath)
126+ || traceReason "hpack package defintion" (lib.strings.hasPrefix subDir rPath
127+ && rPath == "package.yaml")
128+ || traceReason "data file" (lib.strings.hasPrefix dataDir rPath
129+ && dataFileMatch rPath)
130+ || traceReason "haskell source dir" (lib.any (d: lib.strings.hasPrefix d rPath) hsSourceDirs)
131+ || traceReason "include dir" (lib.any (d: lib.strings.hasPrefix d rPath) includeDirs)
132+ || traceReason "license file" (licenseMatch rPath)
133+ || traceReason "extra source file" (extraSrcMatch rPath)
134+ || traceReason "extra doc file" (extraDocMatch rPath)
135+ || traceReason "other source file" (lib.any (f: f == rPath) otherSourceFiles)
136+ );
137+ };
89138 }
lib/clean-git.nix+88−47
@@ -1,6 +1,6 @@
11# From https://github.com/NixOS/nix/issues/2944
22{ lib, runCommand, git, cleanSourceWith }:
3−{ name ? null, src, subDir ? "" }:
3+{ name ? null, src, subDir ? "", includeSiblings ? false, keepGitDir ? false }:
44
55# The function call
66#
@@ -24,26 +24,6 @@ with builtins;
2424# is shared among multiple invocations of gitSource:
2525
2626let
27− filter_from_list = root: files:
28− let
29− all_paren_dirs = p:
30− if p == "." || p == "/"
31− then []
32− else [ p ] ++ all_paren_dirs (dirOf p);
33−
34− whitelist_set = listToAttrs (
35− concatMap (p:
36− # Using `origSrcSubDir` (if present) makes it possible to cleanGit src that
37− # has already been cleaned with cleanSrcWith.
38− let full_path = root.origSrcSubDir or (toString root) + "/${p}"; in
39− map (p': { name = p'; value = true; }) (all_paren_dirs full_path)
40− ) files
41− );
42− in
43− p: t: hasAttr (toString p) whitelist_set;
44−
45− has_prefix = prefix: s:
46− prefix == builtins.substring 0 (builtins.stringLength prefix) s;
4727 remove_prefix = prefix: s:
4828 builtins.substring
4929 (builtins.stringLength prefix)
@@ -84,10 +64,14 @@ then
8464 git_content = lines (readFile (origSrcSubDir + "/.git"));
8565 first_line = head git_content;
8666 prefix = "gitdir: ";
87− ok = length git_content == 1 && has_prefix prefix first_line;
67+ ok = length git_content == 1 && lib.hasPrefix prefix first_line;
68+ raw_path = remove_prefix prefix first_line;
8869 in
8970 if ok
90− then /. + remove_prefix prefix first_line
71+ then
72+ if lib.hasPrefix "/" raw_path
73+ then /. + raw_path
74+ else /. + builtins.toPath (origSrcSubDir + "/" + raw_path)
9175 else abort "gitSource.nix: Cannot parse ${origSrcSubDir + "/.git"}";
9276 }));
9377
@@ -107,32 +91,37 @@ then
10791 gitModulesStr = origSrcSubDir + "/.gitmodules";
10892 gitModules = builtins.path { name = "gitmodules"; path = gitModulesStr; };
10993
110− gitSubmoduleFiles = cleanSourceWith {
111− caller = "cleanGit";
112− name = (if name == null then "" else name + "-") + "gitSubmoduleFiles";
113− inherit src;
114− filter = path: type:
115− type == "directory" # TODO get sudmodule directories from `.gitmodules`
116− # and use that to filter directory tree here
117− ||
118− lib.any (i: (lib.hasSuffix i path)) [
119− "/.git" ".gitmodules" ".git/config" ".git/index" ".git/HEAD" ".git/objects" ".git/refs" ] ||
120− (lib.strings.hasInfix ".git/modules/" path &&
94+ # Files from the git repository related knownSubmoduleDirs.
95+ gitSubmoduleFiles = knownSubmoduleDirs:
96+ let pathsNeeded = map (p: toString (src.origSrcSubDir or src) + "/${p}") (
97+ lib.concatMap (x: all_paren_dirs (x + "/.git")) knownSubmoduleDirs);
98+ in cleanSourceWith {
99+ caller = "cleanGit";
100+ name = (if name == null then "" else name + "-") + "gitSubmoduleFiles";
101+ inherit src;
102+ filter = path: type:
103+ elem path pathsNeeded
104+ ||
121105 lib.any (i: (lib.hasSuffix i path)) [
122− "config" "index" "HEAD" "objects" "refs" ]);
123− };
106+ ".gitmodules" ".git/config" ".git/index" ".git/HEAD" ".git/objects" ".git/refs" ]
107+ ||
108+ (lib.strings.hasInfix ".git/modules/" path &&
109+ lib.any (i: (lib.hasSuffix i path)) [
110+ "config" "index" "HEAD" "objects" "refs" ]);
111+ };
112+
113+ hasSubmodules = !isWorktree && builtins.pathExists gitModulesStr;
124114
125115 # Make a temporary dir that looks enough like the real thing for
126116 # `git ls-files --recurse-submodules` to give us an accurate list
127117 # of all the files in the index.
128− whitelist_file =
129− runCommand "git-ls-files" {envVariable = true;} ''
118+ whitelist_files = knownSubmoduleDirs:
119+ runCommand "git-ls-files" { preferLocalBuild = true; } ''
130120 tmp=$(mktemp -d)
131121 cd $tmp
132− ${ lib.optionalString (!isWorktree && builtins.pathExists gitModulesStr) ''
133− cp -ra ${gitSubmoduleFiles}/. $tmp
122+ ${ lib.optionalString hasSubmodules ''
123+ cp -ra ${gitSubmoduleFiles knownSubmoduleDirs}/. $tmp
134124 chmod +w -R $tmp
135− rm -rf .git
136125 ''}
137126 cp -r ${gitDir} .git
138127 chmod +w -R .git
@@ -143,22 +132,74 @@ then
143132 ${ lib.optionalString (isWorktree && builtins.pathExists gitModulesStr) ''
144133 cp ${gitModules} ./.gitmodules
145134 ''}
146− ${git}/bin/git ls-files --recurse-submodules > $out
135+ mkdir $out
136+ ${ lib.optionalString hasSubmodules ''
137+ ${git}/bin/git submodule status --recursive | awk '{ print $2 }' > $out/submoduleDirs
138+ ''}
139+ ${git}/bin/git ls-files --recurse-submodules > $out/files
147140 '';
148141
149− whitelist = lines (readFile (whitelist_file.out));
142+ # Find the submodules
143+ whitelist_recursive = knownSubmoduleDirs:
144+ let
145+ # Get the new list of submoduleDirs and files
146+ # (useing the submoduleDirs we already know about)
147+ files = whitelist_files knownSubmoduleDirs;
148+ new = {
149+ submoduleDirs = lines (readFile (files + "/submoduleDirs"));
150+ files = lines (readFile (files + "/files"));
151+ };
152+ in
153+ # If we are not expecting submodules or if the new list does not
154+ # contain any additional submodules we are done.
155+ if !hasSubmodules || lib.all (x: elem x knownSubmoduleDirs) new.submoduleDirs
156+ then new
157+ else
158+ # Look again using what we know now about the submodules
159+ whitelist_recursive new.submoduleDirs;
160+
161+ # Use empty as a starting point for looking for submodules.
162+ # We could allow a list to be passed into cleanGit, but when testing
163+ # on the `ghcjs` repo (one with a lot of submodules) it did not
164+ # make much of a difference to the speed of `cleanGit`.
165+ whitelist = whitelist_recursive [];
166+
167+ all_paren_dirs = p:
168+ if p == "." || p == "/"
169+ then []
170+ else [ p ] ++ all_paren_dirs (dirOf p);
171+
172+ # All the paths that we need to keep as a set (including parent dirs)
173+ whitelist_set = listToAttrs (
174+ concatMap (p:
175+ # Using `origSrcSubDir` (if present) makes it possible to cleanGit src that
176+ # has already been cleaned with cleanSrcWith.
177+ let full_path = toString (src.origSrcSubDir or src) + "/${p}"; in
178+ map (p': { name = p'; value = true; }) (all_paren_dirs full_path)
179+ ) whitelist.files
180+ );
181+
182+ # Identify files in the `.git` dir
183+ isGitDirPath = path:
184+ path == origSrcSubDir + "/.git"
185+ || lib.hasPrefix (origSrcSubDir + "/.git/") path;
150186
151− filter = filter_from_list src whitelist;
187+ filter = path: type:
188+ hasAttr (toString path) whitelist_set
189+ || (keepGitDir && isGitDirPath path);
152190 in
153191 cleanSourceWith {
154192 caller = "cleanGit";
155− inherit name src subDir filter;
193+ inherit name src subDir includeSiblings filter;
194+ } // {
195+ # For testing
196+ # inherit whitelist whitelist_set;
156197 }
157198
158199else
159− trace "gitSource.nix: ${origSrcSubDir} does not seem to be a git repository,\nassuming it is a clean checkout." (
200+ trace "haskell-nix.haskellLib.cleanGit: ${origSrcSubDir} does not seem to be a git repository,\nassuming it is a clean checkout." (
160201 cleanSourceWith {
161202 caller = "cleanGit";
162− inherit name src subDir;
203+ inherit name src subDir includeSiblings;
163204 }
164205 )
lib/clean-source-haskell.nix+1−15
@@ -35,21 +35,7 @@ rec {
3535 src = lib.cleanSource src;
3636 inherit name;
3737 };
38− # Copy function from 19.09 for compatibility with 19.03.
39− # Does require at least Nix 2.0.
40− compat = let
41− isFiltered = src ? _isLibCleanSourceWith;
42− origSrc = if isFiltered then src.origSrc else src;
43− filter' = name: type: haskellSourceFilter name type && lib.cleanSourceFilter name type;
44− name' = if name != null then name else if isFiltered then src.name else baseNameOf src;
45− in {
46− inherit origSrc;
47− filter = filter';
48− outPath = builtins.path { filter = filter'; path = origSrc; name = name'; };
49− _isLibCleanSourceWith = true;
50− name = name';
51− };
5238 in
5339 if (builtins.typeOf src) == "path"
54− then (if lib.versionAtLeast lib.version "19.09" then clean else compat) else src;
40+ then clean else src;
5541}
lib/clean-source-with.nix+35−8
@@ -50,6 +50,33 @@
5050 # (and forward a `name` argument) can use this to make
5151 # the message to the use more meaningful.
5252 #
53+ # Nix <2.4 Suport with filterPath
54+ #
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`).
59+ #
60+ # To disable filtering completely replace:
61+ #
62+ # src = ./.;
63+ #
64+ # with:
65+ #
66+ # src = { outPath = ./.; filterPath = { path, ... }: path; };
67+ #
68+ # To disable filtering only when the path is in the store use (when Nix <2.4 is unable to filter it):
69+ #
70+ # src = {
71+ # outPath = ./.;
72+ # filterPath = { path, ... }@args:
73+ # if builtins.hasContext (toString path) then path else builtins.path args;
74+ # };
75+ #
76+ # Currently `haskell-nix.hackage-project` (used by `hackage-package`, `tool` and `tools`) disables
77+ # filtering. See `overlays/haskell.nix` for details.
78+ #
79+ # For more see https://github.com/input-output-hk/haskell.nix/pull/1418
5380 cleanSourceWith = { filter ? _path: _type: true, src, subDir ? "", name ? null
5481 , caller ? "cleanSourceWith", includeSiblings ? false }:
5582 let
@@ -103,21 +130,21 @@
103130 __trace (
104131 "WARNING: `${caller}` called on ${toString src} without a `name`. "
105132 + "Consider adding `name = \"${baseNameOf src}\";`") "source";
133+ filterPath = origSrc.filterPath or (
134+ if builtins.compareVersions builtins.nixVersion "2.4" >= 0
135+ then builtins.path
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));
106140 in {
107141 inherit origSrc origSubDir origSrcSubDir;
108142 filter = filter';
109− outPath = (builtins.path { filter = filter'; path = origSrc; name = name'; }) + origSubDir;
143+ outPath = (filterPath { filter = filter'; path = origSrc; name = name'; }) + origSubDir;
110144 _isLibCleanSourceWithEx = true;
111145 # It is only safe for older cleanSourceWith to filter this one
112146 # if the we are still looking at the root of origSrc
113147 _isLibCleanSourceWith = origSubDir == "";
114148 name = name';
115149 };
116−
117− pathHasContext = builtins.hasContext or (lib.hasPrefix builtins.storeDir);
118−
119− canCleanSource = src:
120− src ? _isLibCleanSourceWithEx
121− || src ? _isLibCleanSourceWith
122− || !(pathHasContext (toString src));
123150}
lib/cover-project.nix+50−56
@@ -2,25 +2,20 @@
22# reports
33{ stdenv, pkgs, lib, haskellLib }:
44
5+# haskell.nix project
6+project:
57# List of coverage reports to accumulate
68coverageReports:
79
810let
911 toBashArray = arr: "(" + (lib.concatStringsSep " " arr) + ")";
1012
11− # Create table rows for a project coverage index page that look something like:
12− #
13− # | Package |
14− # |------------------|
15− # | cardano-shell |
16− # | cardano-launcher |
17− coverageTableRows = coverageReport:
13+ # Create a list element for a project coverage index page.
14+ coverageListElement = coverageReport:
1815 ''
19− <tr>
20− <td>
21− <a href="${coverageReport.passthru.name}/hpc_index.html">${coverageReport.passthru.name}</href>
22− </td>
23− </tr>
16+ <li>
17+ <a href="${coverageReport.passthru.name}/hpc_index.html">${coverageReport.passthru.name}</a>
18+ </li>
2419 '';
2520
2621 projectIndexHtml = pkgs.writeText "index.html" ''
@@ -29,35 +24,50 @@ let
2924 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
3025 </head>
3126 <body>
32− <table border="1" width="100%">
33− <tbody>
34− <tr>
35− <th>Report</th>
36− </tr>
37−
38− ${with lib; concatStringsSep "\n" (map coverageTableRows coverageReports)}
39−
40− </tbody>
41− </table>
27+ <div>
28+ WARNING: Modules with no coverage are not included in any of these reports, this is just how HPC works under the hood.
29+ </div>
30+ <div>
31+ <h2>Union Report</h2>
32+ <p>The following report shows how each module is covered by any test in the project:</p>
33+ <ul>
34+ <li>
35+ <a href="all/hpc_index.html">all</a>
36+ </li>
37+ </ul>
38+ </div>
39+ <div>
40+ <h2>Individual Reports</h2>
41+ <p>The following reports show how the tests of each package cover modules in the project:</p>
42+ <ul>
43+ ${with lib; concatStringsSep "\n" (map coverageListElement coverageReports)}
44+ </ul>
45+ </div>
4246 </body>
4347 </html>
4448 '';
4549
46− ghc =
47− if (builtins.length coverageReports) > 0
48− then (builtins.head coverageReports).library.project.pkg-set.config.ghc.package or pkgs.ghc
49− else pkgs.ghc;
50+ ghc = project.pkg-set.config.ghc.package;
5051
51− libs = map (r: r.library) coverageReports;
52−
53− projectLibs = map (pkg: pkg.components.library) (lib.attrValues (haskellLib.selectProjectPackages ((lib.head libs).project.hsPkgs)));
52+ libs = lib.unique (lib.concatMap (r: r.mixLibraries) coverageReports);
5453
5554 mixDirs =
5655 map
5756 (l: "${l}/share/hpc/vanilla/mix/${l.identifier.name}-${l.identifier.version}")
58− (projectLibs);
57+ libs;
58+
59+ srcDirs = map (l: l.srcSubDirPath) libs;
5960
60− srcDirs = map (l: l.src.outPath) (projectLibs);
61+ allCoverageReport = haskellLib.coverageReport {
62+ name = "all";
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;
70+ };
6171
6272in pkgs.runCommand "project-coverage-report"
6373 ({ nativeBuildInputs = [ (ghc.buildGHC or ghc) pkgs.buildPackages.zip ];
@@ -122,35 +132,19 @@ in pkgs.runCommand "project-coverage-report"
122132 fi
123133
124134 # Copy mix, tix, and html information over from each report
125− cp -Rn $report/share/hpc/vanilla/mix/$identifier/* $out/share/hpc/vanilla/mix/
135+ cp -Rn $report/share/hpc/vanilla/mix/$identifier $out/share/hpc/vanilla/mix/
126136 cp -R $report/share/hpc/vanilla/tix/* $out/share/hpc/vanilla/tix/
127137 cp -R $report/share/hpc/vanilla/html/* $out/share/hpc/vanilla/html/
128138 '') coverageReports)}
129139
130− if [ ''${#tixFiles[@]} -ne 0 ]; then
131− # Create tix file with test run information for all packages
132− tixFile="$out/share/hpc/vanilla/tix/all/all.tix"
133− hpcSumCmd=("hpc" "sum" "--union" "--output=$tixFile")
134− hpcSumCmd+=("''${tixFiles[@]}")
135− echo "''${hpcSumCmd[@]}"
136− eval "''${hpcSumCmd[@]}"
137−
138− # Markup a HTML coverage report for the entire project
139− cp ${projectIndexHtml} $out/share/hpc/vanilla/html/index.html
140− echo "report coverage-per-package $out/share/hpc/vanilla/html/index.html" >> $out/nix-support/hydra-build-products
141−
142− local markupOutDir="$out/share/hpc/vanilla/html/all"
143− local srcDirs=${toBashArray srcDirs}
144− local mixDirs=${toBashArray mixDirs}
145− local allMixModules=()
146−
147− mkdir $markupOutDir
148− findModules allMixModules "$out/share/hpc/vanilla/mix/" "*.mix"
140+ # Copy out "all" coverage report
141+ cp -R ${allCoverageReport}/share/hpc/vanilla/tix/all $out/share/hpc/vanilla/tix
142+ cp -R ${allCoverageReport}/share/hpc/vanilla/html/all $out/share/hpc/vanilla/html
149143
150− 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
151146
152− echo "report coverage $markupOutDir/hpc_index.html" >> $out/nix-support/hydra-build-products
153− ( cd $out/share/hpc/vanilla/html ; zip -r $out/share/hpc/vanilla/html.zip . )
154− echo "file zip $out/share/hpc/vanilla/html.zip" >> $out/nix-support/hydra-build-products
155− fi
147+ echo "report coverage $out/share/hpc/vanilla/html/index.html" >> $out/nix-support/hydra-build-products
148+ ( cd $out/share/hpc/vanilla/html ; zip -r $out/share/hpc/vanilla/html.zip . )
149+ echo "file zip $out/share/hpc/vanilla/html.zip" >> $out/nix-support/hydra-build-products
156150 ''
lib/cover.nix+103−70
@@ -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
3+# "mixLibraries".
14{ stdenv, lib, haskellLib, pkgs }:
25
3−# Name of the coverage report, which should be unique
6+# Name of the coverage report, which should be unique.
47{ name
5−# Library to check coverage of
6−, library
7−# List of check derivations that generate coverage
8−, checks
9−# List of other libraries to include in the coverage report. The
10−# default value if just the derivation provided as the `library`
11−# argument. Use a larger list of libraries if you would like the tests
12−# of one local package to generate coverage for another.
13−, mixLibraries ? [library]
14−# hack for project-less projects
15−, ghc ? library.project.pkg-set.config.ghc.package
8+# List of check derivations that generate coverage.
9+, checks ? []
10+# List of libraries to include in the coverage report. If one of the above
11+# checks generates coverage for a particular library, coverage will only
12+# be included if that library is in this list.
13+, mixLibraries ? []
14+# Hack for project-less projects.
15+, ghc ? if mixLibraries == [] then null else (lib.head mixLibraries).project.pkg-set.config.ghc.package
1616}:
1717
1818let
@@ -21,12 +21,12 @@ let
2121 mixDir = l: "${l}/share/hpc/vanilla/mix/${l.identifier.name}-${l.identifier.version}";
2222 mixDirs = map mixDir mixLibraries;
2323
24− srcDirs = map (l: l.src.outPath) mixLibraries;
24+ srcDirs = map (l: l.srcSubDirPath) mixLibraries;
2525
2626in pkgs.runCommand (name + "-coverage-report")
2727 ({nativeBuildInputs = [ (ghc.buildGHC or ghc) pkgs.buildPackages.zip ];
2828 passthru = {
29− inherit name library checks;
29+ inherit name checks mixLibraries;
3030 };
3131 # HPC will fail if the Haskell file contains non-ASCII characters,
3232 # unless our locale is set correctly. This has been fixed, but we
@@ -70,71 +70,105 @@ in pkgs.runCommand (name + "-coverage-report")
7070 local -n tixFs=$2
7171 local outFile="$3"
7272
73− local hpcSumCmd=("hpc" "sum" "--union" "--output=$outFile")
73+ if (( "''${#tixFs[@]}" > 0 )); then
74+ local hpcSumCmd=("hpc" "sum" "--union" "--output=$outFile")
7475
75− for module in "''${includedModules[@]}"; do
76− hpcSumCmd+=("--include=$module")
77− done
76+ for module in "''${includedModules[@]}"; do
77+ hpcSumCmd+=("--include=$module")
78+ done
7879
79− for tixFile in "''${tixFs[@]}"; do
80− hpcSumCmd+=("$tixFile")
81− done
80+ for tixFile in "''${tixFs[@]}"; do
81+ hpcSumCmd+=("$tixFile")
82+ done
8283
83− echo "''${hpcSumCmd[@]}"
84− eval "''${hpcSumCmd[@]}"
84+ echo "''${hpcSumCmd[@]}"
85+ eval "''${hpcSumCmd[@]}"
86+ else
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
91+ fi
8592 }
8693
8794 function findModules() {
88− local searchDir=$2
95+ local -n result=$1
96+ local -n searchDirs=$2
8997 local pattern=$3
9098
91− pushd $searchDir
92− mapfile -d $'\0' $1 < <(find ./ -type f \
93− -wholename "$pattern" -not -name "Paths*" \
94− -exec basename {} \; \
95− | sed "s/\.mix$//" \
96− | tr "\n" "\0")
97− popd
99+ for dir in "''${searchDirs[@]}"; do
100+ pushd $dir
101+ local temp=()
102+ mapfile -d $'\0' temp < <(find ./ -type f \
103+ -wholename "$pattern" -not -name "Paths*" \
104+ -exec basename {} \; \
105+ | sed "s/\.mix$//" \
106+ | tr "\n" "\0")
107+ result+=("''${temp[@]}")
108+ popd
109+ done
98110 }
99111
100− local mixDirs=${toBashArray mixDirs}
101−
102112 mkdir -p $out/nix-support
103− mkdir -p $out/share/hpc/vanilla/mix/${name}
113+ mkdir -p $out/share/hpc/vanilla/mix/
104114 mkdir -p $out/share/hpc/vanilla/tix/${name}
105115 mkdir -p $out/share/hpc/vanilla/html/${name}
106116
107− # Copy over mix files verbatim
117+ local srcDirs=${toBashArray srcDirs}
118+ local mixDirs=${toBashArray mixDirs}
119+
120+ # Copy out mix files used for this report
108121 for dir in "''${mixDirs[@]}"; do
109122 if [ -d "$dir" ]; then
110− cp -R "$dir"/* $out/share/hpc/vanilla/mix/${name}
123+ cp -R "$dir" $out/share/hpc/vanilla/mix/
111124 fi
112125 done
113126
114− local srcDirs=${toBashArray srcDirs}
115− local allMixModules=()
116− local pkgMixModules=()
117−
118− # The behaviour of stack coverage reports is to provide tix files
119− # that include coverage information for every local package, but
120− # to provide HTML reports that only include coverage info for the
121− # current package. We emulate the same behaviour here. If the user
122− # includes all local packages in the mix libraries argument, they
123− # will get a coverage report very similar to stack.
124−
125− # All mix modules
126− findModules allMixModules "$out/share/hpc/vanilla/mix/${name}" "*.mix"
127− # Only mix modules corresponding to this package
128− findModules pkgMixModules "$out/share/hpc/vanilla/mix/${name}" "*${name}*/*.mix"
129−
130− # For each test
127+ local mixModules=()
128+ # Mix modules for all packages in "mixLibraries"
129+ findModules mixModules mixDirs "*.mix"
130+
131+ # We need to make a distinction between library "exposed-modules" and
132+ # "other-modules" used in test suites:
133+ # - "exposed-modules" are addressed as "$library-$version-$hash/module"
134+ # - "other-modules" are addressed as "module"
135+ #
136+ # This complicates the code required to find the mix modules. For a given mix directory:
137+ #
138+ # mix
139+ # └── ntp-client-0.0.1
140+ # └── ntp-client-0.0.1-gYjRsBHUCaHX7ENcjHnw5
141+ # ├── Network.NTP.Client.mix
142+ # ├── Network.NTP.Client.Packet.mix
143+ # └── Network.NTP.Client.Query.mix
144+ #
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.
149+ #
150+ # I'd prefer to just exclude "other-modules", but I can't think of an easy
151+ # way to do that in bash.
152+ #
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 {} \; \
160+ | uniq \
161+ | tr "\n" "\0")
162+ mixDirs+=("''${otherModulesSearchDirs[@]}")
163+ done
164+
131165 local tixFiles=()
132166 ${lib.concatStringsSep "\n" (builtins.map (check: ''
133167 if [ -d "${check}/share/hpc/vanilla/tix" ]; then
134168 pushd ${check}/share/hpc/vanilla/tix
135169
136170 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)"
138172
139173 mkdir -p "$(dirname $newTixFile)"
140174 # Copy over the tix file verbatim
@@ -143,29 +177,28 @@ in pkgs.runCommand (name + "-coverage-report")
143177 # Add the tix file to our list
144178 tixFiles+=("$newTixFile")
145179
146− # Create a coverage report for *just that test*
147− markup srcDirs mixDirs pkgMixModules "$out/share/hpc/vanilla/html/${name}/${check.exeName}/" "$newTixFile"
180+ # Create a coverage report for *just that check* affecting any of the
181+ # "mixLibraries"
182+ markup srcDirs mixDirs mixModules "$out/share/hpc/vanilla/html/${check.name}/" "$newTixFile"
148183
149184 popd
150185 fi
151186 '') checks)
152187 }
153188
154− # Sum tix files to create a tix file with all relevant tix
155− # information and markup a HTML report from this info.
156− if (( "''${#tixFiles[@]}" > 0 )); then
157− local sumTixFile="$out/share/hpc/vanilla/tix/${name}/${name}.tix"
158− local markupOutDir="$out/share/hpc/vanilla/html/${name}"
189+ # Sum tix files to create a tix file with tix information from all tests in
190+ # the package and markup a HTML report from this info.
191+ local sumTixFile="$out/share/hpc/vanilla/tix/${name}/${name}.tix"
192+ local markupOutDir="$out/share/hpc/vanilla/html/${name}"
159193
160− # Sum all of our tix file, including modules from any local package
161− sumTix allMixModules tixFiles "$sumTixFile"
194+ # Sum all of our tix files
195+ sumTix mixModules tixFiles "$sumTixFile"
162196
163− # Markup a HTML report, included modules from only this package
164− markup srcDirs mixDirs pkgMixModules "$markupOutDir" "$sumTixFile"
197+ # Markup a HTML report
198+ markup srcDirs mixDirs mixModules "$markupOutDir" "$sumTixFile"
165199
166− # Provide a HTML zipfile and Hydra links
167− ( 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
169− echo "file zip $out/share/hpc/vanilla/${name}-html.zip" >> $out/nix-support/hydra-build-products
170− fi
200+ # Provide a HTML zipfile and Hydra links
201+ ( cd "$markupOutDir" ; zip -r $out/share/hpc/vanilla/${name}-html.zip . )
202+ echo "report coverage $markupOutDir/hpc_index.html" >> $out/nix-support/hydra-build-products
203+ echo "file zip $out/share/hpc/vanilla/${name}-html.zip" >> $out/nix-support/hydra-build-products
171204 ''
lib/default.nix+100−30
@@ -4,11 +4,8 @@
44with haskellLib;
55
66let
7− # Why `final.evalPackages.buildPackages.gitMinimal`?
8− # Why not just final.evalPackages.gitMinimal?
9− #
10− # A problem arises when `evalPackages` is `buildPackages`.i
11− # As may be the case in a flake.
7+ # Why `final.buildPackages.buildPackages.gitMinimal`?
8+ # Why not just final.buildPackages.gitMinimal?
129 #
1310 # It turns out `git` depends on `gdb` in a round about way:
1411 # git -> openssh -> libfido2 -> systemd -> python libxml -> Cython -> gdb
@@ -24,7 +21,7 @@ let
2421 # * When `gdb` does not exist for `js`, so when cross
2522 # compiling with ghcjs `final.buildPackages.git` fails
2623 # to build at all.
27− inherit (pkgs.evalPackages.buildPackages) gitMinimal;
24+ inherit (pkgs.buildPackages.buildPackages) gitMinimal;
2825
2926in {
3027 # Within the package components, these are the attribute names of
@@ -62,13 +59,23 @@ in {
6259 benchmarks = "bench";
6360 };
6461
62+ # For looking up the components attribute based on the cabal component type
63+ prefixComponent =
64+ lib.listToAttrs (
65+ lib.mapAttrsToList (value: name: { inherit name value; })
66+ componentPrefix);
67+
6568 applyComponents = f: config:
6669 let
6770 comps = config.components;
6871 applyLibrary = cname: f { cname = config.package.identifier.name; ctype = "lib"; };
6972 applySubComp = ctype: cname: f { inherit cname; ctype = componentPrefix.${ctype} or (throw "Missing component mapping for ${ctype}."); };
70− buildableAttrs = lib.filterAttrs (n: comp: comp.buildable or true);
71− libComp = if comps.library == null || !(comps.library.buildable or true)
73+ isBuildable = comp:
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`
77+ buildableAttrs = lib.filterAttrs (n: isBuildable);
78+ libComp = if comps.library == null || !(isBuildable comps.library)
7279 then {}
7380 else lib.mapAttrs applyLibrary (removeAttrs comps (subComponentTypes ++ [ "setup" ]));
7481 subComps = lib.mapAttrs
@@ -94,7 +101,7 @@ in {
94101
95102 # if it's a project package it has a src attribute set with an origSubDir attribute.
96103 # project packages are a subset of localPackages
97− isProjectPackage = p: p ? src && p.src ? origSubDir;
104+ isProjectPackage = p: p.isProject or false;
98105 selectProjectPackages = ps: lib.filterAttrs (n: p: p != null && isLocalPackage p && isProjectPackage p) ps;
99106
100107 # Format a componentId as it should appear as a target on the
@@ -126,14 +133,7 @@ in {
126133 ## flatLibDepends :: Component -> [Package]
127134 flatLibDepends = component:
128135 let
129− # this is a minor improvement over the "cannot coerce set to string"
130− # error. It will now say:
131− #
132− # > The option `packages.Win32.package.identifier.name' is used but not defined.
133− #
134− # which indicates that the package.Win32 is missing and not defined.
135− getKey = x: if x ? "outPath" then "${x}" else (throw x.identifier.name);
136− 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); });
137137 closure = builtins.genericClosure {
138138 startSet = makePairs component.depends;
139139 operator = {val,...}: makePairs val.config.depends;
@@ -189,7 +189,7 @@ in {
189189 collectChecks' = collectChecks (_: true);
190190
191191 # Replacement for lib.cleanSourceWith that has a subDir argument.
192− inherit (import ./clean-source-with.nix { inherit lib; }) cleanSourceWith canCleanSource;
192+ inherit (import ./clean-source-with.nix { inherit lib; }) cleanSourceWith;
193193
194194 # Use cleanSourceWith to filter just the files needed for a particular
195195 # component of a package
@@ -199,7 +199,7 @@ in {
199199 cleanGit = import ./clean-git.nix {
200200 inherit lib cleanSourceWith;
201201 git = gitMinimal;
202− inherit (pkgs.evalPackages) runCommand;
202+ inherit (pkgs.buildPackages.buildPackages) runCommand;
203203 };
204204
205205 # Some times it is handy to temporarily use a relative path between git
@@ -229,7 +229,7 @@ in {
229229
230230 # Check a test component
231231 check = import ./check.nix {
232− inherit stdenv lib haskellLib srcOnly;
232+ inherit stdenv lib haskellLib;
233233 };
234234
235235 # Do coverage of a package
@@ -248,29 +248,99 @@ in {
248248 # In most cases we do not want to treat musl as a cross compiler.
249249 # For instance when building ghc we want to include ghci.
250250 isCrossHost = stdenv.hostPlatform != stdenv.buildPlatform
251− && !(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);
252252 # This is the same as isCrossHost but for use when building ghc itself
253253 isCrossTarget = stdenv.targetPlatform != stdenv.hostPlatform
254− && !(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);
255255 # Native musl build-host-target combo
256256 isNativeMusl = stdenv.hostPlatform.isMusl
257257 && stdenv.buildPlatform == stdenv.hostPlatform
258258 && stdenv.hostPlatform == stdenv.targetPlatform;
259259
260− # Takes a version number or attr set of arguments (for cabalProject)
261− # and converts it to an attr set of arguments. This allows
260+ # Takes a version number, module or list of modules (for cabalProject)
261+ # and converts it to an list of project modules. This allows
262262 # the use of "1.0.0.0" or { version = "1.0.0.0"; ... }
263− versionOrArgsToArgs = versionOrArgs:
264− if lib.isAttrs versionOrArgs
265− then versionOrArgs
266− else { version = versionOrArgs; };
263+ versionOrModToMods = versionOrMod:
264+ if lib.isString versionOrMod
265+ then [{ version = versionOrMod; }]
266+ else if lib.isList versionOrMod
267+ then versionOrMod
268+ else [versionOrMod];
267269
268270 # Find the resolver in the stack.yaml file and fetch it if a sha256 value is provided
269271 fetchResolver = import ./fetch-resolver.nix {
270− inherit (pkgs.evalPackages) pkgs;
272+ inherit (pkgs.buildPackages) pkgs;
271273 };
272274
273275 inherit (import ./cabal-project-parser.nix {
274276 inherit pkgs;
275− }) parseIndexState parseBlock;
277+ }) parseIndexState parseSourceRepositoryPackages parseRepositories parseSourceRepositoryPackageBlock parseRepositoryBlock;
278+
279+
280+ cabalToNixpkgsLicense = import ./spdx/cabal.nix pkgs;
281+
282+ # This function is like
283+ # `src + (if subDir == "" then "" else "/" + subDir)`
284+ # however when `includeSiblings` is set it maintains
285+ # `src.origSrc` if there is one and instead adds to
286+ # `src.origSubDir`. It uses `cleanSourceWith` when possible
287+ # to keep `cleanSourceWith` support in the result.
288+ appendSubDir = { src, subDir, includeSiblings ? false }:
289+ if subDir == ""
290+ then src
291+ else
292+ haskellLib.cleanSourceWith {
293+ inherit src subDir includeSiblings;
294+ };
295+
296+ # Givin a `src` split it into a `root` path (based on `src.origSrc` if
297+ # present) and `subDir` (based on `src.origSubDir). The
298+ # `root` will still use the `filter` of `src` if there was one.
299+ rootAndSubDir = src: rec {
300+ subDir = src.origSubDir or "";
301+ root =
302+ if subDir == ""
303+ then src # if there was no subdir use the original src
304+ else
305+ # Use `cleanSourceWith` to make sure the `filter` is still used
306+ if src ? origSrc && src ? filter
307+ then haskellLib.cleanSourceWith {
308+ name = src.name or "source" + "-root";
309+ src = src.origSrc;
310+ # Not passing src.origSubDir so that the result points `origSrc`
311+ inherit (src) filter;
312+ }
313+ else src.origSrc or src; # If there is a subDir and origSrc (but no filter) use origSrc
314+ };
315+
316+ # Run evalModules passing the project function argument (m) as a module along with
317+ # the the a projectType module (../modules/cabal-project.nix or ../modules/stack-project.nix).
318+ # The resulting config is then passed to the project function's implementation.
319+ evalProjectModule = projectType: m: f:
320+ let project = f
321+ (lib.evalModules {
322+ modules = (if builtins.isList m then m else [m]) ++ [
323+ # Include ../modules/cabal-project.nix or ../modules/stack-project.nix
324+ (import ../modules/project-common.nix)
325+ (import projectType)
326+ # Pass the pkgs and the buildProject to the modules
327+ ({ config, lib, ... }: {
328+ _module.args = {
329+ inherit pkgs;
330+ # to make it easy to depends on build packages in, eg., shell definition:
331+ inherit (project) buildProject;
332+ };
333+ inherit (project) hsPkgs;
334+ })
335+ ];
336+ }).config;
337+ in project;
338+
339+ # Converts from a `compoent.depends` value to a library derivation.
340+ # In the case of sublibs the `depends` value should already be the derivation.
341+ dependToLib = d: d.components.library or d;
342+
343+ projectOverlays = import ./project-overlays.nix {
344+ inherit lib haskellLib;
345+ };
276346}
lib/failed-cabal-configure.nixnew file+9
@@ -0,0 +1,9 @@
1+let
2+ configurationError = ./cabal-configure.out;
3+in
4+ # Trace the error output to make sure the user has a chance to see it
5+ # (even if the choose not to build anything from the project)
6+ __trace ''
7+ ERROR: cabal configure failed with:
8+ ${__readFile configurationError}
9+ '' { inherit configurationError; }
lib/fetch-resolver.nix+6−2
@@ -5,10 +5,12 @@
55, resolverSha256 ? null
66}:
77let
8+ srcDir = src.origSrcSubDir or src;
9+
810 # Using origSrcSubDir bypasses any cleanSourceWith so that it will work when
911 # access to the store is restricted. If origSrc was already in the store
1012 # you can pass the project in as a string.
11− rawStackYaml = builtins.readFile ((src.origSrcSubDir or src) + ("/" + stackYaml));
13+ rawStackYaml = builtins.readFile (srcDir + "/${stackYaml}");
1214
1315 # Determine the resolver as it may point to another file we need
1416 # to look at.
@@ -28,6 +30,8 @@ let
2830 url = resolver;
2931 sha256 = resolverSha256;
3032 }
31− else null;
33+ else if resolver != null && __pathExists (srcDir + "/${resolver}")
34+ then pkgs.copyPathToStore (srcDir + "/${resolver}")
35+ else null;
3236
3337in { inherit resolver fetchedResolver; }
lib/ghcjs-project.nix+81−40
@@ -23,7 +23,7 @@
2323{ src
2424, compiler-nix-name
2525, ghc ? pkgs.buildPackages.haskell-nix.compiler.${compiler-nix-name}
26−, ghcjsVersion
26+, ghcjsVersion # Version in the ghcjs.cabal file (that we will replace)
2727, ghcVersion ? ghc.version
2828, happy ? pkgs.haskell-nix.tool compiler-nix-name "happy" {
2929 index-state = pkgs.haskell-nix.internalHackageIndexState;
@@ -35,11 +35,30 @@
3535 version = "3.2.5";
3636 materialized = ../materialized/ghcjs/alex + "/${compiler-nix-name}";
3737 }
38−, cabal-install ? pkgs.haskell-nix.cabal-install.${compiler-nix-name}
38+, cabal-install ?
39+ if (builtins.compareVersions ghcjsVersion "8.10.0.0" >= 0)
40+ then pkgs.haskell-nix.tool compiler-nix-name "cabal" {
41+ index-state = pkgs.haskell-nix.internalHackageIndexState;
42+ version = "3.6.2.0";
43+ materialized = ../materialized/ghcjs/cabal + "/${compiler-nix-name}";
44+ }
45+ else pkgs.haskell-nix.tool compiler-nix-name "cabal" {
46+ index-state = pkgs.haskell-nix.internalHackageIndexState;
47+ version = "3.2.0.0";
48+ # Cabal 3.2.1.0 no longer supports he mix of `cabal-version`,
49+ # lack of `custom-setup` and `v1-install` used by ghcjs boot.
50+ cabalProjectLocal = ''
51+ constraints: Cabal <3.2.1.0
52+ '';
53+ materialized = ../materialized/ghcjs/cabal + "/${compiler-nix-name}";
54+ }
55+, overrideBootPackages ? []
56+, patches ? []
3957, ...
4058}@args:
4159let
42− isGhcjs88 = builtins.compareVersions ghcjsVersion "8.8.0.0" > 0;
60+ isGhcjs88 = builtins.compareVersions ghcjsVersion "8.8.0.0" >= 0;
61+ isGhcjs810 = builtins.compareVersions ghcjsVersion "8.10.0.0" >= 0;
4362
4463 # Inputs needed to configure the GHCJS source tree
4564 configureInputs = with pkgs; [
@@ -53,34 +72,26 @@ let
5372 alex
5473 cabal-install
5574 ];
56− # nixpkgs does not have an emsdk, this derivation uses symlinks to make something
57− # that matches enought for `ghcjs-boot` to work
58− emscriptenupstream = pkgs.buildPackages.emscriptenupstream;
59− emscripten = pkgs.buildPackages.emscripten.override {
60− emscriptenBackend = emscriptenupstream;
61− };
62− emsdk = pkgs.linkFarm "emsdk" [
63− { name = "upstream/bin"; path = emscriptenupstream + "/bin"; }
64− { name = "upstream/emscripten"; path = emscripten + "/bin"; }
65− { name = "share"; path = emscripten + "/share"; }
66− ];
75+
76+ inherit (pkgs.buildPackages) emscriptenupstream emscripten emsdk;
77+
6778 # Inputs needed to boot the GHCJS compiler
6879 bootInputs = with pkgs.buildPackages; [
69− nodejs
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.
84+ nodejs-18_x
7085 makeWrapper
7186 xorg.lndir
7287 gmp
7388 pkgconfig
7489 ]
75− ++ [ ghc cabal-install ]
76− ++ lib.optionals stdenv.isDarwin [
77− pkgs.buildPackages.gcc # https://github.com/ghcjs/ghcjs/issues/663
78− ]
79− ++ lib.optional isGhcjs88 [ emsdk ];
90+ ++ [ ghc cabal-install emsdk ];
8091 # Configured the GHCJS source
81− configured-src = pkgs.runCommand "configured-ghcjs-src" {
92+ configured-src = (pkgs.runCommandCC "configured-ghcjs-src" {
8293 buildInputs = configureInputs;
83− inherit src;
94+ inherit src patches;
8495 } ''
8596 export HOME=$(pwd)
8697 mkdir $HOME/.cabal
@@ -89,6 +100,11 @@ let
89100 chmod -R +w "$out"
90101 cd "$out"
91102
103+ for p in $patches
104+ do
105+ patch -p1 <$p
106+ done
107+
92108 # TODO: Find a better way to avoid impure version numbers
93109 sed -i 's/RELEASE=NO/RELEASE=YES/' ghc/configure.ac
94110 sed -i 's/${ghcjsVersion}/${ghcVersion}/' ghcjs.cabal
@@ -106,33 +122,58 @@ let
106122 rm -rf utils/pkg-cache/ghc
107123 cp -r ${ghc.generated} utils/pkg-cache/ghc
108124
109− cp ${../overlays/patches/config.sub} ghc/libraries/integer-gmp/config.sub
110− cp ${../overlays/patches/config.sub} ghc/libraries/base/config.sub
111− cp ${../overlays/patches/config.sub} ghc/libraries/unix/config.sub
125+ for a in integer-gmp base unix; do
126+ cp ${../overlays/patches/config.sub} ghc/libraries/$a/config.sub
127+ cp ${../overlays/patches/config.guess} ghc/libraries/$a/config.guess
128+ chmod +w ghc/libraries/$a/config.*
129+ done
130+
131+ sed -i 's/_AC_PROG_CC_C99/AC_PROG_CC_C99/' ghc/aclocal.m4
112132
113133 patchShebangs .
114134 sed -i 's/gcc /cc /g' utils/makePackages.sh
115135 ./utils/makePackages.sh copy
116136
117− ${
118− # nuke the HsBaseConfig.h from base.buildinfo.in; this will
119− # prevent it from being installed and provide incorrect values.
120− pkgs.lib.optionalString (!isGhcjs88) ''
121− echo " build-tool-depends: alex:alex, happy:happy <= 1.19.9" >> lib/ghc-api-ghcjs/ghc-api-ghcjs.cabal
122− sed -i 's/HsBaseConfig.h//g' lib/boot/pkg/base/base.buildinfo.in
123− ''
124− }'';
137+ for a in integer-gmp base unix; do
138+ cp ${../overlays/patches/config.sub} lib/boot/pkg/$a/config.sub
139+ done
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"
150+ ''
151+ ) (pkgs.lib.reverseList overrideBootPackages))
152+ }
153+
154+ chmod -R +w $out/lib/boot/pkg
155+ '') // {
156+ # The configured source includes /nix/store paths and so filtering can fail.
157+ filterPath = { path, ... }: path;
158+ };
125159 # see https://github.com/ghcjs/ghcjs/issues/751 for the happy upper bound.
126160
127161 ghcjsProject = pkgs.haskell-nix.cabalProject' (
128− (pkgs.lib.filterAttrs
162+ (pkgs.lib.filterAttrs
129163 (n: _: !(builtins.any (x: x == n)
130− ["src" "ghcjsVersion" "ghcVersion" "happy" "alex" "cabal-install"])) args) // {
164+ [ "src" "ghcjsVersion" "ghcVersion" "happy" "alex" "cabal-install"
165+ "overrideBootPackages" "patches"])) args) // {
131166 src = configured-src;
132− index-state = "2020-11-16T00:00:00Z";
133− compiler-nix-name = if isGhcjs88 then "ghc884" else "ghc865";
134− configureArgs = pkgs.lib.optionalString isGhcjs88 "--constraint='Cabal >=3.0.2.0 && <3.1'";
135− materialized = ../materialized + (if isGhcjs88 then "/ghcjs884" else "/ghcjs865");
167+ index-state = "2021-03-20T00:00:00Z";
168+ inherit compiler-nix-name;
169+ configureArgs = pkgs.lib.optionalString (isGhcjs88 && !isGhcjs810) "--constraint='Cabal >=3.0.2.0 && <3.1'";
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;
175+ });
176+ materialized = ../materialized + "/ghcjs/${compiler-nix-name}";
136177 modules = [
137178 {
138179 # we need ghc-boot in here for ghcjs.
@@ -145,6 +186,7 @@ let
145186 packages.Cabal.patches = [ ./../overlays/patches/Cabal/fix-data-dir.patch ];
146187 })
147188 {
189+ ghcOptions = ["-O2"];
148190 packages.ghcjs.doHaddock = false;
149191 packages.haddock-ghcjs.doHaddock = false;
150192 packages.haddock-api-ghcjs.doHaddock = false;
@@ -174,4 +216,3 @@ in ghcjsProject // {
174216 };
175217 inherit configureInputs bootInputs configured-src emscriptenupstream emscripten emsdk;
176218}
177−
lib/import-and-filter-project.nix+39−25
@@ -6,14 +6,11 @@
66let
77 # Full source including possible relative paths form the
88 # project directory.
9− srcRoot =
10− if haskellLib.canCleanSource src
11− then haskellLib.cleanSourceWith {
12− name = if src ? name then "${src.name}-root" else "source-root";
13− src = src.origSrc or src;
14− filter = src.filter or (_: _: true);
15− }
16− else src.origSrc or src;
9+ srcRoot = haskellLib.cleanSourceWith {
10+ name = if src ? name then "${src.name}-root" else "source-root";
11+ src = src.origSrc or src;
12+ filter = src.filter or (_: _: true);
13+ };
1714 # The sub directory containing the cabal.project or stack.yaml file
1815 projectSubDir' = src.origSubDir or ""; # With leading /
1916 projectSubDir = pkgs.lib.strings.removePrefix "/" projectSubDir'; # Without /
@@ -24,24 +21,41 @@ in project // {
2421 packages = pkgs.lib.attrsets.mapAttrs (name: value:
2522 if builtins.isFunction value
2623 then value
27− else {...}@args:
28− let oldPkg = import value args;
29− packageSrc = if !pkgs.lib.strings.hasPrefix (toString projectNix) (toString oldPkg.src.content)
30− then toString oldPkg.src.content
31− else let
32− subDir = pkgs.lib.strings.removePrefix "/" (
33− pkgs.lib.strings.removePrefix (toString projectNix)
34− (toString oldPkg.src.content));
35− srcRepoPrefix = projectSubDir'' + ".source-repository-packages/";
36− in if pkgs.lib.strings.hasPrefix srcRepoPrefix subDir
37− then
38− pkgs.lib.lists.elemAt sourceRepos (
39− pkgs.lib.strings.toInt (pkgs.lib.strings.removePrefix srcRepoPrefix subDir))
40− else if haskellLib.canCleanSource srcRoot
41− then haskellLib.cleanSourceWith { src = srcRoot; inherit subDir; }
42− else srcRoot + (if subDir == "" then "" else "/" + subDir);
24+ else {...}@args: with pkgs.lib.strings;
25+ let
26+ oldPkg = import value args;
27+ packageInfo =
28+ if oldPkg.src ? url
29+ then {
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.
33+ isProject = false;
34+ packageSrc = pkgs.lib.lists.elemAt sourceRepos (toInt oldPkg.src.url);
35+ }
36+ else if !hasPrefix "${projectNix}" (toString oldPkg.src.content)
37+ then {
38+ # Source location does not match project prefix
39+ isProject = false;
40+ packageSrc = toString oldPkg.src.content;
41+ }
42+ else {
43+ # Source does match project prefix and it is not from a source repository
44+ isProject = true;
45+ packageSrc = haskellLib.appendSubDir {
46+ src = srcRoot;
47+ subDir = removePrefix "/" (removePrefix "${projectNix}"
48+ (toString oldPkg.src.content));
49+ includeSiblings = true; # Filtering sibling dirs of the package dir is done in the
50+ # component builder so that relative paths can be used to
51+ # reference project directories not in the package subDir.
52+ };
53+ };
4354 in oldPkg // {
44− src = (pkgs.lib).mkDefault packageSrc;
55+ src = (pkgs.lib).mkDefault packageInfo.packageSrc;
56+ package = oldPkg.package // {
57+ isProject = (pkgs.lib).mkDefault packageInfo.isProject;
58+ };
4559 }) old;
4660 };
4761 }
lib/materialize.nix+23−11
@@ -7,6 +7,9 @@
77 # the output. If this is set but does not exist
88 # the derivation will fail but with a message
99 # advising how to populate it.
10+, this ? "this"
11+ # A name to use when referring to the thing currently being
12+ # materialized. Clients can pass in an attribute name or similar.
1013, reasonNotSafe ? null
1114 # Some times there a reasont the derivation will
1215 # not produce output that can be safely materialized.
@@ -21,7 +24,7 @@
2124}: derivation:
2225
2326let
24− inherit (derivation) name;
27+ name = derivation.name + pkgs.lib.optionalString (derivation ? version) "-${derivation.version}";
2528
2629 traceIgnoringSha256 = reason: x:
2730 if sha256 != null
@@ -33,10 +36,15 @@ let
3336 then builtins.trace ("Warning: ignoring materialized for " + name + " " + reason) x
3437 else x;
3538
39+ traceWhenChecking = message: x:
40+ if checkMaterialization
41+ then builtins.trace message x
42+ else x;
43+
3644 unchecked =
3745 let
38− sha256message = "To make this a fixed-output derivation but not materialized, set `${sha256Arg}` to the output of ${calculateMaterializedSha}";
39− materializeMessage = "To materialize the output entirely, pass a writable path as the `materialized` argument and pass that path to ${generateMaterialized}";
46+ sha256message = "${name}: To make ${this} a fixed-output derivation but not materialized, set `${sha256Arg}` to the output of the 'calculateMaterializedSha' 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'.";
4048 in if reasonNotSafe != null
4149 then
4250 # Warn the user if they tried to pin stuff down when it is not safe
@@ -47,13 +55,20 @@ let
4755 else if sha256 != null
4856 then
4957 # Let the user know how to materialize if they want to.
50− builtins.trace materializeMessage calculateUseHash
58+ traceWhenChecking materializeMessage calculateUseHash
5159 else # materialized == null && sha256 == null
5260 # Let the user know how to calculate a sha256 or materialize if they want to.
53− builtins.trace sha256message (builtins.trace materializeMessage calculateNoHash);
61+ traceWhenChecking sha256message (traceWhenChecking materializeMessage calculateNoHash);
5462
5563 # Build fully and check the hash and materialized versions
56− checked = runCommand name {} (''
64+ checked =
65+ # Let the user know what we are checking. This is useful for debugging issues
66+ # where materialization fails to prevent infinite recurstion when:
67+ # checkMaterialization = true;
68+ (if materialized != null
69+ then __trace "Checking materialization in ${toString materialized}"
70+ else x: x)
71+ runCommand name {} (''
5772 ERR=$(mktemp -d)/errors.txt
5873 ''
5974 + (pkgs.lib.optionalString (sha256 != null) ''
@@ -113,11 +128,7 @@ let
113128 calculateUseMaterialized =
114129 assert materialized != null;
115130 assert __pathExists materialized;
116− runCommand name (pkgs.lib.optionalAttrs (sha256 == null) hashArgs) ''
117− cp -Lr ${materialized} $out
118− # Make sure output files can be removed from the sandbox
119− chmod -R +w $out
120− '';
131+ { outPath = materialized; inherit name; };
121132 calculateMaterializedSha =
122133 writeShellScript "calculateSha" ''${nix}/bin/nix-hash --base32 --type sha256 ${calculateNoHash}'';
123134
@@ -133,6 +144,7 @@ let
133144 fi
134145
135146 # Generate the files
147+ mkdir -p $TARGET
136148 rm -rf $TARGET
137149 cp -r ${calculateNoHash} "$TARGET"
138150 chmod -R +w "$TARGET"
lib/pkgconf-nixpkgs-map.nix+27−17
@@ -21,18 +21,18 @@ pkgs:
2121 "cairo-ps" = [ pkgs."cairo" ];
2222 "cairo-svg" = [ pkgs."cairo" ];
2323 "crypt" = []; # provided by glibc
24− "crypto" = [ pkgs."openssl" ];
2524 "curses" = [ pkgs."ncurses" ];
2625 "dbusmenu-glib-0.4" = [ pkgs."libdbusmenu" ];
2726 "dbusmenu-gtk3-0.4" = [ pkgs."libdbusmenu-gtk3" ]; # do we also need pkgs."gtk3"
2827 "dl" = []; # provided by glibc
2928 "fftw3" = [ pkgs."fftw" ];
3029 "fftw3f" = [ pkgs."fftwFloat" ];
30+ "freetype2" = [ pkgs."freetype" ];
3131 "gconf" = [ pkgs."GConf" ];
3232 "gconf-2.0" = [ pkgs."GConf" ];
3333 "gdk-2.0" = [ pkgs."gtk2" ];
3434 "gdk-3.0" = [ pkgs."gtk3" ];
35− "gdk-pixbuf-2.0" = [ pkgs."gdk_pixbuf" ];
35+ "gdk-pixbuf-2.0" = [ (pkgs."gdk-pixbuf" or pkgs."gdk_pixbuf") ];
3636 "gdk-x11-2.0" = [ pkgs."gdk_x11" ];
3737 "gdk-x11-3.0" = [ pkgs."gtk3" ];
3838 "gio-2.0" = [ pkgs."glib" ];
@@ -45,7 +45,9 @@ pkgs:
4545 "gnome-vfs-2.0" = [ pkgs."gnome-vfs" ];
4646 "gnome-vfs-module-2.0" = [ pkgs."gnome-vfs_module" ];
4747 "gobject-2.0" = [ pkgs."glib" ];
48+ "gmodule-2.0" = [ pkgs."glib" ];
4849 "gobject-introspection-1.0" = [ pkgs."gobject-introspection" ];
50+ "graphene-gobject-1.0" = [ pkgs."graphene" ];
4951 "gstreamer-audio-0.10" = [ pkgs."gst-plugins-base" ];
5052 "gstreamer-audio-1.0" = [ pkgs."gst-plugins-base" ];
5153 "gstreamer-base-0.10" = [ pkgs."gst-plugins-base" ];
@@ -65,6 +67,7 @@ pkgs:
6567 "hidapi-libusb" = [ pkgs."hidapi" ];
6668 "icudata" = [ pkgs."icu" ];
6769 "icui18n" = [ pkgs."icu" ];
70+ "icu-i18n" = [ pkgs."icu" ];
6871 "icuuc" = [ pkgs."icu" ];
6972 "idn" = [ pkgs."libidn" ];
7073 "IL" = [ pkgs."libdevil" ];
@@ -80,7 +83,10 @@ pkgs:
8083 "lber" = [ pkgs."openldap" ];
8184 "ldap" = [ pkgs."openldap" ];
8285 "libavutil" = [ pkgs."ffmpeg" ];
86+ "libcrypto" = [ pkgs."openssl".dev ];
87+ "libfreenect" = [ pkgs."freenect" ];
8388 "libgsasl" = [ pkgs."gsasl" ];
89+ "liboath" = [ pkgs."liboauth" ];
8490 "libpcre" = [ pkgs."pcre" ];
8591 "libqrencode" = [ pkgs."qrencode" ];
8692 "libR" = [ pkgs."R" ];
@@ -88,12 +94,14 @@ pkgs:
8894 "libsecp256k1" = [ pkgs."secp256k1" ];
8995 "libsoup-2.4" = [ pkgs."libsoup" ];
9096 "libsoup-gnome-2.4" = [ pkgs."libsoup" ];
97+ "libssl" = [ pkgs."openssl".dev ];
9198 "libsystemd" = [ pkgs."systemd" ];
9299 "libudev" = [ pkgs."systemd" ];
93100 "libusb-1.0" = [ pkgs."libusb1" ];
94101 "libxml-2.0" = [ pkgs."libxml2" ];
95102 "libzip" = [ pkgs."libzip" ];
96103 "libzmq" = [ pkgs."zeromq" ];
104+ "libzstd" = [ pkgs."zstd" ];
97105 "m" = []; # in stdenv
98106 "magic" = [ pkgs."file" ];
99107 "MagickWand" = [ pkgs."imagemagick" ];
@@ -114,7 +122,9 @@ pkgs:
114122 "pfs-1.2" = [ pkgs."pfstools" ];
115123 "png" = [ pkgs."libpng" ];
116124 "poppler-glib" = [ pkgs."poppler" ];
125+ "poppler-cpp" = [ pkgs."poppler" ];
117126 "pq" = [ pkgs."postgresql" ];
127+ "libpq" = [ pkgs."postgresql" ];
118128 "pthread" = [];
119129 "pulse" = [ pkgs."libpulseaudio" ];
120130 "pulse-simple" = [ pkgs."libpulseaudio" ];
@@ -136,7 +146,6 @@ pkgs:
136146 "sodium" = [ pkgs."libsodium" ];
137147 "sqlite3" = [ pkgs."sqlite" ];
138148 "ssh2" = [ pkgs."libssh2" ];
139− "ssl" = [ pkgs."openssl" ];
140149 "statgrab" = [ pkgs."libstatgrab" ];
141150 "stdc++" = []; # What is that?
142151 "stdc++.dll" = []; # What is that?
@@ -155,23 +164,24 @@ pkgs:
155164 "webkit2gtk-4.0" = [ pkgs."webkitgtk" ];
156165 "webkit2gtk-web-extension-4.0" = [ pkgs."webkitgtk" ];
157166 "webkitgtk-3.0" = [ pkgs."webkitgtk24x-gtk3" ]; # These are the old APIs, of which 2.4 is the last provider, so map directly to that
158− "X11" = [ pkgs."libX11" ];
159− "x11" = [ pkgs."xlibsWrapper" ];
160− "xau" = [ pkgs."libXau" ];
161− "Xcursor" = [ pkgs."libXcursor" ];
167+ "vulkan" = [ pkgs."vulkan-loader" ]; # vulkan-loader provides vulkan.pc file for pkg-config.
168+ "X11" = [ pkgs.xorg."libX11" ];
169+ "x11" = [ pkgs.xorg."xlibsWrapper" ];
170+ "xau" = [ pkgs.xorg."libXau" ];
171+ "Xcursor" = [ pkgs.xorg."libXcursor" ];
162172 "xerces-c" = [ pkgs."xercesc" ];
163− "Xext" = [ pkgs."libXext" ];
164− "xft" = [ pkgs."libXft" ];
165− "Xi" = [ pkgs."libXi" ];
166− "Xinerama" = [ pkgs."libXinerama" ];
173+ "Xext" = [ pkgs.xorg."libXext" ];
174+ "xft" = [ pkgs.xorg."libXft" ];
175+ "Xi" = [ pkgs.xorg."libXi" ];
176+ "Xinerama" = [ pkgs.xorg."libXinerama" ];
167177 "xkbcommon" = [ pkgs."libxkbcommon" ];
168178 "xml2" = [ pkgs."libxml2" ];
169− "Xpm" = [ pkgs."libXpm" ];
170− "Xrandr" = [ pkgs."libXrandr" ];
171− "Xrender" = [ pkgs."libXrender" ];
172− "Xss" = [ pkgs."libXScrnSaver" ];
173− "Xtst" = [ pkgs."libXtst" ];
174− "Xxf86vm" = [ pkgs."libXxf86vm" ];
179+ "Xpm" = [ pkgs.xorg."libXpm" ];
180+ "Xrandr" = [ pkgs.xorg."libXrandr" ];
181+ "Xrender" = [ pkgs.xorg."libXrender" ];
182+ "Xss" = [ pkgs.xorg."libXScrnSaver" ];
183+ "Xtst" = [ pkgs.xorg."libXtst" ];
184+ "Xxf86vm" = [ pkgs.xorg."libXxf86vm" ];
175185 "yaml" = [ pkgs."libyaml" ];
176186 "yaml-0.1" = [ pkgs."libyaml" ];
177187 "z" = [ pkgs."zlib" ];
lib/project-overlays.nixnew file+37
@@ -0,0 +1,37 @@
1+{
2+ lib
3+, haskellLib
4+}: {
5+ # Provide a devshell profile (https://github.com/numtide/devshell),
6+ # adapted from the project normal shell.
7+ devshell = final: prev: {
8+ devshell = let
9+ in {
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;
18+ };
19+ };
20+ };
21+
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;
35+ };
36+
37+}
lib/spdx/cabal.nixnew file+19
@@ -0,0 +1,19 @@
1+let
2+ spdx = import ./parser.nix;
3+in pkgs:
4+with builtins;
5+let
6+ # For better performance these are not in the
7+ # let block below (probably helps by increasing
8+ # the sharing)
9+ license-map = import ../cabal-licenses.nix pkgs;
10+ otherLicenseWarning = lic:
11+ trace "WARNING: license \"${lic}\" not found"
12+ license-map.LicenseRef-OtherLicense;
13+in license:
14+let
15+ licenses = spdx.compound-expression license;
16+in if licenses == []
17+ then otherLicenseWarning license
18+ else map (lic: license-map.${lic} or (otherLicenseWarning lic))
19+ (pkgs.lib.unique (head licenses)._1)
lib/spdx/licenses.nixnew file+27
@@ -0,0 +1,27 @@
1+pkgs:
2+with builtins; let
3+ spdxJson = pkgs.buildPackages.spdx-license-list-data.json or pkgs.buildPackages.spdx-license-list-data;
4+ materialized' = ../../materialized + "/spdx-${spdxJson.version}";
5+ licensesJSON = fromJSON (replaceStrings
6+ [ "\\u0026" "\\u0027" "\\u003d" ]
7+ [ "&" "'" "=" ]
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; } ''
11+ mkdir $out
12+ cp ${spdxJson}/json/licenses.json $out
13+ '')
14+ }/licenses.json")
15+ );
16+ dropFour = s: substring 0 (stringLength s - 4) s;
17+ toSpdx = lic: with lic;
18+ { spdxId = licenseId;
19+ shortName = licenseId;
20+ fullName = name;
21+ url = dropFour detailsUrl + "html";
22+ free = isOsiApproved || lic.isFsfLibre or false;
23+ };
24+ toNamedValue = lic: { name = lic.spdxId; value = lic; };
25+in
26+
27+listToAttrs (map (l: toNamedValue (toSpdx l)) licensesJSON.licenses)
lib/spdx/parser.nixnew file+115
@@ -0,0 +1,115 @@
1+let String = { mempty = ""; mappend = a: b: a + b; };
2+ List = { singleton = x: [x]; };
3+ pair = a: b: { _1 = a; _2 = b; };
4+ Pair = { pure = s: pair String.mempty s;
5+ mappend = a: b: pair (String.mappend a._1 b._1) b._2;
6+ map = f: p: pair (f p._1) p._2;
7+ };
8+ compose = f: g: x: f (g x);
9+in with builtins; rec {
10+ # Parser a = String -> [(a, String)]
11+ string = str: s:
12+ let strL = stringLength str;
13+ sL = stringLength s;
14+ in if str == substring 0 strL s
15+ then [ (pair str (substring strL sL s)) ]
16+ else [];
17+
18+ regex = capture_groups: re: s:
19+ let result = match "(${re})(.*)" s;
20+ in if result == null
21+ then []
22+ else [ (pair (elemAt result 0) (elemAt result (1 + capture_groups))) ];
23+
24+ # Left-biased choice
25+ choice = cs: s:
26+ if cs == []
27+ then []
28+ else let c = head cs;
29+ cs' = tail cs;
30+ result = c s;
31+ in if result == []
32+ then choice cs' s
33+ else result;
34+
35+ optional = p: s:
36+ let result = p s;
37+ in if result == []
38+ then [ (Pair.pure s) ]
39+ else result;
40+
41+ chain = ps: s:
42+ if ps == []
43+ then [ (Pair.pure s) ]
44+ else let p = head ps;
45+ ps' = tail ps;
46+ result = p s;
47+ in if result == []
48+ then []
49+ else let r = head result;
50+ rest = chain ps' r._2;
51+ in if rest == []
52+ then []
53+ else let r' = head rest;
54+ in [ (Pair.mappend r r') ];
55+
56+ idstring = regex 0 "[-\.0-9a-zA-Z]+";
57+
58+ license-ref = let documentref = chain [ (string "DocumentRef-")
59+ idstring
60+ (string ":")
61+ ];
62+ in chain [
63+ (optional documentref)
64+ (string "LicenseRef-")
65+ idstring
66+ ];
67+
68+ simple-expression = choice [ license-ref
69+ (chain [ idstring (string "+") ])
70+ idstring
71+ ];
72+
73+ compound-expression = let wrap = compose (map (Pair.map List.singleton));
74+ in choice [
75+ (s: let result = simple-expression s;
76+ in if result == []
77+ then []
78+ else let r = head result;
79+ rest = chain [(string " WITH ") idstring ] r._2;
80+ in if rest == []
81+ then []
82+ else [(pair r._1 (head rest)._2)]
83+ )
84+ (s: let result = simple-expression s;
85+ in if result == []
86+ then []
87+ else let r = head result;
88+ firstLicense = r._1;
89+ operator = choice [ (string " AND ")
90+ (string " OR ")
91+ ]
92+ r._2;
93+ in if operator == []
94+ then []
95+ else let s' = (head operator)._2;
96+ licenses = compound-expression s';
97+ in if licenses == []
98+ then []
99+ else let ls = head licenses;
100+ in [(pair ([firstLicense] ++ ls._1) ls._2)]
101+ )
102+ (wrap simple-expression)
103+ (s: let openParen = string "(" s;
104+ in if openParen == []
105+ then []
106+ else let result = compound-expression (head openParen)._2;
107+ in if result == []
108+ then []
109+ else let r = head result;
110+ closeParen = string ")" r._2;
111+ in if closeParen == []
112+ then []
113+ else [(pair r._1 (head closeParen)._2)])
114+ ];
115+}
lib/spdx/test.nixnew file+32
@@ -0,0 +1,32 @@
1+let spdx = import ./parser.nix;
2+in {
3+ idstringF = [ (spdx.idstring "$@#!$") ];
4+ idstringP = [ (spdx.idstring "blah") ];
5+
6+ license-refF = [ (spdx.license-ref "LicenseRef-$@#!$") ];
7+ license-refP = [ (spdx.license-ref "LicenseRef-blah")
8+ (spdx.license-ref "DocumentRef-beep:LicenseRef-boop")
9+ ];
10+
11+ simple-expressionF = [ (spdx.simple-expression "$@#!$") ];
12+ simple-expressionP = [
13+ (spdx.simple-expression "blah")
14+ (spdx.simple-expression "blah+")
15+ (spdx.simple-expression "LicenseRef-blah")
16+ (spdx.simple-expression "DocumentRef-beep:LicenseRef-boop")
17+ ];
18+
19+ compound-expressionF = [ (spdx.compound-expression "$@#!$") ];
20+ compound-expressionP = [
21+ (spdx.compound-expression "blah")
22+ (spdx.compound-expression "blah+")
23+ (spdx.compound-expression "LicenseRef-blah")
24+ (spdx.compound-expression "DocumentRef-beep:LicenseRef-boop")
25+ (spdx.compound-expression "(blah)")
26+ (spdx.compound-expression "beep OR boop")
27+ (spdx.compound-expression "beep AND boop")
28+ (spdx.compound-expression "beep WITH boop")
29+ (spdx.compound-expression "beep AND (boop OR blap)")
30+ (spdx.compound-expression "(beep AND ((boop OR ((blap)))))")
31+ ];
32+}
lib/stack-cache-generator.nix+46−31
@@ -1,6 +1,5 @@
11# Generate cache entries for dependencies of package defined in `src`
22
3−{ pkgs, haskellLib }:
43{ src
54, stackYaml ? "stack.yaml"
65, sha256map ? null
@@ -9,15 +8,22 @@
98 # sha256map =
109 # { "https://github.com/jgm/pandoc-citeproc"."0.17"
1110 # = "0dxx8cp2xndpw3jwiawch2dkrkp15mil7pyx7dvd810pwc22pm2q"; };
12−, lookupSha256 ?
13− if sha256map != null
14− then { location, tag, ...}: sha256map."${location}"."${tag}"
11+, branchMap ? null
12+ # A way to specify in which branch a git commit can
13+ # be found
14+, lookupBranch ?
15+ if branchMap != null
16+ then { location, tag, ...}: branchMap."${location}"."${tag}" or null
1517 else _: null
1618, resolverSha256 ? null
17−, 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
20+, evalPackages
1821, ...
19−}:
22+}@args:
2023let
24+ inherit (evalPackages) runCommand;
25+ inherit (evalPackages.haskell-nix) haskellLib;
26+
2127 # We only care about the stackYaml file. If src is a local directory
2228 # we want to avoid recalculating the cache unless the stack.yaml file
2329 # changes.
@@ -27,20 +33,27 @@ let
2733 }) resolver fetchedResolver;
2834
2935 # Filter just the stack yaml file and any resolver yaml file it points to.
30− maybeCleanedSource =
31− if haskellLib.canCleanSource src
32− then haskellLib.cleanSourceWith {
33− inherit src;
34− filter = path: type:
35− pkgs.lib.hasSuffix ("/" + stackYaml) path
36− || (resolver != null && pkgs.lib.hasSuffix ("/" + resolver) path);
37− }
38− else src;
36+ maybeCleanedSource = haskellLib.cleanSourceWith {
37+ inherit src;
38+ filter = path: type:
39+ let
40+ origSrc = if src ? _isLibCleanSourceWith then src.origSrc else src;
41+ origSubDir = if src ? _isLibCleanSourceWithEx then src.origSubDir else "";
42+ relPath = evalPackages.lib.removePrefix (toString origSrc + origSubDir + "/") path;
43+
44+ # checks if path1 is a parent directory for path2
45+ isParent = path1: path2: evalPackages.lib.hasPrefix "${path1}/" path2;
46+
47+ in
48+ (relPath == stackYaml)
49+ || (resolver != null && (relPath == resolver || isParent relPath resolver))
50+ ;
51+ };
3952
4053 # All repos served via ssh or git protocols are usually private
41− private = url: pkgs.lib.substring 0 4 url != "http";
54+ private = url: evalPackages.lib.substring 0 4 url != "http";
4255
43− repos = builtins.fromJSON (builtins.readFile (pkgs.runCommand "stack-repos" {
56+ repos = builtins.fromJSON (builtins.readFile (evalPackages.runCommand "stack-repos" {
4457 buildInputs = [ nix-tools ];
4558 } ''
4659 TMP=$(mktemp -d)
@@ -48,41 +61,43 @@ let
4861 cp -r "${maybeCleanedSource}/." $TMP
4962 chmod -R +w $TMP
5063 substituteInPlace ${stackYaml} --replace "# nix-sha256:" "nix-sha256:"
51− ${pkgs.lib.optionalString (fetchedResolver != null) ''
64+ ${evalPackages.lib.optionalString (fetchedResolver != null) ''
5265 substituteInPlace ${stackYaml} --replace "${resolver}" "${fetchedResolver}"
5366 ''}
5467 stack-repos --stack-yaml ${stackYaml}
5568 cp repos.json $out
5669 ''));
5770
58− cabalName = path: builtins.readFile (pkgs.runCommand "cabal-name" {
71+ cabalName = path: builtins.readFile (evalPackages.runCommand "cabal-name" {
5972 buildInputs = [ nix-tools ];
6073 } ''
6174 cabal-name ${path} > $out
6275 '');
6376
6477 hashPath = path:
65− builtins.readFile (pkgs.runCommand "hash-path" { preferLocalBuild = true; }
66− "echo -n $(${pkgs.nix}/bin/nix-hash --type sha256 --base32 ${path}) > $out");
67−in with pkgs.lib;
78+ builtins.readFile (evalPackages.runCommand "hash-path" { preferLocalBuild = true; }
79+ "echo -n $(${evalPackages.nix}/bin/nix-hash --type sha256 --base32 ${path}) > $out");
80+in with evalPackages.lib;
6881concatMap (dep:
6982 let
7083 is-private = private dep.url;
71− sha256 = if dep.sha256 != null
72− then dep.sha256
73− else lookupSha256 {
74− location = dep.url;
75− tag = dep.rev;
76− };
84+ sha256 =
85+ if dep.sha256 != null then dep.sha256
86+ else if sha256map != null then sha256map."${dep.url}"."${dep.rev}"
87+ else null;
88+ branch = lookupBranch {
89+ location = dep.url;
90+ tag = dep.rev;
91+ };
7792 pkgsrc =
7893 if !is-private && sha256 != null
79− then pkgs.fetchgit {
94+ then evalPackages.fetchgit {
8095 inherit (dep) url rev;
8196 inherit sha256;
8297 }
83− else builtins.fetchGit {
98+ else builtins.fetchGit ({
8499 inherit (dep) url rev;
85− };
100+ } // evalPackages.lib.optionalAttrs (branch != null) { ref = branch; });
86101 in map (subdir: {
87102 name = cabalName "${pkgsrc}/${subdir}";
88103 inherit (dep) url rev;
lib/system-nixpkgs-map.nix+119−82
@@ -1,99 +1,136 @@
1−# Maps of system pkg references from
2−# cabal file to nixpkgs pkgs.
3−# See ../docs/dev/pkg-map.md
1+# Maps of system pkg references from cabal file to nixpkgs pkgs.
2+# library name (from `extra-libraries` field of `.cabal` file) -> nixpkgs package(s) mapping.
3+# This mapping is used to construct the `libs` component attribute.
4+# See ../docs/tutorials/pkg-map.md
45pkgs:
5−# fetchgit should always come from the evalPackages
6−# if it comes from the targetPackages we won't even
7−# be able to execute it.
8− { fetchgit = pkgs.evalPackages.fetchgit; }
9−# haskell lib -> nix lib mapping
6+
7+with pkgs;
8+
9+let
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 ]; } ''
15+ mkdir $out
16+ lndir ${pkgs.buildPackages.gcc.cc} $out
17+ '')
18+ ] else [];
19+in
1020# -- linux
11−// { crypto = pkgs.openssl;
12− "c++" = null; # no libc++
13− "stdc++" = null; "stdc++-6" = null;
14− ssl = pkgs.openssl;
15− z = pkgs.zlib;
16− pthread = null; # available by default
17− GL = pkgs.libGL;
18− GLU = pkgs.libGLU;
19− alut = pkgs.freealut;
20− X11 = pkgs.xorg.libX11;
21− Xrandr = pkgs.xorg.libXrandr;
22− Xext = pkgs.xorg.libXext;
23− Xi = pkgs.xorg.libXi;
24− Xxf86vm = pkgs.xorg.libXxf86vm;
25− Xcursor = pkgs.xorg.libXcursor;
26− Xinerama = pkgs.xorg.libXinerama;
27− mysqlclient = pkgs.mysql;
28− Imlib2 = pkgs.imlib2;
29− asound = pkgs.alsaLib;
30− ffi = null;
31− bz2 = pkgs.bzip2;
32− util = pkgs.utillinux;
33− magic = pkgs.file;
34− pq = pkgs.postgresql;
35− iconv = pkgs.libiconv;
36− lapack = pkgs.liblapack;
37− boost_atomic = pkgs.boost;
38− boost_chrono = pkgs.boost;
39− boost_container = pkgs.boost;
40− boost_context = pkgs.boost;
41− boost_contract = pkgs.boost;
42− boost_coroutine = pkgs.boost;
43− boost_date_time = pkgs.boost;
44− boost_fiber = pkgs.boost;
45− boost_filesystem = pkgs.boost;
46− boost_graph = pkgs.boost;
47− boost_iostreams = pkgs.boost;
48− boost_locale = pkgs.boost;
49− boost_log_setup = pkgs.boost;
50− boost_log = pkgs.boost;
51− boost_math_c99f = pkgs.boost;
52− boost_math_c99l = pkgs.boost;
53− boost_math_c99 = pkgs.boost;
54− boost_math_tr1f = pkgs.boost;
55− boost_math_tr1l = pkgs.boost;
56− boost_math_tr1 = pkgs.boost;
57− boost_prg_exec_monitor = pkgs.boost;
58− boost_program_options = pkgs.boost;
59− boost_random = pkgs.boost;
60− boost_regex = pkgs.boost;
61− boost_serialization = pkgs.boost;
62− boost_signals = pkgs.boost;
63− boost_stacktrace_addr2line = pkgs.boost;
64− boost_stacktrace_basic = pkgs.boost;
65− boost_stacktrace_noop = pkgs.boost;
66− boost_system = pkgs.boost;
67− boost_thread = pkgs.boost;
68− boost_timer = pkgs.boost;
69− boost_type_erasure = pkgs.boost;
70− boost_unit_test_framework = pkgs.boost;
71− boost_wave = pkgs.boost;
72− boost_wserialization = pkgs.boost;
73− tensorflow = pkgs.libtensorflow;
74− opencv = pkgs.opencv3;
75− icuuc = pkgs.icu;
76− icui18n = pkgs.icu;
77− icudata = pkgs.icu;
78− vulkan = pkgs.vulkan-loader;
79− sodium = pkgs.libsodium;
80− gfortran = pkgs.gfortran.cc.lib;
81− }
21+{ crypto = [ openssl ];
22+ "c++" = []; # no libc++
23+ "stdc++" = gcclibs;
24+ "stdc++-6" = gcclibs;
25+ gcc_s_seh-1 = gcclibs;
26+ gcc_s = gcclibs;
27+ gcc = gcclibs;
28+ ssl = [ openssl ];
29+ z = [ zlib ];
30+ m = []; # Included with ghc
31+ pcap = [ libpcap ];
32+ pthread = null; # available by default
33+ GL = [ libGL ];
34+ GLEW = [ glew ];
35+ GLU = [ libGLU ];
36+ alut = [ freealut ];
37+ X11 = with xorg; [ libX11 ];
38+ Xrandr = [ xorg.libXrandr ];
39+ Xrender = [ xorg.libXrender ];
40+ Xss = [ xorg.libXScrnSaver ];
41+ Xext = [ xorg.libXext ];
42+ Xi = [ xorg.libXi ];
43+ Xxf86vm = [ xorg.libXxf86vm ];
44+ Xcursor = [ xorg.libXcursor ];
45+ Xinerama = [ xorg.libXinerama ];
46+ mysqlclient = [ mysql ];
47+ Imlib2 = [ imlib2 ];
48+ asound = [ alsaLib ];
49+ ffi = null;
50+ bz2 = [ bzip2 ];
51+ util = [ utillinux ];
52+ magic = [ file ];
53+ pq = [ postgresql ];
54+ libpq = [ postgresql ];
55+ iconv = [ libiconv ];
56+ lapack = [ liblapack ];
57+ boost_atomic = [ boost ];
58+ boost_chrono = [ boost ];
59+ boost_container = [ boost ];
60+ boost_context = [ boost ];
61+ boost_contract = [ boost ];
62+ boost_coroutine = [ boost ];
63+ boost_date_time = [ boost ];
64+ boost_fiber = [ boost ];
65+ boost_filesystem = [ boost ];
66+ boost_graph = [ boost ];
67+ boost_iostreams = [ boost ];
68+ boost_locale = [ boost ];
69+ boost_log_setup = [ boost ];
70+ boost_log = [ boost ];
71+ boost_math_c99f = [ boost ];
72+ boost_math_c99l = [ boost ];
73+ boost_math_c99 = [ boost ];
74+ boost_math_tr1f = [ boost ];
75+ boost_math_tr1l = [ boost ];
76+ boost_math_tr1 = [ boost ];
77+ boost_prg_exec_monitor = [ boost ];
78+ boost_program_options = [ boost ];
79+ boost_random = [ boost ];
80+ boost_regex = [ boost ];
81+ boost_serialization = [ boost ];
82+ boost_signals = [ boost ];
83+ boost_stacktrace_addr2line = [ boost ];
84+ boost_stacktrace_basic = [ boost ];
85+ boost_stacktrace_noop = [ boost ];
86+ boost_system = [ boost ];
87+ boost_thread = [ boost ];
88+ boost_timer = [ boost ];
89+ boost_type_erasure = [ boost ];
90+ boost_unit_test_framework = [ boost ];
91+ boost_wave = [ boost ];
92+ boost_wserialization = [ boost ];
93+ tensorflow = [ libtensorflow ];
94+ # odbc package requires unixODBC packages to be installed in order to successfully
95+ # compile C sources (https://github.com/fpco/odbc/blob/master/cbits/odbc.c)
96+ odbc = [ unixODBC ];
97+ opencv = [ opencv3 ];
98+ icuuc = [ icu ];
99+ icui18n = [ icu ];
100+ icu-i18n = [ icu ];
101+ icudata = [ icu ];
102+ vulkan = [ vulkan-loader ];
103+ sodium = [ libsodium ];
104+ gfortran = [ gfortran.cc.lib ];
105+ ssh2 = [ libssh2 ];
106+ gpiod = [ libgpiod ];
107+ png = [ libpng ];
108+ jpeg = [ libjpeg ];
109+ freenect_sync = [ freenect ];
110+ FLAC = [ flac ];
111+ mp3lame = [ lame ];
112+ tag_c = [ taglib ];
113+ jwt = [ libjwt ];
114+ GeoIP = [ geoip ];
115+ pulse-simple = [ libpulseaudio ];
116+ oath = [ liboauth ];
117+}
82118# -- windows
83119// { advapi32 = null; gdi32 = null; imm32 = null; msimg32 = null;
84120 shell32 = null; shfolder = null; shlwapi = null; user32 = null;
121+ ole32 = null; rpcrt4 = null;
85122 winmm = null; userenv = null;
86123 kernel32 = null; ws2_32 = null;
87124 # this should be bundled with gcc.
88125 # if it's not we have more severe
89126 # issues anyway.
90− gcc_s_seh-1 = null;
91− ssl32 = null; eay32 = pkgs.openssl;
127+ ssl32 = null; eay32 = [ openssl ];
92128 iphlpapi = null; # IP Help API
93129 msvcrt = null; # this is the libc
94130 Crypt32 = null;
95131 mswsock = null;
132+ bcrypt = null;
96133 }
97134# -- os x
98135# NB: these map almost 1:1 to the framework names
99−// pkgs.darwin.apple_sdk.frameworks
136+// darwin.apple_sdk.frameworks
lib/system-pkgs.nixnew file+16
@@ -0,0 +1,16 @@
1+# Cabal packages can depend on operating system packages. However
2+# package names vary between distributions - there is no standard.
3+#
4+# This file augments the nixpkgs package set with extra attributes
5+# from the system packages map file.
6+#
7+# This package set will be used when resolving system package
8+# dependencies of package descriptions.
9+
10+pkgs:
11+
12+ # Base packages.
13+ pkgs
14+
15+ # Apply the mapping.
16+ // import ./system-nixpkgs-map.nix pkgs
materialized/bootstrap/ghc8107/alex/.plan.nix/alex.nixnew file+160
@@ -0,0 +1,160 @@
1+{ system
2+ , compiler
3+ , flags
4+ , pkgs
5+ , hsPkgs
6+ , pkgconfPkgs
7+ , errorHandler
8+ , config
9+ , ... }:
10+ {
11+ flags = { small_base = true; };
12+ package = {
13+ specVersion = "1.8";
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/";
20+ url = "";
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";
24+ isLocal = true;
25+ detailLevel = "FullDetails";
26+ licenseFiles = [ "LICENSE" ];
27+ dataDir = "data/";
28+ dataFiles = [
29+ "AlexTemplate"
30+ "AlexTemplate-ghc"
31+ "AlexTemplate-ghc-nopred"
32+ "AlexTemplate-ghc-debug"
33+ "AlexTemplate-debug"
34+ "AlexWrapper-basic"
35+ "AlexWrapper-basic-bytestring"
36+ "AlexWrapper-strict-bytestring"
37+ "AlexWrapper-posn"
38+ "AlexWrapper-posn-bytestring"
39+ "AlexWrapper-monad"
40+ "AlexWrapper-monad-bytestring"
41+ "AlexWrapper-monadUserState"
42+ "AlexWrapper-monadUserState-bytestring"
43+ "AlexWrapper-gscan"
44+ ];
45+ extraSrcFiles = [
46+ "CHANGELOG.md"
47+ "README.md"
48+ "TODO"
49+ "alex.spec"
50+ "doc/Makefile"
51+ "doc/aclocal.m4"
52+ "doc/alex.1.in"
53+ "doc/alex.xml"
54+ "doc/config.mk.in"
55+ "doc/configure.ac"
56+ "doc/docbook-xml.mk"
57+ "doc/fptools.css"
58+ "examples/Makefile"
59+ "examples/Tokens.x"
60+ "examples/Tokens_gscan.x"
61+ "examples/Tokens_posn.x"
62+ "examples/examples.x"
63+ "examples/haskell.x"
64+ "examples/lit.x"
65+ "examples/pp.x"
66+ "examples/state.x"
67+ "examples/tiny.y"
68+ "examples/words.x"
69+ "examples/words_monad.x"
70+ "examples/words_posn.x"
71+ "src/Parser.y.boot"
72+ "src/Scan.x.boot"
73+ "src/ghc_hooks.c"
74+ "templates/GenericTemplate.hs"
75+ "templates/wrappers.hs"
76+ "tests/Makefile"
77+ "tests/simple.x"
78+ "tests/null.x"
79+ "tests/tokens.x"
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"
100+ "tests/unicode.x"
101+ ];
102+ extraTmpFiles = [];
103+ extraDocFiles = [];
104+ };
105+ components = {
106+ exes = {
107+ "alex" = {
108+ depends = [
109+ (hsPkgs."base" or (errorHandler.buildDepError "base"))
110+ ] ++ (if flags.small_base
111+ then [
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"))
116+ ]
117+ else [ (hsPkgs."base" or (errorHandler.buildDepError "base")) ]);
118+ buildable = true;
119+ modules = [
120+ "AbsSyn"
121+ "CharSet"
122+ "DFA"
123+ "DFAMin"
124+ "DFS"
125+ "Info"
126+ "Map"
127+ "NFA"
128+ "Output"
129+ "Paths_alex"
130+ "Parser"
131+ "ParseMonad"
132+ "Scan"
133+ "Set"
134+ "Sort"
135+ "Util"
136+ "UTF8"
137+ "Data/Ranged"
138+ "Data/Ranged/Boundaries"
139+ "Data/Ranged/RangedSet"
140+ "Data/Ranged/Ranges"
141+ ];
142+ hsSourceDirs = [ "src" ];
143+ mainPath = [ "Main.hs" ] ++ [ "" ];
144+ };
145+ };
146+ tests = {
147+ "tests" = {
148+ depends = [
149+ (hsPkgs."base" or (errorHandler.buildDepError "base"))
150+ (hsPkgs."process" or (errorHandler.buildDepError "process"))
151+ ];
152+ build-tools = [
153+ (hsPkgs.buildPackages.alex.components.exes.alex or (pkgs.buildPackages.alex or (errorHandler.buildToolDepError "alex:alex")))
154+ ];
155+ buildable = true;
156+ mainPath = [ "test.hs" ];
157+ };
158+ };
159+ };
160+ } // rec { src = (pkgs.lib).mkDefault ../.; }
materialized/bootstrap/ghc8107/alex/default.nixnew file+69
@@ -0,0 +1,69 @@
1+{
2+ pkgs = hackage:
3+ {
4+ packages = {
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;
18+ };
19+ compiler = {
20+ version = "8.10.7";
21+ nix-name = "ghc8107";
22+ packages = {
23+ "ghc-prim" = "0.6.1";
24+ "array" = "0.5.4.0";
25+ "integer-gmp" = "1.0.3.0";
26+ "process" = "1.6.13.2";
27+ "base" = "4.14.3.0";
28+ "rts" = "1.0.1";
29+ "time" = "1.9.3";
30+ "unix" = "2.7.2.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";
36+ };
37+ };
38+ };
39+ extras = hackage:
40+ { packages = { alex = ./.plan.nix/alex.nix; }; };
41+ modules = [
42+ ({ lib, ... }:
43+ {
44+ packages = {
45+ "alex" = { flags = { "small_base" = lib.mkOverride 900 true; }; };
46+ };
47+ })
48+ ({ lib, ... }:
49+ {
50+ packages = {
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;
66+ };
67+ })
68+ ];
69+ }
materialized/bootstrap/ghc8107/happy-1.19.12/.plan.nix/happy.nixnew file+200
@@ -0,0 +1,200 @@
1+{ system
2+ , compiler
3+ , flags
4+ , pkgs
5+ , hsPkgs
6+ , pkgconfPkgs
7+ , errorHandler
8+ , config
9+ , ... }:
10+ {
11+ flags = { small_base = true; };
12+ package = {
13+ specVersion = "1.8";
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/";
20+ url = "";
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";
24+ isLocal = true;
25+ detailLevel = "FullDetails";
26+ licenseFiles = [ "LICENSE" ];
27+ dataDir = "data/";
28+ dataFiles = [
29+ "HappyTemplate"
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"
37+ "HappyTemplate-ghc"
38+ "GLR_Base"
39+ "GLR_Lib"
40+ "GLR_Lib-ghc"
41+ "GLR_Lib-ghc-debug"
42+ ];
43+ extraSrcFiles = [
44+ "ANNOUNCE"
45+ "CHANGES"
46+ "Makefile"
47+ "README.md"
48+ "TODO"
49+ "doc/Makefile"
50+ "doc/aclocal.m4"
51+ "doc/config.mk.in"
52+ "doc/configure.ac"
53+ "doc/docbook-xml.mk"
54+ "doc/fptools.css"
55+ "doc/happy.1.in"
56+ "doc/happy.xml"
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"
111+ "examples/README"
112+ "examples/Calc.ly"
113+ "examples/DavesExample.ly"
114+ "examples/ErrorTest.ly"
115+ "examples/ErlParser.ly"
116+ "examples/SimonsExample.ly"
117+ "examples/LexerTest.ly"
118+ "happy.spec"
119+ "src/ARRAY-NOTES"
120+ "tests/AttrGrammar001.y"
121+ "tests/AttrGrammar002.y"
122+ "tests/Makefile"
123+ "tests/Partial.ly"
124+ "tests/Test.ly"
125+ "tests/TestMulti.ly"
126+ "tests/TestPrecedence.ly"
127+ "tests/bogus-token.y"
128+ "tests/bug001.ly"
129+ "tests/bug002.y"
130+ "tests/error001.stderr"
131+ "tests/error001.stdout"
132+ "tests/error001.y"
133+ "tests/monad001.y"
134+ "tests/monad002.ly"
135+ "tests/monaderror.y"
136+ "tests/precedence001.ly"
137+ "tests/precedence002.y"
138+ "tests/test_rules.y"
139+ "tests/issue91.y"
140+ "tests/issue93.y"
141+ "tests/issue94.y"
142+ "tests/issue95.y"
143+ "tests/monaderror-explist.y"
144+ "tests/typeclass_monad001.y"
145+ "tests/typeclass_monad002.ly"
146+ "tests/typeclass_monad_lexer.y"
147+ "tests/rank2.y"
148+ ];
149+ extraTmpFiles = [];
150+ extraDocFiles = [];
151+ };
152+ components = {
153+ exes = {
154+ "happy" = {
155+ depends = [
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"))
160+ ];
161+ buildable = true;
162+ modules = [
163+ "Paths_happy"
164+ "AbsSyn"
165+ "First"
166+ "GenUtils"
167+ "Grammar"
168+ "Info"
169+ "LALR"
170+ "Lexer"
171+ "ParseMonad"
172+ "Parser"
173+ "ProduceCode"
174+ "ProduceGLRCode"
175+ "NameSet"
176+ "Target"
177+ "AttrGrammar"
178+ "AttrGrammarParser"
179+ "ParamRules"
180+ "PrettyGrammar"
181+ ];
182+ hsSourceDirs = [ "src" ];
183+ mainPath = [ "Main.lhs" ];
184+ };
185+ };
186+ tests = {
187+ "tests" = {
188+ depends = [
189+ (hsPkgs."base" or (errorHandler.buildDepError "base"))
190+ (hsPkgs."process" or (errorHandler.buildDepError "process"))
191+ ];
192+ build-tools = [
193+ (hsPkgs.buildPackages.happy.components.exes.happy or (pkgs.buildPackages.happy or (errorHandler.buildToolDepError "happy:happy")))
194+ ];
195+ buildable = true;
196+ mainPath = [ "test.hs" ];
197+ };
198+ };
199+ };
200+ } // rec { src = (pkgs.lib).mkDefault ../.; }
materialized/bootstrap/ghc8107/happy-1.19.12/default.nixnew file+75
@@ -0,0 +1,75 @@
1+{
2+ pkgs = hackage:
3+ {
4+ packages = {
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;
20+ };
21+ compiler = {
22+ version = "8.10.7";
23+ nix-name = "ghc8107";
24+ packages = {
25+ "ghc-prim" = "0.6.1";
26+ "array" = "0.5.4.0";
27+ "integer-gmp" = "1.0.3.0";
28+ "process" = "1.6.13.2";
29+ "base" = "4.14.3.0";
30+ "rts" = "1.0.1";
31+ "mtl" = "2.2.2";
32+ "time" = "1.9.3";
33+ "unix" = "2.7.2.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";
40+ };
41+ };
42+ };
43+ extras = hackage:
44+ { packages = { happy = ./.plan.nix/happy.nix; }; };
45+ modules = [
46+ ({ lib, ... }:
47+ {
48+ packages = {
49+ "happy" = { flags = { "small_base" = lib.mkOverride 900 true; }; };
50+ };
51+ })
52+ ({ lib, ... }:
53+ {
54+ packages = {
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;
72+ };
73+ })
74+ ];
75+ }
materialized/bootstrap/ghc8107/hscolour/.plan.nix/hscolour.nixnew file+70
@@ -0,0 +1,70 @@
1+{ system
2+ , compiler
3+ , flags
4+ , pkgs
5+ , hsPkgs
6+ , pkgconfPkgs
7+ , errorHandler
8+ , config
9+ , ... }:
10+ {
11+ flags = {};
12+ package = {
13+ specVersion = "1.6";
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/";
20+ url = "";
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";
24+ isLocal = true;
25+ detailLevel = "FullDetails";
26+ licenseFiles = [ "LICENCE-LGPL" ];
27+ dataDir = ".";
28+ dataFiles = [ "hscolour.css" "data/rgb24-example-.hscolour" ];
29+ extraSrcFiles = [];
30+ extraTmpFiles = [];
31+ extraDocFiles = [];
32+ };
33+ components = {
34+ "library" = {
35+ depends = [
36+ (hsPkgs."base" or (errorHandler.buildDepError "base"))
37+ (hsPkgs."containers" or (errorHandler.buildDepError "containers"))
38+ ];
39+ buildable = true;
40+ modules = [
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"
57+ ];
58+ };
59+ exes = {
60+ "HsColour" = {
61+ depends = [
62+ (hsPkgs."base" or (errorHandler.buildDepError "base"))
63+ (hsPkgs."containers" or (errorHandler.buildDepError "containers"))
64+ ];
65+ buildable = true;
66+ mainPath = [ "HsColour.hs" ];
67+ };
68+ };
69+ };
70+ } // rec { src = (pkgs.lib).mkDefault ../.; }
materialized/bootstrap/ghc8107/hscolour/default.nixnew file+47
@@ -0,0 +1,47 @@
1+{
2+ pkgs = hackage:
3+ {
4+ packages = {
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;
12+ };
13+ compiler = {
14+ version = "8.10.7";
15+ nix-name = "ghc8107";
16+ packages = {
17+ "ghc-prim" = "0.6.1";
18+ "array" = "0.5.4.0";
19+ "integer-gmp" = "1.0.3.0";
20+ "base" = "4.14.3.0";
21+ "rts" = "1.0.1";
22+ "containers" = "0.6.5.1";
23+ "deepseq" = "1.4.4.0";
24+ };
25+ };
26+ };
27+ extras = hackage:
28+ { packages = { hscolour = ./.plan.nix/hscolour.nix; }; };
29+ modules = [
30+ ({ lib, ... }:
31+ { packages = { "hscolour" = { flags = {}; }; }; })
32+ ({ lib, ... }:
33+ {
34+ packages = {
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;
44+ };
45+ })
46+ ];
47+ }
materialized/bootstrap/ghc844/alex/.plan.nix/alex.nix+1−1
@@ -150,7 +150,7 @@
150150 (hsPkgs."process" or (errorHandler.buildDepError "process"))
151151 ];
152152 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")))
154154 ];
155155 buildable = true;
156156 mainPath = [ "test.hs" ];
materialized/bootstrap/ghc844/alex/default.nix+34−18
@@ -3,36 +3,34 @@
33 {
44 packages = {
55 "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;
8− "deepseq".revision = (((hackage."deepseq")."1.4.3.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;
6+ "array".revision = (((hackage."array")."0.5.2.0").revisions).default;
7+ "integer-gmp".revision = (((hackage."integer-gmp")."1.0.2.0").revisions).default;
128 "base".revision = (((hackage."base")."4.11.1.0").revisions).default;
9+ "rts".revision = (((hackage."rts")."1.0").revisions).default;
1310 "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;
1415 "filepath".revision = (((hackage."filepath")."1.4.2").revisions).default;
15− "process".revision = (((hackage."process")."1.6.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;
16+ "deepseq".revision = (((hackage."deepseq")."1.4.3.0").revisions).default;
1817 };
1918 compiler = {
2019 version = "8.4.4";
2120 nix-name = "ghc844";
2221 packages = {
2322 "ghc-prim" = "0.5.2.0";
24− "unix" = "2.7.2.2";
25− "rts" = "1.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";
23+ "array" = "0.5.2.0";
24+ "integer-gmp" = "1.0.2.0";
3025 "base" = "4.11.1.0";
26+ "rts" = "1.0";
3127 "time" = "1.8.0.2";
28+ "unix" = "2.7.2.2";
29+ "bytestring" = "0.10.8.2";
30+ "containers" = "0.5.11.0";
31+ "directory" = "1.3.1.5";
3232 "filepath" = "1.4.2";
33− "process" = "1.6.3.0";
34− "array" = "0.5.2.0";
35− "integer-gmp" = "1.0.2.0";
33+ "deepseq" = "1.4.3.0";
3634 };
3735 };
3836 };
@@ -45,5 +43,23 @@
4543 "alex" = { flags = { "small_base" = lib.mkOverride 900 true; }; };
4644 };
4745 })
46+ ({ lib, ... }:
47+ {
48+ packages = {
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;
62+ };
63+ })
4864 ];
4965 }
materialized/bootstrap/ghc844/happy-1.19.11/.plan.nix/happy.nix+5−5
@@ -23,14 +23,14 @@
2323 buildType = "Custom";
2424 isLocal = true;
2525 setup-depends = [
26− (hsPkgs.buildPackages.Cabal or (pkgs.buildPackages.Cabal or (errorHandler.buildToolDepError "Cabal")))
27− (hsPkgs.buildPackages.base or (pkgs.buildPackages.base or (errorHandler.buildToolDepError "base")))
28− (hsPkgs.buildPackages.directory or (pkgs.buildPackages.directory or (errorHandler.buildToolDepError "directory")))
29− (hsPkgs.buildPackages.filepath or (pkgs.buildPackages.filepath or (errorHandler.buildToolDepError "filepath")))
26+ (hsPkgs.buildPackages.Cabal or (pkgs.buildPackages.Cabal or (errorHandler.setupDepError "Cabal")))
27+ (hsPkgs.buildPackages.base or (pkgs.buildPackages.base or (errorHandler.setupDepError "base")))
28+ (hsPkgs.buildPackages.directory or (pkgs.buildPackages.directory or (errorHandler.setupDepError "directory")))
29+ (hsPkgs.buildPackages.filepath or (pkgs.buildPackages.filepath or (errorHandler.setupDepError "filepath")))
3030 ];
3131 detailLevel = "FullDetails";
3232 licenseFiles = [ "LICENSE" ];
33− dataDir = "";
33+ dataDir = ".";
3434 dataFiles = [];
3535 extraSrcFiles = [
3636 "ANNOUNCE"
materialized/bootstrap/ghc844/happy-1.19.11/default.nix+55−28
@@ -4,24 +4,24 @@
44 packages = {
55 "binary".revision = (((hackage."binary")."0.8.5.1").revisions).default;
66 "ghc-prim".revision = (((hackage."ghc-prim")."0.5.2.0").revisions).default;
7− "unix".revision = (((hackage."unix")."2.7.2.2").revisions).default;
8− "mtl".revision = (((hackage."mtl")."2.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;
11+ "base".revision = (((hackage."base")."4.11.1.0").revisions).default;
912 "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;
1513 "text".revision = (((hackage."text")."1.2.3.1").revisions).default;
16− "Cabal".revision = (((hackage."Cabal")."2.2.0.1").revisions).default;
17− "base".revision = (((hackage."base")."4.11.1.0").revisions).default;
14+ "mtl".revision = (((hackage."mtl")."2.2.2").revisions).default;
1815 "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;
2021 "filepath".revision = (((hackage."filepath")."1.4.2").revisions).default;
21− "process".revision = (((hackage."process")."1.6.3.0").revisions).default;
22− "pretty".revision = (((hackage."pretty")."1.1.3.6").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;
22+ "deepseq".revision = (((hackage."deepseq")."1.4.3.0").revisions).default;
23+ "transformers".revision = (((hackage."transformers")."0.5.5.0").revisions).default;
24+ "Cabal".revision = (((hackage."Cabal")."2.2.0.1").revisions).default;
2525 };
2626 compiler = {
2727 version = "8.4.4";
@@ -29,24 +29,24 @@
2929 packages = {
3030 "binary" = "0.8.5.1";
3131 "ghc-prim" = "0.5.2.0";
32− "unix" = "2.7.2.2";
33− "mtl" = "2.2.2";
32+ "array" = "0.5.2.0";
33+ "integer-gmp" = "1.0.2.0";
34+ "pretty" = "1.1.3.6";
35+ "process" = "1.6.3.0";
36+ "base" = "4.11.1.0";
3437 "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";
4038 "text" = "1.2.3.1";
41− "Cabal" = "2.2.0.1";
42− "base" = "4.11.1.0";
39+ "mtl" = "2.2.2";
4340 "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";
4546 "filepath" = "1.4.2";
46− "process" = "1.6.3.0";
47− "pretty" = "1.1.3.6";
48− "array" = "0.5.2.0";
49− "integer-gmp" = "1.0.2.0";
47+ "deepseq" = "1.4.3.0";
48+ "transformers" = "0.5.5.0";
49+ "Cabal" = "2.2.0.1";
5050 };
5151 };
5252 };
@@ -59,5 +59,32 @@
5959 "happy" = { flags = { "small_base" = lib.mkOverride 900 true; }; };
6060 };
6161 })
62+ ({ lib, ... }:
63+ {
64+ packages = {
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;
87+ };
88+ })
6289 ];
6390 }
materialized/bootstrap/ghc844/happy-1.19.12/.plan.nix/happy.nix+1−1
@@ -190,7 +190,7 @@
190190 (hsPkgs."process" or (errorHandler.buildDepError "process"))
191191 ];
192192 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")))
194194 ];
195195 buildable = true;
196196 mainPath = [ "test.hs" ];
materialized/bootstrap/ghc844/happy-1.19.12/default.nix+25−22
@@ -3,40 +3,28 @@
33 {
44 packages = {
55 "ghc-prim".revision = (((hackage."ghc-prim")."0.5.2.0").revisions).default;
6− "unix".revision = (((hackage."unix")."2.7.2.2").revisions).default;
7− "mtl".revision = (((hackage."mtl")."2.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;
8+ "base".revision = (((hackage."base")."4.11.1.0").revisions).default;
89 "rts".revision = (((hackage."rts")."1.0").revisions).default;
9− "deepseq".revision = (((hackage."deepseq")."1.4.3.0").revisions).default;
10− "directory".revision = (((hackage."directory")."1.3.1.5").revisions).default;
10+ "mtl".revision = (((hackage."mtl")."2.2.2").revisions).default;
1111 "containers".revision = (((hackage."containers")."0.5.11.0").revisions).default;
12− "bytestring".revision = (((hackage."bytestring")."0.10.8.2").revisions).default;
13− "base".revision = (((hackage."base")."4.11.1.0").revisions).default;
14− "time".revision = (((hackage."time")."1.8.0.2").revisions).default;
12+ "deepseq".revision = (((hackage."deepseq")."1.4.3.0").revisions).default;
1513 "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;
2014 };
2115 compiler = {
2216 version = "8.4.4";
2317 nix-name = "ghc844";
2418 packages = {
2519 "ghc-prim" = "0.5.2.0";
26− "unix" = "2.7.2.2";
27− "mtl" = "2.2.2";
20+ "array" = "0.5.2.0";
21+ "integer-gmp" = "1.0.2.0";
22+ "base" = "4.11.1.0";
2823 "rts" = "1.0";
29− "deepseq" = "1.4.3.0";
30− "directory" = "1.3.1.5";
24+ "mtl" = "2.2.2";
3125 "containers" = "0.5.11.0";
32− "bytestring" = "0.10.8.2";
33− "base" = "4.11.1.0";
34− "time" = "1.8.0.2";
26+ "deepseq" = "1.4.3.0";
3527 "transformers" = "0.5.5.0";
36− "filepath" = "1.4.2";
37− "process" = "1.6.3.0";
38− "array" = "0.5.2.0";
39− "integer-gmp" = "1.0.2.0";
4028 };
4129 };
4230 };
@@ -49,5 +37,20 @@
4937 "happy" = { flags = { "small_base" = lib.mkOverride 900 true; }; };
5038 };
5139 })
40+ ({ lib, ... }:
41+ {
42+ packages = {
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;
53+ };
54+ })
5255 ];
5356 }
materialized/bootstrap/ghc844/hscolour/.plan.nix/hscolour.nix+1−1
@@ -24,7 +24,7 @@
2424 isLocal = true;
2525 detailLevel = "FullDetails";
2626 licenseFiles = [ "LICENCE-LGPL" ];
27− dataDir = "";
27+ dataDir = ".";
2828 dataFiles = [ "hscolour.css" "data/rgb24-example-.hscolour" ];
2929 extraSrcFiles = [];
3030 extraTmpFiles = [];
materialized/bootstrap/ghc844/hscolour/default.nix+22−8
@@ -3,24 +3,24 @@
33 {
44 packages = {
55 "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;
106 "array".revision = (((hackage."array")."0.5.2.0").revisions).default;
117 "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;
1212 };
1313 compiler = {
1414 version = "8.4.4";
1515 nix-name = "ghc844";
1616 packages = {
1717 "ghc-prim" = "0.5.2.0";
18− "rts" = "1.0";
19− "deepseq" = "1.4.3.0";
20− "containers" = "0.5.11.0";
21− "base" = "4.11.1.0";
2218 "array" = "0.5.2.0";
2319 "integer-gmp" = "1.0.2.0";
20+ "base" = "4.11.1.0";
21+ "rts" = "1.0";
22+ "containers" = "0.5.11.0";
23+ "deepseq" = "1.4.3.0";
2424 };
2525 };
2626 };
@@ -29,5 +29,19 @@
2929 modules = [
3030 ({ lib, ... }:
3131 { packages = { "hscolour" = { flags = {}; }; }; })
32+ ({ lib, ... }:
33+ {
34+ packages = {
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;
44+ };
45+ })
3246 ];
3347 }
materialized/bootstrap/ghc882/alex/.plan.nix/alex.nix+1−1
@@ -150,7 +150,7 @@
150150 (hsPkgs."process" or (errorHandler.buildDepError "process"))
151151 ];
152152 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")))
154154 ];
155155 buildable = true;
156156 mainPath = [ "test.hs" ];
materialized/bootstrap/ghc882/alex/default.nix+38−18
@@ -3,36 +3,36 @@
33 {
44 packages = {
55 "ghc-prim".revision = (((hackage."ghc-prim")."0.5.3").revisions).default;
6− "unix".revision = (((hackage."unix")."2.7.2.2").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;
10− "containers".revision = (((hackage."containers")."0.6.2.1").revisions).default;
11− "bytestring".revision = (((hackage."bytestring")."0.10.10.0").revisions).default;
6+ "array".revision = (((hackage."array")."0.5.4.0").revisions).default;
7+ "integer-gmp".revision = (((hackage."integer-gmp")."1.0.2.0").revisions).default;
8+ "process".revision = (((hackage."process")."1.6.7.0").revisions).default;
129 "base".revision = (((hackage."base")."4.13.0.0").revisions).default;
10+ "rts".revision = (((hackage."rts")."1.0").revisions).default;
1311 "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;
1416 "filepath".revision = (((hackage."filepath")."1.4.2.1").revisions).default;
15− "process".revision = (((hackage."process")."1.6.7.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;
17+ "deepseq".revision = (((hackage."deepseq")."1.4.4.0").revisions).default;
1818 };
1919 compiler = {
2020 version = "8.8.2";
2121 nix-name = "ghc882";
2222 packages = {
2323 "ghc-prim" = "0.5.3";
24− "unix" = "2.7.2.2";
25− "rts" = "1.0";
26− "deepseq" = "1.4.4.0";
27− "directory" = "1.3.4.0";
28− "containers" = "0.6.2.1";
29− "bytestring" = "0.10.10.0";
24+ "array" = "0.5.4.0";
25+ "integer-gmp" = "1.0.2.0";
26+ "process" = "1.6.7.0";
3027 "base" = "4.13.0.0";
28+ "rts" = "1.0";
3129 "time" = "1.9.3";
30+ "unix" = "2.7.2.2";
31+ "bytestring" = "0.10.10.0";
32+ "containers" = "0.6.2.1";
33+ "directory" = "1.3.4.0";
3234 "filepath" = "1.4.2.1";
33− "process" = "1.6.7.0";
34− "array" = "0.5.4.0";
35− "integer-gmp" = "1.0.2.0";
35+ "deepseq" = "1.4.4.0";
3636 };
3737 };
3838 };
@@ -45,5 +45,25 @@
4545 "alex" = { flags = { "small_base" = lib.mkOverride 900 true; }; };
4646 };
4747 })
48+ ({ lib, ... }:
49+ {
50+ packages = {
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;
66+ };
67+ })
4868 ];
4969 }
materialized/bootstrap/ghc882/happy-1.19.12/.plan.nix/happy.nix+1−1
@@ -190,7 +190,7 @@
190190 (hsPkgs."process" or (errorHandler.buildDepError "process"))
191191 ];
192192 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")))
194194 ];
195195 buildable = true;
196196 mainPath = [ "test.hs" ];
materialized/bootstrap/ghc882/happy-1.19.12/default.nix+44−22
@@ -3,40 +3,40 @@
33 {
44 packages = {
55 "ghc-prim".revision = (((hackage."ghc-prim")."0.5.3").revisions).default;
6− "unix".revision = (((hackage."unix")."2.7.2.2").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;
11− "containers".revision = (((hackage."containers")."0.6.2.1").revisions).default;
12− "bytestring".revision = (((hackage."bytestring")."0.10.10.0").revisions).default;
6+ "array".revision = (((hackage."array")."0.5.4.0").revisions).default;
7+ "integer-gmp".revision = (((hackage."integer-gmp")."1.0.2.0").revisions).default;
8+ "process".revision = (((hackage."process")."1.6.7.0").revisions).default;
139 "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;
1412 "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;
1617 "filepath".revision = (((hackage."filepath")."1.4.2.1").revisions).default;
17− "process".revision = (((hackage."process")."1.6.7.0").revisions).default;
18− "array".revision = (((hackage."array")."0.5.4.0").revisions).default;
19− "integer-gmp".revision = (((hackage."integer-gmp")."1.0.2.0").revisions).default;
18+ "deepseq".revision = (((hackage."deepseq")."1.4.4.0").revisions).default;
19+ "transformers".revision = (((hackage."transformers")."0.5.6.2").revisions).default;
2020 };
2121 compiler = {
2222 version = "8.8.2";
2323 nix-name = "ghc882";
2424 packages = {
2525 "ghc-prim" = "0.5.3";
26− "unix" = "2.7.2.2";
27− "mtl" = "2.2.2";
28− "rts" = "1.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";
26+ "array" = "0.5.4.0";
27+ "integer-gmp" = "1.0.2.0";
28+ "process" = "1.6.7.0";
3329 "base" = "4.13.0.0";
30+ "rts" = "1.0";
31+ "mtl" = "2.2.2";
3432 "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";
3637 "filepath" = "1.4.2.1";
37− "process" = "1.6.7.0";
38− "array" = "0.5.4.0";
39− "integer-gmp" = "1.0.2.0";
38+ "deepseq" = "1.4.4.0";
39+ "transformers" = "0.5.6.2";
4040 };
4141 };
4242 };
@@ -49,5 +49,27 @@
4949 "happy" = { flags = { "small_base" = lib.mkOverride 900 true; }; };
5050 };
5151 })
52+ ({ lib, ... }:
53+ {
54+ packages = {
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;
72+ };
73+ })
5274 ];
5375 }
materialized/bootstrap/ghc882/hscolour/.plan.nix/hscolour.nix+1−1
@@ -24,7 +24,7 @@
2424 isLocal = true;
2525 detailLevel = "FullDetails";
2626 licenseFiles = [ "LICENCE-LGPL" ];
27− dataDir = "";
27+ dataDir = ".";
2828 dataFiles = [ "hscolour.css" "data/rgb24-example-.hscolour" ];
2929 extraSrcFiles = [];
3030 extraTmpFiles = [];
materialized/bootstrap/ghc882/hscolour/default.nix+22−8
@@ -3,24 +3,24 @@
33 {
44 packages = {
55 "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;
106 "array".revision = (((hackage."array")."0.5.4.0").revisions).default;
117 "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;
1212 };
1313 compiler = {
1414 version = "8.8.2";
1515 nix-name = "ghc882";
1616 packages = {
1717 "ghc-prim" = "0.5.3";
18− "rts" = "1.0";
19− "deepseq" = "1.4.4.0";
20− "containers" = "0.6.2.1";
21− "base" = "4.13.0.0";
2218 "array" = "0.5.4.0";
2319 "integer-gmp" = "1.0.2.0";
20+ "base" = "4.13.0.0";
21+ "rts" = "1.0";
22+ "containers" = "0.6.2.1";
23+ "deepseq" = "1.4.4.0";
2424 };
2525 };
2626 };
@@ -29,5 +29,19 @@
2929 modules = [
3030 ({ lib, ... }:
3131 { packages = { "hscolour" = { flags = {}; }; }; })
32+ ({ lib, ... }:
33+ {
34+ packages = {
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;
44+ };
45+ })
3246 ];
3347 }
materialized/bootstrap/ghc883/alex/.plan.nix/alex.nixnew file+160
@@ -0,0 +1,160 @@
1+{ system
2+ , compiler
3+ , flags
4+ , pkgs
5+ , hsPkgs
6+ , pkgconfPkgs
7+ , errorHandler
8+ , config
9+ , ... }:
10+ {
11+ flags = { small_base = true; };
12+ package = {
13+ specVersion = "1.8";
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/";
20+ url = "";
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";
24+ isLocal = true;
25+ detailLevel = "FullDetails";
26+ licenseFiles = [ "LICENSE" ];
27+ dataDir = "data/";
28+ dataFiles = [
29+ "AlexTemplate"
30+ "AlexTemplate-ghc"
31+ "AlexTemplate-ghc-nopred"
32+ "AlexTemplate-ghc-debug"
33+ "AlexTemplate-debug"
34+ "AlexWrapper-basic"
35+ "AlexWrapper-basic-bytestring"
36+ "AlexWrapper-strict-bytestring"
37+ "AlexWrapper-posn"
38+ "AlexWrapper-posn-bytestring"
39+ "AlexWrapper-monad"
40+ "AlexWrapper-monad-bytestring"
41+ "AlexWrapper-monadUserState"
42+ "AlexWrapper-monadUserState-bytestring"
43+ "AlexWrapper-gscan"
44+ ];
45+ extraSrcFiles = [
46+ "CHANGELOG.md"
47+ "README.md"
48+ "TODO"
49+ "alex.spec"
50+ "doc/Makefile"
51+ "doc/aclocal.m4"
52+ "doc/alex.1.in"
53+ "doc/alex.xml"
54+ "doc/config.mk.in"
55+ "doc/configure.ac"
56+ "doc/docbook-xml.mk"
57+ "doc/fptools.css"
58+ "examples/Makefile"
59+ "examples/Tokens.x"
60+ "examples/Tokens_gscan.x"
61+ "examples/Tokens_posn.x"
62+ "examples/examples.x"
63+ "examples/haskell.x"
64+ "examples/lit.x"
65+ "examples/pp.x"
66+ "examples/state.x"
67+ "examples/tiny.y"
68+ "examples/words.x"
69+ "examples/words_monad.x"
70+ "examples/words_posn.x"
71+ "src/Parser.y.boot"
72+ "src/Scan.x.boot"
73+ "src/ghc_hooks.c"
74+ "templates/GenericTemplate.hs"
75+ "templates/wrappers.hs"
76+ "tests/Makefile"
77+ "tests/simple.x"
78+ "tests/null.x"
79+ "tests/tokens.x"
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"
100+ "tests/unicode.x"
101+ ];
102+ extraTmpFiles = [];
103+ extraDocFiles = [];
104+ };
105+ components = {
106+ exes = {
107+ "alex" = {
108+ depends = [
109+ (hsPkgs."base" or (errorHandler.buildDepError "base"))
110+ ] ++ (if flags.small_base
111+ then [
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"))
116+ ]
117+ else [ (hsPkgs."base" or (errorHandler.buildDepError "base")) ]);
118+ buildable = true;
119+ modules = [
120+ "AbsSyn"
121+ "CharSet"
122+ "DFA"
123+ "DFAMin"
124+ "DFS"
125+ "Info"
126+ "Map"
127+ "NFA"
128+ "Output"
129+ "Paths_alex"
130+ "Parser"
131+ "ParseMonad"
132+ "Scan"
133+ "Set"
134+ "Sort"
135+ "Util"
136+ "UTF8"
137+ "Data/Ranged"
138+ "Data/Ranged/Boundaries"
139+ "Data/Ranged/RangedSet"
140+ "Data/Ranged/Ranges"
141+ ];
142+ hsSourceDirs = [ "src" ];
143+ mainPath = [ "Main.hs" ] ++ [ "" ];
144+ };
145+ };
146+ tests = {
147+ "tests" = {
148+ depends = [
149+ (hsPkgs."base" or (errorHandler.buildDepError "base"))
150+ (hsPkgs."process" or (errorHandler.buildDepError "process"))
151+ ];
152+ build-tools = [
153+ (hsPkgs.buildPackages.alex.components.exes.alex or (pkgs.buildPackages.alex or (errorHandler.buildToolDepError "alex:alex")))
154+ ];
155+ buildable = true;
156+ mainPath = [ "test.hs" ];
157+ };
158+ };
159+ };
160+ } // rec { src = (pkgs.lib).mkDefault ../.; }
materialized/bootstrap/ghc883/alex/default.nixnew file+65
@@ -0,0 +1,65 @@
1+{
2+ pkgs = hackage:
3+ {
4+ packages = {
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;
17+ };
18+ compiler = {
19+ version = "8.8.3";
20+ nix-name = "ghc883";
21+ packages = {
22+ "array" = "0.5.4.0";
23+ "bytestring" = "0.10.10.0";
24+ "filepath" = "1.4.2.1";
25+ "ghc-prim" = "0.5.3";
26+ "base" = "4.13.0.0";
27+ "time" = "1.9.3";
28+ "directory" = "1.3.6.0";
29+ "rts" = "1.0";
30+ "deepseq" = "1.4.4.0";
31+ "unix" = "2.7.2.2";
32+ "integer-gmp" = "1.0.2.0";
33+ "containers" = "0.6.2.1";
34+ };
35+ };
36+ };
37+ extras = hackage:
38+ { packages = { alex = ./.plan.nix/alex.nix; }; };
39+ modules = [
40+ ({ lib, ... }:
41+ {
42+ packages = {
43+ "alex" = { flags = { "small_base" = lib.mkOverride 900 true; }; };
44+ };
45+ })
46+ ({ lib, ... }:
47+ {
48+ packages = {
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;
62+ };
63+ })
64+ ];
65+ }
materialized/bootstrap/ghc883/happy-1.19.12/.plan.nix/happy.nixnew file+200
@@ -0,0 +1,200 @@
1+{ system
2+ , compiler
3+ , flags
4+ , pkgs
5+ , hsPkgs
6+ , pkgconfPkgs
7+ , errorHandler
8+ , config
9+ , ... }:
10+ {
11+ flags = { small_base = true; };
12+ package = {
13+ specVersion = "1.8";
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/";
20+ url = "";
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";
24+ isLocal = true;
25+ detailLevel = "FullDetails";
26+ licenseFiles = [ "LICENSE" ];
27+ dataDir = "data/";
28+ dataFiles = [
29+ "HappyTemplate"
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"
37+ "HappyTemplate-ghc"
38+ "GLR_Base"
39+ "GLR_Lib"
40+ "GLR_Lib-ghc"
41+ "GLR_Lib-ghc-debug"
42+ ];
43+ extraSrcFiles = [
44+ "ANNOUNCE"
45+ "CHANGES"
46+ "Makefile"
47+ "README.md"
48+ "TODO"
49+ "doc/Makefile"
50+ "doc/aclocal.m4"
51+ "doc/config.mk.in"
52+ "doc/configure.ac"
53+ "doc/docbook-xml.mk"
54+ "doc/fptools.css"
55+ "doc/happy.1.in"
56+ "doc/happy.xml"
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"
111+ "examples/README"
112+ "examples/Calc.ly"
113+ "examples/DavesExample.ly"
114+ "examples/ErrorTest.ly"
115+ "examples/ErlParser.ly"
116+ "examples/SimonsExample.ly"
117+ "examples/LexerTest.ly"
118+ "happy.spec"
119+ "src/ARRAY-NOTES"
120+ "tests/AttrGrammar001.y"
121+ "tests/AttrGrammar002.y"
122+ "tests/Makefile"
123+ "tests/Partial.ly"
124+ "tests/Test.ly"
125+ "tests/TestMulti.ly"
126+ "tests/TestPrecedence.ly"
127+ "tests/bogus-token.y"
128+ "tests/bug001.ly"
129+ "tests/bug002.y"
130+ "tests/error001.stderr"
131+ "tests/error001.stdout"
132+ "tests/error001.y"
133+ "tests/monad001.y"
134+ "tests/monad002.ly"
135+ "tests/monaderror.y"
136+ "tests/precedence001.ly"
137+ "tests/precedence002.y"
138+ "tests/test_rules.y"
139+ "tests/issue91.y"
140+ "tests/issue93.y"
141+ "tests/issue94.y"
142+ "tests/issue95.y"
143+ "tests/monaderror-explist.y"
144+ "tests/typeclass_monad001.y"
145+ "tests/typeclass_monad002.ly"
146+ "tests/typeclass_monad_lexer.y"
147+ "tests/rank2.y"
148+ ];
149+ extraTmpFiles = [];
150+ extraDocFiles = [];
151+ };
152+ components = {
153+ exes = {
154+ "happy" = {
155+ depends = [
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"))
160+ ];
161+ buildable = true;
162+ modules = [
163+ "Paths_happy"
164+ "AbsSyn"
165+ "First"
166+ "GenUtils"
167+ "Grammar"
168+ "Info"
169+ "LALR"
170+ "Lexer"
171+ "ParseMonad"
172+ "Parser"
173+ "ProduceCode"
174+ "ProduceGLRCode"
175+ "NameSet"
176+ "Target"
177+ "AttrGrammar"
178+ "AttrGrammarParser"
179+ "ParamRules"
180+ "PrettyGrammar"
181+ ];
182+ hsSourceDirs = [ "src" ];
183+ mainPath = [ "Main.lhs" ];
184+ };
185+ };
186+ tests = {
187+ "tests" = {
188+ depends = [
189+ (hsPkgs."base" or (errorHandler.buildDepError "base"))
190+ (hsPkgs."process" or (errorHandler.buildDepError "process"))
191+ ];
192+ build-tools = [
193+ (hsPkgs.buildPackages.happy.components.exes.happy or (pkgs.buildPackages.happy or (errorHandler.buildToolDepError "happy:happy")))
194+ ];
195+ buildable = true;
196+ mainPath = [ "test.hs" ];
197+ };
198+ };
199+ };
200+ } // rec { src = (pkgs.lib).mkDefault ../.; }
materialized/bootstrap/ghc883/happy-1.19.12/default.nixnew file+56
@@ -0,0 +1,56 @@
1+{
2+ pkgs = hackage:
3+ {
4+ packages = {
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;
14+ };
15+ compiler = {
16+ version = "8.8.3";
17+ nix-name = "ghc883";
18+ packages = {
19+ "array" = "0.5.4.0";
20+ "mtl" = "2.2.2";
21+ "ghc-prim" = "0.5.3";
22+ "base" = "4.13.0.0";
23+ "rts" = "1.0";
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";
28+ };
29+ };
30+ };
31+ extras = hackage:
32+ { packages = { happy = ./.plan.nix/happy.nix; }; };
33+ modules = [
34+ ({ lib, ... }:
35+ {
36+ packages = {
37+ "happy" = { flags = { "small_base" = lib.mkOverride 900 true; }; };
38+ };
39+ })
40+ ({ lib, ... }:
41+ {
42+ packages = {
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;
53+ };
54+ })
55+ ];
56+ }
materialized/bootstrap/ghc883/hscolour/.plan.nix/hscolour.nixnew file+70
@@ -0,0 +1,70 @@
1+{ system
2+ , compiler
3+ , flags
4+ , pkgs
5+ , hsPkgs
6+ , pkgconfPkgs
7+ , errorHandler
8+ , config
9+ , ... }:
10+ {
11+ flags = {};
12+ package = {
13+ specVersion = "1.6";
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/";
20+ url = "";
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";
24+ isLocal = true;
25+ detailLevel = "FullDetails";
26+ licenseFiles = [ "LICENCE-LGPL" ];
27+ dataDir = ".";
28+ dataFiles = [ "hscolour.css" "data/rgb24-example-.hscolour" ];
29+ extraSrcFiles = [];
30+ extraTmpFiles = [];
31+ extraDocFiles = [];
32+ };
33+ components = {
34+ "library" = {
35+ depends = [
36+ (hsPkgs."base" or (errorHandler.buildDepError "base"))
37+ (hsPkgs."containers" or (errorHandler.buildDepError "containers"))
38+ ];
39+ buildable = true;
40+ modules = [
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"
57+ ];
58+ };
59+ exes = {
60+ "HsColour" = {
61+ depends = [
62+ (hsPkgs."base" or (errorHandler.buildDepError "base"))
63+ (hsPkgs."containers" or (errorHandler.buildDepError "containers"))
64+ ];
65+ buildable = true;
66+ mainPath = [ "HsColour.hs" ];
67+ };
68+ };
69+ };
70+ } // rec { src = (pkgs.lib).mkDefault ../.; }
materialized/bootstrap/ghc883/hscolour/default.nixnew file+47
@@ -0,0 +1,47 @@
1+{
2+ pkgs = hackage:
3+ {
4+ packages = {
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;
12+ };
13+ compiler = {
14+ version = "8.8.3";
15+ nix-name = "ghc883";
16+ packages = {
17+ "array" = "0.5.4.0";
18+ "ghc-prim" = "0.5.3";
19+ "base" = "4.13.0.0";
20+ "rts" = "1.0";
21+ "deepseq" = "1.4.4.0";
22+ "integer-gmp" = "1.0.2.0";
23+ "containers" = "0.6.2.1";
24+ };
25+ };
26+ };
27+ extras = hackage:
28+ { packages = { hscolour = ./.plan.nix/hscolour.nix; }; };
29+ modules = [
30+ ({ lib, ... }:
31+ { packages = { "hscolour" = { flags = {}; }; }; })
32+ ({ lib, ... }:
33+ {
34+ packages = {
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;
44+ };
45+ })
46+ ];
47+ }
materialized/bootstrap/ghc884/alex/.plan.nix/alex.nixnew file+160
@@ -0,0 +1,160 @@
1+{ system
2+ , compiler
3+ , flags
4+ , pkgs
5+ , hsPkgs
6+ , pkgconfPkgs
7+ , errorHandler
8+ , config
9+ , ... }:
10+ {
11+ flags = { small_base = true; };
12+ package = {
13+ specVersion = "1.8";
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/";
20+ url = "";
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";
24+ isLocal = true;
25+ detailLevel = "FullDetails";
26+ licenseFiles = [ "LICENSE" ];
27+ dataDir = "data/";
28+ dataFiles = [
29+ "AlexTemplate"
30+ "AlexTemplate-ghc"
31+ "AlexTemplate-ghc-nopred"
32+ "AlexTemplate-ghc-debug"
33+ "AlexTemplate-debug"
34+ "AlexWrapper-basic"
35+ "AlexWrapper-basic-bytestring"
36+ "AlexWrapper-strict-bytestring"
37+ "AlexWrapper-posn"
38+ "AlexWrapper-posn-bytestring"
39+ "AlexWrapper-monad"
40+ "AlexWrapper-monad-bytestring"
41+ "AlexWrapper-monadUserState"
42+ "AlexWrapper-monadUserState-bytestring"
43+ "AlexWrapper-gscan"
44+ ];
45+ extraSrcFiles = [
46+ "CHANGELOG.md"
47+ "README.md"
48+ "TODO"
49+ "alex.spec"
50+ "doc/Makefile"
51+ "doc/aclocal.m4"
52+ "doc/alex.1.in"
53+ "doc/alex.xml"
54+ "doc/config.mk.in"
55+ "doc/configure.ac"
56+ "doc/docbook-xml.mk"
57+ "doc/fptools.css"
58+ "examples/Makefile"
59+ "examples/Tokens.x"
60+ "examples/Tokens_gscan.x"
61+ "examples/Tokens_posn.x"
62+ "examples/examples.x"
63+ "examples/haskell.x"
64+ "examples/lit.x"
65+ "examples/pp.x"
66+ "examples/state.x"
67+ "examples/tiny.y"
68+ "examples/words.x"
69+ "examples/words_monad.x"
70+ "examples/words_posn.x"
71+ "src/Parser.y.boot"
72+ "src/Scan.x.boot"
73+ "src/ghc_hooks.c"
74+ "templates/GenericTemplate.hs"
75+ "templates/wrappers.hs"
76+ "tests/Makefile"
77+ "tests/simple.x"
78+ "tests/null.x"
79+ "tests/tokens.x"
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"
100+ "tests/unicode.x"
101+ ];
102+ extraTmpFiles = [];
103+ extraDocFiles = [];
104+ };
105+ components = {
106+ exes = {
107+ "alex" = {
108+ depends = [
109+ (hsPkgs."base" or (errorHandler.buildDepError "base"))
110+ ] ++ (if flags.small_base
111+ then [
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"))
116+ ]
117+ else [ (hsPkgs."base" or (errorHandler.buildDepError "base")) ]);
118+ buildable = true;
119+ modules = [
120+ "AbsSyn"
121+ "CharSet"
122+ "DFA"
123+ "DFAMin"
124+ "DFS"
125+ "Info"
126+ "Map"
127+ "NFA"
128+ "Output"
129+ "Paths_alex"
130+ "Parser"
131+ "ParseMonad"
132+ "Scan"
133+ "Set"
134+ "Sort"
135+ "Util"
136+ "UTF8"
137+ "Data/Ranged"
138+ "Data/Ranged/Boundaries"
139+ "Data/Ranged/RangedSet"
140+ "Data/Ranged/Ranges"
141+ ];
142+ hsSourceDirs = [ "src" ];
143+ mainPath = [ "Main.hs" ] ++ [ "" ];
144+ };
145+ };
146+ tests = {
147+ "tests" = {
148+ depends = [
149+ (hsPkgs."base" or (errorHandler.buildDepError "base"))
150+ (hsPkgs."process" or (errorHandler.buildDepError "process"))
151+ ];
152+ build-tools = [
153+ (hsPkgs.buildPackages.alex.components.exes.alex or (pkgs.buildPackages.alex or (errorHandler.buildToolDepError "alex:alex")))
154+ ];
155+ buildable = true;
156+ mainPath = [ "test.hs" ];
157+ };
158+ };
159+ };
160+ } // rec { src = (pkgs.lib).mkDefault ../.; }
materialized/bootstrap/ghc884/alex/default.nixnew file+65
@@ -0,0 +1,65 @@
1+{
2+ pkgs = hackage:
3+ {
4+ packages = {
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;
17+ };
18+ compiler = {
19+ version = "8.8.4";
20+ nix-name = "ghc884";
21+ packages = {
22+ "array" = "0.5.4.0";
23+ "bytestring" = "0.10.10.1";
24+ "filepath" = "1.4.2.1";
25+ "ghc-prim" = "0.5.3";
26+ "base" = "4.13.0.0";
27+ "time" = "1.9.3";
28+ "directory" = "1.3.6.0";
29+ "rts" = "1.0";
30+ "deepseq" = "1.4.4.0";
31+ "unix" = "2.7.2.2";
32+ "integer-gmp" = "1.0.2.0";
33+ "containers" = "0.6.2.1";
34+ };
35+ };
36+ };
37+ extras = hackage:
38+ { packages = { alex = ./.plan.nix/alex.nix; }; };
39+ modules = [
40+ ({ lib, ... }:
41+ {
42+ packages = {
43+ "alex" = { flags = { "small_base" = lib.mkOverride 900 true; }; };
44+ };
45+ })
46+ ({ lib, ... }:
47+ {
48+ packages = {
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;
62+ };
63+ })
64+ ];
65+ }
materialized/bootstrap/ghc884/happy-1.19.12/.plan.nix/happy.nixnew file+200
@@ -0,0 +1,200 @@
1+{ system
2+ , compiler
3+ , flags
4+ , pkgs
5+ , hsPkgs
6+ , pkgconfPkgs
7+ , errorHandler
8+ , config
9+ , ... }:
10+ {
11+ flags = { small_base = true; };
12+ package = {
13+ specVersion = "1.8";
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/";
20+ url = "";
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";
24+ isLocal = true;
25+ detailLevel = "FullDetails";
26+ licenseFiles = [ "LICENSE" ];
27+ dataDir = "data/";
28+ dataFiles = [
29+ "HappyTemplate"
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"
37+ "HappyTemplate-ghc"
38+ "GLR_Base"
39+ "GLR_Lib"
40+ "GLR_Lib-ghc"
41+ "GLR_Lib-ghc-debug"
42+ ];
43+ extraSrcFiles = [
44+ "ANNOUNCE"
45+ "CHANGES"
46+ "Makefile"
47+ "README.md"
48+ "TODO"
49+ "doc/Makefile"
50+ "doc/aclocal.m4"
51+ "doc/config.mk.in"
52+ "doc/configure.ac"
53+ "doc/docbook-xml.mk"
54+ "doc/fptools.css"
55+ "doc/happy.1.in"
56+ "doc/happy.xml"
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"
111+ "examples/README"
112+ "examples/Calc.ly"
113+ "examples/DavesExample.ly"
114+ "examples/ErrorTest.ly"
115+ "examples/ErlParser.ly"
116+ "examples/SimonsExample.ly"
117+ "examples/LexerTest.ly"
118+ "happy.spec"
119+ "src/ARRAY-NOTES"
120+ "tests/AttrGrammar001.y"
121+ "tests/AttrGrammar002.y"
122+ "tests/Makefile"
123+ "tests/Partial.ly"
124+ "tests/Test.ly"
125+ "tests/TestMulti.ly"
126+ "tests/TestPrecedence.ly"
127+ "tests/bogus-token.y"
128+ "tests/bug001.ly"
129+ "tests/bug002.y"
130+ "tests/error001.stderr"
131+ "tests/error001.stdout"
132+ "tests/error001.y"
133+ "tests/monad001.y"
134+ "tests/monad002.ly"
135+ "tests/monaderror.y"
136+ "tests/precedence001.ly"
137+ "tests/precedence002.y"
138+ "tests/test_rules.y"
139+ "tests/issue91.y"
140+ "tests/issue93.y"
141+ "tests/issue94.y"
142+ "tests/issue95.y"
143+ "tests/monaderror-explist.y"
144+ "tests/typeclass_monad001.y"
145+ "tests/typeclass_monad002.ly"
146+ "tests/typeclass_monad_lexer.y"
147+ "tests/rank2.y"
148+ ];
149+ extraTmpFiles = [];
150+ extraDocFiles = [];
151+ };
152+ components = {
153+ exes = {
154+ "happy" = {
155+ depends = [
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"))
160+ ];
161+ buildable = true;
162+ modules = [
163+ "Paths_happy"
164+ "AbsSyn"
165+ "First"
166+ "GenUtils"
167+ "Grammar"
168+ "Info"
169+ "LALR"
170+ "Lexer"
171+ "ParseMonad"
172+ "Parser"
173+ "ProduceCode"
174+ "ProduceGLRCode"
175+ "NameSet"
176+ "Target"
177+ "AttrGrammar"
178+ "AttrGrammarParser"
179+ "ParamRules"
180+ "PrettyGrammar"
181+ ];
182+ hsSourceDirs = [ "src" ];
183+ mainPath = [ "Main.lhs" ];
184+ };
185+ };
186+ tests = {
187+ "tests" = {
188+ depends = [
189+ (hsPkgs."base" or (errorHandler.buildDepError "base"))
190+ (hsPkgs."process" or (errorHandler.buildDepError "process"))
191+ ];
192+ build-tools = [
193+ (hsPkgs.buildPackages.happy.components.exes.happy or (pkgs.buildPackages.happy or (errorHandler.buildToolDepError "happy:happy")))
194+ ];
195+ buildable = true;
196+ mainPath = [ "test.hs" ];
197+ };
198+ };
199+ };
200+ } // rec { src = (pkgs.lib).mkDefault ../.; }
materialized/bootstrap/ghc884/happy-1.19.12/default.nixnew file+56
@@ -0,0 +1,56 @@
1+{
2+ pkgs = hackage:
3+ {
4+ packages = {
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;
14+ };
15+ compiler = {
16+ version = "8.8.4";
17+ nix-name = "ghc884";
18+ packages = {
19+ "array" = "0.5.4.0";
20+ "mtl" = "2.2.2";
21+ "ghc-prim" = "0.5.3";
22+ "base" = "4.13.0.0";
23+ "rts" = "1.0";
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";
28+ };
29+ };
30+ };
31+ extras = hackage:
32+ { packages = { happy = ./.plan.nix/happy.nix; }; };
33+ modules = [
34+ ({ lib, ... }:
35+ {
36+ packages = {
37+ "happy" = { flags = { "small_base" = lib.mkOverride 900 true; }; };
38+ };
39+ })
40+ ({ lib, ... }:
41+ {
42+ packages = {
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;
53+ };
54+ })
55+ ];
56+ }
materialized/bootstrap/ghc884/hscolour/.plan.nix/hscolour.nixnew file+70
@@ -0,0 +1,70 @@
1+{ system
2+ , compiler
3+ , flags
4+ , pkgs
5+ , hsPkgs
6+ , pkgconfPkgs
7+ , errorHandler
8+ , config
9+ , ... }:
10+ {
11+ flags = {};
12+ package = {
13+ specVersion = "1.6";
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/";
20+ url = "";
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";
24+ isLocal = true;
25+ detailLevel = "FullDetails";
26+ licenseFiles = [ "LICENCE-LGPL" ];
27+ dataDir = ".";
28+ dataFiles = [ "hscolour.css" "data/rgb24-example-.hscolour" ];
29+ extraSrcFiles = [];
30+ extraTmpFiles = [];
31+ extraDocFiles = [];
32+ };
33+ components = {
34+ "library" = {
35+ depends = [
36+ (hsPkgs."base" or (errorHandler.buildDepError "base"))
37+ (hsPkgs."containers" or (errorHandler.buildDepError "containers"))
38+ ];
39+ buildable = true;
40+ modules = [
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"
57+ ];
58+ };
59+ exes = {
60+ "HsColour" = {
61+ depends = [
62+ (hsPkgs."base" or (errorHandler.buildDepError "base"))
63+ (hsPkgs."containers" or (errorHandler.buildDepError "containers"))
64+ ];
65+ buildable = true;
66+ mainPath = [ "HsColour.hs" ];
67+ };
68+ };
69+ };
70+ } // rec { src = (pkgs.lib).mkDefault ../.; }
materialized/bootstrap/ghc884/hscolour/default.nixnew file+47
@@ -0,0 +1,47 @@
1+{
2+ pkgs = hackage:
3+ {
4+ packages = {
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;
12+ };
13+ compiler = {
14+ version = "8.8.4";
15+ nix-name = "ghc884";
16+ packages = {
17+ "array" = "0.5.4.0";
18+ "ghc-prim" = "0.5.3";
19+ "base" = "4.13.0.0";
20+ "rts" = "1.0";
21+ "deepseq" = "1.4.4.0";
22+ "integer-gmp" = "1.0.2.0";
23+ "containers" = "0.6.2.1";
24+ };
25+ };
26+ };
27+ extras = hackage:
28+ { packages = { hscolour = ./.plan.nix/hscolour.nix; }; };
29+ modules = [
30+ ({ lib, ... }:
31+ { packages = { "hscolour" = { flags = {}; }; }; })
32+ ({ lib, ... }:
33+ {
34+ packages = {
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;
44+ };
45+ })
46+ ];
47+ }
materialized/dummy-ghc/aarch64-unknown-linux-gnu-aarch64-unknown-linux-gnu-ghc-8.10.3-x86_64-linux/ghc-pkg/dump-globalnew file+1443
@@ -0,0 +1,1443 @@
1+name: Cabal
2+version: 3.2.1.0
3+visibility: public
4+id: Cabal-3.2.1.0
5+key: Cabal-3.2.1.0
6+license: BSD-3-Clause
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
12+description:
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
19+exposed: True
20+exposed-modules:
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
156+hidden-modules:
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
168+import-dirs:
169+library-dirs:
170+dynamic-library-dirs:
171+data-dir:
172+hs-libraries: HSCabal-3.2.1.0
173+depends:
174+ array-0.5.4.0 base-4.14.1.0 binary-0.8.8.0 bytestring-0.10.12.0
175+ containers-0.6.2.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.9.0 text-1.2.4.1 time-1.9.3 transformers-0.5.6.2
178+ unix-2.7.2.2
179+haddock-interfaces:
180+haddock-html:
181+---
182+name: array
183+version: 0.5.4.0
184+visibility: public
185+id: array-0.5.4.0
186+key: array-0.5.4.0
187+license: BSD-3-Clause
188+maintainer: libraries@haskell.org
189+synopsis: Mutable and immutable arrays
190+description:
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
197+exposed: True
198+exposed-modules:
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
204+import-dirs:
205+library-dirs:
206+dynamic-library-dirs:
207+data-dir:
208+hs-libraries: HSarray-0.5.4.0
209+depends: base-4.14.1.0
210+haddock-interfaces:
211+haddock-html:
212+---
213+name: base
214+version: 4.14.1.0
215+visibility: public
216+id: base-4.14.1.0
217+key: base-4.14.1.0
218+license: BSD-3-Clause
219+maintainer: libraries@haskell.org
220+synopsis: Basic libraries
221+description:
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.
225+category: Prelude
226+exposed: True
227+exposed-modules:
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
283+hidden-modules:
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
297+import-dirs:
298+library-dirs:
299+dynamic-library-dirs:
300+data-dir:
301+hs-libraries: HSbase-4.14.1.0
302+include-dirs:
303+includes: HsBase.h
304+depends: ghc-prim-0.6.1 integer-gmp-1.0.3.0 rts
305+haddock-interfaces:
306+haddock-html:
307+---
308+name: binary
309+version: 0.8.8.0
310+visibility: public
311+id: binary-0.8.8.0
312+key: binary-0.8.8.0
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
318+synopsis:
319+ Binary serialisation for Haskell values using lazy ByteStrings
320+description:
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
328+ scenarios.
329+category: Data, Parsing
330+exposed: True
331+exposed-modules:
332+ Data.Binary Data.Binary.Builder Data.Binary.Get
333+ Data.Binary.Get.Internal Data.Binary.Put
334+hidden-modules:
335+ Data.Binary.Class Data.Binary.Internal Data.Binary.Generic
336+ Data.Binary.FloatCast
337+import-dirs:
338+library-dirs:
339+dynamic-library-dirs:
340+data-dir:
341+hs-libraries: HSbinary-0.8.8.0
342+depends:
343+ array-0.5.4.0 base-4.14.1.0 bytestring-0.10.12.0 containers-0.6.2.1
344+haddock-interfaces:
345+haddock-html:
346+---
347+name: bytestring
348+version: 0.10.12.0
349+visibility: public
350+id: bytestring-0.10.12.0
351+key: bytestring-0.10.12.0
352+license: BSD-3-Clause
353+copyright:
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>
360+author:
361+ Don Stewart,
362+ Duncan Coutts
363+homepage: https://github.com/haskell/bytestring
364+synopsis:
365+ Fast, compact, strict and lazy byte strings with a list interface
366+description:
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
394+category: Data
395+exposed: True
396+exposed-modules:
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
405+hidden-modules:
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
411+import-dirs:
412+library-dirs:
413+dynamic-library-dirs:
414+data-dir:
415+hs-libraries: HSbytestring-0.10.12.0
416+include-dirs:
417+includes: fpstring.h
418+depends:
419+ base-4.14.1.0 deepseq-1.4.4.0 ghc-prim-0.6.1 integer-gmp-1.0.3.0
420+haddock-interfaces:
421+haddock-html:
422+---
423+name: containers
424+version: 0.6.2.1
425+visibility: public
426+id: containers-0.6.2.1
427+key: containers-0.6.2.1
428+license: BSD-3-Clause
429+maintainer: libraries@haskell.org
430+synopsis: Assorted concrete container types
431+description:
432+ This package contains efficient general-purpose implementations
433+ of various immutable container types including sets, maps, sequences,
434+ trees, and graphs.
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
441+exposed: True
442+exposed-modules:
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
454+hidden-modules:
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
462+import-dirs:
463+library-dirs:
464+dynamic-library-dirs:
465+data-dir:
466+hs-libraries: HScontainers-0.6.2.1
467+depends: array-0.5.4.0 base-4.14.1.0 deepseq-1.4.4.0
468+haddock-interfaces:
469+haddock-html:
470+---
471+name: deepseq
472+version: 1.4.4.0
473+visibility: public
474+id: deepseq-1.4.4.0
475+key: deepseq-1.4.4.0
476+license: BSD-3-Clause
477+maintainer: libraries@haskell.org
478+synopsis: Deep evaluation of data structures
479+description:
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
485+ wrong thread.
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
491+ details.
492+category: Control
493+exposed: True
494+exposed-modules: Control.DeepSeq
495+hidden-modules: Control.DeepSeq.BackDoor
496+import-dirs:
497+library-dirs:
498+dynamic-library-dirs:
499+data-dir:
500+hs-libraries: HSdeepseq-1.4.4.0
501+depends: array-0.5.4.0 base-4.14.1.0
502+haddock-interfaces:
503+haddock-html:
504+---
505+name: directory
506+version: 1.3.6.0
507+visibility: public
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
513+description:
514+ This library provides a basic set of operations for manipulating files and
515+ directories in a portable way.
516+category: System
517+exposed: True
518+exposed-modules:
519+ System.Directory System.Directory.Internal
520+ System.Directory.Internal.Prelude
521+hidden-modules:
522+ System.Directory.Internal.C_utimensat
523+ System.Directory.Internal.Common System.Directory.Internal.Config
524+ System.Directory.Internal.Posix System.Directory.Internal.Windows
525+import-dirs:
526+library-dirs:
527+dynamic-library-dirs:
528+data-dir:
529+hs-libraries: HSdirectory-1.3.6.0
530+depends:
531+ base-4.14.1.0 filepath-1.4.2.1 time-1.9.3 unix-2.7.2.2
532+haddock-interfaces:
533+haddock-html:
534+---
535+name: exceptions
536+version: 0.10.4
537+visibility: public
538+id: exceptions-0.10.4
539+key: exceptions-0.10.4
540+license: BSD-3-Clause
541+copyright:
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
551+exposed: True
552+exposed-modules: Control.Monad.Catch Control.Monad.Catch.Pure
553+import-dirs:
554+library-dirs:
555+dynamic-library-dirs:
556+data-dir:
557+hs-libraries: HSexceptions-0.10.4
558+depends:
559+ base-4.14.1.0 mtl-2.2.2 stm-2.5.0.0 template-haskell-2.16.0.0
560+ transformers-0.5.6.2
561+haddock-interfaces:
562+haddock-html:
563+---
564+name: filepath
565+version: 1.4.2.1
566+visibility: public
567+id: filepath-1.4.2.1
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.
575+description:
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).
581+category: System
582+exposed: True
583+exposed-modules:
584+ System.FilePath System.FilePath.Posix System.FilePath.Windows
585+import-dirs:
586+library-dirs:
587+dynamic-library-dirs:
588+data-dir:
589+hs-libraries: HSfilepath-1.4.2.1
590+depends: base-4.14.1.0
591+haddock-interfaces:
592+haddock-html:
593+---
594+name: ghc-boot
595+version: 8.10.3
596+visibility: public
597+id: ghc-boot-8.10.3
598+key: ghc-boot-8.10.3
599+license: BSD-3-Clause
600+maintainer: ghc-devs@haskell.org
601+synopsis: Shared functionality between GHC and its boot libraries
602+description:
603+ This library is shared between GHC, ghc-pkg, and other boot
604+ libraries.
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.
613+category: GHC
614+exposed: True
615+exposed-modules:
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
619+import-dirs:
620+library-dirs:
621+dynamic-library-dirs:
622+data-dir:
623+hs-libraries: HSghc-boot-8.10.3
624+depends:
625+ base-4.14.1.0 binary-0.8.8.0 bytestring-0.10.12.0
626+ containers-0.6.2.1 directory-1.3.6.0 filepath-1.4.2.1
627+ ghc-boot-th-8.10.3
628+haddock-interfaces:
629+haddock-html:
630+---
631+name: ghc-boot-th
632+version: 8.10.3
633+visibility: public
634+id: ghc-boot-th-8.10.3
635+key: ghc-boot-th-8.10.3
636+license: BSD-3-Clause
637+maintainer: ghc-devs@haskell.org
638+synopsis:
639+ Shared functionality between GHC and the @template-haskell@
640+ library
641+description:
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.
647+category: GHC
648+exposed: True
649+exposed-modules:
650+ GHC.ForeignSrcLang.Type GHC.LanguageExtensions.Type GHC.Lexeme
651+import-dirs:
652+library-dirs:
653+dynamic-library-dirs:
654+data-dir:
655+hs-libraries: HSghc-boot-th-8.10.3
656+depends: base-4.14.1.0
657+haddock-interfaces:
658+haddock-html:
659+---
660+name: ghc-compact
661+version: 0.1.0.0
662+visibility: public
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
668+description:
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
675+ released).
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.
679+category: Data
680+exposed: True
681+exposed-modules: GHC.Compact GHC.Compact.Serialized
682+import-dirs:
683+library-dirs:
684+dynamic-library-dirs:
685+data-dir:
686+hs-libraries: HSghc-compact-0.1.0.0
687+depends: base-4.14.1.0 bytestring-0.10.12.0 ghc-prim-0.6.1
688+haddock-interfaces:
689+haddock-html:
690+---
691+name: ghc-heap
692+version: 8.10.3
693+visibility: public
694+id: ghc-heap-8.10.3
695+key: ghc-heap-8.10.3
696+license: BSD-3-Clause
697+maintainer: libraries@haskell.org
698+synopsis: Functions for walking GHC's heap
699+description:
700+ This package provides functions for walking the GHC heap data structures
701+ and retrieving information about those data structures.
702+category: GHC
703+exposed: True
704+exposed-modules:
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
708+ GHC.Exts.Heap.Utils
709+import-dirs:
710+library-dirs:
711+dynamic-library-dirs:
712+data-dir:
713+hs-libraries: HSghc-heap-8.10.3
714+depends: base-4.14.1.0 ghc-prim-0.6.1 rts
715+haddock-interfaces:
716+haddock-html:
717+---
718+name: ghc-prim
719+version: 0.6.1
720+visibility: public
721+id: ghc-prim-0.6.1
722+key: ghc-prim-0.6.1
723+license: BSD-3-Clause
724+maintainer: libraries@haskell.org
725+synopsis: GHC primitives
726+description:
727+ This package contains the primitive types and operations supplied by GHC.
728+category: GHC
729+exposed: True
730+exposed-modules:
731+ GHC.CString GHC.Classes GHC.Debug GHC.IntWord64 GHC.Magic
732+ GHC.Prim.Ext GHC.PrimopWrappers GHC.Tuple GHC.Types GHC.Prim
733+import-dirs:
734+library-dirs:
735+dynamic-library-dirs:
736+data-dir:
737+hs-libraries: HSghc-prim-0.6.1
738+extra-libraries: gcc c m
739+depends: rts
740+haddock-interfaces:
741+haddock-html:
742+---
743+name: ghci
744+version: 8.10.3
745+visibility: public
746+id: ghci-8.10.3
747+key: ghci-8.10.3
748+license: BSD-3-Clause
749+maintainer: ghc-devs@haskell.org
750+synopsis: The library supporting GHC's interactive interpreter
751+description:
752+ This library offers interfaces which mediate interactions between the
753+ @ghci@ interactive shell and @iserv@, GHC's out-of-process interpreter
754+ backend.
755+category: GHC
756+exposed: True
757+exposed-modules:
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
762+import-dirs:
763+library-dirs:
764+dynamic-library-dirs:
765+data-dir:
766+hs-libraries: HSghci-8.10.3
767+include-dirs:
768+depends:
769+ array-0.5.4.0 base-4.14.1.0 binary-0.8.8.0 bytestring-0.10.12.0
770+ containers-0.6.2.1 deepseq-1.4.4.0 filepath-1.4.2.1 ghc-boot-8.10.3
771+ ghc-boot-th-8.10.3 ghc-heap-8.10.3 template-haskell-2.16.0.0
772+ transformers-0.5.6.2 unix-2.7.2.2
773+haddock-interfaces:
774+haddock-html:
775+---
776+name: haskeline
777+version: 0.8.0.1
778+visibility: public
779+id: haskeline-0.8.0.1
780+key: haskeline-0.8.0.1
781+license: BSD-3-Clause
782+copyright: (c) Judah Jacobson
783+maintainer: Judah Jacobson <judah.jacobson@gmail.com>
784+author: Judah Jacobson
785+stability: Stable
786+homepage: https://github.com/judah/haskeline
787+synopsis:
788+ A command-line interface for user input, written in Haskell.
789+description:
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
793+ Haskell programs.
794+ Haskeline runs both on POSIX-compatible systems and on Windows.
795+category: User Interfaces
796+exposed: True
797+exposed-modules:
798+ System.Console.Haskeline System.Console.Haskeline.Completion
799+ System.Console.Haskeline.History System.Console.Haskeline.IO
800+ System.Console.Haskeline.Internal
801+hidden-modules:
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
817+import-dirs:
818+library-dirs:
819+dynamic-library-dirs:
820+data-dir:
821+hs-libraries: HShaskeline-0.8.0.1
822+depends:
823+ base-4.14.1.0 bytestring-0.10.12.0 containers-0.6.2.1
824+ directory-1.3.6.0 exceptions-0.10.4 filepath-1.4.2.1
825+ process-1.6.9.0 stm-2.5.0.0 transformers-0.5.6.2 unix-2.7.2.2
826+haddock-interfaces:
827+haddock-html:
828+---
829+name: hpc
830+version: 0.6.1.0
831+visibility: public
832+id: hpc-0.6.1.0
833+key: hpc-0.6.1.0
834+license: BSD-3-Clause
835+maintainer: ghc-devs@haskell.org
836+author: Andy Gill
837+synopsis: Code Coverage Library for Haskell
838+description:
839+ This package provides the code coverage library for Haskell.
840+ See <http://www.haskell.org/haskellwiki/Haskell_program_coverage> for more
841+ information.
842+category: Control
843+exposed: True
844+exposed-modules:
845+ Trace.Hpc.Mix Trace.Hpc.Reflect Trace.Hpc.Tix Trace.Hpc.Util
846+import-dirs:
847+library-dirs:
848+dynamic-library-dirs:
849+data-dir:
850+hs-libraries: HShpc-0.6.1.0
851+depends:
852+ base-4.14.1.0 containers-0.6.2.1 deepseq-1.4.4.0 directory-1.3.6.0
853+ filepath-1.4.2.1 time-1.9.3
854+haddock-interfaces:
855+haddock-html:
856+---
857+name: integer-gmp
858+version: 1.0.3.0
859+visibility: public
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
866+description:
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
874+exposed: True
875+exposed-modules:
876+ GHC.Integer GHC.Integer.GMP.Internals GHC.Integer.Logarithms
877+ GHC.Integer.Logarithms.Internals
878+hidden-modules: GHC.Integer.Type
879+import-dirs:
880+library-dirs:
881+dynamic-library-dirs:
882+data-dir:
883+hs-libraries: HSinteger-gmp-1.0.3.0
884+extra-libraries: gmp
885+include-dirs:
886+depends: ghc-prim-0.6.1
887+haddock-interfaces:
888+haddock-html:
889+---
890+name: libiserv
891+version: 8.10.3
892+visibility: public
893+id: libiserv-8.10.3
894+key: libiserv-8.10.3
895+license: BSD-3-Clause
896+copyright: XXX
897+maintainer: XXX
898+author: XXX
899+synopsis: Provides shared functionality between iserv and iserv-proxy
900+category: Development
901+exposed: True
902+exposed-modules: GHCi.Utils Lib
903+import-dirs:
904+library-dirs:
905+dynamic-library-dirs:
906+data-dir:
907+hs-libraries: HSlibiserv-8.10.3
908+depends:
909+ base-4.14.1.0 binary-0.8.8.0 bytestring-0.10.12.0
910+ containers-0.6.2.1 deepseq-1.4.4.0 ghci-8.10.3 unix-2.7.2.2
911+haddock-interfaces:
912+haddock-html:
913+---
914+name: mtl
915+version: 2.2.2
916+visibility: public
917+id: mtl-2.2.2
918+key: mtl-2.2.2
919+license: BSD-3-Clause
920+maintainer: Edward Kmett <ekmett@gmail.com>
921+author: Andy Gill
922+homepage: http://github.com/haskell/mtl
923+synopsis: Monad classes, using functional dependencies
924+description:
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>).
930+category: Control
931+exposed: True
932+exposed-modules:
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
943+import-dirs:
944+library-dirs:
945+dynamic-library-dirs:
946+data-dir:
947+hs-libraries: HSmtl-2.2.2
948+depends: base-4.14.1.0 transformers-0.5.6.2
949+haddock-interfaces:
950+haddock-html:
951+---
952+name: parsec
953+version: 3.1.14.0
954+visibility: public
955+id: parsec-3.1.14.0
956+key: parsec-3.1.14.0
957+license: BSD-3-Clause
958+maintainer: Herbert Valerio Riedel <hvr@gnu.org>
959+author:
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
963+description:
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
969+ input stream type.
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
974+ the future.
975+category: Parsing
976+exposed: True
977+exposed-modules:
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
992+import-dirs:
993+library-dirs:
994+dynamic-library-dirs:
995+data-dir:
996+hs-libraries: HSparsec-3.1.14.0
997+depends:
998+ base-4.14.1.0 bytestring-0.10.12.0 mtl-2.2.2 text-1.2.4.1
999+haddock-interfaces:
1000+haddock-html:
1001+---
1002+name: pretty
1003+version: 1.1.3.6
1004+visibility: public
1005+id: pretty-1.1.3.6
1006+key: pretty-1.1.3.6
1007+license: BSD-3-Clause
1008+maintainer: David Terei <code@davidterei.com>
1009+stability: Stable
1010+homepage: http://github.com/haskell/pretty
1011+synopsis: Pretty-printing library
1012+description:
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
1016+ tools.
1017+ This library was originally designed by John Hughes's and has since
1018+ been heavily modified by Simon Peyton Jones.
1019+category: Text
1020+exposed: True
1021+exposed-modules:
1022+ Text.PrettyPrint Text.PrettyPrint.Annotated
1023+ Text.PrettyPrint.Annotated.HughesPJ
1024+ Text.PrettyPrint.Annotated.HughesPJClass Text.PrettyPrint.HughesPJ
1025+ Text.PrettyPrint.HughesPJClass
1026+import-dirs:
1027+library-dirs:
1028+dynamic-library-dirs:
1029+data-dir:
1030+hs-libraries: HSpretty-1.1.3.6
1031+depends: base-4.14.1.0 deepseq-1.4.4.0 ghc-prim-0.6.1
1032+haddock-interfaces:
1033+haddock-html:
1034+---
1035+name: process
1036+version: 1.6.9.0
1037+visibility: public
1038+id: process-1.6.9.0
1039+key: process-1.6.9.0
1040+license: BSD-3-Clause
1041+maintainer: libraries@haskell.org
1042+synopsis: Process libraries
1043+description:
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>.
1050+category: System
1051+exposed: True
1052+exposed-modules: System.Cmd System.Process System.Process.Internals
1053+hidden-modules: System.Process.Common System.Process.Posix
1054+import-dirs:
1055+library-dirs:
1056+dynamic-library-dirs:
1057+data-dir:
1058+hs-libraries: HSprocess-1.6.9.0
1059+include-dirs:
1060+includes: runProcess.h
1061+depends:
1062+ base-4.14.1.0 deepseq-1.4.4.0 directory-1.3.6.0 filepath-1.4.2.1
1063+ unix-2.7.2.2
1064+haddock-interfaces:
1065+haddock-html:
1066+---
1067+name: stm
1068+version: 2.5.0.0
1069+visibility: public
1070+id: stm-2.5.0.0
1071+key: stm-2.5.0.0
1072+license: BSD-3-Clause
1073+maintainer: libraries@haskell.org
1074+homepage: https://wiki.haskell.org/Software_transactional_memory
1075+synopsis: Software Transactional Memory
1076+description:
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
1084+ 'MVar's.
1085+category: Concurrency
1086+exposed: True
1087+exposed-modules:
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
1092+ Control.Monad.STM
1093+hidden-modules: Control.Sequential.STM
1094+import-dirs:
1095+library-dirs:
1096+dynamic-library-dirs:
1097+data-dir:
1098+hs-libraries: HSstm-2.5.0.0
1099+depends: array-0.5.4.0 base-4.14.1.0
1100+haddock-interfaces:
1101+haddock-html:
1102+---
1103+name: template-haskell
1104+version: 2.16.0.0
1105+visibility: public
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
1111+description:
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
1115+ information.
1116+category: Template Haskell
1117+exposed: True
1118+exposed-modules:
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
1124+import-dirs:
1125+library-dirs:
1126+dynamic-library-dirs:
1127+data-dir:
1128+hs-libraries: HStemplate-haskell-2.16.0.0
1129+depends:
1130+ base-4.14.1.0 ghc-boot-th-8.10.3 ghc-prim-0.6.1 pretty-1.1.3.6
1131+haddock-interfaces:
1132+haddock-html:
1133+---
1134+name: text
1135+version: 1.2.4.1
1136+visibility: public
1137+id: text-1.2.4.1
1138+key: text-1.2.4.1
1139+license: BSD-2-Clause
1140+copyright: 2009-2011 Bryan O'Sullivan, 2008-2009 Tom Harper
1141+maintainer:
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.
1146+description:
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
1163+ == ICU Support
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
1179+exposed: True
1180+exposed-modules:
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
1205+import-dirs:
1206+library-dirs:
1207+dynamic-library-dirs:
1208+data-dir:
1209+hs-libraries: HStext-1.2.4.1
1210+depends:
1211+ array-0.5.4.0 base-4.14.1.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
1214+haddock-interfaces:
1215+haddock-html:
1216+---
1217+name: time
1218+version: 1.9.3
1219+visibility: public
1220+id: time-1.9.3
1221+key: time-1.9.3
1222+license: BSD-3-Clause
1223+maintainer: <ashley@semantic.org>
1224+author: Ashley Yakeley
1225+stability: stable
1226+homepage: https://github.com/haskell/time
1227+synopsis: A time library
1228+description: Time, clocks and calendars
1229+category: Time
1230+exposed: True
1231+exposed-modules:
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
1238+hidden-modules:
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
1258+import-dirs:
1259+library-dirs:
1260+dynamic-library-dirs:
1261+data-dir:
1262+hs-libraries: HStime-1.9.3
1263+include-dirs:
1264+depends: base-4.14.1.0 deepseq-1.4.4.0
1265+haddock-interfaces:
1266+haddock-html:
1267+---
1268+name: transformers
1269+version: 0.5.6.2
1270+visibility: public
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
1277+description:
1278+ A portable library of functor and monad transformers, inspired by
1279+ the paper
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
1288+ transformers.
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.
1295+category: Control
1296+exposed: True
1297+exposed-modules:
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
1311+import-dirs:
1312+library-dirs:
1313+dynamic-library-dirs:
1314+data-dir:
1315+hs-libraries: HStransformers-0.5.6.2
1316+depends: base-4.14.1.0
1317+haddock-interfaces:
1318+haddock-html:
1319+---
1320+name: unix
1321+version: 2.7.2.2
1322+visibility: public
1323+id: unix-2.7.2.2
1324+key: unix-2.7.2.2
1325+license: BSD-3-Clause
1326+maintainer: libraries@haskell.org
1327+homepage: https://github.com/haskell/unix
1328+synopsis: POSIX functionality
1329+description:
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.
1336+category: System
1337+exposed: True
1338+exposed-modules:
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
1355+hidden-modules:
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
1359+import-dirs:
1360+library-dirs:
1361+dynamic-library-dirs:
1362+data-dir:
1363+hs-libraries: HSunix-2.7.2.2
1364+extra-libraries: rt util dl pthread
1365+include-dirs:
1366+includes: HsUnix.h execvpe.h
1367+depends: base-4.14.1.0 bytestring-0.10.12.0 time-1.9.3
1368+haddock-interfaces:
1369+haddock-html:
1370+---
1371+name: rts
1372+version: 1.0
1373+visibility: public
1374+id: rts
1375+key: rts
1376+license: BSD-3-Clause
1377+maintainer: glasgow-haskell-users@haskell.org
1378+exposed: True
1379+library-dirs:
1380+hs-libraries: HSrts
1381+extra-libraries: m rt dl ffi numa pthread
1382+include-dirs:
1383+includes: Stg.h
1384+ld-options:
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.3-x86_64-linux/ghc-pkg/versionnew file+1
@@ -0,0 +1 @@
1+GHC package manager version 8.10.3
materialized/dummy-ghc/aarch64-unknown-linux-gnu-aarch64-unknown-linux-gnu-ghc-8.10.3-x86_64-linux/ghc/infonew file+69
@@ -0,0 +1,69 @@
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")
14+ ,("ar flags","q")
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","ArchARM64")
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 llc command","llc")
34+ ,("LLVM opt command","opt")
35+ ,("LLVM clang command","clang")
36+ ,("integer library","integer-gmp")
37+ ,("Use interpreter","YES")
38+ ,("Use native code generator","NO")
39+ ,("Support SMP","YES")
40+ ,("RTS ways","l debug thr thr_debug thr_l thr_p thr_debug_p debug_p")
41+ ,("Tables next to code","YES")
42+ ,("Leading underscore","NO")
43+ ,("Use LibFFI","YES")
44+ ,("Use Threads","YES")
45+ ,("Use Debugging","NO")
46+ ,("RTS expects libdw","NO")
47+ ,("Project version","8.10.3")
48+ ,("Project Git commit id","6db6db46af6f8e3e24d7d16b0b43a984a9a14677")
49+ ,("Booter version","8.6.5")
50+ ,("Stage","1")
51+ ,("Build platform","x86_64-unknown-linux")
52+ ,("Host platform","x86_64-unknown-linux")
53+ ,("Target platform","aarch64-unknown-linux")
54+ ,("Have interpreter","YES")
55+ ,("Object splitting supported","NO")
56+ ,("Have native code generator","NO")
57+ ,("Support dynamic-too","YES")
58+ ,("Support parallel --make","YES")
59+ ,("Support reexported-modules","YES")
60+ ,("Support thinning and renaming package flags","YES")
61+ ,("Support Backpack","YES")
62+ ,("Requires unified installed package IDs","YES")
63+ ,("Uses package keys","YES")
64+ ,("Uses unit IDs","YES")
65+ ,("Dynamic by default","NO")
66+ ,("GHC Dynamic","NO")
67+ ,("GHC Profiled","NO")
68+ ,("Debug on","NO")
69+ ]
materialized/dummy-ghc/aarch64-unknown-linux-gnu-aarch64-unknown-linux-gnu-ghc-8.10.3-x86_64-linux/ghc/numeric-versionnew file+1
@@ -0,0 +1 @@
1+8.10.3
materialized/dummy-ghc/aarch64-unknown-linux-gnu-aarch64-unknown-linux-gnu-ghc-8.10.3-x86_64-linux/ghc/supported-languagesnew file+255
@@ -0,0 +1,255 @@
1+Haskell98
2+Haskell2010
3+Unsafe
4+Trustworthy
5+Safe
6+AllowAmbiguousTypes
7+NoAllowAmbiguousTypes
8+AlternativeLayoutRule
9+NoAlternativeLayoutRule
10+AlternativeLayoutRuleTransitional
11+NoAlternativeLayoutRuleTransitional
12+Arrows
13+NoArrows
14+AutoDeriveTypeable
15+NoAutoDeriveTypeable
16+BangPatterns
17+NoBangPatterns
18+BinaryLiterals
19+NoBinaryLiterals
20+CApiFFI
21+NoCApiFFI
22+CPP
23+NoCPP
24+CUSKs
25+NoCUSKs
26+ConstrainedClassMethods
27+NoConstrainedClassMethods
28+ConstraintKinds
29+NoConstraintKinds
30+DataKinds
31+NoDataKinds
32+DatatypeContexts
33+NoDatatypeContexts
34+DefaultSignatures
35+NoDefaultSignatures
36+DeriveAnyClass
37+NoDeriveAnyClass
38+DeriveDataTypeable
39+NoDeriveDataTypeable
40+DeriveFoldable
41+NoDeriveFoldable
42+DeriveFunctor
43+NoDeriveFunctor
44+DeriveGeneric
45+NoDeriveGeneric
46+DeriveLift
47+NoDeriveLift
48+DeriveTraversable
49+NoDeriveTraversable
50+DerivingStrategies
51+NoDerivingStrategies
52+DerivingVia
53+NoDerivingVia
54+DisambiguateRecordFields
55+NoDisambiguateRecordFields
56+DoAndIfThenElse
57+NoDoAndIfThenElse
58+BlockArguments
59+NoBlockArguments
60+DoRec
61+NoDoRec
62+DuplicateRecordFields
63+NoDuplicateRecordFields
64+EmptyCase
65+NoEmptyCase
66+EmptyDataDecls
67+NoEmptyDataDecls
68+EmptyDataDeriving
69+NoEmptyDataDeriving
70+ExistentialQuantification
71+NoExistentialQuantification
72+ExplicitForAll
73+NoExplicitForAll
74+ExplicitNamespaces
75+NoExplicitNamespaces
76+ExtendedDefaultRules
77+NoExtendedDefaultRules
78+FlexibleContexts
79+NoFlexibleContexts
80+FlexibleInstances
81+NoFlexibleInstances
82+ForeignFunctionInterface
83+NoForeignFunctionInterface
84+FunctionalDependencies
85+NoFunctionalDependencies
86+GADTSyntax
87+NoGADTSyntax
88+GADTs
89+NoGADTs
90+GHCForeignImportPrim
91+NoGHCForeignImportPrim
92+GeneralizedNewtypeDeriving
93+NoGeneralizedNewtypeDeriving
94+GeneralisedNewtypeDeriving
95+NoGeneralisedNewtypeDeriving
96+ImplicitParams
97+NoImplicitParams
98+ImplicitPrelude
99+NoImplicitPrelude
100+ImportQualifiedPost
101+NoImportQualifiedPost
102+ImpredicativeTypes
103+NoImpredicativeTypes
104+IncoherentInstances
105+NoIncoherentInstances
106+TypeFamilyDependencies
107+NoTypeFamilyDependencies
108+InstanceSigs
109+NoInstanceSigs
110+ApplicativeDo
111+NoApplicativeDo
112+InterruptibleFFI
113+NoInterruptibleFFI
114+JavaScriptFFI
115+NoJavaScriptFFI
116+KindSignatures
117+NoKindSignatures
118+LambdaCase
119+NoLambdaCase
120+LiberalTypeSynonyms
121+NoLiberalTypeSynonyms
122+MagicHash
123+NoMagicHash
124+MonadComprehensions
125+NoMonadComprehensions
126+MonadFailDesugaring
127+NoMonadFailDesugaring
128+MonoLocalBinds
129+NoMonoLocalBinds
130+MonoPatBinds
131+NoMonoPatBinds
132+MonomorphismRestriction
133+NoMonomorphismRestriction
134+MultiParamTypeClasses
135+NoMultiParamTypeClasses
136+MultiWayIf
137+NoMultiWayIf
138+NumericUnderscores
139+NoNumericUnderscores
140+NPlusKPatterns
141+NoNPlusKPatterns
142+NamedFieldPuns
143+NoNamedFieldPuns
144+NamedWildCards
145+NoNamedWildCards
146+NegativeLiterals
147+NoNegativeLiterals
148+HexFloatLiterals
149+NoHexFloatLiterals
150+NondecreasingIndentation
151+NoNondecreasingIndentation
152+NullaryTypeClasses
153+NoNullaryTypeClasses
154+NumDecimals
155+NoNumDecimals
156+OverlappingInstances
157+NoOverlappingInstances
158+OverloadedLabels
159+NoOverloadedLabels
160+OverloadedLists
161+NoOverloadedLists
162+OverloadedStrings
163+NoOverloadedStrings
164+PackageImports
165+NoPackageImports
166+ParallelArrays
167+NoParallelArrays
168+ParallelListComp
169+NoParallelListComp
170+PartialTypeSignatures
171+NoPartialTypeSignatures
172+PatternGuards
173+NoPatternGuards
174+PatternSignatures
175+NoPatternSignatures
176+PatternSynonyms
177+NoPatternSynonyms
178+PolyKinds
179+NoPolyKinds
180+PolymorphicComponents
181+NoPolymorphicComponents
182+QuantifiedConstraints
183+NoQuantifiedConstraints
184+PostfixOperators
185+NoPostfixOperators
186+QuasiQuotes
187+NoQuasiQuotes
188+Rank2Types
189+NoRank2Types
190+RankNTypes
191+NoRankNTypes
192+RebindableSyntax
193+NoRebindableSyntax
194+RecordPuns
195+NoRecordPuns
196+RecordWildCards
197+NoRecordWildCards
198+RecursiveDo
199+NoRecursiveDo
200+RelaxedLayout
201+NoRelaxedLayout
202+RelaxedPolyRec
203+NoRelaxedPolyRec
204+RoleAnnotations
205+NoRoleAnnotations
206+ScopedTypeVariables
207+NoScopedTypeVariables
208+StandaloneDeriving
209+NoStandaloneDeriving
210+StarIsType
211+NoStarIsType
212+StaticPointers
213+NoStaticPointers
214+Strict
215+NoStrict
216+StrictData
217+NoStrictData
218+TemplateHaskell
219+NoTemplateHaskell
220+TemplateHaskellQuotes
221+NoTemplateHaskellQuotes
222+StandaloneKindSignatures
223+NoStandaloneKindSignatures
224+TraditionalRecordSyntax
225+NoTraditionalRecordSyntax
226+TransformListComp
227+NoTransformListComp
228+TupleSections
229+NoTupleSections
230+TypeApplications
231+NoTypeApplications
232+TypeInType
233+NoTypeInType
234+TypeFamilies
235+NoTypeFamilies
236+TypeOperators
237+NoTypeOperators
238+TypeSynonymInstances
239+NoTypeSynonymInstances
240+UnboxedTuples
241+NoUnboxedTuples
242+UnboxedSums
243+NoUnboxedSums
244+UndecidableInstances
245+NoUndecidableInstances
246+UndecidableSuperClasses
247+NoUndecidableSuperClasses
248+UnicodeSyntax
249+NoUnicodeSyntax
250+UnliftedFFITypes
251+NoUnliftedFFITypes
252+UnliftedNewtypes
253+NoUnliftedNewtypes
254+ViewPatterns
255+NoViewPatterns
materialized/dummy-ghc/aarch64-unknown-linux-gnu-aarch64-unknown-linux-gnu-ghc-8.10.3-x86_64-linux/ghc/versionnew file+1
@@ -0,0 +1 @@
1+The Glorious Glasgow Haskell Compilation System, version 8.10.3
materialized/dummy-ghc/aarch64-unknown-linux-gnu-aarch64-unknown-linux-gnu-ghc-8.10.4-x86_64-linux/ghc-pkg/dump-globalnew file+1443
@@ -0,0 +1,1443 @@
1+name: Cabal
2+version: 3.2.1.0
3+visibility: public
4+id: Cabal-3.2.1.0
5+key: Cabal-3.2.1.0
6+license: BSD-3-Clause
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
12+description:
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
19+exposed: True
20+exposed-modules:
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
156+hidden-modules:
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
168+import-dirs:
169+library-dirs:
170+dynamic-library-dirs:
171+data-dir:
172+hs-libraries: HSCabal-3.2.1.0
173+depends:
174+ array-0.5.4.0 base-4.14.1.0 binary-0.8.8.0 bytestring-0.10.12.0
175+ containers-0.6.2.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.9.0 text-1.2.4.1 time-1.9.3 transformers-0.5.6.2
178+ unix-2.7.2.2
179+haddock-interfaces:
180+haddock-html:
181+---
182+name: array
183+version: 0.5.4.0
184+visibility: public
185+id: array-0.5.4.0
186+key: array-0.5.4.0
187+license: BSD-3-Clause
188+maintainer: libraries@haskell.org
189+synopsis: Mutable and immutable arrays
190+description:
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
197+exposed: True
198+exposed-modules:
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
204+import-dirs:
205+library-dirs:
206+dynamic-library-dirs:
207+data-dir:
208+hs-libraries: HSarray-0.5.4.0
209+depends: base-4.14.1.0
210+haddock-interfaces:
211+haddock-html:
212+---
213+name: base
214+version: 4.14.1.0
215+visibility: public
216+id: base-4.14.1.0
217+key: base-4.14.1.0
218+license: BSD-3-Clause
219+maintainer: libraries@haskell.org
220+synopsis: Basic libraries
221+description:
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.
225+category: Prelude
226+exposed: True
227+exposed-modules:
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
283+hidden-modules:
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
297+import-dirs:
298+library-dirs:
299+dynamic-library-dirs:
300+data-dir:
301+hs-libraries: HSbase-4.14.1.0
302+include-dirs:
303+includes: HsBase.h
304+depends: ghc-prim-0.6.1 integer-gmp-1.0.3.0 rts
305+haddock-interfaces:
306+haddock-html:
307+---
308+name: binary
309+version: 0.8.8.0
310+visibility: public
311+id: binary-0.8.8.0
312+key: binary-0.8.8.0
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
318+synopsis:
319+ Binary serialisation for Haskell values using lazy ByteStrings
320+description:
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
328+ scenarios.
329+category: Data, Parsing
330+exposed: True
331+exposed-modules:
332+ Data.Binary Data.Binary.Builder Data.Binary.Get
333+ Data.Binary.Get.Internal Data.Binary.Put
334+hidden-modules:
335+ Data.Binary.Class Data.Binary.Internal Data.Binary.Generic
336+ Data.Binary.FloatCast
337+import-dirs:
338+library-dirs:
339+dynamic-library-dirs:
340+data-dir:
341+hs-libraries: HSbinary-0.8.8.0
342+depends:
343+ array-0.5.4.0 base-4.14.1.0 bytestring-0.10.12.0 containers-0.6.2.1
344+haddock-interfaces:
345+haddock-html:
346+---
347+name: bytestring
348+version: 0.10.12.0
349+visibility: public
350+id: bytestring-0.10.12.0
351+key: bytestring-0.10.12.0
352+license: BSD-3-Clause
353+copyright:
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>
360+author:
361+ Don Stewart,
362+ Duncan Coutts
363+homepage: https://github.com/haskell/bytestring
364+synopsis:
365+ Fast, compact, strict and lazy byte strings with a list interface
366+description:
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
394+category: Data
395+exposed: True
396+exposed-modules:
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
405+hidden-modules:
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
411+import-dirs:
412+library-dirs:
413+dynamic-library-dirs:
414+data-dir:
415+hs-libraries: HSbytestring-0.10.12.0
416+include-dirs:
417+includes: fpstring.h
418+depends:
419+ base-4.14.1.0 deepseq-1.4.4.0 ghc-prim-0.6.1 integer-gmp-1.0.3.0
420+haddock-interfaces:
421+haddock-html:
422+---
423+name: containers
424+version: 0.6.2.1
425+visibility: public
426+id: containers-0.6.2.1
427+key: containers-0.6.2.1
428+license: BSD-3-Clause
429+maintainer: libraries@haskell.org
430+synopsis: Assorted concrete container types
431+description:
432+ This package contains efficient general-purpose implementations
433+ of various immutable container types including sets, maps, sequences,
434+ trees, and graphs.
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
441+exposed: True
442+exposed-modules:
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
454+hidden-modules:
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
462+import-dirs:
463+library-dirs:
464+dynamic-library-dirs:
465+data-dir:
466+hs-libraries: HScontainers-0.6.2.1
467+depends: array-0.5.4.0 base-4.14.1.0 deepseq-1.4.4.0
468+haddock-interfaces:
469+haddock-html:
470+---
471+name: deepseq
472+version: 1.4.4.0
473+visibility: public
474+id: deepseq-1.4.4.0
475+key: deepseq-1.4.4.0
476+license: BSD-3-Clause
477+maintainer: libraries@haskell.org
478+synopsis: Deep evaluation of data structures
479+description:
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
485+ wrong thread.
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
491+ details.
492+category: Control
493+exposed: True
494+exposed-modules: Control.DeepSeq
495+hidden-modules: Control.DeepSeq.BackDoor
496+import-dirs:
497+library-dirs:
498+dynamic-library-dirs:
499+data-dir:
500+hs-libraries: HSdeepseq-1.4.4.0
501+depends: array-0.5.4.0 base-4.14.1.0
502+haddock-interfaces:
503+haddock-html:
504+---
505+name: directory
506+version: 1.3.6.0
507+visibility: public
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
513+description:
514+ This library provides a basic set of operations for manipulating files and
515+ directories in a portable way.
516+category: System
517+exposed: True
518+exposed-modules:
519+ System.Directory System.Directory.Internal
520+ System.Directory.Internal.Prelude
521+hidden-modules:
522+ System.Directory.Internal.C_utimensat
523+ System.Directory.Internal.Common System.Directory.Internal.Config
524+ System.Directory.Internal.Posix System.Directory.Internal.Windows
525+import-dirs:
526+library-dirs:
527+dynamic-library-dirs:
528+data-dir:
529+hs-libraries: HSdirectory-1.3.6.0
530+depends:
531+ base-4.14.1.0 filepath-1.4.2.1 time-1.9.3 unix-2.7.2.2
532+haddock-interfaces:
533+haddock-html:
534+---
535+name: exceptions
536+version: 0.10.4
537+visibility: public
538+id: exceptions-0.10.4
539+key: exceptions-0.10.4
540+license: BSD-3-Clause
541+copyright:
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
551+exposed: True
552+exposed-modules: Control.Monad.Catch Control.Monad.Catch.Pure
553+import-dirs:
554+library-dirs:
555+dynamic-library-dirs:
556+data-dir:
557+hs-libraries: HSexceptions-0.10.4
558+depends:
559+ base-4.14.1.0 mtl-2.2.2 stm-2.5.0.0 template-haskell-2.16.0.0
560+ transformers-0.5.6.2
561+haddock-interfaces:
562+haddock-html:
563+---
564+name: filepath
565+version: 1.4.2.1
566+visibility: public
567+id: filepath-1.4.2.1
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.
575+description:
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).
581+category: System
582+exposed: True
583+exposed-modules:
584+ System.FilePath System.FilePath.Posix System.FilePath.Windows
585+import-dirs:
586+library-dirs:
587+dynamic-library-dirs:
588+data-dir:
589+hs-libraries: HSfilepath-1.4.2.1
590+depends: base-4.14.1.0
591+haddock-interfaces:
592+haddock-html:
593+---
594+name: ghc-boot
595+version: 8.10.4
596+visibility: public
597+id: ghc-boot-8.10.4
598+key: ghc-boot-8.10.4
599+license: BSD-3-Clause
600+maintainer: ghc-devs@haskell.org
601+synopsis: Shared functionality between GHC and its boot libraries
602+description:
603+ This library is shared between GHC, ghc-pkg, and other boot
604+ libraries.
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.
613+category: GHC
614+exposed: True
615+exposed-modules:
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
619+import-dirs:
620+library-dirs:
621+dynamic-library-dirs:
622+data-dir:
623+hs-libraries: HSghc-boot-8.10.4
624+depends:
625+ base-4.14.1.0 binary-0.8.8.0 bytestring-0.10.12.0
626+ containers-0.6.2.1 directory-1.3.6.0 filepath-1.4.2.1
627+ ghc-boot-th-8.10.4
628+haddock-interfaces:
629+haddock-html:
630+---
631+name: ghc-boot-th
632+version: 8.10.4
633+visibility: public
634+id: ghc-boot-th-8.10.4
635+key: ghc-boot-th-8.10.4
636+license: BSD-3-Clause
637+maintainer: ghc-devs@haskell.org
638+synopsis:
639+ Shared functionality between GHC and the @template-haskell@
640+ library
641+description:
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.
647+category: GHC
648+exposed: True
649+exposed-modules:
650+ GHC.ForeignSrcLang.Type GHC.LanguageExtensions.Type GHC.Lexeme
651+import-dirs:
652+library-dirs:
653+dynamic-library-dirs:
654+data-dir:
655+hs-libraries: HSghc-boot-th-8.10.4
656+depends: base-4.14.1.0
657+haddock-interfaces:
658+haddock-html:
659+---
660+name: ghc-compact
661+version: 0.1.0.0
662+visibility: public
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
668+description:
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
675+ released).
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.
679+category: Data
680+exposed: True
681+exposed-modules: GHC.Compact GHC.Compact.Serialized
682+import-dirs:
683+library-dirs:
684+dynamic-library-dirs:
685+data-dir:
686+hs-libraries: HSghc-compact-0.1.0.0
687+depends: base-4.14.1.0 bytestring-0.10.12.0 ghc-prim-0.6.1
688+haddock-interfaces:
689+haddock-html:
690+---
691+name: ghc-heap
692+version: 8.10.4
693+visibility: public
694+id: ghc-heap-8.10.4
695+key: ghc-heap-8.10.4
696+license: BSD-3-Clause
697+maintainer: libraries@haskell.org
698+synopsis: Functions for walking GHC's heap
699+description:
700+ This package provides functions for walking the GHC heap data structures
701+ and retrieving information about those data structures.
702+category: GHC
703+exposed: True
704+exposed-modules:
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
708+ GHC.Exts.Heap.Utils
709+import-dirs:
710+library-dirs:
711+dynamic-library-dirs:
712+data-dir:
713+hs-libraries: HSghc-heap-8.10.4
714+depends: base-4.14.1.0 ghc-prim-0.6.1 rts
715+haddock-interfaces:
716+haddock-html:
717+---
718+name: ghc-prim
719+version: 0.6.1
720+visibility: public
721+id: ghc-prim-0.6.1
722+key: ghc-prim-0.6.1
723+license: BSD-3-Clause
724+maintainer: libraries@haskell.org
725+synopsis: GHC primitives
726+description:
727+ This package contains the primitive types and operations supplied by GHC.
728+category: GHC
729+exposed: True
730+exposed-modules:
731+ GHC.CString GHC.Classes GHC.Debug GHC.IntWord64 GHC.Magic
732+ GHC.Prim.Ext GHC.PrimopWrappers GHC.Tuple GHC.Types GHC.Prim
733+import-dirs:
734+library-dirs:
735+dynamic-library-dirs:
736+data-dir:
737+hs-libraries: HSghc-prim-0.6.1
738+extra-libraries: gcc c m
739+depends: rts
740+haddock-interfaces:
741+haddock-html:
742+---
743+name: ghci
744+version: 8.10.4
745+visibility: public
746+id: ghci-8.10.4
747+key: ghci-8.10.4
748+license: BSD-3-Clause
749+maintainer: ghc-devs@haskell.org
750+synopsis: The library supporting GHC's interactive interpreter
751+description:
752+ This library offers interfaces which mediate interactions between the
753+ @ghci@ interactive shell and @iserv@, GHC's out-of-process interpreter
754+ backend.
755+category: GHC
756+exposed: True
757+exposed-modules:
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
762+import-dirs:
763+library-dirs:
764+dynamic-library-dirs:
765+data-dir:
766+hs-libraries: HSghci-8.10.4
767+include-dirs:
768+depends:
769+ array-0.5.4.0 base-4.14.1.0 binary-0.8.8.0 bytestring-0.10.12.0
770+ containers-0.6.2.1 deepseq-1.4.4.0 filepath-1.4.2.1 ghc-boot-8.10.4
771+ ghc-boot-th-8.10.4 ghc-heap-8.10.4 template-haskell-2.16.0.0
772+ transformers-0.5.6.2 unix-2.7.2.2
773+haddock-interfaces:
774+haddock-html:
775+---
776+name: haskeline
777+version: 0.8.0.1
778+visibility: public
779+id: haskeline-0.8.0.1
780+key: haskeline-0.8.0.1
781+license: BSD-3-Clause
782+copyright: (c) Judah Jacobson
783+maintainer: Judah Jacobson <judah.jacobson@gmail.com>
784+author: Judah Jacobson
785+stability: Stable
786+homepage: https://github.com/judah/haskeline
787+synopsis:
788+ A command-line interface for user input, written in Haskell.
789+description:
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
793+ Haskell programs.
794+ Haskeline runs both on POSIX-compatible systems and on Windows.
795+category: User Interfaces
796+exposed: True
797+exposed-modules:
798+ System.Console.Haskeline System.Console.Haskeline.Completion
799+ System.Console.Haskeline.History System.Console.Haskeline.IO
800+ System.Console.Haskeline.Internal
801+hidden-modules:
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
817+import-dirs:
818+library-dirs:
819+dynamic-library-dirs:
820+data-dir:
821+hs-libraries: HShaskeline-0.8.0.1
822+depends:
823+ base-4.14.1.0 bytestring-0.10.12.0 containers-0.6.2.1
824+ directory-1.3.6.0 exceptions-0.10.4 filepath-1.4.2.1
825+ process-1.6.9.0 stm-2.5.0.0 transformers-0.5.6.2 unix-2.7.2.2
826+haddock-interfaces:
827+haddock-html:
828+---
829+name: hpc
830+version: 0.6.1.0
831+visibility: public
832+id: hpc-0.6.1.0
833+key: hpc-0.6.1.0
834+license: BSD-3-Clause
835+maintainer: ghc-devs@haskell.org
836+author: Andy Gill
837+synopsis: Code Coverage Library for Haskell
838+description:
839+ This package provides the code coverage library for Haskell.
840+ See <http://www.haskell.org/haskellwiki/Haskell_program_coverage> for more
841+ information.
842+category: Control
843+exposed: True
844+exposed-modules:
845+ Trace.Hpc.Mix Trace.Hpc.Reflect Trace.Hpc.Tix Trace.Hpc.Util
846+import-dirs:
847+library-dirs:
848+dynamic-library-dirs:
849+data-dir:
850+hs-libraries: HShpc-0.6.1.0
851+depends:
852+ base-4.14.1.0 containers-0.6.2.1 deepseq-1.4.4.0 directory-1.3.6.0
853+ filepath-1.4.2.1 time-1.9.3
854+haddock-interfaces:
855+haddock-html:
856+---
857+name: integer-gmp
858+version: 1.0.3.0
859+visibility: public
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
866+description:
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
874+exposed: True
875+exposed-modules:
876+ GHC.Integer GHC.Integer.GMP.Internals GHC.Integer.Logarithms
877+ GHC.Integer.Logarithms.Internals
878+hidden-modules: GHC.Integer.Type
879+import-dirs:
880+library-dirs:
881+dynamic-library-dirs:
882+data-dir:
883+hs-libraries: HSinteger-gmp-1.0.3.0
884+extra-libraries: gmp
885+include-dirs:
886+depends: ghc-prim-0.6.1
887+haddock-interfaces:
888+haddock-html:
889+---
890+name: libiserv
891+version: 8.10.4
892+visibility: public
893+id: libiserv-8.10.4
894+key: libiserv-8.10.4
895+license: BSD-3-Clause
896+copyright: XXX
897+maintainer: XXX
898+author: XXX
899+synopsis: Provides shared functionality between iserv and iserv-proxy
900+category: Development
901+exposed: True
902+exposed-modules: GHCi.Utils Lib
903+import-dirs:
904+library-dirs:
905+dynamic-library-dirs:
906+data-dir:
907+hs-libraries: HSlibiserv-8.10.4
908+depends:
909+ base-4.14.1.0 binary-0.8.8.0 bytestring-0.10.12.0
910+ containers-0.6.2.1 deepseq-1.4.4.0 ghci-8.10.4 unix-2.7.2.2
911+haddock-interfaces:
912+haddock-html:
913+---
914+name: mtl
915+version: 2.2.2
916+visibility: public
917+id: mtl-2.2.2
918+key: mtl-2.2.2
919+license: BSD-3-Clause
920+maintainer: Edward Kmett <ekmett@gmail.com>
921+author: Andy Gill
922+homepage: http://github.com/haskell/mtl
923+synopsis: Monad classes, using functional dependencies
924+description:
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>).
930+category: Control
931+exposed: True
932+exposed-modules:
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
943+import-dirs:
944+library-dirs:
945+dynamic-library-dirs:
946+data-dir:
947+hs-libraries: HSmtl-2.2.2
948+depends: base-4.14.1.0 transformers-0.5.6.2
949+haddock-interfaces:
950+haddock-html:
951+---
952+name: parsec
953+version: 3.1.14.0
954+visibility: public
955+id: parsec-3.1.14.0
956+key: parsec-3.1.14.0
957+license: BSD-3-Clause
958+maintainer: Herbert Valerio Riedel <hvr@gnu.org>
959+author:
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
963+description:
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
969+ input stream type.
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
974+ the future.
975+category: Parsing
976+exposed: True
977+exposed-modules:
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
992+import-dirs:
993+library-dirs:
994+dynamic-library-dirs:
995+data-dir:
996+hs-libraries: HSparsec-3.1.14.0
997+depends:
998+ base-4.14.1.0 bytestring-0.10.12.0 mtl-2.2.2 text-1.2.4.1
999+haddock-interfaces:
1000+haddock-html:
1001+---
1002+name: pretty
1003+version: 1.1.3.6
1004+visibility: public
1005+id: pretty-1.1.3.6
1006+key: pretty-1.1.3.6
1007+license: BSD-3-Clause
1008+maintainer: David Terei <code@davidterei.com>
1009+stability: Stable
1010+homepage: http://github.com/haskell/pretty
1011+synopsis: Pretty-printing library
1012+description:
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
1016+ tools.
1017+ This library was originally designed by John Hughes's and has since
1018+ been heavily modified by Simon Peyton Jones.
1019+category: Text
1020+exposed: True
1021+exposed-modules:
1022+ Text.PrettyPrint Text.PrettyPrint.Annotated
1023+ Text.PrettyPrint.Annotated.HughesPJ
1024+ Text.PrettyPrint.Annotated.HughesPJClass Text.PrettyPrint.HughesPJ
1025+ Text.PrettyPrint.HughesPJClass
1026+import-dirs:
1027+library-dirs:
1028+dynamic-library-dirs:
1029+data-dir:
1030+hs-libraries: HSpretty-1.1.3.6
1031+depends: base-4.14.1.0 deepseq-1.4.4.0 ghc-prim-0.6.1
1032+haddock-interfaces:
1033+haddock-html:
1034+---
1035+name: process
1036+version: 1.6.9.0
1037+visibility: public
1038+id: process-1.6.9.0
1039+key: process-1.6.9.0
1040+license: BSD-3-Clause
1041+maintainer: libraries@haskell.org
1042+synopsis: Process libraries
1043+description:
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>.
1050+category: System
1051+exposed: True
1052+exposed-modules: System.Cmd System.Process System.Process.Internals
1053+hidden-modules: System.Process.Common System.Process.Posix
1054+import-dirs:
1055+library-dirs:
1056+dynamic-library-dirs:
1057+data-dir:
1058+hs-libraries: HSprocess-1.6.9.0
1059+include-dirs:
1060+includes: runProcess.h
1061+depends:
1062+ base-4.14.1.0 deepseq-1.4.4.0 directory-1.3.6.0 filepath-1.4.2.1
1063+ unix-2.7.2.2
1064+haddock-interfaces:
1065+haddock-html:
1066+---
1067+name: stm
1068+version: 2.5.0.0
1069+visibility: public
1070+id: stm-2.5.0.0
1071+key: stm-2.5.0.0
1072+license: BSD-3-Clause
1073+maintainer: libraries@haskell.org
1074+homepage: https://wiki.haskell.org/Software_transactional_memory
1075+synopsis: Software Transactional Memory
1076+description:
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
1084+ 'MVar's.
1085+category: Concurrency
1086+exposed: True
1087+exposed-modules:
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
1092+ Control.Monad.STM
1093+hidden-modules: Control.Sequential.STM
1094+import-dirs:
1095+library-dirs:
1096+dynamic-library-dirs:
1097+data-dir:
1098+hs-libraries: HSstm-2.5.0.0
1099+depends: array-0.5.4.0 base-4.14.1.0
1100+haddock-interfaces:
1101+haddock-html:
1102+---
1103+name: template-haskell
1104+version: 2.16.0.0
1105+visibility: public
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
1111+description:
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
1115+ information.
1116+category: Template Haskell
1117+exposed: True
1118+exposed-modules:
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
1124+import-dirs:
1125+library-dirs:
1126+dynamic-library-dirs:
1127+data-dir:
1128+hs-libraries: HStemplate-haskell-2.16.0.0
1129+depends:
1130+ base-4.14.1.0 ghc-boot-th-8.10.4 ghc-prim-0.6.1 pretty-1.1.3.6
1131+haddock-interfaces:
1132+haddock-html:
1133+---
1134+name: text
1135+version: 1.2.4.1
1136+visibility: public
1137+id: text-1.2.4.1
1138+key: text-1.2.4.1
1139+license: BSD-2-Clause
1140+copyright: 2009-2011 Bryan O'Sullivan, 2008-2009 Tom Harper
1141+maintainer:
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.
1146+description:
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
1163+ == ICU Support
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
1179+exposed: True
1180+exposed-modules:
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
1205+import-dirs:
1206+library-dirs:
1207+dynamic-library-dirs:
1208+data-dir:
1209+hs-libraries: HStext-1.2.4.1
1210+depends:
1211+ array-0.5.4.0 base-4.14.1.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
1214+haddock-interfaces:
1215+haddock-html:
1216+---
1217+name: time
1218+version: 1.9.3
1219+visibility: public
1220+id: time-1.9.3
1221+key: time-1.9.3
1222+license: BSD-3-Clause
1223+maintainer: <ashley@semantic.org>
1224+author: Ashley Yakeley
1225+stability: stable
1226+homepage: https://github.com/haskell/time
1227+synopsis: A time library
1228+description: Time, clocks and calendars
1229+category: Time
1230+exposed: True
1231+exposed-modules:
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
1238+hidden-modules:
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
1258+import-dirs:
1259+library-dirs:
1260+dynamic-library-dirs:
1261+data-dir:
1262+hs-libraries: HStime-1.9.3
1263+include-dirs:
1264+depends: base-4.14.1.0 deepseq-1.4.4.0
1265+haddock-interfaces:
1266+haddock-html:
1267+---
1268+name: transformers
1269+version: 0.5.6.2
1270+visibility: public
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
1277+description:
1278+ A portable library of functor and monad transformers, inspired by
1279+ the paper
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
1288+ transformers.
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.
1295+category: Control
1296+exposed: True
1297+exposed-modules:
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
1311+import-dirs:
1312+library-dirs:
1313+dynamic-library-dirs:
1314+data-dir:
1315+hs-libraries: HStransformers-0.5.6.2
1316+depends: base-4.14.1.0
1317+haddock-interfaces:
1318+haddock-html:
1319+---
1320+name: unix
1321+version: 2.7.2.2
1322+visibility: public
1323+id: unix-2.7.2.2
1324+key: unix-2.7.2.2
1325+license: BSD-3-Clause
1326+maintainer: libraries@haskell.org
1327+homepage: https://github.com/haskell/unix
1328+synopsis: POSIX functionality
1329+description:
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.
1336+category: System
1337+exposed: True
1338+exposed-modules:
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
1355+hidden-modules:
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
1359+import-dirs:
1360+library-dirs:
1361+dynamic-library-dirs:
1362+data-dir:
1363+hs-libraries: HSunix-2.7.2.2
1364+extra-libraries: rt util dl pthread
1365+include-dirs:
1366+includes: HsUnix.h execvpe.h
1367+depends: base-4.14.1.0 bytestring-0.10.12.0 time-1.9.3
1368+haddock-interfaces:
1369+haddock-html:
1370+---
1371+name: rts
1372+version: 1.0
1373+visibility: public
1374+id: rts
1375+key: rts
1376+license: BSD-3-Clause
1377+maintainer: glasgow-haskell-users@haskell.org
1378+exposed: True
1379+library-dirs:
1380+hs-libraries: HSrts
1381+extra-libraries: m rt dl ffi numa pthread
1382+include-dirs:
1383+includes: Stg.h
1384+ld-options:
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.4-x86_64-linux/ghc-pkg/versionnew file+1
@@ -0,0 +1 @@
1+GHC package manager version 8.10.4
materialized/dummy-ghc/aarch64-unknown-linux-gnu-aarch64-unknown-linux-gnu-ghc-8.10.4-x86_64-linux/ghc/infonew file+69
@@ -0,0 +1,69 @@
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")
14+ ,("ar flags","q")
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","ArchARM64")
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 llc command","llc")
34+ ,("LLVM opt command","opt")
35+ ,("LLVM clang command","clang")
36+ ,("integer library","integer-gmp")
37+ ,("Use interpreter","YES")
38+ ,("Use native code generator","NO")
39+ ,("Support SMP","YES")
40+ ,("RTS ways","l debug thr thr_debug thr_l thr_p thr_debug_p debug_p")
41+ ,("Tables next to code","YES")
42+ ,("Leading underscore","NO")
43+ ,("Use LibFFI","YES")
44+ ,("Use Threads","YES")
45+ ,("Use Debugging","NO")
46+ ,("RTS expects libdw","NO")
47+ ,("Project version","8.10.4")
48+ ,("Project Git commit id","6a01e28f4204ec17c587931311711fa76e0ea08d")
49+ ,("Booter version","8.6.5")
50+ ,("Stage","1")
51+ ,("Build platform","x86_64-unknown-linux")
52+ ,("Host platform","x86_64-unknown-linux")
53+ ,("Target platform","aarch64-unknown-linux")
54+ ,("Have interpreter","YES")
55+ ,("Object splitting supported","NO")
56+ ,("Have native code generator","NO")
57+ ,("Support dynamic-too","YES")
58+ ,("Support parallel --make","YES")
59+ ,("Support reexported-modules","YES")
60+ ,("Support thinning and renaming package flags","YES")
61+ ,("Support Backpack","YES")
62+ ,("Requires unified installed package IDs","YES")
63+ ,("Uses package keys","YES")
64+ ,("Uses unit IDs","YES")
65+ ,("Dynamic by default","NO")
66+ ,("GHC Dynamic","NO")
67+ ,("GHC Profiled","NO")
68+ ,("Debug on","NO")
69+ ]
materialized/dummy-ghc/aarch64-unknown-linux-gnu-aarch64-unknown-linux-gnu-ghc-8.10.4-x86_64-linux/ghc/numeric-versionnew file+1
@@ -0,0 +1 @@
1+8.10.4
materialized/dummy-ghc/aarch64-unknown-linux-gnu-aarch64-unknown-linux-gnu-ghc-8.10.4-x86_64-linux/ghc/supported-languagesnew file+255
@@ -0,0 +1,255 @@
1+Haskell98
2+Haskell2010
3+Unsafe
4+Trustworthy
5+Safe
6+AllowAmbiguousTypes
7+NoAllowAmbiguousTypes
8+AlternativeLayoutRule
9+NoAlternativeLayoutRule
10+AlternativeLayoutRuleTransitional
11+NoAlternativeLayoutRuleTransitional
12+Arrows
13+NoArrows
14+AutoDeriveTypeable
15+NoAutoDeriveTypeable
16+BangPatterns
17+NoBangPatterns
18+BinaryLiterals
19+NoBinaryLiterals
20+CApiFFI
21+NoCApiFFI
22+CPP
23+NoCPP
24+CUSKs
25+NoCUSKs
26+ConstrainedClassMethods
27+NoConstrainedClassMethods
28+ConstraintKinds
29+NoConstraintKinds
30+DataKinds
31+NoDataKinds
32+DatatypeContexts
33+NoDatatypeContexts
34+DefaultSignatures
35+NoDefaultSignatures
36+DeriveAnyClass
37+NoDeriveAnyClass
38+DeriveDataTypeable
39+NoDeriveDataTypeable
40+DeriveFoldable
41+NoDeriveFoldable
42+DeriveFunctor
43+NoDeriveFunctor
44+DeriveGeneric
45+NoDeriveGeneric
46+DeriveLift
47+NoDeriveLift
48+DeriveTraversable
49+NoDeriveTraversable
50+DerivingStrategies
51+NoDerivingStrategies
52+DerivingVia
53+NoDerivingVia
54+DisambiguateRecordFields
55+NoDisambiguateRecordFields
56+DoAndIfThenElse
57+NoDoAndIfThenElse
58+BlockArguments
59+NoBlockArguments
60+DoRec
61+NoDoRec
62+DuplicateRecordFields
63+NoDuplicateRecordFields
64+EmptyCase
65+NoEmptyCase
66+EmptyDataDecls
67+NoEmptyDataDecls
68+EmptyDataDeriving
69+NoEmptyDataDeriving
70+ExistentialQuantification
71+NoExistentialQuantification
72+ExplicitForAll
73+NoExplicitForAll
74+ExplicitNamespaces
75+NoExplicitNamespaces
76+ExtendedDefaultRules
77+NoExtendedDefaultRules
78+FlexibleContexts
79+NoFlexibleContexts
80+FlexibleInstances
81+NoFlexibleInstances
82+ForeignFunctionInterface
83+NoForeignFunctionInterface
84+FunctionalDependencies
85+NoFunctionalDependencies
86+GADTSyntax
87+NoGADTSyntax
88+GADTs
89+NoGADTs
90+GHCForeignImportPrim
91+NoGHCForeignImportPrim
92+GeneralizedNewtypeDeriving
93+NoGeneralizedNewtypeDeriving
94+GeneralisedNewtypeDeriving
95+NoGeneralisedNewtypeDeriving
96+ImplicitParams
97+NoImplicitParams
98+ImplicitPrelude
99+NoImplicitPrelude
100+ImportQualifiedPost
101+NoImportQualifiedPost
102+ImpredicativeTypes
103+NoImpredicativeTypes
104+IncoherentInstances
105+NoIncoherentInstances
106+TypeFamilyDependencies
107+NoTypeFamilyDependencies
108+InstanceSigs
109+NoInstanceSigs
110+ApplicativeDo
111+NoApplicativeDo
112+InterruptibleFFI
113+NoInterruptibleFFI
114+JavaScriptFFI
115+NoJavaScriptFFI
116+KindSignatures
117+NoKindSignatures
118+LambdaCase
119+NoLambdaCase
120+LiberalTypeSynonyms
121+NoLiberalTypeSynonyms
122+MagicHash
123+NoMagicHash
124+MonadComprehensions
125+NoMonadComprehensions
126+MonadFailDesugaring
127+NoMonadFailDesugaring
128+MonoLocalBinds
129+NoMonoLocalBinds
130+MonoPatBinds
131+NoMonoPatBinds
132+MonomorphismRestriction
133+NoMonomorphismRestriction
134+MultiParamTypeClasses
135+NoMultiParamTypeClasses
136+MultiWayIf
137+NoMultiWayIf
138+NumericUnderscores
139+NoNumericUnderscores
140+NPlusKPatterns
141+NoNPlusKPatterns
142+NamedFieldPuns
143+NoNamedFieldPuns
144+NamedWildCards
145+NoNamedWildCards
146+NegativeLiterals
147+NoNegativeLiterals
148+HexFloatLiterals
149+NoHexFloatLiterals
150+NondecreasingIndentation
151+NoNondecreasingIndentation
152+NullaryTypeClasses
153+NoNullaryTypeClasses
154+NumDecimals
155+NoNumDecimals
156+OverlappingInstances
157+NoOverlappingInstances
158+OverloadedLabels
159+NoOverloadedLabels
160+OverloadedLists
161+NoOverloadedLists
162+OverloadedStrings
163+NoOverloadedStrings
164+PackageImports
165+NoPackageImports
166+ParallelArrays
167+NoParallelArrays
168+ParallelListComp
169+NoParallelListComp
170+PartialTypeSignatures
171+NoPartialTypeSignatures
172+PatternGuards
173+NoPatternGuards
174+PatternSignatures
175+NoPatternSignatures
176+PatternSynonyms
177+NoPatternSynonyms
178+PolyKinds
179+NoPolyKinds
180+PolymorphicComponents
181+NoPolymorphicComponents
182+QuantifiedConstraints
183+NoQuantifiedConstraints
184+PostfixOperators
185+NoPostfixOperators
186+QuasiQuotes
187+NoQuasiQuotes
188+Rank2Types
189+NoRank2Types
190+RankNTypes
191+NoRankNTypes
192+RebindableSyntax
193+NoRebindableSyntax
194+RecordPuns
195+NoRecordPuns
196+RecordWildCards
197+NoRecordWildCards
198+RecursiveDo
199+NoRecursiveDo
200+RelaxedLayout
201+NoRelaxedLayout
202+RelaxedPolyRec
203+NoRelaxedPolyRec
204+RoleAnnotations
205+NoRoleAnnotations
206+ScopedTypeVariables
207+NoScopedTypeVariables
208+StandaloneDeriving
209+NoStandaloneDeriving
210+StarIsType
211+NoStarIsType
212+StaticPointers
213+NoStaticPointers
214+Strict
215+NoStrict
216+StrictData
217+NoStrictData
218+TemplateHaskell
219+NoTemplateHaskell
220+TemplateHaskellQuotes
221+NoTemplateHaskellQuotes
222+StandaloneKindSignatures
223+NoStandaloneKindSignatures
224+TraditionalRecordSyntax
225+NoTraditionalRecordSyntax
226+TransformListComp
227+NoTransformListComp
228+TupleSections
229+NoTupleSections
230+TypeApplications
231+NoTypeApplications
232+TypeInType
233+NoTypeInType
234+TypeFamilies
235+NoTypeFamilies
236+TypeOperators
237+NoTypeOperators
238+TypeSynonymInstances
239+NoTypeSynonymInstances
240+UnboxedTuples
241+NoUnboxedTuples
242+UnboxedSums
243+NoUnboxedSums
244+UndecidableInstances
245+NoUndecidableInstances
246+UndecidableSuperClasses
247+NoUndecidableSuperClasses
248+UnicodeSyntax
249+NoUnicodeSyntax
250+UnliftedFFITypes
251+NoUnliftedFFITypes
252+UnliftedNewtypes
253+NoUnliftedNewtypes
254+ViewPatterns
255+NoViewPatterns
materialized/dummy-ghc/aarch64-unknown-linux-gnu-aarch64-unknown-linux-gnu-ghc-8.10.4-x86_64-linux/ghc/versionnew file+1
@@ -0,0 +1 @@
1+The Glorious Glasgow Haskell Compilation System, version 8.10.4
materialized/dummy-ghc/aarch64-unknown-linux-gnu-aarch64-unknown-linux-gnu-ghc-8.10.4.20210212-x86_64-linux/ghc-pkg/dump-globalnew file+1446
@@ -0,0 +1,1446 @@
1+name: Cabal
2+version: 3.2.1.0
3+visibility: public
4+id: Cabal-3.2.1.0
5+key: Cabal-3.2.1.0
6+license: BSD-3-Clause
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
12+description:
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
19+exposed: True
20+exposed-modules:
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
156+hidden-modules:
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
168+import-dirs:
169+library-dirs:
170+dynamic-library-dirs:
171+data-dir:
172+hs-libraries: HSCabal-3.2.1.0
173+depends:
174+ array-0.5.4.0 base-4.14.1.0 binary-0.8.8.0 bytestring-0.10.12.0
175+ containers-0.6.2.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.9.0 text-1.2.4.1 time-1.9.3 transformers-0.5.6.2
178+ unix-2.7.2.2
179+haddock-interfaces:
180+haddock-html:
181+---
182+name: array
183+version: 0.5.4.0
184+visibility: public
185+id: array-0.5.4.0
186+key: array-0.5.4.0
187+license: BSD-3-Clause
188+maintainer: libraries@haskell.org
189+synopsis: Mutable and immutable arrays
190+description:
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
197+exposed: True
198+exposed-modules:
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
204+import-dirs:
205+library-dirs:
206+dynamic-library-dirs:
207+data-dir:
208+hs-libraries: HSarray-0.5.4.0
209+depends: base-4.14.1.0
210+haddock-interfaces:
211+haddock-html:
212+---
213+name: base
214+version: 4.14.1.0
215+visibility: public
216+id: base-4.14.1.0
217+key: base-4.14.1.0
218+license: BSD-3-Clause
219+maintainer: libraries@haskell.org
220+synopsis: Basic libraries
221+description:
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.
225+category: Prelude
226+exposed: True
227+exposed-modules:
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
283+hidden-modules:
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
297+import-dirs:
298+library-dirs:
299+dynamic-library-dirs:
300+data-dir:
301+hs-libraries: HSbase-4.14.1.0
302+include-dirs:
303+includes: HsBase.h
304+depends: ghc-prim-0.6.1 integer-gmp-1.0.3.0 rts
305+haddock-interfaces:
306+haddock-html:
307+---
308+name: binary
309+version: 0.8.8.0
310+visibility: public
311+id: binary-0.8.8.0
312+key: binary-0.8.8.0
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
318+synopsis:
319+ Binary serialisation for Haskell values using lazy ByteStrings
320+description:
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
328+ scenarios.
329+category: Data, Parsing
330+exposed: True
331+exposed-modules:
332+ Data.Binary Data.Binary.Builder Data.Binary.Get
333+ Data.Binary.Get.Internal Data.Binary.Put
334+hidden-modules:
335+ Data.Binary.Class Data.Binary.Internal Data.Binary.Generic
336+ Data.Binary.FloatCast
337+import-dirs:
338+library-dirs:
339+dynamic-library-dirs:
340+data-dir:
341+hs-libraries: HSbinary-0.8.8.0
342+depends:
343+ array-0.5.4.0 base-4.14.1.0 bytestring-0.10.12.0 containers-0.6.2.1
344+haddock-interfaces:
345+haddock-html:
346+---
347+name: bytestring
348+version: 0.10.12.0
349+visibility: public
350+id: bytestring-0.10.12.0
351+key: bytestring-0.10.12.0
352+license: BSD-3-Clause
353+copyright:
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>
360+author:
361+ Don Stewart,
362+ Duncan Coutts
363+homepage: https://github.com/haskell/bytestring
364+synopsis:
365+ Fast, compact, strict and lazy byte strings with a list interface
366+description:
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
394+category: Data
395+exposed: True
396+exposed-modules:
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
405+hidden-modules:
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
411+import-dirs:
412+library-dirs:
413+dynamic-library-dirs:
414+data-dir:
415+hs-libraries: HSbytestring-0.10.12.0
416+include-dirs:
417+includes: fpstring.h
418+depends:
419+ base-4.14.1.0 deepseq-1.4.4.0 ghc-prim-0.6.1 integer-gmp-1.0.3.0
420+haddock-interfaces:
421+haddock-html:
422+---
423+name: containers
424+version: 0.6.2.1
425+visibility: public
426+id: containers-0.6.2.1
427+key: containers-0.6.2.1
428+license: BSD-3-Clause
429+maintainer: libraries@haskell.org
430+synopsis: Assorted concrete container types
431+description:
432+ This package contains efficient general-purpose implementations
433+ of various immutable container types including sets, maps, sequences,
434+ trees, and graphs.
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
441+exposed: True
442+exposed-modules:
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
454+hidden-modules:
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
462+import-dirs:
463+library-dirs:
464+dynamic-library-dirs:
465+data-dir:
466+hs-libraries: HScontainers-0.6.2.1
467+depends: array-0.5.4.0 base-4.14.1.0 deepseq-1.4.4.0
468+haddock-interfaces:
469+haddock-html:
470+---
471+name: deepseq
472+version: 1.4.4.0
473+visibility: public
474+id: deepseq-1.4.4.0
475+key: deepseq-1.4.4.0
476+license: BSD-3-Clause
477+maintainer: libraries@haskell.org
478+synopsis: Deep evaluation of data structures
479+description:
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
485+ wrong thread.
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
491+ details.
492+category: Control
493+exposed: True
494+exposed-modules: Control.DeepSeq
495+hidden-modules: Control.DeepSeq.BackDoor
496+import-dirs:
497+library-dirs:
498+dynamic-library-dirs:
499+data-dir:
500+hs-libraries: HSdeepseq-1.4.4.0
501+depends: array-0.5.4.0 base-4.14.1.0
502+haddock-interfaces:
503+haddock-html:
504+---
505+name: directory
506+version: 1.3.6.0
507+visibility: public
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
513+description:
514+ This library provides a basic set of operations for manipulating files and
515+ directories in a portable way.
516+category: System
517+exposed: True
518+exposed-modules:
519+ System.Directory System.Directory.Internal
520+ System.Directory.Internal.Prelude
521+hidden-modules:
522+ System.Directory.Internal.C_utimensat
523+ System.Directory.Internal.Common System.Directory.Internal.Config
524+ System.Directory.Internal.Posix System.Directory.Internal.Windows
525+import-dirs:
526+library-dirs:
527+dynamic-library-dirs:
528+data-dir:
529+hs-libraries: HSdirectory-1.3.6.0
530+depends:
531+ base-4.14.1.0 filepath-1.4.2.1 time-1.9.3 unix-2.7.2.2
532+haddock-interfaces:
533+haddock-html:
534+---
535+name: exceptions
536+version: 0.10.4
537+visibility: public
538+id: exceptions-0.10.4
539+key: exceptions-0.10.4
540+license: BSD-3-Clause
541+copyright:
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
551+exposed: True
552+exposed-modules: Control.Monad.Catch Control.Monad.Catch.Pure
553+import-dirs:
554+library-dirs:
555+dynamic-library-dirs:
556+data-dir:
557+hs-libraries: HSexceptions-0.10.4
558+depends:
559+ base-4.14.1.0 mtl-2.2.2 stm-2.5.0.0 template-haskell-2.16.0.0
560+ transformers-0.5.6.2
561+haddock-interfaces:
562+haddock-html:
563+---
564+name: filepath
565+version: 1.4.2.1
566+visibility: public
567+id: filepath-1.4.2.1
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.
575+description:
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).
581+category: System
582+exposed: True
583+exposed-modules:
584+ System.FilePath System.FilePath.Posix System.FilePath.Windows
585+import-dirs:
586+library-dirs:
587+dynamic-library-dirs:
588+data-dir:
589+hs-libraries: HSfilepath-1.4.2.1
590+depends: base-4.14.1.0
591+haddock-interfaces:
592+haddock-html:
593+---
594+name: ghc-boot
595+version: 8.10.4.20210212
596+visibility: public
597+id: ghc-boot-8.10.4.20210212
598+key: ghc-boot-8.10.4.20210212
599+license: BSD-3-Clause
600+maintainer: ghc-devs@haskell.org
601+synopsis: Shared functionality between GHC and its boot libraries
602+description:
603+ This library is shared between GHC, ghc-pkg, and other boot
604+ libraries.
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.
613+category: GHC
614+exposed: True
615+exposed-modules:
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
619+import-dirs:
620+library-dirs:
621+dynamic-library-dirs:
622+data-dir:
623+hs-libraries: HSghc-boot-8.10.4.20210212
624+depends:
625+ base-4.14.1.0 binary-0.8.8.0 bytestring-0.10.12.0
626+ containers-0.6.2.1 directory-1.3.6.0 filepath-1.4.2.1
627+ ghc-boot-th-8.10.4.20210212
628+haddock-interfaces:
629+haddock-html:
630+---
631+name: ghc-boot-th
632+version: 8.10.4.20210212
633+visibility: public
634+id: ghc-boot-th-8.10.4.20210212
635+key: ghc-boot-th-8.10.4.20210212
636+license: BSD-3-Clause
637+maintainer: ghc-devs@haskell.org
638+synopsis:
639+ Shared functionality between GHC and the @template-haskell@
640+ library
641+description:
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.
647+category: GHC
648+exposed: True
649+exposed-modules:
650+ GHC.ForeignSrcLang.Type GHC.LanguageExtensions.Type GHC.Lexeme
651+import-dirs:
652+library-dirs:
653+dynamic-library-dirs:
654+data-dir:
655+hs-libraries: HSghc-boot-th-8.10.4.20210212
656+depends: base-4.14.1.0
657+haddock-interfaces:
658+haddock-html:
659+---
660+name: ghc-compact
661+version: 0.1.0.0
662+visibility: public
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
668+description:
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
675+ released).
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.
679+category: Data
680+exposed: True
681+exposed-modules: GHC.Compact GHC.Compact.Serialized
682+import-dirs:
683+library-dirs:
684+dynamic-library-dirs:
685+data-dir:
686+hs-libraries: HSghc-compact-0.1.0.0
687+depends: base-4.14.1.0 bytestring-0.10.12.0 ghc-prim-0.6.1
688+haddock-interfaces:
689+haddock-html:
690+---
691+name: ghc-heap
692+version: 8.10.4.20210212
693+visibility: public
694+id: ghc-heap-8.10.4.20210212
695+key: ghc-heap-8.10.4.20210212
696+license: BSD-3-Clause
697+maintainer: libraries@haskell.org
698+synopsis: Functions for walking GHC's heap
699+description:
700+ This package provides functions for walking the GHC heap data structures
701+ and retrieving information about those data structures.
702+category: GHC
703+exposed: True
704+exposed-modules:
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
708+ GHC.Exts.Heap.Utils
709+import-dirs:
710+library-dirs:
711+dynamic-library-dirs:
712+data-dir:
713+hs-libraries: HSghc-heap-8.10.4.20210212
714+depends: base-4.14.1.0 ghc-prim-0.6.1 rts
715+haddock-interfaces:
716+haddock-html:
717+---
718+name: ghc-prim
719+version: 0.6.1
720+visibility: public
721+id: ghc-prim-0.6.1
722+key: ghc-prim-0.6.1
723+license: BSD-3-Clause
724+maintainer: libraries@haskell.org
725+synopsis: GHC primitives
726+description:
727+ This package contains the primitive types and operations supplied by GHC.
728+category: GHC
729+exposed: True
730+exposed-modules:
731+ GHC.CString GHC.Classes GHC.Debug GHC.IntWord64 GHC.Magic
732+ GHC.Prim.Ext GHC.PrimopWrappers GHC.Tuple GHC.Types GHC.Prim
733+import-dirs:
734+library-dirs:
735+dynamic-library-dirs:
736+data-dir:
737+hs-libraries: HSghc-prim-0.6.1
738+extra-libraries: gcc c m
739+depends: rts
740+haddock-interfaces:
741+haddock-html:
742+---
743+name: ghci
744+version: 8.10.4.20210212
745+visibility: public
746+id: ghci-8.10.4.20210212
747+key: ghci-8.10.4.20210212
748+license: BSD-3-Clause
749+maintainer: ghc-devs@haskell.org
750+synopsis: The library supporting GHC's interactive interpreter
751+description:
752+ This library offers interfaces which mediate interactions between the
753+ @ghci@ interactive shell and @iserv@, GHC's out-of-process interpreter
754+ backend.
755+category: GHC
756+exposed: True
757+exposed-modules:
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
762+import-dirs:
763+library-dirs:
764+dynamic-library-dirs:
765+data-dir:
766+hs-libraries: HSghci-8.10.4.20210212
767+include-dirs:
768+depends:
769+ array-0.5.4.0 base-4.14.1.0 binary-0.8.8.0 bytestring-0.10.12.0
770+ containers-0.6.2.1 deepseq-1.4.4.0 filepath-1.4.2.1
771+ ghc-boot-8.10.4.20210212 ghc-boot-th-8.10.4.20210212
772+ ghc-heap-8.10.4.20210212 template-haskell-2.16.0.0
773+ transformers-0.5.6.2 unix-2.7.2.2
774+haddock-interfaces:
775+haddock-html:
776+---
777+name: haskeline
778+version: 0.8.0.1
779+visibility: public
780+id: haskeline-0.8.0.1
781+key: haskeline-0.8.0.1
782+license: BSD-3-Clause
783+copyright: (c) Judah Jacobson
784+maintainer: Judah Jacobson <judah.jacobson@gmail.com>
785+author: Judah Jacobson
786+stability: Stable
787+homepage: https://github.com/judah/haskeline
788+synopsis:
789+ A command-line interface for user input, written in Haskell.
790+description:
791+ Haskeline provides a user interface for line input in command-line
792+ programs. This library is similar in purpose to readline, but since
793+ it is written in Haskell it is (hopefully) more easily used in other
794+ Haskell programs.
795+ Haskeline runs both on POSIX-compatible systems and on Windows.
796+category: User Interfaces
797+exposed: True
798+exposed-modules:
799+ System.Console.Haskeline System.Console.Haskeline.Completion
800+ System.Console.Haskeline.History System.Console.Haskeline.IO
801+ System.Console.Haskeline.Internal
802+hidden-modules:
803+ System.Console.Haskeline.Backend
804+ System.Console.Haskeline.Backend.WCWidth
805+ System.Console.Haskeline.Command
806+ System.Console.Haskeline.Command.Completion
807+ System.Console.Haskeline.Command.History
808+ System.Console.Haskeline.Command.KillRing
809+ System.Console.Haskeline.Directory System.Console.Haskeline.Emacs
810+ System.Console.Haskeline.InputT System.Console.Haskeline.Key
811+ System.Console.Haskeline.LineState System.Console.Haskeline.Monads
812+ System.Console.Haskeline.Prefs System.Console.Haskeline.Recover
813+ System.Console.Haskeline.RunCommand System.Console.Haskeline.Term
814+ System.Console.Haskeline.Command.Undo System.Console.Haskeline.Vi
815+ System.Console.Haskeline.Backend.Posix
816+ System.Console.Haskeline.Backend.Posix.Encoder
817+ System.Console.Haskeline.Backend.DumbTerm
818+import-dirs:
819+library-dirs:
820+dynamic-library-dirs:
821+data-dir:
822+hs-libraries: HShaskeline-0.8.0.1
823+depends:
824+ base-4.14.1.0 bytestring-0.10.12.0 containers-0.6.2.1
825+ directory-1.3.6.0 exceptions-0.10.4 filepath-1.4.2.1
826+ process-1.6.9.0 stm-2.5.0.0 transformers-0.5.6.2 unix-2.7.2.2
827+haddock-interfaces:
828+haddock-html:
829+---
830+name: hpc
831+version: 0.6.1.0
832+visibility: public
833+id: hpc-0.6.1.0
834+key: hpc-0.6.1.0
835+license: BSD-3-Clause
836+maintainer: ghc-devs@haskell.org
837+author: Andy Gill
838+synopsis: Code Coverage Library for Haskell
839+description:
840+ This package provides the code coverage library for Haskell.
841+ See <http://www.haskell.org/haskellwiki/Haskell_program_coverage> for more
842+ information.
843+category: Control
844+exposed: True
845+exposed-modules:
846+ Trace.Hpc.Mix Trace.Hpc.Reflect Trace.Hpc.Tix Trace.Hpc.Util
847+import-dirs:
848+library-dirs:
849+dynamic-library-dirs:
850+data-dir:
851+hs-libraries: HShpc-0.6.1.0
852+depends:
853+ base-4.14.1.0 containers-0.6.2.1 deepseq-1.4.4.0 directory-1.3.6.0
854+ filepath-1.4.2.1 time-1.9.3
855+haddock-interfaces:
856+haddock-html:
857+---
858+name: integer-gmp
859+version: 1.0.3.0
860+visibility: public
861+id: integer-gmp-1.0.3.0
862+key: integer-gmp-1.0.3.0
863+license: BSD-3-Clause
864+maintainer: hvr@gnu.org
865+author: Herbert Valerio Riedel
866+synopsis: Integer library based on GMP
867+description:
868+ This package provides the low-level implementation of the standard
869+ 'Integer' type based on the
870+ <http://gmplib.org/ GNU Multiple Precision Arithmetic Library (GMP)>.
871+ This package provides access to the internal representation of
872+ 'Integer' as well as primitive operations with no proper error
873+ handling, and should only be used directly with the utmost care.
874+category: Numeric, Algebra
875+exposed: True
876+exposed-modules:
877+ GHC.Integer GHC.Integer.GMP.Internals GHC.Integer.Logarithms
878+ GHC.Integer.Logarithms.Internals
879+hidden-modules: GHC.Integer.Type
880+import-dirs:
881+library-dirs:
882+dynamic-library-dirs:
883+data-dir:
884+hs-libraries: HSinteger-gmp-1.0.3.0
885+extra-libraries: gmp
886+include-dirs:
887+depends: ghc-prim-0.6.1
888+haddock-interfaces:
889+haddock-html:
890+---
891+name: libiserv
892+version: 8.10.4.20210212
893+visibility: public
894+id: libiserv-8.10.4.20210212
895+key: libiserv-8.10.4.20210212
896+license: BSD-3-Clause
897+copyright: XXX
898+maintainer: XXX
899+author: XXX
900+synopsis: Provides shared functionality between iserv and iserv-proxy
901+category: Development
902+exposed: True
903+exposed-modules: GHCi.Utils Lib
904+import-dirs:
905+library-dirs:
906+dynamic-library-dirs:
907+data-dir:
908+hs-libraries: HSlibiserv-8.10.4.20210212
909+depends:
910+ base-4.14.1.0 binary-0.8.8.0 bytestring-0.10.12.0
911+ containers-0.6.2.1 deepseq-1.4.4.0 ghci-8.10.4.20210212
912+ unix-2.7.2.2
913+haddock-interfaces:
914+haddock-html:
915+---
916+name: mtl
917+version: 2.2.2
918+visibility: public
919+id: mtl-2.2.2
920+key: mtl-2.2.2
921+license: BSD-3-Clause
922+maintainer: Edward Kmett <ekmett@gmail.com>
923+author: Andy Gill
924+homepage: http://github.com/haskell/mtl
925+synopsis: Monad classes, using functional dependencies
926+description:
927+ Monad classes using functional dependencies, with instances
928+ for various monad transformers, inspired by the paper
929+ /Functional Programming with Overloading and Higher-Order Polymorphism/,
930+ by Mark P Jones, in /Advanced School of Functional Programming/, 1995
931+ (<http://web.cecs.pdx.edu/~mpj/pubs/springschool.html>).
932+category: Control
933+exposed: True
934+exposed-modules:
935+ Control.Monad.Cont Control.Monad.Cont.Class Control.Monad.Error
936+ Control.Monad.Error.Class Control.Monad.Except
937+ Control.Monad.Identity Control.Monad.List Control.Monad.RWS
938+ Control.Monad.RWS.Class Control.Monad.RWS.Lazy
939+ Control.Monad.RWS.Strict Control.Monad.Reader
940+ Control.Monad.Reader.Class Control.Monad.State
941+ Control.Monad.State.Class Control.Monad.State.Lazy
942+ Control.Monad.State.Strict Control.Monad.Trans Control.Monad.Writer
943+ Control.Monad.Writer.Class Control.Monad.Writer.Lazy
944+ Control.Monad.Writer.Strict
945+import-dirs:
946+library-dirs:
947+dynamic-library-dirs:
948+data-dir:
949+hs-libraries: HSmtl-2.2.2
950+depends: base-4.14.1.0 transformers-0.5.6.2
951+haddock-interfaces:
952+haddock-html:
953+---
954+name: parsec
955+version: 3.1.14.0
956+visibility: public
957+id: parsec-3.1.14.0
958+key: parsec-3.1.14.0
959+license: BSD-3-Clause
960+maintainer: Herbert Valerio Riedel <hvr@gnu.org>
961+author:
962+ Daan Leijen <daan@microsoft.com>, Paolo Martini <paolo@nemail.it>, Antoine Latter <aslatter@gmail.com>
963+homepage: https://github.com/haskell/parsec
964+synopsis: Monadic parser combinators
965+description:
966+ Parsec is designed from scratch as an industrial-strength parser
967+ library. It is simple, safe, well documented (on the package
968+ homepage), has extensive libraries, good error messages,
969+ and is fast. It is defined as a monad transformer that can be
970+ stacked on arbitrary monads, and it is also parametric in the
971+ input stream type.
972+ The main entry point is the "Text.Parsec" module which provides
973+ defaults for parsing 'Char'acter data.
974+ The "Text.ParserCombinators.Parsec" module hierarchy contains
975+ the legacy @parsec-2@ API and may be removed at some point in
976+ the future.
977+category: Parsing
978+exposed: True
979+exposed-modules:
980+ Text.Parsec Text.Parsec.ByteString Text.Parsec.ByteString.Lazy
981+ Text.Parsec.Char Text.Parsec.Combinator Text.Parsec.Error
982+ Text.Parsec.Expr Text.Parsec.Language Text.Parsec.Perm
983+ Text.Parsec.Pos Text.Parsec.Prim Text.Parsec.String
984+ Text.Parsec.Text Text.Parsec.Text.Lazy Text.Parsec.Token
985+ Text.ParserCombinators.Parsec Text.ParserCombinators.Parsec.Char
986+ Text.ParserCombinators.Parsec.Combinator
987+ Text.ParserCombinators.Parsec.Error
988+ Text.ParserCombinators.Parsec.Expr
989+ Text.ParserCombinators.Parsec.Language
990+ Text.ParserCombinators.Parsec.Perm
991+ Text.ParserCombinators.Parsec.Pos
992+ Text.ParserCombinators.Parsec.Prim
993+ Text.ParserCombinators.Parsec.Token
994+import-dirs:
995+library-dirs:
996+dynamic-library-dirs:
997+data-dir:
998+hs-libraries: HSparsec-3.1.14.0
999+depends:
1000+ base-4.14.1.0 bytestring-0.10.12.0 mtl-2.2.2 text-1.2.4.1
1001+haddock-interfaces:
1002+haddock-html:
1003+---
1004+name: pretty
1005+version: 1.1.3.6
1006+visibility: public
1007+id: pretty-1.1.3.6
1008+key: pretty-1.1.3.6
1009+license: BSD-3-Clause
1010+maintainer: David Terei <code@davidterei.com>
1011+stability: Stable
1012+homepage: http://github.com/haskell/pretty
1013+synopsis: Pretty-printing library
1014+description:
1015+ This package contains a pretty-printing library, a set of API's
1016+ that provides a way to easily print out text in a consistent
1017+ format of your choosing. This is useful for compilers and related
1018+ tools.
1019+ This library was originally designed by John Hughes's and has since
1020+ been heavily modified by Simon Peyton Jones.
1021+category: Text
1022+exposed: True
1023+exposed-modules:
1024+ Text.PrettyPrint Text.PrettyPrint.Annotated
1025+ Text.PrettyPrint.Annotated.HughesPJ
1026+ Text.PrettyPrint.Annotated.HughesPJClass Text.PrettyPrint.HughesPJ
1027+ Text.PrettyPrint.HughesPJClass
1028+import-dirs:
1029+library-dirs:
1030+dynamic-library-dirs:
1031+data-dir:
1032+hs-libraries: HSpretty-1.1.3.6
1033+depends: base-4.14.1.0 deepseq-1.4.4.0 ghc-prim-0.6.1
1034+haddock-interfaces:
1035+haddock-html:
1036+---
1037+name: process
1038+version: 1.6.9.0
1039+visibility: public
1040+id: process-1.6.9.0
1041+key: process-1.6.9.0
1042+license: BSD-3-Clause
1043+maintainer: libraries@haskell.org
1044+synopsis: Process libraries
1045+description:
1046+ This package contains libraries for dealing with system processes.
1047+ The typed-process package is a more recent take on a process API,
1048+ which uses this package internally. It features better binary
1049+ support, easier concurrency, and a more composable API. You can
1050+ read more about it at
1051+ <https://github.com/fpco/typed-process/#readme>.
1052+category: System
1053+exposed: True
1054+exposed-modules: System.Cmd System.Process System.Process.Internals
1055+hidden-modules: System.Process.Common System.Process.Posix
1056+import-dirs:
1057+library-dirs:
1058+dynamic-library-dirs:
1059+data-dir:
1060+hs-libraries: HSprocess-1.6.9.0
1061+include-dirs:
1062+includes: runProcess.h
1063+depends:
1064+ base-4.14.1.0 deepseq-1.4.4.0 directory-1.3.6.0 filepath-1.4.2.1
1065+ unix-2.7.2.2
1066+haddock-interfaces:
1067+haddock-html:
1068+---
1069+name: stm
1070+version: 2.5.0.0
1071+visibility: public
1072+id: stm-2.5.0.0
1073+key: stm-2.5.0.0
1074+license: BSD-3-Clause
1075+maintainer: libraries@haskell.org
1076+homepage: https://wiki.haskell.org/Software_transactional_memory
1077+synopsis: Software Transactional Memory
1078+description:
1079+ Software Transactional Memory, or STM, is an abstraction for
1080+ concurrent communication. The main benefits of STM are
1081+ /composability/ and /modularity/. That is, using STM you can write
1082+ concurrent abstractions that can be easily composed with any other
1083+ abstraction built using STM, without exposing the details of how
1084+ your abstraction ensures safety. This is typically not the case
1085+ with other forms of concurrent communication, such as locks or
1086+ 'MVar's.
1087+category: Concurrency
1088+exposed: True
1089+exposed-modules:
1090+ Control.Concurrent.STM Control.Concurrent.STM.TArray
1091+ Control.Concurrent.STM.TBQueue Control.Concurrent.STM.TChan
1092+ Control.Concurrent.STM.TMVar Control.Concurrent.STM.TQueue
1093+ Control.Concurrent.STM.TSem Control.Concurrent.STM.TVar
1094+ Control.Monad.STM
1095+hidden-modules: Control.Sequential.STM
1096+import-dirs:
1097+library-dirs:
1098+dynamic-library-dirs:
1099+data-dir:
1100+hs-libraries: HSstm-2.5.0.0
1101+depends: array-0.5.4.0 base-4.14.1.0
1102+haddock-interfaces:
1103+haddock-html:
1104+---
1105+name: template-haskell
1106+version: 2.16.0.0
1107+visibility: public
1108+id: template-haskell-2.16.0.0
1109+key: template-haskell-2.16.0.0
1110+license: BSD-3-Clause
1111+maintainer: libraries@haskell.org
1112+synopsis: Support library for Template Haskell
1113+description:
1114+ This package provides modules containing facilities for manipulating
1115+ Haskell source code using Template Haskell.
1116+ See <http://www.haskell.org/haskellwiki/Template_Haskell> for more
1117+ information.
1118+category: Template Haskell
1119+exposed: True
1120+exposed-modules:
1121+ Language.Haskell.TH Language.Haskell.TH.LanguageExtensions
1122+ Language.Haskell.TH.Lib Language.Haskell.TH.Lib.Internal
1123+ Language.Haskell.TH.Ppr Language.Haskell.TH.PprLib
1124+ Language.Haskell.TH.Quote Language.Haskell.TH.Syntax
1125+hidden-modules: Language.Haskell.TH.Lib.Map
1126+import-dirs:
1127+library-dirs:
1128+dynamic-library-dirs:
1129+data-dir:
1130+hs-libraries: HStemplate-haskell-2.16.0.0
1131+depends:
1132+ base-4.14.1.0 ghc-boot-th-8.10.4.20210212 ghc-prim-0.6.1
1133+ pretty-1.1.3.6
1134+haddock-interfaces:
1135+haddock-html:
1136+---
1137+name: text
1138+version: 1.2.4.1
1139+visibility: public
1140+id: text-1.2.4.1
1141+key: text-1.2.4.1
1142+license: BSD-2-Clause
1143+copyright: 2009-2011 Bryan O'Sullivan, 2008-2009 Tom Harper
1144+maintainer:
1145+ Bryan O'Sullivan <bos@serpentine.com>, Herbert Valerio Riedel <hvr@gnu.org>
1146+author: Bryan O'Sullivan <bos@serpentine.com>
1147+homepage: https://github.com/haskell/text
1148+synopsis: An efficient packed Unicode text type.
1149+description:
1150+ An efficient packed, immutable Unicode text type (both strict and
1151+ lazy), with a powerful loop fusion optimization framework.
1152+ The 'Text' type represents Unicode character strings, in a time and
1153+ space-efficient manner. This package provides text processing
1154+ capabilities that are optimized for performance critical use, both
1155+ in terms of large data quantities and high speed.
1156+ The 'Text' type provides character-encoding, type-safe case
1157+ conversion via whole-string case conversion functions (see "Data.Text").
1158+ It also provides a range of functions for converting 'Text' values to
1159+ and from 'ByteStrings', using several standard encodings
1160+ (see "Data.Text.Encoding").
1161+ Efficient locale-sensitive support for text IO is also supported
1162+ (see "Data.Text.IO").
1163+ These modules are intended to be imported qualified, to avoid name
1164+ clashes with Prelude functions, e.g.
1165+ > import qualified Data.Text as T
1166+ == ICU Support
1167+ To use an extended and very rich family of functions for working
1168+ with Unicode text (including normalization, regular expressions,
1169+ non-standard encodings, text breaking, and locales), see
1170+ the [text-icu package](https://hackage.haskell.org/package/text-icu)
1171+ based on the well-respected and liberally
1172+ licensed [ICU library](http://site.icu-project.org/).
1173+ == Internal Representation: UTF-16 vs. UTF-8
1174+ Currently the @text@ library uses UTF-16 as its internal representation
1175+ which is [neither a fixed-width nor always the most dense representation](http://utf8everywhere.org/)
1176+ for Unicode text. We're currently investigating the feasibility
1177+ of [changing Text's internal representation to UTF-8](https://github.com/text-utf8)
1178+ and if you need such a 'Text' type right now you might be interested in using the spin-off
1179+ packages <https://hackage.haskell.org/package/text-utf8 text-utf8> and
1180+ <https://hackage.haskell.org/package/text-short text-short>.
1181+category: Data, Text
1182+exposed: True
1183+exposed-modules:
1184+ Data.Text Data.Text.Array Data.Text.Encoding
1185+ Data.Text.Encoding.Error Data.Text.Foreign Data.Text.IO
1186+ Data.Text.Internal Data.Text.Internal.Builder
1187+ Data.Text.Internal.Builder.Functions
1188+ Data.Text.Internal.Builder.Int.Digits
1189+ Data.Text.Internal.Builder.RealFloat.Functions
1190+ Data.Text.Internal.ByteStringCompat
1191+ Data.Text.Internal.Encoding.Fusion
1192+ Data.Text.Internal.Encoding.Fusion.Common
1193+ Data.Text.Internal.Encoding.Utf16 Data.Text.Internal.Encoding.Utf32
1194+ Data.Text.Internal.Encoding.Utf8 Data.Text.Internal.Functions
1195+ Data.Text.Internal.Fusion Data.Text.Internal.Fusion.CaseMapping
1196+ Data.Text.Internal.Fusion.Common Data.Text.Internal.Fusion.Size
1197+ Data.Text.Internal.Fusion.Types Data.Text.Internal.IO
1198+ Data.Text.Internal.Lazy Data.Text.Internal.Lazy.Encoding.Fusion
1199+ Data.Text.Internal.Lazy.Fusion Data.Text.Internal.Lazy.Search
1200+ Data.Text.Internal.Private Data.Text.Internal.Read
1201+ Data.Text.Internal.Search Data.Text.Internal.Unsafe
1202+ Data.Text.Internal.Unsafe.Char Data.Text.Internal.Unsafe.Shift
1203+ Data.Text.Lazy Data.Text.Lazy.Builder Data.Text.Lazy.Builder.Int
1204+ Data.Text.Lazy.Builder.RealFloat Data.Text.Lazy.Encoding
1205+ Data.Text.Lazy.IO Data.Text.Lazy.Internal Data.Text.Lazy.Read
1206+ Data.Text.Read Data.Text.Unsafe
1207+hidden-modules: Data.Text.Show
1208+import-dirs:
1209+library-dirs:
1210+dynamic-library-dirs:
1211+data-dir:
1212+hs-libraries: HStext-1.2.4.1
1213+depends:
1214+ array-0.5.4.0 base-4.14.1.0 binary-0.8.8.0 bytestring-0.10.12.0
1215+ deepseq-1.4.4.0 ghc-prim-0.6.1 integer-gmp-1.0.3.0
1216+ template-haskell-2.16.0.0
1217+haddock-interfaces:
1218+haddock-html:
1219+---
1220+name: time
1221+version: 1.9.3
1222+visibility: public
1223+id: time-1.9.3
1224+key: time-1.9.3
1225+license: BSD-3-Clause
1226+maintainer: <ashley@semantic.org>
1227+author: Ashley Yakeley
1228+stability: stable
1229+homepage: https://github.com/haskell/time
1230+synopsis: A time library
1231+description: Time, clocks and calendars
1232+category: Time
1233+exposed: True
1234+exposed-modules:
1235+ Data.Time Data.Time.Calendar Data.Time.Calendar.Easter
1236+ Data.Time.Calendar.Julian Data.Time.Calendar.MonthDay
1237+ Data.Time.Calendar.OrdinalDate Data.Time.Calendar.WeekDate
1238+ Data.Time.Clock Data.Time.Clock.POSIX Data.Time.Clock.System
1239+ Data.Time.Clock.TAI Data.Time.Format Data.Time.Format.ISO8601
1240+ Data.Time.Format.Internal Data.Time.LocalTime
1241+hidden-modules:
1242+ Data.Format Data.Time.Calendar.Private Data.Time.Calendar.Days
1243+ Data.Time.Calendar.Gregorian Data.Time.Calendar.CalendarDiffDays
1244+ Data.Time.Calendar.Week Data.Time.Calendar.JulianYearDay
1245+ Data.Time.Clock.Internal.DiffTime
1246+ Data.Time.Clock.Internal.AbsoluteTime
1247+ Data.Time.Clock.Internal.NominalDiffTime
1248+ Data.Time.Clock.Internal.POSIXTime
1249+ Data.Time.Clock.Internal.UniversalTime
1250+ Data.Time.Clock.Internal.SystemTime
1251+ Data.Time.Clock.Internal.UTCTime Data.Time.Clock.Internal.CTimeval
1252+ Data.Time.Clock.Internal.CTimespec Data.Time.Clock.Internal.UTCDiff
1253+ Data.Time.LocalTime.Internal.TimeZone
1254+ Data.Time.LocalTime.Internal.TimeOfDay
1255+ Data.Time.LocalTime.Internal.CalendarDiffTime
1256+ Data.Time.LocalTime.Internal.LocalTime
1257+ Data.Time.LocalTime.Internal.ZonedTime Data.Time.Format.Parse
1258+ Data.Time.Format.Locale Data.Time.Format.Format.Class
1259+ Data.Time.Format.Format.Instances Data.Time.Format.Parse.Class
1260+ Data.Time.Format.Parse.Instances
1261+import-dirs:
1262+library-dirs:
1263+dynamic-library-dirs:
1264+data-dir:
1265+hs-libraries: HStime-1.9.3
1266+include-dirs:
1267+depends: base-4.14.1.0 deepseq-1.4.4.0
1268+haddock-interfaces:
1269+haddock-html:
1270+---
1271+name: transformers
1272+version: 0.5.6.2
1273+visibility: public
1274+id: transformers-0.5.6.2
1275+key: transformers-0.5.6.2
1276+license: BSD-3-Clause
1277+maintainer: Ross Paterson <R.Paterson@city.ac.uk>
1278+author: Andy Gill, Ross Paterson
1279+synopsis: Concrete functor and monad transformers
1280+description:
1281+ A portable library of functor and monad transformers, inspired by
1282+ the paper
1283+ * \"Functional Programming with Overloading and Higher-Order
1284+ Polymorphism\", by Mark P Jones,
1285+ in /Advanced School of Functional Programming/, 1995
1286+ (<http://web.cecs.pdx.edu/~mpj/pubs/springschool.html>).
1287+ This package contains:
1288+ * the monad transformer class (in "Control.Monad.Trans.Class")
1289+ * concrete functor and monad transformers, each with associated
1290+ operations and functions to lift operations associated with other
1291+ transformers.
1292+ The package can be used on its own in portable Haskell code, in
1293+ which case operations need to be manually lifted through transformer
1294+ stacks (see "Control.Monad.Trans.Class" for some examples).
1295+ Alternatively, it can be used with the non-portable monad classes in
1296+ the @mtl@ or @monads-tf@ packages, which automatically lift operations
1297+ introduced by monad transformers through other transformers.
1298+category: Control
1299+exposed: True
1300+exposed-modules:
1301+ Control.Applicative.Backwards Control.Applicative.Lift
1302+ Control.Monad.Signatures Control.Monad.Trans.Accum
1303+ Control.Monad.Trans.Class Control.Monad.Trans.Cont
1304+ Control.Monad.Trans.Error Control.Monad.Trans.Except
1305+ Control.Monad.Trans.Identity Control.Monad.Trans.List
1306+ Control.Monad.Trans.Maybe Control.Monad.Trans.RWS
1307+ Control.Monad.Trans.RWS.CPS Control.Monad.Trans.RWS.Lazy
1308+ Control.Monad.Trans.RWS.Strict Control.Monad.Trans.Reader
1309+ Control.Monad.Trans.Select Control.Monad.Trans.State
1310+ Control.Monad.Trans.State.Lazy Control.Monad.Trans.State.Strict
1311+ Control.Monad.Trans.Writer Control.Monad.Trans.Writer.CPS
1312+ Control.Monad.Trans.Writer.Lazy Control.Monad.Trans.Writer.Strict
1313+ Data.Functor.Constant Data.Functor.Reverse
1314+import-dirs:
1315+library-dirs:
1316+dynamic-library-dirs:
1317+data-dir:
1318+hs-libraries: HStransformers-0.5.6.2
1319+depends: base-4.14.1.0
1320+haddock-interfaces:
1321+haddock-html:
1322+---
1323+name: unix
1324+version: 2.7.2.2
1325+visibility: public
1326+id: unix-2.7.2.2
1327+key: unix-2.7.2.2
1328+license: BSD-3-Clause
1329+maintainer: libraries@haskell.org
1330+homepage: https://github.com/haskell/unix
1331+synopsis: POSIX functionality
1332+description:
1333+ This package gives you access to the set of operating system
1334+ services standardised by
1335+ <http://pubs.opengroup.org/onlinepubs/9699919799/ POSIX.1-2008>
1336+ (or the IEEE Portable Operating System Interface for Computing
1337+ Environments - IEEE Std. 1003.1).
1338+ The package is not supported under Windows.
1339+category: System
1340+exposed: True
1341+exposed-modules:
1342+ System.Posix System.Posix.ByteString
1343+ System.Posix.ByteString.FilePath System.Posix.Directory
1344+ System.Posix.Directory.ByteString System.Posix.DynamicLinker
1345+ System.Posix.DynamicLinker.ByteString
1346+ System.Posix.DynamicLinker.Module
1347+ System.Posix.DynamicLinker.Module.ByteString
1348+ System.Posix.DynamicLinker.Prim System.Posix.Env
1349+ System.Posix.Env.ByteString System.Posix.Error System.Posix.Fcntl
1350+ System.Posix.Files System.Posix.Files.ByteString System.Posix.IO
1351+ System.Posix.IO.ByteString System.Posix.Process
1352+ System.Posix.Process.ByteString System.Posix.Process.Internals
1353+ System.Posix.Resource System.Posix.Semaphore System.Posix.SharedMem
1354+ System.Posix.Signals System.Posix.Signals.Exts System.Posix.Temp
1355+ System.Posix.Temp.ByteString System.Posix.Terminal
1356+ System.Posix.Terminal.ByteString System.Posix.Time
1357+ System.Posix.Unistd System.Posix.User
1358+hidden-modules:
1359+ System.Posix.Directory.Common System.Posix.DynamicLinker.Common
1360+ System.Posix.Files.Common System.Posix.IO.Common
1361+ System.Posix.Process.Common System.Posix.Terminal.Common
1362+import-dirs:
1363+library-dirs:
1364+dynamic-library-dirs:
1365+data-dir:
1366+hs-libraries: HSunix-2.7.2.2
1367+extra-libraries: rt util dl pthread
1368+include-dirs:
1369+includes: HsUnix.h execvpe.h
1370+depends: base-4.14.1.0 bytestring-0.10.12.0 time-1.9.3
1371+haddock-interfaces:
1372+haddock-html:
1373+---
1374+name: rts
1375+version: 1.0
1376+visibility: public
1377+id: rts
1378+key: rts
1379+license: BSD-3-Clause
1380+maintainer: glasgow-haskell-users@haskell.org
1381+exposed: True
1382+library-dirs:
1383+hs-libraries: HSrts
1384+extra-libraries: m rt dl ffi numa pthread
1385+include-dirs:
1386+includes: Stg.h
1387+ld-options:
1388+ "-Wl,-u,base_GHCziTopHandler_runIO_closure"
1389+ "-Wl,-u,base_GHCziTopHandler_runNonIO_closure"
1390+ "-Wl,-u,ghczmprim_GHCziTuple_Z0T_closure"
1391+ "-Wl,-u,ghczmprim_GHCziTypes_True_closure"
1392+ "-Wl,-u,ghczmprim_GHCziTypes_False_closure"
1393+ "-Wl,-u,base_GHCziPack_unpackCString_closure"
1394+ "-Wl,-u,base_GHCziWeak_runFinalizzerBatch_closure"
1395+ "-Wl,-u,base_GHCziIOziException_stackOverflow_closure"
1396+ "-Wl,-u,base_GHCziIOziException_heapOverflow_closure"
1397+ "-Wl,-u,base_GHCziIOziException_allocationLimitExceeded_closure"
1398+ "-Wl,-u,base_GHCziIOziException_blockedIndefinitelyOnMVar_closure"
1399+ "-Wl,-u,base_GHCziIOziException_blockedIndefinitelyOnSTM_closure"
1400+ "-Wl,-u,base_GHCziIOziException_cannotCompactFunction_closure"
1401+ "-Wl,-u,base_GHCziIOziException_cannotCompactPinned_closure"
1402+ "-Wl,-u,base_GHCziIOziException_cannotCompactMutable_closure"
1403+ "-Wl,-u,base_ControlziExceptionziBase_absentSumFieldError_closure"
1404+ "-Wl,-u,base_ControlziExceptionziBase_nonTermination_closure"
1405+ "-Wl,-u,base_ControlziExceptionziBase_nestedAtomically_closure"
1406+ "-Wl,-u,base_GHCziEventziThread_blockedOnBadFD_closure"
1407+ "-Wl,-u,base_GHCziConcziSync_runSparks_closure"
1408+ "-Wl,-u,base_GHCziConcziIO_ensureIOManagerIsRunning_closure"
1409+ "-Wl,-u,base_GHCziConcziIO_ioManagerCapabilitiesChanged_closure"
1410+ "-Wl,-u,base_GHCziConcziSignal_runHandlersPtr_closure"
1411+ "-Wl,-u,base_GHCziTopHandler_flushStdHandles_closure"
1412+ "-Wl,-u,base_GHCziTopHandler_runMainIO_closure"
1413+ "-Wl,-u,ghczmprim_GHCziTypes_Czh_con_info"
1414+ "-Wl,-u,ghczmprim_GHCziTypes_Izh_con_info"
1415+ "-Wl,-u,ghczmprim_GHCziTypes_Fzh_con_info"
1416+ "-Wl,-u,ghczmprim_GHCziTypes_Dzh_con_info"
1417+ "-Wl,-u,ghczmprim_GHCziTypes_Wzh_con_info"
1418+ "-Wl,-u,base_GHCziPtr_Ptr_con_info"
1419+ "-Wl,-u,base_GHCziPtr_FunPtr_con_info"
1420+ "-Wl,-u,base_GHCziInt_I8zh_con_info"
1421+ "-Wl,-u,base_GHCziInt_I16zh_con_info"
1422+ "-Wl,-u,base_GHCziInt_I32zh_con_info"
1423+ "-Wl,-u,base_GHCziInt_I64zh_con_info"
1424+ "-Wl,-u,base_GHCziWord_W8zh_con_info"
1425+ "-Wl,-u,base_GHCziWord_W16zh_con_info"
1426+ "-Wl,-u,base_GHCziWord_W32zh_con_info"
1427+ "-Wl,-u,base_GHCziWord_W64zh_con_info"
1428+ "-Wl,-u,base_GHCziStable_StablePtr_con_info"
1429+ "-Wl,-u,hs_atomic_add8" "-Wl,-u,hs_atomic_add16"
1430+ "-Wl,-u,hs_atomic_add32" "-Wl,-u,hs_atomic_add64"
1431+ "-Wl,-u,hs_atomic_sub8" "-Wl,-u,hs_atomic_sub16"
1432+ "-Wl,-u,hs_atomic_sub32" "-Wl,-u,hs_atomic_sub64"
1433+ "-Wl,-u,hs_atomic_and8" "-Wl,-u,hs_atomic_and16"
1434+ "-Wl,-u,hs_atomic_and32" "-Wl,-u,hs_atomic_and64"
1435+ "-Wl,-u,hs_atomic_nand8" "-Wl,-u,hs_atomic_nand16"
1436+ "-Wl,-u,hs_atomic_nand32" "-Wl,-u,hs_atomic_nand64"
1437+ "-Wl,-u,hs_atomic_or8" "-Wl,-u,hs_atomic_or16"
1438+ "-Wl,-u,hs_atomic_or32" "-Wl,-u,hs_atomic_or64"
1439+ "-Wl,-u,hs_atomic_xor8" "-Wl,-u,hs_atomic_xor16"
1440+ "-Wl,-u,hs_atomic_xor32" "-Wl,-u,hs_atomic_xor64"
1441+ "-Wl,-u,hs_cmpxchg8" "-Wl,-u,hs_cmpxchg16" "-Wl,-u,hs_cmpxchg32"
1442+ "-Wl,-u,hs_cmpxchg64" "-Wl,-u,hs_atomicread8"
1443+ "-Wl,-u,hs_atomicread16" "-Wl,-u,hs_atomicread32"
1444+ "-Wl,-u,hs_atomicread64" "-Wl,-u,hs_atomicwrite8"
1445+ "-Wl,-u,hs_atomicwrite16" "-Wl,-u,hs_atomicwrite32"
1446+ "-Wl,-u,hs_atomicwrite64"
materialized/dummy-ghc/aarch64-unknown-linux-gnu-aarch64-unknown-linux-gnu-ghc-8.10.4.20210212-x86_64-linux/ghc-pkg/versionnew file+1
@@ -0,0 +1 @@
1+GHC package manager version 8.10.4.20210212
materialized/dummy-ghc/aarch64-unknown-linux-gnu-aarch64-unknown-linux-gnu-ghc-8.10.4.20210212-x86_64-linux/ghc/infonew file+69
@@ -0,0 +1,69 @@
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")
14+ ,("ar flags","q")
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","ArchARM64")
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 llc command","llc")
34+ ,("LLVM opt command","opt")
35+ ,("LLVM clang command","clang")
36+ ,("integer library","integer-gmp")
37+ ,("Use interpreter","YES")
38+ ,("Use native code generator","NO")
39+ ,("Support SMP","YES")
40+ ,("RTS ways","l debug thr thr_debug thr_l thr_p thr_debug_p debug_p")
41+ ,("Tables next to code","YES")
42+ ,("Leading underscore","NO")
43+ ,("Use LibFFI","YES")
44+ ,("Use Threads","YES")
45+ ,("Use Debugging","NO")
46+ ,("RTS expects libdw","NO")
47+ ,("Project version","8.10.4.20210212")
48+ ,("Project Git commit id","6a01e28f4204ec17c587931311711fa76e0ea08d")
49+ ,("Booter version","8.6.5")
50+ ,("Stage","1")
51+ ,("Build platform","x86_64-unknown-linux")
52+ ,("Host platform","x86_64-unknown-linux")
53+ ,("Target platform","aarch64-unknown-linux")
54+ ,("Have interpreter","YES")
55+ ,("Object splitting supported","NO")
56+ ,("Have native code generator","NO")
57+ ,("Support dynamic-too","YES")
58+ ,("Support parallel --make","YES")
59+ ,("Support reexported-modules","YES")
60+ ,("Support thinning and renaming package flags","YES")
61+ ,("Support Backpack","YES")
62+ ,("Requires unified installed package IDs","YES")
63+ ,("Uses package keys","YES")
64+ ,("Uses unit IDs","YES")
65+ ,("Dynamic by default","NO")
66+ ,("GHC Dynamic","NO")
67+ ,("GHC Profiled","NO")
68+ ,("Debug on","NO")
69+ ]
materialized/dummy-ghc/aarch64-unknown-linux-gnu-aarch64-unknown-linux-gnu-ghc-8.10.4.20210212-x86_64-linux/ghc/numeric-versionnew file+1
@@ -0,0 +1 @@
1+8.10.4.20210212
materialized/dummy-ghc/aarch64-unknown-linux-gnu-aarch64-unknown-linux-gnu-ghc-8.10.4.20210212-x86_64-linux/ghc/supported-languagesnew file+255
@@ -0,0 +1,255 @@
1+Haskell98
2+Haskell2010
3+Unsafe
4+Trustworthy
5+Safe
6+AllowAmbiguousTypes
7+NoAllowAmbiguousTypes
8+AlternativeLayoutRule
9+NoAlternativeLayoutRule
10+AlternativeLayoutRuleTransitional
11+NoAlternativeLayoutRuleTransitional
12+Arrows
13+NoArrows
14+AutoDeriveTypeable
15+NoAutoDeriveTypeable
16+BangPatterns
17+NoBangPatterns
18+BinaryLiterals
19+NoBinaryLiterals
20+CApiFFI
21+NoCApiFFI
22+CPP
23+NoCPP
24+CUSKs
25+NoCUSKs
26+ConstrainedClassMethods
27+NoConstrainedClassMethods
28+ConstraintKinds
29+NoConstraintKinds
30+DataKinds
31+NoDataKinds
32+DatatypeContexts
33+NoDatatypeContexts
34+DefaultSignatures
35+NoDefaultSignatures
36+DeriveAnyClass
37+NoDeriveAnyClass
38+DeriveDataTypeable
39+NoDeriveDataTypeable
40+DeriveFoldable
41+NoDeriveFoldable
42+DeriveFunctor
43+NoDeriveFunctor
44+DeriveGeneric
45+NoDeriveGeneric
46+DeriveLift
47+NoDeriveLift
48+DeriveTraversable
49+NoDeriveTraversable
50+DerivingStrategies
51+NoDerivingStrategies
52+DerivingVia
53+NoDerivingVia
54+DisambiguateRecordFields
55+NoDisambiguateRecordFields
56+DoAndIfThenElse
57+NoDoAndIfThenElse
58+BlockArguments
59+NoBlockArguments
60+DoRec
61+NoDoRec
62+DuplicateRecordFields
63+NoDuplicateRecordFields
64+EmptyCase
65+NoEmptyCase
66+EmptyDataDecls
67+NoEmptyDataDecls
68+EmptyDataDeriving
69+NoEmptyDataDeriving
70+ExistentialQuantification
71+NoExistentialQuantification
72+ExplicitForAll
73+NoExplicitForAll
74+ExplicitNamespaces
75+NoExplicitNamespaces
76+ExtendedDefaultRules
77+NoExtendedDefaultRules
78+FlexibleContexts
79+NoFlexibleContexts
80+FlexibleInstances
81+NoFlexibleInstances
82+ForeignFunctionInterface
83+NoForeignFunctionInterface
84+FunctionalDependencies
85+NoFunctionalDependencies
86+GADTSyntax
87+NoGADTSyntax
88+GADTs
89+NoGADTs
90+GHCForeignImportPrim
91+NoGHCForeignImportPrim
92+GeneralizedNewtypeDeriving
93+NoGeneralizedNewtypeDeriving
94+GeneralisedNewtypeDeriving
95+NoGeneralisedNewtypeDeriving
96+ImplicitParams
97+NoImplicitParams
98+ImplicitPrelude
99+NoImplicitPrelude
100+ImportQualifiedPost
101+NoImportQualifiedPost
102+ImpredicativeTypes
103+NoImpredicativeTypes
104+IncoherentInstances
105+NoIncoherentInstances
106+TypeFamilyDependencies
107+NoTypeFamilyDependencies
108+InstanceSigs
109+NoInstanceSigs
110+ApplicativeDo
111+NoApplicativeDo
112+InterruptibleFFI
113+NoInterruptibleFFI
114+JavaScriptFFI
115+NoJavaScriptFFI
116+KindSignatures
117+NoKindSignatures
118+LambdaCase
119+NoLambdaCase
120+LiberalTypeSynonyms
121+NoLiberalTypeSynonyms
122+MagicHash
123+NoMagicHash
124+MonadComprehensions
125+NoMonadComprehensions
126+MonadFailDesugaring
127+NoMonadFailDesugaring
128+MonoLocalBinds
129+NoMonoLocalBinds
130+MonoPatBinds
131+NoMonoPatBinds
132+MonomorphismRestriction
133+NoMonomorphismRestriction
134+MultiParamTypeClasses
135+NoMultiParamTypeClasses
136+MultiWayIf
137+NoMultiWayIf
138+NumericUnderscores
139+NoNumericUnderscores
140+NPlusKPatterns
141+NoNPlusKPatterns
142+NamedFieldPuns
143+NoNamedFieldPuns
144+NamedWildCards
145+NoNamedWildCards
146+NegativeLiterals
147+NoNegativeLiterals
148+HexFloatLiterals
149+NoHexFloatLiterals
150+NondecreasingIndentation
151+NoNondecreasingIndentation
152+NullaryTypeClasses
153+NoNullaryTypeClasses
154+NumDecimals
155+NoNumDecimals
156+OverlappingInstances
157+NoOverlappingInstances
158+OverloadedLabels
159+NoOverloadedLabels
160+OverloadedLists
161+NoOverloadedLists
162+OverloadedStrings
163+NoOverloadedStrings
164+PackageImports
165+NoPackageImports
166+ParallelArrays
167+NoParallelArrays
168+ParallelListComp
169+NoParallelListComp
170+PartialTypeSignatures
171+NoPartialTypeSignatures
172+PatternGuards
173+NoPatternGuards
174+PatternSignatures
175+NoPatternSignatures
176+PatternSynonyms
177+NoPatternSynonyms
178+PolyKinds
179+NoPolyKinds
180+PolymorphicComponents
181+NoPolymorphicComponents
182+QuantifiedConstraints
183+NoQuantifiedConstraints
184+PostfixOperators
185+NoPostfixOperators
186+QuasiQuotes
187+NoQuasiQuotes
188+Rank2Types
189+NoRank2Types
190+RankNTypes
191+NoRankNTypes
192+RebindableSyntax
193+NoRebindableSyntax
194+RecordPuns
195+NoRecordPuns
196+RecordWildCards
197+NoRecordWildCards
198+RecursiveDo
199+NoRecursiveDo
200+RelaxedLayout
201+NoRelaxedLayout
202+RelaxedPolyRec
203+NoRelaxedPolyRec
204+RoleAnnotations
205+NoRoleAnnotations
206+ScopedTypeVariables
207+NoScopedTypeVariables
208+StandaloneDeriving
209+NoStandaloneDeriving
210+StarIsType
211+NoStarIsType
212+StaticPointers
213+NoStaticPointers
214+Strict
215+NoStrict
216+StrictData
217+NoStrictData
218+TemplateHaskell
219+NoTemplateHaskell
220+TemplateHaskellQuotes
221+NoTemplateHaskellQuotes
222+StandaloneKindSignatures
223+NoStandaloneKindSignatures
224+TraditionalRecordSyntax
225+NoTraditionalRecordSyntax
226+TransformListComp
227+NoTransformListComp
228+TupleSections
229+NoTupleSections
230+TypeApplications
231+NoTypeApplications
232+TypeInType
233+NoTypeInType
234+TypeFamilies
235+NoTypeFamilies
236+TypeOperators
237+NoTypeOperators
238+TypeSynonymInstances
239+NoTypeSynonymInstances
240+UnboxedTuples
241+NoUnboxedTuples
242+UnboxedSums
243+NoUnboxedSums
244+UndecidableInstances
245+NoUndecidableInstances
246+UndecidableSuperClasses
247+NoUndecidableSuperClasses
248+UnicodeSyntax
249+NoUnicodeSyntax
250+UnliftedFFITypes
251+NoUnliftedFFITypes
252+UnliftedNewtypes
253+NoUnliftedNewtypes
254+ViewPatterns
255+NoViewPatterns
materialized/dummy-ghc/aarch64-unknown-linux-gnu-aarch64-unknown-linux-gnu-ghc-8.10.4.20210212-x86_64-linux/ghc/versionnew file+1
@@ -0,0 +1 @@
1+The Glorious Glasgow Haskell Compilation System, version 8.10.4.20210212
materialized/dummy-ghc/aarch64-unknown-linux-gnu-aarch64-unknown-linux-gnu-ghc-8.10.5-x86_64-linux/ghc-pkg/dump-globalnew file+1443
@@ -0,0 +1,1443 @@
1+name: Cabal
2+version: 3.2.1.0
3+visibility: public
4+id: Cabal-3.2.1.0
5+key: Cabal-3.2.1.0
6+license: BSD-3-Clause
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
12+description:
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
19+exposed: True
20+exposed-modules:
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
156+hidden-modules:
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
168+import-dirs:
169+library-dirs:
170+dynamic-library-dirs:
171+data-dir:
172+hs-libraries: HSCabal-3.2.1.0
173+depends:
174+ array-0.5.4.0 base-4.14.2.0 binary-0.8.8.0 bytestring-0.10.12.0
175+ containers-0.6.4.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.9.0 text-1.2.4.1 time-1.9.3 transformers-0.5.6.2
178+ unix-2.7.2.2
179+haddock-interfaces:
180+haddock-html:
181+---
182+name: array
183+version: 0.5.4.0
184+visibility: public
185+id: array-0.5.4.0
186+key: array-0.5.4.0
187+license: BSD-3-Clause
188+maintainer: libraries@haskell.org
189+synopsis: Mutable and immutable arrays
190+description:
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
197+exposed: True
198+exposed-modules:
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
204+import-dirs:
205+library-dirs:
206+dynamic-library-dirs:
207+data-dir:
208+hs-libraries: HSarray-0.5.4.0
209+depends: base-4.14.2.0
210+haddock-interfaces:
211+haddock-html:
212+---
213+name: base
214+version: 4.14.2.0
215+visibility: public
216+id: base-4.14.2.0
217+key: base-4.14.2.0
218+license: BSD-3-Clause
219+maintainer: libraries@haskell.org
220+synopsis: Basic libraries
221+description:
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.
225+category: Prelude
226+exposed: True
227+exposed-modules:
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
283+hidden-modules:
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
297+import-dirs:
298+library-dirs:
299+dynamic-library-dirs:
300+data-dir:
301+hs-libraries: HSbase-4.14.2.0
302+include-dirs:
303+includes: HsBase.h
304+depends: ghc-prim-0.6.1 integer-gmp-1.0.3.0 rts
305+haddock-interfaces:
306+haddock-html:
307+---
308+name: binary
309+version: 0.8.8.0
310+visibility: public
311+id: binary-0.8.8.0
312+key: binary-0.8.8.0
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
318+synopsis:
319+ Binary serialisation for Haskell values using lazy ByteStrings
320+description:
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
328+ scenarios.
329+category: Data, Parsing
330+exposed: True
331+exposed-modules:
332+ Data.Binary Data.Binary.Builder Data.Binary.Get
333+ Data.Binary.Get.Internal Data.Binary.Put
334+hidden-modules:
335+ Data.Binary.Class Data.Binary.Internal Data.Binary.Generic
336+ Data.Binary.FloatCast
337+import-dirs:
338+library-dirs:
339+dynamic-library-dirs:
340+data-dir:
341+hs-libraries: HSbinary-0.8.8.0
342+depends:
343+ array-0.5.4.0 base-4.14.2.0 bytestring-0.10.12.0 containers-0.6.4.1
344+haddock-interfaces:
345+haddock-html:
346+---
347+name: bytestring
348+version: 0.10.12.0
349+visibility: public
350+id: bytestring-0.10.12.0
351+key: bytestring-0.10.12.0
352+license: BSD-3-Clause
353+copyright:
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>
360+author:
361+ Don Stewart,
362+ Duncan Coutts
363+homepage: https://github.com/haskell/bytestring
364+synopsis:
365+ Fast, compact, strict and lazy byte strings with a list interface
366+description:
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
394+category: Data
395+exposed: True
396+exposed-modules:
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
405+hidden-modules:
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
411+import-dirs:
412+library-dirs:
413+dynamic-library-dirs:
414+data-dir:
415+hs-libraries: HSbytestring-0.10.12.0
416+include-dirs:
417+includes: fpstring.h
418+depends:
419+ base-4.14.2.0 deepseq-1.4.4.0 ghc-prim-0.6.1 integer-gmp-1.0.3.0
420+haddock-interfaces:
421+haddock-html:
422+---
423+name: containers
424+version: 0.6.4.1
425+visibility: public
426+id: containers-0.6.4.1
427+key: containers-0.6.4.1
428+license: BSD-3-Clause
429+maintainer: libraries@haskell.org
430+synopsis: Assorted concrete container types
431+description:
432+ This package contains efficient general-purpose implementations
433+ of various immutable container types including sets, maps, sequences,
434+ trees, and graphs.
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
441+exposed: True
442+exposed-modules:
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
454+hidden-modules:
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
462+import-dirs:
463+library-dirs:
464+dynamic-library-dirs:
465+data-dir:
466+hs-libraries: HScontainers-0.6.4.1
467+depends: array-0.5.4.0 base-4.14.2.0 deepseq-1.4.4.0
468+haddock-interfaces:
469+haddock-html:
470+---
471+name: deepseq
472+version: 1.4.4.0
473+visibility: public
474+id: deepseq-1.4.4.0
475+key: deepseq-1.4.4.0
476+license: BSD-3-Clause
477+maintainer: libraries@haskell.org
478+synopsis: Deep evaluation of data structures
479+description:
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
485+ wrong thread.
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
491+ details.
492+category: Control
493+exposed: True
494+exposed-modules: Control.DeepSeq
495+hidden-modules: Control.DeepSeq.BackDoor
496+import-dirs:
497+library-dirs:
498+dynamic-library-dirs:
499+data-dir:
500+hs-libraries: HSdeepseq-1.4.4.0
501+depends: array-0.5.4.0 base-4.14.2.0
502+haddock-interfaces:
503+haddock-html:
504+---
505+name: directory
506+version: 1.3.6.0
507+visibility: public
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
513+description:
514+ This library provides a basic set of operations for manipulating files and
515+ directories in a portable way.
516+category: System
517+exposed: True
518+exposed-modules:
519+ System.Directory System.Directory.Internal
520+ System.Directory.Internal.Prelude
521+hidden-modules:
522+ System.Directory.Internal.C_utimensat
523+ System.Directory.Internal.Common System.Directory.Internal.Config
524+ System.Directory.Internal.Posix System.Directory.Internal.Windows
525+import-dirs:
526+library-dirs:
527+dynamic-library-dirs:
528+data-dir:
529+hs-libraries: HSdirectory-1.3.6.0
530+depends:
531+ base-4.14.2.0 filepath-1.4.2.1 time-1.9.3 unix-2.7.2.2
532+haddock-interfaces:
533+haddock-html:
534+---
535+name: exceptions
536+version: 0.10.4
537+visibility: public
538+id: exceptions-0.10.4
539+key: exceptions-0.10.4
540+license: BSD-3-Clause
541+copyright:
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
551+exposed: True
552+exposed-modules: Control.Monad.Catch Control.Monad.Catch.Pure
553+import-dirs:
554+library-dirs:
555+dynamic-library-dirs:
556+data-dir:
557+hs-libraries: HSexceptions-0.10.4
558+depends:
559+ base-4.14.2.0 mtl-2.2.2 stm-2.5.0.1 template-haskell-2.16.0.0
560+ transformers-0.5.6.2
561+haddock-interfaces:
562+haddock-html:
563+---
564+name: filepath
565+version: 1.4.2.1
566+visibility: public
567+id: filepath-1.4.2.1
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.
575+description:
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).
581+category: System
582+exposed: True
583+exposed-modules:
584+ System.FilePath System.FilePath.Posix System.FilePath.Windows
585+import-dirs:
586+library-dirs:
587+dynamic-library-dirs:
588+data-dir:
589+hs-libraries: HSfilepath-1.4.2.1
590+depends: base-4.14.2.0
591+haddock-interfaces:
592+haddock-html:
593+---
594+name: ghc-boot
595+version: 8.10.5
596+visibility: public
597+id: ghc-boot-8.10.5
598+key: ghc-boot-8.10.5
599+license: BSD-3-Clause
600+maintainer: ghc-devs@haskell.org
601+synopsis: Shared functionality between GHC and its boot libraries
602+description:
603+ This library is shared between GHC, ghc-pkg, and other boot
604+ libraries.
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.
613+category: GHC
614+exposed: True
615+exposed-modules:
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
619+import-dirs:
620+library-dirs:
621+dynamic-library-dirs:
622+data-dir:
623+hs-libraries: HSghc-boot-8.10.5
624+depends:
625+ base-4.14.2.0 binary-0.8.8.0 bytestring-0.10.12.0
626+ containers-0.6.4.1 directory-1.3.6.0 filepath-1.4.2.1
627+ ghc-boot-th-8.10.5
628+haddock-interfaces:
629+haddock-html:
630+---
631+name: ghc-boot-th
632+version: 8.10.5
633+visibility: public
634+id: ghc-boot-th-8.10.5
635+key: ghc-boot-th-8.10.5
636+license: BSD-3-Clause
637+maintainer: ghc-devs@haskell.org
638+synopsis:
639+ Shared functionality between GHC and the @template-haskell@
640+ library
641+description:
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.
647+category: GHC
648+exposed: True
649+exposed-modules:
650+ GHC.ForeignSrcLang.Type GHC.LanguageExtensions.Type GHC.Lexeme
651+import-dirs:
652+library-dirs:
653+dynamic-library-dirs:
654+data-dir:
655+hs-libraries: HSghc-boot-th-8.10.5
656+depends: base-4.14.2.0
657+haddock-interfaces:
658+haddock-html:
659+---
660+name: ghc-compact
661+version: 0.1.0.0
662+visibility: public
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
668+description:
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
675+ released).
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.
679+category: Data
680+exposed: True
681+exposed-modules: GHC.Compact GHC.Compact.Serialized
682+import-dirs:
683+library-dirs:
684+dynamic-library-dirs:
685+data-dir:
686+hs-libraries: HSghc-compact-0.1.0.0
687+depends: base-4.14.2.0 bytestring-0.10.12.0 ghc-prim-0.6.1
688+haddock-interfaces:
689+haddock-html:
690+---
691+name: ghc-heap
692+version: 8.10.5
693+visibility: public
694+id: ghc-heap-8.10.5
695+key: ghc-heap-8.10.5
696+license: BSD-3-Clause
697+maintainer: libraries@haskell.org
698+synopsis: Functions for walking GHC's heap
699+description:
700+ This package provides functions for walking the GHC heap data structures
701+ and retrieving information about those data structures.
702+category: GHC
703+exposed: True
704+exposed-modules:
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
708+ GHC.Exts.Heap.Utils
709+import-dirs:
710+library-dirs:
711+dynamic-library-dirs:
712+data-dir:
713+hs-libraries: HSghc-heap-8.10.5
714+depends: base-4.14.2.0 ghc-prim-0.6.1 rts
715+haddock-interfaces:
716+haddock-html:
717+---
718+name: ghc-prim
719+version: 0.6.1
720+visibility: public
721+id: ghc-prim-0.6.1
722+key: ghc-prim-0.6.1
723+license: BSD-3-Clause
724+maintainer: libraries@haskell.org
725+synopsis: GHC primitives
726+description:
727+ This package contains the primitive types and operations supplied by GHC.
728+category: GHC
729+exposed: True
730+exposed-modules:
731+ GHC.CString GHC.Classes GHC.Debug GHC.IntWord64 GHC.Magic
732+ GHC.Prim.Ext GHC.PrimopWrappers GHC.Tuple GHC.Types GHC.Prim
733+import-dirs:
734+library-dirs:
735+dynamic-library-dirs:
736+data-dir:
737+hs-libraries: HSghc-prim-0.6.1
738+extra-libraries: gcc c m
739+depends: rts
740+haddock-interfaces:
741+haddock-html:
742+---
743+name: ghci
744+version: 8.10.5
745+visibility: public
746+id: ghci-8.10.5
747+key: ghci-8.10.5
748+license: BSD-3-Clause
749+maintainer: ghc-devs@haskell.org
750+synopsis: The library supporting GHC's interactive interpreter
751+description:
752+ This library offers interfaces which mediate interactions between the
753+ @ghci@ interactive shell and @iserv@, GHC's out-of-process interpreter
754+ backend.
755+category: GHC
756+exposed: True
757+exposed-modules:
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
762+import-dirs:
763+library-dirs:
764+dynamic-library-dirs:
765+data-dir:
766+hs-libraries: HSghci-8.10.5
767+include-dirs:
768+depends:
769+ array-0.5.4.0 base-4.14.2.0 binary-0.8.8.0 bytestring-0.10.12.0
770+ containers-0.6.4.1 deepseq-1.4.4.0 filepath-1.4.2.1 ghc-boot-8.10.5
771+ ghc-boot-th-8.10.5 ghc-heap-8.10.5 rts template-haskell-2.16.0.0
772+ transformers-0.5.6.2 unix-2.7.2.2
773+haddock-interfaces:
774+haddock-html:
775+---
776+name: haskeline
777+version: 0.8.0.1
778+visibility: public
779+id: haskeline-0.8.0.1
780+key: haskeline-0.8.0.1
781+license: BSD-3-Clause
782+copyright: (c) Judah Jacobson
783+maintainer: Judah Jacobson <judah.jacobson@gmail.com>
784+author: Judah Jacobson
785+stability: Stable
786+homepage: https://github.com/judah/haskeline
787+synopsis:
788+ A command-line interface for user input, written in Haskell.
789+description:
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
793+ Haskell programs.
794+ Haskeline runs both on POSIX-compatible systems and on Windows.
795+category: User Interfaces
796+exposed: True
797+exposed-modules:
798+ System.Console.Haskeline System.Console.Haskeline.Completion
799+ System.Console.Haskeline.History System.Console.Haskeline.IO
800+ System.Console.Haskeline.Internal
801+hidden-modules:
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
817+import-dirs:
818+library-dirs:
819+dynamic-library-dirs:
820+data-dir:
821+hs-libraries: HShaskeline-0.8.0.1
822+depends:
823+ base-4.14.2.0 bytestring-0.10.12.0 containers-0.6.4.1
824+ directory-1.3.6.0 exceptions-0.10.4 filepath-1.4.2.1
825+ process-1.6.9.0 stm-2.5.0.1 transformers-0.5.6.2 unix-2.7.2.2
826+haddock-interfaces:
827+haddock-html:
828+---
829+name: hpc
830+version: 0.6.1.0
831+visibility: public
832+id: hpc-0.6.1.0
833+key: hpc-0.6.1.0
834+license: BSD-3-Clause
835+maintainer: ghc-devs@haskell.org
836+author: Andy Gill
837+synopsis: Code Coverage Library for Haskell
838+description:
839+ This package provides the code coverage library for Haskell.
840+ See <http://www.haskell.org/haskellwiki/Haskell_program_coverage> for more
841+ information.
842+category: Control
843+exposed: True
844+exposed-modules:
845+ Trace.Hpc.Mix Trace.Hpc.Reflect Trace.Hpc.Tix Trace.Hpc.Util
846+import-dirs:
847+library-dirs:
848+dynamic-library-dirs:
849+data-dir:
850+hs-libraries: HShpc-0.6.1.0
851+depends:
852+ base-4.14.2.0 containers-0.6.4.1 deepseq-1.4.4.0 directory-1.3.6.0
853+ filepath-1.4.2.1 time-1.9.3
854+haddock-interfaces:
855+haddock-html:
856+---
857+name: integer-gmp
858+version: 1.0.3.0
859+visibility: public
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
866+description:
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
874+exposed: True
875+exposed-modules:
876+ GHC.Integer GHC.Integer.GMP.Internals GHC.Integer.Logarithms
877+ GHC.Integer.Logarithms.Internals
878+hidden-modules: GHC.Integer.Type
879+import-dirs:
880+library-dirs:
881+dynamic-library-dirs:
882+data-dir:
883+hs-libraries: HSinteger-gmp-1.0.3.0
884+extra-libraries: gmp
885+include-dirs:
886+depends: ghc-prim-0.6.1
887+haddock-interfaces:
888+haddock-html:
889+---
890+name: libiserv
891+version: 8.10.5
892+visibility: public
893+id: libiserv-8.10.5
894+key: libiserv-8.10.5
895+license: BSD-3-Clause
896+copyright: XXX
897+maintainer: XXX
898+author: XXX
899+synopsis: Provides shared functionality between iserv and iserv-proxy
900+category: Development
901+exposed: True
902+exposed-modules: GHCi.Utils Lib
903+import-dirs:
904+library-dirs:
905+dynamic-library-dirs:
906+data-dir:
907+hs-libraries: HSlibiserv-8.10.5
908+depends:
909+ base-4.14.2.0 binary-0.8.8.0 bytestring-0.10.12.0
910+ containers-0.6.4.1 deepseq-1.4.4.0 ghci-8.10.5 unix-2.7.2.2
911+haddock-interfaces:
912+haddock-html:
913+---
914+name: mtl
915+version: 2.2.2
916+visibility: public
917+id: mtl-2.2.2
918+key: mtl-2.2.2
919+license: BSD-3-Clause
920+maintainer: Edward Kmett <ekmett@gmail.com>
921+author: Andy Gill
922+homepage: http://github.com/haskell/mtl
923+synopsis: Monad classes, using functional dependencies
924+description:
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>).
930+category: Control
931+exposed: True
932+exposed-modules:
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
943+import-dirs:
944+library-dirs:
945+dynamic-library-dirs:
946+data-dir:
947+hs-libraries: HSmtl-2.2.2
948+depends: base-4.14.2.0 transformers-0.5.6.2
949+haddock-interfaces:
950+haddock-html:
951+---
952+name: parsec
953+version: 3.1.14.0
954+visibility: public
955+id: parsec-3.1.14.0
956+key: parsec-3.1.14.0
957+license: BSD-3-Clause
958+maintainer: Herbert Valerio Riedel <hvr@gnu.org>
959+author:
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
963+description:
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
969+ input stream type.
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
974+ the future.
975+category: Parsing
976+exposed: True
977+exposed-modules:
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
992+import-dirs:
993+library-dirs:
994+dynamic-library-dirs:
995+data-dir:
996+hs-libraries: HSparsec-3.1.14.0
997+depends:
998+ base-4.14.2.0 bytestring-0.10.12.0 mtl-2.2.2 text-1.2.4.1
999+haddock-interfaces:
1000+haddock-html:
1001+---
1002+name: pretty
1003+version: 1.1.3.6
1004+visibility: public
1005+id: pretty-1.1.3.6
1006+key: pretty-1.1.3.6
1007+license: BSD-3-Clause
1008+maintainer: David Terei <code@davidterei.com>
1009+stability: Stable
1010+homepage: http://github.com/haskell/pretty
1011+synopsis: Pretty-printing library
1012+description:
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
1016+ tools.
1017+ This library was originally designed by John Hughes's and has since
1018+ been heavily modified by Simon Peyton Jones.
1019+category: Text
1020+exposed: True
1021+exposed-modules:
1022+ Text.PrettyPrint Text.PrettyPrint.Annotated
1023+ Text.PrettyPrint.Annotated.HughesPJ
1024+ Text.PrettyPrint.Annotated.HughesPJClass Text.PrettyPrint.HughesPJ
1025+ Text.PrettyPrint.HughesPJClass
1026+import-dirs:
1027+library-dirs:
1028+dynamic-library-dirs:
1029+data-dir:
1030+hs-libraries: HSpretty-1.1.3.6
1031+depends: base-4.14.2.0 deepseq-1.4.4.0 ghc-prim-0.6.1
1032+haddock-interfaces:
1033+haddock-html:
1034+---
1035+name: process
1036+version: 1.6.9.0
1037+visibility: public
1038+id: process-1.6.9.0
1039+key: process-1.6.9.0
1040+license: BSD-3-Clause
1041+maintainer: libraries@haskell.org
1042+synopsis: Process libraries
1043+description:
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>.
1050+category: System
1051+exposed: True
1052+exposed-modules: System.Cmd System.Process System.Process.Internals
1053+hidden-modules: System.Process.Common System.Process.Posix
1054+import-dirs:
1055+library-dirs:
1056+dynamic-library-dirs:
1057+data-dir:
1058+hs-libraries: HSprocess-1.6.9.0
1059+include-dirs:
1060+includes: runProcess.h
1061+depends:
1062+ base-4.14.2.0 deepseq-1.4.4.0 directory-1.3.6.0 filepath-1.4.2.1
1063+ unix-2.7.2.2
1064+haddock-interfaces:
1065+haddock-html:
1066+---
1067+name: stm
1068+version: 2.5.0.1
1069+visibility: public
1070+id: stm-2.5.0.1
1071+key: stm-2.5.0.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
1076+description:
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
1084+ 'MVar's.
1085+category: Concurrency
1086+exposed: True
1087+exposed-modules:
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
1092+ Control.Monad.STM
1093+hidden-modules: Control.Sequential.STM
1094+import-dirs:
1095+library-dirs:
1096+dynamic-library-dirs:
1097+data-dir:
1098+hs-libraries: HSstm-2.5.0.1
1099+depends: array-0.5.4.0 base-4.14.2.0
1100+haddock-interfaces:
1101+haddock-html:
1102+---
1103+name: template-haskell
1104+version: 2.16.0.0
1105+visibility: public
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
1111+description:
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
1115+ information.
1116+category: Template Haskell
1117+exposed: True
1118+exposed-modules:
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
1124+import-dirs:
1125+library-dirs:
1126+dynamic-library-dirs:
1127+data-dir:
1128+hs-libraries: HStemplate-haskell-2.16.0.0
1129+depends:
1130+ base-4.14.2.0 ghc-boot-th-8.10.5 ghc-prim-0.6.1 pretty-1.1.3.6
1131+haddock-interfaces:
1132+haddock-html:
1133+---
1134+name: text
1135+version: 1.2.4.1
1136+visibility: public
1137+id: text-1.2.4.1
1138+key: text-1.2.4.1
1139+license: BSD-2-Clause
1140+copyright: 2009-2011 Bryan O'Sullivan, 2008-2009 Tom Harper
1141+maintainer:
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.
1146+description:
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
1163+ == ICU Support
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
1179+exposed: True
1180+exposed-modules:
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
1205+import-dirs:
1206+library-dirs:
1207+dynamic-library-dirs:
1208+data-dir:
1209+hs-libraries: HStext-1.2.4.1
1210+depends:
1211+ array-0.5.4.0 base-4.14.2.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
1214+haddock-interfaces:
1215+haddock-html:
1216+---
1217+name: time
1218+version: 1.9.3
1219+visibility: public
1220+id: time-1.9.3
1221+key: time-1.9.3
1222+license: BSD-3-Clause
1223+maintainer: <ashley@semantic.org>
1224+author: Ashley Yakeley
1225+stability: stable
1226+homepage: https://github.com/haskell/time
1227+synopsis: A time library
1228+description: Time, clocks and calendars
1229+category: Time
1230+exposed: True
1231+exposed-modules:
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
1238+hidden-modules:
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
1258+import-dirs:
1259+library-dirs:
1260+dynamic-library-dirs:
1261+data-dir:
1262+hs-libraries: HStime-1.9.3
1263+include-dirs:
1264+depends: base-4.14.2.0 deepseq-1.4.4.0
1265+haddock-interfaces:
1266+haddock-html:
1267+---
1268+name: transformers
1269+version: 0.5.6.2
1270+visibility: public
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
1277+description:
1278+ A portable library of functor and monad transformers, inspired by
1279+ the paper
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
1288+ transformers.
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.
1295+category: Control
1296+exposed: True
1297+exposed-modules:
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
1311+import-dirs:
1312+library-dirs:
1313+dynamic-library-dirs:
1314+data-dir:
1315+hs-libraries: HStransformers-0.5.6.2
1316+depends: base-4.14.2.0
1317+haddock-interfaces:
1318+haddock-html:
1319+---
1320+name: unix
1321+version: 2.7.2.2
1322+visibility: public
1323+id: unix-2.7.2.2
1324+key: unix-2.7.2.2
1325+license: BSD-3-Clause
1326+maintainer: libraries@haskell.org
1327+homepage: https://github.com/haskell/unix
1328+synopsis: POSIX functionality
1329+description:
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.
1336+category: System
1337+exposed: True
1338+exposed-modules:
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
1355+hidden-modules:
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
1359+import-dirs:
1360+library-dirs:
1361+dynamic-library-dirs:
1362+data-dir:
1363+hs-libraries: HSunix-2.7.2.2
1364+extra-libraries: rt util dl pthread
1365+include-dirs:
1366+includes: HsUnix.h execvpe.h
1367+depends: base-4.14.2.0 bytestring-0.10.12.0 time-1.9.3
1368+haddock-interfaces:
1369+haddock-html:
1370+---
1371+name: rts
1372+version: 1.0.1
1373+visibility: public
1374+id: rts
1375+key: rts
1376+license: BSD-3-Clause
1377+maintainer: glasgow-haskell-users@haskell.org
1378+exposed: True
1379+library-dirs:
1380+hs-libraries: HSrts
1381+extra-libraries: m rt dl ffi numa pthread
1382+include-dirs:
1383+includes: Stg.h
1384+ld-options:
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.5-x86_64-linux/ghc-pkg/versionnew file+1
@@ -0,0 +1 @@
1+GHC package manager version 8.10.5
materialized/dummy-ghc/aarch64-unknown-linux-gnu-aarch64-unknown-linux-gnu-ghc-8.10.5-x86_64-linux/ghc/infonew file+69
@@ -0,0 +1,69 @@
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")
14+ ,("ar flags","q")
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 llc command","llc")
34+ ,("LLVM opt command","opt")
35+ ,("LLVM clang command","clang")
36+ ,("integer library","integer-gmp")
37+ ,("Use interpreter","YES")
38+ ,("Use native code generator","NO")
39+ ,("Support SMP","YES")
40+ ,("RTS ways","l debug thr thr_debug thr_l thr_p thr_debug_p debug_p")
41+ ,("Tables next to code","YES")
42+ ,("Leading underscore","NO")
43+ ,("Use LibFFI","YES")
44+ ,("Use Threads","YES")
45+ ,("Use Debugging","NO")
46+ ,("RTS expects libdw","NO")
47+ ,("Project version","8.10.5")
48+ ,("Project Git commit id","a43a5650f51fdc04d757abc3d86b0a23ec518259")
49+ ,("Booter version","8.8.4")
50+ ,("Stage","1")
51+ ,("Build platform","x86_64-unknown-linux")
52+ ,("Host platform","x86_64-unknown-linux")
53+ ,("Target platform","aarch64-unknown-linux")
54+ ,("Have interpreter","YES")
55+ ,("Object splitting supported","NO")
56+ ,("Have native code generator","NO")
57+ ,("Support dynamic-too","YES")
58+ ,("Support parallel --make","YES")
59+ ,("Support reexported-modules","YES")
60+ ,("Support thinning and renaming package flags","YES")
61+ ,("Support Backpack","YES")
62+ ,("Requires unified installed package IDs","YES")
63+ ,("Uses package keys","YES")
64+ ,("Uses unit IDs","YES")
65+ ,("Dynamic by default","NO")
66+ ,("GHC Dynamic","NO")
67+ ,("GHC Profiled","NO")
68+ ,("Debug on","NO")
69+ ]
materialized/dummy-ghc/aarch64-unknown-linux-gnu-aarch64-unknown-linux-gnu-ghc-8.10.5-x86_64-linux/ghc/numeric-versionnew file+1
@@ -0,0 +1 @@
1+8.10.5
materialized/dummy-ghc/aarch64-unknown-linux-gnu-aarch64-unknown-linux-gnu-ghc-8.10.5-x86_64-linux/ghc/supported-languagesnew file+255
@@ -0,0 +1,255 @@
1+Haskell98
2+Haskell2010
3+Unsafe
4+Trustworthy
5+Safe
6+AllowAmbiguousTypes
7+NoAllowAmbiguousTypes
8+AlternativeLayoutRule
9+NoAlternativeLayoutRule
10+AlternativeLayoutRuleTransitional
11+NoAlternativeLayoutRuleTransitional
12+Arrows
13+NoArrows
14+AutoDeriveTypeable
15+NoAutoDeriveTypeable
16+BangPatterns
17+NoBangPatterns
18+BinaryLiterals
19+NoBinaryLiterals
20+CApiFFI
21+NoCApiFFI
22+CPP
23+NoCPP
24+CUSKs
25+NoCUSKs
26+ConstrainedClassMethods
27+NoConstrainedClassMethods
28+ConstraintKinds
29+NoConstraintKinds
30+DataKinds
31+NoDataKinds
32+DatatypeContexts
33+NoDatatypeContexts
34+DefaultSignatures
35+NoDefaultSignatures
36+DeriveAnyClass
37+NoDeriveAnyClass
38+DeriveDataTypeable
39+NoDeriveDataTypeable
40+DeriveFoldable
41+NoDeriveFoldable
42+DeriveFunctor
43+NoDeriveFunctor
44+DeriveGeneric
45+NoDeriveGeneric
46+DeriveLift
47+NoDeriveLift
48+DeriveTraversable
49+NoDeriveTraversable
50+DerivingStrategies
51+NoDerivingStrategies
52+DerivingVia
53+NoDerivingVia
54+DisambiguateRecordFields
55+NoDisambiguateRecordFields
56+DoAndIfThenElse
57+NoDoAndIfThenElse
58+BlockArguments
59+NoBlockArguments
60+DoRec
61+NoDoRec
62+DuplicateRecordFields
63+NoDuplicateRecordFields
64+EmptyCase
65+NoEmptyCase
66+EmptyDataDecls
67+NoEmptyDataDecls
68+EmptyDataDeriving
69+NoEmptyDataDeriving
70+ExistentialQuantification
71+NoExistentialQuantification
72+ExplicitForAll
73+NoExplicitForAll
74+ExplicitNamespaces
75+NoExplicitNamespaces
76+ExtendedDefaultRules
77+NoExtendedDefaultRules
78+FlexibleContexts
79+NoFlexibleContexts
80+FlexibleInstances
81+NoFlexibleInstances
82+ForeignFunctionInterface
83+NoForeignFunctionInterface
84+FunctionalDependencies
85+NoFunctionalDependencies
86+GADTSyntax
87+NoGADTSyntax
88+GADTs
89+NoGADTs
90+GHCForeignImportPrim
91+NoGHCForeignImportPrim
92+GeneralizedNewtypeDeriving
93+NoGeneralizedNewtypeDeriving
94+GeneralisedNewtypeDeriving
95+NoGeneralisedNewtypeDeriving
96+ImplicitParams
97+NoImplicitParams
98+ImplicitPrelude
99+NoImplicitPrelude
100+ImportQualifiedPost
101+NoImportQualifiedPost
102+ImpredicativeTypes
103+NoImpredicativeTypes
104+IncoherentInstances
105+NoIncoherentInstances
106+TypeFamilyDependencies
107+NoTypeFamilyDependencies
108+InstanceSigs
109+NoInstanceSigs
110+ApplicativeDo
111+NoApplicativeDo
112+InterruptibleFFI
113+NoInterruptibleFFI
114+JavaScriptFFI
115+NoJavaScriptFFI
116+KindSignatures
117+NoKindSignatures
118+LambdaCase
119+NoLambdaCase
120+LiberalTypeSynonyms
121+NoLiberalTypeSynonyms
122+MagicHash
123+NoMagicHash
124+MonadComprehensions
125+NoMonadComprehensions
126+MonadFailDesugaring
127+NoMonadFailDesugaring
128+MonoLocalBinds
129+NoMonoLocalBinds
130+MonoPatBinds
131+NoMonoPatBinds
132+MonomorphismRestriction
133+NoMonomorphismRestriction
134+MultiParamTypeClasses
135+NoMultiParamTypeClasses
136+MultiWayIf
137+NoMultiWayIf
138+NumericUnderscores
139+NoNumericUnderscores
140+NPlusKPatterns
141+NoNPlusKPatterns
142+NamedFieldPuns
143+NoNamedFieldPuns
144+NamedWildCards
145+NoNamedWildCards
146+NegativeLiterals
147+NoNegativeLiterals
148+HexFloatLiterals
149+NoHexFloatLiterals
150+NondecreasingIndentation
151+NoNondecreasingIndentation
152+NullaryTypeClasses
153+NoNullaryTypeClasses
154+NumDecimals
155+NoNumDecimals
156+OverlappingInstances
157+NoOverlappingInstances
158+OverloadedLabels
159+NoOverloadedLabels
160+OverloadedLists
161+NoOverloadedLists
162+OverloadedStrings
163+NoOverloadedStrings
164+PackageImports
165+NoPackageImports
166+ParallelArrays
167+NoParallelArrays
168+ParallelListComp
169+NoParallelListComp
170+PartialTypeSignatures
171+NoPartialTypeSignatures
172+PatternGuards
173+NoPatternGuards
174+PatternSignatures
175+NoPatternSignatures
176+PatternSynonyms
177+NoPatternSynonyms
178+PolyKinds
179+NoPolyKinds
180+PolymorphicComponents
181+NoPolymorphicComponents
182+QuantifiedConstraints
183+NoQuantifiedConstraints
184+PostfixOperators
185+NoPostfixOperators
186+QuasiQuotes
187+NoQuasiQuotes
188+Rank2Types
189+NoRank2Types
190+RankNTypes
191+NoRankNTypes
192+RebindableSyntax
193+NoRebindableSyntax
194+RecordPuns
195+NoRecordPuns
196+RecordWildCards
197+NoRecordWildCards
198+RecursiveDo
199+NoRecursiveDo
200+RelaxedLayout
201+NoRelaxedLayout
202+RelaxedPolyRec
203+NoRelaxedPolyRec
204+RoleAnnotations
205+NoRoleAnnotations
206+ScopedTypeVariables
207+NoScopedTypeVariables
208+StandaloneDeriving
209+NoStandaloneDeriving
210+StarIsType
211+NoStarIsType
212+StaticPointers
213+NoStaticPointers
214+Strict
215+NoStrict
216+StrictData
217+NoStrictData
218+TemplateHaskell
219+NoTemplateHaskell
220+TemplateHaskellQuotes
221+NoTemplateHaskellQuotes
222+StandaloneKindSignatures
223+NoStandaloneKindSignatures
224+TraditionalRecordSyntax
225+NoTraditionalRecordSyntax
226+TransformListComp
227+NoTransformListComp
228+TupleSections
229+NoTupleSections
230+TypeApplications
231+NoTypeApplications
232+TypeInType
233+NoTypeInType
234+TypeFamilies
235+NoTypeFamilies
236+TypeOperators
237+NoTypeOperators
238+TypeSynonymInstances
239+NoTypeSynonymInstances
240+UnboxedTuples
241+NoUnboxedTuples
242+UnboxedSums
243+NoUnboxedSums
244+UndecidableInstances
245+NoUndecidableInstances
246+UndecidableSuperClasses
247+NoUndecidableSuperClasses
248+UnicodeSyntax
249+NoUnicodeSyntax
250+UnliftedFFITypes
251+NoUnliftedFFITypes
252+UnliftedNewtypes
253+NoUnliftedNewtypes
254+ViewPatterns
255+NoViewPatterns
materialized/dummy-ghc/aarch64-unknown-linux-gnu-aarch64-unknown-linux-gnu-ghc-8.10.5-x86_64-linux/ghc/versionnew file+1
@@ -0,0 +1 @@
1+The Glorious Glasgow Haskell Compilation System, version 8.10.5
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 @@
1+name: Cabal
2+version: 3.2.1.0
3+visibility: public
4+id: Cabal-3.2.1.0
5+key: Cabal-3.2.1.0
6+license: BSD-3-Clause
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
12+description:
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
19+exposed: True
20+exposed-modules:
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
156+hidden-modules:
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
168+import-dirs:
169+library-dirs:
170+dynamic-library-dirs:
171+data-dir:
172+hs-libraries: HSCabal-3.2.1.0
173+depends:
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
178+ unix-2.7.2.2
179+haddock-interfaces:
180+haddock-html:
181+---
182+name: array
183+version: 0.5.4.0
184+visibility: public
185+id: array-0.5.4.0
186+key: array-0.5.4.0
187+license: BSD-3-Clause
188+maintainer: libraries@haskell.org
189+synopsis: Mutable and immutable arrays
190+description:
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
197+exposed: True
198+exposed-modules:
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
204+import-dirs:
205+library-dirs:
206+dynamic-library-dirs:
207+data-dir:
208+hs-libraries: HSarray-0.5.4.0
209+depends: base-4.14.3.0
210+haddock-interfaces:
211+haddock-html:
212+---
213+name: base
214+version: 4.14.3.0
215+visibility: public
216+id: base-4.14.3.0
217+key: base-4.14.3.0
218+license: BSD-3-Clause
219+maintainer: libraries@haskell.org
220+synopsis: Basic libraries
221+description:
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.
225+category: Prelude
226+exposed: True
227+exposed-modules:
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
283+hidden-modules:
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
297+import-dirs:
298+library-dirs:
299+dynamic-library-dirs:
300+data-dir:
301+hs-libraries: HSbase-4.14.3.0
302+include-dirs:
303+includes: HsBase.h
304+depends: ghc-prim-0.6.1 integer-gmp-1.0.3.0 rts
305+haddock-interfaces:
306+haddock-html:
307+---
308+name: binary
309+version: 0.8.8.0
310+visibility: public
311+id: binary-0.8.8.0
312+key: binary-0.8.8.0
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
318+synopsis:
319+ Binary serialisation for Haskell values using lazy ByteStrings
320+description:
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
328+ scenarios.
329+category: Data, Parsing
330+exposed: True
331+exposed-modules:
332+ Data.Binary Data.Binary.Builder Data.Binary.Get
333+ Data.Binary.Get.Internal Data.Binary.Put
334+hidden-modules:
335+ Data.Binary.Class Data.Binary.Internal Data.Binary.Generic
336+ Data.Binary.FloatCast
337+import-dirs:
338+library-dirs:
339+dynamic-library-dirs:
340+data-dir:
341+hs-libraries: HSbinary-0.8.8.0
342+depends:
343+ array-0.5.4.0 base-4.14.3.0 bytestring-0.10.12.0 containers-0.6.5.1
344+haddock-interfaces:
345+haddock-html:
346+---
347+name: bytestring
348+version: 0.10.12.0
349+visibility: public
350+id: bytestring-0.10.12.0
351+key: bytestring-0.10.12.0
352+license: BSD-3-Clause
353+copyright:
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>
360+author:
361+ Don Stewart,
362+ Duncan Coutts
363+homepage: https://github.com/haskell/bytestring
364+synopsis:
365+ Fast, compact, strict and lazy byte strings with a list interface
366+description:
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
394+category: Data
395+exposed: True
396+exposed-modules:
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
405+hidden-modules:
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
411+import-dirs:
412+library-dirs:
413+dynamic-library-dirs:
414+data-dir:
415+hs-libraries: HSbytestring-0.10.12.0
416+include-dirs:
417+includes: fpstring.h
418+depends:
419+ base-4.14.3.0 deepseq-1.4.4.0 ghc-prim-0.6.1 integer-gmp-1.0.3.0
420+haddock-interfaces:
421+haddock-html:
422+---
423+name: containers
424+version: 0.6.5.1
425+visibility: public
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
431+description:
432+ This package contains efficient general-purpose implementations
433+ of various immutable container types including sets, maps, sequences,
434+ trees, and graphs.
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
441+exposed: True
442+exposed-modules:
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
454+hidden-modules:
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
462+import-dirs:
463+library-dirs:
464+dynamic-library-dirs:
465+data-dir:
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
468+haddock-interfaces:
469+haddock-html:
470+---
471+name: deepseq
472+version: 1.4.4.0
473+visibility: public
474+id: deepseq-1.4.4.0
475+key: deepseq-1.4.4.0
476+license: BSD-3-Clause
477+maintainer: libraries@haskell.org
478+synopsis: Deep evaluation of data structures
479+description:
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
485+ wrong thread.
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
491+ details.
492+category: Control
493+exposed: True
494+exposed-modules: Control.DeepSeq
495+hidden-modules: Control.DeepSeq.BackDoor
496+import-dirs:
497+library-dirs:
498+dynamic-library-dirs:
499+data-dir:
500+hs-libraries: HSdeepseq-1.4.4.0
501+depends: array-0.5.4.0 base-4.14.3.0
502+haddock-interfaces:
503+haddock-html:
504+---
505+name: directory
506+version: 1.3.6.0
507+visibility: public
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
513+description:
514+ This library provides a basic set of operations for manipulating files and
515+ directories in a portable way.
516+category: System
517+exposed: True
518+exposed-modules:
519+ System.Directory System.Directory.Internal
520+ System.Directory.Internal.Prelude
521+hidden-modules:
522+ System.Directory.Internal.C_utimensat
523+ System.Directory.Internal.Common System.Directory.Internal.Config
524+ System.Directory.Internal.Posix System.Directory.Internal.Windows
525+import-dirs:
526+library-dirs:
527+dynamic-library-dirs:
528+data-dir:
529+hs-libraries: HSdirectory-1.3.6.0
530+depends:
531+ base-4.14.3.0 filepath-1.4.2.1 time-1.9.3 unix-2.7.2.2
532+haddock-interfaces:
533+haddock-html:
534+---
535+name: exceptions
536+version: 0.10.4
537+visibility: public
538+id: exceptions-0.10.4
539+key: exceptions-0.10.4
540+license: BSD-3-Clause
541+copyright:
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
551+exposed: True
552+exposed-modules: Control.Monad.Catch Control.Monad.Catch.Pure
553+import-dirs:
554+library-dirs:
555+dynamic-library-dirs:
556+data-dir:
557+hs-libraries: HSexceptions-0.10.4
558+depends:
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
561+haddock-interfaces:
562+haddock-html:
563+---
564+name: filepath
565+version: 1.4.2.1
566+visibility: public
567+id: filepath-1.4.2.1
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.
575+description:
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).
581+category: System
582+exposed: True
583+exposed-modules:
584+ System.FilePath System.FilePath.Posix System.FilePath.Windows
585+import-dirs:
586+library-dirs:
587+dynamic-library-dirs:
588+data-dir:
589+hs-libraries: HSfilepath-1.4.2.1
590+depends: base-4.14.3.0
591+haddock-interfaces:
592+haddock-html:
593+---
594+name: ghc-boot
595+version: 8.10.6
596+visibility: public
597+id: ghc-boot-8.10.6
598+key: ghc-boot-8.10.6
599+license: BSD-3-Clause
600+maintainer: ghc-devs@haskell.org
601+synopsis: Shared functionality between GHC and its boot libraries
602+description:
603+ This library is shared between GHC, ghc-pkg, and other boot
604+ libraries.
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.
613+category: GHC
614+exposed: True
615+exposed-modules:
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
619+import-dirs:
620+library-dirs:
621+dynamic-library-dirs:
622+data-dir:
623+hs-libraries: HSghc-boot-8.10.6
624+depends:
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
627+ ghc-boot-th-8.10.6
628+haddock-interfaces:
629+haddock-html:
630+---
631+name: ghc-boot-th
632+version: 8.10.6
633+visibility: public
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
638+synopsis:
639+ Shared functionality between GHC and the @template-haskell@
640+ library
641+description:
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.
647+category: GHC
648+exposed: True
649+exposed-modules:
650+ GHC.ForeignSrcLang.Type GHC.LanguageExtensions.Type GHC.Lexeme
651+import-dirs:
652+library-dirs:
653+dynamic-library-dirs:
654+data-dir:
655+hs-libraries: HSghc-boot-th-8.10.6
656+depends: base-4.14.3.0
657+haddock-interfaces:
658+haddock-html:
659+---
660+name: ghc-compact
661+version: 0.1.0.0
662+visibility: public
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
668+description:
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
675+ released).
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.
679+category: Data
680+exposed: True
681+exposed-modules: GHC.Compact GHC.Compact.Serialized
682+import-dirs:
683+library-dirs:
684+dynamic-library-dirs:
685+data-dir:
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
688+haddock-interfaces:
689+haddock-html:
690+---
691+name: ghc-heap
692+version: 8.10.6
693+visibility: public
694+id: ghc-heap-8.10.6
695+key: ghc-heap-8.10.6
696+license: BSD-3-Clause
697+maintainer: libraries@haskell.org
698+synopsis: Functions for walking GHC's heap
699+description:
700+ This package provides functions for walking the GHC heap data structures
701+ and retrieving information about those data structures.
702+category: GHC
703+exposed: True
704+exposed-modules:
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
708+ GHC.Exts.Heap.Utils
709+import-dirs:
710+library-dirs:
711+dynamic-library-dirs:
712+data-dir:
713+hs-libraries: HSghc-heap-8.10.6
714+depends: base-4.14.3.0 ghc-prim-0.6.1 rts
715+haddock-interfaces:
716+haddock-html:
717+---
718+name: ghc-prim
719+version: 0.6.1
720+visibility: public
721+id: ghc-prim-0.6.1
722+key: ghc-prim-0.6.1
723+license: BSD-3-Clause
724+maintainer: libraries@haskell.org
725+synopsis: GHC primitives
726+description:
727+ This package contains the primitive types and operations supplied by GHC.
728+category: GHC
729+exposed: True
730+exposed-modules:
731+ GHC.CString GHC.Classes GHC.Debug GHC.IntWord64 GHC.Magic
732+ GHC.Prim.Ext GHC.PrimopWrappers GHC.Tuple GHC.Types GHC.Prim
733+import-dirs:
734+library-dirs:
735+dynamic-library-dirs:
736+data-dir:
737+hs-libraries: HSghc-prim-0.6.1
738+extra-libraries: gcc c m
739+depends: rts
740+haddock-interfaces:
741+haddock-html:
742+---
743+name: ghci
744+version: 8.10.6
745+visibility: public
746+id: ghci-8.10.6
747+key: ghci-8.10.6
748+license: BSD-3-Clause
749+maintainer: ghc-devs@haskell.org
750+synopsis: The library supporting GHC's interactive interpreter
751+description:
752+ This library offers interfaces which mediate interactions between the
753+ @ghci@ interactive shell and @iserv@, GHC's out-of-process interpreter
754+ backend.
755+category: GHC
756+exposed: True
757+exposed-modules:
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
762+import-dirs:
763+library-dirs:
764+dynamic-library-dirs:
765+data-dir:
766+hs-libraries: HSghci-8.10.6
767+include-dirs:
768+depends:
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
773+haddock-interfaces:
774+haddock-html:
775+---
776+name: haskeline
777+version: 0.8.2
778+visibility: public
779+id: haskeline-0.8.2
780+key: haskeline-0.8.2
781+license: BSD-3-Clause
782+copyright: (c) Judah Jacobson
783+maintainer: Judah Jacobson <judah.jacobson@gmail.com>
784+author: Judah Jacobson
785+stability: Stable
786+homepage: https://github.com/judah/haskeline
787+synopsis:
788+ A command-line interface for user input, written in Haskell.
789+description:
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
793+ Haskell programs.
794+ Haskeline runs both on POSIX-compatible systems and on Windows.
795+category: User Interfaces
796+exposed: True
797+exposed-modules:
798+ System.Console.Haskeline System.Console.Haskeline.Completion
799+ System.Console.Haskeline.History System.Console.Haskeline.IO
800+ System.Console.Haskeline.Internal
801+hidden-modules:
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
817+import-dirs:
818+library-dirs:
819+dynamic-library-dirs:
820+data-dir:
821+hs-libraries: HShaskeline-0.8.2
822+depends:
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
826+haddock-interfaces:
827+haddock-html:
828+---
829+name: hpc
830+version: 0.6.1.0
831+visibility: public
832+id: hpc-0.6.1.0
833+key: hpc-0.6.1.0
834+license: BSD-3-Clause
835+maintainer: ghc-devs@haskell.org
836+author: Andy Gill
837+synopsis: Code Coverage Library for Haskell
838+description:
839+ This package provides the code coverage library for Haskell.
840+ See <http://www.haskell.org/haskellwiki/Haskell_program_coverage> for more
841+ information.
842+category: Control
843+exposed: True
844+exposed-modules:
845+ Trace.Hpc.Mix Trace.Hpc.Reflect Trace.Hpc.Tix Trace.Hpc.Util
846+import-dirs:
847+library-dirs:
848+dynamic-library-dirs:
849+data-dir:
850+hs-libraries: HShpc-0.6.1.0
851+depends:
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
854+haddock-interfaces:
855+haddock-html:
856+---
857+name: integer-gmp
858+version: 1.0.3.0
859+visibility: public
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
866+description:
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
874+exposed: True
875+exposed-modules:
876+ GHC.Integer GHC.Integer.GMP.Internals GHC.Integer.Logarithms
877+ GHC.Integer.Logarithms.Internals
878+hidden-modules: GHC.Integer.Type
879+import-dirs:
880+library-dirs:
881+dynamic-library-dirs:
882+data-dir:
883+hs-libraries: HSinteger-gmp-1.0.3.0
884+extra-libraries: gmp
885+include-dirs:
886+depends: ghc-prim-0.6.1
887+haddock-interfaces:
888+haddock-html:
889+---
890+name: libiserv
891+version: 8.10.6
892+visibility: public
893+id: libiserv-8.10.6
894+key: libiserv-8.10.6
895+license: BSD-3-Clause
896+copyright: XXX
897+maintainer: XXX
898+author: XXX
899+synopsis: Provides shared functionality between iserv and iserv-proxy
900+category: Development
901+exposed: True
902+exposed-modules: GHCi.Utils Lib
903+import-dirs:
904+library-dirs:
905+dynamic-library-dirs:
906+data-dir:
907+hs-libraries: HSlibiserv-8.10.6
908+depends:
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
911+haddock-interfaces:
912+haddock-html:
913+---
914+name: mtl
915+version: 2.2.2
916+visibility: public
917+id: mtl-2.2.2
918+key: mtl-2.2.2
919+license: BSD-3-Clause
920+maintainer: Edward Kmett <ekmett@gmail.com>
921+author: Andy Gill
922+homepage: http://github.com/haskell/mtl
923+synopsis: Monad classes, using functional dependencies
924+description:
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>).
930+category: Control
931+exposed: True
932+exposed-modules:
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
943+import-dirs:
944+library-dirs:
945+dynamic-library-dirs:
946+data-dir:
947+hs-libraries: HSmtl-2.2.2
948+depends: base-4.14.3.0 transformers-0.5.6.2
949+haddock-interfaces:
950+haddock-html:
951+---
952+name: parsec
953+version: 3.1.14.0
954+visibility: public
955+id: parsec-3.1.14.0
956+key: parsec-3.1.14.0
957+license: BSD-3-Clause
958+maintainer: Herbert Valerio Riedel <hvr@gnu.org>
959+author:
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
963+description:
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
969+ input stream type.
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
974+ the future.
975+category: Parsing
976+exposed: True
977+exposed-modules:
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
992+import-dirs:
993+library-dirs:
994+dynamic-library-dirs:
995+data-dir:
996+hs-libraries: HSparsec-3.1.14.0
997+depends:
998+ base-4.14.3.0 bytestring-0.10.12.0 mtl-2.2.2 text-1.2.4.1
999+haddock-interfaces:
1000+haddock-html:
1001+---
1002+name: pretty
1003+version: 1.1.3.6
1004+visibility: public
1005+id: pretty-1.1.3.6
1006+key: pretty-1.1.3.6
1007+license: BSD-3-Clause
1008+maintainer: David Terei <code@davidterei.com>
1009+stability: Stable
1010+homepage: http://github.com/haskell/pretty
1011+synopsis: Pretty-printing library
1012+description:
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
1016+ tools.
1017+ This library was originally designed by John Hughes's and has since
1018+ been heavily modified by Simon Peyton Jones.
1019+category: Text
1020+exposed: True
1021+exposed-modules:
1022+ Text.PrettyPrint Text.PrettyPrint.Annotated
1023+ Text.PrettyPrint.Annotated.HughesPJ
1024+ Text.PrettyPrint.Annotated.HughesPJClass Text.PrettyPrint.HughesPJ
1025+ Text.PrettyPrint.HughesPJClass
1026+import-dirs:
1027+library-dirs:
1028+dynamic-library-dirs:
1029+data-dir:
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
1032+haddock-interfaces:
1033+haddock-html:
1034+---
1035+name: process
1036+version: 1.6.13.2
1037+visibility: public
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
1043+description:
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>.
1050+category: System
1051+exposed: True
1052+exposed-modules: System.Cmd System.Process System.Process.Internals
1053+hidden-modules: System.Process.Common System.Process.Posix
1054+import-dirs:
1055+library-dirs:
1056+dynamic-library-dirs:
1057+data-dir:
1058+hs-libraries: HSprocess-1.6.13.2
1059+include-dirs:
1060+includes: runProcess.h
1061+depends:
1062+ base-4.14.3.0 deepseq-1.4.4.0 directory-1.3.6.0 filepath-1.4.2.1
1063+ unix-2.7.2.2
1064+haddock-interfaces:
1065+haddock-html:
1066+---
1067+name: stm
1068+version: 2.5.0.1
1069+visibility: public
1070+id: stm-2.5.0.1
1071+key: stm-2.5.0.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
1076+description:
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
1084+ 'MVar's.
1085+category: Concurrency
1086+exposed: True
1087+exposed-modules:
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
1092+ Control.Monad.STM
1093+hidden-modules: Control.Sequential.STM
1094+import-dirs:
1095+library-dirs:
1096+dynamic-library-dirs:
1097+data-dir:
1098+hs-libraries: HSstm-2.5.0.1
1099+depends: array-0.5.4.0 base-4.14.3.0
1100+haddock-interfaces:
1101+haddock-html:
1102+---
1103+name: template-haskell
1104+version: 2.16.0.0
1105+visibility: public
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
1111+description:
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
1115+ information.
1116+category: Template Haskell
1117+exposed: True
1118+exposed-modules:
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
1124+import-dirs:
1125+library-dirs:
1126+dynamic-library-dirs:
1127+data-dir:
1128+hs-libraries: HStemplate-haskell-2.16.0.0
1129+depends:
1130+ base-4.14.3.0 ghc-boot-th-8.10.6 ghc-prim-0.6.1 pretty-1.1.3.6
1131+haddock-interfaces:
1132+haddock-html:
1133+---
1134+name: text
1135+version: 1.2.4.1
1136+visibility: public
1137+id: text-1.2.4.1
1138+key: text-1.2.4.1
1139+license: BSD-2-Clause
1140+copyright: 2009-2011 Bryan O'Sullivan, 2008-2009 Tom Harper
1141+maintainer:
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.
1146+description:
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
1163+ == ICU Support
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
1179+exposed: True
1180+exposed-modules:
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
1205+import-dirs:
1206+library-dirs:
1207+dynamic-library-dirs:
1208+data-dir:
1209+hs-libraries: HStext-1.2.4.1
1210+depends:
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
1214+haddock-interfaces:
1215+haddock-html:
1216+---
1217+name: time
1218+version: 1.9.3
1219+visibility: public
1220+id: time-1.9.3
1221+key: time-1.9.3
1222+license: BSD-3-Clause
1223+maintainer: <ashley@semantic.org>
1224+author: Ashley Yakeley
1225+stability: stable
1226+homepage: https://github.com/haskell/time
1227+synopsis: A time library
1228+description: Time, clocks and calendars
1229+category: Time
1230+exposed: True
1231+exposed-modules:
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
1238+hidden-modules:
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
1258+import-dirs:
1259+library-dirs:
1260+dynamic-library-dirs:
1261+data-dir:
1262+hs-libraries: HStime-1.9.3
1263+include-dirs:
1264+depends: base-4.14.3.0 deepseq-1.4.4.0
1265+haddock-interfaces:
1266+haddock-html:
1267+---
1268+name: transformers
1269+version: 0.5.6.2
1270+visibility: public
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
1277+description:
1278+ A portable library of functor and monad transformers, inspired by
1279+ the paper
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
1288+ transformers.
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.
1295+category: Control
1296+exposed: True
1297+exposed-modules:
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
1311+import-dirs:
1312+library-dirs:
1313+dynamic-library-dirs:
1314+data-dir:
1315+hs-libraries: HStransformers-0.5.6.2
1316+depends: base-4.14.3.0
1317+haddock-interfaces:
1318+haddock-html:
1319+---
1320+name: unix
1321+version: 2.7.2.2
1322+visibility: public
1323+id: unix-2.7.2.2
1324+key: unix-2.7.2.2
1325+license: BSD-3-Clause
1326+maintainer: libraries@haskell.org
1327+homepage: https://github.com/haskell/unix
1328+synopsis: POSIX functionality
1329+description:
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.
1336+category: System
1337+exposed: True
1338+exposed-modules:
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
1355+hidden-modules:
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
1359+import-dirs:
1360+library-dirs:
1361+dynamic-library-dirs:
1362+data-dir:
1363+hs-libraries: HSunix-2.7.2.2
1364+extra-libraries: rt util dl pthread
1365+include-dirs:
1366+includes: HsUnix.h execvpe.h
1367+depends: base-4.14.3.0 bytestring-0.10.12.0 time-1.9.3
1368+haddock-interfaces:
1369+haddock-html:
1370+---
1371+name: rts
1372+version: 1.0.1
1373+visibility: public
1374+id: rts
1375+key: rts
1376+license: BSD-3-Clause
1377+maintainer: glasgow-haskell-users@haskell.org
1378+exposed: True
1379+library-dirs:
1380+hs-libraries: HSrts
1381+extra-libraries: m rt dl ffi numa pthread
1382+include-dirs:
1383+includes: Stg.h
1384+ld-options:
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")
14+ ,("ar flags","q")
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")
48+ ,("Stage","1")
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")
66+ ,("Debug on","NO")
67+ ]
materialized/dummy-ghc/aarch64-unknown-linux-gnu-aarch64-unknown-linux-gnu-ghc-8.10.6-x86_64-linux/ghc/numeric-versionnew file+1
@@ -0,0 +1 @@
1+8.10.6
materialized/dummy-ghc/aarch64-unknown-linux-gnu-aarch64-unknown-linux-gnu-ghc-8.10.6-x86_64-linux/ghc/supported-languagesnew file+255

This diff is too big to show here.

materialized/dummy-ghc/aarch64-unknown-linux-gnu-aarch64-unknown-linux-gnu-ghc-8.10.6-x86_64-linux/ghc/versionnew file+1

This diff is too big to show here.

materialized/dummy-ghc/aarch64-unknown-linux-gnu-aarch64-unknown-linux-gnu-ghc-8.10.7-x86_64-linux/ghc-pkg/dump-globalnew file+1443

This diff is too big to show here.

materialized/dummy-ghc/aarch64-unknown-linux-gnu-aarch64-unknown-linux-gnu-ghc-8.10.7-x86_64-linux/ghc-pkg/versionnew file+1

This diff is too big to show here.

materialized/dummy-ghc/aarch64-unknown-linux-gnu-aarch64-unknown-linux-gnu-ghc-8.10.7-x86_64-linux/ghc/infonew file+67

This diff is too big to show here.

materialized/dummy-ghc/aarch64-unknown-linux-gnu-aarch64-unknown-linux-gnu-ghc-8.10.7-x86_64-linux/ghc/numeric-versionnew file+1

This diff is too big to show here.

materialized/dummy-ghc/aarch64-unknown-linux-gnu-aarch64-unknown-linux-gnu-ghc-8.10.7-x86_64-linux/ghc/supported-languagesnew file+255

This diff is too big to show here.

materialized/dummy-ghc/aarch64-unknown-linux-gnu-aarch64-unknown-linux-gnu-ghc-8.10.7-x86_64-linux/ghc/versionnew file+1

This diff is too big to show here.

materialized/dummy-ghc/aarch64-unknown-linux-gnu-aarch64-unknown-linux-gnu-ghc-8.8.4-x86_64-linux/ghc/info+1−3

This diff is too big to show here.

materialized/dummy-ghc/aarch64-unknown-linux-gnu-aarch64-unknown-linux-gnu-ghc-9.0.1-x86_64-linux/ghc-pkg/dump-globalnew file+1485

This diff is too big to show here.

materialized/dummy-ghc/aarch64-unknown-linux-gnu-aarch64-unknown-linux-gnu-ghc-9.0.1-x86_64-linux/ghc-pkg/versionnew file+1

This diff is too big to show here.

materialized/dummy-ghc/aarch64-unknown-linux-gnu-aarch64-unknown-linux-gnu-ghc-9.0.1-x86_64-linux/ghc/infonew file+70

This diff is too big to show here.

materialized/dummy-ghc/aarch64-unknown-linux-gnu-aarch64-unknown-linux-gnu-ghc-9.0.1-x86_64-linux/ghc/numeric-versionnew file+1

This diff is too big to show here.

materialized/dummy-ghc/aarch64-unknown-linux-gnu-aarch64-unknown-linux-gnu-ghc-9.0.1-x86_64-linux/ghc/supported-languagesnew file+261

This diff is too big to show here.

materialized/dummy-ghc/aarch64-unknown-linux-gnu-aarch64-unknown-linux-gnu-ghc-9.0.1-x86_64-linux/ghc/versionnew file+1

This diff is too big to show here.

materialized/dummy-ghc/aarch64-unknown-linux-gnu-aarch64-unknown-linux-gnu-ghc-9.2.4-x86_64-linux/ghc-pkg/dump-globalnew file+1512

This diff is too big to show here.

materialized/dummy-ghc/aarch64-unknown-linux-gnu-aarch64-unknown-linux-gnu-ghc-9.2.4-x86_64-linux/ghc-pkg/versionnew file+1

This diff is too big to show here.

materialized/dummy-ghc/aarch64-unknown-linux-gnu-aarch64-unknown-linux-gnu-ghc-9.2.4-x86_64-linux/ghc/infonew file+66

This diff is too big to show here.

materialized/dummy-ghc/aarch64-unknown-linux-gnu-aarch64-unknown-linux-gnu-ghc-9.2.4-x86_64-linux/ghc/numeric-versionnew file+1

This diff is too big to show here.

materialized/dummy-ghc/aarch64-unknown-linux-gnu-aarch64-unknown-linux-gnu-ghc-9.2.4-x86_64-linux/ghc/supported-languagesnew file+268

This diff is too big to show here.

materialized/dummy-ghc/aarch64-unknown-linux-gnu-aarch64-unknown-linux-gnu-ghc-9.2.4-x86_64-linux/ghc/versionnew file+1

This diff is too big to show here.

materialized/dummy-ghc/ghc-8.10.2-x86_64-linux/ghc/info+6

This diff is too big to show here.

materialized/dummy-ghc/ghc-8.10.3-x86_64-darwin/ghc-pkg/dump-globalnew file+1638

This diff is too big to show here.

materialized/dummy-ghc/ghc-8.10.3-x86_64-darwin/ghc-pkg/versionnew file+1

This diff is too big to show here.

materialized/dummy-ghc/ghc-8.10.3-x86_64-darwin/ghc/infonew file+69

This diff is too big to show here.

materialized/dummy-ghc/ghc-8.10.3-x86_64-darwin/ghc/numeric-versionnew file+1

This diff is too big to show here.

materialized/dummy-ghc/ghc-8.10.3-x86_64-darwin/ghc/supported-languagesnew file+255

This diff is too big to show here.

materialized/dummy-ghc/ghc-8.10.3-x86_64-darwin/ghc/versionnew file+1

This diff is too big to show here.

materialized/dummy-ghc/ghc-8.10.3-x86_64-linux/ghc-pkg/dump-globalnew file+1639

This diff is too big to show here.

materialized/dummy-ghc/ghc-8.10.3-x86_64-linux/ghc-pkg/versionnew file+1

This diff is too big to show here.

materialized/dummy-ghc/ghc-8.10.3-x86_64-linux/ghc/infonew file+75

This diff is too big to show here.

materialized/dummy-ghc/ghc-8.10.3-x86_64-linux/ghc/numeric-versionnew file+1

This diff is too big to show here.

materialized/dummy-ghc/ghc-8.10.3-x86_64-linux/ghc/supported-languagesnew file+255

This diff is too big to show here.

materialized/dummy-ghc/ghc-8.10.3-x86_64-linux/ghc/versionnew file+1

This diff is too big to show here.

materialized/dummy-ghc/ghc-8.10.4-x86_64-darwin/ghc-pkg/dump-globalnew file+1638

This diff is too big to show here.

materialized/dummy-ghc/ghc-8.10.4-x86_64-darwin/ghc-pkg/versionnew file+1

This diff is too big to show here.

materialized/dummy-ghc/ghc-8.10.4-x86_64-darwin/ghc/infonew file+75

This diff is too big to show here.

materialized/dummy-ghc/ghc-8.10.4-x86_64-darwin/ghc/numeric-versionnew file+1

This diff is too big to show here.

materialized/dummy-ghc/ghc-8.10.4-x86_64-darwin/ghc/supported-languagesnew file+255

This diff is too big to show here.

materialized/dummy-ghc/ghc-8.10.4-x86_64-darwin/ghc/versionnew file+1

This diff is too big to show here.

materialized/dummy-ghc/ghc-8.10.4-x86_64-linux/ghc-pkg/dump-globalnew file+1639

This diff is too big to show here.

materialized/dummy-ghc/ghc-8.10.4-x86_64-linux/ghc-pkg/versionnew file+1

This diff is too big to show here.

materialized/dummy-ghc/ghc-8.10.4-x86_64-linux/ghc/infonew file+75

This diff is too big to show here.

materialized/dummy-ghc/ghc-8.10.4-x86_64-linux/ghc/numeric-versionnew file+1

This diff is too big to show here.

materialized/dummy-ghc/ghc-8.10.4-x86_64-linux/ghc/supported-languagesnew file+255

This diff is too big to show here.

materialized/dummy-ghc/ghc-8.10.4-x86_64-linux/ghc/versionnew file+1

This diff is too big to show here.

materialized/dummy-ghc/ghc-8.10.4.20210212-x86_64-darwin/ghc-pkg/dump-globalnew file+1642

This diff is too big to show here.

materialized/dummy-ghc/ghc-8.10.4.20210212-x86_64-darwin/ghc-pkg/versionnew file+1

This diff is too big to show here.

materialized/dummy-ghc/ghc-8.10.4.20210212-x86_64-darwin/ghc/infonew file+69

This diff is too big to show here.

materialized/dummy-ghc/ghc-8.10.4.20210212-x86_64-darwin/ghc/numeric-versionnew file+1

This diff is too big to show here.

materialized/dummy-ghc/ghc-8.10.4.20210212-x86_64-darwin/ghc/supported-languagesnew file+255

This diff is too big to show here.

materialized/dummy-ghc/ghc-8.10.4.20210212-x86_64-darwin/ghc/versionnew file+1

This diff is too big to show here.

materialized/dummy-ghc/ghc-8.10.4.20210212-x86_64-linux/ghc-pkg/dump-globalnew file+1643

This diff is too big to show here.

materialized/dummy-ghc/ghc-8.10.4.20210212-x86_64-linux/ghc-pkg/versionnew file+1

This diff is too big to show here.

materialized/dummy-ghc/ghc-8.10.4.20210212-x86_64-linux/ghc/infonew file+75

This diff is too big to show here.

materialized/dummy-ghc/ghc-8.10.4.20210212-x86_64-linux/ghc/numeric-versionnew file+1

This diff is too big to show here.

materialized/dummy-ghc/ghc-8.10.4.20210212-x86_64-linux/ghc/supported-languagesnew file+255

This diff is too big to show here.

materialized/dummy-ghc/ghc-8.10.4.20210212-x86_64-linux/ghc/versionnew file+1

This diff is too big to show here.

materialized/dummy-ghc/ghc-8.10.5-x86_64-darwin/ghc-pkg/dump-globalnew file+1638

This diff is too big to show here.

materialized/dummy-ghc/ghc-8.10.5-x86_64-darwin/ghc-pkg/versionnew file+1

This diff is too big to show here.

materialized/dummy-ghc/ghc-8.10.5-x86_64-darwin/ghc/infonew file+75

This diff is too big to show here.

materialized/dummy-ghc/ghc-8.10.5-x86_64-darwin/ghc/numeric-versionnew file+1

This diff is too big to show here.

materialized/dummy-ghc/ghc-8.10.5-x86_64-darwin/ghc/supported-languagesnew file+255

This diff is too big to show here.

materialized/dummy-ghc/ghc-8.10.5-x86_64-darwin/ghc/versionnew file+1

This diff is too big to show here.

materialized/dummy-ghc/ghc-8.10.5-x86_64-linux/ghc-pkg/dump-globalnew file+1639

This diff is too big to show here.

materialized/dummy-ghc/ghc-8.10.5-x86_64-linux/ghc-pkg/versionnew file+1

This diff is too big to show here.

materialized/dummy-ghc/ghc-8.10.5-x86_64-linux/ghc/infonew file+75

This diff is too big to show here.

materialized/dummy-ghc/ghc-8.10.5-x86_64-linux/ghc/numeric-versionnew file+1

This diff is too big to show here.

materialized/dummy-ghc/ghc-8.10.5-x86_64-linux/ghc/supported-languagesnew file+255

This diff is too big to show here.

materialized/dummy-ghc/ghc-8.10.5-x86_64-linux/ghc/versionnew file+1

This diff is too big to show here.

materialized/dummy-ghc/ghc-8.10.6-x86_64-darwin/ghc-pkg/dump-globalnew file+1638

This diff is too big to show here.

materialized/dummy-ghc/ghc-8.10.6-x86_64-darwin/ghc-pkg/versionnew file+1

This diff is too big to show here.

materialized/dummy-ghc/ghc-8.10.6-x86_64-darwin/ghc/infonew file+75

This diff is too big to show here.

materialized/dummy-ghc/ghc-8.10.6-x86_64-darwin/ghc/numeric-versionnew file+1

This diff is too big to show here.

materialized/dummy-ghc/ghc-8.10.6-x86_64-darwin/ghc/supported-languagesnew file+255

This diff is too big to show here.

materialized/dummy-ghc/ghc-8.10.6-x86_64-darwin/ghc/versionnew file+1

This diff is too big to show here.

materialized/dummy-ghc/ghc-8.10.6-x86_64-linux/ghc-pkg/dump-globalnew file+1639

This diff is too big to show here.

materialized/dummy-ghc/ghc-8.10.6-x86_64-linux/ghc-pkg/versionnew file+1

This diff is too big to show here.

materialized/dummy-ghc/ghc-8.10.6-x86_64-linux/ghc/infonew file+75

This diff is too big to show here.

materialized/dummy-ghc/ghc-8.10.6-x86_64-linux/ghc/numeric-versionnew file+1

This diff is too big to show here.

materialized/dummy-ghc/ghc-8.10.6-x86_64-linux/ghc/supported-languagesnew file+255

This diff is too big to show here.

materialized/dummy-ghc/ghc-8.10.6-x86_64-linux/ghc/versionnew file+1

This diff is too big to show here.

materialized/dummy-ghc/ghc-8.10.7-aarch64-darwin/ghc-pkg/dump-globalnew file+1639

This diff is too big to show here.

materialized/dummy-ghc/ghc-8.10.7-aarch64-darwin/ghc-pkg/versionnew file+1

This diff is too big to show here.

materialized/dummy-ghc/ghc-8.10.7-aarch64-darwin/ghc/infonew file+73

This diff is too big to show here.

materialized/dummy-ghc/ghc-8.10.7-aarch64-darwin/ghc/numeric-versionnew file+1

This diff is too big to show here.

materialized/dummy-ghc/ghc-8.10.7-aarch64-darwin/ghc/supported-languagesnew file+255

This diff is too big to show here.

materialized/dummy-ghc/ghc-8.10.7-aarch64-darwin/ghc/versionnew file+1

This diff is too big to show here.

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.4.4-x86_64-darwin/ghc-pkg/dump-global+88−115

This diff is too big to show here.

materialized/dummy-ghc/ghc-8.4.4-x86_64-darwin/ghc/info+7−2

This diff is too big to show here.

materialized/dummy-ghc/ghc-8.4.4-x86_64-linux/ghc-pkg/dump-global+5−30

This diff is too big to show here.

materialized/dummy-ghc/ghc-8.4.4-x86_64-linux/ghc/info+7−2

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-pkg/dump-globalnew file+1759

This diff is too big to show here.

materialized/dummy-ghc/ghc-9.0.1-x86_64-darwin/ghc-pkg/versionnew file+1

This diff is too big to show here.

materialized/dummy-ghc/ghc-9.0.1-x86_64-darwin/ghc/infonew file+76

This diff is too big to show here.

materialized/dummy-ghc/ghc-9.0.1-x86_64-darwin/ghc/numeric-versionnew file+1

This diff is too big to show here.

materialized/dummy-ghc/ghc-9.0.1-x86_64-darwin/ghc/supported-languagesnew file+261

This diff is too big to show here.

materialized/dummy-ghc/ghc-9.0.1-x86_64-darwin/ghc/versionnew file+1

This diff is too big to show here.

materialized/dummy-ghc/ghc-9.0.1-x86_64-linux/ghc-pkg/dump-globalnew file+1760

This diff is too big to show here.

materialized/dummy-ghc/ghc-9.0.1-x86_64-linux/ghc-pkg/versionnew file+1

This diff is too big to show here.

materialized/dummy-ghc/ghc-9.0.1-x86_64-linux/ghc/infonew file+76

This diff is too big to show here.

materialized/dummy-ghc/ghc-9.0.1-x86_64-linux/ghc/numeric-versionnew file+1

This diff is too big to show here.

materialized/dummy-ghc/ghc-9.0.1-x86_64-linux/ghc/supported-languagesnew file+261

This diff is too big to show here.

materialized/dummy-ghc/ghc-9.0.1-x86_64-linux/ghc/versionnew file+1

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.4-x86_64-darwin/ghc-pkg/dump-globalnew file+1328

This diff is too big to show here.

materialized/dummy-ghc/js-unknown-ghcjs-js-unknown-ghcjs-ghc-8.10.4-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.4-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.4-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.4-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.4-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.4-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.4-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.4-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.4-x86_64-linux/ghc-pkg/dump-globalnew file+1328

This diff is too big to show here.

materialized/dummy-ghc/js-unknown-ghcjs-js-unknown-ghcjs-ghc-8.10.4-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.4-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.4-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.4-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.4-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.4-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.4-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.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-globalnew file+1330

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/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.5-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.5-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.5-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.5-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.5-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.5-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.5-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.5-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.5-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.5-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.5-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.5-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.5-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.5-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.5-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.5-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.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/js-unknown-ghcjs-js-unknown-ghcjs-ghc-8.6.5-x86_64-linux/ghc-pkg/dump-global+2−65

This diff is too big to show here.

materialized/dummy-ghc/js-unknown-ghcjs-js-unknown-ghcjs-ghc-8.6.5-x86_64-linux/ghc/info+18−17

This diff is too big to show here.

materialized/dummy-ghc/js-unknown-ghcjs-js-unknown-ghcjs-ghc-8.8.4-x86_64-linux/ghc-pkg/dump-globalnew file+1321

This diff is too big to show here.

materialized/dummy-ghc/js-unknown-ghcjs-js-unknown-ghcjs-ghc-8.8.4-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.8.4-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.8.4-x86_64-linux/ghc/infonew file+59

This diff is too big to show here.

materialized/dummy-ghc/js-unknown-ghcjs-js-unknown-ghcjs-ghc-8.8.4-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.8.4-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.8.4-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.8.4-x86_64-linux/ghc/supported-languagesnew file+247

This diff is too big to show here.

materialized/dummy-ghc/js-unknown-ghcjs-js-unknown-ghcjs-ghc-8.8.4-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.3-x86_64-linux/ghc-pkg/dump-globalnew file+1603

This diff is too big to show here.

materialized/dummy-ghc/x86_64-unknown-linux-musl-x86_64-unknown-linux-musl-ghc-8.10.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-8.10.3-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.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-8.10.3-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.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-8.10.4-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.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-8.10.4-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.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-8.10.4-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.4-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.20210212-x86_64-linux/ghc-pkg/dump-globalnew file+1607

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.20210212-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.4.20210212-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.4.20210212-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.4.20210212-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.4.20210212-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.5-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.5-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.5-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.5-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.5-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.5-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.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-globalnew file+1722

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/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.1-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.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.0.1-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.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.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.2-x86_64-linux/ghc-pkg/dump-globalnew file+1437

This diff is too big to show here.

materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-8.10.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.10.2-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-8.10.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.10.2-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.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.10.3-x86_64-linux/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.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-8.10.3-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.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-8.10.3-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.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-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.4-x86_64-linux/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-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.4-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.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-8.10.4-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.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.20210212-x86_64-linux/ghc-pkg/dump-globalnew file+1451

This diff is too big to show here.

materialized/dummy-ghc/x86_64-w64-mingw32-x86_64-w64-mingw32-ghc-8.10.4.20210212-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.4.20210212-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.4.20210212-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.4.20210212-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.4.20210212-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.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.5-x86_64-linux/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-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.5-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.5-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.5-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.5-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.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-global+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/version+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/info+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-version+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-languages+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/version+1

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc8101/Win32.nix+46

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc8101/base.nix+43

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc8101/ghc-heap.nix+35

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc8101/ghc-prim.nix+40

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc8101/integer-gmp.nix+33

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc8101/template-haskell.nix+36

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc8102/Win32.nix+46

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc8102/base.nix+43

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc8102/ghc-heap.nix+35

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc8102/ghc-prim.nix+43

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc8102/integer-gmp.nix+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.nix+36

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc8103/Win32.nix+46

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc8103/base.nix+43

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc8103/bytestring.nix+35

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc8103/ghc-boot.nix+1−1

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc8103/ghc-heap.nix+35

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc8103/ghc-prim.nix+43

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc8103/ghc.nix+1−1

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc8103/ghci.nix+1−1

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc8103/hpc.nix

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc8103/integer-gmp.nix+33

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc8103/iserv-proxy.nix+2−2

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc8103/iserv.nix+1−1

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc8103/libiserv.nix+1−1

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc8103/remote-iserv.nix+1−1

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc8103/template-haskell.nix+36

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc8104/Win32.nix+46

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc8104/base.nix+43

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc8104/bytestring.nix+35

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc8104/ghc-boot.nix+39

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc8104/ghc-heap.nix+35

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc8104/ghc-prim.nix+43

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc8104/ghc.nix+62

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc8104/ghci.nix+44

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc8104/hpc.nix+38

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc8104/integer-gmp.nix+33

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc8104/iserv-proxy.nix+45

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc8104/iserv.nix+42

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc8104/libiserv.nix+42

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc8104/remote-iserv.nix+36

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc8104/template-haskell.nix+36

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc810420210212/Win32.nix+46

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc810420210212/base.nix+43

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc810420210212/bytestring.nix+35

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc810420210212/ghc-boot.nix+39

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc810420210212/ghc-heap.nix+35

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc810420210212/ghc-prim.nix+43

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc810420210212/ghc.nix+62

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc810420210212/ghci.nix+44

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc810420210212/hpc.nix+38

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc810420210212/integer-gmp.nix+33

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc810420210212/iserv-proxy.nix+45

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc810420210212/iserv.nix+42

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc810420210212/libiserv.nix+42

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc810420210212/remote-iserv.nix+36

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc810420210212/template-haskell.nix+36

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc8105-aarch64/Win32.nix+46

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc8105-aarch64/base.nix+43

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc8105-aarch64/bytestring.nix+35

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc8105-aarch64/ghc-boot.nix+39

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc8105-aarch64/ghc-heap.nix+35

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc8105-aarch64/ghc-prim.nix+44

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc8105-aarch64/ghc.nix+62

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc8105-aarch64/ghci.nix+45

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc8105-aarch64/hpc.nix+38

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc8105-aarch64/integer-gmp.nix+33

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc8105-aarch64/iserv-proxy.nix+45

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc8105-aarch64/iserv.nix+42

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc8105-aarch64/libiserv.nix+42

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc8105-aarch64/remote-iserv.nix+36

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc8105-aarch64/template-haskell.nix+36

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc8105/Win32.nix+46

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc8105/base.nix+43

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc8105/bytestring.nix+35

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc8105/ghc-boot.nix+39

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc8105/ghc-heap.nix+35

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc8105/ghc-prim.nix+43

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc8105/ghc.nix+62

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc8105/ghci.nix+45

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc8105/hpc.nix+38

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc8105/integer-gmp.nix+33

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc8105/iserv-proxy.nix+45

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc8105/iserv.nix+42

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc8105/libiserv.nix+42

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc8105/remote-iserv.nix+36

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc8105/template-haskell.nix+36

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc8106-aarch64/Win32.nix+46

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc8106-aarch64/base.nix+43

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc8106-aarch64/bytestring.nix+35

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc8106-aarch64/ghc-boot.nix+39

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc8106-aarch64/ghc-heap.nix+35

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc8106-aarch64/ghc-prim.nix+44

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc8106-aarch64/ghc.nix+62

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc8106-aarch64/ghci.nix+45

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc8106-aarch64/hpc.nix+38

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc8106-aarch64/integer-gmp.nix+33

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc8106-aarch64/iserv-proxy.nix+45

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc8106-aarch64/iserv.nix+42

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc8106-aarch64/libiserv.nix+42

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc8106-aarch64/remote-iserv.nix+36

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc8106-aarch64/template-haskell.nix+36

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc8106/Win32.nix+46

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc8106/base.nix+43

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc8106/bytestring.nix+35

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc8106/ghc-boot.nix+39

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc8106/ghc-heap.nix+35

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc8106/ghc-prim.nix+43

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc8106/ghc.nix+62

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc8106/ghci.nix+45

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc8106/hpc.nix+38

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc8106/integer-gmp.nix+33

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc8106/iserv-proxy.nix+45

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc8106/iserv.nix+42

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc8106/libiserv.nix+42

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc8106/remote-iserv.nix+36

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc8106/template-haskell.nix+36

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc8107-aarch64/Win32.nix+46

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc8107-aarch64/base.nix+43

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc8107-aarch64/bytestring.nix+35

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc8107-aarch64/ghc-boot.nix+39

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc8107-aarch64/ghc-heap.nix+35

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc8107-aarch64/ghc-prim.nix+44

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc8107-aarch64/ghc.nix+62

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc8107-aarch64/ghci.nix+45

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc8107-aarch64/hpc.nix+38

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc8107-aarch64/integer-gmp.nix+33

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc8107-aarch64/iserv-proxy.nix+45

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc8107-aarch64/iserv.nix+42

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc8107-aarch64/libiserv.nix+42

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc8107-aarch64/remote-iserv.nix+36

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc8107-aarch64/template-haskell.nix+36

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc8107/Win32.nix+46

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc8107/base.nix+43

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc8107/bytestring.nix+35

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc8107/ghc-boot.nix+39

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc8107/ghc-heap.nix+35

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc8107/ghc-prim.nix+43

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc8107/ghc.nix+62

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc8107/ghci.nix+45

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc8107/hpc.nix+38

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc8107/integer-gmp.nix+33

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc8107/iserv-proxy.nix+45

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc8107/iserv.nix+42

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc8107/libiserv.nix+42

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc8107/remote-iserv.nix+36

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc8107/template-haskell.nix+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.nix+46

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc863/base.nix+42

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc863/bytestring.nix+1−57

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc863/ghc-boot.nix+38

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc863/ghc-heap.nix+35

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc863/ghc-prim.nix+40

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc863/ghc.nix+59

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc863/ghci.nix+44

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc863/hpc.nix+37

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc863/integer-gmp.nix+33

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc863/iserv-proxy.nix+45

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc863/iserv.nix+42

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc863/libiserv.nix+42

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc863/remote-iserv.nix+36

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc863/template-haskell.nix+35

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc864/Win32.nix+46

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc864/base.nix+42

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc864/bytestring.nix+1−57

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc864/ghc-boot.nix+38

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc864/ghc-heap.nix+35

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc864/ghc-prim.nix+40

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc864/ghc.nix+60

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc864/ghci.nix+44

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc864/hpc.nix+37

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc864/integer-gmp.nix+33

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc864/iserv-proxy.nix+45

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc864/iserv.nix+42

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc864/libiserv.nix+42

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc864/remote-iserv.nix+36

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc864/template-haskell.nix+35

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc865/Win32.nix+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.nix+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.nix+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.nix+35

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc882/Win32.nix+46

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc882/base.nix+42

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc882/bytestring.nix

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc882/ghc-boot.nix+38

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc882/ghc-heap.nix+35

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc882/ghc-prim.nix+40

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc882/ghc.nix+61

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc882/ghci.nix+44

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc882/hpc.nix+37

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc882/integer-gmp.nix+33

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc882/iserv-proxy.nix+45

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc882/iserv.nix+42

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc882/libiserv.nix+42

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc882/remote-iserv.nix+36

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc882/template-haskell.nix+35

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc883-aarch64/Win32.nix+46

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc883-aarch64/base.nix+42

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc883-aarch64/bytestring.nix+1−57

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc883-aarch64/ghc-boot.nix+38

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc883-aarch64/ghc-heap.nix+35

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc883-aarch64/ghc-prim.nix+40

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc883-aarch64/ghc.nix+61

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc883-aarch64/ghci.nix+44

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc883-aarch64/hpc.nix+37

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc883-aarch64/integer-gmp.nix+33

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc883-aarch64/iserv-proxy.nix+45

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc883-aarch64/iserv.nix+42

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc883-aarch64/libiserv.nix+42

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc883-aarch64/remote-iserv.nix+36

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc883-aarch64/template-haskell.nix+35

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc883/Win32.nix+46

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc883/base.nix+42

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc883/ghc-heap.nix+35

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc883/ghc-prim.nix+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.nix+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.nix+35

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc884-aarch64/Win32.nix+46

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc884-aarch64/base.nix+42

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc884-aarch64/bytestring.nix+4−60

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc884-aarch64/ghc-boot.nix+38

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc884-aarch64/ghc-heap.nix+35

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc884-aarch64/ghc-prim.nix+43

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc884-aarch64/ghc.nix+61

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc884-aarch64/ghci.nix+44

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc884-aarch64/hpc.nix+37

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc884-aarch64/integer-gmp.nix+33

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc884-aarch64/iserv-proxy.nix+45

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc884-aarch64/iserv.nix+42

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc884-aarch64/libiserv.nix+42

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc884-aarch64/remote-iserv.nix+36

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc884-aarch64/template-haskell.nix+35

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc884/Win32.nix+46

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc884/base.nix+42

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc884/ghc-heap.nix+35

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc884/ghc-prim.nix+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.nix+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.nix+35

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc901-aarch64/Win32.nix+49

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc901-aarch64/base.nix+48

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc901-aarch64/bytestring.nix+35

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc901-aarch64/ghc-bignum.nix+37

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc901-aarch64/ghc-boot.nix+39

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc901-aarch64/ghc-heap.nix+35

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc901-aarch64/ghc-prim.nix+44

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc901-aarch64/ghc.nix+61

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc901-aarch64/ghci.nix+44

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc901-aarch64/hpc.nix+38

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc901-aarch64/integer-gmp.nix+35

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc901-aarch64/iserv-proxy.nix+45

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc901-aarch64/iserv.nix+42

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc901-aarch64/libiserv.nix+42

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc901-aarch64/remote-iserv.nix+36

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc901-aarch64/template-haskell.nix+36

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc901/Win32.nix+49

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc901/base.nix+48

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc901/bytestring.nix+35

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc901/ghc-bignum.nix+37

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc901/ghc-boot.nix+39

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc901/ghc-heap.nix+35

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc901/ghc-prim.nix+43

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc901/ghc.nix+61

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc901/ghci.nix+44

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc901/hpc.nix+38

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc901/integer-gmp.nix+35

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc901/iserv-proxy.nix+45

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc901/iserv.nix+42

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc901/libiserv.nix+42

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc901/remote-iserv.nix+36

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc901/template-haskell.nix+36

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc902-aarch64/Win32.nix+48

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc902-aarch64/base.nix+48

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc902-aarch64/bytestring.nix+35

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc902-aarch64/ghc-bignum.nix+37

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc902-aarch64/ghc-boot.nix+39

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc902-aarch64/ghc-heap.nix+35

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc902-aarch64/ghc-prim.nix+44

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc902-aarch64/ghc.nix+61

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc902-aarch64/ghci.nix+45

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc902-aarch64/hpc.nix+38

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc902-aarch64/integer-gmp.nix+35

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc902-aarch64/iserv-proxy.nix+45

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc902-aarch64/iserv.nix+42

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc902-aarch64/libiserv.nix+42

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc902-aarch64/remote-iserv.nix+36

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc902-aarch64/template-haskell.nix+36

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc902/Win32.nix+48

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc902/base.nix+48

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc902/bytestring.nix+35

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc902/ghc-bignum.nix+37

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc902/ghc-boot.nix+39

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc902/ghc-heap.nix+35

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc902/ghc-prim.nix+43

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc902/ghc.nix+61

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc902/ghci.nix+45

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc902/hpc.nix+38

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc902/integer-gmp.nix+35

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc902/iserv-proxy.nix+45

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc902/iserv.nix+42

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc902/libiserv.nix+42

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc902/remote-iserv.nix+36

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc902/template-haskell.nix+36

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc921-aarch64/Win32.nix+48

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc921-aarch64/base.nix+48

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc921-aarch64/bytestring.nix+86

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc921-aarch64/deepseq.nix+47

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc921-aarch64/ghc-bignum.nix+37

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc921-aarch64/ghc-boot.nix+40

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc921-aarch64/ghc-heap.nix+36

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc921-aarch64/ghc-prim.nix+44

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc921-aarch64/ghc.nix+61

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc921-aarch64/ghci.nix+45

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc921-aarch64/hpc.nix+38

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc921-aarch64/integer-gmp.nix+35

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc921-aarch64/iserv-proxy.nix+45

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc921-aarch64/iserv.nix+42

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc921-aarch64/libiserv.nix+42

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc921-aarch64/pretty.nix+56

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc921-aarch64/remote-iserv.nix+36

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc921-aarch64/template-haskell.nix+36

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc921/Win32.nix+48

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc921/base.nix+48

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc921/bytestring.nix+86

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc921/deepseq.nix+47

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc921/ghc-bignum.nix+37

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc921/ghc-boot.nix+40

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc921/ghc-heap.nix+36

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc921/ghc-prim.nix+43

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc921/ghc.nix+61

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc921/ghci.nix+45

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc921/hpc.nix+38

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc921/integer-gmp.nix+35

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc921/iserv-proxy.nix+45

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc921/iserv.nix+42

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc921/libiserv.nix+42

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc921/pretty.nix+56

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc921/remote-iserv.nix+36

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc921/template-haskell.nix+36

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc922-aarch64/Win32.nix+48

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc922-aarch64/base.nix+48

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc922-aarch64/bytestring.nix+68

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc922-aarch64/deepseq.nix+47

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc922-aarch64/ghc-bignum.nix+37

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc922-aarch64/ghc-boot.nix+40

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc922-aarch64/ghc-heap.nix+36

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc922-aarch64/ghc-prim.nix+44

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc922-aarch64/ghc.nix+60

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc922-aarch64/ghci.nix+45

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc922-aarch64/hpc.nix+38

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc922-aarch64/integer-gmp.nix+35

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc922-aarch64/iserv-proxy.nix+45

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc922-aarch64/iserv.nix+42

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc922-aarch64/libiserv.nix+42

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc922-aarch64/pretty.nix+56

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc922-aarch64/remote-iserv.nix+36

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc922-aarch64/template-haskell.nix+36

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc922/Win32.nix+48

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc922/base.nix+48

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc922/bytestring.nix+68

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc922/deepseq.nix+47

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc922/ghc-bignum.nix+37

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc922/ghc-boot.nix+40

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc922/ghc-heap.nix+36

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc922/ghc-prim.nix+43

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc922/ghc.nix+60

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc922/ghci.nix+45

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc922/hpc.nix+38

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc922/integer-gmp.nix+35

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc922/iserv-proxy.nix+45

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc922/iserv.nix+42

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc922/libiserv.nix+42

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc922/pretty.nix+56

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc922/remote-iserv.nix+36

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc922/template-haskell.nix+36

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc923-aarch64/Win32.nix+48

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc923-aarch64/base.nix+48

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc923-aarch64/bytestring.nix+65

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc923-aarch64/deepseq.nix+47

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc923-aarch64/ghc-bignum.nix+37

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc923-aarch64/ghc-boot.nix+40

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc923-aarch64/ghc-heap.nix+36

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc923-aarch64/ghc-prim.nix+44

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc923-aarch64/ghc.nix+60

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc923-aarch64/ghci.nix+45

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc923-aarch64/hpc.nix+38

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc923-aarch64/integer-gmp.nix+35

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc923-aarch64/iserv-proxy.nix+45

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc923-aarch64/iserv.nix+42

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc923-aarch64/libiserv.nix+42

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc923-aarch64/pretty.nix+56

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc923-aarch64/remote-iserv.nix+36

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc923-aarch64/template-haskell.nix+36

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc923/Win32.nix+48

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc923/base.nix+48

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc923/bytestring.nix+65

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc923/deepseq.nix+47

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc923/ghc-bignum.nix+37

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc923/ghc-boot.nix+40

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc923/ghc-heap.nix+36

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc923/ghc-prim.nix+43

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc923/ghc.nix+60

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc923/ghci.nix+45

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc923/hpc.nix+38

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc923/integer-gmp.nix+35

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc923/iserv-proxy.nix+45

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc923/iserv.nix+42

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc923/libiserv.nix+42

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc923/pretty.nix+56

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc923/remote-iserv.nix+36

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc923/template-haskell.nix+36

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc924-aarch64/Win32.nix+48

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc924-aarch64/base.nix+48

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc924-aarch64/bytestring.nix+65

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc924-aarch64/deepseq.nix+47

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc924-aarch64/ghc-bignum.nix+37

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc924-aarch64/ghc-boot.nix+40

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc924-aarch64/ghc-heap.nix+36

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc924-aarch64/ghc-prim.nix+44

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc924-aarch64/ghc.nix+60

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc924-aarch64/ghci.nix+45

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc924-aarch64/hpc.nix+38

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc924-aarch64/integer-gmp.nix+35

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc924-aarch64/iserv-proxy.nix+45

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc924-aarch64/iserv.nix+42

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc924-aarch64/libiserv.nix+42

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc924-aarch64/pretty.nix+56

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc924-aarch64/remote-iserv.nix+36

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc924-aarch64/template-haskell.nix+36

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc924/Win32.nix+48

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc924/base.nix+48

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc924/bytestring.nix+65

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc924/deepseq.nix+47

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc924/ghc-bignum.nix+37

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc924/ghc-boot.nix+40

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc924/ghc-heap.nix+36

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc924/ghc-prim.nix+43

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc924/ghc.nix+60

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc924/ghci.nix+45

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc924/hpc.nix+38

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc924/integer-gmp.nix+35

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc924/iserv-proxy.nix+45

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc924/iserv.nix+42

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc924/libiserv.nix+42

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc924/pretty.nix+56

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc924/remote-iserv.nix+36

This diff is too big to show here.

materialized/ghc-boot-packages-nix/ghc924/template-haskell.nix+36

This diff is too big to show here.

materialized/ghc-extra-projects/cross/ghc8101/.plan.nix/Win32.nix+155

This diff is too big to show here.

materialized/ghc-extra-projects/cross/ghc8101/.plan.nix/bytestring.nix−136

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.nix+155

This diff is too big to show here.

materialized/ghc-extra-projects/cross/ghc8102/.plan.nix/ghc-boot.nix+1−1

This diff is too big to show here.

materialized/ghc-extra-projects/cross/ghc8102/.plan.nix/ghc.nix+1−1

This diff is too big to show here.

materialized/ghc-extra-projects/cross/ghc8102/.plan.nix/ghci.nix+1−1

This diff is too big to show here.

materialized/ghc-extra-projects/cross/ghc8102/.plan.nix/hpc.nix+1−1

This diff is too big to show here.

materialized/ghc-extra-projects/cross/ghc8102/.plan.nix/iserv-proxy.nix+2−2

This diff is too big to show here.

materialized/ghc-extra-projects/cross/ghc8102/.plan.nix/iserv.nix+1−1

This diff is too big to show here.

materialized/ghc-extra-projects/cross/ghc8102/.plan.nix/libiserv.nix+1−1

This diff is too big to show here.

materialized/ghc-extra-projects/cross/ghc8102/.plan.nix/remote-iserv.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.nix+155

This diff is too big to show here.

materialized/ghc-extra-projects/cross/ghc8103/.plan.nix/ghc-boot.nix+2−2

This diff is too big to show here.

materialized/ghc-extra-projects/cross/ghc8103/.plan.nix/ghc.nix+2−2

This diff is too big to show here.

materialized/ghc-extra-projects/cross/ghc8103/.plan.nix/ghci.nix+70

This diff is too big to show here.

materialized/ghc-extra-projects/cross/ghc8103/.plan.nix/hpc.nix+1−1

This diff is too big to show here.

materialized/ghc-extra-projects/cross/ghc8103/.plan.nix/iserv-proxy.nix+3−3

This diff is too big to show here.

materialized/ghc-extra-projects/cross/ghc8103/.plan.nix/iserv.nix+54

This diff is too big to show here.

materialized/ghc-extra-projects/cross/ghc8103/.plan.nix/libiserv.nix+58

This diff is too big to show here.

materialized/ghc-extra-projects/cross/ghc8103/.plan.nix/remote-iserv.nix+2−2

This diff is too big to show here.

materialized/ghc-extra-projects/cross/ghc8103/default.nix+128

This diff is too big to show here.

materialized/ghc-extra-projects/cross/ghc8104/.plan.nix/Win32.nix+155

This diff is too big to show here.

materialized/ghc-extra-projects/cross/ghc8104/.plan.nix/ghc-boot.nix+2−2

This diff is too big to show here.

materialized/ghc-extra-projects/cross/ghc8104/.plan.nix/ghc.nix+2−2

This diff is too big to show here.

materialized/ghc-extra-projects/cross/ghc8104/.plan.nix/ghci.nix+70

This diff is too big to show here.

materialized/ghc-extra-projects/cross/ghc8104/.plan.nix/hpc.nix+1−1

This diff is too big to show here.

materialized/ghc-extra-projects/cross/ghc8104/.plan.nix/iserv-proxy.nix+55

This diff is too big to show here.

materialized/ghc-extra-projects/cross/ghc8104/.plan.nix/iserv.nix+54

This diff is too big to show here.

materialized/ghc-extra-projects/cross/ghc8104/.plan.nix/libiserv.nix+58

This diff is too big to show here.

materialized/ghc-extra-projects/cross/ghc8104/.plan.nix/remote-iserv.nix+2−2

This diff is too big to show here.

materialized/ghc-extra-projects/cross/ghc8104/default.nix+128

This diff is too big to show here.

materialized/ghc-extra-projects/cross/ghc810420210212/.plan.nix/Win32.nix+155

This diff is too big to show here.

materialized/ghc-extra-projects/cross/ghc810420210212/.plan.nix/ghc-boot.nix+60

This diff is too big to show here.

materialized/ghc-extra-projects/cross/ghc810420210212/.plan.nix/ghc.nix+586

This diff is too big to show here.

materialized/ghc-extra-projects/cross/ghc810420210212/.plan.nix/ghci.nix+70

This diff is too big to show here.

materialized/ghc-extra-projects/cross/ghc810420210212/.plan.nix/hpc.nix+52

This diff is too big to show here.

materialized/ghc-extra-projects/cross/ghc810420210212/.plan.nix/iserv-proxy.nix+55

This diff is too big to show here.

materialized/ghc-extra-projects/cross/ghc810420210212/.plan.nix/iserv.nix+54

This diff is too big to show here.

materialized/ghc-extra-projects/cross/ghc810420210212/.plan.nix/libiserv.nix+58

This diff is too big to show here.

materialized/ghc-extra-projects/cross/ghc810420210212/.plan.nix/remote-iserv.nix+46

This diff is too big to show here.

materialized/ghc-extra-projects/cross/ghc810420210212/default.nix+128

This diff is too big to show here.

materialized/ghc-extra-projects/cross/ghc8105/.plan.nix/Win32.nix+155

This diff is too big to show here.

materialized/ghc-extra-projects/cross/ghc8105/.plan.nix/ghc-boot.nix+60

This diff is too big to show here.

materialized/ghc-extra-projects/cross/ghc8105/.plan.nix/ghc.nix+586

This diff is too big to show here.

materialized/ghc-extra-projects/cross/ghc8105/.plan.nix/ghci.nix+71

This diff is too big to show here.

materialized/ghc-extra-projects/cross/ghc8105/.plan.nix/hpc.nix+52

This diff is too big to show here.

materialized/ghc-extra-projects/cross/ghc8105/.plan.nix/iserv-proxy.nix+55

This diff is too big to show here.

materialized/ghc-extra-projects/cross/ghc8105/.plan.nix/iserv.nix+54

This diff is too big to show here.

materialized/ghc-extra-projects/cross/ghc8105/.plan.nix/libiserv.nix+58

This diff is too big to show here.

materialized/ghc-extra-projects/cross/ghc8105/.plan.nix/remote-iserv.nix+46

This diff is too big to show here.

materialized/ghc-extra-projects/cross/ghc8105/default.nix+128

This diff is too big to show here.

materialized/ghc-extra-projects/cross/ghc8106/.plan.nix/Win32.nix+155

This diff is too big to show here.

materialized/ghc-extra-projects/cross/ghc8106/.plan.nix/ghc-boot.nix+60

This diff is too big to show here.

materialized/ghc-extra-projects/cross/ghc8106/.plan.nix/ghc.nix+586

This diff is too big to show here.

materialized/ghc-extra-projects/cross/ghc8106/.plan.nix/ghci.nix+71

This diff is too big to show here.

materialized/ghc-extra-projects/cross/ghc8106/.plan.nix/hpc.nix+52

This diff is too big to show here.

materialized/ghc-extra-projects/cross/ghc8106/.plan.nix/iserv-proxy.nix+55

This diff is too big to show here.

materialized/ghc-extra-projects/cross/ghc8106/.plan.nix/iserv.nix+54

This diff is too big to show here.

materialized/ghc-extra-projects/cross/ghc8106/.plan.nix/libiserv.nix+58

This diff is too big to show here.

materialized/ghc-extra-projects/cross/ghc8106/.plan.nix/remote-iserv.nix+46

This diff is too big to show here.

materialized/ghc-extra-projects/cross/ghc8106/default.nix+128

This diff is too big to show here.

materialized/ghc-extra-projects/cross/ghc8107/.plan.nix/Win32.nix+155

This diff is too big to show here.

materialized/ghc-extra-projects/cross/ghc8107/.plan.nix/ghc-boot.nix+60

This diff is too big to show here.

materialized/ghc-extra-projects/cross/ghc8107/.plan.nix/ghc.nix+586

This diff is too big to show here.

materialized/ghc-extra-projects/cross/ghc8107/.plan.nix/ghci.nix+71

This diff is too big to show here.

materialized/ghc-extra-projects/cross/ghc8107/.plan.nix/hpc.nix+52

This diff is too big to show here.

materialized/ghc-extra-projects/cross/ghc8107/.plan.nix/iserv-proxy.nix+55

This diff is too big to show here.

materialized/ghc-extra-projects/cross/ghc8107/.plan.nix/iserv.nix+54

This diff is too big to show here.

materialized/ghc-extra-projects/cross/ghc8107/.plan.nix/libiserv.nix+58

This diff is too big to show here.

materialized/ghc-extra-projects/cross/ghc8107/.plan.nix/remote-iserv.nix+46

This diff is too big to show here.

materialized/ghc-extra-projects/cross/ghc8107/default.nix+128

This diff is too big to show here.

materialized/ghc-extra-projects/cross/ghc865/.plan.nix/Win32.nix+155

This diff is too big to show here.

materialized/ghc-extra-projects/cross/ghc865/.plan.nix/bytestring.nix−136

This diff is too big to show here.

materialized/ghc-extra-projects/cross/ghc865/.plan.nix/ghc-boot.nix+1−1

This diff is too big to show here.

materialized/ghc-extra-projects/cross/ghc865/.plan.nix/ghc.nix+1−5

This diff is too big to show here.

materialized/ghc-extra-projects/cross/ghc865/.plan.nix/ghci.nix+1−1

This diff is too big to show here.

materialized/ghc-extra-projects/cross/ghc865/.plan.nix/hpc.nix+1−1

This diff is too big to show here.

materialized/ghc-extra-projects/cross/ghc865/.plan.nix/iserv-proxy.nix+2−2

This diff is too big to show here.

materialized/ghc-extra-projects/cross/ghc865/.plan.nix/iserv.nix+1−1

This diff is too big to show here.

materialized/ghc-extra-projects/cross/ghc865/.plan.nix/libiserv.nix+1−1

This diff is too big to show here.

materialized/ghc-extra-projects/cross/ghc865/.plan.nix/remote-iserv.nix+1−1

This diff is too big to show here.

materialized/ghc-extra-projects/cross/ghc865/default.nix+79−46

This diff is too big to show here.

materialized/ghc-extra-projects/cross/ghc882/.plan.nix/Win32.nix+155

This diff is too big to show here.

materialized/ghc-extra-projects/cross/ghc882/.plan.nix/ghc-boot.nix+53

This diff is too big to show here.

materialized/ghc-extra-projects/cross/ghc882/.plan.nix/ghc.nix+573

This diff is too big to show here.

materialized/ghc-extra-projects/cross/ghc882/.plan.nix/ghci.nix+2−2

This diff is too big to show here.

materialized/ghc-extra-projects/cross/ghc882/.plan.nix/hpc.nix+51

This diff is too big to show here.

materialized/ghc-extra-projects/cross/ghc882/.plan.nix/iserv-proxy.nix+55

This diff is too big to show here.

materialized/ghc-extra-projects/cross/ghc882/.plan.nix/iserv.nix+2−2

This diff is too big to show here.

materialized/ghc-extra-projects/cross/ghc882/.plan.nix/libiserv.nix+2−2

This diff is too big to show here.

materialized/ghc-extra-projects/cross/ghc882/.plan.nix/remote-iserv.nix+46

This diff is too big to show here.

materialized/ghc-extra-projects/cross/ghc882/default.nix+127

This diff is too big to show here.

materialized/ghc-extra-projects/cross/ghc883/.plan.nix/Win32.nix+155

This diff is too big to show here.

materialized/ghc-extra-projects/cross/ghc883/.plan.nix/bytestring.nix−136

This diff is too big to show here.

materialized/ghc-extra-projects/cross/ghc883/.plan.nix/ghc-boot.nix+1−1

This diff is too big to show here.

materialized/ghc-extra-projects/cross/ghc883/.plan.nix/ghc.nix+1−5

This diff is too big to show here.

materialized/ghc-extra-projects/cross/ghc883/.plan.nix/ghci.nix+1−1

This diff is too big to show here.

materialized/ghc-extra-projects/cross/ghc883/.plan.nix/hpc.nix+1−1

This diff is too big to show here.

materialized/ghc-extra-projects/cross/ghc883/.plan.nix/iserv-proxy.nix+2−2

This diff is too big to show here.

materialized/ghc-extra-projects/cross/ghc883/.plan.nix/iserv.nix+1−1

This diff is too big to show here.

materialized/ghc-extra-projects/cross/ghc883/.plan.nix/libiserv.nix+1−1

This diff is too big to show here.

materialized/ghc-extra-projects/cross/ghc883/.plan.nix/remote-iserv.nix+1−1

This diff is too big to show here.

materialized/ghc-extra-projects/cross/ghc883/default.nix+78−46

This diff is too big to show here.

materialized/ghc-extra-projects/cross/ghc884/.plan.nix/Win32.nix+155

This diff is too big to show here.

materialized/ghc-extra-projects/cross/ghc884/.plan.nix/bytestring.nix−167

This diff is too big to show here.

materialized/ghc-extra-projects/cross/ghc884/.plan.nix/ghc-boot.nix+1−1

This diff is too big to show here.

materialized/ghc-extra-projects/cross/ghc884/.plan.nix/ghc.nix+1−5

This diff is too big to show here.

materialized/ghc-extra-projects/cross/ghc884/.plan.nix/ghci.nix+1−1

This diff is too big to show here.

materialized/ghc-extra-projects/cross/ghc884/.plan.nix/hpc.nix+1−1

This diff is too big to show here.

materialized/ghc-extra-projects/cross/ghc884/.plan.nix/iserv-proxy.nix+2−2

This diff is too big to show here.

materialized/ghc-extra-projects/cross/ghc884/.plan.nix/iserv.nix+1−1

This diff is too big to show here.

materialized/ghc-extra-projects/cross/ghc884/.plan.nix/libiserv.nix+1−1

This diff is too big to show here.

materialized/ghc-extra-projects/cross/ghc884/.plan.nix/remote-iserv.nix+1−1

This diff is too big to show here.

materialized/ghc-extra-projects/cross/ghc884/default.nix+78−46

This diff is too big to show here.

materialized/ghc-extra-projects/cross/ghc901/.plan.nix/Win32.nix+158

This diff is too big to show here.

materialized/ghc-extra-projects/cross/ghc901/.plan.nix/ghc-boot.nix+61

This diff is too big to show here.

materialized/ghc-extra-projects/cross/ghc901/.plan.nix/ghc.nix+572

This diff is too big to show here.

materialized/ghc-extra-projects/cross/ghc901/.plan.nix/ghci.nix+2−2

This diff is too big to show here.

materialized/ghc-extra-projects/cross/ghc901/.plan.nix/hpc.nix+52

This diff is too big to show here.

materialized/ghc-extra-projects/cross/ghc901/.plan.nix/iserv-proxy.nix+55

This diff is too big to show here.

materialized/ghc-extra-projects/cross/ghc901/.plan.nix/iserv.nix+2−2

This diff is too big to show here.

materialized/ghc-extra-projects/cross/ghc901/.plan.nix/libiserv.nix+2−2

This diff is too big to show here.

materialized/ghc-extra-projects/cross/ghc901/.plan.nix/remote-iserv.nix+46

This diff is too big to show here.

materialized/ghc-extra-projects/cross/ghc901/default.nix+135

This diff is too big to show here.

materialized/ghc-extra-projects/cross/ghc902/.plan.nix/Win32.nix+158

This diff is too big to show here.

materialized/ghc-extra-projects/cross/ghc902/.plan.nix/ghc-boot.nix+61

This diff is too big to show here.

materialized/ghc-extra-projects/cross/ghc902/.plan.nix/ghc.nix+572

This diff is too big to show here.

materialized/ghc-extra-projects/cross/ghc902/.plan.nix/ghci.nix+71

This diff is too big to show here.

materialized/ghc-extra-projects/cross/ghc902/.plan.nix/hpc.nix+52

This diff is too big to show here.

materialized/ghc-extra-projects/cross/ghc902/.plan.nix/iserv-proxy.nix+55

This diff is too big to show here.

materialized/ghc-extra-projects/cross/ghc902/.plan.nix/iserv.nix+54

This diff is too big to show here.

materialized/ghc-extra-projects/cross/ghc902/.plan.nix/libiserv.nix+58

This diff is too big to show here.

materialized/ghc-extra-projects/cross/ghc902/.plan.nix/remote-iserv.nix+46

This diff is too big to show here.

materialized/ghc-extra-projects/cross/ghc902/default.nix+136

This diff is too big to show here.

materialized/ghc-extra-projects/cross/ghc921/.plan.nix/Win32.nix+158

This diff is too big to show here.

materialized/ghc-extra-projects/cross/ghc921/.plan.nix/ghc-boot.nix+64

This diff is too big to show here.

materialized/ghc-extra-projects/cross/ghc921/.plan.nix/ghc.nix+663

This diff is too big to show here.

materialized/ghc-extra-projects/cross/ghc921/.plan.nix/ghci.nix+70

This diff is too big to show here.

materialized/ghc-extra-projects/cross/ghc921/.plan.nix/hpc.nix+52

This diff is too big to show here.

materialized/ghc-extra-projects/cross/ghc921/.plan.nix/iserv-proxy.nix+55

This diff is too big to show here.

materialized/ghc-extra-projects/cross/ghc921/.plan.nix/iserv.nix+54

This diff is too big to show here.

materialized/ghc-extra-projects/cross/ghc921/.plan.nix/libiserv.nix+58

This diff is too big to show here.

materialized/ghc-extra-projects/cross/ghc921/.plan.nix/remote-iserv.nix+46

This diff is too big to show here.

materialized/ghc-extra-projects/cross/ghc921/default.nix+143

This diff is too big to show here.

materialized/ghc-extra-projects/cross/ghc922/.plan.nix/Win32.nix+158

This diff is too big to show here.

materialized/ghc-extra-projects/cross/ghc922/.plan.nix/ghc-boot.nix+64

This diff is too big to show here.

materialized/ghc-extra-projects/cross/ghc922/.plan.nix/ghc.nix+661

This diff is too big to show here.

materialized/ghc-extra-projects/cross/ghc922/.plan.nix/ghci.nix+70

This diff is too big to show here.

materialized/ghc-extra-projects/cross/ghc922/.plan.nix/hpc.nix+52

This diff is too big to show here.

materialized/ghc-extra-projects/cross/ghc922/.plan.nix/iserv-proxy.nix+55

This diff is too big to show here.

materialized/ghc-extra-projects/cross/ghc922/.plan.nix/iserv.nix+54

This diff is too big to show here.

materialized/ghc-extra-projects/cross/ghc922/.plan.nix/libiserv.nix+58

This diff is too big to show here.

materialized/ghc-extra-projects/cross/ghc922/.plan.nix/remote-iserv.nix+46

This diff is too big to show here.

materialized/ghc-extra-projects/cross/ghc922/default.nix+138

This diff is too big to show here.

materialized/ghc-extra-projects/cross/ghc923/.plan.nix/Win32.nix+158

This diff is too big to show here.

materialized/ghc-extra-projects/cross/ghc923/.plan.nix/ghc-boot.nix+64

This diff is too big to show here.

materialized/ghc-extra-projects/cross/ghc923/.plan.nix/ghc.nix+661

This diff is too big to show here.

materialized/ghc-extra-projects/cross/ghc923/.plan.nix/ghci.nix+70

This diff is too big to show here.

materialized/ghc-extra-projects/cross/ghc923/.plan.nix/hpc.nix+52

This diff is too big to show here.

materialized/ghc-extra-projects/cross/ghc923/.plan.nix/iserv-proxy.nix+55

This diff is too big to show here.

materialized/ghc-extra-projects/cross/ghc923/.plan.nix/iserv.nix+54

This diff is too big to show here.

materialized/ghc-extra-projects/cross/ghc923/.plan.nix/libiserv.nix+58

This diff is too big to show here.

materialized/ghc-extra-projects/cross/ghc923/.plan.nix/remote-iserv.nix+46

This diff is too big to show here.

materialized/ghc-extra-projects/cross/ghc923/default.nix+138

This diff is too big to show here.

materialized/ghc-extra-projects/cross/ghc924/.plan.nix/Win32.nix+158

This diff is too big to show here.

materialized/ghc-extra-projects/cross/ghc924/.plan.nix/ghc-boot.nix+64

This diff is too big to show here.

materialized/ghc-extra-projects/cross/ghc924/.plan.nix/ghc.nix+661

This diff is too big to show here.

materialized/ghc-extra-projects/cross/ghc924/.plan.nix/ghci.nix+70

This diff is too big to show here.

materialized/ghc-extra-projects/cross/ghc924/.plan.nix/hpc.nix+52

This diff is too big to show here.

materialized/ghc-extra-projects/cross/ghc924/.plan.nix/iserv-proxy.nix+55

This diff is too big to show here.

materialized/ghc-extra-projects/cross/ghc924/.plan.nix/iserv.nix+54

This diff is too big to show here.

materialized/ghc-extra-projects/cross/ghc924/.plan.nix/libiserv.nix+58

This diff is too big to show here.

materialized/ghc-extra-projects/cross/ghc924/.plan.nix/remote-iserv.nix+46

This diff is too big to show here.

materialized/ghc-extra-projects/cross/ghc924/default.nix+137

This diff is too big to show here.

materialized/ghc-extra-projects/default/ghc8101/.plan.nix/Win32.nix+155

This diff is too big to show here.

materialized/ghc-extra-projects/default/ghc8101/.plan.nix/bytestring.nix−136

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-experimental/.plan.nix/bytestring.nix−136

This diff is too big to show here.

materialized/ghc-extra-projects/default/ghc8102/.plan.nix/Win32.nix+155

This diff is too big to show here.

materialized/ghc-extra-projects/default/ghc8102/.plan.nix/bytestring.nix−136

This diff is too big to show here.

materialized/ghc-extra-projects/default/ghc8102/.plan.nix/ghc-boot.nix+1−1

This diff is too big to show here.

materialized/ghc-extra-projects/default/ghc8102/.plan.nix/ghc.nix+1−1

This diff is too big to show here.

materialized/ghc-extra-projects/default/ghc8102/.plan.nix/ghci.nix+1−1

This diff is too big to show here.

materialized/ghc-extra-projects/default/ghc8102/.plan.nix/hpc.nix+1−1

This diff is too big to show here.

materialized/ghc-extra-projects/default/ghc8102/.plan.nix/iserv-proxy.nix+2−2

This diff is too big to show here.

materialized/ghc-extra-projects/default/ghc8102/.plan.nix/iserv.nix+1−1

This diff is too big to show here.

materialized/ghc-extra-projects/default/ghc8102/.plan.nix/libiserv.nix+1−1

This diff is too big to show here.

materialized/ghc-extra-projects/default/ghc8102/.plan.nix/remote-iserv.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.nix+155

This diff is too big to show here.

materialized/ghc-extra-projects/default/ghc8103/.plan.nix/ghc-boot.nix+60

This diff is too big to show here.

materialized/ghc-extra-projects/default/ghc8103/.plan.nix/ghc.nix+586

This diff is too big to show here.

materialized/ghc-extra-projects/default/ghc8103/.plan.nix/ghci.nix+70

This diff is too big to show here.

materialized/ghc-extra-projects/default/ghc8103/.plan.nix/hpc.nix+52

This diff is too big to show here.

materialized/ghc-extra-projects/default/ghc8103/.plan.nix/iserv-proxy.nix+55

This diff is too big to show here.

materialized/ghc-extra-projects/default/ghc8103/.plan.nix/iserv.nix+54

This diff is too big to show here.

materialized/ghc-extra-projects/default/ghc8103/.plan.nix/libiserv.nix+58

This diff is too big to show here.

materialized/ghc-extra-projects/default/ghc8103/.plan.nix/remote-iserv.nix+46

This diff is too big to show here.

materialized/ghc-extra-projects/default/ghc8103/default.nix+82−44

This diff is too big to show here.

materialized/ghc-extra-projects/default/ghc8104/.plan.nix/Win32.nix+155

This diff is too big to show here.

materialized/ghc-extra-projects/default/ghc8104/.plan.nix/ghc-boot.nix+60

This diff is too big to show here.

materialized/ghc-extra-projects/default/ghc8104/.plan.nix/ghc.nix+586

This diff is too big to show here.

materialized/ghc-extra-projects/default/ghc8104/.plan.nix/ghci.nix+70

This diff is too big to show here.

materialized/ghc-extra-projects/default/ghc8104/.plan.nix/hpc.nix+52

This diff is too big to show here.

materialized/ghc-extra-projects/default/ghc8104/.plan.nix/iserv-proxy.nix+55

This diff is too big to show here.

materialized/ghc-extra-projects/default/ghc8104/.plan.nix/iserv.nix+54

This diff is too big to show here.

materialized/ghc-extra-projects/default/ghc8104/.plan.nix/libiserv.nix+58

This diff is too big to show here.

materialized/ghc-extra-projects/default/ghc8104/.plan.nix/remote-iserv.nix+46

This diff is too big to show here.

materialized/ghc-extra-projects/default/ghc8104/default.nix+82−43

This diff is too big to show here.

materialized/ghc-extra-projects/default/ghc810420210212/.plan.nix/Win32.nix+155

This diff is too big to show here.

materialized/ghc-extra-projects/default/ghc810420210212/.plan.nix/ghc-boot.nix+60

This diff is too big to show here.

materialized/ghc-extra-projects/default/ghc810420210212/.plan.nix/ghc.nix+586

This diff is too big to show here.

materialized/ghc-extra-projects/default/ghc810420210212/.plan.nix/ghci.nix+70

This diff is too big to show here.

materialized/ghc-extra-projects/default/ghc810420210212/.plan.nix/hpc.nix+52

This diff is too big to show here.

materialized/ghc-extra-projects/default/ghc810420210212/.plan.nix/iserv-proxy.nix+55

This diff is too big to show here.

materialized/ghc-extra-projects/default/ghc810420210212/.plan.nix/iserv.nix+54

This diff is too big to show here.

materialized/ghc-extra-projects/default/ghc810420210212/.plan.nix/libiserv.nix+58

This diff is too big to show here.

materialized/ghc-extra-projects/default/ghc810420210212/.plan.nix/remote-iserv.nix+46

This diff is too big to show here.

materialized/ghc-extra-projects/default/ghc810420210212/default.nix+129

This diff is too big to show here.

materialized/ghc-extra-projects/default/ghc8105/.plan.nix/Win32.nix+155

This diff is too big to show here.

materialized/ghc-extra-projects/default/ghc8105/.plan.nix/ghc-boot.nix+60

This diff is too big to show here.

materialized/ghc-extra-projects/default/ghc8105/.plan.nix/ghc.nix+586

This diff is too big to show here.

materialized/ghc-extra-projects/default/ghc8105/.plan.nix/ghci.nix+71

This diff is too big to show here.

materialized/ghc-extra-projects/default/ghc8105/.plan.nix/hpc.nix+52

This diff is too big to show here.

materialized/ghc-extra-projects/default/ghc8105/.plan.nix/iserv-proxy.nix+55

This diff is too big to show here.

materialized/ghc-extra-projects/default/ghc8105/.plan.nix/iserv.nix+54

This diff is too big to show here.

materialized/ghc-extra-projects/default/ghc8105/.plan.nix/libiserv.nix+58

This diff is too big to show here.

materialized/ghc-extra-projects/default/ghc8105/.plan.nix/remote-iserv.nix+46

This diff is too big to show here.

materialized/ghc-extra-projects/default/ghc8105/default.nix+129

This diff is too big to show here.

materialized/ghc-extra-projects/default/ghc8106/.plan.nix/Win32.nix+155

This diff is too big to show here.

materialized/ghc-extra-projects/default/ghc8106/.plan.nix/ghc-boot.nix+60

This diff is too big to show here.

materialized/ghc-extra-projects/default/ghc8106/.plan.nix/ghc.nix+586

This diff is too big to show here.

materialized/ghc-extra-projects/default/ghc8106/.plan.nix/ghci.nix+71

This diff is too big to show here.

materialized/ghc-extra-projects/default/ghc8106/.plan.nix/hpc.nix+52

This diff is too big to show here.

materialized/ghc-extra-projects/default/ghc8106/.plan.nix/iserv-proxy.nix+55

This diff is too big to show here.

materialized/ghc-extra-projects/default/ghc8106/.plan.nix/iserv.nix+54

This diff is too big to show here.

materialized/ghc-extra-projects/default/ghc8106/.plan.nix/libiserv.nix+58

This diff is too big to show here.

materialized/ghc-extra-projects/default/ghc8106/.plan.nix/remote-iserv.nix+46

This diff is too big to show here.

materialized/ghc-extra-projects/default/ghc8106/default.nix+129

This diff is too big to show here.

materialized/ghc-extra-projects/default/ghc8107/.plan.nix/Win32.nix+155

This diff is too big to show here.

materialized/ghc-extra-projects/default/ghc8107/.plan.nix/ghc-boot.nix+60

This diff is too big to show here.

materialized/ghc-extra-projects/default/ghc8107/.plan.nix/ghc.nix+586

This diff is too big to show here.

materialized/ghc-extra-projects/default/ghc8107/.plan.nix/ghci.nix+71

This diff is too big to show here.

materialized/ghc-extra-projects/default/ghc8107/.plan.nix/hpc.nix+52

This diff is too big to show here.

materialized/ghc-extra-projects/default/ghc8107/.plan.nix/iserv-proxy.nix+55

This diff is too big to show here.

materialized/ghc-extra-projects/default/ghc8107/.plan.nix/iserv.nix+54

This diff is too big to show here.

materialized/ghc-extra-projects/default/ghc8107/.plan.nix/libiserv.nix+58

This diff is too big to show here.

materialized/ghc-extra-projects/default/ghc8107/.plan.nix/remote-iserv.nix+46

This diff is too big to show here.

materialized/ghc-extra-projects/default/ghc8107/default.nix+129

This diff is too big to show here.

materialized/ghc-extra-projects/default/ghc863/.plan.nix/Win32.nix+155

This diff is too big to show here.

materialized/ghc-extra-projects/default/ghc863/.plan.nix/ghc-boot.nix+53

This diff is too big to show here.

materialized/ghc-extra-projects/default/ghc863/.plan.nix/ghc.nix+47−81

This diff is too big to show here.

materialized/ghc-extra-projects/default/ghc863/.plan.nix/ghci.nix+70

This diff is too big to show here.

materialized/ghc-extra-projects/default/ghc863/.plan.nix/hpc.nix+51

This diff is too big to show here.

materialized/ghc-extra-projects/default/ghc863/.plan.nix/iserv-proxy.nix+55

This diff is too big to show here.

materialized/ghc-extra-projects/default/ghc863/.plan.nix/iserv.nix+54

This diff is too big to show here.

materialized/ghc-extra-projects/default/ghc863/.plan.nix/libiserv.nix+58

This diff is too big to show here.

materialized/ghc-extra-projects/default/ghc863/.plan.nix/remote-iserv.nix+46

This diff is too big to show here.

materialized/ghc-extra-projects/default/ghc863/default.nix+126

This diff is too big to show here.

materialized/ghc-extra-projects/default/ghc864/.plan.nix/Win32.nix+155

This diff is too big to show here.

materialized/ghc-extra-projects/default/ghc864/.plan.nix/ghc-boot.nix+53

This diff is too big to show here.

materialized/ghc-extra-projects/default/ghc864/.plan.nix/ghc.nix+556

This diff is too big to show here.

materialized/ghc-extra-projects/default/ghc864/.plan.nix/ghci.nix+70

This diff is too big to show here.

materialized/ghc-extra-projects/default/ghc864/.plan.nix/hpc.nix+51

This diff is too big to show here.

materialized/ghc-extra-projects/default/ghc864/.plan.nix/iserv-proxy.nix+55

This diff is too big to show here.

materialized/ghc-extra-projects/default/ghc864/.plan.nix/iserv.nix+54

This diff is too big to show here.

materialized/ghc-extra-projects/default/ghc864/.plan.nix/libiserv.nix+58

This diff is too big to show here.

materialized/ghc-extra-projects/default/ghc864/.plan.nix/remote-iserv.nix+46

This diff is too big to show here.

materialized/ghc-extra-projects/default/ghc864/default.nix+127

This diff is too big to show here.

materialized/ghc-extra-projects/default/ghc865/.plan.nix/Win32.nix+155

This diff is too big to show here.

materialized/ghc-extra-projects/default/ghc865/.plan.nix/ghc-boot.nix+1−1

This diff is too big to show here.

materialized/ghc-extra-projects/default/ghc865/.plan.nix/ghc.nix+1−5

This diff is too big to show here.

materialized/ghc-extra-projects/default/ghc865/.plan.nix/ghci.nix+1−1

This diff is too big to show here.

materialized/ghc-extra-projects/default/ghc865/.plan.nix/hpc.nix+1−1

This diff is too big to show here.

materialized/ghc-extra-projects/default/ghc865/.plan.nix/iserv-proxy.nix+2−2

This diff is too big to show here.

materialized/ghc-extra-projects/default/ghc865/.plan.nix/iserv.nix+1−1

This diff is too big to show here.

materialized/ghc-extra-projects/default/ghc865/.plan.nix/libiserv.nix+1−1

This diff is too big to show here.

materialized/ghc-extra-projects/default/ghc865/.plan.nix/remote-iserv.nix+1−1

This diff is too big to show here.

materialized/ghc-extra-projects/default/ghc865/default.nix+79−47

This diff is too big to show here.

materialized/ghc-extra-projects/default/ghc882/.plan.nix/Win32.nix+155

This diff is too big to show here.

materialized/ghc-extra-projects/default/ghc882/.plan.nix/ghc-boot.nix+53

This diff is too big to show here.

materialized/ghc-extra-projects/default/ghc882/.plan.nix/ghc.nix+573

This diff is too big to show here.

materialized/ghc-extra-projects/default/ghc882/.plan.nix/ghci.nix+70

This diff is too big to show here.

materialized/ghc-extra-projects/default/ghc882/.plan.nix/hpc.nix+51

This diff is too big to show here.

materialized/ghc-extra-projects/default/ghc882/.plan.nix/iserv-proxy.nix+55

This diff is too big to show here.

materialized/ghc-extra-projects/default/ghc882/.plan.nix/iserv.nix+54

This diff is too big to show here.

materialized/ghc-extra-projects/default/ghc882/.plan.nix/libiserv.nix+58

This diff is too big to show here.

materialized/ghc-extra-projects/default/ghc882/.plan.nix/remote-iserv.nix+46

This diff is too big to show here.

materialized/ghc-extra-projects/default/ghc882/default.nix+128

This diff is too big to show here.

materialized/ghc-extra-projects/default/ghc883/.plan.nix/Win32.nix+155

This diff is too big to show here.

materialized/ghc-extra-projects/default/ghc883/.plan.nix/bytestring.nix−136

This diff is too big to show here.

materialized/ghc-extra-projects/default/ghc883/.plan.nix/ghc-boot.nix+1−1

This diff is too big to show here.

materialized/ghc-extra-projects/default/ghc883/.plan.nix/ghc.nix+1−5

This diff is too big to show here.

materialized/ghc-extra-projects/default/ghc883/.plan.nix/ghci.nix+1−1

This diff is too big to show here.

materialized/ghc-extra-projects/default/ghc883/.plan.nix/hpc.nix+1−1

This diff is too big to show here.

materialized/ghc-extra-projects/default/ghc883/.plan.nix/iserv-proxy.nix+2−2

This diff is too big to show here.

materialized/ghc-extra-projects/default/ghc883/.plan.nix/iserv.nix+1−1

This diff is too big to show here.

materialized/ghc-extra-projects/default/ghc883/.plan.nix/libiserv.nix+1−1

This diff is too big to show here.

materialized/ghc-extra-projects/default/ghc883/.plan.nix/remote-iserv.nix+1−1

This diff is too big to show here.

materialized/ghc-extra-projects/default/ghc883/default.nix+79−47

This diff is too big to show here.

materialized/ghc-extra-projects/default/ghc884/.plan.nix/Win32.nix+155

This diff is too big to show here.

materialized/ghc-extra-projects/default/ghc884/.plan.nix/bytestring.nix−167

This diff is too big to show here.

materialized/ghc-extra-projects/default/ghc884/.plan.nix/ghc-boot.nix+1−1

This diff is too big to show here.

materialized/ghc-extra-projects/default/ghc884/.plan.nix/ghc.nix+1−5

This diff is too big to show here.

materialized/ghc-extra-projects/default/ghc884/.plan.nix/ghci.nix+1−1

This diff is too big to show here.

materialized/ghc-extra-projects/default/ghc884/.plan.nix/hpc.nix+1−1

This diff is too big to show here.

materialized/ghc-extra-projects/default/ghc884/.plan.nix/iserv-proxy.nix+2−2

This diff is too big to show here.

materialized/ghc-extra-projects/default/ghc884/.plan.nix/iserv.nix+1−1

This diff is too big to show here.

materialized/ghc-extra-projects/default/ghc884/.plan.nix/libiserv.nix+1−1

This diff is too big to show here.

materialized/ghc-extra-projects/default/ghc884/.plan.nix/remote-iserv.nix+1−1

This diff is too big to show here.

materialized/ghc-extra-projects/default/ghc884/default.nix+79−47

This diff is too big to show here.

materialized/ghc-extra-projects/default/ghc901/.plan.nix/Win32.nix+158

This diff is too big to show here.

materialized/ghc-extra-projects/default/ghc901/.plan.nix/ghc-boot.nix+61

This diff is too big to show here.

materialized/ghc-extra-projects/default/ghc901/.plan.nix/ghc.nix+572

This diff is too big to show here.

materialized/ghc-extra-projects/default/ghc901/.plan.nix/ghci.nix+70

This diff is too big to show here.

materialized/ghc-extra-projects/default/ghc901/.plan.nix/hpc.nix+52

This diff is too big to show here.

materialized/ghc-extra-projects/default/ghc901/.plan.nix/iserv-proxy.nix+55

This diff is too big to show here.

materialized/ghc-extra-projects/default/ghc901/.plan.nix/iserv.nix+54

This diff is too big to show here.

materialized/ghc-extra-projects/default/ghc901/.plan.nix/libiserv.nix+58

This diff is too big to show here.

materialized/ghc-extra-projects/default/ghc901/.plan.nix/remote-iserv.nix+46

This diff is too big to show here.

materialized/ghc-extra-projects/default/ghc901/default.nix+136

This diff is too big to show here.

materialized/ghc-extra-projects/default/ghc902/.plan.nix/Win32.nix+158

This diff is too big to show here.

materialized/ghc-extra-projects/default/ghc902/.plan.nix/ghc-boot.nix+61

This diff is too big to show here.

materialized/ghc-extra-projects/default/ghc902/.plan.nix/ghc.nix+572

This diff is too big to show here.

materialized/ghc-extra-projects/default/ghc902/.plan.nix/ghci.nix+71

This diff is too big to show here.

materialized/ghc-extra-projects/default/ghc902/.plan.nix/hpc.nix+52

This diff is too big to show here.

materialized/ghc-extra-projects/default/ghc902/.plan.nix/iserv-proxy.nix+55

This diff is too big to show here.

materialized/ghc-extra-projects/default/ghc902/.plan.nix/iserv.nix+54

This diff is too big to show here.

materialized/ghc-extra-projects/default/ghc902/.plan.nix/libiserv.nix+58

This diff is too big to show here.

materialized/ghc-extra-projects/default/ghc902/.plan.nix/remote-iserv.nix+46

This diff is too big to show here.

materialized/ghc-extra-projects/default/ghc902/default.nix+136

This diff is too big to show here.

materialized/ghc-extra-projects/default/ghc921/.plan.nix/Win32.nix+158

This diff is too big to show here.

materialized/ghc-extra-projects/default/ghc921/.plan.nix/ghc-boot.nix+64

This diff is too big to show here.

materialized/ghc-extra-projects/default/ghc921/.plan.nix/ghc.nix+663

This diff is too big to show here.

materialized/ghc-extra-projects/default/ghc921/.plan.nix/ghci.nix+70

This diff is too big to show here.

materialized/ghc-extra-projects/default/ghc921/.plan.nix/hpc.nix+52

This diff is too big to show here.

materialized/ghc-extra-projects/default/ghc921/.plan.nix/iserv-proxy.nix+55

This diff is too big to show here.

materialized/ghc-extra-projects/default/ghc921/.plan.nix/iserv.nix+54

This diff is too big to show here.

materialized/ghc-extra-projects/default/ghc921/.plan.nix/libiserv.nix+58

This diff is too big to show here.

materialized/ghc-extra-projects/default/ghc921/.plan.nix/remote-iserv.nix+46

This diff is too big to show here.

materialized/ghc-extra-projects/default/ghc921/default.nix+144

This diff is too big to show here.

materialized/ghc-extra-projects/default/ghc922/.plan.nix/Win32.nix+158

This diff is too big to show here.

materialized/ghc-extra-projects/default/ghc922/.plan.nix/ghc-boot.nix+64

This diff is too big to show here.

materialized/ghc-extra-projects/default/ghc922/.plan.nix/ghc.nix+661

This diff is too big to show here.

materialized/ghc-extra-projects/default/ghc922/.plan.nix/ghci.nix+70

This diff is too big to show here.

materialized/ghc-extra-projects/default/ghc922/.plan.nix/hpc.nix+52

This diff is too big to show here.

materialized/ghc-extra-projects/default/ghc922/.plan.nix/iserv-proxy.nix+55

This diff is too big to show here.

materialized/ghc-extra-projects/default/ghc922/.plan.nix/iserv.nix+54

This diff is too big to show here.

materialized/ghc-extra-projects/default/ghc922/.plan.nix/libiserv.nix+58

This diff is too big to show here.

materialized/ghc-extra-projects/default/ghc922/.plan.nix/remote-iserv.nix+46

This diff is too big to show here.

materialized/ghc-extra-projects/default/ghc922/default.nix+138

This diff is too big to show here.

materialized/ghc-extra-projects/default/ghc923/.plan.nix/Win32.nix+158

This diff is too big to show here.

materialized/ghc-extra-projects/default/ghc923/.plan.nix/ghc-boot.nix+64

This diff is too big to show here.

materialized/ghc-extra-projects/default/ghc923/.plan.nix/ghc.nix+661

This diff is too big to show here.

materialized/ghc-extra-projects/default/ghc923/.plan.nix/ghci.nix+70

This diff is too big to show here.

materialized/ghc-extra-projects/default/ghc923/.plan.nix/hpc.nix+52

This diff is too big to show here.

materialized/ghc-extra-projects/default/ghc923/.plan.nix/iserv-proxy.nix+55

This diff is too big to show here.

materialized/ghc-extra-projects/default/ghc923/.plan.nix/iserv.nix+54

This diff is too big to show here.

materialized/ghc-extra-projects/default/ghc923/.plan.nix/libiserv.nix+58

This diff is too big to show here.

materialized/ghc-extra-projects/default/ghc923/.plan.nix/remote-iserv.nix+46

This diff is too big to show here.

materialized/ghc-extra-projects/default/ghc923/default.nix+138

This diff is too big to show here.

materialized/ghc-extra-projects/default/ghc924/.plan.nix/Win32.nix+158

This diff is too big to show here.

materialized/ghc-extra-projects/default/ghc924/.plan.nix/ghc-boot.nix+64

This diff is too big to show here.

materialized/ghc-extra-projects/default/ghc924/.plan.nix/ghc.nix+661

This diff is too big to show here.

materialized/ghc-extra-projects/default/ghc924/.plan.nix/ghci.nix+70

This diff is too big to show here.

materialized/ghc-extra-projects/default/ghc924/.plan.nix/hpc.nix+52

This diff is too big to show here.

materialized/ghc-extra-projects/default/ghc924/.plan.nix/iserv-proxy.nix+55

This diff is too big to show here.

materialized/ghc-extra-projects/default/ghc924/.plan.nix/iserv.nix+54

This diff is too big to show here.

materialized/ghc-extra-projects/default/ghc924/.plan.nix/libiserv.nix+58

This diff is too big to show here.

materialized/ghc-extra-projects/default/ghc924/.plan.nix/remote-iserv.nix+46

This diff is too big to show here.

materialized/ghc-extra-projects/default/ghc924/default.nix+138

This diff is too big to show here.

materialized/ghc-extra-projects/ghcjs/ghc8105/.plan.nix/Win32.nix+155

This diff is too big to show here.

materialized/ghc-extra-projects/ghcjs/ghc8105/.plan.nix/ghc-boot.nix+60

This diff is too big to show here.

materialized/ghc-extra-projects/ghcjs/ghc8105/.plan.nix/ghc.nix+586

This diff is too big to show here.

materialized/ghc-extra-projects/ghcjs/ghc8105/.plan.nix/ghci.nix+71

This diff is too big to show here.

materialized/ghc-extra-projects/ghcjs/ghc8105/.plan.nix/hpc.nix+52

This diff is too big to show here.

materialized/ghc-extra-projects/ghcjs/ghc8105/.plan.nix/iserv-proxy.nix+55

This diff is too big to show here.

materialized/ghc-extra-projects/ghcjs/ghc8105/.plan.nix/iserv.nix+54

This diff is too big to show here.

materialized/ghc-extra-projects/ghcjs/ghc8105/.plan.nix/libiserv.nix+58

This diff is too big to show here.

materialized/ghc-extra-projects/ghcjs/ghc8105/.plan.nix/remote-iserv.nix+46

This diff is too big to show here.

materialized/ghc-extra-projects/ghcjs/ghc8105/default.nix+131

This diff is too big to show here.

materialized/ghc-extra-projects/ghcjs/ghc8106/.plan.nix/Win32.nix+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/ghc-boot.nix+53

This diff is too big to show here.

materialized/ghc-extra-projects/ghcjs/ghc865/.plan.nix/ghc.nix+554

This diff is too big to show here.

materialized/ghc-extra-projects/ghcjs/ghc865/.plan.nix/ghci.nix+70

This diff is too big to show here.

materialized/ghc-extra-projects/ghcjs/ghc865/.plan.nix/hpc.nix+51

This diff is too big to show here.

materialized/ghc-extra-projects/ghcjs/ghc865/.plan.nix/iserv-proxy.nix+55

This diff is too big to show here.

materialized/ghc-extra-projects/ghcjs/ghc865/.plan.nix/iserv.nix+54

This diff is too big to show here.

materialized/ghc-extra-projects/ghcjs/ghc865/.plan.nix/libiserv.nix+58

This diff is too big to show here.

materialized/ghc-extra-projects/ghcjs/ghc865/default.nix+123

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/ghc-boot.nix+53

This diff is too big to show here.

materialized/ghc-extra-projects/ghcjs/ghc884/.plan.nix/ghc.nix+572

This diff is too big to show here.

materialized/ghc-extra-projects/ghcjs/ghc884/.plan.nix/ghci.nix+70

This diff is too big to show here.

materialized/ghc-extra-projects/ghcjs/ghc884/.plan.nix/hpc.nix+51

This diff is too big to show here.

materialized/ghc-extra-projects/ghcjs/ghc884/.plan.nix/iserv-proxy.nix+55

This diff is too big to show here.

materialized/ghc-extra-projects/ghcjs/ghc884/.plan.nix/iserv.nix+54

This diff is too big to show here.

materialized/ghc-extra-projects/ghcjs/ghc884/.plan.nix/libiserv.nix+58

This diff is too big to show here.

materialized/ghc-extra-projects/ghcjs/ghc884/default.nix+125

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+60

This diff is too big to show here.

materialized/ghc-extra-projects/windows/ghc8101/.plan.nix/ghc.nix+585

This diff is too big to show here.

materialized/ghc-extra-projects/windows/ghc8101/.plan.nix/ghci.nix+70

This diff is too big to show here.

materialized/ghc-extra-projects/windows/ghc8101/.plan.nix/hpc.nix+52

This diff is too big to show here.

materialized/ghc-extra-projects/windows/ghc8101/.plan.nix/iserv-proxy.nix+2−2

This diff is too big to show here.

materialized/ghc-extra-projects/windows/ghc8101/.plan.nix/iserv.nix+54

This diff is too big to show here.

materialized/ghc-extra-projects/windows/ghc8101/.plan.nix/libiserv.nix+58

This diff is too big to show here.

materialized/ghc-extra-projects/windows/ghc8101/.plan.nix/remote-iserv.nix+46

This diff is too big to show here.

materialized/ghc-extra-projects/windows/ghc8101/default.nix+120

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/ghc-boot.nix+1−1

This diff is too big to show here.

materialized/ghc-extra-projects/windows/ghc8102/.plan.nix/ghc.nix+1−1

This diff is too big to show here.

materialized/ghc-extra-projects/windows/ghc8102/.plan.nix/ghci.nix+1−1

This diff is too big to show here.

materialized/ghc-extra-projects/windows/ghc8102/.plan.nix/hpc.nix+1−1

This diff is too big to show here.

materialized/ghc-extra-projects/windows/ghc8102/.plan.nix/iserv-proxy.nix+2−2

This diff is too big to show here.

materialized/ghc-extra-projects/windows/ghc8102/.plan.nix/iserv.nix+1−1

This diff is too big to show here.

materialized/ghc-extra-projects/windows/ghc8102/.plan.nix/libiserv.nix+1−1

This diff is too big to show here.

materialized/ghc-extra-projects/windows/ghc8102/.plan.nix/remote-iserv.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/ghc-boot.nix+60

This diff is too big to show here.

materialized/ghc-extra-projects/windows/ghc8103/.plan.nix/ghc.nix+586

This diff is too big to show here.

materialized/ghc-extra-projects/windows/ghc8103/.plan.nix/ghci.nix+70

This diff is too big to show here.

materialized/ghc-extra-projects/windows/ghc8103/.plan.nix/hpc.nix+52

This diff is too big to show here.

materialized/ghc-extra-projects/windows/ghc8103/.plan.nix/iserv-proxy.nix+55

This diff is too big to show here.

materialized/ghc-extra-projects/windows/ghc8103/.plan.nix/iserv.nix+54

This diff is too big to show here.

materialized/ghc-extra-projects/windows/ghc8103/.plan.nix/libiserv.nix+58

This diff is too big to show here.

materialized/ghc-extra-projects/windows/ghc8103/.plan.nix/remote-iserv.nix+46

This diff is too big to show here.

materialized/ghc-extra-projects/windows/ghc8103/default.nix+121

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/ghc-boot.nix+60

This diff is too big to show here.

materialized/ghc-extra-projects/windows/ghc8104/.plan.nix/ghc.nix+586

This diff is too big to show here.

materialized/ghc-extra-projects/windows/ghc8104/.plan.nix/ghci.nix+70

This diff is too big to show here.

materialized/ghc-extra-projects/windows/ghc8104/.plan.nix/hpc.nix+52

This diff is too big to show here.

materialized/ghc-extra-projects/windows/ghc8104/.plan.nix/iserv-proxy.nix+55

This diff is too big to show here.

materialized/ghc-extra-projects/windows/ghc8104/.plan.nix/iserv.nix+54

This diff is too big to show here.

materialized/ghc-extra-projects/windows/ghc8104/.plan.nix/libiserv.nix+58

This diff is too big to show here.

materialized/ghc-extra-projects/windows/ghc8104/.plan.nix/remote-iserv.nix+46

This diff is too big to show here.

materialized/ghc-extra-projects/windows/ghc8104/default.nix+121

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/ghc-boot.nix+60

This diff is too big to show here.

materialized/ghc-extra-projects/windows/ghc810420210212/.plan.nix/ghc.nix+586

This diff is too big to show here.

materialized/ghc-extra-projects/windows/ghc810420210212/.plan.nix/ghci.nix+70

This diff is too big to show here.

materialized/ghc-extra-projects/windows/ghc810420210212/.plan.nix/hpc.nix+52

This diff is too big to show here.

materialized/ghc-extra-projects/windows/ghc810420210212/.plan.nix/iserv-proxy.nix+55

This diff is too big to show here.

materialized/ghc-extra-projects/windows/ghc810420210212/.plan.nix/iserv.nix+54

This diff is too big to show here.

materialized/ghc-extra-projects/windows/ghc810420210212/.plan.nix/libiserv.nix+58

This diff is too big to show here.

materialized/ghc-extra-projects/windows/ghc810420210212/.plan.nix/remote-iserv.nix+46

This diff is too big to show here.

materialized/ghc-extra-projects/windows/ghc810420210212/default.nix+121

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/ghc-boot.nix+60

This diff is too big to show here.

materialized/ghc-extra-projects/windows/ghc8105/.plan.nix/ghc.nix+586

This diff is too big to show here.

materialized/ghc-extra-projects/windows/ghc8105/.plan.nix/ghci.nix+71

This diff is too big to show here.

materialized/ghc-extra-projects/windows/ghc8105/.plan.nix/hpc.nix+52

This diff is too big to show here.

materialized/ghc-extra-projects/windows/ghc8105/.plan.nix/iserv-proxy.nix+55

This diff is too big to show here.

materialized/ghc-extra-projects/windows/ghc8105/.plan.nix/iserv.nix+54

This diff is too big to show here.

materialized/ghc-extra-projects/windows/ghc8105/.plan.nix/libiserv.nix+58

This diff is too big to show here.

materialized/ghc-extra-projects/windows/ghc8105/.plan.nix/remote-iserv.nix+46

This diff is too big to show here.

materialized/ghc-extra-projects/windows/ghc8105/default.nix+121

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/ghc-boot.nix+1−1

This diff is too big to show here.

materialized/ghc-extra-projects/windows/ghc865/.plan.nix/ghc.nix+1−5

This diff is too big to show here.

materialized/ghc-extra-projects/windows/ghc865/.plan.nix/ghci.nix+1−1

This diff is too big to show here.

materialized/ghc-extra-projects/windows/ghc865/.plan.nix/hpc.nix+1−1

This diff is too big to show here.

materialized/ghc-extra-projects/windows/ghc865/.plan.nix/iserv-proxy.nix+2−2

This diff is too big to show here.

materialized/ghc-extra-projects/windows/ghc865/.plan.nix/iserv.nix+1−1

This diff is too big to show here.

materialized/ghc-extra-projects/windows/ghc865/.plan.nix/libiserv.nix+1−1

This diff is too big to show here.

materialized/ghc-extra-projects/windows/ghc865/.plan.nix/remote-iserv.nix+1−1

This diff is too big to show here.

materialized/ghc-extra-projects/windows/ghc865/default.nix+72−45

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-boot.nix+1−1

This diff is too big to show here.

materialized/ghc-extra-projects/windows/ghc883/.plan.nix/ghc.nix+1−5

This diff is too big to show here.

materialized/ghc-extra-projects/windows/ghc883/.plan.nix/ghci.nix+1−1

This diff is too big to show here.

materialized/ghc-extra-projects/windows/ghc883/.plan.nix/hpc.nix+1−1

This diff is too big to show here.

materialized/ghc-extra-projects/windows/ghc883/.plan.nix/iserv-proxy.nix+2−2

This diff is too big to show here.

materialized/ghc-extra-projects/windows/ghc883/.plan.nix/iserv.nix+1−1

This diff is too big to show here.

materialized/ghc-extra-projects/windows/ghc883/.plan.nix/libiserv.nix+1−1

This diff is too big to show here.

materialized/ghc-extra-projects/windows/ghc883/.plan.nix/remote-iserv.nix+1−1

This diff is too big to show here.

materialized/ghc-extra-projects/windows/ghc883/default.nix+72−45

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-boot.nix+1−1

This diff is too big to show here.

materialized/ghc-extra-projects/windows/ghc884/.plan.nix/ghc.nix+1−5

This diff is too big to show here.

materialized/ghc-extra-projects/windows/ghc884/.plan.nix/ghci.nix+1−1

This diff is too big to show here.

materialized/ghc-extra-projects/windows/ghc884/.plan.nix/hpc.nix+1−1

This diff is too big to show here.

materialized/ghc-extra-projects/windows/ghc884/.plan.nix/iserv-proxy.nix+2−2

This diff is too big to show here.

materialized/ghc-extra-projects/windows/ghc884/.plan.nix/iserv.nix+1−1

This diff is too big to show here.

materialized/ghc-extra-projects/windows/ghc884/.plan.nix/libiserv.nix+1−1

This diff is too big to show here.

materialized/ghc-extra-projects/windows/ghc884/.plan.nix/remote-iserv.nix+1−1

This diff is too big to show here.

materialized/ghc-extra-projects/windows/ghc884/default.nix+72−45

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+51−99

This diff is too big to show here.

materialized/ghc8101/cabal-install/default.nix+133−75

This diff is too big to show here.

materialized/ghc8101/nix-tools/default.nix−355

This diff is too big to show here.

materialized/ghc8102-experimental/nix-tools/default.nix−355

This diff is too big to show here.

materialized/ghc8102/cabal-install/.plan.nix/cabal-install.nix+51−99

This diff is too big to show here.

materialized/ghc8102/cabal-install/default.nix+132−74

This diff is too big to show here.

materialized/ghc8102/nix-tools/.plan.nix/hackage-db.nix+13−3

This diff is too big to show here.

materialized/ghc8102/nix-tools/.plan.nix/nix-tools.nix+2−1

This diff is too big to show here.

materialized/ghc8102/nix-tools/default.nix+458−295

This diff is too big to show here.

materialized/ghc8103/cabal-install/.plan.nix/cabal-install.nix+292

This diff is too big to show here.

materialized/ghc8103/cabal-install/default.nix+180

This diff is too big to show here.

materialized/ghc8103/nix-tools/.plan.nix/hackage-db.nix+13−3

This diff is too big to show here.

materialized/ghc8103/nix-tools/.plan.nix/nix-tools.nix+2−1

This diff is too big to show here.

materialized/ghc8103/nix-tools/default.nix+518

This diff is too big to show here.

materialized/ghc8104/cabal-install/.plan.nix/cabal-install.nix+292

This diff is too big to show here.

materialized/ghc8104/cabal-install/default.nix+180

This diff is too big to show here.

materialized/ghc8104/nix-tools/.plan.nix/hackage-db.nix+13−3

This diff is too big to show here.

materialized/ghc8104/nix-tools/.plan.nix/nix-tools.nix+2−1

This diff is too big to show here.

materialized/ghc8104/nix-tools/default.nix+518

This diff is too big to show here.

materialized/ghc810420210212/cabal-install/.plan.nix/cabal-install.nix+292

This diff is too big to show here.

materialized/ghc810420210212/cabal-install/default.nix+180

This diff is too big to show here.

materialized/ghc810420210212/nix-tools/.plan.nix/hackage-db.nix+13−3

This diff is too big to show here.

materialized/ghc810420210212/nix-tools/.plan.nix/nix-tools.nix+2−1

This diff is too big to show here.

materialized/ghc810420210212/nix-tools/default.nix+518

This diff is too big to show here.

materialized/ghc8105/cabal-install/.plan.nix/cabal-install.nix+292

This diff is too big to show here.

materialized/ghc8105/cabal-install/default.nix+180

This diff is too big to show here.

materialized/ghc8105/nix-tools/.plan.nix/hackage-db.nix+110

This diff is too big to show here.

materialized/ghc8105/nix-tools/.plan.nix/nix-tools.nix+234

This diff is too big to show here.

materialized/ghc8105/nix-tools/default.nix+518

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+110

This diff is too big to show here.

materialized/ghc8106/nix-tools/.plan.nix/nix-tools.nix+234

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+110

This diff is too big to show here.

materialized/ghc8107/nix-tools/.plan.nix/nix-tools.nix+234

This diff is too big to show here.

materialized/ghc8107/nix-tools/default.nix+518

This diff is too big to show here.

materialized/ghc844/cabal-install/default.nix−122

This diff is too big to show here.

materialized/ghc844/nix-tools/default.nix−355

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+51−99

This diff is too big to show here.

materialized/ghc865/cabal-install/default.nix+132−74

This diff is too big to show here.

materialized/ghc865/nix-tools/.plan.nix/hackage-db.nix+13−3

This diff is too big to show here.

materialized/ghc865/nix-tools/.plan.nix/nix-tools.nix+2−1

This diff is too big to show here.

materialized/ghc865/nix-tools/default.nix+448−294

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+51−99

This diff is too big to show here.

materialized/ghc883/cabal-install/default.nix+132−74

This diff is too big to show here.

materialized/ghc883/nix-tools/.plan.nix/hackage-db.nix+13−3

This diff is too big to show here.

materialized/ghc883/nix-tools/.plan.nix/nix-tools.nix+2−1

This diff is too big to show here.

materialized/ghc883/nix-tools/default.nix+448−294

This diff is too big to show here.

materialized/ghc884/cabal-install/.plan.nix/cabal-install.nix+51−99

This diff is too big to show here.

materialized/ghc884/cabal-install/default.nix+132−74

This diff is too big to show here.

materialized/ghc884/nix-tools/.plan.nix/hackage-db.nix+13−3

This diff is too big to show here.

materialized/ghc884/nix-tools/.plan.nix/nix-tools.nix+2−1

This diff is too big to show here.

materialized/ghc884/nix-tools/default.nix+448−294

This diff is too big to show here.

materialized/ghc901/cabal-install/.plan.nix/cabal-install.nix+292

This diff is too big to show here.

materialized/ghc901/cabal-install/default.nix+178

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/ghc8104/.plan.nix/alex.nix+160

This diff is too big to show here.

materialized/ghcjs/alex/ghc8104/default.nix+47

This diff is too big to show here.

materialized/ghcjs/alex/ghc8105/.plan.nix/alex.nix+160

This diff is too big to show here.

materialized/ghcjs/alex/ghc8105/default.nix+65

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/.plan.nix/alex.nix+1−1

This diff is too big to show here.

materialized/ghcjs/alex/ghc865/default.nix+34−18

This diff is too big to show here.

materialized/ghcjs/alex/ghc884/.plan.nix/alex.nix+1−1

This diff is too big to show here.

materialized/ghcjs/alex/ghc884/default.nix+34−18

This diff is too big to show here.

materialized/ghcjs/cabal/ghc8104/.plan.nix/cabal-install.nix+361

This diff is too big to show here.

materialized/ghcjs/cabal/ghc8104/default.nix+31−25

This diff is too big to show here.

materialized/ghcjs/cabal/ghc8105/.plan.nix/cabal-install.nix+292

This diff is too big to show here.

materialized/ghcjs/cabal/ghc8105/default.nix+180

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/.plan.nix/cabal-install.nix+5−5

This diff is too big to show here.

materialized/ghcjs/cabal/ghc865/default.nix+173

This diff is too big to show here.

materialized/ghcjs/cabal/ghc884/.plan.nix/cabal-install.nix+5−5

This diff is too big to show here.

materialized/ghcjs/cabal/ghc884/default.nix+173

This diff is too big to show here.

materialized/ghcjs/ghc8104/.plan.nix/ghcjs-th.nix+48

This diff is too big to show here.

materialized/ghcjs/ghc8104/.plan.nix/ghcjs.nix+985

This diff is too big to show here.

materialized/ghcjs/ghc8104/default.nix+96−94

This diff is too big to show here.

materialized/ghcjs/ghc8105/.plan.nix/ghcjs-th.nix+48

This diff is too big to show here.

materialized/ghcjs/ghc8105/.plan.nix/ghcjs.nix+985

This diff is too big to show here.

materialized/ghcjs/ghc8105/default.nix+576

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+1−1

This diff is too big to show here.

materialized/ghcjs/ghc865/.plan.nix/ghcjs-th.nix+1−1

This diff is too big to show here.

materialized/ghcjs/ghc865/.plan.nix/ghcjs.nix+987

This diff is too big to show here.

materialized/ghcjs/ghc865/.plan.nix/haddock-library-ghcjs.nix+2−2

This diff is too big to show here.

materialized/ghcjs/ghc865/.plan.nix/template-haskell-ghcjs.nix+1−1

This diff is too big to show here.

materialized/ghcjs/ghc865/default.nix+555−334

This diff is too big to show here.

materialized/ghcjs/ghc884/.plan.nix/ghcjs-th.nix+1−1

This diff is too big to show here.

materialized/ghcjs/ghc884/.plan.nix/ghcjs.nix+3−2

This diff is too big to show here.

materialized/ghcjs/ghc884/default.nix+581

This diff is too big to show here.

materialized/ghcjs/happy/ghc8104/.plan.nix/happy.nix+200

This diff is too big to show here.

materialized/ghcjs/happy/ghc8104/default.nix+41

This diff is too big to show here.

materialized/ghcjs/happy/ghc8105/.plan.nix/happy.nix+200

This diff is too big to show here.

materialized/ghcjs/happy/ghc8105/default.nix+56

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/.plan.nix/happy.nix+1−1

This diff is too big to show here.

materialized/ghcjs/happy/ghc865/default.nix+25−22

This diff is too big to show here.

materialized/ghcjs/happy/ghc884/.plan.nix/happy.nix+1−1

This diff is too big to show here.

materialized/ghcjs/happy/ghc884/default.nix+25−22

This diff is too big to show here.

materialized/ghcjs865/.plan.nix/ghcjs.nix−331

This diff is too big to show here.

materialized/ghcjs865/.plan.nix/haddock-api-ghcjs.nix−184

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+10−10

This diff is too big to show here.

mkdocs.yml+3−1

This diff is too big to show here.

modules/cabal-project.nix+134

This diff is too big to show here.

modules/component-driver.nix+15−5

This diff is too big to show here.

modules/configuration-nix.nix+114−2

This diff is too big to show here.

modules/error-handler.nix+10−2

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.

modules/package.nix+144−83

This diff is too big to show here.

modules/plan.nix+39−3

This diff is too big to show here.

modules/project-common.nix+65

This diff is too big to show here.

modules/project.nix+9

This diff is too big to show here.

modules/stack-project.nix+94

This diff is too big to show here.

nix-tools/README.md−3

This diff is too big to show here.

nix-tools/regenerate.nix−100

This diff is too big to show here.

nix/sources.json−106

This diff is too big to show here.

nix/sources.nix−134

This diff is too big to show here.

overlays/android.nix+28

This diff is too big to show here.

overlays/armv6l-linux.nix+9−8

This diff is too big to show here.

overlays/bootstrap.nix+577−142

This diff is too big to show here.

overlays/darwin.nix+21−3

This diff is too big to show here.

overlays/default.nix+11−12

This diff is too big to show here.

overlays/emscripten.nix+6−19

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/default.nix+2−2

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/default.nix+2−2

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+109−55

This diff is too big to show here.

overlays/ghc.nix+13−7

This diff is too big to show here.

overlays/ghcjs.nix+55−55

This diff is too big to show here.

overlays/gobject-introspection.nix+3−3

This diff is too big to show here.

overlays/hackage-quirks.nix−65

This diff is too big to show here.

overlays/haskell.nix+382−171

This diff is too big to show here.

overlays/hix.nix+51

This diff is too big to show here.

overlays/hydra.nix+9

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+22−22

This diff is too big to show here.

overlays/musl.nix+13−10

This diff is too big to show here.

overlays/nix-prefetch-git-minimal.nix+29

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/config.guess+1702

This diff is too big to show here.

overlays/patches/config.sub+23−12

This diff is too big to show here.

overlays/patches/file-embed-lzma-0.patch−44

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/AC_PROG_CC_99.patch+13

This diff is too big to show here.

overlays/patches/ghc/Cabal-unbreak-GHCJS.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+68

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-windows-add-dependent-file.patch+22

This diff is too big to show here.

overlays/patches/ghc/ghc-8.10-z-drive-fix.patch+14

This diff is too big to show here.

overlays/patches/ghc/ghc-8.10.3-rts-make-markLiveObject-thread-safe.patch+63

This diff is too big to show here.

overlays/patches/ghc/ghc-8.10.3-ubxt.patch+7884

This diff is too big to show here.

overlays/patches/ghc/ghc-8.10.5-add-rts-exports.patch+26

This diff is too big to show here.

overlays/patches/ghc/ghc-8.10.5-darwin-allocateExec.patch+13

This diff is too big to show here.

overlays/patches/ghc/ghc-8.10.5-ubxt.patch+7884

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.

overlays/shims.nix−9

This diff is too big to show here.

overlays/tools.nix+28−108

This diff is too big to show here.

overlays/windows.nix+22−41

This diff is too big to show here.

overlays/wine.nix+10−8

This diff is too big to show here.

package-set.nix+1−1

This diff is too big to show here.

patches/default.nix+1

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.

patches/hnix.patch+13

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.

release-linux-only.nix+5

This diff is too big to show here.

release.nix+54−10

This diff is too big to show here.

scripts/check-closure-size.nix+2−2

This diff is too big to show here.

scripts/check-compiler-materialization/default.nix+40−12

This diff is too big to show here.

scripts/check-hydra.nix+5−4

This diff is too big to show here.

scripts/check-materialization-concurrency/check.nix+2−2

This diff is too big to show here.

scripts/check-path-support.nix+3−3

This diff is too big to show here.

scripts/options-doc.nix+1−1

This diff is too big to show here.

scripts/update-docs.nix+2−2

This diff is too big to show here.

scripts/update-external.nix+5−5

This diff is too big to show here.

scripts/update-hackage.nix+2−2

This diff is too big to show here.

scripts/update-index-state-hashes.nix+2−2

This diff is too big to show here.

scripts/update-pins.nix+3−3

This diff is too big to show here.

scripts/update-stackage.nix+2−2

This diff is too big to show here.

shell.nix+1−12

This diff is too big to show here.

snapshots.nix+1−1

This diff is too big to show here.

stackage-src.json+7−4

This diff is too big to show here.

test/buildable/default.nix+3−4

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+9−10

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.

test/c-ffi/src/Lib.hs+6

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+8−3

This diff is too big to show here.

test/cabal-doctests/Setup.hs+6

This diff is too big to show here.

test/cabal-doctests/cabal-doctests-test.cabal+31

This diff is too big to show here.

test/cabal-doctests/default.nix+48

This diff is too big to show here.

test/cabal-doctests/doctests/Doctests.hs+16

This diff is too big to show here.

test/cabal-doctests/src/Lib.hs+18

This diff is too big to show here.

test/cabal-hpack/default.nix+4−4

This diff is too big to show here.

test/cabal-simple-debug/Main.hs+4

This diff is too big to show here.

test/cabal-simple-debug/Setup.hs+2

This diff is too big to show here.

test/cabal-simple-debug/cabal-simple.cabal+37

This diff is too big to show here.

test/cabal-simple-debug/default.nix+52

This diff is too big to show here.

test/cabal-simple-prof/default.nix+16−10

This diff is too big to show here.

test/cabal-simple/default.nix+9−5

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+4−5

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+4−5

This diff is too big to show here.

test/cabal-sublib/cabal-sublib.cabal+2−1

This diff is too big to show here.

test/cabal-sublib/default.nix+8−4

This diff is too big to show here.

test/call-cabal-project-to-nix/default.nix+8−4

This diff is too big to show here.

test/call-stack-to-nix/default.nix+5−3

This diff is too big to show here.

test/call-stack-to-nix/stack.yaml+1−1

This diff is too big to show here.

test/compiler-nix-name/Main.hs−5

This diff is too big to show here.

test/compiler-nix-name/compiler-nix-name.cabal−11

This diff is too big to show here.

test/compiler-nix-name/default.nix−41

This diff is too big to show here.

test/coverage-golden/default.nix+53

This diff is too big to show here.

test/coverage-golden/golden.json+2069

This diff is too big to show here.

test/coverage-no-libs/cabal.project+1

This diff is too big to show here.

test/coverage-no-libs/default.nix+104

This diff is too big to show here.

test/coverage-no-libs/pkga/MainA.hs+4

This diff is too big to show here.

test/coverage-no-libs/pkga/Setup.hs+2

This diff is too big to show here.

test/coverage-no-libs/pkga/pkga.cabal+19

This diff is too big to show here.

test/coverage-no-libs/stack.yaml+4

This diff is too big to show here.

test/coverage/default.nix+6−3

This diff is too big to show here.

test/coverage/pkgb/pkgb.cabal+1−1

This diff is too big to show here.

test/default.nix+65−47

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+4−4

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+7−8

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+11−3

This diff is too big to show here.

test/ghc-options/cabal.nix+13−6

This diff is too big to show here.

test/ghc-options/stack.nix+11−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+71

This diff is too big to show here.

test/githash/githash-test.cabal+16

This diff is too big to show here.

test/githash/src/Main.hs+15

This diff is too big to show here.

test/haskell-language-server/cabal.nix+6−21

This diff is too big to show here.

test/haskell-language-server/stack.nix+10−5

This diff is too big to show here.

test/index-state/default.nix+12−7

This diff is too big to show here.

test/lookup-sha256/default.nix−13

This diff is too big to show here.

test/project-flags/cabal.nix+4−5

This diff is too big to show here.

test/project-flags/stack.nix+4−2

This diff is too big to show here.

test/setup-deps/cabal.project−2

This diff is too big to show here.

test/setup-deps/default.nix+18−24

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+21

This diff is too big to show here.

test/shell-for-setup-deps/cabal.project−2

This diff is too big to show here.

test/shell-for-setup-deps/default.nix+17−23

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+14−45

This diff is too big to show here.

test/shell-for/.plan.nix/pkgb.nix+24−55

This diff is too big to show here.

test/shell-for/default.nix+16−4

This diff is too big to show here.

test/shell-for/pkgb/pkgb.cabal+1−1

This diff is too big to show here.

test/shell-for/pkgs.nix+250−164

This diff is too big to show here.

test/snapshots/default.nix+4−2

This diff is too big to show here.

test/stack-local-resolver-subdir/.gitignore+2

This diff is too big to show here.

test/stack-local-resolver-subdir/default.nix+16

This diff is too big to show here.

test/stack-local-resolver-subdir/package.yaml+7

This diff is too big to show here.

test/stack-local-resolver-subdir/snapshot/snapshot.yaml+4

This diff is too big to show here.

test/stack-local-resolver-subdir/src/Lib.hs+6

This diff is too big to show here.

test/stack-local-resolver-subdir/stack.yaml+4

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+5−3

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+9−3

This diff is too big to show here.

test/tests.sh+10−4

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.

test/unit.nix+128−15

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+29−13

This diff is too big to show here.

test/with-packages/pkgs.nix+161−118

This diff is too big to show here.