Automatically generate cache for stackage projects (#397)

You can add a `# nix-sha256` comment to stack.yaml if you
need it to work in restricted mode.
This commit is contained in:
Hamish Mackenzie 2020-01-15 10:34:14 +13:00 committed by GitHub
parent 9e4cac18ec
commit 8e52ad6f96
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
11 changed files with 617 additions and 507 deletions

View File

@ -0,0 +1,50 @@
# Source Repository Hashes
Both `stack.yaml` and `cabal.project` files can contain references
to git repositories containing the version of a particular package
that we wish to use. This is mostly handled automatically by
`nix-tools` and `haskell.nix` however when we want to use a nix
system that is configured to use restricted mode (typically hydra)
it will need an aditionaly hash.
When using `cabalProject` or `stackProject` functions you can include
the hash needed in a comment.
To calculate the hash use `nix-prefetch-git`:
```
$ nix-prefetch-git https://github.com/input-output-hk/haskell.nix.git bc01ebc05a8105035c9449943046b46c8364b932
...
{
"url": "https://github.com/input-output-hk/haskell.nix.git",
"rev": "bc01ebc05a8105035c9449943046b46c8364b932",
"date": "2019-05-30T13:13:18+08:00",
"sha256": "003lm3pm024vhbfmii7xcdd9v2rczpflxf7gdl2pyxia7p014i8z",
"fetchSubmodules": false
}
```
If you are using `cabalProject` add a `--sha256` comment to the
`cabal.project` file:
```
source-repository-package
type: git
location: https://github.com/input-output-hk/haskell.nix.git
tag: bc01ebc05a8105035c9449943046b46c8364b932
subdir: test/cabal-simple
--sha256: 003lm3pm024vhbfmii7xcdd9v2rczpflxf7gdl2pyxia7p014i8z
```
If you are using `stackProject` add a `# nix-sha256` comment to the
`stack.yaml` file:
```
extra-deps:
- git: https://github.com/input-output-hk/haskell.nix.git
commit: bc01ebc05a8105035c9449943046b46c8364b932
subdirs:
- test/cabal-simple
# nix-sha256: 003lm3pm024vhbfmii7xcdd9v2rczpflxf7gdl2pyxia7p014i8z
```

View File

@ -0,0 +1,80 @@
# Generate cache entries for dependencies of package defined in `src`
{ pkgs, haskellLib, nix-tools }:
{ src, stackYaml ? "stack.yaml" }:
let
# We only care about the stackYaml file. If src is a local directory
# we want to avoid recalculating the cache unless the stack.yaml file
# changes.
# Using origSrcSubDir bypasses any cleanSourceWith so that it will work when
# access to the store is restricted. If origSrc was already in the store
# you can pass the project in as a string.
rawStackYaml = builtins.readFile ((src.origSrcSubDir or src) + ("/" + stackYaml));
# Determine the resolver as it may point to another file we need
# to look at.
resolver =
let
rs = pkgs.lib.lists.concatLists (
pkgs.lib.lists.filter (l: l != null)
(builtins.map (l: builtins.match "^resolver: *(.*)" l)
(pkgs.lib.splitString "\n" rawStackYaml)));
in
pkgs.lib.lists.head (rs ++ [ null ]);
# Filter just the stack yaml file and any reolver yaml file it points to.
maybeCleanedSource =
if haskellLib.canCleanSource src
then haskellLib.cleanSourceWith {
inherit src;
filter = path: type:
pkgs.lib.hasSuffix ("/" + stackYaml) path
|| (resolver != null && pkgs.lib.hasSuffix ("/" + resolver) path);
}
else src;
# All repos served via ssh or git protocols are usually private
private = url: pkgs.lib.substring 0 4 url != "http";
repos = builtins.fromJSON (builtins.readFile (pkgs.runCommand "stack-repos" {
buildInputs = [ nix-tools ];
} ''
TMP=$(mktemp -d)
cd $TMP
cp -r "${maybeCleanedSource}/." $TMP
chmod -R +w $TMP
substituteInPlace ${stackYaml} --replace "# nix-sha256:" "nix-sha256:"
stack-repos --stack-yaml ${stackYaml}
cp repos.json $out
''));
cabalName = path: builtins.readFile (pkgs.runCommand "cabal-name" {
buildInputs = [ nix-tools ];
} ''
cabal-name ${path} > $out
'');
hashPath = path:
builtins.readFile (pkgs.runCommand "hash-path" { preferLocalBuild = true; }
"echo -n $(${pkgs.nix}/bin/nix-hash --type sha256 --base32 ${path}) > $out");
in with pkgs.lib;
concatMap (dep:
let
is-private = private dep.url;
pkgsrc =
if !is-private && dep.sha256 != null
then pkgs.fetchgit {
inherit (dep) url rev sha256;
}
else builtins.fetchGit {
inherit (dep) url rev;
ref = "*";
};
in map (subdir: {
name = cabalName "${pkgsrc}/${subdir}";
inherit (dep) url rev;
inherit is-private;
sha256 = if !is-private then hashPath pkgsrc else null;
} // (optionalAttrs (subdir != "") { inherit subdir; }))
(dep.subdirs or [ "" ])) repos

View File

@ -1,4 +1,43 @@
{ system, compiler, flags, pkgs, hsPkgs, pkgconfPkgs, ... }:
let
buildDepError = pkg:
builtins.throw ''
The Haskell package set does not contain the package: ${pkg} (build dependency).
If you are using Stackage, make sure that you are using a snapshot that contains the package. Otherwise you may need to update the Hackage snapshot you are using, usually by updating haskell.nix.
'';
sysDepError = pkg:
builtins.throw ''
The Nixpkgs package set does not contain the package: ${pkg} (system dependency).
You may need to augment the system package mapping in haskell.nix so that it can be found.
'';
pkgConfDepError = pkg:
builtins.throw ''
The pkg-conf packages does not contain the package: ${pkg} (pkg-conf dependency).
You may need to augment the pkg-conf package mapping in haskell.nix so that it can be found.
'';
exeDepError = pkg:
builtins.throw ''
The local executable components do not include the component: ${pkg} (executable dependency).
'';
legacyExeDepError = pkg:
builtins.throw ''
The Haskell package set does not contain the package: ${pkg} (executable dependency).
If you are using Stackage, make sure that you are using a snapshot that contains the package. Otherwise you may need to update the Hackage snapshot you are using, usually by updating haskell.nix.
'';
buildToolDepError = pkg:
builtins.throw ''
Neither the Haskell package set or the Nixpkgs package set contain the package: ${pkg} (build tool dependency).
If this is a system dependency:
You may need to augment the system package mapping in haskell.nix so that it can be found.
If this is a Haskell dependency:
If you are using Stackage, make sure that you are using a snapshot that contains the package. Otherwise you may need to update the Hackage snapshot you are using, usually by updating haskell.nix.
'';
in { system, compiler, flags, pkgs, hsPkgs, pkgconfPkgs, ... }:
{
flags = {};
package = {
@ -13,148 +52,159 @@
synopsis = "cabal/stack to nix translation tools";
description = "A set of tools to aid in trating stack and cabal projects into nix expressions.";
buildType = "Simple";
isLocal = true;
};
components = {
"library" = {
depends = [
(hsPkgs.base)
(hsPkgs.hnix)
(hsPkgs.aeson)
(hsPkgs.unordered-containers)
(hsPkgs.process)
(hsPkgs.deepseq)
(hsPkgs.transformers)
(hsPkgs.data-fix)
(hsPkgs.Cabal)
(hsPkgs.text)
(hsPkgs.filepath)
(hsPkgs.directory)
(hsPkgs.bytestring)
(hsPkgs.cryptohash-sha256)
(hsPkgs.base16-bytestring)
(hsPkgs.hpack)
(hsPkgs."base" or (buildDepError "base"))
(hsPkgs."Cabal" or (buildDepError "Cabal"))
(hsPkgs."aeson" or (buildDepError "aeson"))
(hsPkgs."aeson-pretty" or (buildDepError "aeson-pretty"))
(hsPkgs."base16-bytestring" or (buildDepError "base16-bytestring"))
(hsPkgs."bytestring" or (buildDepError "bytestring"))
(hsPkgs."cryptohash-sha256" or (buildDepError "cryptohash-sha256"))
(hsPkgs."data-fix" or (buildDepError "data-fix"))
(hsPkgs."deepseq" or (buildDepError "deepseq"))
(hsPkgs."directory" or (buildDepError "directory"))
(hsPkgs."extra" or (buildDepError "extra"))
(hsPkgs."filepath" or (buildDepError "filepath"))
(hsPkgs."hnix" or (buildDepError "hnix"))
(hsPkgs."hpack" or (buildDepError "hpack"))
(hsPkgs."http-client" or (buildDepError "http-client"))
(hsPkgs."http-client-tls" or (buildDepError "http-client-tls"))
(hsPkgs."http-types" or (buildDepError "http-types"))
(hsPkgs."optparse-applicative" or (buildDepError "optparse-applicative"))
(hsPkgs."prettyprinter" or (buildDepError "prettyprinter"))
(hsPkgs."process" or (buildDepError "process"))
(hsPkgs."text" or (buildDepError "text"))
(hsPkgs."transformers" or (buildDepError "transformers"))
(hsPkgs."unordered-containers" or (buildDepError "unordered-containers"))
(hsPkgs."yaml" or (buildDepError "yaml"))
];
buildable = true;
};
exes = {
"cabal-to-nix" = {
depends = [
(hsPkgs.base)
(hsPkgs.transformers)
(hsPkgs.bytestring)
(hsPkgs.hpack)
(hsPkgs.hnix)
(hsPkgs.text)
(hsPkgs.nix-tools)
(hsPkgs.filepath)
(hsPkgs.directory)
(hsPkgs.prettyprinter)
(hsPkgs."base" or (buildDepError "base"))
(hsPkgs."transformers" or (buildDepError "transformers"))
(hsPkgs."bytestring" or (buildDepError "bytestring"))
(hsPkgs."hpack" or (buildDepError "hpack"))
(hsPkgs."hnix" or (buildDepError "hnix"))
(hsPkgs."text" or (buildDepError "text"))
(hsPkgs."nix-tools" or (buildDepError "nix-tools"))
(hsPkgs."filepath" or (buildDepError "filepath"))
(hsPkgs."directory" or (buildDepError "directory"))
(hsPkgs."prettyprinter" or (buildDepError "prettyprinter"))
];
buildable = true;
};
"hashes-to-nix" = {
depends = [
(hsPkgs.base)
(hsPkgs.hnix)
(hsPkgs.nix-tools)
(hsPkgs.data-fix)
(hsPkgs.aeson)
(hsPkgs.microlens)
(hsPkgs.microlens-aeson)
(hsPkgs.text)
(hsPkgs.filepath)
(hsPkgs.directory)
(hsPkgs."base" or (buildDepError "base"))
(hsPkgs."hnix" or (buildDepError "hnix"))
(hsPkgs."nix-tools" or (buildDepError "nix-tools"))
(hsPkgs."data-fix" or (buildDepError "data-fix"))
(hsPkgs."aeson" or (buildDepError "aeson"))
(hsPkgs."microlens" or (buildDepError "microlens"))
(hsPkgs."microlens-aeson" or (buildDepError "microlens-aeson"))
(hsPkgs."text" or (buildDepError "text"))
(hsPkgs."filepath" or (buildDepError "filepath"))
(hsPkgs."directory" or (buildDepError "directory"))
];
buildable = true;
};
"plan-to-nix" = {
depends = [
(hsPkgs.base)
(hsPkgs.nix-tools)
(hsPkgs.hnix)
(hsPkgs.Cabal)
(hsPkgs.text)
(hsPkgs.hpack)
(hsPkgs.unordered-containers)
(hsPkgs.vector)
(hsPkgs.aeson)
(hsPkgs.microlens)
(hsPkgs.microlens-aeson)
(hsPkgs.optparse-applicative)
(hsPkgs.prettyprinter)
(hsPkgs.filepath)
(hsPkgs.directory)
(hsPkgs.bytestring)
(hsPkgs.transformers)
(hsPkgs.extra)
(hsPkgs."base" or (buildDepError "base"))
(hsPkgs."nix-tools" or (buildDepError "nix-tools"))
(hsPkgs."hnix" or (buildDepError "hnix"))
(hsPkgs."Cabal" or (buildDepError "Cabal"))
(hsPkgs."text" or (buildDepError "text"))
(hsPkgs."hpack" or (buildDepError "hpack"))
(hsPkgs."unordered-containers" or (buildDepError "unordered-containers"))
(hsPkgs."vector" or (buildDepError "vector"))
(hsPkgs."aeson" or (buildDepError "aeson"))
(hsPkgs."microlens" or (buildDepError "microlens"))
(hsPkgs."microlens-aeson" or (buildDepError "microlens-aeson"))
(hsPkgs."optparse-applicative" or (buildDepError "optparse-applicative"))
(hsPkgs."prettyprinter" or (buildDepError "prettyprinter"))
(hsPkgs."filepath" or (buildDepError "filepath"))
(hsPkgs."directory" or (buildDepError "directory"))
(hsPkgs."bytestring" or (buildDepError "bytestring"))
(hsPkgs."transformers" or (buildDepError "transformers"))
(hsPkgs."extra" or (buildDepError "extra"))
];
buildable = true;
};
"hackage-to-nix" = {
depends = [
(hsPkgs.base)
(hsPkgs.nix-tools)
(hsPkgs.hackage-db)
(hsPkgs.hnix)
(hsPkgs.Cabal)
(hsPkgs.containers)
(hsPkgs.bytestring)
(hsPkgs.text)
(hsPkgs.cryptohash-sha256)
(hsPkgs.base16-bytestring)
(hsPkgs.filepath)
(hsPkgs.directory)
(hsPkgs.transformers)
(hsPkgs."base" or (buildDepError "base"))
(hsPkgs."nix-tools" or (buildDepError "nix-tools"))
(hsPkgs."hackage-db" or (buildDepError "hackage-db"))
(hsPkgs."hnix" or (buildDepError "hnix"))
(hsPkgs."Cabal" or (buildDepError "Cabal"))
(hsPkgs."containers" or (buildDepError "containers"))
(hsPkgs."bytestring" or (buildDepError "bytestring"))
(hsPkgs."text" or (buildDepError "text"))
(hsPkgs."cryptohash-sha256" or (buildDepError "cryptohash-sha256"))
(hsPkgs."base16-bytestring" or (buildDepError "base16-bytestring"))
(hsPkgs."filepath" or (buildDepError "filepath"))
(hsPkgs."directory" or (buildDepError "directory"))
(hsPkgs."transformers" or (buildDepError "transformers"))
];
buildable = true;
};
"lts-to-nix" = {
depends = [
(hsPkgs.base)
(hsPkgs.nix-tools)
(hsPkgs.hnix)
(hsPkgs.yaml)
(hsPkgs.aeson)
(hsPkgs.microlens)
(hsPkgs.microlens-aeson)
(hsPkgs.text)
(hsPkgs.filepath)
(hsPkgs.directory)
(hsPkgs.unordered-containers)
(hsPkgs.Cabal)
(hsPkgs."base" or (buildDepError "base"))
(hsPkgs."nix-tools" or (buildDepError "nix-tools"))
(hsPkgs."hnix" or (buildDepError "hnix"))
(hsPkgs."yaml" or (buildDepError "yaml"))
(hsPkgs."aeson" or (buildDepError "aeson"))
(hsPkgs."microlens" or (buildDepError "microlens"))
(hsPkgs."microlens-aeson" or (buildDepError "microlens-aeson"))
(hsPkgs."text" or (buildDepError "text"))
(hsPkgs."filepath" or (buildDepError "filepath"))
(hsPkgs."directory" or (buildDepError "directory"))
(hsPkgs."unordered-containers" or (buildDepError "unordered-containers"))
(hsPkgs."Cabal" or (buildDepError "Cabal"))
];
buildable = true;
};
"stack-to-nix" = {
depends = [
(hsPkgs.base)
(hsPkgs.nix-tools)
(hsPkgs.transformers)
(hsPkgs.hnix)
(hsPkgs.yaml)
(hsPkgs.aeson)
(hsPkgs.microlens)
(hsPkgs.microlens-aeson)
(hsPkgs.text)
(hsPkgs.Cabal)
(hsPkgs.vector)
(hsPkgs.prettyprinter)
(hsPkgs.directory)
(hsPkgs.filepath)
(hsPkgs.extra)
(hsPkgs.hpack)
(hsPkgs.bytestring)
(hsPkgs.optparse-applicative)
(hsPkgs.http-client-tls)
(hsPkgs.http-client)
(hsPkgs.http-types)
(hsPkgs.unordered-containers)
(hsPkgs."base" or (buildDepError "base"))
(hsPkgs."nix-tools" or (buildDepError "nix-tools"))
];
buildable = true;
};
"truncate-index" = {
depends = [
(hsPkgs.base)
(hsPkgs.optparse-applicative)
(hsPkgs.zlib)
(hsPkgs.tar)
(hsPkgs.bytestring)
(hsPkgs.time)
(hsPkgs."base" or (buildDepError "base"))
(hsPkgs."optparse-applicative" or (buildDepError "optparse-applicative"))
(hsPkgs."zlib" or (buildDepError "zlib"))
(hsPkgs."tar" or (buildDepError "tar"))
(hsPkgs."bytestring" or (buildDepError "bytestring"))
(hsPkgs."time" or (buildDepError "time"))
];
buildable = true;
};
"stack-repos" = {
depends = [
(hsPkgs."base" or (buildDepError "base"))
(hsPkgs."nix-tools" or (buildDepError "nix-tools"))
];
buildable = true;
};
"cabal-name" = {
depends = [
(hsPkgs."base" or (buildDepError "base"))
(hsPkgs."nix-tools" or (buildDepError "nix-tools"))
];
buildable = true;
};
};
};
} // rec { src = (pkgs.lib).mkDefault ../.; }
} // rec { src = (pkgs.lib).mkDefault ../../.././../.; }

View File

@ -37,11 +37,13 @@ let
packages.nix-tools.src = src;
}
({ config, ...}: {
packages = {
Cabal.patches = [ cabalPatch ];
};
})
{
packages.Cabal.patches = [ cabalPatch ];
}
{
reinstallableLibGhc = true;
}
] ++ pkgs.lib.optional (args ? ghc) { ghc.package = args.ghc; };
};

View File

@ -1,7 +1,7 @@
{
"url": "https://github.com/input-output-hk/nix-tools",
"rev": "b1efc35f344995f546b14da7914d7c0c0cdf5fa8",
"date": "2019-12-01T21:08:02+08:00",
"sha256": "01nfz4hsl8ia5w7dr23vf008j727ciwsmaymcn222c6a7azcs39c",
"rev": "e8eb66896933229987c1a26c28b21a6b363e3bd9",
"date": "2020-01-13T17:33:49+13:00",
"sha256": "0iqyniipz7gpy1ixrymk7ycgv65pdfk5aa0189a87mpflc08pcz4",
"fetchSubmodules": false
}

View File

@ -2,17 +2,12 @@
pkgs = hackage:
{
packages = {
"criterion-measurement".revision = (((hackage."criterion-measurement")."0.1.1.0").revisions).default;
"criterion-measurement".flags.fast = false;
"test-framework-hunit".revision = (((hackage."test-framework-hunit")."0.3.0.2").revisions).default;
"test-framework-hunit".flags.base4 = true;
"test-framework-hunit".flags.base3 = false;
"http-client".revision = (((hackage."http-client")."0.6.4").revisions).default;
"http-client".revision = (((hackage."http-client")."0.5.14").revisions).default;
"http-client".flags.network-uri = true;
"cookie".revision = (((hackage."cookie")."0.4.4").revisions).default;
"void".revision = (((hackage."void")."0.7.2").revisions).default;
"cookie".revision = (((hackage."cookie")."0.4.5").revisions).default;
"void".revision = (((hackage."void")."0.7.3").revisions).default;
"void".flags.safe = false;
"semigroupoids".revision = (((hackage."semigroupoids")."5.3.2").revisions).default;
"semigroupoids".revision = (((hackage."semigroupoids")."5.3.4").revisions).default;
"semigroupoids".flags.comonad = true;
"semigroupoids".flags.doctests = true;
"semigroupoids".flags.unordered-containers = true;
@ -20,66 +15,57 @@
"semigroupoids".flags.tagged = true;
"semigroupoids".flags.containers = true;
"semigroupoids".flags.contravariant = true;
"free".revision = (((hackage."free")."5.1").revisions).default;
"Only".revision = (((hackage."Only")."0.1").revisions).default;
"cereal".revision = (((hackage."cereal")."0.5.8.0").revisions).default;
"free".revision = (((hackage."free")."5.1.3").revisions).default;
"tf-random".revision = (((hackage."tf-random")."0.5").revisions).default;
"cereal".revision = (((hackage."cereal")."0.5.8.1").revisions).default;
"cereal".flags.bytestring-builder = false;
"exceptions".revision = (((hackage."exceptions")."0.10.1").revisions).default;
"exceptions".revision = (((hackage."exceptions")."0.10.4").revisions).default;
"exceptions".flags.transformers-0-4 = true;
"cryptohash-sha256".revision = (((hackage."cryptohash-sha256")."0.11.101.0").revisions).default;
"cryptohash-sha256".flags.exe = false;
"binary".revision = (((hackage."binary")."0.8.5.1").revisions).default;
"interpolate".revision = (((hackage."interpolate")."0.2.0").revisions).default;
"generic-random".revision = (((hackage."generic-random")."1.2.0.0").revisions).default;
"tar".revision = (((hackage."tar")."0.5.1.0").revisions).default;
"hnix".revision = (((hackage."hnix")."0.6.1").revisions).default;
"hnix".flags.profiling = false;
"hnix".flags.optimize = false;
"tar".revision = (((hackage."tar")."0.5.1.1").revisions).default;
"tar".flags.old-time = false;
"tar".flags.old-bytestring = false;
"regex-tdfa".revision = (((hackage."regex-tdfa")."1.2.3.1").revisions).default;
"regex-tdfa".revision = (((hackage."regex-tdfa")."1.2.3.2").revisions).default;
"regex-tdfa".flags.devel = false;
"ghc-prim".revision = (((hackage."ghc-prim")."0.5.2.0").revisions).default;
"text-metrics".revision = (((hackage."text-metrics")."0.3.0").revisions).default;
"text-metrics".flags.dev = false;
"utf8-string".revision = (((hackage."utf8-string")."1.0.1.1").revisions).default;
"bifunctors".revision = (((hackage."bifunctors")."5.5.4").revisions).default;
"bifunctors".revision = (((hackage."bifunctors")."5.5.6").revisions).default;
"bifunctors".flags.semigroups = true;
"bifunctors".flags.tagged = true;
"hashing".revision = (((hackage."hashing")."0.1.0.1").revisions).default;
"extra".revision = (((hackage."extra")."1.6.15").revisions).default;
"extra".revision = (((hackage."extra")."1.6.18").revisions).default;
"haskeline".revision = (((hackage."haskeline")."0.7.4.2").revisions).default;
"logict".revision = (((hackage."logict")."0.6.0.3").revisions).default;
"x509-validation".revision = (((hackage."x509-validation")."1.6.11").revisions).default;
"dense-linear-algebra".revision = (((hackage."dense-linear-algebra")."0.1.0.0").revisions).default;
"split".revision = (((hackage."split")."0.2.3.3").revisions).default;
"data-fix".revision = (((hackage."data-fix")."0.2.0").revisions).default;
"stm".revision = (((hackage."stm")."2.4.5.1").revisions).default;
"tasty-th".revision = (((hackage."tasty-th")."0.1.7").revisions).default;
"text-short".revision = (((hackage."text-short")."0.1.2").revisions).default;
"text-short".flags.asserts = false;
"microstache".revision = (((hackage."microstache")."1.0.1.1").revisions).default;
"base-compat-batteries".revision = (((hackage."base-compat-batteries")."0.10.5").revisions).default;
"hourglass".revision = (((hackage."hourglass")."0.2.12").revisions).default;
"case-insensitive".revision = (((hackage."case-insensitive")."1.2.0.11").revisions).default;
"extensible-exceptions".revision = (((hackage."extensible-exceptions")."0.1.1.4").revisions).default;
"case-insensitive".revision = (((hackage."case-insensitive")."1.2.1.0").revisions).default;
"unix".revision = (((hackage."unix")."2.7.2.2").revisions).default;
"tasty-quickcheck".revision = (((hackage."tasty-quickcheck")."0.10").revisions).default;
"mtl".revision = (((hackage."mtl")."2.2.2").revisions).default;
"lifted-async".revision = (((hackage."lifted-async")."0.10.0.3").revisions).default;
"network-uri".revision = (((hackage."network-uri")."2.6.1.0").revisions).default;
"asn1-parse".revision = (((hackage."asn1-parse")."0.9.4").revisions).default;
"asn1-parse".revision = (((hackage."asn1-parse")."0.9.5").revisions).default;
"regex-base".revision = (((hackage."regex-base")."0.93.2").revisions).default;
"regex-base".flags.splitbase = true;
"regex-base".flags.newbase = true;
"zlib".revision = (((hackage."zlib")."0.6.2").revisions).default;
"zlib".revision = (((hackage."zlib")."0.6.2.1").revisions).default;
"zlib".flags.non-blocking-ffi = false;
"zlib".flags.pkg-config = false;
"rts".revision = (((hackage."rts")."1.0").revisions).default;
"mmorph".revision = (((hackage."mmorph")."1.1.3").revisions).default;
"js-flot".revision = (((hackage."js-flot")."0.8.3").revisions).default;
"statistics".revision = (((hackage."statistics")."0.15.0.0").revisions).default;
"th-expand-syns".revision = (((hackage."th-expand-syns")."0.4.4.0").revisions).default;
"regex-posix".revision = (((hackage."regex-posix")."0.95.2").revisions).default;
"regex-posix".flags.splitbase = true;
"regex-posix".flags.newbase = true;
"cryptonite".revision = (((hackage."cryptonite")."0.25").revisions).default;
"cmdargs".revision = (((hackage."cmdargs")."0.10.20").revisions).default;
"cmdargs".flags.testprog = false;
"cmdargs".flags.quotation = true;
"th-expand-syns".revision = (((hackage."th-expand-syns")."0.4.5.0").revisions).default;
"cryptonite".revision = (((hackage."cryptonite")."0.26").revisions).default;
"cryptonite".flags.support_sse = false;
"cryptonite".flags.integer-gmp = true;
"cryptonite".flags.support_rdrand = true;
@ -88,47 +74,44 @@
"cryptonite".flags.support_pclmuldq = false;
"cryptonite".flags.check_alignment = false;
"cryptonite".flags.old_toolchain_inliner = false;
"microlens-aeson".revision = (((hackage."microlens-aeson")."2.3.0.1").revisions).default;
"microlens-aeson".revision = (((hackage."microlens-aeson")."2.3.0.4").revisions).default;
"clock".revision = (((hackage."clock")."0.8").revisions).default;
"clock".flags.llvm = false;
"adjunctions".revision = (((hackage."adjunctions")."4.4").revisions).default;
"cryptohash-md5".revision = (((hackage."cryptohash-md5")."0.11.100.1").revisions).default;
"invariant".revision = (((hackage."invariant")."0.5.2").revisions).default;
"th-orphans".revision = (((hackage."th-orphans")."0.13.7").revisions).default;
"invariant".revision = (((hackage."invariant")."0.5.3").revisions).default;
"th-orphans".revision = (((hackage."th-orphans")."0.13.9").revisions).default;
"pem".revision = (((hackage."pem")."0.2.4").revisions).default;
"megaparsec".revision = (((hackage."megaparsec")."7.0.4").revisions).default;
"megaparsec".revision = (((hackage."megaparsec")."7.0.5").revisions).default;
"megaparsec".flags.dev = false;
"syb".revision = (((hackage."syb")."0.7").revisions).default;
"distributive".revision = (((hackage."distributive")."0.6").revisions).default;
"syb".revision = (((hackage."syb")."0.7.1").revisions).default;
"distributive".revision = (((hackage."distributive")."0.6.1").revisions).default;
"distributive".flags.semigroups = true;
"distributive".flags.tagged = true;
"asn1-encoding".revision = (((hackage."asn1-encoding")."0.9.5").revisions).default;
"vector-th-unbox".revision = (((hackage."vector-th-unbox")."0.2.1.6").revisions).default;
"QuickCheck".revision = (((hackage."QuickCheck")."2.13.1").revisions).default;
"asn1-encoding".revision = (((hackage."asn1-encoding")."0.9.6").revisions).default;
"QuickCheck".revision = (((hackage."QuickCheck")."2.12.6.1").revisions).default;
"QuickCheck".flags.templatehaskell = true;
"scientific".revision = (((hackage."scientific")."0.3.6.2").revisions).default;
"scientific".flags.integer-simple = false;
"scientific".flags.bytestring-builder = false;
"tasty".revision = (((hackage."tasty")."1.2.1").revisions).default;
"tasty".flags.clock = true;
"hspec-discover".revision = (((hackage."hspec-discover")."2.7.1").revisions).default;
"monadlist".revision = (((hackage."monadlist")."0.0.2").revisions).default;
"half".revision = (((hackage."half")."0.3").revisions).default;
"parallel".revision = (((hackage."parallel")."3.2.2.0").revisions).default;
"deepseq".revision = (((hackage."deepseq")."1.4.3.0").revisions).default;
"hnix-store-core".revision = (((hackage."hnix-store-core")."0.1.0.0").revisions).default;
"hnix-store-core".flags.bounded_memory = false;
"haskell-src-meta".revision = (((hackage."haskell-src-meta")."0.8.5").revisions).default;
"random".revision = (((hackage."random")."1.1").revisions).default;
"uuid-types".revision = (((hackage."uuid-types")."1.0.3").revisions).default;
"optparse-applicative".revision = (((hackage."optparse-applicative")."0.14.3.0").revisions).default;
"network".revision = (((hackage."network")."3.1.0.0").revisions).default;
"connection".revision = (((hackage."connection")."0.3.0").revisions).default;
"splitmix".revision = (((hackage."splitmix")."0.0.2").revisions).default;
"async".revision = (((hackage."async")."2.2.1").revisions).default;
"network".revision = (((hackage."network")."3.1.1.1").revisions).default;
"connection".revision = (((hackage."connection")."0.3.1").revisions).default;
"async".revision = (((hackage."async")."2.2.2").revisions).default;
"async".flags.bench = false;
"dlist".revision = (((hackage."dlist")."0.8.0.6").revisions).default;
"conduit".revision = (((hackage."conduit")."1.3.1.1").revisions).default;
"ref-tf".revision = (((hackage."ref-tf")."0.4.0.1").revisions).default;
"dlist".revision = (((hackage."dlist")."0.8.0.7").revisions).default;
"conduit".revision = (((hackage."conduit")."1.3.1.2").revisions).default;
"ref-tf".revision = (((hackage."ref-tf")."0.4.0.2").revisions).default;
"x509-store".revision = (((hackage."x509-store")."1.6.7").revisions).default;
"constraints".revision = (((hackage."constraints")."0.10.1").revisions).default;
"lens-family-th".revision = (((hackage."lens-family-th")."0.5.0.2").revisions).default;
"semigroups".revision = (((hackage."semigroups")."0.18.5").revisions).default;
"semigroups".flags.bytestring = true;
@ -141,19 +124,17 @@
"semigroups".flags.transformers = true;
"semigroups".flags.deepseq = true;
"semigroups".flags.bytestring-builder = false;
"HUnit".revision = (((hackage."HUnit")."1.6.0.0").revisions).default;
"vector-instances".revision = (((hackage."vector-instances")."3.4").revisions).default;
"vector-instances".flags.hashable = true;
"lifted-base".revision = (((hackage."lifted-base")."0.2.3.12").revisions).default;
"parsec".revision = (((hackage."parsec")."3.1.13.0").revisions).default;
"th-reify-many".revision = (((hackage."th-reify-many")."0.1.9").revisions).default;
"hsc2hs".revision = (((hackage."hsc2hs")."0.68.3").revisions).default;
"hsc2hs".revision = (((hackage."hsc2hs")."0.68.6").revisions).default;
"hsc2hs".flags.in-ghc-tree = false;
"directory".revision = (((hackage."directory")."1.3.1.5").revisions).default;
"yaml".revision = (((hackage."yaml")."0.11.0.0").revisions).default;
"yaml".revision = (((hackage."yaml")."0.11.2.0").revisions).default;
"yaml".flags.no-exe = true;
"yaml".flags.no-examples = true;
"transformers-compat".revision = (((hackage."transformers-compat")."0.6.4").revisions).default;
"transformers-compat".revision = (((hackage."transformers-compat")."0.6.5").revisions).default;
"transformers-compat".flags.five = false;
"transformers-compat".flags.generic-deriving = true;
"transformers-compat".flags.two = false;
@ -161,38 +142,31 @@
"transformers-compat".flags.mtl = true;
"transformers-compat".flags.four = false;
"transformers-compat".flags.three = false;
"hpack".revision = (((hackage."hpack")."0.31.2").revisions).default;
"hpack".revision = (((hackage."hpack")."0.33.0").revisions).default;
"template-haskell".revision = (((hackage."template-haskell")."2.13.0.0").revisions).default;
"mono-traversable".revision = (((hackage."mono-traversable")."1.0.11.0").revisions).default;
"mono-traversable".revision = (((hackage."mono-traversable")."1.0.15.1").revisions).default;
"vector".revision = (((hackage."vector")."0.12.0.3").revisions).default;
"vector".flags.unsafechecks = false;
"vector".flags.internalchecks = false;
"vector".flags.wall = false;
"vector".flags.boundschecks = true;
"call-stack".revision = (((hackage."call-stack")."0.1.0").revisions).default;
"primitive".revision = (((hackage."primitive")."0.6.4.0").revisions).default;
"profunctors".revision = (((hackage."profunctors")."5.3").revisions).default;
"time-locale-compat".revision = (((hackage."time-locale-compat")."0.1.1.5").revisions).default;
"time-locale-compat".flags.old-locale = false;
"safe".revision = (((hackage."safe")."0.3.17").revisions).default;
"call-stack".revision = (((hackage."call-stack")."0.2.0").revisions).default;
"primitive".revision = (((hackage."primitive")."0.7.0.0").revisions).default;
"profunctors".revision = (((hackage."profunctors")."5.5.1").revisions).default;
"safe".revision = (((hackage."safe")."0.3.18").revisions).default;
"blaze-builder".revision = (((hackage."blaze-builder")."0.4.1.0").revisions).default;
"base-compat".revision = (((hackage."base-compat")."0.10.5").revisions).default;
"js-jquery".revision = (((hackage."js-jquery")."3.3.1").revisions).default;
"terminal-size".revision = (((hackage."terminal-size")."0.3.2.1").revisions).default;
"math-functions".revision = (((hackage."math-functions")."0.3.1.0").revisions).default;
"math-functions".flags.system-expm1 = false;
"time-compat".revision = (((hackage."time-compat")."1.9.2.2").revisions).default;
"time-compat".flags.old-locale = false;
"x509-system".revision = (((hackage."x509-system")."1.6.6").revisions).default;
"keys".revision = (((hackage."keys")."3.12.1").revisions).default;
"ansi-terminal".revision = (((hackage."ansi-terminal")."0.9").revisions).default;
"keys".revision = (((hackage."keys")."3.12.2").revisions).default;
"ansi-terminal".revision = (((hackage."ansi-terminal")."0.10.2").revisions).default;
"ansi-terminal".flags.example = false;
"vector-binary-instances".revision = (((hackage."vector-binary-instances")."0.2.5.1").revisions).default;
"tagged".revision = (((hackage."tagged")."0.8.6").revisions).default;
"tagged".flags.transformers = true;
"tagged".flags.deepseq = true;
"x509".revision = (((hackage."x509")."1.7.5").revisions).default;
"cassava".revision = (((hackage."cassava")."0.5.1.0").revisions).default;
"cassava".flags.bytestring--lt-0_10_4 = false;
"haskell-src-exts".revision = (((hackage."haskell-src-exts")."1.20.3").revisions).default;
"haskell-src-exts".revision = (((hackage."haskell-src-exts")."1.23.0").revisions).default;
"lens".revision = (((hackage."lens")."4.17.1").revisions).default;
"lens".flags.j = false;
"lens".flags.test-properties = true;
@ -207,46 +181,34 @@
"lens".flags.safe = false;
"unliftio-core".revision = (((hackage."unliftio-core")."0.1.2.0").revisions).default;
"containers".revision = (((hackage."containers")."0.5.11.0").revisions).default;
"wl-pprint-annotated".revision = (((hackage."wl-pprint-annotated")."0.1.0.1").revisions).default;
"integer-logarithms".revision = (((hackage."integer-logarithms")."1.0.3").revisions).default;
"integer-logarithms".flags.check-bounds = false;
"integer-logarithms".flags.integer-gmp = true;
"reflection".revision = (((hackage."reflection")."2.1.4").revisions).default;
"reflection".revision = (((hackage."reflection")."2.1.5").revisions).default;
"reflection".flags.slow = false;
"reflection".flags.template-haskell = true;
"these".revision = (((hackage."these")."0.8").revisions).default;
"these".revision = (((hackage."these")."0.7.6").revisions).default;
"regex-tdfa-text".revision = (((hackage."regex-tdfa-text")."1.0.0.3").revisions).default;
"dependent-sum".revision = (((hackage."dependent-sum")."0.5").revisions).default;
"socks".revision = (((hackage."socks")."0.6.0").revisions).default;
"streaming-commons".revision = (((hackage."streaming-commons")."0.2.1.0").revisions).default;
"dependent-sum".revision = (((hackage."dependent-sum")."0.4").revisions).default;
"socks".revision = (((hackage."socks")."0.6.1").revisions).default;
"streaming-commons".revision = (((hackage."streaming-commons")."0.2.1.2").revisions).default;
"streaming-commons".flags.use-bytestring-builder = false;
"haskell-lexer".revision = (((hackage."haskell-lexer")."1.0.2").revisions).default;
"monad-par".revision = (((hackage."monad-par")."0.3.4.8").revisions).default;
"monad-par".flags.newgeneric = false;
"monad-par".flags.chaselev = false;
"lens-family".revision = (((hackage."lens-family")."1.2.3").revisions).default;
"lens-family".revision = (((hackage."lens-family")."2.0.0").revisions).default;
"bytestring".revision = (((hackage."bytestring")."0.10.8.2").revisions).default;
"ansi-wl-pprint".revision = (((hackage."ansi-wl-pprint")."0.6.8.2").revisions).default;
"ansi-wl-pprint".revision = (((hackage."ansi-wl-pprint")."0.6.9").revisions).default;
"ansi-wl-pprint".flags.example = false;
"mwc-random".revision = (((hackage."mwc-random")."0.14.0.0").revisions).default;
"basement".revision = (((hackage."basement")."0.0.10").revisions).default;
"test-framework".revision = (((hackage."test-framework")."0.8.2.0").revisions).default;
"basement".revision = (((hackage."basement")."0.0.11").revisions).default;
"cryptohash-sha1".revision = (((hackage."cryptohash-sha1")."0.11.100.1").revisions).default;
"serialise".revision = (((hackage."serialise")."0.2.1.0").revisions).default;
"serialise".revision = (((hackage."serialise")."0.2.2.0").revisions).default;
"serialise".flags.newtime15 = true;
"hostname".revision = (((hackage."hostname")."1.0").revisions).default;
"old-locale".revision = (((hackage."old-locale")."1.0.0.7").revisions).default;
"wcwidth".revision = (((hackage."wcwidth")."0.0.2").revisions).default;
"wcwidth".flags.split-base = true;
"wcwidth".flags.cli = false;
"StateVar".revision = (((hackage."StateVar")."1.1.1.1").revisions).default;
"StateVar".revision = (((hackage."StateVar")."1.2").revisions).default;
"mime-types".revision = (((hackage."mime-types")."0.1.0.9").revisions).default;
"http-client-tls".revision = (((hackage."http-client-tls")."0.3.5.3").revisions).default;
"contravariant".revision = (((hackage."contravariant")."1.5").revisions).default;
"contravariant".revision = (((hackage."contravariant")."1.5.2").revisions).default;
"contravariant".flags.semigroups = true;
"contravariant".flags.tagged = true;
"contravariant".flags.statevar = true;
"contravariant".flags.safe = false;
"pointed".revision = (((hackage."pointed")."5.0.1").revisions).default;
"pointed".flags.semigroupoids = true;
"pointed".flags.stm = true;
@ -257,43 +219,38 @@
"pointed".flags.tagged = true;
"pointed".flags.containers = true;
"pointed".flags.transformers = true;
"parser-combinators".revision = (((hackage."parser-combinators")."1.0.2").revisions).default;
"parser-combinators".revision = (((hackage."parser-combinators")."1.0.3").revisions).default;
"parser-combinators".flags.dev = false;
"deriving-compat".revision = (((hackage."deriving-compat")."0.5.5").revisions).default;
"deriving-compat".revision = (((hackage."deriving-compat")."0.5.8").revisions).default;
"deriving-compat".flags.base-4-9 = true;
"deriving-compat".flags.template-haskell-2-11 = true;
"deriving-compat".flags.new-functor-classes = true;
"text".revision = (((hackage."text")."1.2.3.1").revisions).default;
"Cabal".revision = (((hackage."Cabal")."2.4.1.0").revisions).default;
"Cabal".flags.bundled-binary-generic = false;
"assoc".revision = (((hackage."assoc")."1").revisions).default;
"Diff".revision = (((hackage."Diff")."0.3.4").revisions).default;
"unordered-containers".revision = (((hackage."unordered-containers")."0.2.10.0").revisions).default;
"unordered-containers".flags.debug = false;
"aeson-pretty".revision = (((hackage."aeson-pretty")."0.8.8").revisions).default;
"aeson-pretty".flags.lib-only = false;
"base".revision = (((hackage."base")."4.11.1.0").revisions).default;
"abstract-deque".revision = (((hackage."abstract-deque")."0.3").revisions).default;
"abstract-deque".flags.usecas = false;
"tasty-hedgehog".revision = (((hackage."tasty-hedgehog")."0.2.0.0").revisions).default;
"comonad".revision = (((hackage."comonad")."5.0.4").revisions).default;
"comonad".revision = (((hackage."comonad")."5.0.6").revisions).default;
"comonad".flags.distributive = true;
"comonad".flags.test-doctests = true;
"comonad".flags.containers = true;
"comonad".flags.contravariant = true;
"time".revision = (((hackage."time")."1.8.0.2").revisions).default;
"data-default-class".revision = (((hackage."data-default-class")."0.1.2.0").revisions).default;
"terminfo".revision = (((hackage."terminfo")."0.4.1.1").revisions).default;
"base16-bytestring".revision = (((hackage."base16-bytestring")."0.1.1.6").revisions).default;
"vector-algorithms".revision = (((hackage."vector-algorithms")."0.8.0.1").revisions).default;
"vector-algorithms".revision = (((hackage."vector-algorithms")."0.8.0.3").revisions).default;
"vector-algorithms".flags.unsafechecks = false;
"vector-algorithms".flags.internalchecks = false;
"vector-algorithms".flags.llvm = false;
"vector-algorithms".flags.boundschecks = true;
"vector-algorithms".flags.bench = true;
"vector-algorithms".flags.properties = true;
"prettyprinter".revision = (((hackage."prettyprinter")."1.2.1").revisions).default;
"prettyprinter".revision = (((hackage."prettyprinter")."1.2.1.1").revisions).default;
"prettyprinter".flags.buildreadme = false;
"cryptohash-sha512".revision = (((hackage."cryptohash-sha512")."0.11.100.1").revisions).default;
"tasty-hunit".revision = (((hackage."tasty-hunit")."0.10.0.1").revisions).default;
"pretty-show".revision = (((hackage."pretty-show")."1.8.2").revisions).default;
"transformers".revision = (((hackage."transformers")."0.5.5.0").revisions).default;
"hashable".revision = (((hackage."hashable")."1.2.7.0").revisions).default;
@ -301,62 +258,54 @@
"hashable".flags.integer-gmp = true;
"hashable".flags.sse41 = false;
"hashable".flags.examples = false;
"attoparsec".revision = (((hackage."attoparsec")."0.13.2.2").revisions).default;
"attoparsec".revision = (((hackage."attoparsec")."0.13.2.3").revisions).default;
"attoparsec".flags.developer = false;
"infer-license".revision = (((hackage."infer-license")."0.2.0").revisions).default;
"colour".revision = (((hackage."colour")."2.3.4").revisions).default;
"colour".revision = (((hackage."colour")."2.3.5").revisions).default;
"transformers-base".revision = (((hackage."transformers-base")."0.4.5.2").revisions).default;
"transformers-base".flags.orphaninstances = true;
"happy".revision = (((hackage."happy")."1.19.9").revisions).default;
"happy".flags.small_base = true;
"criterion".revision = (((hackage."criterion")."1.5.4.0").revisions).default;
"criterion".flags.embed-data-files = false;
"criterion".flags.fast = false;
"monad-par-extras".revision = (((hackage."monad-par-extras")."0.3.3").revisions).default;
"filepath".revision = (((hackage."filepath")."1.4.2").revisions).default;
"code-page".revision = (((hackage."code-page")."0.2").revisions).default;
"asn1-types".revision = (((hackage."asn1-types")."0.3.2").revisions).default;
"unbounded-delays".revision = (((hackage."unbounded-delays")."0.1.1.0").revisions).default;
"hedgehog".revision = (((hackage."hedgehog")."0.6.1").revisions).default;
"cborg".revision = (((hackage."cborg")."0.2.1.0").revisions).default;
"asn1-types".revision = (((hackage."asn1-types")."0.3.3").revisions).default;
"cborg".revision = (((hackage."cborg")."0.2.2.1").revisions).default;
"cborg".flags.optimize-gmp = true;
"monad-control".revision = (((hackage."monad-control")."1.0.2.3").revisions).default;
"process".revision = (((hackage."process")."1.6.3.0").revisions).default;
"tls".revision = (((hackage."tls")."1.4.1").revisions).default;
"tls".revision = (((hackage."tls")."1.5.3").revisions).default;
"tls".flags.compat = true;
"tls".flags.network = true;
"tls".flags.hans = false;
"kan-extensions".revision = (((hackage."kan-extensions")."5.2").revisions).default;
"th-lift".revision = (((hackage."th-lift")."0.8").revisions).default;
"libyaml".revision = (((hackage."libyaml")."0.1.1.0").revisions).default;
"th-lift".revision = (((hackage."th-lift")."0.8.1").revisions).default;
"libyaml".revision = (((hackage."libyaml")."0.1.1.1").revisions).default;
"libyaml".flags.system-libyaml = false;
"libyaml".flags.no-unicode = false;
"resourcet".revision = (((hackage."resourcet")."1.2.2").revisions).default;
"pretty".revision = (((hackage."pretty")."1.1.3.6").revisions).default;
"cabal-doctest".revision = (((hackage."cabal-doctest")."1.0.6").revisions).default;
"cabal-doctest".revision = (((hackage."cabal-doctest")."1.0.8").revisions).default;
"Glob".revision = (((hackage."Glob")."0.10.0").revisions).default;
"microlens".revision = (((hackage."microlens")."0.4.10").revisions).default;
"aeson".revision = (((hackage."aeson")."1.4.3.0").revisions).default;
"microlens".revision = (((hackage."microlens")."0.4.11.2").revisions).default;
"aeson".revision = (((hackage."aeson")."1.4.6.0").revisions).default;
"aeson".flags.cffi = false;
"aeson".flags.fast = false;
"aeson".flags.bytestring-builder = false;
"aeson".flags.developer = false;
"abstract-par".revision = (((hackage."abstract-par")."0.3.3").revisions).default;
"http-types".revision = (((hackage."http-types")."0.12.3").revisions).default;
"ghc-boot-th".revision = (((hackage."ghc-boot-th")."8.4.4").revisions).default;
"th-lift-instances".revision = (((hackage."th-lift-instances")."0.1.13").revisions).default;
"th-lift-instances".revision = (((hackage."th-lift-instances")."0.1.14").revisions).default;
"base-orphans".revision = (((hackage."base-orphans")."0.8.1").revisions).default;
"th-abstraction".revision = (((hackage."th-abstraction")."0.3.1.0").revisions).default;
"memory".revision = (((hackage."memory")."0.14.18").revisions).default;
"memory".revision = (((hackage."memory")."0.15.0").revisions).default;
"memory".flags.support_bytestring = true;
"memory".flags.support_basement = true;
"memory".flags.support_foundation = true;
"memory".flags.support_deepseq = true;
"concurrent-output".revision = (((hackage."concurrent-output")."1.10.9").revisions).default;
"array".revision = (((hackage."array")."0.5.2.0").revisions).default;
"repline".revision = (((hackage."repline")."0.2.0.0").revisions).default;
"repline".revision = (((hackage."repline")."0.2.2.0").revisions).default;
"xml".revision = (((hackage."xml")."1.3.14").revisions).default;
"lens-family-core".revision = (((hackage."lens-family-core")."1.2.3").revisions).default;
"erf".revision = (((hackage."erf")."2.0.0.0").revisions).default;
"lens-family-core".revision = (((hackage."lens-family-core")."2.0.0").revisions).default;
"integer-gmp".revision = (((hackage."integer-gmp")."1.0.2.0").revisions).default;
};
compiler = {
@ -395,8 +344,10 @@
packages = {
nix-tools = ./.plan.nix/nix-tools.nix;
hackage-db = ./.plan.nix/hackage-db.nix;
hnix = ./.plan.nix/hnix.nix;
haskell-src-meta = ./.plan.nix/haskell-src-meta.nix;
};
};
modules = [
({ lib, ... }:
{ packages = { "nix-tools" = { flags = {}; }; }; })
];
}

450
nix-tools/pkgs.nix generated
View File

@ -2,390 +2,347 @@
pkgs = hackage:
{
packages = {
"criterion-measurement".revision = (((hackage."criterion-measurement")."0.1.1.0").revisions).default;
"criterion-measurement".flags.fast = false;
"test-framework-hunit".revision = (((hackage."test-framework-hunit")."0.3.0.2").revisions).default;
"test-framework-hunit".flags.base4 = true;
"test-framework-hunit".flags.base3 = false;
"http-client".revision = (((hackage."http-client")."0.6.4").revisions).default;
"http-client".flags.network-uri = true;
"http-client".revision = (((hackage."http-client")."0.5.14").revisions).default;
"cookie".revision = (((hackage."cookie")."0.4.4").revisions).default;
"void".revision = (((hackage."void")."0.7.3").revisions).default;
"void".flags.safe = false;
"semigroupoids".revision = (((hackage."semigroupoids")."5.3.2").revisions).default;
"semigroupoids".flags.comonad = true;
"semigroupoids".flags.doctests = true;
"semigroupoids".flags.unordered-containers = true;
"semigroupoids".flags.distributive = true;
"semigroupoids".flags.tagged = true;
"semigroupoids".flags.containers = true;
"semigroupoids".flags.contravariant = true;
"free".revision = (((hackage."free")."5.1.1").revisions).default;
"Only".revision = (((hackage."Only")."0.1").revisions).default;
"cereal".revision = (((hackage."cereal")."0.5.8.0").revisions).default;
"cereal".flags.bytestring-builder = false;
"exceptions".revision = (((hackage."exceptions")."0.10.2").revisions).default;
"semigroupoids".revision = (((hackage."semigroupoids")."5.3.3").revisions).default;
"free".revision = (((hackage."free")."5.1.2").revisions).default;
"tf-random".revision = (((hackage."tf-random")."0.5").revisions).default;
"cereal".revision = (((hackage."cereal")."0.5.8.1").revisions).default;
"exceptions".revision = (((hackage."exceptions")."0.10.3").revisions).default;
"cryptohash-sha256".revision = (((hackage."cryptohash-sha256")."0.11.101.0").revisions).default;
"cryptohash-sha256".flags.exe = false;
"binary".revision = (((hackage."binary")."0.8.6.0").revisions).default;
"interpolate".revision = (((hackage."interpolate")."0.2.0").revisions).default;
"generic-random".revision = (((hackage."generic-random")."1.2.0.0").revisions).default;
"tar".revision = (((hackage."tar")."0.5.1.0").revisions).default;
"tar".flags.old-time = false;
"tar".flags.old-bytestring = false;
"hnix".revision = (((hackage."hnix")."0.6.1").revisions).default;
"hnix".flags.profiling = false;
"hnix".flags.optimize = false;
"tar".revision = (((hackage."tar")."0.5.1.1").revisions).default;
"regex-tdfa".revision = (((hackage."regex-tdfa")."1.2.3.2").revisions).default;
"regex-tdfa".flags.devel = false;
"ghc-prim".revision = (((hackage."ghc-prim")."0.5.3").revisions).default;
"text-metrics".revision = (((hackage."text-metrics")."0.3.0").revisions).default;
"text-metrics".flags.dev = false;
"utf8-string".revision = (((hackage."utf8-string")."1.0.1.1").revisions).default;
"bifunctors".revision = (((hackage."bifunctors")."5.5.4").revisions).default;
"bifunctors".flags.semigroups = true;
"bifunctors".flags.tagged = true;
"bifunctors".revision = (((hackage."bifunctors")."5.5.5").revisions).default;
"hashing".revision = (((hackage."hashing")."0.1.0.1").revisions).default;
"extra".revision = (((hackage."extra")."1.6.15").revisions).default;
"extra".revision = (((hackage."extra")."1.6.18").revisions).default;
"haskeline".revision = (((hackage."haskeline")."0.7.4.3").revisions).default;
"logict".revision = (((hackage."logict")."0.6.0.3").revisions).default;
"x509-validation".revision = (((hackage."x509-validation")."1.6.11").revisions).default;
"fail".revision = (((hackage."fail")."4.9.0.0").revisions).default;
"dense-linear-algebra".revision = (((hackage."dense-linear-algebra")."0.1.0.0").revisions).default;
"split".revision = (((hackage."split")."0.2.3.3").revisions).default;
"data-fix".revision = (((hackage."data-fix")."0.2.0").revisions).default;
"stm".revision = (((hackage."stm")."2.5.0.0").revisions).default;
"tasty-th".revision = (((hackage."tasty-th")."0.1.7").revisions).default;
"text-short".revision = (((hackage."text-short")."0.1.2").revisions).default;
"text-short".flags.asserts = false;
"microstache".revision = (((hackage."microstache")."1.0.1.1").revisions).default;
"base-compat-batteries".revision = (((hackage."base-compat-batteries")."0.10.5").revisions).default;
"hourglass".revision = (((hackage."hourglass")."0.2.12").revisions).default;
"case-insensitive".revision = (((hackage."case-insensitive")."1.2.1.0").revisions).default;
"extensible-exceptions".revision = (((hackage."extensible-exceptions")."0.1.1.4").revisions).default;
"unix".revision = (((hackage."unix")."2.7.2.2").revisions).default;
"tasty-quickcheck".revision = (((hackage."tasty-quickcheck")."0.10.1").revisions).default;
"mtl".revision = (((hackage."mtl")."2.2.2").revisions).default;
"lifted-async".revision = (((hackage."lifted-async")."0.10.0.4").revisions).default;
"network-uri".revision = (((hackage."network-uri")."2.6.1.0").revisions).default;
"asn1-parse".revision = (((hackage."asn1-parse")."0.9.4").revisions).default;
"asn1-parse".revision = (((hackage."asn1-parse")."0.9.5").revisions).default;
"regex-base".revision = (((hackage."regex-base")."0.93.2").revisions).default;
"regex-base".flags.splitbase = true;
"regex-base".flags.newbase = true;
"zlib".revision = (((hackage."zlib")."0.6.2").revisions).default;
"zlib".flags.non-blocking-ffi = false;
"zlib".flags.pkg-config = false;
"zlib".revision = (((hackage."zlib")."0.6.2.1").revisions).default;
"rts".revision = (((hackage."rts")."1.0").revisions).default;
"mmorph".revision = (((hackage."mmorph")."1.1.3").revisions).default;
"js-flot".revision = (((hackage."js-flot")."0.8.3").revisions).default;
"statistics".revision = (((hackage."statistics")."0.15.0.0").revisions).default;
"th-expand-syns".revision = (((hackage."th-expand-syns")."0.4.4.0").revisions).default;
"th-expand-syns".revision = (((hackage."th-expand-syns")."0.4.5.0").revisions).default;
"regex-posix".revision = (((hackage."regex-posix")."0.95.2").revisions).default;
"regex-posix".flags.splitbase = true;
"regex-posix".flags.newbase = true;
"cryptonite".revision = (((hackage."cryptonite")."0.25").revisions).default;
"cryptonite".flags.support_sse = false;
"cryptonite".flags.integer-gmp = true;
"cryptonite".flags.support_rdrand = true;
"cryptonite".flags.support_aesni = true;
"cryptonite".flags.support_deepseq = true;
"cryptonite".flags.support_pclmuldq = false;
"cryptonite".flags.check_alignment = false;
"cryptonite".flags.old_toolchain_inliner = false;
"cryptonite".revision = (((hackage."cryptonite")."0.26").revisions).default;
"microlens-aeson".revision = (((hackage."microlens-aeson")."2.3.0.4").revisions).default;
"clock".revision = (((hackage."clock")."0.8").revisions).default;
"clock".flags.llvm = false;
"adjunctions".revision = (((hackage."adjunctions")."4.4").revisions).default;
"cryptohash-md5".revision = (((hackage."cryptohash-md5")."0.11.100.1").revisions).default;
"invariant".revision = (((hackage."invariant")."0.5.3").revisions).default;
"th-orphans".revision = (((hackage."th-orphans")."0.13.7").revisions).default;
"th-orphans".revision = (((hackage."th-orphans")."0.13.9").revisions).default;
"pem".revision = (((hackage."pem")."0.2.4").revisions).default;
"megaparsec".revision = (((hackage."megaparsec")."7.0.5").revisions).default;
"megaparsec".flags.dev = false;
"syb".revision = (((hackage."syb")."0.7").revisions).default;
"distributive".revision = (((hackage."distributive")."0.6").revisions).default;
"distributive".flags.semigroups = true;
"distributive".flags.tagged = true;
"asn1-encoding".revision = (((hackage."asn1-encoding")."0.9.5").revisions).default;
"vector-th-unbox".revision = (((hackage."vector-th-unbox")."0.2.1.6").revisions).default;
"QuickCheck".revision = (((hackage."QuickCheck")."2.13.1").revisions).default;
"QuickCheck".flags.templatehaskell = true;
"syb".revision = (((hackage."syb")."0.7.1").revisions).default;
"distributive".revision = (((hackage."distributive")."0.6.1").revisions).default;
"asn1-encoding".revision = (((hackage."asn1-encoding")."0.9.6").revisions).default;
"QuickCheck".revision = (((hackage."QuickCheck")."2.12.6.1").revisions).default;
"scientific".revision = (((hackage."scientific")."0.3.6.2").revisions).default;
"scientific".flags.integer-simple = false;
"scientific".flags.bytestring-builder = false;
"tasty".revision = (((hackage."tasty")."1.2.2").revisions).default;
"tasty".flags.clock = true;
"monadlist".revision = (((hackage."monadlist")."0.0.2").revisions).default;
"half".revision = (((hackage."half")."0.3").revisions).default;
"parallel".revision = (((hackage."parallel")."3.2.2.0").revisions).default;
"deepseq".revision = (((hackage."deepseq")."1.4.4.0").revisions).default;
"hnix-store-core".revision = (((hackage."hnix-store-core")."0.1.0.0").revisions).default;
"hnix-store-core".flags.bounded_memory = false;
"random".revision = (((hackage."random")."1.1").revisions).default;
"uuid-types".revision = (((hackage."uuid-types")."1.0.3").revisions).default;
"optparse-applicative".revision = (((hackage."optparse-applicative")."0.14.3.0").revisions).default;
"network".revision = (((hackage."network")."3.1.0.0").revisions).default;
"connection".revision = (((hackage."connection")."0.3.0").revisions).default;
"splitmix".revision = (((hackage."splitmix")."0.0.2").revisions).default;
"async".revision = (((hackage."async")."2.2.1").revisions).default;
"async".flags.bench = false;
"dlist".revision = (((hackage."dlist")."0.8.0.6").revisions).default;
"network".revision = (((hackage."network")."3.1.1.0").revisions).default;
"connection".revision = (((hackage."connection")."0.3.1").revisions).default;
"async".revision = (((hackage."async")."2.2.2").revisions).default;
"dlist".revision = (((hackage."dlist")."0.8.0.7").revisions).default;
"conduit".revision = (((hackage."conduit")."1.3.1.1").revisions).default;
"ref-tf".revision = (((hackage."ref-tf")."0.4.0.1").revisions).default;
"x509-store".revision = (((hackage."x509-store")."1.6.7").revisions).default;
"constraints".revision = (((hackage."constraints")."0.11").revisions).default;
"lens-family-th".revision = (((hackage."lens-family-th")."0.5.0.2").revisions).default;
"semigroups".revision = (((hackage."semigroups")."0.18.5").revisions).default;
"semigroups".flags.bytestring = true;
"semigroups".flags.unordered-containers = true;
"semigroups".flags.text = true;
"semigroups".flags.tagged = true;
"semigroups".flags.containers = true;
"semigroups".flags.binary = true;
"semigroups".flags.hashable = true;
"semigroups".flags.transformers = true;
"semigroups".flags.deepseq = true;
"semigroups".flags.bytestring-builder = false;
"HUnit".revision = (((hackage."HUnit")."1.6.0.0").revisions).default;
"vector-instances".revision = (((hackage."vector-instances")."3.4").revisions).default;
"vector-instances".flags.hashable = true;
"lifted-base".revision = (((hackage."lifted-base")."0.2.3.12").revisions).default;
"parsec".revision = (((hackage."parsec")."3.1.13.0").revisions).default;
"th-reify-many".revision = (((hackage."th-reify-many")."0.1.9").revisions).default;
"hsc2hs".revision = (((hackage."hsc2hs")."0.68.4").revisions).default;
"hsc2hs".flags.in-ghc-tree = false;
"hsc2hs".revision = (((hackage."hsc2hs")."0.68.6").revisions).default;
"directory".revision = (((hackage."directory")."1.3.3.0").revisions).default;
"yaml".revision = (((hackage."yaml")."0.11.0.0").revisions).default;
"yaml".flags.no-exe = true;
"yaml".flags.no-examples = true;
"yaml".revision = (((hackage."yaml")."0.11.1.2").revisions).default;
"transformers-compat".revision = (((hackage."transformers-compat")."0.6.5").revisions).default;
"transformers-compat".flags.five = false;
"transformers-compat".flags.generic-deriving = true;
"transformers-compat".flags.two = false;
"transformers-compat".flags.five-three = true;
"transformers-compat".flags.mtl = true;
"transformers-compat".flags.four = false;
"transformers-compat".flags.three = false;
"hpack".revision = (((hackage."hpack")."0.31.2").revisions).default;
"hpack".revision = (((hackage."hpack")."0.32.0").revisions).default;
"template-haskell".revision = (((hackage."template-haskell")."2.14.0.0").revisions).default;
"mono-traversable".revision = (((hackage."mono-traversable")."1.0.11.0").revisions).default;
"mono-traversable".revision = (((hackage."mono-traversable")."1.0.12.0").revisions).default;
"vector".revision = (((hackage."vector")."0.12.0.3").revisions).default;
"vector".flags.unsafechecks = false;
"vector".flags.internalchecks = false;
"vector".flags.wall = false;
"vector".flags.boundschecks = true;
"call-stack".revision = (((hackage."call-stack")."0.1.0").revisions).default;
"primitive".revision = (((hackage."primitive")."0.6.4.0").revisions).default;
"profunctors".revision = (((hackage."profunctors")."5.4").revisions).default;
"time-locale-compat".revision = (((hackage."time-locale-compat")."0.1.1.5").revisions).default;
"time-locale-compat".flags.old-locale = false;
"call-stack".revision = (((hackage."call-stack")."0.2.0").revisions).default;
"primitive".revision = (((hackage."primitive")."0.7.0.0").revisions).default;
"profunctors".revision = (((hackage."profunctors")."5.5").revisions).default;
"safe".revision = (((hackage."safe")."0.3.17").revisions).default;
"blaze-builder".revision = (((hackage."blaze-builder")."0.4.1.0").revisions).default;
"base-compat".revision = (((hackage."base-compat")."0.10.5").revisions).default;
"js-jquery".revision = (((hackage."js-jquery")."3.3.1").revisions).default;
"terminal-size".revision = (((hackage."terminal-size")."0.3.2.1").revisions).default;
"math-functions".revision = (((hackage."math-functions")."0.3.1.0").revisions).default;
"math-functions".flags.system-expm1 = false;
"time-compat".revision = (((hackage."time-compat")."1.9.2.2").revisions).default;
"x509-system".revision = (((hackage."x509-system")."1.6.6").revisions).default;
"keys".revision = (((hackage."keys")."3.12.2").revisions).default;
"ansi-terminal".revision = (((hackage."ansi-terminal")."0.9.1").revisions).default;
"ansi-terminal".flags.example = false;
"vector-binary-instances".revision = (((hackage."vector-binary-instances")."0.2.5.1").revisions).default;
"ansi-terminal".revision = (((hackage."ansi-terminal")."0.10").revisions).default;
"tagged".revision = (((hackage."tagged")."0.8.6").revisions).default;
"tagged".flags.transformers = true;
"tagged".flags.deepseq = true;
"x509".revision = (((hackage."x509")."1.7.5").revisions).default;
"cassava".revision = (((hackage."cassava")."0.5.1.0").revisions).default;
"cassava".flags.bytestring--lt-0_10_4 = false;
"haskell-src-exts".revision = (((hackage."haskell-src-exts")."1.20.3").revisions).default;
"lens".revision = (((hackage."lens")."4.17.1").revisions).default;
"lens".flags.j = false;
"lens".flags.test-properties = true;
"lens".flags.old-inline-pragmas = false;
"lens".flags.test-templates = true;
"lens".flags.trustworthy = true;
"lens".flags.test-doctests = true;
"lens".flags.benchmark-uniplate = false;
"lens".flags.inlining = true;
"lens".flags.dump-splices = false;
"lens".flags.test-hunit = true;
"lens".flags.safe = false;
"unliftio-core".revision = (((hackage."unliftio-core")."0.1.2.0").revisions).default;
"containers".revision = (((hackage."containers")."0.6.0.1").revisions).default;
"wl-pprint-annotated".revision = (((hackage."wl-pprint-annotated")."0.1.0.1").revisions).default;
"integer-logarithms".revision = (((hackage."integer-logarithms")."1.0.3").revisions).default;
"integer-logarithms".flags.check-bounds = false;
"integer-logarithms".flags.integer-gmp = true;
"reflection".revision = (((hackage."reflection")."2.1.4").revisions).default;
"reflection".flags.slow = false;
"reflection".flags.template-haskell = true;
"these".revision = (((hackage."these")."0.8").revisions).default;
"reflection".revision = (((hackage."reflection")."2.1.5").revisions).default;
"these".revision = (((hackage."these")."0.7.6").revisions).default;
"regex-tdfa-text".revision = (((hackage."regex-tdfa-text")."1.0.0.3").revisions).default;
"dependent-sum".revision = (((hackage."dependent-sum")."0.5").revisions).default;
"dependent-sum".revision = (((hackage."dependent-sum")."0.4").revisions).default;
"socks".revision = (((hackage."socks")."0.6.0").revisions).default;
"streaming-commons".revision = (((hackage."streaming-commons")."0.2.1.0").revisions).default;
"streaming-commons".flags.use-bytestring-builder = false;
"streaming-commons".revision = (((hackage."streaming-commons")."0.2.1.1").revisions).default;
"haskell-lexer".revision = (((hackage."haskell-lexer")."1.0.2").revisions).default;
"monad-par".revision = (((hackage."monad-par")."0.3.4.8").revisions).default;
"monad-par".flags.newgeneric = false;
"monad-par".flags.chaselev = false;
"lens-family".revision = (((hackage."lens-family")."1.2.3").revisions).default;
"lens-family".revision = (((hackage."lens-family")."2.0.0").revisions).default;
"bytestring".revision = (((hackage."bytestring")."0.10.8.2").revisions).default;
"ansi-wl-pprint".revision = (((hackage."ansi-wl-pprint")."0.6.9").revisions).default;
"ansi-wl-pprint".flags.example = false;
"mwc-random".revision = (((hackage."mwc-random")."0.14.0.0").revisions).default;
"basement".revision = (((hackage."basement")."0.0.10").revisions).default;
"basement".revision = (((hackage."basement")."0.0.11").revisions).default;
"test-framework".revision = (((hackage."test-framework")."0.8.2.0").revisions).default;
"cryptohash-sha1".revision = (((hackage."cryptohash-sha1")."0.11.100.1").revisions).default;
"serialise".revision = (((hackage."serialise")."0.2.1.0").revisions).default;
"serialise".flags.newtime15 = true;
"hostname".revision = (((hackage."hostname")."1.0").revisions).default;
"old-locale".revision = (((hackage."old-locale")."1.0.0.7").revisions).default;
"wcwidth".revision = (((hackage."wcwidth")."0.0.2").revisions).default;
"wcwidth".flags.split-base = true;
"wcwidth".flags.cli = false;
"StateVar".revision = (((hackage."StateVar")."1.1.1.1").revisions).default;
"StateVar".revision = (((hackage."StateVar")."1.2").revisions).default;
"mime-types".revision = (((hackage."mime-types")."0.1.0.9").revisions).default;
"http-client-tls".revision = (((hackage."http-client-tls")."0.3.5.3").revisions).default;
"contravariant".revision = (((hackage."contravariant")."1.5.1").revisions).default;
"contravariant".flags.semigroups = true;
"contravariant".flags.tagged = true;
"contravariant".flags.statevar = true;
"contravariant".revision = (((hackage."contravariant")."1.5.2").revisions).default;
"pointed".revision = (((hackage."pointed")."5.0.1").revisions).default;
"pointed".flags.semigroupoids = true;
"pointed".flags.stm = true;
"pointed".flags.comonad = true;
"pointed".flags.unordered-containers = true;
"pointed".flags.kan-extensions = true;
"pointed".flags.semigroups = true;
"pointed".flags.tagged = true;
"pointed".flags.containers = true;
"pointed".flags.transformers = true;
"parser-combinators".revision = (((hackage."parser-combinators")."1.0.3").revisions).default;
"parser-combinators".flags.dev = false;
"deriving-compat".revision = (((hackage."deriving-compat")."0.5.6").revisions).default;
"deriving-compat".flags.base-4-9 = true;
"deriving-compat".flags.template-haskell-2-11 = true;
"deriving-compat".flags.new-functor-classes = true;
"deriving-compat".revision = (((hackage."deriving-compat")."0.5.7").revisions).default;
"text".revision = (((hackage."text")."1.2.3.1").revisions).default;
"Cabal".revision = (((hackage."Cabal")."2.4.0.1").revisions).default;
"assoc".revision = (((hackage."assoc")."1").revisions).default;
"Diff".revision = (((hackage."Diff")."0.3.4").revisions).default;
"unordered-containers".revision = (((hackage."unordered-containers")."0.2.10.0").revisions).default;
"unordered-containers".flags.debug = false;
"aeson-pretty".revision = (((hackage."aeson-pretty")."0.8.8").revisions).default;
"base".revision = (((hackage."base")."4.12.0.0").revisions).default;
"abstract-deque".revision = (((hackage."abstract-deque")."0.3").revisions).default;
"abstract-deque".flags.usecas = false;
"tasty-hedgehog".revision = (((hackage."tasty-hedgehog")."1.0.0.0").revisions).default;
"comonad".revision = (((hackage."comonad")."5.0.5").revisions).default;
"comonad".flags.distributive = true;
"comonad".flags.test-doctests = true;
"comonad".flags.containers = true;
"time".revision = (((hackage."time")."1.8.0.2").revisions).default;
"data-default-class".revision = (((hackage."data-default-class")."0.1.2.0").revisions).default;
"terminfo".revision = (((hackage."terminfo")."0.4.1.2").revisions).default;
"base16-bytestring".revision = (((hackage."base16-bytestring")."0.1.1.6").revisions).default;
"vector-algorithms".revision = (((hackage."vector-algorithms")."0.8.0.1").revisions).default;
"vector-algorithms".flags.unsafechecks = false;
"vector-algorithms".flags.internalchecks = false;
"vector-algorithms".flags.llvm = false;
"vector-algorithms".flags.boundschecks = true;
"vector-algorithms".flags.bench = true;
"vector-algorithms".flags.properties = true;
"prettyprinter".revision = (((hackage."prettyprinter")."1.2.1").revisions).default;
"prettyprinter".flags.buildreadme = false;
"prettyprinter".revision = (((hackage."prettyprinter")."1.2.1.1").revisions).default;
"cryptohash-sha512".revision = (((hackage."cryptohash-sha512")."0.11.100.1").revisions).default;
"tasty-hunit".revision = (((hackage."tasty-hunit")."0.10.0.2").revisions).default;
"pretty-show".revision = (((hackage."pretty-show")."1.8.2").revisions).default;
"pretty-show".revision = (((hackage."pretty-show")."1.9.5").revisions).default;
"transformers".revision = (((hackage."transformers")."0.5.6.2").revisions).default;
"hashable".revision = (((hackage."hashable")."1.2.7.0").revisions).default;
"hashable".flags.sse2 = true;
"hashable".flags.integer-gmp = true;
"hashable".flags.sse41 = false;
"hashable".flags.examples = false;
"attoparsec".revision = (((hackage."attoparsec")."0.13.2.2").revisions).default;
"attoparsec".flags.developer = false;
"attoparsec".revision = (((hackage."attoparsec")."0.13.2.3").revisions).default;
"infer-license".revision = (((hackage."infer-license")."0.2.0").revisions).default;
"colour".revision = (((hackage."colour")."2.3.5").revisions).default;
"transformers-base".revision = (((hackage."transformers-base")."0.4.5.2").revisions).default;
"transformers-base".flags.orphaninstances = true;
"happy".revision = (((hackage."happy")."1.19.10").revisions).default;
"happy".flags.small_base = true;
"criterion".revision = (((hackage."criterion")."1.5.5.0").revisions).default;
"criterion".flags.embed-data-files = false;
"criterion".flags.fast = false;
"monad-par-extras".revision = (((hackage."monad-par-extras")."0.3.3").revisions).default;
"happy".revision = (((hackage."happy")."1.19.12").revisions).default;
"filepath".revision = (((hackage."filepath")."1.4.2.1").revisions).default;
"code-page".revision = (((hackage."code-page")."0.2").revisions).default;
"asn1-types".revision = (((hackage."asn1-types")."0.3.2").revisions).default;
"unbounded-delays".revision = (((hackage."unbounded-delays")."0.1.1.0").revisions).default;
"hedgehog".revision = (((hackage."hedgehog")."1.0").revisions).default;
"cborg".revision = (((hackage."cborg")."0.2.1.0").revisions).default;
"cborg".flags.optimize-gmp = true;
"asn1-types".revision = (((hackage."asn1-types")."0.3.3").revisions).default;
"cborg".revision = (((hackage."cborg")."0.2.2.0").revisions).default;
"monad-control".revision = (((hackage."monad-control")."1.0.2.3").revisions).default;
"process".revision = (((hackage."process")."1.6.5.0").revisions).default;
"tls".revision = (((hackage."tls")."1.4.1").revisions).default;
"tls".flags.compat = true;
"tls".flags.network = true;
"tls".flags.hans = false;
"tls".revision = (((hackage."tls")."1.5.1").revisions).default;
"kan-extensions".revision = (((hackage."kan-extensions")."5.2").revisions).default;
"th-lift".revision = (((hackage."th-lift")."0.8.0.1").revisions).default;
"libyaml".revision = (((hackage."libyaml")."0.1.1.0").revisions).default;
"libyaml".flags.system-libyaml = false;
"libyaml".flags.no-unicode = false;
"resourcet".revision = (((hackage."resourcet")."1.2.2").revisions).default;
"pretty".revision = (((hackage."pretty")."1.1.3.6").revisions).default;
"cabal-doctest".revision = (((hackage."cabal-doctest")."1.0.6").revisions).default;
"cabal-doctest".revision = (((hackage."cabal-doctest")."1.0.8").revisions).default;
"Glob".revision = (((hackage."Glob")."0.10.0").revisions).default;
"microlens".revision = (((hackage."microlens")."0.4.10").revisions).default;
"aeson".revision = (((hackage."aeson")."1.4.3.0").revisions).default;
"aeson".flags.cffi = false;
"aeson".flags.fast = false;
"aeson".flags.bytestring-builder = false;
"aeson".flags.developer = false;
"abstract-par".revision = (((hackage."abstract-par")."0.3.3").revisions).default;
"microlens".revision = (((hackage."microlens")."0.4.11.2").revisions).default;
"aeson".revision = (((hackage."aeson")."1.4.5.0").revisions).default;
"http-types".revision = (((hackage."http-types")."0.12.3").revisions).default;
"ghc-boot-th".revision = (((hackage."ghc-boot-th")."8.6.5").revisions).default;
"th-lift-instances".revision = (((hackage."th-lift-instances")."0.1.13").revisions).default;
"th-lift-instances".revision = (((hackage."th-lift-instances")."0.1.14").revisions).default;
"base-orphans".revision = (((hackage."base-orphans")."0.8.1").revisions).default;
"th-abstraction".revision = (((hackage."th-abstraction")."0.3.1.0").revisions).default;
"memory".revision = (((hackage."memory")."0.14.18").revisions).default;
"memory".flags.support_bytestring = true;
"memory".flags.support_basement = true;
"memory".flags.support_foundation = true;
"memory".flags.support_deepseq = true;
"concurrent-output".revision = (((hackage."concurrent-output")."1.10.10").revisions).default;
"memory".revision = (((hackage."memory")."0.15.0").revisions).default;
"array".revision = (((hackage."array")."0.5.3.0").revisions).default;
"repline".revision = (((hackage."repline")."0.2.1.0").revisions).default;
"xml".revision = (((hackage."xml")."1.3.14").revisions).default;
"lens-family-core".revision = (((hackage."lens-family-core")."1.2.3").revisions).default;
"erf".revision = (((hackage."erf")."2.0.0.0").revisions).default;
"lens-family-core".revision = (((hackage."lens-family-core")."2.0.0").revisions).default;
"integer-gmp".revision = (((hackage."integer-gmp")."1.0.2.0").revisions).default;
};
compiler = {
version = "8.6.5";
nix-name = "ghc865";
packages = {
"test-framework-hunit" = "0.3.0.2";
"http-client" = "0.5.14";
"cookie" = "0.4.4";
"void" = "0.7.3";
"semigroupoids" = "5.3.3";
"free" = "5.1.2";
"tf-random" = "0.5";
"cereal" = "0.5.8.1";
"exceptions" = "0.10.3";
"cryptohash-sha256" = "0.11.101.0";
"binary" = "0.8.6.0";
"tar" = "0.5.1.1";
"regex-tdfa" = "1.2.3.2";
"ghc-prim" = "0.5.3";
"text-metrics" = "0.3.0";
"utf8-string" = "1.0.1.1";
"bifunctors" = "5.5.5";
"hashing" = "0.1.0.1";
"extra" = "1.6.18";
"haskeline" = "0.7.4.3";
"logict" = "0.6.0.3";
"x509-validation" = "1.6.11";
"split" = "0.2.3.3";
"data-fix" = "0.2.0";
"stm" = "2.5.0.0";
"hourglass" = "0.2.12";
"case-insensitive" = "1.2.1.0";
"extensible-exceptions" = "0.1.1.4";
"unix" = "2.7.2.2";
"mtl" = "2.2.2";
"network-uri" = "2.6.1.0";
"asn1-parse" = "0.9.5";
"regex-base" = "0.93.2";
"zlib" = "0.6.2.1";
"rts" = "1.0";
"th-expand-syns" = "0.4.5.0";
"regex-posix" = "0.95.2";
"cryptonite" = "0.26";
"microlens-aeson" = "2.3.0.4";
"clock" = "0.8";
"adjunctions" = "4.4";
"cryptohash-md5" = "0.11.100.1";
"invariant" = "0.5.3";
"th-orphans" = "0.13.9";
"pem" = "0.2.4";
"megaparsec" = "7.0.5";
"syb" = "0.7.1";
"distributive" = "0.6.1";
"asn1-encoding" = "0.9.6";
"QuickCheck" = "2.12.6.1";
"scientific" = "0.3.6.2";
"monadlist" = "0.0.2";
"half" = "0.3";
"parallel" = "3.2.2.0";
"deepseq" = "1.4.4.0";
"hnix-store-core" = "0.1.0.0";
"random" = "1.1";
"uuid-types" = "1.0.3";
"optparse-applicative" = "0.14.3.0";
"network" = "3.1.1.0";
"connection" = "0.3.1";
"async" = "2.2.2";
"dlist" = "0.8.0.7";
"conduit" = "1.3.1.1";
"ref-tf" = "0.4.0.1";
"x509-store" = "1.6.7";
"lens-family-th" = "0.5.0.2";
"semigroups" = "0.18.5";
"HUnit" = "1.6.0.0";
"vector-instances" = "3.4";
"parsec" = "3.1.13.0";
"th-reify-many" = "0.1.9";
"directory" = "1.3.3.0";
"yaml" = "0.11.1.2";
"transformers-compat" = "0.6.5";
"hpack" = "0.32.0";
"template-haskell" = "2.14.0.0";
"mono-traversable" = "1.0.12.0";
"vector" = "0.12.0.3";
"call-stack" = "0.2.0";
"primitive" = "0.7.0.0";
"profunctors" = "5.5";
"safe" = "0.3.17";
"blaze-builder" = "0.4.1.0";
"base-compat" = "0.10.5";
"time-compat" = "1.9.2.2";
"x509-system" = "1.6.6";
"keys" = "3.12.2";
"ansi-terminal" = "0.10";
"tagged" = "0.8.6";
"x509" = "1.7.5";
"haskell-src-exts" = "1.20.3";
"lens" = "4.17.1";
"unliftio-core" = "0.1.2.0";
"containers" = "0.6.0.1";
"integer-logarithms" = "1.0.3";
"reflection" = "2.1.5";
"these" = "0.7.6";
"regex-tdfa-text" = "1.0.0.3";
"dependent-sum" = "0.4";
"socks" = "0.6.0";
"streaming-commons" = "0.2.1.1";
"haskell-lexer" = "1.0.2";
"lens-family" = "2.0.0";
"bytestring" = "0.10.8.2";
"ansi-wl-pprint" = "0.6.9";
"basement" = "0.0.11";
"test-framework" = "0.8.2.0";
"cryptohash-sha1" = "0.11.100.1";
"serialise" = "0.2.1.0";
"hostname" = "1.0";
"old-locale" = "1.0.0.7";
"StateVar" = "1.2";
"mime-types" = "0.1.0.9";
"http-client-tls" = "0.3.5.3";
"contravariant" = "1.5.2";
"pointed" = "5.0.1";
"parser-combinators" = "1.0.3";
"deriving-compat" = "0.5.7";
"text" = "1.2.3.1";
"Cabal" = "2.4.0.1";
"unordered-containers" = "0.2.10.0";
"aeson-pretty" = "0.8.8";
"base" = "4.12.0.0";
"comonad" = "5.0.5";
"time" = "1.8.0.2";
"data-default-class" = "0.1.2.0";
"terminfo" = "0.4.1.2";
"base16-bytestring" = "0.1.1.6";
"vector-algorithms" = "0.8.0.1";
"prettyprinter" = "1.2.1.1";
"cryptohash-sha512" = "0.11.100.1";
"pretty-show" = "1.9.5";
"transformers" = "0.5.6.2";
"hashable" = "1.2.7.0";
"attoparsec" = "0.13.2.3";
"infer-license" = "0.2.0";
"colour" = "2.3.5";
"transformers-base" = "0.4.5.2";
"filepath" = "1.4.2.1";
"asn1-types" = "0.3.3";
"cborg" = "0.2.2.0";
"monad-control" = "1.0.2.3";
"process" = "1.6.5.0";
"tls" = "1.5.1";
"kan-extensions" = "5.2";
"th-lift" = "0.8.0.1";
"libyaml" = "0.1.1.0";
"resourcet" = "1.2.2";
"pretty" = "1.1.3.6";
"Glob" = "0.10.0";
"microlens" = "0.4.11.2";
"aeson" = "1.4.5.0";
"http-types" = "0.12.3";
"ghc-boot-th" = "8.6.5";
"th-lift-instances" = "0.1.14";
"base-orphans" = "0.8.1";
"th-abstraction" = "0.3.1.0";
"memory" = "0.15.0";
"array" = "0.5.3.0";
"xml" = "1.3.14";
"erf" = "2.0.0.0";
"lens-family-core" = "2.0.0";
"integer-gmp" = "1.0.2.0";
};
};
@ -395,8 +352,19 @@
packages = {
nix-tools = ./.plan.nix/nix-tools.nix;
hackage-db = ./.plan.nix/hackage-db.nix;
hnix = ./.plan.nix/hnix.nix;
haskell-src-meta = ./.plan.nix/haskell-src-meta.nix;
};
};
modules = [
({ lib, ... }:
{
packages = {
"nix-tools" = { flags = {}; };
"hackage-db" = {
flags = { "install-examples" = lib.mkOverride 900 false; };
};
"haskell-src-meta" = { flags = {}; };
};
})
];
}

View File

@ -319,6 +319,11 @@ self: super: {
}
'';
genStackCache = import ../lib/stack-cache-generator.nix {
inherit (self.buildPackages) pkgs;
inherit (self.buildPackages.haskell-nix) haskellLib nix-tools;
};
mkCacheModule = cache:
# for each item in the `cache`, set
# packages.$name.src = fetchgit ...
@ -334,8 +339,6 @@ self: super: {
# src value.
#
# TODO: this should be moved into `call-stack-to-nix`
# it should be automatic and not the burden of
# the end user to work around nix peculiarities.
{ packages =
let
repoToAttr = { name, url, rev, ref ? null, sha256 ? null, subdir ? null, is-private ? false, ... }: {
@ -355,6 +358,7 @@ self: super: {
cacheMap = builtins.map repoToAttr cache;
in
builtins.foldl' (x: y: x // y) {} cacheMap;
};
# Takes a haskell src directory runs cabal new-configure and plan-to-nix.
@ -429,13 +433,18 @@ self: super: {
stackProject' =
{ ... }@args:
let stack = importAndFilterProject (callStackToNix args);
let stack = importAndFilterProject (callStackToNix ({ inherit cache; } // args));
generatedCache = genStackCache {
inherit (args) src;
stackYaml = args.stackYaml or "stack.yaml";
};
cache = args.cache or generatedCache;
in let pkg-set = mkStackPkgSet
{ stack-pkgs = stack.pkgs;
pkg-def-extras = (args.pkg-def-extras or []);
modules = (args.modules or [])
++ self.lib.optional (args ? ghc) { ghc.package = args.ghc; }
++ self.lib.optional (args ? cache) (mkCacheModule args.cache);
modules = self.lib.singleton (mkCacheModule cache)
++ (args.modules or [])
++ self.lib.optional (args ? ghc) { ghc.package = args.ghc; };
};
in { inherit (pkg-set.config) hsPkgs; stack-nix = stack.nix; };

View File

@ -1,6 +1,6 @@
{ stdenv, writeScript, coreutils, gawk, nix
, nix-tools
, limitMB ? 500
, limitMB ? 525
}:
with stdenv.lib;

View File

@ -3,7 +3,6 @@
let
project = stackProject' {
src = ./.;
cache = [ { is-private = false; name = "cabal-simple"; rev = "bc01ebc05a8105035c9449943046b46c8364b932"; sha256 = "003lm3pm024vhbfmii7xcdd9v2rczpflxf7gdl2pyxia7p014i8z"; subdir = "test/cabal-simple"; url = "https://github.com/input-output-hk/haskell.nix.git"; } ];
};
packages = project.hsPkgs;

View File

@ -8,4 +8,5 @@ extra-deps:
commit: bc01ebc05a8105035c9449943046b46c8364b932
subdirs:
- test/cabal-simple
# nix-sha256: 003lm3pm024vhbfmii7xcdd9v2rczpflxf7gdl2pyxia7p014i8z