Add pins and materialization for ghc-boot-packages and ghc-extra-packages (#546)

* Include `tests` in path for cross compiled tests

* Add ghc-boot-packages-nix to haskellNixRoots

* Fix naming warnings in tests sources

* Uses a single cleanGit call for all the tests

* Add memoize code for ghc-boot and ghc-extra pkgs

* Memoize ghc-boot and ghc-extra pkgs nix

* Fix release.nix being more strict than ci.nix by updating filterAttrsOnlyRecursive in ci-lib.nix

* Nicer errors when materialized path does not exist

* Updated materialization docs

* Add internalHackageIndexState to set the index-state used within haskell.nix
This commit is contained in:
Hamish Mackenzie 2020-04-20 13:27:52 +12:00 committed by GitHub
parent 277c9b4acc
commit d1102d342c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
140 changed files with 14927 additions and 245 deletions

View File

@ -30,16 +30,16 @@ in rec {
# TODO: Surely this shouldn't be necessary. I think normal 'filterAttrsRecursive' will effectively cause infinite loops
# if you keep derivations and your predicate forces the value of the attribute, as this then triggers a loop on the
# 'out' attribute. Weird.
# To make this function faster, unwanted attributes are mapped to {} instead of being
# removed. This keeps the function lazy and avoids unwanted evaluation of sibling
# derivations.
filterAttrsOnlyRecursive = pred: set:
lib.listToAttrs (
lib.concatMap (name:
let v = set.${name}; in
if pred name v then [
(lib.nameValuePair name (
if builtins.isAttrs v && !lib.isDerivation v then filterAttrsOnlyRecursive pred v
lib.mapAttrs (name: v:
if pred name v
then
if builtins.isAttrs v
&& !lib.isDerivation v
then filterAttrsOnlyRecursive pred v
else v
))
] else []
) (builtins.attrNames set)
);
else {}) set;
}

2
ci.nix
View File

@ -59,7 +59,7 @@ dimension "Nixpkgs version" nixpkgsVersions (nixpkgsName: nixpkgs-pin:
}
//
# Tests are broken on aarch64 cross https://github.com/input-output-hk/haskell.nix/issues/513
pkgs.lib.optionalAttrs (crossSystemName != "aarch64-multiplatform") build.tests
pkgs.lib.optionalAttrs (crossSystemName != "aarch64-multiplatform") { inherit (build) tests; }
)
)
)

View File

@ -39,11 +39,11 @@ Lets say we want to build `hlint`. We might start with an `hlint`
file that looks like this:
```nix
let inherit (import ./. {}) sources nixpkgsArgs;
let inherit (import ./. {}) sources nixpkgsArgs;
pkgs = import sources.nixpkgs-default nixpkgsArgs;
hlint = pkgs.haskell-nix.hackage-package {
name = "hlint";
version = "2.2.4";
version = "2.2.11";
};
in hlint.components.exes.hlint
```
@ -52,10 +52,10 @@ Building this may result in a lot of output, but if you build
it again it should give just:
```
$ nix-build hlint.nix
$ nix-build hlint.nix
trace: Using latest index state for hlint!
trace: Using index-state: 2019-12-09T00:00:00Z for hlint
/nix/store/7wwqq5v42gm6iiz2d3ngbnkyw7i4py11-hlint-2.2.4-exe-hlint
trace: Using index-state: 2020-04-15T00:00:00Z for hlint
/nix/store/rnfz66v7k8i38c8rsmchzsyqjrmrbdpk-hlint-2.2.11-exe-hlint
```
To materialize the nix files we need to take care to pin down the
@ -63,12 +63,12 @@ inputs. For `cabalProject` and `hackage-package` this means
we must specify the `index-state` of hackage we want to use:
```nix
let inherit (import ./. {}) sources nixpkgsArgs;
pkgs = import sources.nixpkgs-default nixpkgsArgs;
let inherit (import ./. {}) sources nixpkgsArgs;
pkgs = import sources.nixpkgs-default nixpkgsArgs;
hlint = pkgs.haskell-nix.hackage-package {
name = "hlint";
version = "2.2.4";
index-state = "2019-12-03T00:00:00Z";
version = "2.2.11";
index-state = "2020-04-15T00:00:00Z";
};
in hlint.components.exes.hlint
```
@ -78,26 +78,26 @@ calculate a suitable sha256 hash to turn the derivation
containing the nix files into a fixed output derivation:
```
$ nix-build hlint.nix
trace: Using index-state: 2019-12-03T00:00:00Z for hlint
trace: Get `plan-sha256` with `nix-hash --base32 --type sha256 /nix/store/qk1fvza1alkvs51vzmpjp2xsg8xklyxk-hlint-plan-to-nix-pkgs/`
/nix/store/7wwqq5v42gm6iiz2d3ngbnkyw7i4py11-hlint-2.2.4-exe-hlint
$ nix-build hlint.nix
trace: Using index-state: 2020-04-15T00:00:00Z for hlint
trace: Get `plan-sha256` with `nix-hash --base32 --type sha256 /nix/store/8z6p4237rin3c6c1lmjwshmj8rdqrhw2-hlint-plan-to-nix-pkgs/`
/nix/store/rnfz66v7k8i38c8rsmchzsyqjrmrbdpk-hlint-2.2.11-exe-hlint
$ nix-hash --base32 --type sha256 /nix/store/qk1fvza1alkvs51vzmpjp2xsg8xklyxk-hlint-plan-to-nix-pkgs/
1a4rhv3h2daz6dzwzfl3w7l1v556n7aqfiagw6m0rvqq230iabss
$ nix-hash --base32 --type sha256 /nix/store/8z6p4237rin3c6c1lmjwshmj8rdqrhw2-hlint-plan-to-nix-pkgs/
02hasr27a994sml1fzf8swb716lm6lgixxr53y0gxkhw437xkck4
```
We can add the hash as `plan-sha256` or (`stack-sha256` for
`stackProject`)
```nix
let inherit (import ./. {}) sources nixpkgsArgs;
pkgs = import sources.nixpkgs-default nixpkgsArgs;
let inherit (import ./. {}) sources nixpkgsArgs;
pkgs = import sources.nixpkgs-default nixpkgsArgs;
hlint = pkgs.haskell-nix.hackage-package {
name = "hlint";
version = "2.2.4";
index-state = "2019-12-03T00:00:00Z";
plan-sha256 = "1a4rhv3h2daz6dzwzfl3w7l1v556n7aqfiagw6m0rvqq230iabss";
version = "2.2.11";
index-state = "2020-04-15T00:00:00Z";
plan-sha256 = "02hasr27a994sml1fzf8swb716lm6lgixxr53y0gxkhw437xkck4";
};
in hlint.components.exes.hlint
```
@ -111,22 +111,22 @@ to wait while they are built or downloaded.
Running nix build again gives us a hint on what we can do next:
```
$ nix-build hlint.nix
trace: Using index-state: 2019-12-03T00:00:00Z for hlint
trace: To materialize, point `materialized` to a copy of /nix/store/0xalcphb7ifvy5fc9dpwj40fij6nn5av-hlint-plan-to-nix-pkgs
/nix/store/7wwqq5v42gm6iiz2d3ngbnkyw7i4py11-hlint-2.2.4-exe-hlint
$ nix-build hlint.nix
trace: Using index-state: 2020-04-15T00:00:00Z for hlint
trace: To materialize, point `materialized` to a copy of /nix/store/kk047cqsjvbj4w8psv4l05abdcnyrqdc-hlint-plan-to-nix-pkgs
/nix/store/rnfz66v7k8i38c8rsmchzsyqjrmrbdpk-hlint-2.2.11-exe-hlint
```
To capture the nix we can do something like:
```nix
let inherit (import ./. {}) sources nixpkgsArgs;
pkgs = import sources.nixpkgs-default nixpkgsArgs;
let inherit (import ./. {}) sources nixpkgsArgs;
pkgs = import sources.nixpkgs-default nixpkgsArgs;
hlint = pkgs.haskell-nix.hackage-package {
name = "hlint";
version = "2.2.4";
index-state = "2019-12-03T00:00:00Z";
plan-sha256 = "1a4rhv3h2daz6dzwzfl3w7l1v556n7aqfiagw6m0rvqq230iabss";
version = "2.2.11";
index-state = "2020-04-15T00:00:00Z";
plan-sha256 = "02hasr27a994sml1fzf8swb716lm6lgixxr53y0gxkhw437xkck4";
materialized = ./hlint.materialized;
};
in hlint.components.exes.hlint
@ -135,9 +135,9 @@ in hlint.components.exes.hlint
Now we can copy the nix files needed and build with:
```
$ cp -r /nix/store/0xalcphb7ifvy5fc9dpwj40fij6nn5av-hlint-plan-to-nix-pkgs hlint.materialized
$ nix-build hlint.nix
/nix/store/7wwqq5v42gm6iiz2d3ngbnkyw7i4py11-hlint-2.2.4-exe-hlint
$ cp -r /nix/store/8z6p4237rin3c6c1lmjwshmj8rdqrhw2-hlint-plan-to-nix-pkgs hlint.materialized
$ nix-build hlint.nix
/nix/store/rnfz66v7k8i38c8rsmchzsyqjrmrbdpk-hlint-2.2.11-exe-hlint
```
We may want to run `chmod -R +w hlint.materialized` as the files copied from the
@ -145,74 +145,44 @@ store will be read only.
## How can we check `sha256` and `materialized` are up to date?
Let's pretend we had to go back to `hlint` version `2.2.3`.
We can change `version` and temporarily add
`checkMaterialization = true;`:
Let's pretend we had to go back to `hlint` version `2.2.10`.
We can tell haskell.nix to check the materialiazation either by:
* Removing the materialization files with `rm -rf hlint.materialized`
* Temporarily adding `checkMaterialization = true;`
If we choose to add the `checkMaterialization` flag you would have:
```nix
let inherit (import ./. {}) sources nixpkgsArgs;
pkgs = import sources.nixpkgs-default nixpkgsArgs;
let inherit (import ./. {}) sources nixpkgsArgs;
pkgs = import sources.nixpkgs-default nixpkgsArgs;
hlint = pkgs.haskell-nix.hackage-package {
name = "hlint";
version = "2.2.4";
index-state = "2019-12-03T00:00:00Z";
plan-sha256 = "1a4rhv3h2daz6dzwzfl3w7l1v556n7aqfiagw6m0rvqq230iabss";
version = "2.2.10";
index-state = "2020-04-15T00:00:00Z";
plan-sha256 = "02hasr27a994sml1fzf8swb716lm6lgixxr53y0gxkhw437xkck4";
materialized = ./hlint.materialized;
checkMaterialization = true;
};
in hlint.components.exes.hlint
```
This will fail and report the details of what is wrong:
This will fail and report the details of what is wrong and how to fix it:
```
$ nix-build hlint.nix
trace: Using index-state: 2019-12-03T00:00:00Z for hlint
building '/nix/store/zmif4gk52ynh57pf4dikzgsk30haqi2b-hlint-plan-to-nix-pkgs.drv'...
Changes to hlint-plan-to-nix-pkgs not reflected in plan-sha256
diff -ru /nix/store/0xalcphb7ifvy5fc9dpwj40fij6nn5av-hlint-plan-to-nix-pkgs/.plan.nix/hlint.nix /nix/store/h5j8k3y5lansyfss25gd7knbninzr6z4-hlint-plan-to-nix-pkgs/.plan.nix/hlint.nix
--- /nix/store/0xalcphb7ifvy5fc9dpwj40fij6nn5av-hlint-plan-to-nix-pkgs/.plan.nix/hlint.nix 1970-01-01 00:00:01.000000000 +0000
+++ /nix/store/h5j8k3y5lansyfss25gd7knbninzr6z4-hlint-plan-to-nix-pkgs/.plan.nix/hlint.nix 1970-01-01 00:00:01.000000000 +0000
@@ -42,7 +42,7 @@
flags = { threaded = true; gpl = true; ghc-lib = false; };
package = {
specVersion = "1.18";
- identifier = { name = "hlint"; version = "2.2.4"; };
+ identifier = { name = "hlint"; version = "2.2.3"; };
license = "BSD-3-Clause";
copyright = "Neil Mitchell 2006-2019";
maintainer = "Neil Mitchell <ndmitchell@gmail.com>";
@@ -95,7 +95,6 @@
(hsPkgs."extra" or (buildDepError "extra"))
(hsPkgs."refact" or (buildDepError "refact"))
(hsPkgs."aeson" or (buildDepError "aeson"))
- (hsPkgs."filepattern" or (buildDepError "filepattern"))
(hsPkgs."syb" or (buildDepError "syb"))
(hsPkgs."mtl" or (buildDepError "mtl"))
] ++ (if !flags.ghc-lib && (compiler.isGhc && (compiler.version).ge "8.8.0") && (compiler.isGhc && (compiler.version).lt "8.9.0")
diff -ru /nix/store/0xalcphb7ifvy5fc9dpwj40fij6nn5av-hlint-plan-to-nix-pkgs/default.nix /nix/store/h5j8k3y5lansyfss25gd7knbninzr6z4-hlint-plan-to-nix-pkgs/default.nix
--- /nix/store/0xalcphb7ifvy5fc9dpwj40fij6nn5av-hlint-plan-to-nix-pkgs/default.nix 1970-01-01 00:00:01.000000000 +0000
+++ /nix/store/h5j8k3y5lansyfss25gd7knbninzr6z4-hlint-plan-to-nix-pkgs/default.nix 1970-01-01 00:00:01.000000000 +0000
@@ -76,7 +76,7 @@
"tagged".revision = (((hackage."tagged")."0.8.6").revisions).default;
"tagged".flags.transformers = true;
"tagged".flags.deepseq = true;
- "haskell-src-exts".revision = (((hackage."haskell-src-exts")."1.22.0").revisions).default;
+ "haskell-src-exts".revision = (((hackage."haskell-src-exts")."1.21.1").revisions).default;
"unliftio-core".revision = (((hackage."unliftio-core")."0.1.2.0").revisions).default;
"ghc-lib-parser".revision = (((hackage."ghc-lib-parser")."8.8.1").revisions).default;
"containers".revision = (((hackage."containers")."0.6.0.1").revisions).default;
@@ -116,7 +116,6 @@
"hpc".revision = (((hackage."hpc")."0.6.0.3").revisions).default;
"filepath".revision = (((hackage."filepath")."1.4.2.1").revisions).default;
"process".revision = (((hackage."process")."1.6.5.0").revisions).default;
- "filepattern".revision = (((hackage."filepattern")."0.1.1").revisions).default;
"libyaml".revision = (((hackage."libyaml")."0.1.1.1").revisions).default;
"libyaml".flags.system-libyaml = false;
"libyaml".flags.no-unicode = false;
Calculated hash is 1qjmhlb4rw6mggs7y57f6zr5zjmkhkx7sn9q8pb18308n5nxgxcs expected hash was 1a4rhv3h2daz6dzwzfl3w7l1v556n7aqfiagw6m0rvqq230iabss for hlint-plan-to-nix-pkgs
builder for '/nix/store/zmif4gk52ynh57pf4dikzgsk30haqi2b-hlint-plan-to-nix-pkgs.drv' failed with exit code 1
error: build of '/nix/store/zmif4gk52ynh57pf4dikzgsk30haqi2b-hlint-plan-to-nix-pkgs.drv' failed
$ nix-build hlint.nix
...
Calculated hash for hlint-plan-to-nix-pkgs was not 02hasr27a994sml1fzf8swb716lm6lgixxr53y0gxkhw437xkck4. New hash is :
plan-sha256 = "0zsi3wv92qax33ic4n5dfsqd1r9qam1k75za3c5jqgdxl3hy8vph";
Materialized nix used for hlint-plan-to-nix-pkgs incorrect. To fix run :
rm -rf /Users/hamish/iohk/haskell.nix/hlint.materialized
cp -r /nix/store/ywdhbx9rzzkfc60c5vzk7cins2hnvkgx-hlint-plan-to-nix-pkgs /Users/hamish/iohk/haskell.nix/hlint.materialized
chmod -R +w /Users/hamish/iohk/haskell.nix/hlint.materialized
builder for '/nix/store/a5zmgfjfxahapw0q8hd2da5bg7knqvbx-hlint-plan-to-nix-pkgs.drv' failed with exit code 1
error: build of '/nix/store/a5zmgfjfxahapw0q8hd2da5bg7knqvbx-hlint-plan-to-nix-pkgs.drv' failed
(use '--show-trace' to show detailed location information)
```
Checking the materialization requires nix to do all the work that materialization
@ -228,21 +198,21 @@ hash and materialized nix we can find out what nix files should be.
For instance:
```nix
let inherit (import ./. {}) sources nixpkgsArgs;
pkgs = import sources.nixpkgs-default nixpkgsArgs;
let inherit (import ./. {}) sources nixpkgsArgs;
pkgs = import sources.nixpkgs-default nixpkgsArgs;
hlint = pkgs.haskell-nix.hackage-project {
name = "hlint";
version = "2.2.4";
index-state = "2019-12-03T00:00:00Z";
version = "2.2.10";
index-state = "2020-04-15T00:00:00Z";
};
in hlint
```
```
$ nix-build hlint.nix -A plan-nix
trace: Using index-state: 2019-12-03T00:00:00Z for hlint
trace: Get `plan-sha256` with `nix-hash --base32 --type sha256 /nix/store/qk1fvza1alkvs51vzmpjp2xsg8xklyxk-hlint-plan-to-nix-pkgs/`
/nix/store/qk1fvza1alkvs51vzmpjp2xsg8xklyxk-hlint-plan-to-nix-pkgs
trace: Using index-state: 2020-04-15T00:00:00Z for hlint
trace: Get `plan-sha256` with `nix-hash --base32 --type sha256 /nix/store/ywdhbx9rzzkfc60c5vzk7cins2hnvkgx-hlint-plan-to-nix-pkgs/`
/nix/store/ywdhbx9rzzkfc60c5vzk7cins2hnvkgx-hlint-plan-to-nix-pkgs
```
We can have the script copy `$(nix-build hlint.nix -A plan-nix --no-out-link)`
@ -257,17 +227,23 @@ Yes and it gives us the same speed improvement, however:
* Users will still wind up building or downloading the dependencies
needed to build the nix fileds (if they do not have them).
For instance:
For those reasons it might be best to make a copy instead
of using the `/nix/store/...` path directly.
If you really want to use the `/nix/store/...` path directly
you should gaurd against the path not existing as passing in
a non-existing path is now an error:
```nix
let inherit (import ./. {}) sources nixpkgsArgs;
pkgs = import sources.nixpkgs-default nixpkgsArgs;
let inherit (import ./. {}) sources nixpkgsArgs;
pkgs = import sources.nixpkgs-default nixpkgsArgs;
hlintPlan = /nix/store/kk047cqsjvbj4w8psv4l05abdcnyrqdc-hlint-plan-to-nix-pkgs;
hlint = pkgs.haskell-nix.hackage-package {
name = "hlint";
version = "2.2.4";
index-state = "2019-12-03T00:00:00Z";
plan-sha256 = "1a4rhv3h2daz6dzwzfl3w7l1v556n7aqfiagw6m0rvqq230iabss";
materialized = /nix/store/qk1fvza1alkvs51vzmpjp2xsg8xklyxk-hlint-plan-to-nix-pkgs;
version = "2.2.11";
index-state = "2020-04-15T00:00:00Z";
plan-sha256 = "02hasr27a994sml1fzf8swb716lm6lgixxr53y0gxkhw437xkck4";
materialized = if __pathExists hlintPlan then hlintPlan else null;
};
in hlint.components.exes.hlint
```
@ -275,17 +251,17 @@ in hlint.components.exes.hlint
Running when no building is needed is still slow in restricted evaluation mode.
```
$ time nix-build --option restrict-eval true -I . --option allowed-uris "https://github.com/NixOS https://github.com/input-output-hk" hlint.nix
trace: Using index-state: 2019-12-03T00:00:00Z for hlint
/nix/store/7wwqq5v42gm6iiz2d3ngbnkyw7i4py11-hlint-2.2.4-exe-hlint
$ 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
trace: Using index-state: 2020-04-15T00:00:00Z for hlint
/nix/store/rnfz66v7k8i38c8rsmchzsyqjrmrbdpk-hlint-2.2.11-exe-hlint
real 0m10.066s
user 0m8.563s
sys 0m0.630s
$ time nix-build hlint.nix
/nix/store/7wwqq5v42gm6iiz2d3ngbnkyw7i4py11-hlint-2.2.4-exe-hlint
real 0m4.463s
user 0m4.440s
sys 0m0.461s
$ time nix-build hlint.nix
/nix/store/rnfz66v7k8i38c8rsmchzsyqjrmrbdpk-hlint-2.2.11-exe-hlint
real 0m4.628s
user 0m3.889s
sys 0m0.389s
real 0m2.206s
user 0m1.665s
sys 0m0.332s
```

View File

@ -1,5 +1,5 @@
{ dotCabal, pkgs, runCommand, nix-tools, cabal-install, ghc, hpack, symlinkJoin, cacert, index-state-hashes, haskellLib, materialize }@defaults:
{ name ? src.name or (baseNameOf src) # optional name for better error messages
{ name ? src.name or null # optional name for better error messages
, src
, index-state ? null # Hackage index-state, eg. "2019-10-10T00:00:00Z"
, index-sha256 ? null # The hash of the truncated hackage index-state
@ -241,7 +241,7 @@ let
chmod +w -R $out/.source-repository-packages
rm -rf $out/.source-repository-packages
fi
find $out -type f ! -name '*.nix' -delete
find $out \( -type f -or -type l \) ! -name '*.nix' -delete
# Remove empty dirs
find $out -type d -empty -delete

View File

@ -6,7 +6,11 @@
* see also `call-cabal-project-to-nix`!
*/
{ runCommand, nix-tools, pkgs, mkCacheFile, materialize }:
{ src, stackYaml ? null, ignorePackageYaml ? false, cache ? null
{ name ? src.name or null # optional name for better error messages
, src
, stackYaml ? null
, ignorePackageYaml ? false
, cache ? null
, stack-sha256 ? null
, materialized ? null # Location of a materialized copy of the nix files
, checkMaterialization ? null # If true the nix files will be generated used to check plan-sha256 and material
@ -25,7 +29,7 @@ let
reasonNotSafe = null;
} // pkgs.lib.optionalAttrs (checkMaterialization != null) {
inherit checkMaterialization;
}) (runCommand "stack-to-nix-pkgs" {
}) (runCommand (if name == null then "stack-to-nix-pkgs" else name + "-stack-to-nix-pkgs") {
nativeBuildInputs = [ nix-tools pkgs.nix-prefetch-git pkgs.cacert ];
# Needed or stack-to-nix will die on unicode inputs
LOCALE_ARCHIVE = pkgs.lib.optionalString (pkgs.stdenv.hostPlatform.libc == "glibc") "${pkgs.glibcLocales}/lib/locale/locale-archive";

View File

@ -94,7 +94,7 @@
# * A default name that gives a hint as to why there is no name.
__trace (
"WARNING: `${caller}` called on ${toString src} without a `name`. "
+ "Consider adding `name = \"${baseNameOf src};\"`") "source";
+ "Consider adding `name = \"${baseNameOf src}\";`") "source";
in {
inherit origSrc origSubDir origSrcSubDir;
filter = filter';

View File

@ -1,9 +1,21 @@
{ pkgs, nix, runCommand, checkMaterialization }@defaults:
{ sha256
, sha256Arg
, materialized
, reasonNotSafe
, sha256Arg # Name of the sha256 argument for more meaningful
# error messages when checking the materialization.
, materialized # null or path where to find materialized version of
# the output. If this is set but does not exist
# the derivation will fail but with a message
# advising how to populate it.
, reasonNotSafe # Some times there a reasont the derivation will
# not produce output that can be safely materialized.
# Set this to a string explaining why and materialization
# will not be used (if sha256 was set an error will be
# displayed including the reasonNotSafe string).
, checkMaterialization ? defaults.checkMaterialization
# When checkMaterialization is set the derivation
# will be calculated the slow way (without using `sha256`
# and `materialized`) the result will be used to check
# `sha256` and `materialized` (if set).
}: derivation:
let
@ -45,31 +57,52 @@ let
# Build fully and check the hash and materialized versions
checked = runCommand name {
buildInputs = [ nix ];
} (
(pkgs.lib.optionalString (sha256 != null) ''
} (''
ERR=$(mktemp -d)/errors.txt
''
+ (pkgs.lib.optionalString (sha256 != null) ''
NEW_HASH=$(nix-hash --base32 --type sha256 ${calculateNoHash})
if [ "${sha256}" != "$NEW_HASH" ]; then
echo Changes to ${name} not reflected in ${sha256Arg}
diff -ru ${calculateUseHash} ${calculateNoHash} || true
echo Calculated hash is $NEW_HASH expected hash was ${sha256} for ${name}
false
echo "Calculated hash for ${name} was not ${sha256}. New hash is :" >> $ERR
echo " ${sha256Arg} = \"$NEW_HASH\";" >> $ERR
else
echo ${sha256Arg} used for ${name} is correct
fi
'')
+ (pkgs.lib.optionalString (materialized != null) ''
if diff -qr ${materialized} ${calculateNoHash} &>/dev/null; then
echo materialized nix used for ${name} is correct
+ (
if materialized != null && !__pathExists materialized
then ''
echo "Materialized nix used for ${name} is missing. To fix run :" >> $ERR
echo " cp -r ${calculateNoHash} ${toString materialized}" >> $ERR
echo " chmod -R +w ${toString materialized}" >> $ERR
cat $ERR
false
''
else
echo Changes to plan not reflected in materialized nix for ${name}
diff -ru ${materialized} ${calculateNoHash}
fi
'')
+ ''
cp -r ${unchecked} $out
# Make sure output files can be removed from the sandbox
chmod -R +w $out
''
(pkgs.lib.optionalString (materialized != null && __pathExists materialized) ''
if diff -qr ${materialized} ${calculateNoHash} &>/dev/null; then
echo materialized nix used for ${name} is correct
else
echo Changes to plan not reflected in materialized nix for ${name}
diff -ru ${materialized} ${calculateNoHash} || true
echo "Materialized nix used for ${name} incorrect. To fix run :" >> $ERR
echo " rm -rf ${toString materialized}" >> $ERR
echo " cp -r ${calculateNoHash} ${toString materialized}" >> $ERR
echo " chmod -R +w ${toString materialized}" >> $ERR
fi
'')
+ ''
if [ -e $ERR ]; then
cat $ERR
false
else
cp -r ${unchecked} $out
# Make sure output files can be removed from the sandbox
chmod -R +w $out
fi
'')
);
hashArgs = {
@ -78,18 +111,32 @@ let
outputHash = sha256;
};
calculateNoHash = derivation;
calculateUseHash = derivation.overrideAttrs (_: hashArgs);
calculateUseHash =
# Use `cp -r` here to get rid of symlinks so we know the result
# can be safely materialized (no symlinks to the store).
runCommand name hashArgs ''
cp -r ${derivation} $out
# Make sure output files can be removed from the sandbox
chmod -R +w $out
'';
calculateUseAll =
# Skip right to expectedPath if it already exists
if materialized != null && builtins.pathExists materialized
then runCommand name hashArgs ''
cp -r ${materialized} $out
# Make sure output files can be removed from the sandbox
chmod -R +w $out
''
if materialized != null
then
assert __pathExists materialized;
runCommand name hashArgs ''
cp -r ${materialized} $out
# Make sure output files can be removed from the sandbox
chmod -R +w $out
''
else calculateUseHash;
# Materialized location was specified, but the files are not there.
missingMaterialized = materialized != null && !__pathExists materialized;
in
if checkMaterialization
# Use the checked version if requested or if the `materialized` version
# is missing (perhaps deleted or not created yet).
if checkMaterialization || missingMaterialized
then checked
else unchecked

View File

@ -0,0 +1,73 @@
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 = { integer-simple = false; integer-gmp = false; };
package = {
specVersion = "2.1";
identifier = { name = "base"; version = "4.12.0.0"; };
license = "BSD-3-Clause";
copyright = "";
maintainer = "libraries@haskell.org";
author = "";
homepage = "";
url = "";
synopsis = "Basic libraries";
description = "This package contains the Standard Haskell \"Prelude\" and its support libraries,\nand a large collection of useful libraries ranging from data\nstructures to parsing combinators and debugging utilities.";
buildType = "Configure";
};
components = {
"library" = {
depends = (([
(hsPkgs."rts" or (buildDepError "rts"))
(hsPkgs."ghc-prim" or (buildDepError "ghc-prim"))
] ++ (pkgs.lib).optional (!(flags.integer-gmp && !flags.integer-simple || !flags.integer-gmp && flags.integer-simple)) (hsPkgs."invalid-cabal-flag-settings" or (buildDepError "invalid-cabal-flag-settings"))) ++ (pkgs.lib).optional (flags.integer-simple) (hsPkgs."integer-simple" or (buildDepError "integer-simple"))) ++ (pkgs.lib).optional (flags.integer-gmp) (hsPkgs."integer-gmp" or (buildDepError "integer-gmp"));
libs = (pkgs.lib).optionals (system.isWindows) [
(pkgs."wsock32" or (sysDepError "wsock32"))
(pkgs."user32" or (sysDepError "user32"))
(pkgs."shell32" or (sysDepError "shell32"))
(pkgs."msvcrt" or (sysDepError "msvcrt"))
(pkgs."mingw32" or (sysDepError "mingw32"))
(pkgs."mingwex" or (sysDepError "mingwex"))
];
buildable = true;
};
};
} // rec { src = (pkgs.lib).mkDefault ./.; }

View File

@ -0,0 +1,111 @@
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 = { integer-simple = false; };
package = {
specVersion = "1.10";
identifier = { name = "bytestring"; version = "0.10.8.2"; };
license = "BSD-3-Clause";
copyright = "Copyright (c) Don Stewart 2005-2009,\n(c) Duncan Coutts 2006-2015,\n(c) David Roundy 2003-2005,\n(c) Jasper Van der Jeugt 2010,\n(c) Simon Meier 2010-2013.";
maintainer = "Duncan Coutts <duncan@community.haskell.org>";
author = "Don Stewart,\nDuncan Coutts";
homepage = "https://github.com/haskell/bytestring";
url = "";
synopsis = "Fast, compact, strict and lazy byte strings with a list interface";
description = "An efficient compact, immutable byte string type (both strict and lazy)\nsuitable for binary or 8-bit character data.\n\nThe 'ByteString' type represents sequences of bytes or 8-bit characters.\nIt is suitable for high performance use, both in terms of large data\nquantities, or high speed requirements. The 'ByteString' functions follow\nthe same style as Haskell\\'s ordinary lists, so it is easy to convert code\nfrom using 'String' to 'ByteString'.\n\nTwo 'ByteString' variants are provided:\n\n* Strict 'ByteString's keep the string as a single large array. This\nmakes them convenient for passing data between C and Haskell.\n\n* Lazy 'ByteString's use a lazy list of strict chunks which makes it\nsuitable for I\\/O streaming tasks.\n\nThe @Char8@ modules provide a character-based view of the same\nunderlying 'ByteString' types. This makes it convenient to handle mixed\nbinary and 8-bit character content (which is common in many file formats\nand network protocols).\n\nThe 'Builder' module provides an efficient way to build up 'ByteString's\nin an ad-hoc way by repeated concatenation. This is ideal for fast\nserialisation or pretty printing.\n\nThere is also a 'ShortByteString' type which has a lower memory overhead\nand can can be converted to or from a 'ByteString', but supports very few\nother operations. It is suitable for keeping many short strings in memory.\n\n'ByteString's are not designed for Unicode. For Unicode strings you should\nuse the 'Text' type from the @text@ package.\n\nThese modules are intended to be imported qualified, to avoid name clashes\nwith \"Prelude\" functions, e.g.\n\n> import qualified Data.ByteString as BS";
buildType = "Simple";
};
components = {
"library" = {
depends = ([
(hsPkgs."base" or (buildDepError "base"))
(hsPkgs."ghc-prim" or (buildDepError "ghc-prim"))
(hsPkgs."deepseq" or (buildDepError "deepseq"))
] ++ (pkgs.lib).optionals (compiler.isGhc && (compiler.version).ge "6.11") ((pkgs.lib).optional (!flags.integer-simple) (hsPkgs."integer-gmp" or (buildDepError "integer-gmp")))) ++ (pkgs.lib).optional (compiler.isGhc && (compiler.version).ge "6.9" && (compiler.isGhc && (compiler.version).lt "6.11")) (hsPkgs."integer" or (buildDepError "integer"));
buildable = true;
};
tests = {
"prop-compiled" = {
depends = [
(hsPkgs."base" or (buildDepError "base"))
(hsPkgs."ghc-prim" or (buildDepError "ghc-prim"))
(hsPkgs."deepseq" or (buildDepError "deepseq"))
(hsPkgs."random" or (buildDepError "random"))
(hsPkgs."directory" or (buildDepError "directory"))
(hsPkgs."test-framework" or (buildDepError "test-framework"))
(hsPkgs."test-framework-quickcheck2" or (buildDepError "test-framework-quickcheck2"))
(hsPkgs."QuickCheck" or (buildDepError "QuickCheck"))
];
buildable = true;
};
"regressions" = {
depends = [
(hsPkgs."base" or (buildDepError "base"))
(hsPkgs."ghc-prim" or (buildDepError "ghc-prim"))
(hsPkgs."deepseq" or (buildDepError "deepseq"))
(hsPkgs."random" or (buildDepError "random"))
(hsPkgs."directory" or (buildDepError "directory"))
(hsPkgs."test-framework" or (buildDepError "test-framework"))
(hsPkgs."test-framework-hunit" or (buildDepError "test-framework-hunit"))
(hsPkgs."HUnit" or (buildDepError "HUnit"))
];
buildable = false;
};
"test-builder" = {
depends = [
(hsPkgs."base" or (buildDepError "base"))
(hsPkgs."ghc-prim" or (buildDepError "ghc-prim"))
(hsPkgs."deepseq" or (buildDepError "deepseq"))
(hsPkgs."QuickCheck" or (buildDepError "QuickCheck"))
(hsPkgs."byteorder" or (buildDepError "byteorder"))
(hsPkgs."dlist" or (buildDepError "dlist"))
(hsPkgs."directory" or (buildDepError "directory"))
(hsPkgs."mtl" or (buildDepError "mtl"))
(hsPkgs."HUnit" or (buildDepError "HUnit"))
(hsPkgs."test-framework" or (buildDepError "test-framework"))
(hsPkgs."test-framework-hunit" or (buildDepError "test-framework-hunit"))
(hsPkgs."test-framework-quickcheck2" or (buildDepError "test-framework-quickcheck2"))
];
buildable = true;
};
};
};
} // rec { src = (pkgs.lib).mkDefault ./.; }

View File

@ -0,0 +1,69 @@
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 = {
specVersion = "1.22";
identifier = { name = "ghc-boot"; version = "8.6.5"; };
license = "BSD-3-Clause";
copyright = "";
maintainer = "ghc-devs@haskell.org";
author = "";
homepage = "";
url = "";
synopsis = "Shared functionality between GHC and its boot libraries";
description = "This library is shared between GHC, ghc-pkg, and other boot\nlibraries.\n\nA note about \"GHC.PackageDb\": it only deals with the subset of\nthe package database that the compiler cares about: modules\npaths etc and not package metadata like description, authors\netc. It is thus not a library interface to ghc-pkg and is *not*\nsuitable for modifying GHC package databases.\n\nThe package database format and this library are constructed in\nsuch a way that while ghc-pkg depends on Cabal, the GHC library\nand program do not have to depend on Cabal.";
buildType = "Simple";
};
components = {
"library" = {
depends = [
(hsPkgs."base" or (buildDepError "base"))
(hsPkgs."binary" or (buildDepError "binary"))
(hsPkgs."bytestring" or (buildDepError "bytestring"))
(hsPkgs."directory" or (buildDepError "directory"))
(hsPkgs."filepath" or (buildDepError "filepath"))
(hsPkgs."ghc-boot-th" or (buildDepError "ghc-boot-th"))
];
buildable = true;
};
};
} // rec { src = (pkgs.lib).mkDefault ./.; }

View File

@ -0,0 +1,66 @@
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 = {
specVersion = "2.1";
identifier = { name = "ghc-heap"; version = "8.6.5"; };
license = "BSD-3-Clause";
copyright = "";
maintainer = "libraries@haskell.org";
author = "";
homepage = "";
url = "";
synopsis = "Functions for walking GHC's heap";
description = "This package provides functions for walking the GHC heap data structures\nand retrieving information about those data structures.";
buildType = "Simple";
};
components = {
"library" = {
depends = [
(hsPkgs."base" or (buildDepError "base"))
(hsPkgs."ghc-prim" or (buildDepError "ghc-prim"))
(hsPkgs."rts" or (buildDepError "rts"))
];
buildable = true;
};
};
} // rec { src = (pkgs.lib).mkDefault ./.; }

View File

@ -0,0 +1,94 @@
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 = {
ghci = false;
terminfo = true;
stage1 = false;
stage2 = true;
stage3 = false;
};
package = {
specVersion = "1.10";
identifier = { name = "ghc"; version = "8.6.5"; };
license = "BSD-3-Clause";
copyright = "";
maintainer = "glasgow-haskell-users@haskell.org";
author = "The GHC Team";
homepage = "http://www.haskell.org/ghc/";
url = "";
synopsis = "The GHC API";
description = "GHC's functionality can be useful for more things than just\ncompiling Haskell programs. Important use cases are programs\nthat analyse (and perhaps transform) Haskell code. Others\ninclude loading Haskell code dynamically in a GHCi-like manner.\nFor this reason, a lot of GHC's functionality is made available\nthrough this package.";
buildType = "Simple";
};
components = {
"library" = {
depends = [
(hsPkgs."base" or (buildDepError "base"))
(hsPkgs."deepseq" or (buildDepError "deepseq"))
(hsPkgs."directory" or (buildDepError "directory"))
(hsPkgs."process" or (buildDepError "process"))
(hsPkgs."bytestring" or (buildDepError "bytestring"))
(hsPkgs."binary" or (buildDepError "binary"))
(hsPkgs."time" or (buildDepError "time"))
(hsPkgs."containers" or (buildDepError "containers"))
(hsPkgs."array" or (buildDepError "array"))
(hsPkgs."filepath" or (buildDepError "filepath"))
(hsPkgs."template-haskell" or (buildDepError "template-haskell"))
(hsPkgs."hpc" or (buildDepError "hpc"))
(hsPkgs."transformers" or (buildDepError "transformers"))
(hsPkgs."ghc-boot" or (buildDepError "ghc-boot"))
(hsPkgs."ghc-boot-th" or (buildDepError "ghc-boot-th"))
(hsPkgs."ghc-heap" or (buildDepError "ghc-heap"))
(hsPkgs."ghci" or (buildDepError "ghci"))
] ++ (if system.isWindows
then [ (hsPkgs."Win32" or (buildDepError "Win32")) ]
else [
(hsPkgs."unix" or (buildDepError "unix"))
] ++ (pkgs.lib).optional (flags.terminfo) (hsPkgs."terminfo" or (buildDepError "terminfo")));
build-tools = [
(hsPkgs.buildPackages.alex or (pkgs.buildPackages.alex or (buildToolDepError "alex")))
(hsPkgs.buildPackages.happy or (pkgs.buildPackages.happy or (buildToolDepError "happy")))
];
buildable = true;
};
};
} // rec { src = (pkgs.lib).mkDefault ./.; }

View File

@ -0,0 +1,75 @@
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 = { ghci = false; };
package = {
specVersion = "1.10";
identifier = { name = "ghci"; version = "8.6.5"; };
license = "BSD-3-Clause";
copyright = "";
maintainer = "ghc-devs@haskell.org";
author = "";
homepage = "";
url = "";
synopsis = "The library supporting GHC's interactive interpreter";
description = "This library offers interfaces which mediate interactions between the\n@ghci@ interactive shell and @iserv@, GHC's out-of-process interpreter\nbackend.";
buildType = "Simple";
};
components = {
"library" = {
depends = [
(hsPkgs."array" or (buildDepError "array"))
(hsPkgs."base" or (buildDepError "base"))
(hsPkgs."binary" or (buildDepError "binary"))
(hsPkgs."bytestring" or (buildDepError "bytestring"))
(hsPkgs."containers" or (buildDepError "containers"))
(hsPkgs."deepseq" or (buildDepError "deepseq"))
(hsPkgs."filepath" or (buildDepError "filepath"))
(hsPkgs."ghc-boot" or (buildDepError "ghc-boot"))
(hsPkgs."ghc-boot-th" or (buildDepError "ghc-boot-th"))
(hsPkgs."ghc-heap" or (buildDepError "ghc-heap"))
(hsPkgs."template-haskell" or (buildDepError "template-haskell"))
(hsPkgs."transformers" or (buildDepError "transformers"))
] ++ (pkgs.lib).optional (!system.isWindows) (hsPkgs."unix" or (buildDepError "unix"));
buildable = true;
};
};
} // rec { src = (pkgs.lib).mkDefault ./.; }

View File

@ -0,0 +1,76 @@
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 = {
specVersion = "1.10";
identifier = { name = "iserv-proxy"; version = "8.6.5"; };
license = "BSD-3-Clause";
copyright = "XXX";
maintainer = "XXX";
author = "XXX";
homepage = "";
url = "";
synopsis = "iserv allows GHC to delegate Tempalte Haskell computations";
description = "GHC can be provided with a path to the iserv binary with\n@-pgmi=/path/to/iserv-bin@, and will in combination with\n@-fexternal-interpreter@, compile Template Haskell though the\n@iserv-bin@ delegate. This is very similar to how ghcjs has been\ncompiling Template Haskell, by spawning a separate delegate (so\ncalled runner on the javascript vm) and evaluating the splices\nthere.\n\niserv can also be used in combination with cross compilation. For\nthis, the @iserv-proxy@ needs to be built on the host, targeting the\nhost (as it is running on the host). @cabal install -flibrary\n-fproxy@ will yield the proxy.\n\nUsing the cabal for the target @arch-platform-target-cabal install\n-flibrary@ will build the required library that contains the ffi\n@startSlave@ function, which needs to be invoked on the target\n(e.g. in an iOS application) to start the remote iserv slave.\n\ncalling the GHC cross compiler with @-fexternal-interpreter\n-pgmi=\$HOME/.cabal/bin/iserv-proxy -opti\\<ip address\\> -opti\\<port\\>@\nwill cause it to compile Template Haskell via the remote at \\<ip address\\>.\n\nThus to get cross compilation with Template Haskell follow the\nfollowing receipt:\n\n* compile the iserv library for your target\n\n> iserv \$ arch-platform-target-cabal install -flibrary\n\n* setup an application for your target that calls the\n* startSlave function. This could be either haskell or your\n* targets ffi capable language, if needed.\n\n> void startSlave(false /* verbose */, 5000 /* port */,\n> \"/path/to/storagelocation/on/target\");\n\n* build the iserv-proxy\n\n> iserv \$ cabal install -flibrary -fproxy\n* Start your iserv-slave app on your target running on say @10.0.0.1:5000@\n* compiler your sources with -fexternal-interpreter and the proxy\n\n> project \$ arch-platform-target-ghc ModuleContainingTH.hs \\\n> -fexternal-interpreter \\\n> -pgmi=\$HOME/.cabal/bin/iserv-proxy \\\n> -opti10.0.0.1 -opti5000\n\nShould something not work as expected, provide @-opti-v@ for verbose\nlogging of the @iserv-proxy@.";
buildType = "Simple";
};
components = {
exes = {
"iserv-proxy" = {
depends = [
(hsPkgs."array" or (buildDepError "array"))
(hsPkgs."base" or (buildDepError "base"))
(hsPkgs."binary" or (buildDepError "binary"))
(hsPkgs."bytestring" or (buildDepError "bytestring"))
(hsPkgs."containers" or (buildDepError "containers"))
(hsPkgs."deepseq" or (buildDepError "deepseq"))
(hsPkgs."directory" or (buildDepError "directory"))
(hsPkgs."network" or (buildDepError "network"))
(hsPkgs."filepath" or (buildDepError "filepath"))
(hsPkgs."ghci" or (buildDepError "ghci"))
(hsPkgs."libiserv" or (buildDepError "libiserv"))
];
buildable = true;
};
};
};
} // rec { src = (pkgs.lib).mkDefault ./.; }

View File

@ -0,0 +1,73 @@
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 = {
specVersion = "1.10";
identifier = { name = "iserv"; version = "8.6.5"; };
license = "BSD-3-Clause";
copyright = "XXX";
maintainer = "XXX";
author = "XXX";
homepage = "";
url = "";
synopsis = "iserv allows GHC to delegate Tempalte Haskell computations";
description = "GHC can be provided with a path to the iserv binary with\n@-pgmi=/path/to/iserv-bin@, and will in combination with\n@-fexternal-interpreter@, compile Template Haskell though the\n@iserv-bin@ delegate. This is very similar to how ghcjs has been\ncompiling Template Haskell, by spawning a separate delegate (so\ncalled runner on the javascript vm) and evaluating the splices\nthere.\n\nTo use iserv with cross compilers, please see @libraries/libiserv@\nand @utils/iserv-proxy@.";
buildType = "Simple";
};
components = {
exes = {
"iserv" = {
depends = [
(hsPkgs."array" or (buildDepError "array"))
(hsPkgs."base" or (buildDepError "base"))
(hsPkgs."binary" or (buildDepError "binary"))
(hsPkgs."bytestring" or (buildDepError "bytestring"))
(hsPkgs."containers" or (buildDepError "containers"))
(hsPkgs."deepseq" or (buildDepError "deepseq"))
(hsPkgs."ghci" or (buildDepError "ghci"))
(hsPkgs."libiserv" or (buildDepError "libiserv"))
] ++ (pkgs.lib).optional (!system.isWindows) (hsPkgs."unix" or (buildDepError "unix"));
buildable = true;
};
};
};
} // rec { src = (pkgs.lib).mkDefault ./.; }

View File

@ -0,0 +1,73 @@
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 = { network = false; };
package = {
specVersion = "1.10";
identifier = { name = "libiserv"; version = "8.6.5"; };
license = "BSD-3-Clause";
copyright = "XXX";
maintainer = "XXX";
author = "XXX";
homepage = "";
url = "";
synopsis = "Provides shared functionality between iserv and iserv-proxy";
description = "";
buildType = "Simple";
};
components = {
"library" = {
depends = ([
(hsPkgs."base" or (buildDepError "base"))
(hsPkgs."binary" or (buildDepError "binary"))
(hsPkgs."bytestring" or (buildDepError "bytestring"))
(hsPkgs."containers" or (buildDepError "containers"))
(hsPkgs."deepseq" or (buildDepError "deepseq"))
(hsPkgs."ghci" or (buildDepError "ghci"))
] ++ (pkgs.lib).optionals (flags.network) [
(hsPkgs."network" or (buildDepError "network"))
(hsPkgs."directory" or (buildDepError "directory"))
(hsPkgs."filepath" or (buildDepError "filepath"))
]) ++ (pkgs.lib).optional (!system.isWindows) (hsPkgs."unix" or (buildDepError "unix"));
buildable = true;
};
};
} // rec { src = (pkgs.lib).mkDefault ./.; }

View File

@ -0,0 +1,67 @@
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 = {
specVersion = "1.10";
identifier = { name = "remote-iserv"; version = "8.6.5"; };
license = "BSD-3-Clause";
copyright = "XXX";
maintainer = "Moritz Angermann <moritz.angermann@gmail.com>";
author = "Moritz Angermann <moritz.angermann@gmail.com>";
homepage = "";
url = "";
synopsis = "iserv allows GHC to delegate Tempalte Haskell computations";
description = "This is a very simple remote runner for iserv, to be used together\nwith iserv-proxy. The foundamental idea is that this this wrapper\nstarts running libiserv on a given port to which iserv-proxy will\nthen connect.";
buildType = "Simple";
};
components = {
exes = {
"remote-iserv" = {
depends = [
(hsPkgs."base" or (buildDepError "base"))
(hsPkgs."libiserv" or (buildDepError "libiserv"))
];
buildable = true;
};
};
};
} // rec { src = (pkgs.lib).mkDefault ./.; }

View File

@ -0,0 +1,111 @@
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 = { integer-simple = false; };
package = {
specVersion = "1.10";
identifier = { name = "bytestring"; version = "0.10.10.0"; };
license = "BSD-3-Clause";
copyright = "Copyright (c) Don Stewart 2005-2009,\n(c) Duncan Coutts 2006-2015,\n(c) David Roundy 2003-2005,\n(c) Jasper Van der Jeugt 2010,\n(c) Simon Meier 2010-2013.";
maintainer = "Duncan Coutts <duncan@community.haskell.org>";
author = "Don Stewart,\nDuncan Coutts";
homepage = "https://github.com/haskell/bytestring";
url = "";
synopsis = "Fast, compact, strict and lazy byte strings with a list interface";
description = "An efficient compact, immutable byte string type (both strict and lazy)\nsuitable for binary or 8-bit character data.\n\nThe 'ByteString' type represents sequences of bytes or 8-bit characters.\nIt is suitable for high performance use, both in terms of large data\nquantities, or high speed requirements. The 'ByteString' functions follow\nthe same style as Haskell\\'s ordinary lists, so it is easy to convert code\nfrom using 'String' to 'ByteString'.\n\nTwo 'ByteString' variants are provided:\n\n* Strict 'ByteString's keep the string as a single large array. This\nmakes them convenient for passing data between C and Haskell.\n\n* Lazy 'ByteString's use a lazy list of strict chunks which makes it\nsuitable for I\\/O streaming tasks.\n\nThe @Char8@ modules provide a character-based view of the same\nunderlying 'ByteString' types. This makes it convenient to handle mixed\nbinary and 8-bit character content (which is common in many file formats\nand network protocols).\n\nThe 'Builder' module provides an efficient way to build up 'ByteString's\nin an ad-hoc way by repeated concatenation. This is ideal for fast\nserialisation or pretty printing.\n\nThere is also a 'ShortByteString' type which has a lower memory overhead\nand can can be converted to or from a 'ByteString', but supports very few\nother operations. It is suitable for keeping many short strings in memory.\n\n'ByteString's are not designed for Unicode. For Unicode strings you should\nuse the 'Text' type from the @text@ package.\n\nThese modules are intended to be imported qualified, to avoid name clashes\nwith \"Prelude\" functions, e.g.\n\n> import qualified Data.ByteString as BS";
buildType = "Simple";
};
components = {
"library" = {
depends = ([
(hsPkgs."base" or (buildDepError "base"))
(hsPkgs."ghc-prim" or (buildDepError "ghc-prim"))
(hsPkgs."deepseq" or (buildDepError "deepseq"))
] ++ (pkgs.lib).optionals (compiler.isGhc && (compiler.version).ge "6.11") ((pkgs.lib).optional (!flags.integer-simple) (hsPkgs."integer-gmp" or (buildDepError "integer-gmp")))) ++ (pkgs.lib).optional (compiler.isGhc && (compiler.version).ge "6.9" && (compiler.isGhc && (compiler.version).lt "6.11")) (hsPkgs."integer" or (buildDepError "integer"));
buildable = true;
};
tests = {
"prop-compiled" = {
depends = [
(hsPkgs."base" or (buildDepError "base"))
(hsPkgs."ghc-prim" or (buildDepError "ghc-prim"))
(hsPkgs."deepseq" or (buildDepError "deepseq"))
(hsPkgs."random" or (buildDepError "random"))
(hsPkgs."directory" or (buildDepError "directory"))
(hsPkgs."test-framework" or (buildDepError "test-framework"))
(hsPkgs."test-framework-quickcheck2" or (buildDepError "test-framework-quickcheck2"))
(hsPkgs."QuickCheck" or (buildDepError "QuickCheck"))
];
buildable = true;
};
"regressions" = {
depends = [
(hsPkgs."base" or (buildDepError "base"))
(hsPkgs."ghc-prim" or (buildDepError "ghc-prim"))
(hsPkgs."deepseq" or (buildDepError "deepseq"))
(hsPkgs."random" or (buildDepError "random"))
(hsPkgs."directory" or (buildDepError "directory"))
(hsPkgs."test-framework" or (buildDepError "test-framework"))
(hsPkgs."test-framework-hunit" or (buildDepError "test-framework-hunit"))
(hsPkgs."HUnit" or (buildDepError "HUnit"))
];
buildable = false;
};
"test-builder" = {
depends = [
(hsPkgs."base" or (buildDepError "base"))
(hsPkgs."ghc-prim" or (buildDepError "ghc-prim"))
(hsPkgs."deepseq" or (buildDepError "deepseq"))
(hsPkgs."QuickCheck" or (buildDepError "QuickCheck"))
(hsPkgs."byteorder" or (buildDepError "byteorder"))
(hsPkgs."dlist" or (buildDepError "dlist"))
(hsPkgs."directory" or (buildDepError "directory"))
(hsPkgs."mtl" or (buildDepError "mtl"))
(hsPkgs."HUnit" or (buildDepError "HUnit"))
(hsPkgs."test-framework" or (buildDepError "test-framework"))
(hsPkgs."test-framework-hunit" or (buildDepError "test-framework-hunit"))
(hsPkgs."test-framework-quickcheck2" or (buildDepError "test-framework-quickcheck2"))
];
buildable = true;
};
};
};
} // rec { src = (pkgs.lib).mkDefault ./.; }

View File

@ -0,0 +1,69 @@
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 = {
specVersion = "1.22";
identifier = { name = "ghc-boot"; version = "8.8.2"; };
license = "BSD-3-Clause";
copyright = "";
maintainer = "ghc-devs@haskell.org";
author = "";
homepage = "";
url = "";
synopsis = "Shared functionality between GHC and its boot libraries";
description = "This library is shared between GHC, ghc-pkg, and other boot\nlibraries.\n\nA note about \"GHC.PackageDb\": it only deals with the subset of\nthe package database that the compiler cares about: modules\npaths etc and not package metadata like description, authors\netc. It is thus not a library interface to ghc-pkg and is *not*\nsuitable for modifying GHC package databases.\n\nThe package database format and this library are constructed in\nsuch a way that while ghc-pkg depends on Cabal, the GHC library\nand program do not have to depend on Cabal.";
buildType = "Simple";
};
components = {
"library" = {
depends = [
(hsPkgs."base" or (buildDepError "base"))
(hsPkgs."binary" or (buildDepError "binary"))
(hsPkgs."bytestring" or (buildDepError "bytestring"))
(hsPkgs."directory" or (buildDepError "directory"))
(hsPkgs."filepath" or (buildDepError "filepath"))
(hsPkgs."ghc-boot-th" or (buildDepError "ghc-boot-th"))
];
buildable = true;
};
};
} // rec { src = (pkgs.lib).mkDefault ./.; }

View File

@ -0,0 +1,96 @@
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 = {
ghci = false;
stage1 = false;
stage2 = true;
stage3 = false;
terminfo = true;
integer-simple = false;
integer-gmp = false;
};
package = {
specVersion = "1.10";
identifier = { name = "ghc"; version = "8.8.2"; };
license = "BSD-3-Clause";
copyright = "";
maintainer = "glasgow-haskell-users@haskell.org";
author = "The GHC Team";
homepage = "http://www.haskell.org/ghc/";
url = "";
synopsis = "The GHC API";
description = "GHC's functionality can be useful for more things than just\ncompiling Haskell programs. Important use cases are programs\nthat analyse (and perhaps transform) Haskell code. Others\ninclude loading Haskell code dynamically in a GHCi-like manner.\nFor this reason, a lot of GHC's functionality is made available\nthrough this package.";
buildType = "Simple";
};
components = {
"library" = {
depends = ((([
(hsPkgs."base" or (buildDepError "base"))
(hsPkgs."deepseq" or (buildDepError "deepseq"))
(hsPkgs."directory" or (buildDepError "directory"))
(hsPkgs."process" or (buildDepError "process"))
(hsPkgs."bytestring" or (buildDepError "bytestring"))
(hsPkgs."binary" or (buildDepError "binary"))
(hsPkgs."time" or (buildDepError "time"))
(hsPkgs."containers" or (buildDepError "containers"))
(hsPkgs."array" or (buildDepError "array"))
(hsPkgs."filepath" or (buildDepError "filepath"))
(hsPkgs."template-haskell" or (buildDepError "template-haskell"))
(hsPkgs."hpc" or (buildDepError "hpc"))
(hsPkgs."transformers" or (buildDepError "transformers"))
(hsPkgs."ghc-boot" or (buildDepError "ghc-boot"))
(hsPkgs."ghc-boot-th" or (buildDepError "ghc-boot-th"))
(hsPkgs."ghc-heap" or (buildDepError "ghc-heap"))
(hsPkgs."ghci" or (buildDepError "ghci"))
] ++ (if system.isWindows
then [ (hsPkgs."Win32" or (buildDepError "Win32")) ]
else [
(hsPkgs."unix" or (buildDepError "unix"))
] ++ (pkgs.lib).optional (flags.terminfo) (hsPkgs."terminfo" or (buildDepError "terminfo")))) ++ (pkgs.lib).optional (flags.integer-gmp && flags.integer-simple) (hsPkgs."invalid-cabal-flag-settings" or (buildDepError "invalid-cabal-flag-settings"))) ++ (pkgs.lib).optional (flags.integer-gmp) (hsPkgs."integer-gmp" or (buildDepError "integer-gmp"))) ++ (pkgs.lib).optional (flags.integer-simple) (hsPkgs."integer-simple" or (buildDepError "integer-simple"));
build-tools = [
(hsPkgs.buildPackages.alex or (pkgs.buildPackages.alex or (buildToolDepError "alex")))
(hsPkgs.buildPackages.happy or (pkgs.buildPackages.happy or (buildToolDepError "happy")))
];
buildable = true;
};
};
} // rec { src = (pkgs.lib).mkDefault ./.; }

View File

@ -0,0 +1,75 @@
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 = { ghci = false; };
package = {
specVersion = "1.10";
identifier = { name = "ghci"; version = "8.8.2"; };
license = "BSD-3-Clause";
copyright = "";
maintainer = "ghc-devs@haskell.org";
author = "";
homepage = "";
url = "";
synopsis = "The library supporting GHC's interactive interpreter";
description = "This library offers interfaces which mediate interactions between the\n@ghci@ interactive shell and @iserv@, GHC's out-of-process interpreter\nbackend.";
buildType = "Simple";
};
components = {
"library" = {
depends = [
(hsPkgs."array" or (buildDepError "array"))
(hsPkgs."base" or (buildDepError "base"))
(hsPkgs."binary" or (buildDepError "binary"))
(hsPkgs."bytestring" or (buildDepError "bytestring"))
(hsPkgs."containers" or (buildDepError "containers"))
(hsPkgs."deepseq" or (buildDepError "deepseq"))
(hsPkgs."filepath" or (buildDepError "filepath"))
(hsPkgs."ghc-boot" or (buildDepError "ghc-boot"))
(hsPkgs."ghc-boot-th" or (buildDepError "ghc-boot-th"))
(hsPkgs."ghc-heap" or (buildDepError "ghc-heap"))
(hsPkgs."template-haskell" or (buildDepError "template-haskell"))
(hsPkgs."transformers" or (buildDepError "transformers"))
] ++ (pkgs.lib).optional (!system.isWindows) (hsPkgs."unix" or (buildDepError "unix"));
buildable = true;
};
};
} // rec { src = (pkgs.lib).mkDefault ./.; }

View File

@ -0,0 +1,76 @@
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 = {
specVersion = "1.10";
identifier = { name = "iserv-proxy"; version = "8.8.2"; };
license = "BSD-3-Clause";
copyright = "XXX";
maintainer = "XXX";
author = "XXX";
homepage = "";
url = "";
synopsis = "iserv allows GHC to delegate Tempalte Haskell computations";
description = "GHC can be provided with a path to the iserv binary with\n@-pgmi=/path/to/iserv-bin@, and will in combination with\n@-fexternal-interpreter@, compile Template Haskell though the\n@iserv-bin@ delegate. This is very similar to how ghcjs has been\ncompiling Template Haskell, by spawning a separate delegate (so\ncalled runner on the javascript vm) and evaluating the splices\nthere.\n\niserv can also be used in combination with cross compilation. For\nthis, the @iserv-proxy@ needs to be built on the host, targeting the\nhost (as it is running on the host). @cabal install -flibrary\n-fproxy@ will yield the proxy.\n\nUsing the cabal for the target @arch-platform-target-cabal install\n-flibrary@ will build the required library that contains the ffi\n@startSlave@ function, which needs to be invoked on the target\n(e.g. in an iOS application) to start the remote iserv slave.\n\ncalling the GHC cross compiler with @-fexternal-interpreter\n-pgmi=\$HOME/.cabal/bin/iserv-proxy -opti\\<ip address\\> -opti\\<port\\>@\nwill cause it to compile Template Haskell via the remote at \\<ip address\\>.\n\nThus to get cross compilation with Template Haskell follow the\nfollowing receipt:\n\n* compile the iserv library for your target\n\n> iserv \$ arch-platform-target-cabal install -flibrary\n\n* setup an application for your target that calls the\n* startSlave function. This could be either haskell or your\n* targets ffi capable language, if needed.\n\n> void startSlave(false /* verbose */, 5000 /* port */,\n> \"/path/to/storagelocation/on/target\");\n\n* build the iserv-proxy\n\n> iserv \$ cabal install -flibrary -fproxy\n* Start your iserv-slave app on your target running on say @10.0.0.1:5000@\n* compiler your sources with -fexternal-interpreter and the proxy\n\n> project \$ arch-platform-target-ghc ModuleContainingTH.hs \\\n> -fexternal-interpreter \\\n> -pgmi=\$HOME/.cabal/bin/iserv-proxy \\\n> -opti10.0.0.1 -opti5000\n\nShould something not work as expected, provide @-opti-v@ for verbose\nlogging of the @iserv-proxy@.";
buildType = "Simple";
};
components = {
exes = {
"iserv-proxy" = {
depends = [
(hsPkgs."array" or (buildDepError "array"))
(hsPkgs."base" or (buildDepError "base"))
(hsPkgs."binary" or (buildDepError "binary"))
(hsPkgs."bytestring" or (buildDepError "bytestring"))
(hsPkgs."containers" or (buildDepError "containers"))
(hsPkgs."deepseq" or (buildDepError "deepseq"))
(hsPkgs."directory" or (buildDepError "directory"))
(hsPkgs."network" or (buildDepError "network"))
(hsPkgs."filepath" or (buildDepError "filepath"))
(hsPkgs."ghci" or (buildDepError "ghci"))
(hsPkgs."libiserv" or (buildDepError "libiserv"))
];
buildable = true;
};
};
};
} // rec { src = (pkgs.lib).mkDefault ./.; }

View File

@ -0,0 +1,73 @@
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 = {
specVersion = "1.10";
identifier = { name = "iserv"; version = "8.8.2"; };
license = "BSD-3-Clause";
copyright = "XXX";
maintainer = "XXX";
author = "XXX";
homepage = "";
url = "";
synopsis = "iserv allows GHC to delegate Template Haskell computations";
description = "GHC can be provided with a path to the iserv binary with\n@-pgmi=/path/to/iserv-bin@, and will in combination with\n@-fexternal-interpreter@, compile Template Haskell though the\n@iserv-bin@ delegate. This is very similar to how ghcjs has been\ncompiling Template Haskell, by spawning a separate delegate (so\ncalled runner on the javascript vm) and evaluating the splices\nthere.\n\nTo use iserv with cross compilers, please see @libraries/libiserv@\nand @utils/iserv-proxy@.";
buildType = "Simple";
};
components = {
exes = {
"iserv" = {
depends = [
(hsPkgs."array" or (buildDepError "array"))
(hsPkgs."base" or (buildDepError "base"))
(hsPkgs."binary" or (buildDepError "binary"))
(hsPkgs."bytestring" or (buildDepError "bytestring"))
(hsPkgs."containers" or (buildDepError "containers"))
(hsPkgs."deepseq" or (buildDepError "deepseq"))
(hsPkgs."ghci" or (buildDepError "ghci"))
(hsPkgs."libiserv" or (buildDepError "libiserv"))
] ++ (pkgs.lib).optional (!system.isWindows) (hsPkgs."unix" or (buildDepError "unix"));
buildable = true;
};
};
};
} // rec { src = (pkgs.lib).mkDefault ./.; }

View File

@ -0,0 +1,73 @@
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 = { network = false; };
package = {
specVersion = "1.10";
identifier = { name = "libiserv"; version = "8.8.2"; };
license = "BSD-3-Clause";
copyright = "XXX";
maintainer = "XXX";
author = "XXX";
homepage = "";
url = "";
synopsis = "Provides shared functionality between iserv and iserv-proxy";
description = "";
buildType = "Simple";
};
components = {
"library" = {
depends = ([
(hsPkgs."base" or (buildDepError "base"))
(hsPkgs."binary" or (buildDepError "binary"))
(hsPkgs."bytestring" or (buildDepError "bytestring"))
(hsPkgs."containers" or (buildDepError "containers"))
(hsPkgs."deepseq" or (buildDepError "deepseq"))
(hsPkgs."ghci" or (buildDepError "ghci"))
] ++ (pkgs.lib).optionals (flags.network) [
(hsPkgs."network" or (buildDepError "network"))
(hsPkgs."directory" or (buildDepError "directory"))
(hsPkgs."filepath" or (buildDepError "filepath"))
]) ++ (pkgs.lib).optional (!system.isWindows) (hsPkgs."unix" or (buildDepError "unix"));
buildable = true;
};
};
} // rec { src = (pkgs.lib).mkDefault ./.; }

View File

@ -0,0 +1,67 @@
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 = {
specVersion = "1.10";
identifier = { name = "remote-iserv"; version = "8.8.2"; };
license = "BSD-3-Clause";
copyright = "XXX";
maintainer = "Moritz Angermann <moritz.angermann@gmail.com>";
author = "Moritz Angermann <moritz.angermann@gmail.com>";
homepage = "";
url = "";
synopsis = "iserv allows GHC to delegate Tempalte Haskell computations";
description = "This is a very simple remote runner for iserv, to be used together\nwith iserv-proxy. The foundamental idea is that this this wrapper\nstarts running libiserv on a given port to which iserv-proxy will\nthen connect.";
buildType = "Simple";
};
components = {
exes = {
"remote-iserv" = {
depends = [
(hsPkgs."base" or (buildDepError "base"))
(hsPkgs."libiserv" or (buildDepError "libiserv"))
];
buildable = true;
};
};
};
} // rec { src = (pkgs.lib).mkDefault ./.; }

View File

@ -0,0 +1,111 @@
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 = { integer-simple = false; };
package = {
specVersion = "1.10";
identifier = { name = "bytestring"; version = "0.10.10.0"; };
license = "BSD-3-Clause";
copyright = "Copyright (c) Don Stewart 2005-2009,\n(c) Duncan Coutts 2006-2015,\n(c) David Roundy 2003-2005,\n(c) Jasper Van der Jeugt 2010,\n(c) Simon Meier 2010-2013.";
maintainer = "Duncan Coutts <duncan@community.haskell.org>";
author = "Don Stewart,\nDuncan Coutts";
homepage = "https://github.com/haskell/bytestring";
url = "";
synopsis = "Fast, compact, strict and lazy byte strings with a list interface";
description = "An efficient compact, immutable byte string type (both strict and lazy)\nsuitable for binary or 8-bit character data.\n\nThe 'ByteString' type represents sequences of bytes or 8-bit characters.\nIt is suitable for high performance use, both in terms of large data\nquantities, or high speed requirements. The 'ByteString' functions follow\nthe same style as Haskell\\'s ordinary lists, so it is easy to convert code\nfrom using 'String' to 'ByteString'.\n\nTwo 'ByteString' variants are provided:\n\n* Strict 'ByteString's keep the string as a single large array. This\nmakes them convenient for passing data between C and Haskell.\n\n* Lazy 'ByteString's use a lazy list of strict chunks which makes it\nsuitable for I\\/O streaming tasks.\n\nThe @Char8@ modules provide a character-based view of the same\nunderlying 'ByteString' types. This makes it convenient to handle mixed\nbinary and 8-bit character content (which is common in many file formats\nand network protocols).\n\nThe 'Builder' module provides an efficient way to build up 'ByteString's\nin an ad-hoc way by repeated concatenation. This is ideal for fast\nserialisation or pretty printing.\n\nThere is also a 'ShortByteString' type which has a lower memory overhead\nand can can be converted to or from a 'ByteString', but supports very few\nother operations. It is suitable for keeping many short strings in memory.\n\n'ByteString's are not designed for Unicode. For Unicode strings you should\nuse the 'Text' type from the @text@ package.\n\nThese modules are intended to be imported qualified, to avoid name clashes\nwith \"Prelude\" functions, e.g.\n\n> import qualified Data.ByteString as BS";
buildType = "Simple";
};
components = {
"library" = {
depends = ([
(hsPkgs."base" or (buildDepError "base"))
(hsPkgs."ghc-prim" or (buildDepError "ghc-prim"))
(hsPkgs."deepseq" or (buildDepError "deepseq"))
] ++ (pkgs.lib).optionals (compiler.isGhc && (compiler.version).ge "6.11") ((pkgs.lib).optional (!flags.integer-simple) (hsPkgs."integer-gmp" or (buildDepError "integer-gmp")))) ++ (pkgs.lib).optional (compiler.isGhc && (compiler.version).ge "6.9" && (compiler.isGhc && (compiler.version).lt "6.11")) (hsPkgs."integer" or (buildDepError "integer"));
buildable = true;
};
tests = {
"prop-compiled" = {
depends = [
(hsPkgs."base" or (buildDepError "base"))
(hsPkgs."ghc-prim" or (buildDepError "ghc-prim"))
(hsPkgs."deepseq" or (buildDepError "deepseq"))
(hsPkgs."random" or (buildDepError "random"))
(hsPkgs."directory" or (buildDepError "directory"))
(hsPkgs."test-framework" or (buildDepError "test-framework"))
(hsPkgs."test-framework-quickcheck2" or (buildDepError "test-framework-quickcheck2"))
(hsPkgs."QuickCheck" or (buildDepError "QuickCheck"))
];
buildable = true;
};
"regressions" = {
depends = [
(hsPkgs."base" or (buildDepError "base"))
(hsPkgs."ghc-prim" or (buildDepError "ghc-prim"))
(hsPkgs."deepseq" or (buildDepError "deepseq"))
(hsPkgs."random" or (buildDepError "random"))
(hsPkgs."directory" or (buildDepError "directory"))
(hsPkgs."test-framework" or (buildDepError "test-framework"))
(hsPkgs."test-framework-hunit" or (buildDepError "test-framework-hunit"))
(hsPkgs."HUnit" or (buildDepError "HUnit"))
];
buildable = false;
};
"test-builder" = {
depends = [
(hsPkgs."base" or (buildDepError "base"))
(hsPkgs."ghc-prim" or (buildDepError "ghc-prim"))
(hsPkgs."deepseq" or (buildDepError "deepseq"))
(hsPkgs."QuickCheck" or (buildDepError "QuickCheck"))
(hsPkgs."byteorder" or (buildDepError "byteorder"))
(hsPkgs."dlist" or (buildDepError "dlist"))
(hsPkgs."directory" or (buildDepError "directory"))
(hsPkgs."mtl" or (buildDepError "mtl"))
(hsPkgs."HUnit" or (buildDepError "HUnit"))
(hsPkgs."test-framework" or (buildDepError "test-framework"))
(hsPkgs."test-framework-hunit" or (buildDepError "test-framework-hunit"))
(hsPkgs."test-framework-quickcheck2" or (buildDepError "test-framework-quickcheck2"))
];
buildable = true;
};
};
};
} // rec { src = (pkgs.lib).mkDefault ./.; }

View File

@ -0,0 +1,69 @@
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 = {
specVersion = "1.22";
identifier = { name = "ghc-boot"; version = "8.8.3"; };
license = "BSD-3-Clause";
copyright = "";
maintainer = "ghc-devs@haskell.org";
author = "";
homepage = "";
url = "";
synopsis = "Shared functionality between GHC and its boot libraries";
description = "This library is shared between GHC, ghc-pkg, and other boot\nlibraries.\n\nA note about \"GHC.PackageDb\": it only deals with the subset of\nthe package database that the compiler cares about: modules\npaths etc and not package metadata like description, authors\netc. It is thus not a library interface to ghc-pkg and is *not*\nsuitable for modifying GHC package databases.\n\nThe package database format and this library are constructed in\nsuch a way that while ghc-pkg depends on Cabal, the GHC library\nand program do not have to depend on Cabal.";
buildType = "Simple";
};
components = {
"library" = {
depends = [
(hsPkgs."base" or (buildDepError "base"))
(hsPkgs."binary" or (buildDepError "binary"))
(hsPkgs."bytestring" or (buildDepError "bytestring"))
(hsPkgs."directory" or (buildDepError "directory"))
(hsPkgs."filepath" or (buildDepError "filepath"))
(hsPkgs."ghc-boot-th" or (buildDepError "ghc-boot-th"))
];
buildable = true;
};
};
} // rec { src = (pkgs.lib).mkDefault ./.; }

View File

@ -0,0 +1,96 @@
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 = {
ghci = false;
stage1 = false;
stage2 = true;
stage3 = false;
terminfo = true;
integer-simple = false;
integer-gmp = false;
};
package = {
specVersion = "1.10";
identifier = { name = "ghc"; version = "8.8.3"; };
license = "BSD-3-Clause";
copyright = "";
maintainer = "glasgow-haskell-users@haskell.org";
author = "The GHC Team";
homepage = "http://www.haskell.org/ghc/";
url = "";
synopsis = "The GHC API";
description = "GHC's functionality can be useful for more things than just\ncompiling Haskell programs. Important use cases are programs\nthat analyse (and perhaps transform) Haskell code. Others\ninclude loading Haskell code dynamically in a GHCi-like manner.\nFor this reason, a lot of GHC's functionality is made available\nthrough this package.";
buildType = "Simple";
};
components = {
"library" = {
depends = ((([
(hsPkgs."base" or (buildDepError "base"))
(hsPkgs."deepseq" or (buildDepError "deepseq"))
(hsPkgs."directory" or (buildDepError "directory"))
(hsPkgs."process" or (buildDepError "process"))
(hsPkgs."bytestring" or (buildDepError "bytestring"))
(hsPkgs."binary" or (buildDepError "binary"))
(hsPkgs."time" or (buildDepError "time"))
(hsPkgs."containers" or (buildDepError "containers"))
(hsPkgs."array" or (buildDepError "array"))
(hsPkgs."filepath" or (buildDepError "filepath"))
(hsPkgs."template-haskell" or (buildDepError "template-haskell"))
(hsPkgs."hpc" or (buildDepError "hpc"))
(hsPkgs."transformers" or (buildDepError "transformers"))
(hsPkgs."ghc-boot" or (buildDepError "ghc-boot"))
(hsPkgs."ghc-boot-th" or (buildDepError "ghc-boot-th"))
(hsPkgs."ghc-heap" or (buildDepError "ghc-heap"))
(hsPkgs."ghci" or (buildDepError "ghci"))
] ++ (if system.isWindows
then [ (hsPkgs."Win32" or (buildDepError "Win32")) ]
else [
(hsPkgs."unix" or (buildDepError "unix"))
] ++ (pkgs.lib).optional (flags.terminfo) (hsPkgs."terminfo" or (buildDepError "terminfo")))) ++ (pkgs.lib).optional (flags.integer-gmp && flags.integer-simple) (hsPkgs."invalid-cabal-flag-settings" or (buildDepError "invalid-cabal-flag-settings"))) ++ (pkgs.lib).optional (flags.integer-gmp) (hsPkgs."integer-gmp" or (buildDepError "integer-gmp"))) ++ (pkgs.lib).optional (flags.integer-simple) (hsPkgs."integer-simple" or (buildDepError "integer-simple"));
build-tools = [
(hsPkgs.buildPackages.alex or (pkgs.buildPackages.alex or (buildToolDepError "alex")))
(hsPkgs.buildPackages.happy or (pkgs.buildPackages.happy or (buildToolDepError "happy")))
];
buildable = true;
};
};
} // rec { src = (pkgs.lib).mkDefault ./.; }

View File

@ -0,0 +1,75 @@
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 = { ghci = false; };
package = {
specVersion = "1.10";
identifier = { name = "ghci"; version = "8.8.3"; };
license = "BSD-3-Clause";
copyright = "";
maintainer = "ghc-devs@haskell.org";
author = "";
homepage = "";
url = "";
synopsis = "The library supporting GHC's interactive interpreter";
description = "This library offers interfaces which mediate interactions between the\n@ghci@ interactive shell and @iserv@, GHC's out-of-process interpreter\nbackend.";
buildType = "Simple";
};
components = {
"library" = {
depends = [
(hsPkgs."array" or (buildDepError "array"))
(hsPkgs."base" or (buildDepError "base"))
(hsPkgs."binary" or (buildDepError "binary"))
(hsPkgs."bytestring" or (buildDepError "bytestring"))
(hsPkgs."containers" or (buildDepError "containers"))
(hsPkgs."deepseq" or (buildDepError "deepseq"))
(hsPkgs."filepath" or (buildDepError "filepath"))
(hsPkgs."ghc-boot" or (buildDepError "ghc-boot"))
(hsPkgs."ghc-boot-th" or (buildDepError "ghc-boot-th"))
(hsPkgs."ghc-heap" or (buildDepError "ghc-heap"))
(hsPkgs."template-haskell" or (buildDepError "template-haskell"))
(hsPkgs."transformers" or (buildDepError "transformers"))
] ++ (pkgs.lib).optional (!system.isWindows) (hsPkgs."unix" or (buildDepError "unix"));
buildable = true;
};
};
} // rec { src = (pkgs.lib).mkDefault ./.; }

View File

@ -0,0 +1,76 @@
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 = {
specVersion = "1.10";
identifier = { name = "iserv-proxy"; version = "8.8.3"; };
license = "BSD-3-Clause";
copyright = "XXX";
maintainer = "XXX";
author = "XXX";
homepage = "";
url = "";
synopsis = "iserv allows GHC to delegate Tempalte Haskell computations";
description = "GHC can be provided with a path to the iserv binary with\n@-pgmi=/path/to/iserv-bin@, and will in combination with\n@-fexternal-interpreter@, compile Template Haskell though the\n@iserv-bin@ delegate. This is very similar to how ghcjs has been\ncompiling Template Haskell, by spawning a separate delegate (so\ncalled runner on the javascript vm) and evaluating the splices\nthere.\n\niserv can also be used in combination with cross compilation. For\nthis, the @iserv-proxy@ needs to be built on the host, targeting the\nhost (as it is running on the host). @cabal install -flibrary\n-fproxy@ will yield the proxy.\n\nUsing the cabal for the target @arch-platform-target-cabal install\n-flibrary@ will build the required library that contains the ffi\n@startSlave@ function, which needs to be invoked on the target\n(e.g. in an iOS application) to start the remote iserv slave.\n\ncalling the GHC cross compiler with @-fexternal-interpreter\n-pgmi=\$HOME/.cabal/bin/iserv-proxy -opti\\<ip address\\> -opti\\<port\\>@\nwill cause it to compile Template Haskell via the remote at \\<ip address\\>.\n\nThus to get cross compilation with Template Haskell follow the\nfollowing receipt:\n\n* compile the iserv library for your target\n\n> iserv \$ arch-platform-target-cabal install -flibrary\n\n* setup an application for your target that calls the\n* startSlave function. This could be either haskell or your\n* targets ffi capable language, if needed.\n\n> void startSlave(false /* verbose */, 5000 /* port */,\n> \"/path/to/storagelocation/on/target\");\n\n* build the iserv-proxy\n\n> iserv \$ cabal install -flibrary -fproxy\n* Start your iserv-slave app on your target running on say @10.0.0.1:5000@\n* compiler your sources with -fexternal-interpreter and the proxy\n\n> project \$ arch-platform-target-ghc ModuleContainingTH.hs \\\n> -fexternal-interpreter \\\n> -pgmi=\$HOME/.cabal/bin/iserv-proxy \\\n> -opti10.0.0.1 -opti5000\n\nShould something not work as expected, provide @-opti-v@ for verbose\nlogging of the @iserv-proxy@.";
buildType = "Simple";
};
components = {
exes = {
"iserv-proxy" = {
depends = [
(hsPkgs."array" or (buildDepError "array"))
(hsPkgs."base" or (buildDepError "base"))
(hsPkgs."binary" or (buildDepError "binary"))
(hsPkgs."bytestring" or (buildDepError "bytestring"))
(hsPkgs."containers" or (buildDepError "containers"))
(hsPkgs."deepseq" or (buildDepError "deepseq"))
(hsPkgs."directory" or (buildDepError "directory"))
(hsPkgs."network" or (buildDepError "network"))
(hsPkgs."filepath" or (buildDepError "filepath"))
(hsPkgs."ghci" or (buildDepError "ghci"))
(hsPkgs."libiserv" or (buildDepError "libiserv"))
];
buildable = true;
};
};
};
} // rec { src = (pkgs.lib).mkDefault ./.; }

View File

@ -0,0 +1,73 @@
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 = {
specVersion = "1.10";
identifier = { name = "iserv"; version = "8.8.3"; };
license = "BSD-3-Clause";
copyright = "XXX";
maintainer = "XXX";
author = "XXX";
homepage = "";
url = "";
synopsis = "iserv allows GHC to delegate Template Haskell computations";
description = "GHC can be provided with a path to the iserv binary with\n@-pgmi=/path/to/iserv-bin@, and will in combination with\n@-fexternal-interpreter@, compile Template Haskell though the\n@iserv-bin@ delegate. This is very similar to how ghcjs has been\ncompiling Template Haskell, by spawning a separate delegate (so\ncalled runner on the javascript vm) and evaluating the splices\nthere.\n\nTo use iserv with cross compilers, please see @libraries/libiserv@\nand @utils/iserv-proxy@.";
buildType = "Simple";
};
components = {
exes = {
"iserv" = {
depends = [
(hsPkgs."array" or (buildDepError "array"))
(hsPkgs."base" or (buildDepError "base"))
(hsPkgs."binary" or (buildDepError "binary"))
(hsPkgs."bytestring" or (buildDepError "bytestring"))
(hsPkgs."containers" or (buildDepError "containers"))
(hsPkgs."deepseq" or (buildDepError "deepseq"))
(hsPkgs."ghci" or (buildDepError "ghci"))
(hsPkgs."libiserv" or (buildDepError "libiserv"))
] ++ (pkgs.lib).optional (!system.isWindows) (hsPkgs."unix" or (buildDepError "unix"));
buildable = true;
};
};
};
} // rec { src = (pkgs.lib).mkDefault ./.; }

View File

@ -0,0 +1,73 @@
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 = { network = false; };
package = {
specVersion = "1.10";
identifier = { name = "libiserv"; version = "8.8.3"; };
license = "BSD-3-Clause";
copyright = "XXX";
maintainer = "XXX";
author = "XXX";
homepage = "";
url = "";
synopsis = "Provides shared functionality between iserv and iserv-proxy";
description = "";
buildType = "Simple";
};
components = {
"library" = {
depends = ([
(hsPkgs."base" or (buildDepError "base"))
(hsPkgs."binary" or (buildDepError "binary"))
(hsPkgs."bytestring" or (buildDepError "bytestring"))
(hsPkgs."containers" or (buildDepError "containers"))
(hsPkgs."deepseq" or (buildDepError "deepseq"))
(hsPkgs."ghci" or (buildDepError "ghci"))
] ++ (pkgs.lib).optionals (flags.network) [
(hsPkgs."network" or (buildDepError "network"))
(hsPkgs."directory" or (buildDepError "directory"))
(hsPkgs."filepath" or (buildDepError "filepath"))
]) ++ (pkgs.lib).optional (!system.isWindows) (hsPkgs."unix" or (buildDepError "unix"));
buildable = true;
};
};
} // rec { src = (pkgs.lib).mkDefault ./.; }

View File

@ -0,0 +1,67 @@
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 = {
specVersion = "1.10";
identifier = { name = "remote-iserv"; version = "8.8.3"; };
license = "BSD-3-Clause";
copyright = "XXX";
maintainer = "Moritz Angermann <moritz.angermann@gmail.com>";
author = "Moritz Angermann <moritz.angermann@gmail.com>";
homepage = "";
url = "";
synopsis = "iserv allows GHC to delegate Tempalte Haskell computations";
description = "This is a very simple remote runner for iserv, to be used together\nwith iserv-proxy. The foundamental idea is that this this wrapper\nstarts running libiserv on a given port to which iserv-proxy will\nthen connect.";
buildType = "Simple";
};
components = {
exes = {
"remote-iserv" = {
depends = [
(hsPkgs."base" or (buildDepError "base"))
(hsPkgs."libiserv" or (buildDepError "libiserv"))
];
buildable = true;
};
};
};
} // rec { src = (pkgs.lib).mkDefault ./.; }

View File

@ -0,0 +1,167 @@
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 = { integer-simple = false; };
package = {
specVersion = "1.10";
identifier = { name = "bytestring"; version = "0.10.8.2"; };
license = "BSD-3-Clause";
copyright = "Copyright (c) Don Stewart 2005-2009,\n(c) Duncan Coutts 2006-2015,\n(c) David Roundy 2003-2005,\n(c) Jasper Van der Jeugt 2010,\n(c) Simon Meier 2010-2013.";
maintainer = "Duncan Coutts <duncan@community.haskell.org>";
author = "Don Stewart,\nDuncan Coutts";
homepage = "https://github.com/haskell/bytestring";
url = "";
synopsis = "Fast, compact, strict and lazy byte strings with a list interface";
description = "An efficient compact, immutable byte string type (both strict and lazy)\nsuitable for binary or 8-bit character data.\n\nThe 'ByteString' type represents sequences of bytes or 8-bit characters.\nIt is suitable for high performance use, both in terms of large data\nquantities, or high speed requirements. The 'ByteString' functions follow\nthe same style as Haskell\\'s ordinary lists, so it is easy to convert code\nfrom using 'String' to 'ByteString'.\n\nTwo 'ByteString' variants are provided:\n\n* Strict 'ByteString's keep the string as a single large array. This\nmakes them convenient for passing data between C and Haskell.\n\n* Lazy 'ByteString's use a lazy list of strict chunks which makes it\nsuitable for I\\/O streaming tasks.\n\nThe @Char8@ modules provide a character-based view of the same\nunderlying 'ByteString' types. This makes it convenient to handle mixed\nbinary and 8-bit character content (which is common in many file formats\nand network protocols).\n\nThe 'Builder' module provides an efficient way to build up 'ByteString's\nin an ad-hoc way by repeated concatenation. This is ideal for fast\nserialisation or pretty printing.\n\nThere is also a 'ShortByteString' type which has a lower memory overhead\nand can can be converted to or from a 'ByteString', but supports very few\nother operations. It is suitable for keeping many short strings in memory.\n\n'ByteString's are not designed for Unicode. For Unicode strings you should\nuse the 'Text' type from the @text@ package.\n\nThese modules are intended to be imported qualified, to avoid name clashes\nwith \"Prelude\" functions, e.g.\n\n> import qualified Data.ByteString as BS";
buildType = "Simple";
isLocal = true;
detailLevel = "FullDetails";
licenseFiles = [ "LICENSE" ];
dataDir = "";
dataFiles = [];
extraSrcFiles = [ "README.md" "Changelog.md" ];
extraTmpFiles = [];
extraDocFiles = [];
};
components = {
"library" = {
depends = ([
(hsPkgs."base" or (buildDepError "base"))
(hsPkgs."ghc-prim" or (buildDepError "ghc-prim"))
(hsPkgs."deepseq" or (buildDepError "deepseq"))
] ++ (pkgs.lib).optionals (compiler.isGhc && (compiler.version).ge "6.11") ((pkgs.lib).optional (!flags.integer-simple) (hsPkgs."integer-gmp" or (buildDepError "integer-gmp")))) ++ (pkgs.lib).optional (compiler.isGhc && (compiler.version).ge "6.9" && (compiler.isGhc && (compiler.version).lt "6.11")) (hsPkgs."integer" or (buildDepError "integer"));
buildable = true;
modules = [
"Data/ByteString/Builder/ASCII"
"Data/ByteString/Builder/Prim/Binary"
"Data/ByteString/Builder/Prim/ASCII"
"Data/ByteString/Builder/Prim/Internal/Floating"
"Data/ByteString/Builder/Prim/Internal/UncheckedShifts"
"Data/ByteString/Builder/Prim/Internal/Base16"
"Data/ByteString"
"Data/ByteString/Char8"
"Data/ByteString/Unsafe"
"Data/ByteString/Internal"
"Data/ByteString/Lazy"
"Data/ByteString/Lazy/Char8"
"Data/ByteString/Lazy/Internal"
"Data/ByteString/Short"
"Data/ByteString/Short/Internal"
"Data/ByteString/Builder"
"Data/ByteString/Builder/Extra"
"Data/ByteString/Builder/Prim"
"Data/ByteString/Builder/Internal"
"Data/ByteString/Builder/Prim/Internal"
"Data/ByteString/Lazy/Builder"
"Data/ByteString/Lazy/Builder/Extras"
"Data/ByteString/Lazy/Builder/ASCII"
];
cSources = [ "cbits/fpstring.c" "cbits/itoa.c" ];
includeDirs = [ "include" ];
includes = [ "fpstring.h" ];
};
tests = {
"prop-compiled" = {
depends = [
(hsPkgs."base" or (buildDepError "base"))
(hsPkgs."ghc-prim" or (buildDepError "ghc-prim"))
(hsPkgs."deepseq" or (buildDepError "deepseq"))
(hsPkgs."random" or (buildDepError "random"))
(hsPkgs."directory" or (buildDepError "directory"))
(hsPkgs."test-framework" or (buildDepError "test-framework"))
(hsPkgs."test-framework-quickcheck2" or (buildDepError "test-framework-quickcheck2"))
(hsPkgs."QuickCheck" or (buildDepError "QuickCheck"))
];
buildable = true;
modules = [ "Rules" "QuickCheckUtils" "TestFramework" ];
cSources = [ "cbits/fpstring.c" ];
hsSourceDirs = [ "." "tests" ];
includeDirs = [ "include" ];
mainPath = [ "Properties.hs" ];
};
"regressions" = {
depends = [
(hsPkgs."base" or (buildDepError "base"))
(hsPkgs."ghc-prim" or (buildDepError "ghc-prim"))
(hsPkgs."deepseq" or (buildDepError "deepseq"))
(hsPkgs."random" or (buildDepError "random"))
(hsPkgs."directory" or (buildDepError "directory"))
(hsPkgs."test-framework" or (buildDepError "test-framework"))
(hsPkgs."test-framework-hunit" or (buildDepError "test-framework-hunit"))
(hsPkgs."HUnit" or (buildDepError "HUnit"))
];
buildable = false;
cSources = [ "cbits/fpstring.c" ];
hsSourceDirs = [ "." "tests" ];
includeDirs = [ "include" ];
mainPath = [ "Regressions.hs" ];
};
"test-builder" = {
depends = [
(hsPkgs."base" or (buildDepError "base"))
(hsPkgs."ghc-prim" or (buildDepError "ghc-prim"))
(hsPkgs."deepseq" or (buildDepError "deepseq"))
(hsPkgs."QuickCheck" or (buildDepError "QuickCheck"))
(hsPkgs."byteorder" or (buildDepError "byteorder"))
(hsPkgs."dlist" or (buildDepError "dlist"))
(hsPkgs."directory" or (buildDepError "directory"))
(hsPkgs."mtl" or (buildDepError "mtl"))
(hsPkgs."HUnit" or (buildDepError "HUnit"))
(hsPkgs."test-framework" or (buildDepError "test-framework"))
(hsPkgs."test-framework-hunit" or (buildDepError "test-framework-hunit"))
(hsPkgs."test-framework-quickcheck2" or (buildDepError "test-framework-quickcheck2"))
];
buildable = true;
modules = [
"Data/ByteString/Builder/Tests"
"Data/ByteString/Builder/Prim/Tests"
"Data/ByteString/Builder/Prim/TestUtils"
"TestFramework"
];
cSources = [ "cbits/fpstring.c" "cbits/itoa.c" ];
hsSourceDirs = [ "." "tests" "tests/builder" ];
includeDirs = [ "include" ];
includes = [ "fpstring.h" ];
mainPath = [ "TestSuite.hs" ];
};
};
};
} // rec { src = (pkgs.lib).mkDefault ../libraries/bytestring; }

View File

@ -0,0 +1,84 @@
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 = {
specVersion = "1.22";
identifier = { name = "ghc-boot"; version = "8.6.5"; };
license = "BSD-3-Clause";
copyright = "";
maintainer = "ghc-devs@haskell.org";
author = "";
homepage = "";
url = "";
synopsis = "Shared functionality between GHC and its boot libraries";
description = "This library is shared between GHC, ghc-pkg, and other boot\nlibraries.\n\nA note about \"GHC.PackageDb\": it only deals with the subset of\nthe package database that the compiler cares about: modules\npaths etc and not package metadata like description, authors\netc. It is thus not a library interface to ghc-pkg and is *not*\nsuitable for modifying GHC package databases.\n\nThe package database format and this library are constructed in\nsuch a way that while ghc-pkg depends on Cabal, the GHC library\nand program do not have to depend on Cabal.";
buildType = "Simple";
isLocal = true;
detailLevel = "FullDetails";
licenseFiles = [ "LICENSE" ];
dataDir = "";
dataFiles = [];
extraSrcFiles = [ "changelog.md" ];
extraTmpFiles = [];
extraDocFiles = [];
};
components = {
"library" = {
depends = [
(hsPkgs."base" or (buildDepError "base"))
(hsPkgs."binary" or (buildDepError "binary"))
(hsPkgs."bytestring" or (buildDepError "bytestring"))
(hsPkgs."directory" or (buildDepError "directory"))
(hsPkgs."filepath" or (buildDepError "filepath"))
(hsPkgs."ghc-boot-th" or (buildDepError "ghc-boot-th"))
];
buildable = true;
modules = [
"GHC/LanguageExtensions"
"GHC/PackageDb"
"GHC/Serialized"
"GHC/ForeignSrcLang"
"GHC/HandleEncoding"
];
};
};
} // rec { src = (pkgs.lib).mkDefault ../libraries/ghc-boot; }

View File

@ -0,0 +1,590 @@
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 = {
ghci = false;
terminfo = true;
stage1 = false;
stage2 = true;
stage3 = false;
};
package = {
specVersion = "1.10";
identifier = { name = "ghc"; version = "8.6.5"; };
license = "BSD-3-Clause";
copyright = "";
maintainer = "glasgow-haskell-users@haskell.org";
author = "The GHC Team";
homepage = "http://www.haskell.org/ghc/";
url = "";
synopsis = "The GHC API";
description = "GHC's functionality can be useful for more things than just\ncompiling Haskell programs. Important use cases are programs\nthat analyse (and perhaps transform) Haskell code. Others\ninclude loading Haskell code dynamically in a GHCi-like manner.\nFor this reason, a lot of GHC's functionality is made available\nthrough this package.";
buildType = "Simple";
isLocal = true;
detailLevel = "FullDetails";
licenseFiles = [ "LICENSE" ];
dataDir = "";
dataFiles = [];
extraSrcFiles = [
"utils/md5.h"
"Unique.h"
"nativeGen/NCG.h"
"parser/cutils.h"
];
extraTmpFiles = [];
extraDocFiles = [];
};
components = {
"library" = {
depends = [
(hsPkgs."base" or (buildDepError "base"))
(hsPkgs."deepseq" or (buildDepError "deepseq"))
(hsPkgs."directory" or (buildDepError "directory"))
(hsPkgs."process" or (buildDepError "process"))
(hsPkgs."bytestring" or (buildDepError "bytestring"))
(hsPkgs."binary" or (buildDepError "binary"))
(hsPkgs."time" or (buildDepError "time"))
(hsPkgs."containers" or (buildDepError "containers"))
(hsPkgs."array" or (buildDepError "array"))
(hsPkgs."filepath" or (buildDepError "filepath"))
(hsPkgs."template-haskell" or (buildDepError "template-haskell"))
(hsPkgs."hpc" or (buildDepError "hpc"))
(hsPkgs."transformers" or (buildDepError "transformers"))
(hsPkgs."ghc-boot" or (buildDepError "ghc-boot"))
(hsPkgs."ghc-boot-th" or (buildDepError "ghc-boot-th"))
(hsPkgs."ghc-heap" or (buildDepError "ghc-heap"))
(hsPkgs."ghci" or (buildDepError "ghci"))
] ++ (if system.isWindows
then [ (hsPkgs."Win32" or (buildDepError "Win32")) ]
else [
(hsPkgs."unix" or (buildDepError "unix"))
] ++ (pkgs.lib).optional (flags.terminfo) (hsPkgs."terminfo" or (buildDepError "terminfo")));
build-tools = [
(hsPkgs.buildPackages.alex or (pkgs.buildPackages.alex or (buildToolDepError "alex")))
(hsPkgs.buildPackages.happy or (pkgs.buildPackages.happy or (buildToolDepError "happy")))
];
buildable = true;
modules = [
"GhcPrelude"
"Ar"
"FileCleanup"
"DriverBkp"
"BkpSyn"
"NameShape"
"RnModIface"
"Avail"
"AsmUtils"
"BasicTypes"
"ConLike"
"DataCon"
"PatSyn"
"Demand"
"Debug"
"Exception"
"FieldLabel"
"GhcMonad"
"Hooks"
"Id"
"IdInfo"
"Lexeme"
"Literal"
"Llvm"
"Llvm/AbsSyn"
"Llvm/MetaData"
"Llvm/PpLlvm"
"Llvm/Types"
"LlvmCodeGen"
"LlvmCodeGen/Base"
"LlvmCodeGen/CodeGen"
"LlvmCodeGen/Data"
"LlvmCodeGen/Ppr"
"LlvmCodeGen/Regs"
"LlvmMangler"
"MkId"
"Module"
"Name"
"NameEnv"
"NameSet"
"OccName"
"RdrName"
"NameCache"
"SrcLoc"
"UniqSupply"
"Unique"
"Var"
"VarEnv"
"VarSet"
"UnVarGraph"
"BlockId"
"CLabel"
"Cmm"
"CmmBuildInfoTables"
"CmmPipeline"
"CmmCallConv"
"CmmCommonBlockElim"
"CmmImplementSwitchPlans"
"CmmContFlowOpt"
"CmmExpr"
"CmmInfo"
"CmmLex"
"CmmLint"
"CmmLive"
"CmmMachOp"
"CmmMonad"
"CmmSwitch"
"CmmNode"
"CmmOpt"
"CmmParse"
"CmmProcPoint"
"CmmSink"
"CmmType"
"CmmUtils"
"CmmLayoutStack"
"EnumSet"
"MkGraph"
"PprBase"
"PprC"
"PprCmm"
"PprCmmDecl"
"PprCmmExpr"
"Bitmap"
"CodeGen/Platform"
"CodeGen/Platform/ARM"
"CodeGen/Platform/ARM64"
"CodeGen/Platform/NoRegs"
"CodeGen/Platform/PPC"
"CodeGen/Platform/PPC_Darwin"
"CodeGen/Platform/SPARC"
"CodeGen/Platform/X86"
"CodeGen/Platform/X86_64"
"CgUtils"
"StgCmm"
"StgCmmBind"
"StgCmmClosure"
"StgCmmCon"
"StgCmmEnv"
"StgCmmExpr"
"StgCmmForeign"
"StgCmmHeap"
"StgCmmHpc"
"StgCmmArgRep"
"StgCmmLayout"
"StgCmmMonad"
"StgCmmPrim"
"StgCmmProf"
"StgCmmTicky"
"StgCmmUtils"
"StgCmmExtCode"
"SMRep"
"CoreArity"
"CoreFVs"
"CoreLint"
"CorePrep"
"CoreSubst"
"CoreOpt"
"CoreSyn"
"TrieMap"
"CoreTidy"
"CoreUnfold"
"CoreUtils"
"CoreMap"
"CoreSeq"
"CoreStats"
"MkCore"
"PprCore"
"PmExpr"
"TmOracle"
"Check"
"Coverage"
"Desugar"
"DsArrows"
"DsBinds"
"DsCCall"
"DsExpr"
"DsForeign"
"DsGRHSs"
"DsListComp"
"DsMonad"
"DsUsage"
"DsUtils"
"ExtractDocs"
"Match"
"MatchCon"
"MatchLit"
"HsBinds"
"HsDecls"
"HsDoc"
"HsExpr"
"HsImpExp"
"HsLit"
"PlaceHolder"
"HsExtension"
"HsInstances"
"HsPat"
"HsSyn"
"HsTypes"
"HsUtils"
"HsDumpAst"
"BinIface"
"BinFingerprint"
"BuildTyCl"
"IfaceEnv"
"IfaceSyn"
"IfaceType"
"ToIface"
"LoadIface"
"MkIface"
"TcIface"
"FlagChecker"
"Annotations"
"CmdLineParser"
"CodeOutput"
"Config"
"Constants"
"DriverMkDepend"
"DriverPhases"
"PipelineMonad"
"DriverPipeline"
"DynFlags"
"ErrUtils"
"Finder"
"GHC"
"GhcMake"
"GhcPlugins"
"DynamicLoading"
"HeaderInfo"
"HscMain"
"HscStats"
"HscTypes"
"InteractiveEval"
"InteractiveEvalTypes"
"PackageConfig"
"Packages"
"PlatformConstants"
"Plugins"
"TcPluginM"
"PprTyThing"
"StaticPtrTable"
"SysTools"
"SysTools/BaseDir"
"SysTools/Terminal"
"SysTools/ExtraObj"
"SysTools/Info"
"SysTools/Process"
"SysTools/Tasks"
"Elf"
"TidyPgm"
"Ctype"
"HaddockUtils"
"Lexer"
"OptCoercion"
"Parser"
"RdrHsSyn"
"ApiAnnotation"
"ForeignCall"
"KnownUniques"
"PrelInfo"
"PrelNames"
"PrelRules"
"PrimOp"
"TysPrim"
"TysWiredIn"
"CostCentre"
"CostCentreState"
"ProfInit"
"RnBinds"
"RnEnv"
"RnExpr"
"RnHsDoc"
"RnNames"
"RnPat"
"RnSource"
"RnSplice"
"RnTypes"
"RnFixity"
"RnUtils"
"RnUnbound"
"CoreMonad"
"CSE"
"FloatIn"
"FloatOut"
"LiberateCase"
"OccurAnal"
"SAT"
"SetLevels"
"SimplCore"
"SimplEnv"
"SimplMonad"
"SimplUtils"
"Simplify"
"SimplStg"
"StgStats"
"StgCse"
"UnariseStg"
"RepType"
"Rules"
"SpecConstr"
"Specialise"
"CoreToStg"
"StgLint"
"StgSyn"
"CallArity"
"DmdAnal"
"Exitify"
"WorkWrap"
"WwLib"
"FamInst"
"Inst"
"TcAnnotations"
"TcArrows"
"TcBinds"
"TcSigs"
"TcClassDcl"
"TcDefaults"
"TcDeriv"
"TcDerivInfer"
"TcDerivUtils"
"TcEnv"
"TcExpr"
"TcForeign"
"TcGenDeriv"
"TcGenFunctor"
"TcGenGenerics"
"TcHsSyn"
"TcHsType"
"TcInstDcls"
"TcMType"
"TcValidity"
"TcMatches"
"TcPat"
"TcPatSyn"
"TcRnDriver"
"TcBackpack"
"TcRnExports"
"TcRnMonad"
"TcRnTypes"
"TcRules"
"TcSimplify"
"TcHoleErrors"
"TcErrors"
"TcTyClsDecls"
"TcTyDecls"
"TcTypeable"
"TcType"
"TcEvidence"
"TcEvTerm"
"TcUnify"
"TcInteract"
"TcCanonical"
"TcFlatten"
"TcSMonad"
"TcTypeNats"
"TcSplice"
"Class"
"Coercion"
"DsMeta"
"THNames"
"FamInstEnv"
"FunDeps"
"InstEnv"
"TyCon"
"CoAxiom"
"Kind"
"Type"
"TyCoRep"
"Unify"
"Bag"
"Binary"
"BooleanFormula"
"BufWrite"
"Digraph"
"Encoding"
"FastFunctions"
"FastMutInt"
"FastString"
"FastStringEnv"
"Fingerprint"
"FiniteMap"
"FV"
"GraphBase"
"GraphColor"
"GraphOps"
"GraphPpr"
"IOEnv"
"Json"
"ListSetOps"
"ListT"
"Maybes"
"MonadUtils"
"OrdList"
"Outputable"
"Pair"
"Panic"
"PprColour"
"Pretty"
"State"
"Stream"
"StringBuffer"
"UniqDFM"
"UniqDSet"
"UniqFM"
"UniqMap"
"UniqSet"
"Util"
"Hoopl/Block"
"Hoopl/Collections"
"Hoopl/Dataflow"
"Hoopl/Graph"
"Hoopl/Label"
"AsmCodeGen"
"TargetReg"
"NCGMonad"
"Instruction"
"Format"
"Reg"
"RegClass"
"PIC"
"Platform"
"CPrim"
"X86/Regs"
"X86/RegInfo"
"X86/Instr"
"X86/Cond"
"X86/Ppr"
"X86/CodeGen"
"PPC/Regs"
"PPC/RegInfo"
"PPC/Instr"
"PPC/Cond"
"PPC/Ppr"
"PPC/CodeGen"
"SPARC/Base"
"SPARC/Regs"
"SPARC/Imm"
"SPARC/AddrMode"
"SPARC/Cond"
"SPARC/Instr"
"SPARC/Stack"
"SPARC/ShortcutJump"
"SPARC/Ppr"
"SPARC/CodeGen"
"SPARC/CodeGen/Amode"
"SPARC/CodeGen/Base"
"SPARC/CodeGen/CondCode"
"SPARC/CodeGen/Gen32"
"SPARC/CodeGen/Gen64"
"SPARC/CodeGen/Sanity"
"SPARC/CodeGen/Expand"
"RegAlloc/Liveness"
"RegAlloc/Graph/Main"
"RegAlloc/Graph/Stats"
"RegAlloc/Graph/ArchBase"
"RegAlloc/Graph/ArchX86"
"RegAlloc/Graph/Coalesce"
"RegAlloc/Graph/Spill"
"RegAlloc/Graph/SpillClean"
"RegAlloc/Graph/SpillCost"
"RegAlloc/Graph/TrivColorable"
"RegAlloc/Linear/Main"
"RegAlloc/Linear/JoinToTargets"
"RegAlloc/Linear/State"
"RegAlloc/Linear/Stats"
"RegAlloc/Linear/FreeRegs"
"RegAlloc/Linear/StackMap"
"RegAlloc/Linear/Base"
"RegAlloc/Linear/X86/FreeRegs"
"RegAlloc/Linear/X86_64/FreeRegs"
"RegAlloc/Linear/PPC/FreeRegs"
"RegAlloc/Linear/SPARC/FreeRegs"
"Dwarf"
"Dwarf/Types"
"Dwarf/Constants"
"Convert"
"ByteCodeTypes"
"ByteCodeAsm"
"ByteCodeGen"
"ByteCodeInstr"
"ByteCodeItbls"
"ByteCodeLink"
"Debugger"
"Linker"
"RtClosureInspect"
"GHCi"
];
cSources = [
"parser/cutils.c"
"ghci/keepCAFsForGHCi.c"
"cbits/genSym.c"
];
hsSourceDirs = [
"backpack"
"basicTypes"
"cmm"
"codeGen"
"coreSyn"
"deSugar"
"ghci"
"hsSyn"
"iface"
"llvmGen"
"main"
"nativeGen"
"parser"
"prelude"
"profiling"
"rename"
"simplCore"
"simplStg"
"specialise"
"stgSyn"
"stranal"
"typecheck"
"types"
"utils"
];
includeDirs = [
"."
"parser"
"utils"
] ++ (pkgs.lib).optional (flags.ghci) "../rts/dist/build";
};
};
} // rec { src = (pkgs.lib).mkDefault ../compiler; }

View File

@ -0,0 +1,101 @@
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 = { ghci = false; };
package = {
specVersion = "1.10";
identifier = { name = "ghci"; version = "8.6.5"; };
license = "BSD-3-Clause";
copyright = "";
maintainer = "ghc-devs@haskell.org";
author = "";
homepage = "";
url = "";
synopsis = "The library supporting GHC's interactive interpreter";
description = "This library offers interfaces which mediate interactions between the\n@ghci@ interactive shell and @iserv@, GHC's out-of-process interpreter\nbackend.";
buildType = "Simple";
isLocal = true;
detailLevel = "FullDetails";
licenseFiles = [ "LICENSE" ];
dataDir = "";
dataFiles = [];
extraSrcFiles = [ "changelog.md" ];
extraTmpFiles = [];
extraDocFiles = [];
};
components = {
"library" = {
depends = [
(hsPkgs."array" or (buildDepError "array"))
(hsPkgs."base" or (buildDepError "base"))
(hsPkgs."binary" or (buildDepError "binary"))
(hsPkgs."bytestring" or (buildDepError "bytestring"))
(hsPkgs."containers" or (buildDepError "containers"))
(hsPkgs."deepseq" or (buildDepError "deepseq"))
(hsPkgs."filepath" or (buildDepError "filepath"))
(hsPkgs."ghc-boot" or (buildDepError "ghc-boot"))
(hsPkgs."ghc-boot-th" or (buildDepError "ghc-boot-th"))
(hsPkgs."ghc-heap" or (buildDepError "ghc-heap"))
(hsPkgs."template-haskell" or (buildDepError "template-haskell"))
(hsPkgs."transformers" or (buildDepError "transformers"))
] ++ (pkgs.lib).optional (!system.isWindows) (hsPkgs."unix" or (buildDepError "unix"));
buildable = true;
modules = [
"GHCi/BreakArray"
"GHCi/BinaryArray"
"GHCi/Message"
"GHCi/ResolvedBCO"
"GHCi/RemoteTypes"
"GHCi/FFI"
"GHCi/InfoTable"
"GHCi/StaticPtrTable"
"GHCi/TH/Binary"
"SizedSeq"
] ++ (pkgs.lib).optionals (flags.ghci) [
"GHCi/Run"
"GHCi/CreateBCO"
"GHCi/ObjLink"
"GHCi/Signals"
"GHCi/TH"
];
};
};
} // rec { src = (pkgs.lib).mkDefault ../libraries/ghci; }

View File

@ -0,0 +1,86 @@
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 = {
specVersion = "1.10";
identifier = { name = "iserv-proxy"; version = "8.6.5"; };
license = "BSD-3-Clause";
copyright = "XXX";
maintainer = "XXX";
author = "XXX";
homepage = "";
url = "";
synopsis = "iserv allows GHC to delegate Tempalte Haskell computations";
description = "GHC can be provided with a path to the iserv binary with\n@-pgmi=/path/to/iserv-bin@, and will in combination with\n@-fexternal-interpreter@, compile Template Haskell though the\n@iserv-bin@ delegate. This is very similar to how ghcjs has been\ncompiling Template Haskell, by spawning a separate delegate (so\ncalled runner on the javascript vm) and evaluating the splices\nthere.\n\niserv can also be used in combination with cross compilation. For\nthis, the @iserv-proxy@ needs to be built on the host, targeting the\nhost (as it is running on the host). @cabal install -flibrary\n-fproxy@ will yield the proxy.\n\nUsing the cabal for the target @arch-platform-target-cabal install\n-flibrary@ will build the required library that contains the ffi\n@startSlave@ function, which needs to be invoked on the target\n(e.g. in an iOS application) to start the remote iserv slave.\n\ncalling the GHC cross compiler with @-fexternal-interpreter\n-pgmi=\$HOME/.cabal/bin/iserv-proxy -opti\\<ip address\\> -opti\\<port\\>@\nwill cause it to compile Template Haskell via the remote at \\<ip address\\>.\n\nThus to get cross compilation with Template Haskell follow the\nfollowing receipt:\n\n* compile the iserv library for your target\n\n> iserv \$ arch-platform-target-cabal install -flibrary\n\n* setup an application for your target that calls the\n* startSlave function. This could be either haskell or your\n* targets ffi capable language, if needed.\n\n> void startSlave(false /* verbose */, 5000 /* port */,\n> \"/path/to/storagelocation/on/target\");\n\n* build the iserv-proxy\n\n> iserv \$ cabal install -flibrary -fproxy\n* Start your iserv-slave app on your target running on say @10.0.0.1:5000@\n* compiler your sources with -fexternal-interpreter and the proxy\n\n> project \$ arch-platform-target-ghc ModuleContainingTH.hs \\\n> -fexternal-interpreter \\\n> -pgmi=\$HOME/.cabal/bin/iserv-proxy \\\n> -opti10.0.0.1 -opti5000\n\nShould something not work as expected, provide @-opti-v@ for verbose\nlogging of the @iserv-proxy@.";
buildType = "Simple";
isLocal = true;
detailLevel = "FullDetails";
licenseFiles = [];
dataDir = "";
dataFiles = [];
extraSrcFiles = [];
extraTmpFiles = [];
extraDocFiles = [];
};
components = {
exes = {
"iserv-proxy" = {
depends = [
(hsPkgs."array" or (buildDepError "array"))
(hsPkgs."base" or (buildDepError "base"))
(hsPkgs."binary" or (buildDepError "binary"))
(hsPkgs."bytestring" or (buildDepError "bytestring"))
(hsPkgs."containers" or (buildDepError "containers"))
(hsPkgs."deepseq" or (buildDepError "deepseq"))
(hsPkgs."directory" or (buildDepError "directory"))
(hsPkgs."network" or (buildDepError "network"))
(hsPkgs."filepath" or (buildDepError "filepath"))
(hsPkgs."ghci" or (buildDepError "ghci"))
(hsPkgs."libiserv" or (buildDepError "libiserv"))
];
buildable = true;
hsSourceDirs = [ "src" ];
mainPath = [ "Main.hs" ];
};
};
};
} // rec { src = (pkgs.lib).mkDefault ../utils/iserv-proxy; }

View File

@ -0,0 +1,85 @@
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 = {
specVersion = "1.10";
identifier = { name = "iserv"; version = "8.6.5"; };
license = "BSD-3-Clause";
copyright = "XXX";
maintainer = "XXX";
author = "XXX";
homepage = "";
url = "";
synopsis = "iserv allows GHC to delegate Tempalte Haskell computations";
description = "GHC can be provided with a path to the iserv binary with\n@-pgmi=/path/to/iserv-bin@, and will in combination with\n@-fexternal-interpreter@, compile Template Haskell though the\n@iserv-bin@ delegate. This is very similar to how ghcjs has been\ncompiling Template Haskell, by spawning a separate delegate (so\ncalled runner on the javascript vm) and evaluating the splices\nthere.\n\nTo use iserv with cross compilers, please see @libraries/libiserv@\nand @utils/iserv-proxy@.";
buildType = "Simple";
isLocal = true;
detailLevel = "FullDetails";
licenseFiles = [];
dataDir = "";
dataFiles = [];
extraSrcFiles = [];
extraTmpFiles = [];
extraDocFiles = [];
};
components = {
exes = {
"iserv" = {
depends = [
(hsPkgs."array" or (buildDepError "array"))
(hsPkgs."base" or (buildDepError "base"))
(hsPkgs."binary" or (buildDepError "binary"))
(hsPkgs."bytestring" or (buildDepError "bytestring"))
(hsPkgs."containers" or (buildDepError "containers"))
(hsPkgs."deepseq" or (buildDepError "deepseq"))
(hsPkgs."ghci" or (buildDepError "ghci"))
(hsPkgs."libiserv" or (buildDepError "libiserv"))
] ++ (pkgs.lib).optional (!system.isWindows) (hsPkgs."unix" or (buildDepError "unix"));
buildable = true;
cSources = [ "cbits/iservmain.c" ];
hsSourceDirs = [ "src" ];
includeDirs = [ "." ];
mainPath = [ "Main.hs" ] ++ [ "" ];
};
};
};
} // rec { src = (pkgs.lib).mkDefault ../utils/iserv; }

View File

@ -0,0 +1,89 @@
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 = { network = false; };
package = {
specVersion = "1.10";
identifier = { name = "libiserv"; version = "8.6.5"; };
license = "BSD-3-Clause";
copyright = "XXX";
maintainer = "XXX";
author = "XXX";
homepage = "";
url = "";
synopsis = "Provides shared functionality between iserv and iserv-proxy";
description = "";
buildType = "Simple";
isLocal = true;
detailLevel = "FullDetails";
licenseFiles = [ "LICENSE" ];
dataDir = "";
dataFiles = [];
extraSrcFiles = [];
extraTmpFiles = [];
extraDocFiles = [];
};
components = {
"library" = {
depends = ([
(hsPkgs."base" or (buildDepError "base"))
(hsPkgs."binary" or (buildDepError "binary"))
(hsPkgs."bytestring" or (buildDepError "bytestring"))
(hsPkgs."containers" or (buildDepError "containers"))
(hsPkgs."deepseq" or (buildDepError "deepseq"))
(hsPkgs."ghci" or (buildDepError "ghci"))
] ++ (pkgs.lib).optionals (flags.network) [
(hsPkgs."network" or (buildDepError "network"))
(hsPkgs."directory" or (buildDepError "directory"))
(hsPkgs."filepath" or (buildDepError "filepath"))
]) ++ (pkgs.lib).optional (!system.isWindows) (hsPkgs."unix" or (buildDepError "unix"));
buildable = true;
modules = [
"Lib"
"GHCi/Utils"
] ++ (pkgs.lib).optionals (flags.network) [
"Remote/Message"
"Remote/Slave"
];
hsSourceDirs = [ "src" ];
};
};
} // rec { src = (pkgs.lib).mkDefault ../libraries/libiserv; }

View File

@ -0,0 +1,77 @@
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 = {
specVersion = "1.10";
identifier = { name = "remote-iserv"; version = "8.6.5"; };
license = "BSD-3-Clause";
copyright = "XXX";
maintainer = "Moritz Angermann <moritz.angermann@gmail.com>";
author = "Moritz Angermann <moritz.angermann@gmail.com>";
homepage = "";
url = "";
synopsis = "iserv allows GHC to delegate Tempalte Haskell computations";
description = "This is a very simple remote runner for iserv, to be used together\nwith iserv-proxy. The foundamental idea is that this this wrapper\nstarts running libiserv on a given port to which iserv-proxy will\nthen connect.";
buildType = "Simple";
isLocal = true;
detailLevel = "FullDetails";
licenseFiles = [];
dataDir = "";
dataFiles = [];
extraSrcFiles = [];
extraTmpFiles = [];
extraDocFiles = [];
};
components = {
exes = {
"remote-iserv" = {
depends = [
(hsPkgs."base" or (buildDepError "base"))
(hsPkgs."libiserv" or (buildDepError "libiserv"))
];
buildable = true;
hsSourceDirs = [ "src" ];
mainPath = [ "Cli.hs" ];
};
};
};
} // rec { src = (pkgs.lib).mkDefault ../utils/remote-iserv; }

View File

@ -0,0 +1,92 @@
{
pkgs = hackage:
{
packages = {
"binary".revision = (((hackage."binary")."0.8.8.0").revisions).default;
"ghc-prim".revision = (((hackage."ghc-prim")."0.5.3").revisions).default;
"unix".revision = (((hackage."unix")."2.7.2.2").revisions).default;
"ghc-heap".revision = (((hackage."ghc-heap")."8.6.5").revisions).default;
"mtl".revision = (((hackage."mtl")."2.2.2").revisions).default;
"rts".revision = (((hackage."rts")."1.0").revisions).default;
"alex".revision = (((hackage."alex")."3.2.5").revisions).default;
"alex".flags.small_base = true;
"deepseq".revision = (((hackage."deepseq")."1.4.4.0").revisions).default;
"network".revision = (((hackage."network")."2.8.0.1").revisions).default;
"directory".revision = (((hackage."directory")."1.3.6.1").revisions).default;
"template-haskell".revision = (((hackage."template-haskell")."2.14.0.0").revisions).default;
"containers".revision = (((hackage."containers")."0.6.0.1").revisions).default;
"base".revision = (((hackage."base")."4.12.0.0").revisions).default;
"time".revision = (((hackage."time")."1.8.0.2").revisions).default;
"terminfo".revision = (((hackage."terminfo")."0.4.1.4").revisions).default;
"transformers".revision = (((hackage."transformers")."0.5.6.2").revisions).default;
"happy".revision = (((hackage."happy")."1.19.12").revisions).default;
"happy".flags.small_base = true;
"hpc".revision = (((hackage."hpc")."0.6.0.3").revisions).default;
"filepath".revision = (((hackage."filepath")."1.4.2.1").revisions).default;
"process".revision = (((hackage."process")."1.6.8.2").revisions).default;
"pretty".revision = (((hackage."pretty")."1.1.3.6").revisions).default;
"ghc-boot-th".revision = (((hackage."ghc-boot-th")."8.6.5").revisions).default;
"array".revision = (((hackage."array")."0.5.3.0").revisions).default;
"integer-gmp".revision = (((hackage."integer-gmp")."1.0.2.0").revisions).default;
};
compiler = {
version = "8.6.5";
nix-name = "ghc865";
packages = {
"ghc-prim" = "0.5.3";
"ghc-heap" = "8.6.5";
"mtl" = "2.2.2";
"rts" = "1.0";
"deepseq" = "1.4.4.0";
"template-haskell" = "2.14.0.0";
"containers" = "0.6.0.1";
"base" = "4.12.0.0";
"time" = "1.8.0.2";
"transformers" = "0.5.6.2";
"filepath" = "1.4.2.1";
"pretty" = "1.1.3.6";
"ghc-boot-th" = "8.6.5";
"array" = "0.5.3.0";
"integer-gmp" = "1.0.2.0";
};
};
};
extras = hackage:
{
packages = {
ghc = ./.plan.nix/ghc.nix;
bytestring = ./.plan.nix/bytestring.nix;
remote-iserv = ./.plan.nix/remote-iserv.nix;
iserv-proxy = ./.plan.nix/iserv-proxy.nix;
libiserv = ./.plan.nix/libiserv.nix;
ghc-boot = ./.plan.nix/ghc-boot.nix;
ghci = ./.plan.nix/ghci.nix;
iserv = ./.plan.nix/iserv.nix;
};
};
modules = [
({ lib, ... }:
{
packages = {
"ghc" = {
flags = {
"stage1" = lib.mkOverride 900 false;
"stage2" = lib.mkOverride 900 true;
"stage3" = lib.mkOverride 900 false;
"ghci" = lib.mkOverride 900 true;
"terminfo" = lib.mkOverride 900 true;
};
};
"bytestring" = {
flags = { "integer-simple" = lib.mkOverride 900 false; };
};
"remote-iserv" = { flags = {}; };
"iserv-proxy" = { flags = {}; };
"libiserv" = { flags = { "network" = lib.mkOverride 900 true; }; };
"ghc-boot" = { flags = {}; };
"ghci" = { flags = { "ghci" = lib.mkOverride 900 true; }; };
"iserv" = { flags = {}; };
};
})
];
}

View File

@ -0,0 +1,167 @@
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 = { integer-simple = false; };
package = {
specVersion = "1.10";
identifier = { name = "bytestring"; version = "0.10.10.0"; };
license = "BSD-3-Clause";
copyright = "Copyright (c) Don Stewart 2005-2009,\n(c) Duncan Coutts 2006-2015,\n(c) David Roundy 2003-2005,\n(c) Jasper Van der Jeugt 2010,\n(c) Simon Meier 2010-2013.";
maintainer = "Duncan Coutts <duncan@community.haskell.org>";
author = "Don Stewart,\nDuncan Coutts";
homepage = "https://github.com/haskell/bytestring";
url = "";
synopsis = "Fast, compact, strict and lazy byte strings with a list interface";
description = "An efficient compact, immutable byte string type (both strict and lazy)\nsuitable for binary or 8-bit character data.\n\nThe 'ByteString' type represents sequences of bytes or 8-bit characters.\nIt is suitable for high performance use, both in terms of large data\nquantities, or high speed requirements. The 'ByteString' functions follow\nthe same style as Haskell\\'s ordinary lists, so it is easy to convert code\nfrom using 'String' to 'ByteString'.\n\nTwo 'ByteString' variants are provided:\n\n* Strict 'ByteString's keep the string as a single large array. This\nmakes them convenient for passing data between C and Haskell.\n\n* Lazy 'ByteString's use a lazy list of strict chunks which makes it\nsuitable for I\\/O streaming tasks.\n\nThe @Char8@ modules provide a character-based view of the same\nunderlying 'ByteString' types. This makes it convenient to handle mixed\nbinary and 8-bit character content (which is common in many file formats\nand network protocols).\n\nThe 'Builder' module provides an efficient way to build up 'ByteString's\nin an ad-hoc way by repeated concatenation. This is ideal for fast\nserialisation or pretty printing.\n\nThere is also a 'ShortByteString' type which has a lower memory overhead\nand can can be converted to or from a 'ByteString', but supports very few\nother operations. It is suitable for keeping many short strings in memory.\n\n'ByteString's are not designed for Unicode. For Unicode strings you should\nuse the 'Text' type from the @text@ package.\n\nThese modules are intended to be imported qualified, to avoid name clashes\nwith \"Prelude\" functions, e.g.\n\n> import qualified Data.ByteString as BS";
buildType = "Simple";
isLocal = true;
detailLevel = "FullDetails";
licenseFiles = [ "LICENSE" ];
dataDir = "";
dataFiles = [];
extraSrcFiles = [ "README.md" "Changelog.md" ];
extraTmpFiles = [];
extraDocFiles = [];
};
components = {
"library" = {
depends = ([
(hsPkgs."base" or (buildDepError "base"))
(hsPkgs."ghc-prim" or (buildDepError "ghc-prim"))
(hsPkgs."deepseq" or (buildDepError "deepseq"))
] ++ (pkgs.lib).optionals (compiler.isGhc && (compiler.version).ge "6.11") ((pkgs.lib).optional (!flags.integer-simple) (hsPkgs."integer-gmp" or (buildDepError "integer-gmp")))) ++ (pkgs.lib).optional (compiler.isGhc && (compiler.version).ge "6.9" && (compiler.isGhc && (compiler.version).lt "6.11")) (hsPkgs."integer" or (buildDepError "integer"));
buildable = true;
modules = [
"Data/ByteString/Builder/ASCII"
"Data/ByteString/Builder/Prim/Binary"
"Data/ByteString/Builder/Prim/ASCII"
"Data/ByteString/Builder/Prim/Internal/Floating"
"Data/ByteString/Builder/Prim/Internal/UncheckedShifts"
"Data/ByteString/Builder/Prim/Internal/Base16"
"Data/ByteString"
"Data/ByteString/Char8"
"Data/ByteString/Unsafe"
"Data/ByteString/Internal"
"Data/ByteString/Lazy"
"Data/ByteString/Lazy/Char8"
"Data/ByteString/Lazy/Internal"
"Data/ByteString/Short"
"Data/ByteString/Short/Internal"
"Data/ByteString/Builder"
"Data/ByteString/Builder/Extra"
"Data/ByteString/Builder/Prim"
"Data/ByteString/Builder/Internal"
"Data/ByteString/Builder/Prim/Internal"
"Data/ByteString/Lazy/Builder"
"Data/ByteString/Lazy/Builder/Extras"
"Data/ByteString/Lazy/Builder/ASCII"
];
cSources = [ "cbits/fpstring.c" "cbits/itoa.c" ];
includeDirs = [ "include" ];
includes = [ "fpstring.h" ];
};
tests = {
"prop-compiled" = {
depends = [
(hsPkgs."base" or (buildDepError "base"))
(hsPkgs."ghc-prim" or (buildDepError "ghc-prim"))
(hsPkgs."deepseq" or (buildDepError "deepseq"))
(hsPkgs."random" or (buildDepError "random"))
(hsPkgs."directory" or (buildDepError "directory"))
(hsPkgs."test-framework" or (buildDepError "test-framework"))
(hsPkgs."test-framework-quickcheck2" or (buildDepError "test-framework-quickcheck2"))
(hsPkgs."QuickCheck" or (buildDepError "QuickCheck"))
];
buildable = true;
modules = [ "Rules" "QuickCheckUtils" "TestFramework" ];
cSources = [ "cbits/fpstring.c" ];
hsSourceDirs = [ "." "tests" ];
includeDirs = [ "include" ];
mainPath = [ "Properties.hs" ];
};
"regressions" = {
depends = [
(hsPkgs."base" or (buildDepError "base"))
(hsPkgs."ghc-prim" or (buildDepError "ghc-prim"))
(hsPkgs."deepseq" or (buildDepError "deepseq"))
(hsPkgs."random" or (buildDepError "random"))
(hsPkgs."directory" or (buildDepError "directory"))
(hsPkgs."test-framework" or (buildDepError "test-framework"))
(hsPkgs."test-framework-hunit" or (buildDepError "test-framework-hunit"))
(hsPkgs."HUnit" or (buildDepError "HUnit"))
];
buildable = false;
cSources = [ "cbits/fpstring.c" ];
hsSourceDirs = [ "." "tests" ];
includeDirs = [ "include" ];
mainPath = [ "Regressions.hs" ];
};
"test-builder" = {
depends = [
(hsPkgs."base" or (buildDepError "base"))
(hsPkgs."ghc-prim" or (buildDepError "ghc-prim"))
(hsPkgs."deepseq" or (buildDepError "deepseq"))
(hsPkgs."QuickCheck" or (buildDepError "QuickCheck"))
(hsPkgs."byteorder" or (buildDepError "byteorder"))
(hsPkgs."dlist" or (buildDepError "dlist"))
(hsPkgs."directory" or (buildDepError "directory"))
(hsPkgs."mtl" or (buildDepError "mtl"))
(hsPkgs."HUnit" or (buildDepError "HUnit"))
(hsPkgs."test-framework" or (buildDepError "test-framework"))
(hsPkgs."test-framework-hunit" or (buildDepError "test-framework-hunit"))
(hsPkgs."test-framework-quickcheck2" or (buildDepError "test-framework-quickcheck2"))
];
buildable = true;
modules = [
"Data/ByteString/Builder/Tests"
"Data/ByteString/Builder/Prim/Tests"
"Data/ByteString/Builder/Prim/TestUtils"
"TestFramework"
];
cSources = [ "cbits/fpstring.c" "cbits/itoa.c" ];
hsSourceDirs = [ "." "tests" "tests/builder" ];
includeDirs = [ "include" ];
includes = [ "fpstring.h" ];
mainPath = [ "TestSuite.hs" ];
};
};
};
} // rec { src = (pkgs.lib).mkDefault ../libraries/bytestring; }

View File

@ -0,0 +1,84 @@
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 = {
specVersion = "1.22";
identifier = { name = "ghc-boot"; version = "8.8.2"; };
license = "BSD-3-Clause";
copyright = "";
maintainer = "ghc-devs@haskell.org";
author = "";
homepage = "";
url = "";
synopsis = "Shared functionality between GHC and its boot libraries";
description = "This library is shared between GHC, ghc-pkg, and other boot\nlibraries.\n\nA note about \"GHC.PackageDb\": it only deals with the subset of\nthe package database that the compiler cares about: modules\npaths etc and not package metadata like description, authors\netc. It is thus not a library interface to ghc-pkg and is *not*\nsuitable for modifying GHC package databases.\n\nThe package database format and this library are constructed in\nsuch a way that while ghc-pkg depends on Cabal, the GHC library\nand program do not have to depend on Cabal.";
buildType = "Simple";
isLocal = true;
detailLevel = "FullDetails";
licenseFiles = [ "LICENSE" ];
dataDir = "";
dataFiles = [];
extraSrcFiles = [ "changelog.md" ];
extraTmpFiles = [];
extraDocFiles = [];
};
components = {
"library" = {
depends = [
(hsPkgs."base" or (buildDepError "base"))
(hsPkgs."binary" or (buildDepError "binary"))
(hsPkgs."bytestring" or (buildDepError "bytestring"))
(hsPkgs."directory" or (buildDepError "directory"))
(hsPkgs."filepath" or (buildDepError "filepath"))
(hsPkgs."ghc-boot-th" or (buildDepError "ghc-boot-th"))
];
buildable = true;
modules = [
"GHC/LanguageExtensions"
"GHC/PackageDb"
"GHC/Serialized"
"GHC/ForeignSrcLang"
"GHC/HandleEncoding"
];
};
};
} // rec { src = (pkgs.lib).mkDefault ../libraries/ghc-boot; }

View File

@ -0,0 +1,608 @@
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 = {
ghci = false;
stage1 = false;
stage2 = true;
stage3 = false;
terminfo = true;
integer-simple = false;
integer-gmp = false;
};
package = {
specVersion = "1.10";
identifier = { name = "ghc"; version = "8.8.2"; };
license = "BSD-3-Clause";
copyright = "";
maintainer = "glasgow-haskell-users@haskell.org";
author = "The GHC Team";
homepage = "http://www.haskell.org/ghc/";
url = "";
synopsis = "The GHC API";
description = "GHC's functionality can be useful for more things than just\ncompiling Haskell programs. Important use cases are programs\nthat analyse (and perhaps transform) Haskell code. Others\ninclude loading Haskell code dynamically in a GHCi-like manner.\nFor this reason, a lot of GHC's functionality is made available\nthrough this package.";
buildType = "Simple";
isLocal = true;
detailLevel = "FullDetails";
licenseFiles = [ "LICENSE" ];
dataDir = "";
dataFiles = [];
extraSrcFiles = [
"utils/md5.h"
"Unique.h"
"nativeGen/NCG.h"
"parser/cutils.h"
];
extraTmpFiles = [];
extraDocFiles = [];
};
components = {
"library" = {
depends = ((([
(hsPkgs."base" or (buildDepError "base"))
(hsPkgs."deepseq" or (buildDepError "deepseq"))
(hsPkgs."directory" or (buildDepError "directory"))
(hsPkgs."process" or (buildDepError "process"))
(hsPkgs."bytestring" or (buildDepError "bytestring"))
(hsPkgs."binary" or (buildDepError "binary"))
(hsPkgs."time" or (buildDepError "time"))
(hsPkgs."containers" or (buildDepError "containers"))
(hsPkgs."array" or (buildDepError "array"))
(hsPkgs."filepath" or (buildDepError "filepath"))
(hsPkgs."template-haskell" or (buildDepError "template-haskell"))
(hsPkgs."hpc" or (buildDepError "hpc"))
(hsPkgs."transformers" or (buildDepError "transformers"))
(hsPkgs."ghc-boot" or (buildDepError "ghc-boot"))
(hsPkgs."ghc-boot-th" or (buildDepError "ghc-boot-th"))
(hsPkgs."ghc-heap" or (buildDepError "ghc-heap"))
(hsPkgs."ghci" or (buildDepError "ghci"))
] ++ (if system.isWindows
then [ (hsPkgs."Win32" or (buildDepError "Win32")) ]
else [
(hsPkgs."unix" or (buildDepError "unix"))
] ++ (pkgs.lib).optional (flags.terminfo) (hsPkgs."terminfo" or (buildDepError "terminfo")))) ++ (pkgs.lib).optional (flags.integer-gmp && flags.integer-simple) (hsPkgs."invalid-cabal-flag-settings" or (buildDepError "invalid-cabal-flag-settings"))) ++ (pkgs.lib).optional (flags.integer-gmp) (hsPkgs."integer-gmp" or (buildDepError "integer-gmp"))) ++ (pkgs.lib).optional (flags.integer-simple) (hsPkgs."integer-simple" or (buildDepError "integer-simple"));
build-tools = [
(hsPkgs.buildPackages.alex or (pkgs.buildPackages.alex or (buildToolDepError "alex")))
(hsPkgs.buildPackages.happy or (pkgs.buildPackages.happy or (buildToolDepError "happy")))
];
buildable = true;
modules = [
"GhcPrelude"
"HieTypes"
"HieDebug"
"HieBin"
"HieUtils"
"HieAst"
"Ar"
"FileCleanup"
"DriverBkp"
"BkpSyn"
"NameShape"
"RnModIface"
"Avail"
"AsmUtils"
"BasicTypes"
"ConLike"
"DataCon"
"PatSyn"
"Demand"
"Debug"
"Exception"
"FieldLabel"
"GhcMonad"
"Hooks"
"Id"
"IdInfo"
"Lexeme"
"Literal"
"Llvm"
"Llvm/AbsSyn"
"Llvm/MetaData"
"Llvm/PpLlvm"
"Llvm/Types"
"LlvmCodeGen"
"LlvmCodeGen/Base"
"LlvmCodeGen/CodeGen"
"LlvmCodeGen/Data"
"LlvmCodeGen/Ppr"
"LlvmCodeGen/Regs"
"LlvmMangler"
"MkId"
"Module"
"Name"
"NameEnv"
"NameSet"
"OccName"
"RdrName"
"NameCache"
"SrcLoc"
"UniqSupply"
"Unique"
"Var"
"VarEnv"
"VarSet"
"UnVarGraph"
"BlockId"
"CLabel"
"Cmm"
"CmmBuildInfoTables"
"CmmPipeline"
"CmmCallConv"
"CmmCommonBlockElim"
"CmmImplementSwitchPlans"
"CmmContFlowOpt"
"CmmExpr"
"CmmInfo"
"CmmLex"
"CmmLint"
"CmmLive"
"CmmMachOp"
"CmmMonad"
"CmmSwitch"
"CmmNode"
"CmmOpt"
"CmmParse"
"CmmProcPoint"
"CmmSink"
"CmmType"
"CmmUtils"
"CmmLayoutStack"
"EnumSet"
"MkGraph"
"PprBase"
"PprC"
"PprCmm"
"PprCmmDecl"
"PprCmmExpr"
"Bitmap"
"CodeGen/Platform"
"CodeGen/Platform/ARM"
"CodeGen/Platform/ARM64"
"CodeGen/Platform/NoRegs"
"CodeGen/Platform/PPC"
"CodeGen/Platform/SPARC"
"CodeGen/Platform/X86"
"CodeGen/Platform/X86_64"
"CgUtils"
"StgCmm"
"StgCmmBind"
"StgCmmClosure"
"StgCmmCon"
"StgCmmEnv"
"StgCmmExpr"
"StgCmmForeign"
"StgCmmHeap"
"StgCmmHpc"
"StgCmmArgRep"
"StgCmmLayout"
"StgCmmMonad"
"StgCmmPrim"
"StgCmmProf"
"StgCmmTicky"
"StgCmmUtils"
"StgCmmExtCode"
"SMRep"
"CoreArity"
"CoreFVs"
"CoreLint"
"CorePrep"
"CoreSubst"
"CoreOpt"
"CoreSyn"
"TrieMap"
"CoreTidy"
"CoreUnfold"
"CoreUtils"
"CoreMap"
"CoreSeq"
"CoreStats"
"MkCore"
"PprCore"
"PmExpr"
"TmOracle"
"Check"
"Coverage"
"Desugar"
"DsArrows"
"DsBinds"
"DsCCall"
"DsExpr"
"DsForeign"
"DsGRHSs"
"DsListComp"
"DsMonad"
"DsUsage"
"DsUtils"
"ExtractDocs"
"Match"
"MatchCon"
"MatchLit"
"HsBinds"
"HsDecls"
"HsDoc"
"HsExpr"
"HsImpExp"
"HsLit"
"PlaceHolder"
"HsExtension"
"HsInstances"
"HsPat"
"HsSyn"
"HsTypes"
"HsUtils"
"HsDumpAst"
"BinIface"
"BinFingerprint"
"BuildTyCl"
"IfaceEnv"
"IfaceSyn"
"IfaceType"
"ToIface"
"LoadIface"
"MkIface"
"TcIface"
"FlagChecker"
"Annotations"
"CmdLineParser"
"CodeOutput"
"Config"
"Constants"
"DriverMkDepend"
"DriverPhases"
"PipelineMonad"
"DriverPipeline"
"DynFlags"
"ErrUtils"
"Finder"
"GHC"
"GhcMake"
"GhcPlugins"
"DynamicLoading"
"HeaderInfo"
"HscMain"
"HscStats"
"HscTypes"
"InteractiveEval"
"InteractiveEvalTypes"
"PackageConfig"
"Packages"
"PlatformConstants"
"Plugins"
"TcPluginM"
"PprTyThing"
"StaticPtrTable"
"SysTools"
"SysTools/BaseDir"
"SysTools/Terminal"
"SysTools/ExtraObj"
"SysTools/Info"
"SysTools/Process"
"SysTools/Tasks"
"Elf"
"TidyPgm"
"Ctype"
"HaddockUtils"
"Lexer"
"OptCoercion"
"Parser"
"RdrHsSyn"
"ApiAnnotation"
"ForeignCall"
"KnownUniques"
"PrelInfo"
"PrelNames"
"PrelRules"
"PrimOp"
"TysPrim"
"TysWiredIn"
"CostCentre"
"CostCentreState"
"ProfInit"
"RnBinds"
"RnEnv"
"RnExpr"
"RnHsDoc"
"RnNames"
"RnPat"
"RnSource"
"RnSplice"
"RnTypes"
"RnFixity"
"RnUtils"
"RnUnbound"
"CoreMonad"
"CSE"
"FloatIn"
"FloatOut"
"LiberateCase"
"OccurAnal"
"SAT"
"SetLevels"
"SimplCore"
"SimplEnv"
"SimplMonad"
"SimplUtils"
"Simplify"
"SimplStg"
"StgStats"
"StgCse"
"StgLiftLams"
"StgLiftLams/Analysis"
"StgLiftLams/LiftM"
"StgLiftLams/Transformation"
"StgSubst"
"UnariseStg"
"RepType"
"Rules"
"SpecConstr"
"Specialise"
"CoreToStg"
"StgLint"
"StgSyn"
"StgFVs"
"CallArity"
"DmdAnal"
"Exitify"
"WorkWrap"
"WwLib"
"FamInst"
"ClsInst"
"Inst"
"TcAnnotations"
"TcArrows"
"TcBinds"
"TcSigs"
"TcClassDcl"
"TcDefaults"
"TcDeriv"
"TcDerivInfer"
"TcDerivUtils"
"TcEnv"
"TcExpr"
"TcForeign"
"TcGenDeriv"
"TcGenFunctor"
"TcGenGenerics"
"TcHsSyn"
"TcHsType"
"TcInstDcls"
"TcMType"
"TcValidity"
"TcMatches"
"TcPat"
"TcPatSyn"
"TcRnDriver"
"TcBackpack"
"TcRnExports"
"TcRnMonad"
"TcRnTypes"
"TcRules"
"TcSimplify"
"TcHoleErrors"
"TcErrors"
"TcTyClsDecls"
"TcTyDecls"
"TcTypeable"
"TcTypeableValidity"
"TcType"
"TcEvidence"
"TcEvTerm"
"TcUnify"
"TcInteract"
"TcCanonical"
"TcFlatten"
"TcSMonad"
"TcTypeNats"
"TcSplice"
"Class"
"Coercion"
"DsMeta"
"THNames"
"FamInstEnv"
"FunDeps"
"InstEnv"
"TyCon"
"CoAxiom"
"Kind"
"Type"
"TyCoRep"
"Unify"
"Bag"
"Binary"
"BooleanFormula"
"BufWrite"
"Digraph"
"Encoding"
"FastFunctions"
"FastMutInt"
"FastString"
"FastStringEnv"
"Fingerprint"
"FiniteMap"
"FV"
"GraphBase"
"GraphColor"
"GraphOps"
"GraphPpr"
"IOEnv"
"Json"
"ListSetOps"
"ListT"
"Maybes"
"MonadUtils"
"OrdList"
"Outputable"
"Pair"
"Panic"
"PlainPanic"
"PprColour"
"Pretty"
"State"
"Stream"
"StringBuffer"
"UniqDFM"
"UniqDSet"
"UniqFM"
"UniqMap"
"UniqSet"
"Util"
"Hoopl/Block"
"Hoopl/Collections"
"Hoopl/Dataflow"
"Hoopl/Graph"
"Hoopl/Label"
"AsmCodeGen"
"TargetReg"
"NCGMonad"
"Instruction"
"BlockLayout"
"CFG"
"Format"
"Reg"
"RegClass"
"PIC"
"Platform"
"CPrim"
"X86/Regs"
"X86/RegInfo"
"X86/Instr"
"X86/Cond"
"X86/Ppr"
"X86/CodeGen"
"PPC/Regs"
"PPC/RegInfo"
"PPC/Instr"
"PPC/Cond"
"PPC/Ppr"
"PPC/CodeGen"
"SPARC/Base"
"SPARC/Regs"
"SPARC/Imm"
"SPARC/AddrMode"
"SPARC/Cond"
"SPARC/Instr"
"SPARC/Stack"
"SPARC/ShortcutJump"
"SPARC/Ppr"
"SPARC/CodeGen"
"SPARC/CodeGen/Amode"
"SPARC/CodeGen/Base"
"SPARC/CodeGen/CondCode"
"SPARC/CodeGen/Gen32"
"SPARC/CodeGen/Gen64"
"SPARC/CodeGen/Sanity"
"SPARC/CodeGen/Expand"
"RegAlloc/Liveness"
"RegAlloc/Graph/Main"
"RegAlloc/Graph/Stats"
"RegAlloc/Graph/ArchBase"
"RegAlloc/Graph/ArchX86"
"RegAlloc/Graph/Coalesce"
"RegAlloc/Graph/Spill"
"RegAlloc/Graph/SpillClean"
"RegAlloc/Graph/SpillCost"
"RegAlloc/Graph/TrivColorable"
"RegAlloc/Linear/Main"
"RegAlloc/Linear/JoinToTargets"
"RegAlloc/Linear/State"
"RegAlloc/Linear/Stats"
"RegAlloc/Linear/FreeRegs"
"RegAlloc/Linear/StackMap"
"RegAlloc/Linear/Base"
"RegAlloc/Linear/X86/FreeRegs"
"RegAlloc/Linear/X86_64/FreeRegs"
"RegAlloc/Linear/PPC/FreeRegs"
"RegAlloc/Linear/SPARC/FreeRegs"
"Dwarf"
"Dwarf/Types"
"Dwarf/Constants"
"Convert"
"ByteCodeTypes"
"ByteCodeAsm"
"ByteCodeGen"
"ByteCodeInstr"
"ByteCodeItbls"
"ByteCodeLink"
"Debugger"
"Linker"
"RtClosureInspect"
"GHCi"
];
cSources = [
"parser/cutils.c"
"ghci/keepCAFsForGHCi.c"
"cbits/genSym.c"
];
hsSourceDirs = [
"backpack"
"basicTypes"
"cmm"
"codeGen"
"coreSyn"
"deSugar"
"ghci"
"hsSyn"
"iface"
"llvmGen"
"main"
"nativeGen"
"parser"
"prelude"
"profiling"
"rename"
"simplCore"
"simplStg"
"specialise"
"stgSyn"
"stranal"
"typecheck"
"types"
"utils"
"hieFile"
];
includeDirs = [
"."
"parser"
"utils"
] ++ (pkgs.lib).optional (flags.ghci) "../rts/dist/build";
};
};
} // rec { src = (pkgs.lib).mkDefault ../compiler; }

View File

@ -0,0 +1,101 @@
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 = { ghci = false; };
package = {
specVersion = "1.10";
identifier = { name = "ghci"; version = "8.8.2"; };
license = "BSD-3-Clause";
copyright = "";
maintainer = "ghc-devs@haskell.org";
author = "";
homepage = "";
url = "";
synopsis = "The library supporting GHC's interactive interpreter";
description = "This library offers interfaces which mediate interactions between the\n@ghci@ interactive shell and @iserv@, GHC's out-of-process interpreter\nbackend.";
buildType = "Simple";
isLocal = true;
detailLevel = "FullDetails";
licenseFiles = [ "LICENSE" ];
dataDir = "";
dataFiles = [];
extraSrcFiles = [ "changelog.md" ];
extraTmpFiles = [];
extraDocFiles = [];
};
components = {
"library" = {
depends = [
(hsPkgs."array" or (buildDepError "array"))
(hsPkgs."base" or (buildDepError "base"))
(hsPkgs."binary" or (buildDepError "binary"))
(hsPkgs."bytestring" or (buildDepError "bytestring"))
(hsPkgs."containers" or (buildDepError "containers"))
(hsPkgs."deepseq" or (buildDepError "deepseq"))
(hsPkgs."filepath" or (buildDepError "filepath"))
(hsPkgs."ghc-boot" or (buildDepError "ghc-boot"))
(hsPkgs."ghc-boot-th" or (buildDepError "ghc-boot-th"))
(hsPkgs."ghc-heap" or (buildDepError "ghc-heap"))
(hsPkgs."template-haskell" or (buildDepError "template-haskell"))
(hsPkgs."transformers" or (buildDepError "transformers"))
] ++ (pkgs.lib).optional (!system.isWindows) (hsPkgs."unix" or (buildDepError "unix"));
buildable = true;
modules = [
"GHCi/BreakArray"
"GHCi/BinaryArray"
"GHCi/Message"
"GHCi/ResolvedBCO"
"GHCi/RemoteTypes"
"GHCi/FFI"
"GHCi/InfoTable"
"GHCi/StaticPtrTable"
"GHCi/TH/Binary"
"SizedSeq"
] ++ (pkgs.lib).optionals (flags.ghci) [
"GHCi/Run"
"GHCi/CreateBCO"
"GHCi/ObjLink"
"GHCi/Signals"
"GHCi/TH"
];
};
};
} // rec { src = (pkgs.lib).mkDefault ../libraries/ghci; }

View File

@ -0,0 +1,86 @@
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 = {
specVersion = "1.10";
identifier = { name = "iserv-proxy"; version = "8.8.2"; };
license = "BSD-3-Clause";
copyright = "XXX";
maintainer = "XXX";
author = "XXX";
homepage = "";
url = "";
synopsis = "iserv allows GHC to delegate Tempalte Haskell computations";
description = "GHC can be provided with a path to the iserv binary with\n@-pgmi=/path/to/iserv-bin@, and will in combination with\n@-fexternal-interpreter@, compile Template Haskell though the\n@iserv-bin@ delegate. This is very similar to how ghcjs has been\ncompiling Template Haskell, by spawning a separate delegate (so\ncalled runner on the javascript vm) and evaluating the splices\nthere.\n\niserv can also be used in combination with cross compilation. For\nthis, the @iserv-proxy@ needs to be built on the host, targeting the\nhost (as it is running on the host). @cabal install -flibrary\n-fproxy@ will yield the proxy.\n\nUsing the cabal for the target @arch-platform-target-cabal install\n-flibrary@ will build the required library that contains the ffi\n@startSlave@ function, which needs to be invoked on the target\n(e.g. in an iOS application) to start the remote iserv slave.\n\ncalling the GHC cross compiler with @-fexternal-interpreter\n-pgmi=\$HOME/.cabal/bin/iserv-proxy -opti\\<ip address\\> -opti\\<port\\>@\nwill cause it to compile Template Haskell via the remote at \\<ip address\\>.\n\nThus to get cross compilation with Template Haskell follow the\nfollowing receipt:\n\n* compile the iserv library for your target\n\n> iserv \$ arch-platform-target-cabal install -flibrary\n\n* setup an application for your target that calls the\n* startSlave function. This could be either haskell or your\n* targets ffi capable language, if needed.\n\n> void startSlave(false /* verbose */, 5000 /* port */,\n> \"/path/to/storagelocation/on/target\");\n\n* build the iserv-proxy\n\n> iserv \$ cabal install -flibrary -fproxy\n* Start your iserv-slave app on your target running on say @10.0.0.1:5000@\n* compiler your sources with -fexternal-interpreter and the proxy\n\n> project \$ arch-platform-target-ghc ModuleContainingTH.hs \\\n> -fexternal-interpreter \\\n> -pgmi=\$HOME/.cabal/bin/iserv-proxy \\\n> -opti10.0.0.1 -opti5000\n\nShould something not work as expected, provide @-opti-v@ for verbose\nlogging of the @iserv-proxy@.";
buildType = "Simple";
isLocal = true;
detailLevel = "FullDetails";
licenseFiles = [];
dataDir = "";
dataFiles = [];
extraSrcFiles = [];
extraTmpFiles = [];
extraDocFiles = [];
};
components = {
exes = {
"iserv-proxy" = {
depends = [
(hsPkgs."array" or (buildDepError "array"))
(hsPkgs."base" or (buildDepError "base"))
(hsPkgs."binary" or (buildDepError "binary"))
(hsPkgs."bytestring" or (buildDepError "bytestring"))
(hsPkgs."containers" or (buildDepError "containers"))
(hsPkgs."deepseq" or (buildDepError "deepseq"))
(hsPkgs."directory" or (buildDepError "directory"))
(hsPkgs."network" or (buildDepError "network"))
(hsPkgs."filepath" or (buildDepError "filepath"))
(hsPkgs."ghci" or (buildDepError "ghci"))
(hsPkgs."libiserv" or (buildDepError "libiserv"))
];
buildable = true;
hsSourceDirs = [ "src" ];
mainPath = [ "Main.hs" ];
};
};
};
} // rec { src = (pkgs.lib).mkDefault ../utils/iserv-proxy; }

View File

@ -0,0 +1,85 @@
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 = {
specVersion = "1.10";
identifier = { name = "iserv"; version = "8.8.2"; };
license = "BSD-3-Clause";
copyright = "XXX";
maintainer = "XXX";
author = "XXX";
homepage = "";
url = "";
synopsis = "iserv allows GHC to delegate Template Haskell computations";
description = "GHC can be provided with a path to the iserv binary with\n@-pgmi=/path/to/iserv-bin@, and will in combination with\n@-fexternal-interpreter@, compile Template Haskell though the\n@iserv-bin@ delegate. This is very similar to how ghcjs has been\ncompiling Template Haskell, by spawning a separate delegate (so\ncalled runner on the javascript vm) and evaluating the splices\nthere.\n\nTo use iserv with cross compilers, please see @libraries/libiserv@\nand @utils/iserv-proxy@.";
buildType = "Simple";
isLocal = true;
detailLevel = "FullDetails";
licenseFiles = [];
dataDir = "";
dataFiles = [];
extraSrcFiles = [];
extraTmpFiles = [];
extraDocFiles = [];
};
components = {
exes = {
"iserv" = {
depends = [
(hsPkgs."array" or (buildDepError "array"))
(hsPkgs."base" or (buildDepError "base"))
(hsPkgs."binary" or (buildDepError "binary"))
(hsPkgs."bytestring" or (buildDepError "bytestring"))
(hsPkgs."containers" or (buildDepError "containers"))
(hsPkgs."deepseq" or (buildDepError "deepseq"))
(hsPkgs."ghci" or (buildDepError "ghci"))
(hsPkgs."libiserv" or (buildDepError "libiserv"))
] ++ (pkgs.lib).optional (!system.isWindows) (hsPkgs."unix" or (buildDepError "unix"));
buildable = true;
cSources = [ "cbits/iservmain.c" ];
hsSourceDirs = [ "src" ];
includeDirs = [ "." ];
mainPath = [ "Main.hs" ] ++ [ "" ];
};
};
};
} // rec { src = (pkgs.lib).mkDefault ../utils/iserv; }

View File

@ -0,0 +1,89 @@
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 = { network = false; };
package = {
specVersion = "1.10";
identifier = { name = "libiserv"; version = "8.8.2"; };
license = "BSD-3-Clause";
copyright = "XXX";
maintainer = "XXX";
author = "XXX";
homepage = "";
url = "";
synopsis = "Provides shared functionality between iserv and iserv-proxy";
description = "";
buildType = "Simple";
isLocal = true;
detailLevel = "FullDetails";
licenseFiles = [ "LICENSE" ];
dataDir = "";
dataFiles = [];
extraSrcFiles = [];
extraTmpFiles = [];
extraDocFiles = [];
};
components = {
"library" = {
depends = ([
(hsPkgs."base" or (buildDepError "base"))
(hsPkgs."binary" or (buildDepError "binary"))
(hsPkgs."bytestring" or (buildDepError "bytestring"))
(hsPkgs."containers" or (buildDepError "containers"))
(hsPkgs."deepseq" or (buildDepError "deepseq"))
(hsPkgs."ghci" or (buildDepError "ghci"))
] ++ (pkgs.lib).optionals (flags.network) [
(hsPkgs."network" or (buildDepError "network"))
(hsPkgs."directory" or (buildDepError "directory"))
(hsPkgs."filepath" or (buildDepError "filepath"))
]) ++ (pkgs.lib).optional (!system.isWindows) (hsPkgs."unix" or (buildDepError "unix"));
buildable = true;
modules = [
"Lib"
"GHCi/Utils"
] ++ (pkgs.lib).optionals (flags.network) [
"Remote/Message"
"Remote/Slave"
];
hsSourceDirs = [ "src" ];
};
};
} // rec { src = (pkgs.lib).mkDefault ../libraries/libiserv; }

View File

@ -0,0 +1,77 @@
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 = {
specVersion = "1.10";
identifier = { name = "remote-iserv"; version = "8.8.2"; };
license = "BSD-3-Clause";
copyright = "XXX";
maintainer = "Moritz Angermann <moritz.angermann@gmail.com>";
author = "Moritz Angermann <moritz.angermann@gmail.com>";
homepage = "";
url = "";
synopsis = "iserv allows GHC to delegate Tempalte Haskell computations";
description = "This is a very simple remote runner for iserv, to be used together\nwith iserv-proxy. The foundamental idea is that this this wrapper\nstarts running libiserv on a given port to which iserv-proxy will\nthen connect.";
buildType = "Simple";
isLocal = true;
detailLevel = "FullDetails";
licenseFiles = [];
dataDir = "";
dataFiles = [];
extraSrcFiles = [];
extraTmpFiles = [];
extraDocFiles = [];
};
components = {
exes = {
"remote-iserv" = {
depends = [
(hsPkgs."base" or (buildDepError "base"))
(hsPkgs."libiserv" or (buildDepError "libiserv"))
];
buildable = true;
hsSourceDirs = [ "src" ];
mainPath = [ "Cli.hs" ];
};
};
};
} // rec { src = (pkgs.lib).mkDefault ../utils/remote-iserv; }

View File

@ -0,0 +1,94 @@
{
pkgs = hackage:
{
packages = {
"binary".revision = (((hackage."binary")."0.8.8.0").revisions).default;
"ghc-prim".revision = (((hackage."ghc-prim")."0.5.3").revisions).default;
"unix".revision = (((hackage."unix")."2.7.2.2").revisions).default;
"ghc-heap".revision = (((hackage."ghc-heap")."8.8.2").revisions).default;
"mtl".revision = (((hackage."mtl")."2.2.2").revisions).default;
"rts".revision = (((hackage."rts")."1.0").revisions).default;
"alex".revision = (((hackage."alex")."3.2.5").revisions).default;
"alex".flags.small_base = true;
"deepseq".revision = (((hackage."deepseq")."1.4.4.0").revisions).default;
"network".revision = (((hackage."network")."2.8.0.1").revisions).default;
"directory".revision = (((hackage."directory")."1.3.6.1").revisions).default;
"template-haskell".revision = (((hackage."template-haskell")."2.15.0.0").revisions).default;
"containers".revision = (((hackage."containers")."0.6.2.1").revisions).default;
"base".revision = (((hackage."base")."4.13.0.0").revisions).default;
"time".revision = (((hackage."time")."1.9.3").revisions).default;
"terminfo".revision = (((hackage."terminfo")."0.4.1.4").revisions).default;
"transformers".revision = (((hackage."transformers")."0.5.6.2").revisions).default;
"happy".revision = (((hackage."happy")."1.19.12").revisions).default;
"happy".flags.small_base = true;
"hpc".revision = (((hackage."hpc")."0.6.0.3").revisions).default;
"filepath".revision = (((hackage."filepath")."1.4.2.1").revisions).default;
"process".revision = (((hackage."process")."1.6.8.2").revisions).default;
"pretty".revision = (((hackage."pretty")."1.1.3.6").revisions).default;
"ghc-boot-th".revision = (((hackage."ghc-boot-th")."8.8.2").revisions).default;
"array".revision = (((hackage."array")."0.5.4.0").revisions).default;
"integer-gmp".revision = (((hackage."integer-gmp")."1.0.2.0").revisions).default;
};
compiler = {
version = "8.8.2";
nix-name = "ghc882";
packages = {
"ghc-prim" = "0.5.3";
"ghc-heap" = "8.8.2";
"mtl" = "2.2.2";
"rts" = "1.0";
"deepseq" = "1.4.4.0";
"template-haskell" = "2.15.0.0";
"containers" = "0.6.2.1";
"base" = "4.13.0.0";
"time" = "1.9.3";
"transformers" = "0.5.6.2";
"filepath" = "1.4.2.1";
"pretty" = "1.1.3.6";
"ghc-boot-th" = "8.8.2";
"array" = "0.5.4.0";
"integer-gmp" = "1.0.2.0";
};
};
};
extras = hackage:
{
packages = {
ghc = ./.plan.nix/ghc.nix;
bytestring = ./.plan.nix/bytestring.nix;
remote-iserv = ./.plan.nix/remote-iserv.nix;
iserv-proxy = ./.plan.nix/iserv-proxy.nix;
libiserv = ./.plan.nix/libiserv.nix;
ghc-boot = ./.plan.nix/ghc-boot.nix;
ghci = ./.plan.nix/ghci.nix;
iserv = ./.plan.nix/iserv.nix;
};
};
modules = [
({ lib, ... }:
{
packages = {
"ghc" = {
flags = {
"stage1" = lib.mkOverride 900 false;
"stage2" = lib.mkOverride 900 true;
"integer-gmp" = lib.mkOverride 900 false;
"stage3" = lib.mkOverride 900 false;
"ghci" = lib.mkOverride 900 true;
"integer-simple" = lib.mkOverride 900 false;
"terminfo" = lib.mkOverride 900 true;
};
};
"bytestring" = {
flags = { "integer-simple" = lib.mkOverride 900 false; };
};
"remote-iserv" = { flags = {}; };
"iserv-proxy" = { flags = {}; };
"libiserv" = { flags = { "network" = lib.mkOverride 900 true; }; };
"ghc-boot" = { flags = {}; };
"ghci" = { flags = { "ghci" = lib.mkOverride 900 true; }; };
"iserv" = { flags = {}; };
};
})
];
}

View File

@ -0,0 +1,167 @@
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 = { integer-simple = false; };
package = {
specVersion = "1.10";
identifier = { name = "bytestring"; version = "0.10.10.0"; };
license = "BSD-3-Clause";
copyright = "Copyright (c) Don Stewart 2005-2009,\n(c) Duncan Coutts 2006-2015,\n(c) David Roundy 2003-2005,\n(c) Jasper Van der Jeugt 2010,\n(c) Simon Meier 2010-2013.";
maintainer = "Duncan Coutts <duncan@community.haskell.org>";
author = "Don Stewart,\nDuncan Coutts";
homepage = "https://github.com/haskell/bytestring";
url = "";
synopsis = "Fast, compact, strict and lazy byte strings with a list interface";
description = "An efficient compact, immutable byte string type (both strict and lazy)\nsuitable for binary or 8-bit character data.\n\nThe 'ByteString' type represents sequences of bytes or 8-bit characters.\nIt is suitable for high performance use, both in terms of large data\nquantities, or high speed requirements. The 'ByteString' functions follow\nthe same style as Haskell\\'s ordinary lists, so it is easy to convert code\nfrom using 'String' to 'ByteString'.\n\nTwo 'ByteString' variants are provided:\n\n* Strict 'ByteString's keep the string as a single large array. This\nmakes them convenient for passing data between C and Haskell.\n\n* Lazy 'ByteString's use a lazy list of strict chunks which makes it\nsuitable for I\\/O streaming tasks.\n\nThe @Char8@ modules provide a character-based view of the same\nunderlying 'ByteString' types. This makes it convenient to handle mixed\nbinary and 8-bit character content (which is common in many file formats\nand network protocols).\n\nThe 'Builder' module provides an efficient way to build up 'ByteString's\nin an ad-hoc way by repeated concatenation. This is ideal for fast\nserialisation or pretty printing.\n\nThere is also a 'ShortByteString' type which has a lower memory overhead\nand can can be converted to or from a 'ByteString', but supports very few\nother operations. It is suitable for keeping many short strings in memory.\n\n'ByteString's are not designed for Unicode. For Unicode strings you should\nuse the 'Text' type from the @text@ package.\n\nThese modules are intended to be imported qualified, to avoid name clashes\nwith \"Prelude\" functions, e.g.\n\n> import qualified Data.ByteString as BS";
buildType = "Simple";
isLocal = true;
detailLevel = "FullDetails";
licenseFiles = [ "LICENSE" ];
dataDir = "";
dataFiles = [];
extraSrcFiles = [ "README.md" "Changelog.md" ];
extraTmpFiles = [];
extraDocFiles = [];
};
components = {
"library" = {
depends = ([
(hsPkgs."base" or (buildDepError "base"))
(hsPkgs."ghc-prim" or (buildDepError "ghc-prim"))
(hsPkgs."deepseq" or (buildDepError "deepseq"))
] ++ (pkgs.lib).optionals (compiler.isGhc && (compiler.version).ge "6.11") ((pkgs.lib).optional (!flags.integer-simple) (hsPkgs."integer-gmp" or (buildDepError "integer-gmp")))) ++ (pkgs.lib).optional (compiler.isGhc && (compiler.version).ge "6.9" && (compiler.isGhc && (compiler.version).lt "6.11")) (hsPkgs."integer" or (buildDepError "integer"));
buildable = true;
modules = [
"Data/ByteString/Builder/ASCII"
"Data/ByteString/Builder/Prim/Binary"
"Data/ByteString/Builder/Prim/ASCII"
"Data/ByteString/Builder/Prim/Internal/Floating"
"Data/ByteString/Builder/Prim/Internal/UncheckedShifts"
"Data/ByteString/Builder/Prim/Internal/Base16"
"Data/ByteString"
"Data/ByteString/Char8"
"Data/ByteString/Unsafe"
"Data/ByteString/Internal"
"Data/ByteString/Lazy"
"Data/ByteString/Lazy/Char8"
"Data/ByteString/Lazy/Internal"
"Data/ByteString/Short"
"Data/ByteString/Short/Internal"
"Data/ByteString/Builder"
"Data/ByteString/Builder/Extra"
"Data/ByteString/Builder/Prim"
"Data/ByteString/Builder/Internal"
"Data/ByteString/Builder/Prim/Internal"
"Data/ByteString/Lazy/Builder"
"Data/ByteString/Lazy/Builder/Extras"
"Data/ByteString/Lazy/Builder/ASCII"
];
cSources = [ "cbits/fpstring.c" "cbits/itoa.c" ];
includeDirs = [ "include" ];
includes = [ "fpstring.h" ];
};
tests = {
"prop-compiled" = {
depends = [
(hsPkgs."base" or (buildDepError "base"))
(hsPkgs."ghc-prim" or (buildDepError "ghc-prim"))
(hsPkgs."deepseq" or (buildDepError "deepseq"))
(hsPkgs."random" or (buildDepError "random"))
(hsPkgs."directory" or (buildDepError "directory"))
(hsPkgs."test-framework" or (buildDepError "test-framework"))
(hsPkgs."test-framework-quickcheck2" or (buildDepError "test-framework-quickcheck2"))
(hsPkgs."QuickCheck" or (buildDepError "QuickCheck"))
];
buildable = true;
modules = [ "Rules" "QuickCheckUtils" "TestFramework" ];
cSources = [ "cbits/fpstring.c" ];
hsSourceDirs = [ "." "tests" ];
includeDirs = [ "include" ];
mainPath = [ "Properties.hs" ];
};
"regressions" = {
depends = [
(hsPkgs."base" or (buildDepError "base"))
(hsPkgs."ghc-prim" or (buildDepError "ghc-prim"))
(hsPkgs."deepseq" or (buildDepError "deepseq"))
(hsPkgs."random" or (buildDepError "random"))
(hsPkgs."directory" or (buildDepError "directory"))
(hsPkgs."test-framework" or (buildDepError "test-framework"))
(hsPkgs."test-framework-hunit" or (buildDepError "test-framework-hunit"))
(hsPkgs."HUnit" or (buildDepError "HUnit"))
];
buildable = false;
cSources = [ "cbits/fpstring.c" ];
hsSourceDirs = [ "." "tests" ];
includeDirs = [ "include" ];
mainPath = [ "Regressions.hs" ];
};
"test-builder" = {
depends = [
(hsPkgs."base" or (buildDepError "base"))
(hsPkgs."ghc-prim" or (buildDepError "ghc-prim"))
(hsPkgs."deepseq" or (buildDepError "deepseq"))
(hsPkgs."QuickCheck" or (buildDepError "QuickCheck"))
(hsPkgs."byteorder" or (buildDepError "byteorder"))
(hsPkgs."dlist" or (buildDepError "dlist"))
(hsPkgs."directory" or (buildDepError "directory"))
(hsPkgs."mtl" or (buildDepError "mtl"))
(hsPkgs."HUnit" or (buildDepError "HUnit"))
(hsPkgs."test-framework" or (buildDepError "test-framework"))
(hsPkgs."test-framework-hunit" or (buildDepError "test-framework-hunit"))
(hsPkgs."test-framework-quickcheck2" or (buildDepError "test-framework-quickcheck2"))
];
buildable = true;
modules = [
"Data/ByteString/Builder/Tests"
"Data/ByteString/Builder/Prim/Tests"
"Data/ByteString/Builder/Prim/TestUtils"
"TestFramework"
];
cSources = [ "cbits/fpstring.c" "cbits/itoa.c" ];
hsSourceDirs = [ "." "tests" "tests/builder" ];
includeDirs = [ "include" ];
includes = [ "fpstring.h" ];
mainPath = [ "TestSuite.hs" ];
};
};
};
} // rec { src = (pkgs.lib).mkDefault ../libraries/bytestring; }

View File

@ -0,0 +1,84 @@
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 = {
specVersion = "1.22";
identifier = { name = "ghc-boot"; version = "8.8.3"; };
license = "BSD-3-Clause";
copyright = "";
maintainer = "ghc-devs@haskell.org";
author = "";
homepage = "";
url = "";
synopsis = "Shared functionality between GHC and its boot libraries";
description = "This library is shared between GHC, ghc-pkg, and other boot\nlibraries.\n\nA note about \"GHC.PackageDb\": it only deals with the subset of\nthe package database that the compiler cares about: modules\npaths etc and not package metadata like description, authors\netc. It is thus not a library interface to ghc-pkg and is *not*\nsuitable for modifying GHC package databases.\n\nThe package database format and this library are constructed in\nsuch a way that while ghc-pkg depends on Cabal, the GHC library\nand program do not have to depend on Cabal.";
buildType = "Simple";
isLocal = true;
detailLevel = "FullDetails";
licenseFiles = [ "LICENSE" ];
dataDir = "";
dataFiles = [];
extraSrcFiles = [ "changelog.md" ];
extraTmpFiles = [];
extraDocFiles = [];
};
components = {
"library" = {
depends = [
(hsPkgs."base" or (buildDepError "base"))
(hsPkgs."binary" or (buildDepError "binary"))
(hsPkgs."bytestring" or (buildDepError "bytestring"))
(hsPkgs."directory" or (buildDepError "directory"))
(hsPkgs."filepath" or (buildDepError "filepath"))
(hsPkgs."ghc-boot-th" or (buildDepError "ghc-boot-th"))
];
buildable = true;
modules = [
"GHC/LanguageExtensions"
"GHC/PackageDb"
"GHC/Serialized"
"GHC/ForeignSrcLang"
"GHC/HandleEncoding"
];
};
};
} // rec { src = (pkgs.lib).mkDefault ../libraries/ghc-boot; }

View File

@ -0,0 +1,608 @@
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 = {
ghci = false;
stage1 = false;
stage2 = true;
stage3 = false;
terminfo = true;
integer-simple = false;
integer-gmp = false;
};
package = {
specVersion = "1.10";
identifier = { name = "ghc"; version = "8.8.3"; };
license = "BSD-3-Clause";
copyright = "";
maintainer = "glasgow-haskell-users@haskell.org";
author = "The GHC Team";
homepage = "http://www.haskell.org/ghc/";
url = "";
synopsis = "The GHC API";
description = "GHC's functionality can be useful for more things than just\ncompiling Haskell programs. Important use cases are programs\nthat analyse (and perhaps transform) Haskell code. Others\ninclude loading Haskell code dynamically in a GHCi-like manner.\nFor this reason, a lot of GHC's functionality is made available\nthrough this package.";
buildType = "Simple";
isLocal = true;
detailLevel = "FullDetails";
licenseFiles = [ "LICENSE" ];
dataDir = "";
dataFiles = [];
extraSrcFiles = [
"utils/md5.h"
"Unique.h"
"nativeGen/NCG.h"
"parser/cutils.h"
];
extraTmpFiles = [];
extraDocFiles = [];
};
components = {
"library" = {
depends = ((([
(hsPkgs."base" or (buildDepError "base"))
(hsPkgs."deepseq" or (buildDepError "deepseq"))
(hsPkgs."directory" or (buildDepError "directory"))
(hsPkgs."process" or (buildDepError "process"))
(hsPkgs."bytestring" or (buildDepError "bytestring"))
(hsPkgs."binary" or (buildDepError "binary"))
(hsPkgs."time" or (buildDepError "time"))
(hsPkgs."containers" or (buildDepError "containers"))
(hsPkgs."array" or (buildDepError "array"))
(hsPkgs."filepath" or (buildDepError "filepath"))
(hsPkgs."template-haskell" or (buildDepError "template-haskell"))
(hsPkgs."hpc" or (buildDepError "hpc"))
(hsPkgs."transformers" or (buildDepError "transformers"))
(hsPkgs."ghc-boot" or (buildDepError "ghc-boot"))
(hsPkgs."ghc-boot-th" or (buildDepError "ghc-boot-th"))
(hsPkgs."ghc-heap" or (buildDepError "ghc-heap"))
(hsPkgs."ghci" or (buildDepError "ghci"))
] ++ (if system.isWindows
then [ (hsPkgs."Win32" or (buildDepError "Win32")) ]
else [
(hsPkgs."unix" or (buildDepError "unix"))
] ++ (pkgs.lib).optional (flags.terminfo) (hsPkgs."terminfo" or (buildDepError "terminfo")))) ++ (pkgs.lib).optional (flags.integer-gmp && flags.integer-simple) (hsPkgs."invalid-cabal-flag-settings" or (buildDepError "invalid-cabal-flag-settings"))) ++ (pkgs.lib).optional (flags.integer-gmp) (hsPkgs."integer-gmp" or (buildDepError "integer-gmp"))) ++ (pkgs.lib).optional (flags.integer-simple) (hsPkgs."integer-simple" or (buildDepError "integer-simple"));
build-tools = [
(hsPkgs.buildPackages.alex or (pkgs.buildPackages.alex or (buildToolDepError "alex")))
(hsPkgs.buildPackages.happy or (pkgs.buildPackages.happy or (buildToolDepError "happy")))
];
buildable = true;
modules = [
"GhcPrelude"
"HieTypes"
"HieDebug"
"HieBin"
"HieUtils"
"HieAst"
"Ar"
"FileCleanup"
"DriverBkp"
"BkpSyn"
"NameShape"
"RnModIface"
"Avail"
"AsmUtils"
"BasicTypes"
"ConLike"
"DataCon"
"PatSyn"
"Demand"
"Debug"
"Exception"
"FieldLabel"
"GhcMonad"
"Hooks"
"Id"
"IdInfo"
"Lexeme"
"Literal"
"Llvm"
"Llvm/AbsSyn"
"Llvm/MetaData"
"Llvm/PpLlvm"
"Llvm/Types"
"LlvmCodeGen"
"LlvmCodeGen/Base"
"LlvmCodeGen/CodeGen"
"LlvmCodeGen/Data"
"LlvmCodeGen/Ppr"
"LlvmCodeGen/Regs"
"LlvmMangler"
"MkId"
"Module"
"Name"
"NameEnv"
"NameSet"
"OccName"
"RdrName"
"NameCache"
"SrcLoc"
"UniqSupply"
"Unique"
"Var"
"VarEnv"
"VarSet"
"UnVarGraph"
"BlockId"
"CLabel"
"Cmm"
"CmmBuildInfoTables"
"CmmPipeline"
"CmmCallConv"
"CmmCommonBlockElim"
"CmmImplementSwitchPlans"
"CmmContFlowOpt"
"CmmExpr"
"CmmInfo"
"CmmLex"
"CmmLint"
"CmmLive"
"CmmMachOp"
"CmmMonad"
"CmmSwitch"
"CmmNode"
"CmmOpt"
"CmmParse"
"CmmProcPoint"
"CmmSink"
"CmmType"
"CmmUtils"
"CmmLayoutStack"
"EnumSet"
"MkGraph"
"PprBase"
"PprC"
"PprCmm"
"PprCmmDecl"
"PprCmmExpr"
"Bitmap"
"CodeGen/Platform"
"CodeGen/Platform/ARM"
"CodeGen/Platform/ARM64"
"CodeGen/Platform/NoRegs"
"CodeGen/Platform/PPC"
"CodeGen/Platform/SPARC"
"CodeGen/Platform/X86"
"CodeGen/Platform/X86_64"
"CgUtils"
"StgCmm"
"StgCmmBind"
"StgCmmClosure"
"StgCmmCon"
"StgCmmEnv"
"StgCmmExpr"
"StgCmmForeign"
"StgCmmHeap"
"StgCmmHpc"
"StgCmmArgRep"
"StgCmmLayout"
"StgCmmMonad"
"StgCmmPrim"
"StgCmmProf"
"StgCmmTicky"
"StgCmmUtils"
"StgCmmExtCode"
"SMRep"
"CoreArity"
"CoreFVs"
"CoreLint"
"CorePrep"
"CoreSubst"
"CoreOpt"
"CoreSyn"
"TrieMap"
"CoreTidy"
"CoreUnfold"
"CoreUtils"
"CoreMap"
"CoreSeq"
"CoreStats"
"MkCore"
"PprCore"
"PmExpr"
"TmOracle"
"Check"
"Coverage"
"Desugar"
"DsArrows"
"DsBinds"
"DsCCall"
"DsExpr"
"DsForeign"
"DsGRHSs"
"DsListComp"
"DsMonad"
"DsUsage"
"DsUtils"
"ExtractDocs"
"Match"
"MatchCon"
"MatchLit"
"HsBinds"
"HsDecls"
"HsDoc"
"HsExpr"
"HsImpExp"
"HsLit"
"PlaceHolder"
"HsExtension"
"HsInstances"
"HsPat"
"HsSyn"
"HsTypes"
"HsUtils"
"HsDumpAst"
"BinIface"
"BinFingerprint"
"BuildTyCl"
"IfaceEnv"
"IfaceSyn"
"IfaceType"
"ToIface"
"LoadIface"
"MkIface"
"TcIface"
"FlagChecker"
"Annotations"
"CmdLineParser"
"CodeOutput"
"Config"
"Constants"
"DriverMkDepend"
"DriverPhases"
"PipelineMonad"
"DriverPipeline"
"DynFlags"
"ErrUtils"
"Finder"
"GHC"
"GhcMake"
"GhcPlugins"
"DynamicLoading"
"HeaderInfo"
"HscMain"
"HscStats"
"HscTypes"
"InteractiveEval"
"InteractiveEvalTypes"
"PackageConfig"
"Packages"
"PlatformConstants"
"Plugins"
"TcPluginM"
"PprTyThing"
"StaticPtrTable"
"SysTools"
"SysTools/BaseDir"
"SysTools/Terminal"
"SysTools/ExtraObj"
"SysTools/Info"
"SysTools/Process"
"SysTools/Tasks"
"Elf"
"TidyPgm"
"Ctype"
"HaddockUtils"
"Lexer"
"OptCoercion"
"Parser"
"RdrHsSyn"
"ApiAnnotation"
"ForeignCall"
"KnownUniques"
"PrelInfo"
"PrelNames"
"PrelRules"
"PrimOp"
"TysPrim"
"TysWiredIn"
"CostCentre"
"CostCentreState"
"ProfInit"
"RnBinds"
"RnEnv"
"RnExpr"
"RnHsDoc"
"RnNames"
"RnPat"
"RnSource"
"RnSplice"
"RnTypes"
"RnFixity"
"RnUtils"
"RnUnbound"
"CoreMonad"
"CSE"
"FloatIn"
"FloatOut"
"LiberateCase"
"OccurAnal"
"SAT"
"SetLevels"
"SimplCore"
"SimplEnv"
"SimplMonad"
"SimplUtils"
"Simplify"
"SimplStg"
"StgStats"
"StgCse"
"StgLiftLams"
"StgLiftLams/Analysis"
"StgLiftLams/LiftM"
"StgLiftLams/Transformation"
"StgSubst"
"UnariseStg"
"RepType"
"Rules"
"SpecConstr"
"Specialise"
"CoreToStg"
"StgLint"
"StgSyn"
"StgFVs"
"CallArity"
"DmdAnal"
"Exitify"
"WorkWrap"
"WwLib"
"FamInst"
"ClsInst"
"Inst"
"TcAnnotations"
"TcArrows"
"TcBinds"
"TcSigs"
"TcClassDcl"
"TcDefaults"
"TcDeriv"
"TcDerivInfer"
"TcDerivUtils"
"TcEnv"
"TcExpr"
"TcForeign"
"TcGenDeriv"
"TcGenFunctor"
"TcGenGenerics"
"TcHsSyn"
"TcHsType"
"TcInstDcls"
"TcMType"
"TcValidity"
"TcMatches"
"TcPat"
"TcPatSyn"
"TcRnDriver"
"TcBackpack"
"TcRnExports"
"TcRnMonad"
"TcRnTypes"
"TcRules"
"TcSimplify"
"TcHoleErrors"
"TcErrors"
"TcTyClsDecls"
"TcTyDecls"
"TcTypeable"
"TcTypeableValidity"
"TcType"
"TcEvidence"
"TcEvTerm"
"TcUnify"
"TcInteract"
"TcCanonical"
"TcFlatten"
"TcSMonad"
"TcTypeNats"
"TcSplice"
"Class"
"Coercion"
"DsMeta"
"THNames"
"FamInstEnv"
"FunDeps"
"InstEnv"
"TyCon"
"CoAxiom"
"Kind"
"Type"
"TyCoRep"
"Unify"
"Bag"
"Binary"
"BooleanFormula"
"BufWrite"
"Digraph"
"Encoding"
"FastFunctions"
"FastMutInt"
"FastString"
"FastStringEnv"
"Fingerprint"
"FiniteMap"
"FV"
"GraphBase"
"GraphColor"
"GraphOps"
"GraphPpr"
"IOEnv"
"Json"
"ListSetOps"
"ListT"
"Maybes"
"MonadUtils"
"OrdList"
"Outputable"
"Pair"
"Panic"
"PlainPanic"
"PprColour"
"Pretty"
"State"
"Stream"
"StringBuffer"
"UniqDFM"
"UniqDSet"
"UniqFM"
"UniqMap"
"UniqSet"
"Util"
"Hoopl/Block"
"Hoopl/Collections"
"Hoopl/Dataflow"
"Hoopl/Graph"
"Hoopl/Label"
"AsmCodeGen"
"TargetReg"
"NCGMonad"
"Instruction"
"BlockLayout"
"CFG"
"Format"
"Reg"
"RegClass"
"PIC"
"Platform"
"CPrim"
"X86/Regs"
"X86/RegInfo"
"X86/Instr"
"X86/Cond"
"X86/Ppr"
"X86/CodeGen"
"PPC/Regs"
"PPC/RegInfo"
"PPC/Instr"
"PPC/Cond"
"PPC/Ppr"
"PPC/CodeGen"
"SPARC/Base"
"SPARC/Regs"
"SPARC/Imm"
"SPARC/AddrMode"
"SPARC/Cond"
"SPARC/Instr"
"SPARC/Stack"
"SPARC/ShortcutJump"
"SPARC/Ppr"
"SPARC/CodeGen"
"SPARC/CodeGen/Amode"
"SPARC/CodeGen/Base"
"SPARC/CodeGen/CondCode"
"SPARC/CodeGen/Gen32"
"SPARC/CodeGen/Gen64"
"SPARC/CodeGen/Sanity"
"SPARC/CodeGen/Expand"
"RegAlloc/Liveness"
"RegAlloc/Graph/Main"
"RegAlloc/Graph/Stats"
"RegAlloc/Graph/ArchBase"
"RegAlloc/Graph/ArchX86"
"RegAlloc/Graph/Coalesce"
"RegAlloc/Graph/Spill"
"RegAlloc/Graph/SpillClean"
"RegAlloc/Graph/SpillCost"
"RegAlloc/Graph/TrivColorable"
"RegAlloc/Linear/Main"
"RegAlloc/Linear/JoinToTargets"
"RegAlloc/Linear/State"
"RegAlloc/Linear/Stats"
"RegAlloc/Linear/FreeRegs"
"RegAlloc/Linear/StackMap"
"RegAlloc/Linear/Base"
"RegAlloc/Linear/X86/FreeRegs"
"RegAlloc/Linear/X86_64/FreeRegs"
"RegAlloc/Linear/PPC/FreeRegs"
"RegAlloc/Linear/SPARC/FreeRegs"
"Dwarf"
"Dwarf/Types"
"Dwarf/Constants"
"Convert"
"ByteCodeTypes"
"ByteCodeAsm"
"ByteCodeGen"
"ByteCodeInstr"
"ByteCodeItbls"
"ByteCodeLink"
"Debugger"
"Linker"
"RtClosureInspect"
"GHCi"
];
cSources = [
"parser/cutils.c"
"ghci/keepCAFsForGHCi.c"
"cbits/genSym.c"
];
hsSourceDirs = [
"backpack"
"basicTypes"
"cmm"
"codeGen"
"coreSyn"
"deSugar"
"ghci"
"hsSyn"
"iface"
"llvmGen"
"main"
"nativeGen"
"parser"
"prelude"
"profiling"
"rename"
"simplCore"
"simplStg"
"specialise"
"stgSyn"
"stranal"
"typecheck"
"types"
"utils"
"hieFile"
];
includeDirs = [
"."
"parser"
"utils"
] ++ (pkgs.lib).optional (flags.ghci) "../rts/dist/build";
};
};
} // rec { src = (pkgs.lib).mkDefault ../compiler; }

View File

@ -0,0 +1,101 @@
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 = { ghci = false; };
package = {
specVersion = "1.10";
identifier = { name = "ghci"; version = "8.8.3"; };
license = "BSD-3-Clause";
copyright = "";
maintainer = "ghc-devs@haskell.org";
author = "";
homepage = "";
url = "";
synopsis = "The library supporting GHC's interactive interpreter";
description = "This library offers interfaces which mediate interactions between the\n@ghci@ interactive shell and @iserv@, GHC's out-of-process interpreter\nbackend.";
buildType = "Simple";
isLocal = true;
detailLevel = "FullDetails";
licenseFiles = [ "LICENSE" ];
dataDir = "";
dataFiles = [];
extraSrcFiles = [ "changelog.md" ];
extraTmpFiles = [];
extraDocFiles = [];
};
components = {
"library" = {
depends = [
(hsPkgs."array" or (buildDepError "array"))
(hsPkgs."base" or (buildDepError "base"))
(hsPkgs."binary" or (buildDepError "binary"))
(hsPkgs."bytestring" or (buildDepError "bytestring"))
(hsPkgs."containers" or (buildDepError "containers"))
(hsPkgs."deepseq" or (buildDepError "deepseq"))
(hsPkgs."filepath" or (buildDepError "filepath"))
(hsPkgs."ghc-boot" or (buildDepError "ghc-boot"))
(hsPkgs."ghc-boot-th" or (buildDepError "ghc-boot-th"))
(hsPkgs."ghc-heap" or (buildDepError "ghc-heap"))
(hsPkgs."template-haskell" or (buildDepError "template-haskell"))
(hsPkgs."transformers" or (buildDepError "transformers"))
] ++ (pkgs.lib).optional (!system.isWindows) (hsPkgs."unix" or (buildDepError "unix"));
buildable = true;
modules = [
"GHCi/BreakArray"
"GHCi/BinaryArray"
"GHCi/Message"
"GHCi/ResolvedBCO"
"GHCi/RemoteTypes"
"GHCi/FFI"
"GHCi/InfoTable"
"GHCi/StaticPtrTable"
"GHCi/TH/Binary"
"SizedSeq"
] ++ (pkgs.lib).optionals (flags.ghci) [
"GHCi/Run"
"GHCi/CreateBCO"
"GHCi/ObjLink"
"GHCi/Signals"
"GHCi/TH"
];
};
};
} // rec { src = (pkgs.lib).mkDefault ../libraries/ghci; }

View File

@ -0,0 +1,86 @@
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 = {
specVersion = "1.10";
identifier = { name = "iserv-proxy"; version = "8.8.3"; };
license = "BSD-3-Clause";
copyright = "XXX";
maintainer = "XXX";
author = "XXX";
homepage = "";
url = "";
synopsis = "iserv allows GHC to delegate Tempalte Haskell computations";
description = "GHC can be provided with a path to the iserv binary with\n@-pgmi=/path/to/iserv-bin@, and will in combination with\n@-fexternal-interpreter@, compile Template Haskell though the\n@iserv-bin@ delegate. This is very similar to how ghcjs has been\ncompiling Template Haskell, by spawning a separate delegate (so\ncalled runner on the javascript vm) and evaluating the splices\nthere.\n\niserv can also be used in combination with cross compilation. For\nthis, the @iserv-proxy@ needs to be built on the host, targeting the\nhost (as it is running on the host). @cabal install -flibrary\n-fproxy@ will yield the proxy.\n\nUsing the cabal for the target @arch-platform-target-cabal install\n-flibrary@ will build the required library that contains the ffi\n@startSlave@ function, which needs to be invoked on the target\n(e.g. in an iOS application) to start the remote iserv slave.\n\ncalling the GHC cross compiler with @-fexternal-interpreter\n-pgmi=\$HOME/.cabal/bin/iserv-proxy -opti\\<ip address\\> -opti\\<port\\>@\nwill cause it to compile Template Haskell via the remote at \\<ip address\\>.\n\nThus to get cross compilation with Template Haskell follow the\nfollowing receipt:\n\n* compile the iserv library for your target\n\n> iserv \$ arch-platform-target-cabal install -flibrary\n\n* setup an application for your target that calls the\n* startSlave function. This could be either haskell or your\n* targets ffi capable language, if needed.\n\n> void startSlave(false /* verbose */, 5000 /* port */,\n> \"/path/to/storagelocation/on/target\");\n\n* build the iserv-proxy\n\n> iserv \$ cabal install -flibrary -fproxy\n* Start your iserv-slave app on your target running on say @10.0.0.1:5000@\n* compiler your sources with -fexternal-interpreter and the proxy\n\n> project \$ arch-platform-target-ghc ModuleContainingTH.hs \\\n> -fexternal-interpreter \\\n> -pgmi=\$HOME/.cabal/bin/iserv-proxy \\\n> -opti10.0.0.1 -opti5000\n\nShould something not work as expected, provide @-opti-v@ for verbose\nlogging of the @iserv-proxy@.";
buildType = "Simple";
isLocal = true;
detailLevel = "FullDetails";
licenseFiles = [];
dataDir = "";
dataFiles = [];
extraSrcFiles = [];
extraTmpFiles = [];
extraDocFiles = [];
};
components = {
exes = {
"iserv-proxy" = {
depends = [
(hsPkgs."array" or (buildDepError "array"))
(hsPkgs."base" or (buildDepError "base"))
(hsPkgs."binary" or (buildDepError "binary"))
(hsPkgs."bytestring" or (buildDepError "bytestring"))
(hsPkgs."containers" or (buildDepError "containers"))
(hsPkgs."deepseq" or (buildDepError "deepseq"))
(hsPkgs."directory" or (buildDepError "directory"))
(hsPkgs."network" or (buildDepError "network"))
(hsPkgs."filepath" or (buildDepError "filepath"))
(hsPkgs."ghci" or (buildDepError "ghci"))
(hsPkgs."libiserv" or (buildDepError "libiserv"))
];
buildable = true;
hsSourceDirs = [ "src" ];
mainPath = [ "Main.hs" ];
};
};
};
} // rec { src = (pkgs.lib).mkDefault ../utils/iserv-proxy; }

View File

@ -0,0 +1,85 @@
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 = {
specVersion = "1.10";
identifier = { name = "iserv"; version = "8.8.3"; };
license = "BSD-3-Clause";
copyright = "XXX";
maintainer = "XXX";
author = "XXX";
homepage = "";
url = "";
synopsis = "iserv allows GHC to delegate Template Haskell computations";
description = "GHC can be provided with a path to the iserv binary with\n@-pgmi=/path/to/iserv-bin@, and will in combination with\n@-fexternal-interpreter@, compile Template Haskell though the\n@iserv-bin@ delegate. This is very similar to how ghcjs has been\ncompiling Template Haskell, by spawning a separate delegate (so\ncalled runner on the javascript vm) and evaluating the splices\nthere.\n\nTo use iserv with cross compilers, please see @libraries/libiserv@\nand @utils/iserv-proxy@.";
buildType = "Simple";
isLocal = true;
detailLevel = "FullDetails";
licenseFiles = [];
dataDir = "";
dataFiles = [];
extraSrcFiles = [];
extraTmpFiles = [];
extraDocFiles = [];
};
components = {
exes = {
"iserv" = {
depends = [
(hsPkgs."array" or (buildDepError "array"))
(hsPkgs."base" or (buildDepError "base"))
(hsPkgs."binary" or (buildDepError "binary"))
(hsPkgs."bytestring" or (buildDepError "bytestring"))
(hsPkgs."containers" or (buildDepError "containers"))
(hsPkgs."deepseq" or (buildDepError "deepseq"))
(hsPkgs."ghci" or (buildDepError "ghci"))
(hsPkgs."libiserv" or (buildDepError "libiserv"))
] ++ (pkgs.lib).optional (!system.isWindows) (hsPkgs."unix" or (buildDepError "unix"));
buildable = true;
cSources = [ "cbits/iservmain.c" ];
hsSourceDirs = [ "src" ];
includeDirs = [ "." ];
mainPath = [ "Main.hs" ] ++ [ "" ];
};
};
};
} // rec { src = (pkgs.lib).mkDefault ../utils/iserv; }

View File

@ -0,0 +1,89 @@
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 = { network = false; };
package = {
specVersion = "1.10";
identifier = { name = "libiserv"; version = "8.8.3"; };
license = "BSD-3-Clause";
copyright = "XXX";
maintainer = "XXX";
author = "XXX";
homepage = "";
url = "";
synopsis = "Provides shared functionality between iserv and iserv-proxy";
description = "";
buildType = "Simple";
isLocal = true;
detailLevel = "FullDetails";
licenseFiles = [ "LICENSE" ];
dataDir = "";
dataFiles = [];
extraSrcFiles = [];
extraTmpFiles = [];
extraDocFiles = [];
};
components = {
"library" = {
depends = ([
(hsPkgs."base" or (buildDepError "base"))
(hsPkgs."binary" or (buildDepError "binary"))
(hsPkgs."bytestring" or (buildDepError "bytestring"))
(hsPkgs."containers" or (buildDepError "containers"))
(hsPkgs."deepseq" or (buildDepError "deepseq"))
(hsPkgs."ghci" or (buildDepError "ghci"))
] ++ (pkgs.lib).optionals (flags.network) [
(hsPkgs."network" or (buildDepError "network"))
(hsPkgs."directory" or (buildDepError "directory"))
(hsPkgs."filepath" or (buildDepError "filepath"))
]) ++ (pkgs.lib).optional (!system.isWindows) (hsPkgs."unix" or (buildDepError "unix"));
buildable = true;
modules = [
"Lib"
"GHCi/Utils"
] ++ (pkgs.lib).optionals (flags.network) [
"Remote/Message"
"Remote/Slave"
];
hsSourceDirs = [ "src" ];
};
};
} // rec { src = (pkgs.lib).mkDefault ../libraries/libiserv; }

View File

@ -0,0 +1,77 @@
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 = {
specVersion = "1.10";
identifier = { name = "remote-iserv"; version = "8.8.3"; };
license = "BSD-3-Clause";
copyright = "XXX";
maintainer = "Moritz Angermann <moritz.angermann@gmail.com>";
author = "Moritz Angermann <moritz.angermann@gmail.com>";
homepage = "";
url = "";
synopsis = "iserv allows GHC to delegate Tempalte Haskell computations";
description = "This is a very simple remote runner for iserv, to be used together\nwith iserv-proxy. The foundamental idea is that this this wrapper\nstarts running libiserv on a given port to which iserv-proxy will\nthen connect.";
buildType = "Simple";
isLocal = true;
detailLevel = "FullDetails";
licenseFiles = [];
dataDir = "";
dataFiles = [];
extraSrcFiles = [];
extraTmpFiles = [];
extraDocFiles = [];
};
components = {
exes = {
"remote-iserv" = {
depends = [
(hsPkgs."base" or (buildDepError "base"))
(hsPkgs."libiserv" or (buildDepError "libiserv"))
];
buildable = true;
hsSourceDirs = [ "src" ];
mainPath = [ "Cli.hs" ];
};
};
};
} // rec { src = (pkgs.lib).mkDefault ../utils/remote-iserv; }

View File

@ -0,0 +1,94 @@
{
pkgs = hackage:
{
packages = {
"binary".revision = (((hackage."binary")."0.8.8.0").revisions).default;
"ghc-prim".revision = (((hackage."ghc-prim")."0.5.3").revisions).default;
"unix".revision = (((hackage."unix")."2.7.2.2").revisions).default;
"ghc-heap".revision = (((hackage."ghc-heap")."8.8.3").revisions).default;
"mtl".revision = (((hackage."mtl")."2.2.2").revisions).default;
"rts".revision = (((hackage."rts")."1.0").revisions).default;
"alex".revision = (((hackage."alex")."3.2.5").revisions).default;
"alex".flags.small_base = true;
"deepseq".revision = (((hackage."deepseq")."1.4.4.0").revisions).default;
"network".revision = (((hackage."network")."2.8.0.1").revisions).default;
"directory".revision = (((hackage."directory")."1.3.6.1").revisions).default;
"template-haskell".revision = (((hackage."template-haskell")."2.15.0.0").revisions).default;
"containers".revision = (((hackage."containers")."0.6.2.1").revisions).default;
"base".revision = (((hackage."base")."4.13.0.0").revisions).default;
"time".revision = (((hackage."time")."1.9.3").revisions).default;
"terminfo".revision = (((hackage."terminfo")."0.4.1.4").revisions).default;
"transformers".revision = (((hackage."transformers")."0.5.6.2").revisions).default;
"happy".revision = (((hackage."happy")."1.19.12").revisions).default;
"happy".flags.small_base = true;
"hpc".revision = (((hackage."hpc")."0.6.0.3").revisions).default;
"filepath".revision = (((hackage."filepath")."1.4.2.1").revisions).default;
"process".revision = (((hackage."process")."1.6.8.2").revisions).default;
"pretty".revision = (((hackage."pretty")."1.1.3.6").revisions).default;
"ghc-boot-th".revision = (((hackage."ghc-boot-th")."8.8.3").revisions).default;
"array".revision = (((hackage."array")."0.5.4.0").revisions).default;
"integer-gmp".revision = (((hackage."integer-gmp")."1.0.2.0").revisions).default;
};
compiler = {
version = "8.8.3";
nix-name = "ghc883";
packages = {
"ghc-prim" = "0.5.3";
"ghc-heap" = "8.8.3";
"mtl" = "2.2.2";
"rts" = "1.0";
"deepseq" = "1.4.4.0";
"template-haskell" = "2.15.0.0";
"containers" = "0.6.2.1";
"base" = "4.13.0.0";
"time" = "1.9.3";
"transformers" = "0.5.6.2";
"filepath" = "1.4.2.1";
"pretty" = "1.1.3.6";
"ghc-boot-th" = "8.8.3";
"array" = "0.5.4.0";
"integer-gmp" = "1.0.2.0";
};
};
};
extras = hackage:
{
packages = {
ghc = ./.plan.nix/ghc.nix;
bytestring = ./.plan.nix/bytestring.nix;
remote-iserv = ./.plan.nix/remote-iserv.nix;
iserv-proxy = ./.plan.nix/iserv-proxy.nix;
libiserv = ./.plan.nix/libiserv.nix;
ghc-boot = ./.plan.nix/ghc-boot.nix;
ghci = ./.plan.nix/ghci.nix;
iserv = ./.plan.nix/iserv.nix;
};
};
modules = [
({ lib, ... }:
{
packages = {
"ghc" = {
flags = {
"stage1" = lib.mkOverride 900 false;
"stage2" = lib.mkOverride 900 true;
"integer-gmp" = lib.mkOverride 900 false;
"stage3" = lib.mkOverride 900 false;
"ghci" = lib.mkOverride 900 true;
"integer-simple" = lib.mkOverride 900 false;
"terminfo" = lib.mkOverride 900 true;
};
};
"bytestring" = {
flags = { "integer-simple" = lib.mkOverride 900 false; };
};
"remote-iserv" = { flags = {}; };
"iserv-proxy" = { flags = {}; };
"libiserv" = { flags = { "network" = lib.mkOverride 900 true; }; };
"ghc-boot" = { flags = {}; };
"ghci" = { flags = { "ghci" = lib.mkOverride 900 true; }; };
"iserv" = { flags = {}; };
};
})
];
}

View File

@ -0,0 +1,167 @@
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 = { integer-simple = false; };
package = {
specVersion = "1.10";
identifier = { name = "bytestring"; version = "0.10.8.2"; };
license = "BSD-3-Clause";
copyright = "Copyright (c) Don Stewart 2005-2009,\n(c) Duncan Coutts 2006-2015,\n(c) David Roundy 2003-2005,\n(c) Jasper Van der Jeugt 2010,\n(c) Simon Meier 2010-2013.";
maintainer = "Duncan Coutts <duncan@community.haskell.org>";
author = "Don Stewart,\nDuncan Coutts";
homepage = "https://github.com/haskell/bytestring";
url = "";
synopsis = "Fast, compact, strict and lazy byte strings with a list interface";
description = "An efficient compact, immutable byte string type (both strict and lazy)\nsuitable for binary or 8-bit character data.\n\nThe 'ByteString' type represents sequences of bytes or 8-bit characters.\nIt is suitable for high performance use, both in terms of large data\nquantities, or high speed requirements. The 'ByteString' functions follow\nthe same style as Haskell\\'s ordinary lists, so it is easy to convert code\nfrom using 'String' to 'ByteString'.\n\nTwo 'ByteString' variants are provided:\n\n* Strict 'ByteString's keep the string as a single large array. This\nmakes them convenient for passing data between C and Haskell.\n\n* Lazy 'ByteString's use a lazy list of strict chunks which makes it\nsuitable for I\\/O streaming tasks.\n\nThe @Char8@ modules provide a character-based view of the same\nunderlying 'ByteString' types. This makes it convenient to handle mixed\nbinary and 8-bit character content (which is common in many file formats\nand network protocols).\n\nThe 'Builder' module provides an efficient way to build up 'ByteString's\nin an ad-hoc way by repeated concatenation. This is ideal for fast\nserialisation or pretty printing.\n\nThere is also a 'ShortByteString' type which has a lower memory overhead\nand can can be converted to or from a 'ByteString', but supports very few\nother operations. It is suitable for keeping many short strings in memory.\n\n'ByteString's are not designed for Unicode. For Unicode strings you should\nuse the 'Text' type from the @text@ package.\n\nThese modules are intended to be imported qualified, to avoid name clashes\nwith \"Prelude\" functions, e.g.\n\n> import qualified Data.ByteString as BS";
buildType = "Simple";
isLocal = true;
detailLevel = "FullDetails";
licenseFiles = [ "LICENSE" ];
dataDir = "";
dataFiles = [];
extraSrcFiles = [ "README.md" "Changelog.md" ];
extraTmpFiles = [];
extraDocFiles = [];
};
components = {
"library" = {
depends = ([
(hsPkgs."base" or (buildDepError "base"))
(hsPkgs."ghc-prim" or (buildDepError "ghc-prim"))
(hsPkgs."deepseq" or (buildDepError "deepseq"))
] ++ (pkgs.lib).optionals (compiler.isGhc && (compiler.version).ge "6.11") ((pkgs.lib).optional (!flags.integer-simple) (hsPkgs."integer-gmp" or (buildDepError "integer-gmp")))) ++ (pkgs.lib).optional (compiler.isGhc && (compiler.version).ge "6.9" && (compiler.isGhc && (compiler.version).lt "6.11")) (hsPkgs."integer" or (buildDepError "integer"));
buildable = true;
modules = [
"Data/ByteString/Builder/ASCII"
"Data/ByteString/Builder/Prim/Binary"
"Data/ByteString/Builder/Prim/ASCII"
"Data/ByteString/Builder/Prim/Internal/Floating"
"Data/ByteString/Builder/Prim/Internal/UncheckedShifts"
"Data/ByteString/Builder/Prim/Internal/Base16"
"Data/ByteString"
"Data/ByteString/Char8"
"Data/ByteString/Unsafe"
"Data/ByteString/Internal"
"Data/ByteString/Lazy"
"Data/ByteString/Lazy/Char8"
"Data/ByteString/Lazy/Internal"
"Data/ByteString/Short"
"Data/ByteString/Short/Internal"
"Data/ByteString/Builder"
"Data/ByteString/Builder/Extra"
"Data/ByteString/Builder/Prim"
"Data/ByteString/Builder/Internal"
"Data/ByteString/Builder/Prim/Internal"
"Data/ByteString/Lazy/Builder"
"Data/ByteString/Lazy/Builder/Extras"
"Data/ByteString/Lazy/Builder/ASCII"
];
cSources = [ "cbits/fpstring.c" "cbits/itoa.c" ];
includeDirs = [ "include" ];
includes = [ "fpstring.h" ];
};
tests = {
"prop-compiled" = {
depends = [
(hsPkgs."base" or (buildDepError "base"))
(hsPkgs."ghc-prim" or (buildDepError "ghc-prim"))
(hsPkgs."deepseq" or (buildDepError "deepseq"))
(hsPkgs."random" or (buildDepError "random"))
(hsPkgs."directory" or (buildDepError "directory"))
(hsPkgs."test-framework" or (buildDepError "test-framework"))
(hsPkgs."test-framework-quickcheck2" or (buildDepError "test-framework-quickcheck2"))
(hsPkgs."QuickCheck" or (buildDepError "QuickCheck"))
];
buildable = true;
modules = [ "Rules" "QuickCheckUtils" "TestFramework" ];
cSources = [ "cbits/fpstring.c" ];
hsSourceDirs = [ "." "tests" ];
includeDirs = [ "include" ];
mainPath = [ "Properties.hs" ];
};
"regressions" = {
depends = [
(hsPkgs."base" or (buildDepError "base"))
(hsPkgs."ghc-prim" or (buildDepError "ghc-prim"))
(hsPkgs."deepseq" or (buildDepError "deepseq"))
(hsPkgs."random" or (buildDepError "random"))
(hsPkgs."directory" or (buildDepError "directory"))
(hsPkgs."test-framework" or (buildDepError "test-framework"))
(hsPkgs."test-framework-hunit" or (buildDepError "test-framework-hunit"))
(hsPkgs."HUnit" or (buildDepError "HUnit"))
];
buildable = false;
cSources = [ "cbits/fpstring.c" ];
hsSourceDirs = [ "." "tests" ];
includeDirs = [ "include" ];
mainPath = [ "Regressions.hs" ];
};
"test-builder" = {
depends = [
(hsPkgs."base" or (buildDepError "base"))
(hsPkgs."ghc-prim" or (buildDepError "ghc-prim"))
(hsPkgs."deepseq" or (buildDepError "deepseq"))
(hsPkgs."QuickCheck" or (buildDepError "QuickCheck"))
(hsPkgs."byteorder" or (buildDepError "byteorder"))
(hsPkgs."dlist" or (buildDepError "dlist"))
(hsPkgs."directory" or (buildDepError "directory"))
(hsPkgs."mtl" or (buildDepError "mtl"))
(hsPkgs."HUnit" or (buildDepError "HUnit"))
(hsPkgs."test-framework" or (buildDepError "test-framework"))
(hsPkgs."test-framework-hunit" or (buildDepError "test-framework-hunit"))
(hsPkgs."test-framework-quickcheck2" or (buildDepError "test-framework-quickcheck2"))
];
buildable = true;
modules = [
"Data/ByteString/Builder/Tests"
"Data/ByteString/Builder/Prim/Tests"
"Data/ByteString/Builder/Prim/TestUtils"
"TestFramework"
];
cSources = [ "cbits/fpstring.c" "cbits/itoa.c" ];
hsSourceDirs = [ "." "tests" "tests/builder" ];
includeDirs = [ "include" ];
includes = [ "fpstring.h" ];
mainPath = [ "TestSuite.hs" ];
};
};
};
} // rec { src = (pkgs.lib).mkDefault ../libraries/bytestring; }

View File

@ -0,0 +1,84 @@
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 = {
specVersion = "1.22";
identifier = { name = "ghc-boot"; version = "8.6.5"; };
license = "BSD-3-Clause";
copyright = "";
maintainer = "ghc-devs@haskell.org";
author = "";
homepage = "";
url = "";
synopsis = "Shared functionality between GHC and its boot libraries";
description = "This library is shared between GHC, ghc-pkg, and other boot\nlibraries.\n\nA note about \"GHC.PackageDb\": it only deals with the subset of\nthe package database that the compiler cares about: modules\npaths etc and not package metadata like description, authors\netc. It is thus not a library interface to ghc-pkg and is *not*\nsuitable for modifying GHC package databases.\n\nThe package database format and this library are constructed in\nsuch a way that while ghc-pkg depends on Cabal, the GHC library\nand program do not have to depend on Cabal.";
buildType = "Simple";
isLocal = true;
detailLevel = "FullDetails";
licenseFiles = [ "LICENSE" ];
dataDir = "";
dataFiles = [];
extraSrcFiles = [ "changelog.md" ];
extraTmpFiles = [];
extraDocFiles = [];
};
components = {
"library" = {
depends = [
(hsPkgs."base" or (buildDepError "base"))
(hsPkgs."binary" or (buildDepError "binary"))
(hsPkgs."bytestring" or (buildDepError "bytestring"))
(hsPkgs."directory" or (buildDepError "directory"))
(hsPkgs."filepath" or (buildDepError "filepath"))
(hsPkgs."ghc-boot-th" or (buildDepError "ghc-boot-th"))
];
buildable = true;
modules = [
"GHC/LanguageExtensions"
"GHC/PackageDb"
"GHC/Serialized"
"GHC/ForeignSrcLang"
"GHC/HandleEncoding"
];
};
};
} // rec { src = (pkgs.lib).mkDefault ../libraries/ghc-boot; }

View File

@ -0,0 +1,590 @@
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 = {
ghci = false;
terminfo = true;
stage1 = false;
stage2 = true;
stage3 = false;
};
package = {
specVersion = "1.10";
identifier = { name = "ghc"; version = "8.6.5"; };
license = "BSD-3-Clause";
copyright = "";
maintainer = "glasgow-haskell-users@haskell.org";
author = "The GHC Team";
homepage = "http://www.haskell.org/ghc/";
url = "";
synopsis = "The GHC API";
description = "GHC's functionality can be useful for more things than just\ncompiling Haskell programs. Important use cases are programs\nthat analyse (and perhaps transform) Haskell code. Others\ninclude loading Haskell code dynamically in a GHCi-like manner.\nFor this reason, a lot of GHC's functionality is made available\nthrough this package.";
buildType = "Simple";
isLocal = true;
detailLevel = "FullDetails";
licenseFiles = [ "LICENSE" ];
dataDir = "";
dataFiles = [];
extraSrcFiles = [
"utils/md5.h"
"Unique.h"
"nativeGen/NCG.h"
"parser/cutils.h"
];
extraTmpFiles = [];
extraDocFiles = [];
};
components = {
"library" = {
depends = [
(hsPkgs."base" or (buildDepError "base"))
(hsPkgs."deepseq" or (buildDepError "deepseq"))
(hsPkgs."directory" or (buildDepError "directory"))
(hsPkgs."process" or (buildDepError "process"))
(hsPkgs."bytestring" or (buildDepError "bytestring"))
(hsPkgs."binary" or (buildDepError "binary"))
(hsPkgs."time" or (buildDepError "time"))
(hsPkgs."containers" or (buildDepError "containers"))
(hsPkgs."array" or (buildDepError "array"))
(hsPkgs."filepath" or (buildDepError "filepath"))
(hsPkgs."template-haskell" or (buildDepError "template-haskell"))
(hsPkgs."hpc" or (buildDepError "hpc"))
(hsPkgs."transformers" or (buildDepError "transformers"))
(hsPkgs."ghc-boot" or (buildDepError "ghc-boot"))
(hsPkgs."ghc-boot-th" or (buildDepError "ghc-boot-th"))
(hsPkgs."ghc-heap" or (buildDepError "ghc-heap"))
(hsPkgs."ghci" or (buildDepError "ghci"))
] ++ (if system.isWindows
then [ (hsPkgs."Win32" or (buildDepError "Win32")) ]
else [
(hsPkgs."unix" or (buildDepError "unix"))
] ++ (pkgs.lib).optional (flags.terminfo) (hsPkgs."terminfo" or (buildDepError "terminfo")));
build-tools = [
(hsPkgs.buildPackages.alex or (pkgs.buildPackages.alex or (buildToolDepError "alex")))
(hsPkgs.buildPackages.happy or (pkgs.buildPackages.happy or (buildToolDepError "happy")))
];
buildable = true;
modules = [
"GhcPrelude"
"Ar"
"FileCleanup"
"DriverBkp"
"BkpSyn"
"NameShape"
"RnModIface"
"Avail"
"AsmUtils"
"BasicTypes"
"ConLike"
"DataCon"
"PatSyn"
"Demand"
"Debug"
"Exception"
"FieldLabel"
"GhcMonad"
"Hooks"
"Id"
"IdInfo"
"Lexeme"
"Literal"
"Llvm"
"Llvm/AbsSyn"
"Llvm/MetaData"
"Llvm/PpLlvm"
"Llvm/Types"
"LlvmCodeGen"
"LlvmCodeGen/Base"
"LlvmCodeGen/CodeGen"
"LlvmCodeGen/Data"
"LlvmCodeGen/Ppr"
"LlvmCodeGen/Regs"
"LlvmMangler"
"MkId"
"Module"
"Name"
"NameEnv"
"NameSet"
"OccName"
"RdrName"
"NameCache"
"SrcLoc"
"UniqSupply"
"Unique"
"Var"
"VarEnv"
"VarSet"
"UnVarGraph"
"BlockId"
"CLabel"
"Cmm"
"CmmBuildInfoTables"
"CmmPipeline"
"CmmCallConv"
"CmmCommonBlockElim"
"CmmImplementSwitchPlans"
"CmmContFlowOpt"
"CmmExpr"
"CmmInfo"
"CmmLex"
"CmmLint"
"CmmLive"
"CmmMachOp"
"CmmMonad"
"CmmSwitch"
"CmmNode"
"CmmOpt"
"CmmParse"
"CmmProcPoint"
"CmmSink"
"CmmType"
"CmmUtils"
"CmmLayoutStack"
"EnumSet"
"MkGraph"
"PprBase"
"PprC"
"PprCmm"
"PprCmmDecl"
"PprCmmExpr"
"Bitmap"
"CodeGen/Platform"
"CodeGen/Platform/ARM"
"CodeGen/Platform/ARM64"
"CodeGen/Platform/NoRegs"
"CodeGen/Platform/PPC"
"CodeGen/Platform/PPC_Darwin"
"CodeGen/Platform/SPARC"
"CodeGen/Platform/X86"
"CodeGen/Platform/X86_64"
"CgUtils"
"StgCmm"
"StgCmmBind"
"StgCmmClosure"
"StgCmmCon"
"StgCmmEnv"
"StgCmmExpr"
"StgCmmForeign"
"StgCmmHeap"
"StgCmmHpc"
"StgCmmArgRep"
"StgCmmLayout"
"StgCmmMonad"
"StgCmmPrim"
"StgCmmProf"
"StgCmmTicky"
"StgCmmUtils"
"StgCmmExtCode"
"SMRep"
"CoreArity"
"CoreFVs"
"CoreLint"
"CorePrep"
"CoreSubst"
"CoreOpt"
"CoreSyn"
"TrieMap"
"CoreTidy"
"CoreUnfold"
"CoreUtils"
"CoreMap"
"CoreSeq"
"CoreStats"
"MkCore"
"PprCore"
"PmExpr"
"TmOracle"
"Check"
"Coverage"
"Desugar"
"DsArrows"
"DsBinds"
"DsCCall"
"DsExpr"
"DsForeign"
"DsGRHSs"
"DsListComp"
"DsMonad"
"DsUsage"
"DsUtils"
"ExtractDocs"
"Match"
"MatchCon"
"MatchLit"
"HsBinds"
"HsDecls"
"HsDoc"
"HsExpr"
"HsImpExp"
"HsLit"
"PlaceHolder"
"HsExtension"
"HsInstances"
"HsPat"
"HsSyn"
"HsTypes"
"HsUtils"
"HsDumpAst"
"BinIface"
"BinFingerprint"
"BuildTyCl"
"IfaceEnv"
"IfaceSyn"
"IfaceType"
"ToIface"
"LoadIface"
"MkIface"
"TcIface"
"FlagChecker"
"Annotations"
"CmdLineParser"
"CodeOutput"
"Config"
"Constants"
"DriverMkDepend"
"DriverPhases"
"PipelineMonad"
"DriverPipeline"
"DynFlags"
"ErrUtils"
"Finder"
"GHC"
"GhcMake"
"GhcPlugins"
"DynamicLoading"
"HeaderInfo"
"HscMain"
"HscStats"
"HscTypes"
"InteractiveEval"
"InteractiveEvalTypes"
"PackageConfig"
"Packages"
"PlatformConstants"
"Plugins"
"TcPluginM"
"PprTyThing"
"StaticPtrTable"
"SysTools"
"SysTools/BaseDir"
"SysTools/Terminal"
"SysTools/ExtraObj"
"SysTools/Info"
"SysTools/Process"
"SysTools/Tasks"
"Elf"
"TidyPgm"
"Ctype"
"HaddockUtils"
"Lexer"
"OptCoercion"
"Parser"
"RdrHsSyn"
"ApiAnnotation"
"ForeignCall"
"KnownUniques"
"PrelInfo"
"PrelNames"
"PrelRules"
"PrimOp"
"TysPrim"
"TysWiredIn"
"CostCentre"
"CostCentreState"
"ProfInit"
"RnBinds"
"RnEnv"
"RnExpr"
"RnHsDoc"
"RnNames"
"RnPat"
"RnSource"
"RnSplice"
"RnTypes"
"RnFixity"
"RnUtils"
"RnUnbound"
"CoreMonad"
"CSE"
"FloatIn"
"FloatOut"
"LiberateCase"
"OccurAnal"
"SAT"
"SetLevels"
"SimplCore"
"SimplEnv"
"SimplMonad"
"SimplUtils"
"Simplify"
"SimplStg"
"StgStats"
"StgCse"
"UnariseStg"
"RepType"
"Rules"
"SpecConstr"
"Specialise"
"CoreToStg"
"StgLint"
"StgSyn"
"CallArity"
"DmdAnal"
"Exitify"
"WorkWrap"
"WwLib"
"FamInst"
"Inst"
"TcAnnotations"
"TcArrows"
"TcBinds"
"TcSigs"
"TcClassDcl"
"TcDefaults"
"TcDeriv"
"TcDerivInfer"
"TcDerivUtils"
"TcEnv"
"TcExpr"
"TcForeign"
"TcGenDeriv"
"TcGenFunctor"
"TcGenGenerics"
"TcHsSyn"
"TcHsType"
"TcInstDcls"
"TcMType"
"TcValidity"
"TcMatches"
"TcPat"
"TcPatSyn"
"TcRnDriver"
"TcBackpack"
"TcRnExports"
"TcRnMonad"
"TcRnTypes"
"TcRules"
"TcSimplify"
"TcHoleErrors"
"TcErrors"
"TcTyClsDecls"
"TcTyDecls"
"TcTypeable"
"TcType"
"TcEvidence"
"TcEvTerm"
"TcUnify"
"TcInteract"
"TcCanonical"
"TcFlatten"
"TcSMonad"
"TcTypeNats"
"TcSplice"
"Class"
"Coercion"
"DsMeta"
"THNames"
"FamInstEnv"
"FunDeps"
"InstEnv"
"TyCon"
"CoAxiom"
"Kind"
"Type"
"TyCoRep"
"Unify"
"Bag"
"Binary"
"BooleanFormula"
"BufWrite"
"Digraph"
"Encoding"
"FastFunctions"
"FastMutInt"
"FastString"
"FastStringEnv"
"Fingerprint"
"FiniteMap"
"FV"
"GraphBase"
"GraphColor"
"GraphOps"
"GraphPpr"
"IOEnv"
"Json"
"ListSetOps"
"ListT"
"Maybes"
"MonadUtils"
"OrdList"
"Outputable"
"Pair"
"Panic"
"PprColour"
"Pretty"
"State"
"Stream"
"StringBuffer"
"UniqDFM"
"UniqDSet"
"UniqFM"
"UniqMap"
"UniqSet"
"Util"
"Hoopl/Block"
"Hoopl/Collections"
"Hoopl/Dataflow"
"Hoopl/Graph"
"Hoopl/Label"
"AsmCodeGen"
"TargetReg"
"NCGMonad"
"Instruction"
"Format"
"Reg"
"RegClass"
"PIC"
"Platform"
"CPrim"
"X86/Regs"
"X86/RegInfo"
"X86/Instr"
"X86/Cond"
"X86/Ppr"
"X86/CodeGen"
"PPC/Regs"
"PPC/RegInfo"
"PPC/Instr"
"PPC/Cond"
"PPC/Ppr"
"PPC/CodeGen"
"SPARC/Base"
"SPARC/Regs"
"SPARC/Imm"
"SPARC/AddrMode"
"SPARC/Cond"
"SPARC/Instr"
"SPARC/Stack"
"SPARC/ShortcutJump"
"SPARC/Ppr"
"SPARC/CodeGen"
"SPARC/CodeGen/Amode"
"SPARC/CodeGen/Base"
"SPARC/CodeGen/CondCode"
"SPARC/CodeGen/Gen32"
"SPARC/CodeGen/Gen64"
"SPARC/CodeGen/Sanity"
"SPARC/CodeGen/Expand"
"RegAlloc/Liveness"
"RegAlloc/Graph/Main"
"RegAlloc/Graph/Stats"
"RegAlloc/Graph/ArchBase"
"RegAlloc/Graph/ArchX86"
"RegAlloc/Graph/Coalesce"
"RegAlloc/Graph/Spill"
"RegAlloc/Graph/SpillClean"
"RegAlloc/Graph/SpillCost"
"RegAlloc/Graph/TrivColorable"
"RegAlloc/Linear/Main"
"RegAlloc/Linear/JoinToTargets"
"RegAlloc/Linear/State"
"RegAlloc/Linear/Stats"
"RegAlloc/Linear/FreeRegs"
"RegAlloc/Linear/StackMap"
"RegAlloc/Linear/Base"
"RegAlloc/Linear/X86/FreeRegs"
"RegAlloc/Linear/X86_64/FreeRegs"
"RegAlloc/Linear/PPC/FreeRegs"
"RegAlloc/Linear/SPARC/FreeRegs"
"Dwarf"
"Dwarf/Types"
"Dwarf/Constants"
"Convert"
"ByteCodeTypes"
"ByteCodeAsm"
"ByteCodeGen"
"ByteCodeInstr"
"ByteCodeItbls"
"ByteCodeLink"
"Debugger"
"Linker"
"RtClosureInspect"
"GHCi"
];
cSources = [
"parser/cutils.c"
"ghci/keepCAFsForGHCi.c"
"cbits/genSym.c"
];
hsSourceDirs = [
"backpack"
"basicTypes"
"cmm"
"codeGen"
"coreSyn"
"deSugar"
"ghci"
"hsSyn"
"iface"
"llvmGen"
"main"
"nativeGen"
"parser"
"prelude"
"profiling"
"rename"
"simplCore"
"simplStg"
"specialise"
"stgSyn"
"stranal"
"typecheck"
"types"
"utils"
];
includeDirs = [
"."
"parser"
"utils"
] ++ (pkgs.lib).optional (flags.ghci) "../rts/dist/build";
};
};
} // rec { src = (pkgs.lib).mkDefault ../compiler; }

View File

@ -0,0 +1,101 @@
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 = { ghci = false; };
package = {
specVersion = "1.10";
identifier = { name = "ghci"; version = "8.6.5"; };
license = "BSD-3-Clause";
copyright = "";
maintainer = "ghc-devs@haskell.org";
author = "";
homepage = "";
url = "";
synopsis = "The library supporting GHC's interactive interpreter";
description = "This library offers interfaces which mediate interactions between the\n@ghci@ interactive shell and @iserv@, GHC's out-of-process interpreter\nbackend.";
buildType = "Simple";
isLocal = true;
detailLevel = "FullDetails";
licenseFiles = [ "LICENSE" ];
dataDir = "";
dataFiles = [];
extraSrcFiles = [ "changelog.md" ];
extraTmpFiles = [];
extraDocFiles = [];
};
components = {
"library" = {
depends = [
(hsPkgs."array" or (buildDepError "array"))
(hsPkgs."base" or (buildDepError "base"))
(hsPkgs."binary" or (buildDepError "binary"))
(hsPkgs."bytestring" or (buildDepError "bytestring"))
(hsPkgs."containers" or (buildDepError "containers"))
(hsPkgs."deepseq" or (buildDepError "deepseq"))
(hsPkgs."filepath" or (buildDepError "filepath"))
(hsPkgs."ghc-boot" or (buildDepError "ghc-boot"))
(hsPkgs."ghc-boot-th" or (buildDepError "ghc-boot-th"))
(hsPkgs."ghc-heap" or (buildDepError "ghc-heap"))
(hsPkgs."template-haskell" or (buildDepError "template-haskell"))
(hsPkgs."transformers" or (buildDepError "transformers"))
] ++ (pkgs.lib).optional (!system.isWindows) (hsPkgs."unix" or (buildDepError "unix"));
buildable = true;
modules = [
"GHCi/BreakArray"
"GHCi/BinaryArray"
"GHCi/Message"
"GHCi/ResolvedBCO"
"GHCi/RemoteTypes"
"GHCi/FFI"
"GHCi/InfoTable"
"GHCi/StaticPtrTable"
"GHCi/TH/Binary"
"SizedSeq"
] ++ (pkgs.lib).optionals (flags.ghci) [
"GHCi/Run"
"GHCi/CreateBCO"
"GHCi/ObjLink"
"GHCi/Signals"
"GHCi/TH"
];
};
};
} // rec { src = (pkgs.lib).mkDefault ../libraries/ghci; }

View File

@ -0,0 +1,86 @@
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 = {
specVersion = "1.10";
identifier = { name = "iserv-proxy"; version = "8.6.5"; };
license = "BSD-3-Clause";
copyright = "XXX";
maintainer = "XXX";
author = "XXX";
homepage = "";
url = "";
synopsis = "iserv allows GHC to delegate Tempalte Haskell computations";
description = "GHC can be provided with a path to the iserv binary with\n@-pgmi=/path/to/iserv-bin@, and will in combination with\n@-fexternal-interpreter@, compile Template Haskell though the\n@iserv-bin@ delegate. This is very similar to how ghcjs has been\ncompiling Template Haskell, by spawning a separate delegate (so\ncalled runner on the javascript vm) and evaluating the splices\nthere.\n\niserv can also be used in combination with cross compilation. For\nthis, the @iserv-proxy@ needs to be built on the host, targeting the\nhost (as it is running on the host). @cabal install -flibrary\n-fproxy@ will yield the proxy.\n\nUsing the cabal for the target @arch-platform-target-cabal install\n-flibrary@ will build the required library that contains the ffi\n@startSlave@ function, which needs to be invoked on the target\n(e.g. in an iOS application) to start the remote iserv slave.\n\ncalling the GHC cross compiler with @-fexternal-interpreter\n-pgmi=\$HOME/.cabal/bin/iserv-proxy -opti\\<ip address\\> -opti\\<port\\>@\nwill cause it to compile Template Haskell via the remote at \\<ip address\\>.\n\nThus to get cross compilation with Template Haskell follow the\nfollowing receipt:\n\n* compile the iserv library for your target\n\n> iserv \$ arch-platform-target-cabal install -flibrary\n\n* setup an application for your target that calls the\n* startSlave function. This could be either haskell or your\n* targets ffi capable language, if needed.\n\n> void startSlave(false /* verbose */, 5000 /* port */,\n> \"/path/to/storagelocation/on/target\");\n\n* build the iserv-proxy\n\n> iserv \$ cabal install -flibrary -fproxy\n* Start your iserv-slave app on your target running on say @10.0.0.1:5000@\n* compiler your sources with -fexternal-interpreter and the proxy\n\n> project \$ arch-platform-target-ghc ModuleContainingTH.hs \\\n> -fexternal-interpreter \\\n> -pgmi=\$HOME/.cabal/bin/iserv-proxy \\\n> -opti10.0.0.1 -opti5000\n\nShould something not work as expected, provide @-opti-v@ for verbose\nlogging of the @iserv-proxy@.";
buildType = "Simple";
isLocal = true;
detailLevel = "FullDetails";
licenseFiles = [];
dataDir = "";
dataFiles = [];
extraSrcFiles = [];
extraTmpFiles = [];
extraDocFiles = [];
};
components = {
exes = {
"iserv-proxy" = {
depends = [
(hsPkgs."array" or (buildDepError "array"))
(hsPkgs."base" or (buildDepError "base"))
(hsPkgs."binary" or (buildDepError "binary"))
(hsPkgs."bytestring" or (buildDepError "bytestring"))
(hsPkgs."containers" or (buildDepError "containers"))
(hsPkgs."deepseq" or (buildDepError "deepseq"))
(hsPkgs."directory" or (buildDepError "directory"))
(hsPkgs."network" or (buildDepError "network"))
(hsPkgs."filepath" or (buildDepError "filepath"))
(hsPkgs."ghci" or (buildDepError "ghci"))
(hsPkgs."libiserv" or (buildDepError "libiserv"))
];
buildable = true;
hsSourceDirs = [ "src" ];
mainPath = [ "Main.hs" ];
};
};
};
} // rec { src = (pkgs.lib).mkDefault ../utils/iserv-proxy; }

View File

@ -0,0 +1,85 @@
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 = {
specVersion = "1.10";
identifier = { name = "iserv"; version = "8.6.5"; };
license = "BSD-3-Clause";
copyright = "XXX";
maintainer = "XXX";
author = "XXX";
homepage = "";
url = "";
synopsis = "iserv allows GHC to delegate Tempalte Haskell computations";
description = "GHC can be provided with a path to the iserv binary with\n@-pgmi=/path/to/iserv-bin@, and will in combination with\n@-fexternal-interpreter@, compile Template Haskell though the\n@iserv-bin@ delegate. This is very similar to how ghcjs has been\ncompiling Template Haskell, by spawning a separate delegate (so\ncalled runner on the javascript vm) and evaluating the splices\nthere.\n\nTo use iserv with cross compilers, please see @libraries/libiserv@\nand @utils/iserv-proxy@.";
buildType = "Simple";
isLocal = true;
detailLevel = "FullDetails";
licenseFiles = [];
dataDir = "";
dataFiles = [];
extraSrcFiles = [];
extraTmpFiles = [];
extraDocFiles = [];
};
components = {
exes = {
"iserv" = {
depends = [
(hsPkgs."array" or (buildDepError "array"))
(hsPkgs."base" or (buildDepError "base"))
(hsPkgs."binary" or (buildDepError "binary"))
(hsPkgs."bytestring" or (buildDepError "bytestring"))
(hsPkgs."containers" or (buildDepError "containers"))
(hsPkgs."deepseq" or (buildDepError "deepseq"))
(hsPkgs."ghci" or (buildDepError "ghci"))
(hsPkgs."libiserv" or (buildDepError "libiserv"))
] ++ (pkgs.lib).optional (!system.isWindows) (hsPkgs."unix" or (buildDepError "unix"));
buildable = true;
cSources = [ "cbits/iservmain.c" ];
hsSourceDirs = [ "src" ];
includeDirs = [ "." ];
mainPath = [ "Main.hs" ] ++ [ "" ];
};
};
};
} // rec { src = (pkgs.lib).mkDefault ../utils/iserv; }

View File

@ -0,0 +1,89 @@
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 = { network = false; };
package = {
specVersion = "1.10";
identifier = { name = "libiserv"; version = "8.6.5"; };
license = "BSD-3-Clause";
copyright = "XXX";
maintainer = "XXX";
author = "XXX";
homepage = "";
url = "";
synopsis = "Provides shared functionality between iserv and iserv-proxy";
description = "";
buildType = "Simple";
isLocal = true;
detailLevel = "FullDetails";
licenseFiles = [ "LICENSE" ];
dataDir = "";
dataFiles = [];
extraSrcFiles = [];
extraTmpFiles = [];
extraDocFiles = [];
};
components = {
"library" = {
depends = ([
(hsPkgs."base" or (buildDepError "base"))
(hsPkgs."binary" or (buildDepError "binary"))
(hsPkgs."bytestring" or (buildDepError "bytestring"))
(hsPkgs."containers" or (buildDepError "containers"))
(hsPkgs."deepseq" or (buildDepError "deepseq"))
(hsPkgs."ghci" or (buildDepError "ghci"))
] ++ (pkgs.lib).optionals (flags.network) [
(hsPkgs."network" or (buildDepError "network"))
(hsPkgs."directory" or (buildDepError "directory"))
(hsPkgs."filepath" or (buildDepError "filepath"))
]) ++ (pkgs.lib).optional (!system.isWindows) (hsPkgs."unix" or (buildDepError "unix"));
buildable = true;
modules = [
"Lib"
"GHCi/Utils"
] ++ (pkgs.lib).optionals (flags.network) [
"Remote/Message"
"Remote/Slave"
];
hsSourceDirs = [ "src" ];
};
};
} // rec { src = (pkgs.lib).mkDefault ../libraries/libiserv; }

View File

@ -0,0 +1,77 @@
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 = {
specVersion = "1.10";
identifier = { name = "remote-iserv"; version = "8.6.5"; };
license = "BSD-3-Clause";
copyright = "XXX";
maintainer = "Moritz Angermann <moritz.angermann@gmail.com>";
author = "Moritz Angermann <moritz.angermann@gmail.com>";
homepage = "";
url = "";
synopsis = "iserv allows GHC to delegate Tempalte Haskell computations";
description = "This is a very simple remote runner for iserv, to be used together\nwith iserv-proxy. The foundamental idea is that this this wrapper\nstarts running libiserv on a given port to which iserv-proxy will\nthen connect.";
buildType = "Simple";
isLocal = true;
detailLevel = "FullDetails";
licenseFiles = [];
dataDir = "";
dataFiles = [];
extraSrcFiles = [];
extraTmpFiles = [];
extraDocFiles = [];
};
components = {
exes = {
"remote-iserv" = {
depends = [
(hsPkgs."base" or (buildDepError "base"))
(hsPkgs."libiserv" or (buildDepError "libiserv"))
];
buildable = true;
hsSourceDirs = [ "src" ];
mainPath = [ "Cli.hs" ];
};
};
};
} // rec { src = (pkgs.lib).mkDefault ../utils/remote-iserv; }

View File

@ -0,0 +1,93 @@
{
pkgs = hackage:
{
packages = {
"binary".revision = (((hackage."binary")."0.8.8.0").revisions).default;
"ghc-prim".revision = (((hackage."ghc-prim")."0.5.3").revisions).default;
"unix".revision = (((hackage."unix")."2.7.2.2").revisions).default;
"ghc-heap".revision = (((hackage."ghc-heap")."8.6.5").revisions).default;
"mtl".revision = (((hackage."mtl")."2.2.2").revisions).default;
"rts".revision = (((hackage."rts")."1.0").revisions).default;
"alex".revision = (((hackage."alex")."3.2.5").revisions).default;
"alex".flags.small_base = true;
"deepseq".revision = (((hackage."deepseq")."1.4.4.0").revisions).default;
"network".revision = (((hackage."network")."2.8.0.1").revisions).default;
"directory".revision = (((hackage."directory")."1.3.6.1").revisions).default;
"template-haskell".revision = (((hackage."template-haskell")."2.14.0.0").revisions).default;
"containers".revision = (((hackage."containers")."0.6.0.1").revisions).default;
"base".revision = (((hackage."base")."4.12.0.0").revisions).default;
"time".revision = (((hackage."time")."1.8.0.2").revisions).default;
"terminfo".revision = (((hackage."terminfo")."0.4.1.2").revisions).default;
"transformers".revision = (((hackage."transformers")."0.5.6.2").revisions).default;
"happy".revision = (((hackage."happy")."1.19.12").revisions).default;
"happy".flags.small_base = true;
"hpc".revision = (((hackage."hpc")."0.6.0.3").revisions).default;
"filepath".revision = (((hackage."filepath")."1.4.2.1").revisions).default;
"process".revision = (((hackage."process")."1.6.8.2").revisions).default;
"pretty".revision = (((hackage."pretty")."1.1.3.6").revisions).default;
"ghc-boot-th".revision = (((hackage."ghc-boot-th")."8.6.5").revisions).default;
"array".revision = (((hackage."array")."0.5.3.0").revisions).default;
"integer-gmp".revision = (((hackage."integer-gmp")."1.0.2.0").revisions).default;
};
compiler = {
version = "8.6.5";
nix-name = "ghc865";
packages = {
"ghc-prim" = "0.5.3";
"ghc-heap" = "8.6.5";
"mtl" = "2.2.2";
"rts" = "1.0";
"deepseq" = "1.4.4.0";
"template-haskell" = "2.14.0.0";
"containers" = "0.6.0.1";
"base" = "4.12.0.0";
"time" = "1.8.0.2";
"terminfo" = "0.4.1.2";
"transformers" = "0.5.6.2";
"filepath" = "1.4.2.1";
"pretty" = "1.1.3.6";
"ghc-boot-th" = "8.6.5";
"array" = "0.5.3.0";
"integer-gmp" = "1.0.2.0";
};
};
};
extras = hackage:
{
packages = {
ghc = ./.plan.nix/ghc.nix;
bytestring = ./.plan.nix/bytestring.nix;
remote-iserv = ./.plan.nix/remote-iserv.nix;
iserv-proxy = ./.plan.nix/iserv-proxy.nix;
libiserv = ./.plan.nix/libiserv.nix;
ghc-boot = ./.plan.nix/ghc-boot.nix;
ghci = ./.plan.nix/ghci.nix;
iserv = ./.plan.nix/iserv.nix;
};
};
modules = [
({ lib, ... }:
{
packages = {
"ghc" = {
flags = {
"stage1" = lib.mkOverride 900 false;
"stage2" = lib.mkOverride 900 true;
"stage3" = lib.mkOverride 900 false;
"ghci" = lib.mkOverride 900 true;
"terminfo" = lib.mkOverride 900 true;
};
};
"bytestring" = {
flags = { "integer-simple" = lib.mkOverride 900 false; };
};
"remote-iserv" = { flags = {}; };
"iserv-proxy" = { flags = {}; };
"libiserv" = { flags = { "network" = lib.mkOverride 900 true; }; };
"ghc-boot" = { flags = {}; };
"ghci" = { flags = { "ghci" = lib.mkOverride 900 true; }; };
"iserv" = { flags = {}; };
};
})
];
}

View File

@ -0,0 +1,167 @@
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 = { integer-simple = false; };
package = {
specVersion = "1.10";
identifier = { name = "bytestring"; version = "0.10.10.0"; };
license = "BSD-3-Clause";
copyright = "Copyright (c) Don Stewart 2005-2009,\n(c) Duncan Coutts 2006-2015,\n(c) David Roundy 2003-2005,\n(c) Jasper Van der Jeugt 2010,\n(c) Simon Meier 2010-2013.";
maintainer = "Duncan Coutts <duncan@community.haskell.org>";
author = "Don Stewart,\nDuncan Coutts";
homepage = "https://github.com/haskell/bytestring";
url = "";
synopsis = "Fast, compact, strict and lazy byte strings with a list interface";
description = "An efficient compact, immutable byte string type (both strict and lazy)\nsuitable for binary or 8-bit character data.\n\nThe 'ByteString' type represents sequences of bytes or 8-bit characters.\nIt is suitable for high performance use, both in terms of large data\nquantities, or high speed requirements. The 'ByteString' functions follow\nthe same style as Haskell\\'s ordinary lists, so it is easy to convert code\nfrom using 'String' to 'ByteString'.\n\nTwo 'ByteString' variants are provided:\n\n* Strict 'ByteString's keep the string as a single large array. This\nmakes them convenient for passing data between C and Haskell.\n\n* Lazy 'ByteString's use a lazy list of strict chunks which makes it\nsuitable for I\\/O streaming tasks.\n\nThe @Char8@ modules provide a character-based view of the same\nunderlying 'ByteString' types. This makes it convenient to handle mixed\nbinary and 8-bit character content (which is common in many file formats\nand network protocols).\n\nThe 'Builder' module provides an efficient way to build up 'ByteString's\nin an ad-hoc way by repeated concatenation. This is ideal for fast\nserialisation or pretty printing.\n\nThere is also a 'ShortByteString' type which has a lower memory overhead\nand can can be converted to or from a 'ByteString', but supports very few\nother operations. It is suitable for keeping many short strings in memory.\n\n'ByteString's are not designed for Unicode. For Unicode strings you should\nuse the 'Text' type from the @text@ package.\n\nThese modules are intended to be imported qualified, to avoid name clashes\nwith \"Prelude\" functions, e.g.\n\n> import qualified Data.ByteString as BS";
buildType = "Simple";
isLocal = true;
detailLevel = "FullDetails";
licenseFiles = [ "LICENSE" ];
dataDir = "";
dataFiles = [];
extraSrcFiles = [ "README.md" "Changelog.md" ];
extraTmpFiles = [];
extraDocFiles = [];
};
components = {
"library" = {
depends = ([
(hsPkgs."base" or (buildDepError "base"))
(hsPkgs."ghc-prim" or (buildDepError "ghc-prim"))
(hsPkgs."deepseq" or (buildDepError "deepseq"))
] ++ (pkgs.lib).optionals (compiler.isGhc && (compiler.version).ge "6.11") ((pkgs.lib).optional (!flags.integer-simple) (hsPkgs."integer-gmp" or (buildDepError "integer-gmp")))) ++ (pkgs.lib).optional (compiler.isGhc && (compiler.version).ge "6.9" && (compiler.isGhc && (compiler.version).lt "6.11")) (hsPkgs."integer" or (buildDepError "integer"));
buildable = true;
modules = [
"Data/ByteString/Builder/ASCII"
"Data/ByteString/Builder/Prim/Binary"
"Data/ByteString/Builder/Prim/ASCII"
"Data/ByteString/Builder/Prim/Internal/Floating"
"Data/ByteString/Builder/Prim/Internal/UncheckedShifts"
"Data/ByteString/Builder/Prim/Internal/Base16"
"Data/ByteString"
"Data/ByteString/Char8"
"Data/ByteString/Unsafe"
"Data/ByteString/Internal"
"Data/ByteString/Lazy"
"Data/ByteString/Lazy/Char8"
"Data/ByteString/Lazy/Internal"
"Data/ByteString/Short"
"Data/ByteString/Short/Internal"
"Data/ByteString/Builder"
"Data/ByteString/Builder/Extra"
"Data/ByteString/Builder/Prim"
"Data/ByteString/Builder/Internal"
"Data/ByteString/Builder/Prim/Internal"
"Data/ByteString/Lazy/Builder"
"Data/ByteString/Lazy/Builder/Extras"
"Data/ByteString/Lazy/Builder/ASCII"
];
cSources = [ "cbits/fpstring.c" "cbits/itoa.c" ];
includeDirs = [ "include" ];
includes = [ "fpstring.h" ];
};
tests = {
"prop-compiled" = {
depends = [
(hsPkgs."base" or (buildDepError "base"))
(hsPkgs."ghc-prim" or (buildDepError "ghc-prim"))
(hsPkgs."deepseq" or (buildDepError "deepseq"))
(hsPkgs."random" or (buildDepError "random"))
(hsPkgs."directory" or (buildDepError "directory"))
(hsPkgs."test-framework" or (buildDepError "test-framework"))
(hsPkgs."test-framework-quickcheck2" or (buildDepError "test-framework-quickcheck2"))
(hsPkgs."QuickCheck" or (buildDepError "QuickCheck"))
];
buildable = true;
modules = [ "Rules" "QuickCheckUtils" "TestFramework" ];
cSources = [ "cbits/fpstring.c" ];
hsSourceDirs = [ "." "tests" ];
includeDirs = [ "include" ];
mainPath = [ "Properties.hs" ];
};
"regressions" = {
depends = [
(hsPkgs."base" or (buildDepError "base"))
(hsPkgs."ghc-prim" or (buildDepError "ghc-prim"))
(hsPkgs."deepseq" or (buildDepError "deepseq"))
(hsPkgs."random" or (buildDepError "random"))
(hsPkgs."directory" or (buildDepError "directory"))
(hsPkgs."test-framework" or (buildDepError "test-framework"))
(hsPkgs."test-framework-hunit" or (buildDepError "test-framework-hunit"))
(hsPkgs."HUnit" or (buildDepError "HUnit"))
];
buildable = false;
cSources = [ "cbits/fpstring.c" ];
hsSourceDirs = [ "." "tests" ];
includeDirs = [ "include" ];
mainPath = [ "Regressions.hs" ];
};
"test-builder" = {
depends = [
(hsPkgs."base" or (buildDepError "base"))
(hsPkgs."ghc-prim" or (buildDepError "ghc-prim"))
(hsPkgs."deepseq" or (buildDepError "deepseq"))
(hsPkgs."QuickCheck" or (buildDepError "QuickCheck"))
(hsPkgs."byteorder" or (buildDepError "byteorder"))
(hsPkgs."dlist" or (buildDepError "dlist"))
(hsPkgs."directory" or (buildDepError "directory"))
(hsPkgs."mtl" or (buildDepError "mtl"))
(hsPkgs."HUnit" or (buildDepError "HUnit"))
(hsPkgs."test-framework" or (buildDepError "test-framework"))
(hsPkgs."test-framework-hunit" or (buildDepError "test-framework-hunit"))
(hsPkgs."test-framework-quickcheck2" or (buildDepError "test-framework-quickcheck2"))
];
buildable = true;
modules = [
"Data/ByteString/Builder/Tests"
"Data/ByteString/Builder/Prim/Tests"
"Data/ByteString/Builder/Prim/TestUtils"
"TestFramework"
];
cSources = [ "cbits/fpstring.c" "cbits/itoa.c" ];
hsSourceDirs = [ "." "tests" "tests/builder" ];
includeDirs = [ "include" ];
includes = [ "fpstring.h" ];
mainPath = [ "TestSuite.hs" ];
};
};
};
} // rec { src = (pkgs.lib).mkDefault ../libraries/bytestring; }

View File

@ -0,0 +1,84 @@
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 = {
specVersion = "1.22";
identifier = { name = "ghc-boot"; version = "8.8.2"; };
license = "BSD-3-Clause";
copyright = "";
maintainer = "ghc-devs@haskell.org";
author = "";
homepage = "";
url = "";
synopsis = "Shared functionality between GHC and its boot libraries";
description = "This library is shared between GHC, ghc-pkg, and other boot\nlibraries.\n\nA note about \"GHC.PackageDb\": it only deals with the subset of\nthe package database that the compiler cares about: modules\npaths etc and not package metadata like description, authors\netc. It is thus not a library interface to ghc-pkg and is *not*\nsuitable for modifying GHC package databases.\n\nThe package database format and this library are constructed in\nsuch a way that while ghc-pkg depends on Cabal, the GHC library\nand program do not have to depend on Cabal.";
buildType = "Simple";
isLocal = true;
detailLevel = "FullDetails";
licenseFiles = [ "LICENSE" ];
dataDir = "";
dataFiles = [];
extraSrcFiles = [ "changelog.md" ];
extraTmpFiles = [];
extraDocFiles = [];
};
components = {
"library" = {
depends = [
(hsPkgs."base" or (buildDepError "base"))
(hsPkgs."binary" or (buildDepError "binary"))
(hsPkgs."bytestring" or (buildDepError "bytestring"))
(hsPkgs."directory" or (buildDepError "directory"))
(hsPkgs."filepath" or (buildDepError "filepath"))
(hsPkgs."ghc-boot-th" or (buildDepError "ghc-boot-th"))
];
buildable = true;
modules = [
"GHC/LanguageExtensions"
"GHC/PackageDb"
"GHC/Serialized"
"GHC/ForeignSrcLang"
"GHC/HandleEncoding"
];
};
};
} // rec { src = (pkgs.lib).mkDefault ../libraries/ghc-boot; }

View File

@ -0,0 +1,608 @@
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 = {
ghci = false;
stage1 = false;
stage2 = true;
stage3 = false;
terminfo = true;
integer-simple = false;
integer-gmp = false;
};
package = {
specVersion = "1.10";
identifier = { name = "ghc"; version = "8.8.2"; };
license = "BSD-3-Clause";
copyright = "";
maintainer = "glasgow-haskell-users@haskell.org";
author = "The GHC Team";
homepage = "http://www.haskell.org/ghc/";
url = "";
synopsis = "The GHC API";
description = "GHC's functionality can be useful for more things than just\ncompiling Haskell programs. Important use cases are programs\nthat analyse (and perhaps transform) Haskell code. Others\ninclude loading Haskell code dynamically in a GHCi-like manner.\nFor this reason, a lot of GHC's functionality is made available\nthrough this package.";
buildType = "Simple";
isLocal = true;
detailLevel = "FullDetails";
licenseFiles = [ "LICENSE" ];
dataDir = "";
dataFiles = [];
extraSrcFiles = [
"utils/md5.h"
"Unique.h"
"nativeGen/NCG.h"
"parser/cutils.h"
];
extraTmpFiles = [];
extraDocFiles = [];
};
components = {
"library" = {
depends = ((([
(hsPkgs."base" or (buildDepError "base"))
(hsPkgs."deepseq" or (buildDepError "deepseq"))
(hsPkgs."directory" or (buildDepError "directory"))
(hsPkgs."process" or (buildDepError "process"))
(hsPkgs."bytestring" or (buildDepError "bytestring"))
(hsPkgs."binary" or (buildDepError "binary"))
(hsPkgs."time" or (buildDepError "time"))
(hsPkgs."containers" or (buildDepError "containers"))
(hsPkgs."array" or (buildDepError "array"))
(hsPkgs."filepath" or (buildDepError "filepath"))
(hsPkgs."template-haskell" or (buildDepError "template-haskell"))
(hsPkgs."hpc" or (buildDepError "hpc"))
(hsPkgs."transformers" or (buildDepError "transformers"))
(hsPkgs."ghc-boot" or (buildDepError "ghc-boot"))
(hsPkgs."ghc-boot-th" or (buildDepError "ghc-boot-th"))
(hsPkgs."ghc-heap" or (buildDepError "ghc-heap"))
(hsPkgs."ghci" or (buildDepError "ghci"))
] ++ (if system.isWindows
then [ (hsPkgs."Win32" or (buildDepError "Win32")) ]
else [
(hsPkgs."unix" or (buildDepError "unix"))
] ++ (pkgs.lib).optional (flags.terminfo) (hsPkgs."terminfo" or (buildDepError "terminfo")))) ++ (pkgs.lib).optional (flags.integer-gmp && flags.integer-simple) (hsPkgs."invalid-cabal-flag-settings" or (buildDepError "invalid-cabal-flag-settings"))) ++ (pkgs.lib).optional (flags.integer-gmp) (hsPkgs."integer-gmp" or (buildDepError "integer-gmp"))) ++ (pkgs.lib).optional (flags.integer-simple) (hsPkgs."integer-simple" or (buildDepError "integer-simple"));
build-tools = [
(hsPkgs.buildPackages.alex or (pkgs.buildPackages.alex or (buildToolDepError "alex")))
(hsPkgs.buildPackages.happy or (pkgs.buildPackages.happy or (buildToolDepError "happy")))
];
buildable = true;
modules = [
"GhcPrelude"
"HieTypes"
"HieDebug"
"HieBin"
"HieUtils"
"HieAst"
"Ar"
"FileCleanup"
"DriverBkp"
"BkpSyn"
"NameShape"
"RnModIface"
"Avail"
"AsmUtils"
"BasicTypes"
"ConLike"
"DataCon"
"PatSyn"
"Demand"
"Debug"
"Exception"
"FieldLabel"
"GhcMonad"
"Hooks"
"Id"
"IdInfo"
"Lexeme"
"Literal"
"Llvm"
"Llvm/AbsSyn"
"Llvm/MetaData"
"Llvm/PpLlvm"
"Llvm/Types"
"LlvmCodeGen"
"LlvmCodeGen/Base"
"LlvmCodeGen/CodeGen"
"LlvmCodeGen/Data"
"LlvmCodeGen/Ppr"
"LlvmCodeGen/Regs"
"LlvmMangler"
"MkId"
"Module"
"Name"
"NameEnv"
"NameSet"
"OccName"
"RdrName"
"NameCache"
"SrcLoc"
"UniqSupply"
"Unique"
"Var"
"VarEnv"
"VarSet"
"UnVarGraph"
"BlockId"
"CLabel"
"Cmm"
"CmmBuildInfoTables"
"CmmPipeline"
"CmmCallConv"
"CmmCommonBlockElim"
"CmmImplementSwitchPlans"
"CmmContFlowOpt"
"CmmExpr"
"CmmInfo"
"CmmLex"
"CmmLint"
"CmmLive"
"CmmMachOp"
"CmmMonad"
"CmmSwitch"
"CmmNode"
"CmmOpt"
"CmmParse"
"CmmProcPoint"
"CmmSink"
"CmmType"
"CmmUtils"
"CmmLayoutStack"
"EnumSet"
"MkGraph"
"PprBase"
"PprC"
"PprCmm"
"PprCmmDecl"
"PprCmmExpr"
"Bitmap"
"CodeGen/Platform"
"CodeGen/Platform/ARM"
"CodeGen/Platform/ARM64"
"CodeGen/Platform/NoRegs"
"CodeGen/Platform/PPC"
"CodeGen/Platform/SPARC"
"CodeGen/Platform/X86"
"CodeGen/Platform/X86_64"
"CgUtils"
"StgCmm"
"StgCmmBind"
"StgCmmClosure"
"StgCmmCon"
"StgCmmEnv"
"StgCmmExpr"
"StgCmmForeign"
"StgCmmHeap"
"StgCmmHpc"
"StgCmmArgRep"
"StgCmmLayout"
"StgCmmMonad"
"StgCmmPrim"
"StgCmmProf"
"StgCmmTicky"
"StgCmmUtils"
"StgCmmExtCode"
"SMRep"
"CoreArity"
"CoreFVs"
"CoreLint"
"CorePrep"
"CoreSubst"
"CoreOpt"
"CoreSyn"
"TrieMap"
"CoreTidy"
"CoreUnfold"
"CoreUtils"
"CoreMap"
"CoreSeq"
"CoreStats"
"MkCore"
"PprCore"
"PmExpr"
"TmOracle"
"Check"
"Coverage"
"Desugar"
"DsArrows"
"DsBinds"
"DsCCall"
"DsExpr"
"DsForeign"
"DsGRHSs"
"DsListComp"
"DsMonad"
"DsUsage"
"DsUtils"
"ExtractDocs"
"Match"
"MatchCon"
"MatchLit"
"HsBinds"
"HsDecls"
"HsDoc"
"HsExpr"
"HsImpExp"
"HsLit"
"PlaceHolder"
"HsExtension"
"HsInstances"
"HsPat"
"HsSyn"
"HsTypes"
"HsUtils"
"HsDumpAst"
"BinIface"
"BinFingerprint"
"BuildTyCl"
"IfaceEnv"
"IfaceSyn"
"IfaceType"
"ToIface"
"LoadIface"
"MkIface"
"TcIface"
"FlagChecker"
"Annotations"
"CmdLineParser"
"CodeOutput"
"Config"
"Constants"
"DriverMkDepend"
"DriverPhases"
"PipelineMonad"
"DriverPipeline"
"DynFlags"
"ErrUtils"
"Finder"
"GHC"
"GhcMake"
"GhcPlugins"
"DynamicLoading"
"HeaderInfo"
"HscMain"
"HscStats"
"HscTypes"
"InteractiveEval"
"InteractiveEvalTypes"
"PackageConfig"
"Packages"
"PlatformConstants"
"Plugins"
"TcPluginM"
"PprTyThing"
"StaticPtrTable"
"SysTools"
"SysTools/BaseDir"
"SysTools/Terminal"
"SysTools/ExtraObj"
"SysTools/Info"
"SysTools/Process"
"SysTools/Tasks"
"Elf"
"TidyPgm"
"Ctype"
"HaddockUtils"
"Lexer"
"OptCoercion"
"Parser"
"RdrHsSyn"
"ApiAnnotation"
"ForeignCall"
"KnownUniques"
"PrelInfo"
"PrelNames"
"PrelRules"
"PrimOp"
"TysPrim"
"TysWiredIn"
"CostCentre"
"CostCentreState"
"ProfInit"
"RnBinds"
"RnEnv"
"RnExpr"
"RnHsDoc"
"RnNames"
"RnPat"
"RnSource"
"RnSplice"
"RnTypes"
"RnFixity"
"RnUtils"
"RnUnbound"
"CoreMonad"
"CSE"
"FloatIn"
"FloatOut"
"LiberateCase"
"OccurAnal"
"SAT"
"SetLevels"
"SimplCore"
"SimplEnv"
"SimplMonad"
"SimplUtils"
"Simplify"
"SimplStg"
"StgStats"
"StgCse"
"StgLiftLams"
"StgLiftLams/Analysis"
"StgLiftLams/LiftM"
"StgLiftLams/Transformation"
"StgSubst"
"UnariseStg"
"RepType"
"Rules"
"SpecConstr"
"Specialise"
"CoreToStg"
"StgLint"
"StgSyn"
"StgFVs"
"CallArity"
"DmdAnal"
"Exitify"
"WorkWrap"
"WwLib"
"FamInst"
"ClsInst"
"Inst"
"TcAnnotations"
"TcArrows"
"TcBinds"
"TcSigs"
"TcClassDcl"
"TcDefaults"
"TcDeriv"
"TcDerivInfer"
"TcDerivUtils"
"TcEnv"
"TcExpr"
"TcForeign"
"TcGenDeriv"
"TcGenFunctor"
"TcGenGenerics"
"TcHsSyn"
"TcHsType"
"TcInstDcls"
"TcMType"
"TcValidity"
"TcMatches"
"TcPat"
"TcPatSyn"
"TcRnDriver"
"TcBackpack"
"TcRnExports"
"TcRnMonad"
"TcRnTypes"
"TcRules"
"TcSimplify"
"TcHoleErrors"
"TcErrors"
"TcTyClsDecls"
"TcTyDecls"
"TcTypeable"
"TcTypeableValidity"
"TcType"
"TcEvidence"
"TcEvTerm"
"TcUnify"
"TcInteract"
"TcCanonical"
"TcFlatten"
"TcSMonad"
"TcTypeNats"
"TcSplice"
"Class"
"Coercion"
"DsMeta"
"THNames"
"FamInstEnv"
"FunDeps"
"InstEnv"
"TyCon"
"CoAxiom"
"Kind"
"Type"
"TyCoRep"
"Unify"
"Bag"
"Binary"
"BooleanFormula"
"BufWrite"
"Digraph"
"Encoding"
"FastFunctions"
"FastMutInt"
"FastString"
"FastStringEnv"
"Fingerprint"
"FiniteMap"
"FV"
"GraphBase"
"GraphColor"
"GraphOps"
"GraphPpr"
"IOEnv"
"Json"
"ListSetOps"
"ListT"
"Maybes"
"MonadUtils"
"OrdList"
"Outputable"
"Pair"
"Panic"
"PlainPanic"
"PprColour"
"Pretty"
"State"
"Stream"
"StringBuffer"
"UniqDFM"
"UniqDSet"
"UniqFM"
"UniqMap"
"UniqSet"
"Util"
"Hoopl/Block"
"Hoopl/Collections"
"Hoopl/Dataflow"
"Hoopl/Graph"
"Hoopl/Label"
"AsmCodeGen"
"TargetReg"
"NCGMonad"
"Instruction"
"BlockLayout"
"CFG"
"Format"
"Reg"
"RegClass"
"PIC"
"Platform"
"CPrim"
"X86/Regs"
"X86/RegInfo"
"X86/Instr"
"X86/Cond"
"X86/Ppr"
"X86/CodeGen"
"PPC/Regs"
"PPC/RegInfo"
"PPC/Instr"
"PPC/Cond"
"PPC/Ppr"
"PPC/CodeGen"
"SPARC/Base"
"SPARC/Regs"
"SPARC/Imm"
"SPARC/AddrMode"
"SPARC/Cond"
"SPARC/Instr"
"SPARC/Stack"
"SPARC/ShortcutJump"
"SPARC/Ppr"
"SPARC/CodeGen"
"SPARC/CodeGen/Amode"
"SPARC/CodeGen/Base"
"SPARC/CodeGen/CondCode"
"SPARC/CodeGen/Gen32"
"SPARC/CodeGen/Gen64"
"SPARC/CodeGen/Sanity"
"SPARC/CodeGen/Expand"
"RegAlloc/Liveness"
"RegAlloc/Graph/Main"
"RegAlloc/Graph/Stats"
"RegAlloc/Graph/ArchBase"
"RegAlloc/Graph/ArchX86"
"RegAlloc/Graph/Coalesce"
"RegAlloc/Graph/Spill"
"RegAlloc/Graph/SpillClean"
"RegAlloc/Graph/SpillCost"
"RegAlloc/Graph/TrivColorable"
"RegAlloc/Linear/Main"
"RegAlloc/Linear/JoinToTargets"
"RegAlloc/Linear/State"
"RegAlloc/Linear/Stats"
"RegAlloc/Linear/FreeRegs"
"RegAlloc/Linear/StackMap"
"RegAlloc/Linear/Base"
"RegAlloc/Linear/X86/FreeRegs"
"RegAlloc/Linear/X86_64/FreeRegs"
"RegAlloc/Linear/PPC/FreeRegs"
"RegAlloc/Linear/SPARC/FreeRegs"
"Dwarf"
"Dwarf/Types"
"Dwarf/Constants"
"Convert"
"ByteCodeTypes"
"ByteCodeAsm"
"ByteCodeGen"
"ByteCodeInstr"
"ByteCodeItbls"
"ByteCodeLink"
"Debugger"
"Linker"
"RtClosureInspect"
"GHCi"
];
cSources = [
"parser/cutils.c"
"ghci/keepCAFsForGHCi.c"
"cbits/genSym.c"
];
hsSourceDirs = [
"backpack"
"basicTypes"
"cmm"
"codeGen"
"coreSyn"
"deSugar"
"ghci"
"hsSyn"
"iface"
"llvmGen"
"main"
"nativeGen"
"parser"
"prelude"
"profiling"
"rename"
"simplCore"
"simplStg"
"specialise"
"stgSyn"
"stranal"
"typecheck"
"types"
"utils"
"hieFile"
];
includeDirs = [
"."
"parser"
"utils"
] ++ (pkgs.lib).optional (flags.ghci) "../rts/dist/build";
};
};
} // rec { src = (pkgs.lib).mkDefault ../compiler; }

View File

@ -0,0 +1,101 @@
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 = { ghci = false; };
package = {
specVersion = "1.10";
identifier = { name = "ghci"; version = "8.8.2"; };
license = "BSD-3-Clause";
copyright = "";
maintainer = "ghc-devs@haskell.org";
author = "";
homepage = "";
url = "";
synopsis = "The library supporting GHC's interactive interpreter";
description = "This library offers interfaces which mediate interactions between the\n@ghci@ interactive shell and @iserv@, GHC's out-of-process interpreter\nbackend.";
buildType = "Simple";
isLocal = true;
detailLevel = "FullDetails";
licenseFiles = [ "LICENSE" ];
dataDir = "";
dataFiles = [];
extraSrcFiles = [ "changelog.md" ];
extraTmpFiles = [];
extraDocFiles = [];
};
components = {
"library" = {
depends = [
(hsPkgs."array" or (buildDepError "array"))
(hsPkgs."base" or (buildDepError "base"))
(hsPkgs."binary" or (buildDepError "binary"))
(hsPkgs."bytestring" or (buildDepError "bytestring"))
(hsPkgs."containers" or (buildDepError "containers"))
(hsPkgs."deepseq" or (buildDepError "deepseq"))
(hsPkgs."filepath" or (buildDepError "filepath"))
(hsPkgs."ghc-boot" or (buildDepError "ghc-boot"))
(hsPkgs."ghc-boot-th" or (buildDepError "ghc-boot-th"))
(hsPkgs."ghc-heap" or (buildDepError "ghc-heap"))
(hsPkgs."template-haskell" or (buildDepError "template-haskell"))
(hsPkgs."transformers" or (buildDepError "transformers"))
] ++ (pkgs.lib).optional (!system.isWindows) (hsPkgs."unix" or (buildDepError "unix"));
buildable = true;
modules = [
"GHCi/BreakArray"
"GHCi/BinaryArray"
"GHCi/Message"
"GHCi/ResolvedBCO"
"GHCi/RemoteTypes"
"GHCi/FFI"
"GHCi/InfoTable"
"GHCi/StaticPtrTable"
"GHCi/TH/Binary"
"SizedSeq"
] ++ (pkgs.lib).optionals (flags.ghci) [
"GHCi/Run"
"GHCi/CreateBCO"
"GHCi/ObjLink"
"GHCi/Signals"
"GHCi/TH"
];
};
};
} // rec { src = (pkgs.lib).mkDefault ../libraries/ghci; }

View File

@ -0,0 +1,86 @@
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 = {
specVersion = "1.10";
identifier = { name = "iserv-proxy"; version = "8.8.2"; };
license = "BSD-3-Clause";
copyright = "XXX";
maintainer = "XXX";
author = "XXX";
homepage = "";
url = "";
synopsis = "iserv allows GHC to delegate Tempalte Haskell computations";
description = "GHC can be provided with a path to the iserv binary with\n@-pgmi=/path/to/iserv-bin@, and will in combination with\n@-fexternal-interpreter@, compile Template Haskell though the\n@iserv-bin@ delegate. This is very similar to how ghcjs has been\ncompiling Template Haskell, by spawning a separate delegate (so\ncalled runner on the javascript vm) and evaluating the splices\nthere.\n\niserv can also be used in combination with cross compilation. For\nthis, the @iserv-proxy@ needs to be built on the host, targeting the\nhost (as it is running on the host). @cabal install -flibrary\n-fproxy@ will yield the proxy.\n\nUsing the cabal for the target @arch-platform-target-cabal install\n-flibrary@ will build the required library that contains the ffi\n@startSlave@ function, which needs to be invoked on the target\n(e.g. in an iOS application) to start the remote iserv slave.\n\ncalling the GHC cross compiler with @-fexternal-interpreter\n-pgmi=\$HOME/.cabal/bin/iserv-proxy -opti\\<ip address\\> -opti\\<port\\>@\nwill cause it to compile Template Haskell via the remote at \\<ip address\\>.\n\nThus to get cross compilation with Template Haskell follow the\nfollowing receipt:\n\n* compile the iserv library for your target\n\n> iserv \$ arch-platform-target-cabal install -flibrary\n\n* setup an application for your target that calls the\n* startSlave function. This could be either haskell or your\n* targets ffi capable language, if needed.\n\n> void startSlave(false /* verbose */, 5000 /* port */,\n> \"/path/to/storagelocation/on/target\");\n\n* build the iserv-proxy\n\n> iserv \$ cabal install -flibrary -fproxy\n* Start your iserv-slave app on your target running on say @10.0.0.1:5000@\n* compiler your sources with -fexternal-interpreter and the proxy\n\n> project \$ arch-platform-target-ghc ModuleContainingTH.hs \\\n> -fexternal-interpreter \\\n> -pgmi=\$HOME/.cabal/bin/iserv-proxy \\\n> -opti10.0.0.1 -opti5000\n\nShould something not work as expected, provide @-opti-v@ for verbose\nlogging of the @iserv-proxy@.";
buildType = "Simple";
isLocal = true;
detailLevel = "FullDetails";
licenseFiles = [];
dataDir = "";
dataFiles = [];
extraSrcFiles = [];
extraTmpFiles = [];
extraDocFiles = [];
};
components = {
exes = {
"iserv-proxy" = {
depends = [
(hsPkgs."array" or (buildDepError "array"))
(hsPkgs."base" or (buildDepError "base"))
(hsPkgs."binary" or (buildDepError "binary"))
(hsPkgs."bytestring" or (buildDepError "bytestring"))
(hsPkgs."containers" or (buildDepError "containers"))
(hsPkgs."deepseq" or (buildDepError "deepseq"))
(hsPkgs."directory" or (buildDepError "directory"))
(hsPkgs."network" or (buildDepError "network"))
(hsPkgs."filepath" or (buildDepError "filepath"))
(hsPkgs."ghci" or (buildDepError "ghci"))
(hsPkgs."libiserv" or (buildDepError "libiserv"))
];
buildable = true;
hsSourceDirs = [ "src" ];
mainPath = [ "Main.hs" ];
};
};
};
} // rec { src = (pkgs.lib).mkDefault ../utils/iserv-proxy; }

View File

@ -0,0 +1,85 @@
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 = {
specVersion = "1.10";
identifier = { name = "iserv"; version = "8.8.2"; };
license = "BSD-3-Clause";
copyright = "XXX";
maintainer = "XXX";
author = "XXX";
homepage = "";
url = "";
synopsis = "iserv allows GHC to delegate Template Haskell computations";
description = "GHC can be provided with a path to the iserv binary with\n@-pgmi=/path/to/iserv-bin@, and will in combination with\n@-fexternal-interpreter@, compile Template Haskell though the\n@iserv-bin@ delegate. This is very similar to how ghcjs has been\ncompiling Template Haskell, by spawning a separate delegate (so\ncalled runner on the javascript vm) and evaluating the splices\nthere.\n\nTo use iserv with cross compilers, please see @libraries/libiserv@\nand @utils/iserv-proxy@.";
buildType = "Simple";
isLocal = true;
detailLevel = "FullDetails";
licenseFiles = [];
dataDir = "";
dataFiles = [];
extraSrcFiles = [];
extraTmpFiles = [];
extraDocFiles = [];
};
components = {
exes = {
"iserv" = {
depends = [
(hsPkgs."array" or (buildDepError "array"))
(hsPkgs."base" or (buildDepError "base"))
(hsPkgs."binary" or (buildDepError "binary"))
(hsPkgs."bytestring" or (buildDepError "bytestring"))
(hsPkgs."containers" or (buildDepError "containers"))
(hsPkgs."deepseq" or (buildDepError "deepseq"))
(hsPkgs."ghci" or (buildDepError "ghci"))
(hsPkgs."libiserv" or (buildDepError "libiserv"))
] ++ (pkgs.lib).optional (!system.isWindows) (hsPkgs."unix" or (buildDepError "unix"));
buildable = true;
cSources = [ "cbits/iservmain.c" ];
hsSourceDirs = [ "src" ];
includeDirs = [ "." ];
mainPath = [ "Main.hs" ] ++ [ "" ];
};
};
};
} // rec { src = (pkgs.lib).mkDefault ../utils/iserv; }

View File

@ -0,0 +1,89 @@
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 = { network = false; };
package = {
specVersion = "1.10";
identifier = { name = "libiserv"; version = "8.8.2"; };
license = "BSD-3-Clause";
copyright = "XXX";
maintainer = "XXX";
author = "XXX";
homepage = "";
url = "";
synopsis = "Provides shared functionality between iserv and iserv-proxy";
description = "";
buildType = "Simple";
isLocal = true;
detailLevel = "FullDetails";
licenseFiles = [ "LICENSE" ];
dataDir = "";
dataFiles = [];
extraSrcFiles = [];
extraTmpFiles = [];
extraDocFiles = [];
};
components = {
"library" = {
depends = ([
(hsPkgs."base" or (buildDepError "base"))
(hsPkgs."binary" or (buildDepError "binary"))
(hsPkgs."bytestring" or (buildDepError "bytestring"))
(hsPkgs."containers" or (buildDepError "containers"))
(hsPkgs."deepseq" or (buildDepError "deepseq"))
(hsPkgs."ghci" or (buildDepError "ghci"))
] ++ (pkgs.lib).optionals (flags.network) [
(hsPkgs."network" or (buildDepError "network"))
(hsPkgs."directory" or (buildDepError "directory"))
(hsPkgs."filepath" or (buildDepError "filepath"))
]) ++ (pkgs.lib).optional (!system.isWindows) (hsPkgs."unix" or (buildDepError "unix"));
buildable = true;
modules = [
"Lib"
"GHCi/Utils"
] ++ (pkgs.lib).optionals (flags.network) [
"Remote/Message"
"Remote/Slave"
];
hsSourceDirs = [ "src" ];
};
};
} // rec { src = (pkgs.lib).mkDefault ../libraries/libiserv; }

View File

@ -0,0 +1,77 @@
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 = {
specVersion = "1.10";
identifier = { name = "remote-iserv"; version = "8.8.2"; };
license = "BSD-3-Clause";
copyright = "XXX";
maintainer = "Moritz Angermann <moritz.angermann@gmail.com>";
author = "Moritz Angermann <moritz.angermann@gmail.com>";
homepage = "";
url = "";
synopsis = "iserv allows GHC to delegate Tempalte Haskell computations";
description = "This is a very simple remote runner for iserv, to be used together\nwith iserv-proxy. The foundamental idea is that this this wrapper\nstarts running libiserv on a given port to which iserv-proxy will\nthen connect.";
buildType = "Simple";
isLocal = true;
detailLevel = "FullDetails";
licenseFiles = [];
dataDir = "";
dataFiles = [];
extraSrcFiles = [];
extraTmpFiles = [];
extraDocFiles = [];
};
components = {
exes = {
"remote-iserv" = {
depends = [
(hsPkgs."base" or (buildDepError "base"))
(hsPkgs."libiserv" or (buildDepError "libiserv"))
];
buildable = true;
hsSourceDirs = [ "src" ];
mainPath = [ "Cli.hs" ];
};
};
};
} // rec { src = (pkgs.lib).mkDefault ../utils/remote-iserv; }

View File

@ -0,0 +1,95 @@
{
pkgs = hackage:
{
packages = {
"binary".revision = (((hackage."binary")."0.8.8.0").revisions).default;
"ghc-prim".revision = (((hackage."ghc-prim")."0.5.3").revisions).default;
"unix".revision = (((hackage."unix")."2.7.2.2").revisions).default;
"ghc-heap".revision = (((hackage."ghc-heap")."8.8.2").revisions).default;
"mtl".revision = (((hackage."mtl")."2.2.2").revisions).default;
"rts".revision = (((hackage."rts")."1.0").revisions).default;
"alex".revision = (((hackage."alex")."3.2.5").revisions).default;
"alex".flags.small_base = true;
"deepseq".revision = (((hackage."deepseq")."1.4.4.0").revisions).default;
"network".revision = (((hackage."network")."2.8.0.1").revisions).default;
"directory".revision = (((hackage."directory")."1.3.6.1").revisions).default;
"template-haskell".revision = (((hackage."template-haskell")."2.15.0.0").revisions).default;
"containers".revision = (((hackage."containers")."0.6.2.1").revisions).default;
"base".revision = (((hackage."base")."4.13.0.0").revisions).default;
"time".revision = (((hackage."time")."1.9.3").revisions).default;
"terminfo".revision = (((hackage."terminfo")."0.4.1.4").revisions).default;
"transformers".revision = (((hackage."transformers")."0.5.6.2").revisions).default;
"happy".revision = (((hackage."happy")."1.19.12").revisions).default;
"happy".flags.small_base = true;
"hpc".revision = (((hackage."hpc")."0.6.0.3").revisions).default;
"filepath".revision = (((hackage."filepath")."1.4.2.1").revisions).default;
"process".revision = (((hackage."process")."1.6.8.2").revisions).default;
"pretty".revision = (((hackage."pretty")."1.1.3.6").revisions).default;
"ghc-boot-th".revision = (((hackage."ghc-boot-th")."8.8.2").revisions).default;
"array".revision = (((hackage."array")."0.5.4.0").revisions).default;
"integer-gmp".revision = (((hackage."integer-gmp")."1.0.2.0").revisions).default;
};
compiler = {
version = "8.8.2";
nix-name = "ghc882";
packages = {
"ghc-prim" = "0.5.3";
"ghc-heap" = "8.8.2";
"mtl" = "2.2.2";
"rts" = "1.0";
"deepseq" = "1.4.4.0";
"template-haskell" = "2.15.0.0";
"containers" = "0.6.2.1";
"base" = "4.13.0.0";
"time" = "1.9.3";
"terminfo" = "0.4.1.4";
"transformers" = "0.5.6.2";
"filepath" = "1.4.2.1";
"pretty" = "1.1.3.6";
"ghc-boot-th" = "8.8.2";
"array" = "0.5.4.0";
"integer-gmp" = "1.0.2.0";
};
};
};
extras = hackage:
{
packages = {
ghc = ./.plan.nix/ghc.nix;
bytestring = ./.plan.nix/bytestring.nix;
remote-iserv = ./.plan.nix/remote-iserv.nix;
iserv-proxy = ./.plan.nix/iserv-proxy.nix;
libiserv = ./.plan.nix/libiserv.nix;
ghc-boot = ./.plan.nix/ghc-boot.nix;
ghci = ./.plan.nix/ghci.nix;
iserv = ./.plan.nix/iserv.nix;
};
};
modules = [
({ lib, ... }:
{
packages = {
"ghc" = {
flags = {
"stage1" = lib.mkOverride 900 false;
"stage2" = lib.mkOverride 900 true;
"integer-gmp" = lib.mkOverride 900 false;
"stage3" = lib.mkOverride 900 false;
"ghci" = lib.mkOverride 900 true;
"integer-simple" = lib.mkOverride 900 false;
"terminfo" = lib.mkOverride 900 true;
};
};
"bytestring" = {
flags = { "integer-simple" = lib.mkOverride 900 false; };
};
"remote-iserv" = { flags = {}; };
"iserv-proxy" = { flags = {}; };
"libiserv" = { flags = { "network" = lib.mkOverride 900 true; }; };
"ghc-boot" = { flags = {}; };
"ghci" = { flags = { "ghci" = lib.mkOverride 900 true; }; };
"iserv" = { flags = {}; };
};
})
];
}

View File

@ -0,0 +1,167 @@
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 = { integer-simple = false; };
package = {
specVersion = "1.10";
identifier = { name = "bytestring"; version = "0.10.10.0"; };
license = "BSD-3-Clause";
copyright = "Copyright (c) Don Stewart 2005-2009,\n(c) Duncan Coutts 2006-2015,\n(c) David Roundy 2003-2005,\n(c) Jasper Van der Jeugt 2010,\n(c) Simon Meier 2010-2013.";
maintainer = "Duncan Coutts <duncan@community.haskell.org>";
author = "Don Stewart,\nDuncan Coutts";
homepage = "https://github.com/haskell/bytestring";
url = "";
synopsis = "Fast, compact, strict and lazy byte strings with a list interface";
description = "An efficient compact, immutable byte string type (both strict and lazy)\nsuitable for binary or 8-bit character data.\n\nThe 'ByteString' type represents sequences of bytes or 8-bit characters.\nIt is suitable for high performance use, both in terms of large data\nquantities, or high speed requirements. The 'ByteString' functions follow\nthe same style as Haskell\\'s ordinary lists, so it is easy to convert code\nfrom using 'String' to 'ByteString'.\n\nTwo 'ByteString' variants are provided:\n\n* Strict 'ByteString's keep the string as a single large array. This\nmakes them convenient for passing data between C and Haskell.\n\n* Lazy 'ByteString's use a lazy list of strict chunks which makes it\nsuitable for I\\/O streaming tasks.\n\nThe @Char8@ modules provide a character-based view of the same\nunderlying 'ByteString' types. This makes it convenient to handle mixed\nbinary and 8-bit character content (which is common in many file formats\nand network protocols).\n\nThe 'Builder' module provides an efficient way to build up 'ByteString's\nin an ad-hoc way by repeated concatenation. This is ideal for fast\nserialisation or pretty printing.\n\nThere is also a 'ShortByteString' type which has a lower memory overhead\nand can can be converted to or from a 'ByteString', but supports very few\nother operations. It is suitable for keeping many short strings in memory.\n\n'ByteString's are not designed for Unicode. For Unicode strings you should\nuse the 'Text' type from the @text@ package.\n\nThese modules are intended to be imported qualified, to avoid name clashes\nwith \"Prelude\" functions, e.g.\n\n> import qualified Data.ByteString as BS";
buildType = "Simple";
isLocal = true;
detailLevel = "FullDetails";
licenseFiles = [ "LICENSE" ];
dataDir = "";
dataFiles = [];
extraSrcFiles = [ "README.md" "Changelog.md" ];
extraTmpFiles = [];
extraDocFiles = [];
};
components = {
"library" = {
depends = ([
(hsPkgs."base" or (buildDepError "base"))
(hsPkgs."ghc-prim" or (buildDepError "ghc-prim"))
(hsPkgs."deepseq" or (buildDepError "deepseq"))
] ++ (pkgs.lib).optionals (compiler.isGhc && (compiler.version).ge "6.11") ((pkgs.lib).optional (!flags.integer-simple) (hsPkgs."integer-gmp" or (buildDepError "integer-gmp")))) ++ (pkgs.lib).optional (compiler.isGhc && (compiler.version).ge "6.9" && (compiler.isGhc && (compiler.version).lt "6.11")) (hsPkgs."integer" or (buildDepError "integer"));
buildable = true;
modules = [
"Data/ByteString/Builder/ASCII"
"Data/ByteString/Builder/Prim/Binary"
"Data/ByteString/Builder/Prim/ASCII"
"Data/ByteString/Builder/Prim/Internal/Floating"
"Data/ByteString/Builder/Prim/Internal/UncheckedShifts"
"Data/ByteString/Builder/Prim/Internal/Base16"
"Data/ByteString"
"Data/ByteString/Char8"
"Data/ByteString/Unsafe"
"Data/ByteString/Internal"
"Data/ByteString/Lazy"
"Data/ByteString/Lazy/Char8"
"Data/ByteString/Lazy/Internal"
"Data/ByteString/Short"
"Data/ByteString/Short/Internal"
"Data/ByteString/Builder"
"Data/ByteString/Builder/Extra"
"Data/ByteString/Builder/Prim"
"Data/ByteString/Builder/Internal"
"Data/ByteString/Builder/Prim/Internal"
"Data/ByteString/Lazy/Builder"
"Data/ByteString/Lazy/Builder/Extras"
"Data/ByteString/Lazy/Builder/ASCII"
];
cSources = [ "cbits/fpstring.c" "cbits/itoa.c" ];
includeDirs = [ "include" ];
includes = [ "fpstring.h" ];
};
tests = {
"prop-compiled" = {
depends = [
(hsPkgs."base" or (buildDepError "base"))
(hsPkgs."ghc-prim" or (buildDepError "ghc-prim"))
(hsPkgs."deepseq" or (buildDepError "deepseq"))
(hsPkgs."random" or (buildDepError "random"))
(hsPkgs."directory" or (buildDepError "directory"))
(hsPkgs."test-framework" or (buildDepError "test-framework"))
(hsPkgs."test-framework-quickcheck2" or (buildDepError "test-framework-quickcheck2"))
(hsPkgs."QuickCheck" or (buildDepError "QuickCheck"))
];
buildable = true;
modules = [ "Rules" "QuickCheckUtils" "TestFramework" ];
cSources = [ "cbits/fpstring.c" ];
hsSourceDirs = [ "." "tests" ];
includeDirs = [ "include" ];
mainPath = [ "Properties.hs" ];
};
"regressions" = {
depends = [
(hsPkgs."base" or (buildDepError "base"))
(hsPkgs."ghc-prim" or (buildDepError "ghc-prim"))
(hsPkgs."deepseq" or (buildDepError "deepseq"))
(hsPkgs."random" or (buildDepError "random"))
(hsPkgs."directory" or (buildDepError "directory"))
(hsPkgs."test-framework" or (buildDepError "test-framework"))
(hsPkgs."test-framework-hunit" or (buildDepError "test-framework-hunit"))
(hsPkgs."HUnit" or (buildDepError "HUnit"))
];
buildable = false;
cSources = [ "cbits/fpstring.c" ];
hsSourceDirs = [ "." "tests" ];
includeDirs = [ "include" ];
mainPath = [ "Regressions.hs" ];
};
"test-builder" = {
depends = [
(hsPkgs."base" or (buildDepError "base"))
(hsPkgs."ghc-prim" or (buildDepError "ghc-prim"))
(hsPkgs."deepseq" or (buildDepError "deepseq"))
(hsPkgs."QuickCheck" or (buildDepError "QuickCheck"))
(hsPkgs."byteorder" or (buildDepError "byteorder"))
(hsPkgs."dlist" or (buildDepError "dlist"))
(hsPkgs."directory" or (buildDepError "directory"))
(hsPkgs."mtl" or (buildDepError "mtl"))
(hsPkgs."HUnit" or (buildDepError "HUnit"))
(hsPkgs."test-framework" or (buildDepError "test-framework"))
(hsPkgs."test-framework-hunit" or (buildDepError "test-framework-hunit"))
(hsPkgs."test-framework-quickcheck2" or (buildDepError "test-framework-quickcheck2"))
];
buildable = true;
modules = [
"Data/ByteString/Builder/Tests"
"Data/ByteString/Builder/Prim/Tests"
"Data/ByteString/Builder/Prim/TestUtils"
"TestFramework"
];
cSources = [ "cbits/fpstring.c" "cbits/itoa.c" ];
hsSourceDirs = [ "." "tests" "tests/builder" ];
includeDirs = [ "include" ];
includes = [ "fpstring.h" ];
mainPath = [ "TestSuite.hs" ];
};
};
};
} // rec { src = (pkgs.lib).mkDefault ../libraries/bytestring; }

View File

@ -0,0 +1,84 @@
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 = {
specVersion = "1.22";
identifier = { name = "ghc-boot"; version = "8.8.3"; };
license = "BSD-3-Clause";
copyright = "";
maintainer = "ghc-devs@haskell.org";
author = "";
homepage = "";
url = "";
synopsis = "Shared functionality between GHC and its boot libraries";
description = "This library is shared between GHC, ghc-pkg, and other boot\nlibraries.\n\nA note about \"GHC.PackageDb\": it only deals with the subset of\nthe package database that the compiler cares about: modules\npaths etc and not package metadata like description, authors\netc. It is thus not a library interface to ghc-pkg and is *not*\nsuitable for modifying GHC package databases.\n\nThe package database format and this library are constructed in\nsuch a way that while ghc-pkg depends on Cabal, the GHC library\nand program do not have to depend on Cabal.";
buildType = "Simple";
isLocal = true;
detailLevel = "FullDetails";
licenseFiles = [ "LICENSE" ];
dataDir = "";
dataFiles = [];
extraSrcFiles = [ "changelog.md" ];
extraTmpFiles = [];
extraDocFiles = [];
};
components = {
"library" = {
depends = [
(hsPkgs."base" or (buildDepError "base"))
(hsPkgs."binary" or (buildDepError "binary"))
(hsPkgs."bytestring" or (buildDepError "bytestring"))
(hsPkgs."directory" or (buildDepError "directory"))
(hsPkgs."filepath" or (buildDepError "filepath"))
(hsPkgs."ghc-boot-th" or (buildDepError "ghc-boot-th"))
];
buildable = true;
modules = [
"GHC/LanguageExtensions"
"GHC/PackageDb"
"GHC/Serialized"
"GHC/ForeignSrcLang"
"GHC/HandleEncoding"
];
};
};
} // rec { src = (pkgs.lib).mkDefault ../libraries/ghc-boot; }

View File

@ -0,0 +1,608 @@
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 = {
ghci = false;
stage1 = false;
stage2 = true;
stage3 = false;
terminfo = true;
integer-simple = false;
integer-gmp = false;
};
package = {
specVersion = "1.10";
identifier = { name = "ghc"; version = "8.8.3"; };
license = "BSD-3-Clause";
copyright = "";
maintainer = "glasgow-haskell-users@haskell.org";
author = "The GHC Team";
homepage = "http://www.haskell.org/ghc/";
url = "";
synopsis = "The GHC API";
description = "GHC's functionality can be useful for more things than just\ncompiling Haskell programs. Important use cases are programs\nthat analyse (and perhaps transform) Haskell code. Others\ninclude loading Haskell code dynamically in a GHCi-like manner.\nFor this reason, a lot of GHC's functionality is made available\nthrough this package.";
buildType = "Simple";
isLocal = true;
detailLevel = "FullDetails";
licenseFiles = [ "LICENSE" ];
dataDir = "";
dataFiles = [];
extraSrcFiles = [
"utils/md5.h"
"Unique.h"
"nativeGen/NCG.h"
"parser/cutils.h"
];
extraTmpFiles = [];
extraDocFiles = [];
};
components = {
"library" = {
depends = ((([
(hsPkgs."base" or (buildDepError "base"))
(hsPkgs."deepseq" or (buildDepError "deepseq"))
(hsPkgs."directory" or (buildDepError "directory"))
(hsPkgs."process" or (buildDepError "process"))
(hsPkgs."bytestring" or (buildDepError "bytestring"))
(hsPkgs."binary" or (buildDepError "binary"))
(hsPkgs."time" or (buildDepError "time"))
(hsPkgs."containers" or (buildDepError "containers"))
(hsPkgs."array" or (buildDepError "array"))
(hsPkgs."filepath" or (buildDepError "filepath"))
(hsPkgs."template-haskell" or (buildDepError "template-haskell"))
(hsPkgs."hpc" or (buildDepError "hpc"))
(hsPkgs."transformers" or (buildDepError "transformers"))
(hsPkgs."ghc-boot" or (buildDepError "ghc-boot"))
(hsPkgs."ghc-boot-th" or (buildDepError "ghc-boot-th"))
(hsPkgs."ghc-heap" or (buildDepError "ghc-heap"))
(hsPkgs."ghci" or (buildDepError "ghci"))
] ++ (if system.isWindows
then [ (hsPkgs."Win32" or (buildDepError "Win32")) ]
else [
(hsPkgs."unix" or (buildDepError "unix"))
] ++ (pkgs.lib).optional (flags.terminfo) (hsPkgs."terminfo" or (buildDepError "terminfo")))) ++ (pkgs.lib).optional (flags.integer-gmp && flags.integer-simple) (hsPkgs."invalid-cabal-flag-settings" or (buildDepError "invalid-cabal-flag-settings"))) ++ (pkgs.lib).optional (flags.integer-gmp) (hsPkgs."integer-gmp" or (buildDepError "integer-gmp"))) ++ (pkgs.lib).optional (flags.integer-simple) (hsPkgs."integer-simple" or (buildDepError "integer-simple"));
build-tools = [
(hsPkgs.buildPackages.alex or (pkgs.buildPackages.alex or (buildToolDepError "alex")))
(hsPkgs.buildPackages.happy or (pkgs.buildPackages.happy or (buildToolDepError "happy")))
];
buildable = true;
modules = [
"GhcPrelude"
"HieTypes"
"HieDebug"
"HieBin"
"HieUtils"
"HieAst"
"Ar"
"FileCleanup"
"DriverBkp"
"BkpSyn"
"NameShape"
"RnModIface"
"Avail"
"AsmUtils"
"BasicTypes"
"ConLike"
"DataCon"
"PatSyn"
"Demand"
"Debug"
"Exception"
"FieldLabel"
"GhcMonad"
"Hooks"
"Id"
"IdInfo"
"Lexeme"
"Literal"
"Llvm"
"Llvm/AbsSyn"
"Llvm/MetaData"
"Llvm/PpLlvm"
"Llvm/Types"
"LlvmCodeGen"
"LlvmCodeGen/Base"
"LlvmCodeGen/CodeGen"
"LlvmCodeGen/Data"
"LlvmCodeGen/Ppr"
"LlvmCodeGen/Regs"
"LlvmMangler"
"MkId"
"Module"
"Name"
"NameEnv"
"NameSet"
"OccName"
"RdrName"
"NameCache"
"SrcLoc"
"UniqSupply"
"Unique"
"Var"
"VarEnv"
"VarSet"
"UnVarGraph"
"BlockId"
"CLabel"
"Cmm"
"CmmBuildInfoTables"
"CmmPipeline"
"CmmCallConv"
"CmmCommonBlockElim"
"CmmImplementSwitchPlans"
"CmmContFlowOpt"
"CmmExpr"
"CmmInfo"
"CmmLex"
"CmmLint"
"CmmLive"
"CmmMachOp"
"CmmMonad"
"CmmSwitch"
"CmmNode"
"CmmOpt"
"CmmParse"
"CmmProcPoint"
"CmmSink"
"CmmType"
"CmmUtils"
"CmmLayoutStack"
"EnumSet"
"MkGraph"
"PprBase"
"PprC"
"PprCmm"
"PprCmmDecl"
"PprCmmExpr"
"Bitmap"
"CodeGen/Platform"
"CodeGen/Platform/ARM"
"CodeGen/Platform/ARM64"
"CodeGen/Platform/NoRegs"
"CodeGen/Platform/PPC"
"CodeGen/Platform/SPARC"
"CodeGen/Platform/X86"
"CodeGen/Platform/X86_64"
"CgUtils"
"StgCmm"
"StgCmmBind"
"StgCmmClosure"
"StgCmmCon"
"StgCmmEnv"
"StgCmmExpr"
"StgCmmForeign"
"StgCmmHeap"
"StgCmmHpc"
"StgCmmArgRep"
"StgCmmLayout"
"StgCmmMonad"
"StgCmmPrim"
"StgCmmProf"
"StgCmmTicky"
"StgCmmUtils"
"StgCmmExtCode"
"SMRep"
"CoreArity"
"CoreFVs"
"CoreLint"
"CorePrep"
"CoreSubst"
"CoreOpt"
"CoreSyn"
"TrieMap"
"CoreTidy"
"CoreUnfold"
"CoreUtils"
"CoreMap"
"CoreSeq"
"CoreStats"
"MkCore"
"PprCore"
"PmExpr"
"TmOracle"
"Check"
"Coverage"
"Desugar"
"DsArrows"
"DsBinds"
"DsCCall"
"DsExpr"
"DsForeign"
"DsGRHSs"
"DsListComp"
"DsMonad"
"DsUsage"
"DsUtils"
"ExtractDocs"
"Match"
"MatchCon"
"MatchLit"
"HsBinds"
"HsDecls"
"HsDoc"
"HsExpr"
"HsImpExp"
"HsLit"
"PlaceHolder"
"HsExtension"
"HsInstances"
"HsPat"
"HsSyn"
"HsTypes"
"HsUtils"
"HsDumpAst"
"BinIface"
"BinFingerprint"
"BuildTyCl"
"IfaceEnv"
"IfaceSyn"
"IfaceType"
"ToIface"
"LoadIface"
"MkIface"
"TcIface"
"FlagChecker"
"Annotations"
"CmdLineParser"
"CodeOutput"
"Config"
"Constants"
"DriverMkDepend"
"DriverPhases"
"PipelineMonad"
"DriverPipeline"
"DynFlags"
"ErrUtils"
"Finder"
"GHC"
"GhcMake"
"GhcPlugins"
"DynamicLoading"
"HeaderInfo"
"HscMain"
"HscStats"
"HscTypes"
"InteractiveEval"
"InteractiveEvalTypes"
"PackageConfig"
"Packages"
"PlatformConstants"
"Plugins"
"TcPluginM"
"PprTyThing"
"StaticPtrTable"
"SysTools"
"SysTools/BaseDir"
"SysTools/Terminal"
"SysTools/ExtraObj"
"SysTools/Info"
"SysTools/Process"
"SysTools/Tasks"
"Elf"
"TidyPgm"
"Ctype"
"HaddockUtils"
"Lexer"
"OptCoercion"
"Parser"
"RdrHsSyn"
"ApiAnnotation"
"ForeignCall"
"KnownUniques"
"PrelInfo"
"PrelNames"
"PrelRules"
"PrimOp"
"TysPrim"
"TysWiredIn"
"CostCentre"
"CostCentreState"
"ProfInit"
"RnBinds"
"RnEnv"
"RnExpr"
"RnHsDoc"
"RnNames"
"RnPat"
"RnSource"
"RnSplice"
"RnTypes"
"RnFixity"
"RnUtils"
"RnUnbound"
"CoreMonad"
"CSE"
"FloatIn"
"FloatOut"
"LiberateCase"
"OccurAnal"
"SAT"
"SetLevels"
"SimplCore"
"SimplEnv"
"SimplMonad"
"SimplUtils"
"Simplify"
"SimplStg"
"StgStats"
"StgCse"
"StgLiftLams"
"StgLiftLams/Analysis"
"StgLiftLams/LiftM"
"StgLiftLams/Transformation"
"StgSubst"
"UnariseStg"
"RepType"
"Rules"
"SpecConstr"
"Specialise"
"CoreToStg"
"StgLint"
"StgSyn"
"StgFVs"
"CallArity"
"DmdAnal"
"Exitify"
"WorkWrap"
"WwLib"
"FamInst"
"ClsInst"
"Inst"
"TcAnnotations"
"TcArrows"
"TcBinds"
"TcSigs"
"TcClassDcl"
"TcDefaults"
"TcDeriv"
"TcDerivInfer"
"TcDerivUtils"
"TcEnv"
"TcExpr"
"TcForeign"
"TcGenDeriv"
"TcGenFunctor"
"TcGenGenerics"
"TcHsSyn"
"TcHsType"
"TcInstDcls"
"TcMType"
"TcValidity"
"TcMatches"
"TcPat"
"TcPatSyn"
"TcRnDriver"
"TcBackpack"
"TcRnExports"
"TcRnMonad"
"TcRnTypes"
"TcRules"
"TcSimplify"
"TcHoleErrors"
"TcErrors"
"TcTyClsDecls"
"TcTyDecls"
"TcTypeable"
"TcTypeableValidity"
"TcType"
"TcEvidence"
"TcEvTerm"
"TcUnify"
"TcInteract"
"TcCanonical"
"TcFlatten"
"TcSMonad"
"TcTypeNats"
"TcSplice"
"Class"
"Coercion"
"DsMeta"
"THNames"
"FamInstEnv"
"FunDeps"
"InstEnv"
"TyCon"
"CoAxiom"
"Kind"
"Type"
"TyCoRep"
"Unify"
"Bag"
"Binary"
"BooleanFormula"
"BufWrite"
"Digraph"
"Encoding"
"FastFunctions"
"FastMutInt"
"FastString"
"FastStringEnv"
"Fingerprint"
"FiniteMap"
"FV"
"GraphBase"
"GraphColor"
"GraphOps"
"GraphPpr"
"IOEnv"
"Json"
"ListSetOps"
"ListT"
"Maybes"
"MonadUtils"
"OrdList"
"Outputable"
"Pair"
"Panic"
"PlainPanic"
"PprColour"
"Pretty"
"State"
"Stream"
"StringBuffer"
"UniqDFM"
"UniqDSet"
"UniqFM"
"UniqMap"
"UniqSet"
"Util"
"Hoopl/Block"
"Hoopl/Collections"
"Hoopl/Dataflow"
"Hoopl/Graph"
"Hoopl/Label"
"AsmCodeGen"
"TargetReg"
"NCGMonad"
"Instruction"
"BlockLayout"
"CFG"
"Format"
"Reg"
"RegClass"
"PIC"
"Platform"
"CPrim"
"X86/Regs"
"X86/RegInfo"
"X86/Instr"
"X86/Cond"
"X86/Ppr"
"X86/CodeGen"
"PPC/Regs"
"PPC/RegInfo"
"PPC/Instr"
"PPC/Cond"
"PPC/Ppr"
"PPC/CodeGen"
"SPARC/Base"
"SPARC/Regs"
"SPARC/Imm"
"SPARC/AddrMode"
"SPARC/Cond"
"SPARC/Instr"
"SPARC/Stack"
"SPARC/ShortcutJump"
"SPARC/Ppr"
"SPARC/CodeGen"
"SPARC/CodeGen/Amode"
"SPARC/CodeGen/Base"
"SPARC/CodeGen/CondCode"
"SPARC/CodeGen/Gen32"
"SPARC/CodeGen/Gen64"
"SPARC/CodeGen/Sanity"
"SPARC/CodeGen/Expand"
"RegAlloc/Liveness"
"RegAlloc/Graph/Main"
"RegAlloc/Graph/Stats"
"RegAlloc/Graph/ArchBase"
"RegAlloc/Graph/ArchX86"
"RegAlloc/Graph/Coalesce"
"RegAlloc/Graph/Spill"
"RegAlloc/Graph/SpillClean"
"RegAlloc/Graph/SpillCost"
"RegAlloc/Graph/TrivColorable"
"RegAlloc/Linear/Main"
"RegAlloc/Linear/JoinToTargets"
"RegAlloc/Linear/State"
"RegAlloc/Linear/Stats"
"RegAlloc/Linear/FreeRegs"
"RegAlloc/Linear/StackMap"
"RegAlloc/Linear/Base"
"RegAlloc/Linear/X86/FreeRegs"
"RegAlloc/Linear/X86_64/FreeRegs"
"RegAlloc/Linear/PPC/FreeRegs"
"RegAlloc/Linear/SPARC/FreeRegs"
"Dwarf"
"Dwarf/Types"
"Dwarf/Constants"
"Convert"
"ByteCodeTypes"
"ByteCodeAsm"
"ByteCodeGen"
"ByteCodeInstr"
"ByteCodeItbls"
"ByteCodeLink"
"Debugger"
"Linker"
"RtClosureInspect"
"GHCi"
];
cSources = [
"parser/cutils.c"
"ghci/keepCAFsForGHCi.c"
"cbits/genSym.c"
];
hsSourceDirs = [
"backpack"
"basicTypes"
"cmm"
"codeGen"
"coreSyn"
"deSugar"
"ghci"
"hsSyn"
"iface"
"llvmGen"
"main"
"nativeGen"
"parser"
"prelude"
"profiling"
"rename"
"simplCore"
"simplStg"
"specialise"
"stgSyn"
"stranal"
"typecheck"
"types"
"utils"
"hieFile"
];
includeDirs = [
"."
"parser"
"utils"
] ++ (pkgs.lib).optional (flags.ghci) "../rts/dist/build";
};
};
} // rec { src = (pkgs.lib).mkDefault ../compiler; }

View File

@ -0,0 +1,101 @@
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 = { ghci = false; };
package = {
specVersion = "1.10";
identifier = { name = "ghci"; version = "8.8.3"; };
license = "BSD-3-Clause";
copyright = "";
maintainer = "ghc-devs@haskell.org";
author = "";
homepage = "";
url = "";
synopsis = "The library supporting GHC's interactive interpreter";
description = "This library offers interfaces which mediate interactions between the\n@ghci@ interactive shell and @iserv@, GHC's out-of-process interpreter\nbackend.";
buildType = "Simple";
isLocal = true;
detailLevel = "FullDetails";
licenseFiles = [ "LICENSE" ];
dataDir = "";
dataFiles = [];
extraSrcFiles = [ "changelog.md" ];
extraTmpFiles = [];
extraDocFiles = [];
};
components = {
"library" = {
depends = [
(hsPkgs."array" or (buildDepError "array"))
(hsPkgs."base" or (buildDepError "base"))
(hsPkgs."binary" or (buildDepError "binary"))
(hsPkgs."bytestring" or (buildDepError "bytestring"))
(hsPkgs."containers" or (buildDepError "containers"))
(hsPkgs."deepseq" or (buildDepError "deepseq"))
(hsPkgs."filepath" or (buildDepError "filepath"))
(hsPkgs."ghc-boot" or (buildDepError "ghc-boot"))
(hsPkgs."ghc-boot-th" or (buildDepError "ghc-boot-th"))
(hsPkgs."ghc-heap" or (buildDepError "ghc-heap"))
(hsPkgs."template-haskell" or (buildDepError "template-haskell"))
(hsPkgs."transformers" or (buildDepError "transformers"))
] ++ (pkgs.lib).optional (!system.isWindows) (hsPkgs."unix" or (buildDepError "unix"));
buildable = true;
modules = [
"GHCi/BreakArray"
"GHCi/BinaryArray"
"GHCi/Message"
"GHCi/ResolvedBCO"
"GHCi/RemoteTypes"
"GHCi/FFI"
"GHCi/InfoTable"
"GHCi/StaticPtrTable"
"GHCi/TH/Binary"
"SizedSeq"
] ++ (pkgs.lib).optionals (flags.ghci) [
"GHCi/Run"
"GHCi/CreateBCO"
"GHCi/ObjLink"
"GHCi/Signals"
"GHCi/TH"
];
};
};
} // rec { src = (pkgs.lib).mkDefault ../libraries/ghci; }

View File

@ -0,0 +1,86 @@
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 = {
specVersion = "1.10";
identifier = { name = "iserv-proxy"; version = "8.8.3"; };
license = "BSD-3-Clause";
copyright = "XXX";
maintainer = "XXX";
author = "XXX";
homepage = "";
url = "";
synopsis = "iserv allows GHC to delegate Tempalte Haskell computations";
description = "GHC can be provided with a path to the iserv binary with\n@-pgmi=/path/to/iserv-bin@, and will in combination with\n@-fexternal-interpreter@, compile Template Haskell though the\n@iserv-bin@ delegate. This is very similar to how ghcjs has been\ncompiling Template Haskell, by spawning a separate delegate (so\ncalled runner on the javascript vm) and evaluating the splices\nthere.\n\niserv can also be used in combination with cross compilation. For\nthis, the @iserv-proxy@ needs to be built on the host, targeting the\nhost (as it is running on the host). @cabal install -flibrary\n-fproxy@ will yield the proxy.\n\nUsing the cabal for the target @arch-platform-target-cabal install\n-flibrary@ will build the required library that contains the ffi\n@startSlave@ function, which needs to be invoked on the target\n(e.g. in an iOS application) to start the remote iserv slave.\n\ncalling the GHC cross compiler with @-fexternal-interpreter\n-pgmi=\$HOME/.cabal/bin/iserv-proxy -opti\\<ip address\\> -opti\\<port\\>@\nwill cause it to compile Template Haskell via the remote at \\<ip address\\>.\n\nThus to get cross compilation with Template Haskell follow the\nfollowing receipt:\n\n* compile the iserv library for your target\n\n> iserv \$ arch-platform-target-cabal install -flibrary\n\n* setup an application for your target that calls the\n* startSlave function. This could be either haskell or your\n* targets ffi capable language, if needed.\n\n> void startSlave(false /* verbose */, 5000 /* port */,\n> \"/path/to/storagelocation/on/target\");\n\n* build the iserv-proxy\n\n> iserv \$ cabal install -flibrary -fproxy\n* Start your iserv-slave app on your target running on say @10.0.0.1:5000@\n* compiler your sources with -fexternal-interpreter and the proxy\n\n> project \$ arch-platform-target-ghc ModuleContainingTH.hs \\\n> -fexternal-interpreter \\\n> -pgmi=\$HOME/.cabal/bin/iserv-proxy \\\n> -opti10.0.0.1 -opti5000\n\nShould something not work as expected, provide @-opti-v@ for verbose\nlogging of the @iserv-proxy@.";
buildType = "Simple";
isLocal = true;
detailLevel = "FullDetails";
licenseFiles = [];
dataDir = "";
dataFiles = [];
extraSrcFiles = [];
extraTmpFiles = [];
extraDocFiles = [];
};
components = {
exes = {
"iserv-proxy" = {
depends = [
(hsPkgs."array" or (buildDepError "array"))
(hsPkgs."base" or (buildDepError "base"))
(hsPkgs."binary" or (buildDepError "binary"))
(hsPkgs."bytestring" or (buildDepError "bytestring"))
(hsPkgs."containers" or (buildDepError "containers"))
(hsPkgs."deepseq" or (buildDepError "deepseq"))
(hsPkgs."directory" or (buildDepError "directory"))
(hsPkgs."network" or (buildDepError "network"))
(hsPkgs."filepath" or (buildDepError "filepath"))
(hsPkgs."ghci" or (buildDepError "ghci"))
(hsPkgs."libiserv" or (buildDepError "libiserv"))
];
buildable = true;
hsSourceDirs = [ "src" ];
mainPath = [ "Main.hs" ];
};
};
};
} // rec { src = (pkgs.lib).mkDefault ../utils/iserv-proxy; }

View File

@ -0,0 +1,85 @@
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 = {
specVersion = "1.10";
identifier = { name = "iserv"; version = "8.8.3"; };
license = "BSD-3-Clause";
copyright = "XXX";
maintainer = "XXX";
author = "XXX";
homepage = "";
url = "";
synopsis = "iserv allows GHC to delegate Template Haskell computations";
description = "GHC can be provided with a path to the iserv binary with\n@-pgmi=/path/to/iserv-bin@, and will in combination with\n@-fexternal-interpreter@, compile Template Haskell though the\n@iserv-bin@ delegate. This is very similar to how ghcjs has been\ncompiling Template Haskell, by spawning a separate delegate (so\ncalled runner on the javascript vm) and evaluating the splices\nthere.\n\nTo use iserv with cross compilers, please see @libraries/libiserv@\nand @utils/iserv-proxy@.";
buildType = "Simple";
isLocal = true;
detailLevel = "FullDetails";
licenseFiles = [];
dataDir = "";
dataFiles = [];
extraSrcFiles = [];
extraTmpFiles = [];
extraDocFiles = [];
};
components = {
exes = {
"iserv" = {
depends = [
(hsPkgs."array" or (buildDepError "array"))
(hsPkgs."base" or (buildDepError "base"))
(hsPkgs."binary" or (buildDepError "binary"))
(hsPkgs."bytestring" or (buildDepError "bytestring"))
(hsPkgs."containers" or (buildDepError "containers"))
(hsPkgs."deepseq" or (buildDepError "deepseq"))
(hsPkgs."ghci" or (buildDepError "ghci"))
(hsPkgs."libiserv" or (buildDepError "libiserv"))
] ++ (pkgs.lib).optional (!system.isWindows) (hsPkgs."unix" or (buildDepError "unix"));
buildable = true;
cSources = [ "cbits/iservmain.c" ];
hsSourceDirs = [ "src" ];
includeDirs = [ "." ];
mainPath = [ "Main.hs" ] ++ [ "" ];
};
};
};
} // rec { src = (pkgs.lib).mkDefault ../utils/iserv; }

View File

@ -0,0 +1,89 @@
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 = { network = false; };
package = {
specVersion = "1.10";
identifier = { name = "libiserv"; version = "8.8.3"; };
license = "BSD-3-Clause";
copyright = "XXX";
maintainer = "XXX";
author = "XXX";
homepage = "";
url = "";
synopsis = "Provides shared functionality between iserv and iserv-proxy";
description = "";
buildType = "Simple";
isLocal = true;
detailLevel = "FullDetails";
licenseFiles = [ "LICENSE" ];
dataDir = "";
dataFiles = [];
extraSrcFiles = [];
extraTmpFiles = [];
extraDocFiles = [];
};
components = {
"library" = {
depends = ([
(hsPkgs."base" or (buildDepError "base"))
(hsPkgs."binary" or (buildDepError "binary"))
(hsPkgs."bytestring" or (buildDepError "bytestring"))
(hsPkgs."containers" or (buildDepError "containers"))
(hsPkgs."deepseq" or (buildDepError "deepseq"))
(hsPkgs."ghci" or (buildDepError "ghci"))
] ++ (pkgs.lib).optionals (flags.network) [
(hsPkgs."network" or (buildDepError "network"))
(hsPkgs."directory" or (buildDepError "directory"))
(hsPkgs."filepath" or (buildDepError "filepath"))
]) ++ (pkgs.lib).optional (!system.isWindows) (hsPkgs."unix" or (buildDepError "unix"));
buildable = true;
modules = [
"Lib"
"GHCi/Utils"
] ++ (pkgs.lib).optionals (flags.network) [
"Remote/Message"
"Remote/Slave"
];
hsSourceDirs = [ "src" ];
};
};
} // rec { src = (pkgs.lib).mkDefault ../libraries/libiserv; }

View File

@ -0,0 +1,77 @@
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 = {
specVersion = "1.10";
identifier = { name = "remote-iserv"; version = "8.8.3"; };
license = "BSD-3-Clause";
copyright = "XXX";
maintainer = "Moritz Angermann <moritz.angermann@gmail.com>";
author = "Moritz Angermann <moritz.angermann@gmail.com>";
homepage = "";
url = "";
synopsis = "iserv allows GHC to delegate Tempalte Haskell computations";
description = "This is a very simple remote runner for iserv, to be used together\nwith iserv-proxy. The foundamental idea is that this this wrapper\nstarts running libiserv on a given port to which iserv-proxy will\nthen connect.";
buildType = "Simple";
isLocal = true;
detailLevel = "FullDetails";
licenseFiles = [];
dataDir = "";
dataFiles = [];
extraSrcFiles = [];
extraTmpFiles = [];
extraDocFiles = [];
};
components = {
exes = {
"remote-iserv" = {
depends = [
(hsPkgs."base" or (buildDepError "base"))
(hsPkgs."libiserv" or (buildDepError "libiserv"))
];
buildable = true;
hsSourceDirs = [ "src" ];
mainPath = [ "Cli.hs" ];
};
};
};
} // rec { src = (pkgs.lib).mkDefault ../utils/remote-iserv; }

View File

@ -0,0 +1,95 @@
{
pkgs = hackage:
{
packages = {
"binary".revision = (((hackage."binary")."0.8.8.0").revisions).default;
"ghc-prim".revision = (((hackage."ghc-prim")."0.5.3").revisions).default;
"unix".revision = (((hackage."unix")."2.7.2.2").revisions).default;
"ghc-heap".revision = (((hackage."ghc-heap")."8.8.3").revisions).default;
"mtl".revision = (((hackage."mtl")."2.2.2").revisions).default;
"rts".revision = (((hackage."rts")."1.0").revisions).default;
"alex".revision = (((hackage."alex")."3.2.5").revisions).default;
"alex".flags.small_base = true;
"deepseq".revision = (((hackage."deepseq")."1.4.4.0").revisions).default;
"network".revision = (((hackage."network")."2.8.0.1").revisions).default;
"directory".revision = (((hackage."directory")."1.3.6.1").revisions).default;
"template-haskell".revision = (((hackage."template-haskell")."2.15.0.0").revisions).default;
"containers".revision = (((hackage."containers")."0.6.2.1").revisions).default;
"base".revision = (((hackage."base")."4.13.0.0").revisions).default;
"time".revision = (((hackage."time")."1.9.3").revisions).default;
"terminfo".revision = (((hackage."terminfo")."0.4.1.4").revisions).default;
"transformers".revision = (((hackage."transformers")."0.5.6.2").revisions).default;
"happy".revision = (((hackage."happy")."1.19.12").revisions).default;
"happy".flags.small_base = true;
"hpc".revision = (((hackage."hpc")."0.6.0.3").revisions).default;
"filepath".revision = (((hackage."filepath")."1.4.2.1").revisions).default;
"process".revision = (((hackage."process")."1.6.8.2").revisions).default;
"pretty".revision = (((hackage."pretty")."1.1.3.6").revisions).default;
"ghc-boot-th".revision = (((hackage."ghc-boot-th")."8.8.3").revisions).default;
"array".revision = (((hackage."array")."0.5.4.0").revisions).default;
"integer-gmp".revision = (((hackage."integer-gmp")."1.0.2.0").revisions).default;
};
compiler = {
version = "8.8.3";
nix-name = "ghc883";
packages = {
"ghc-prim" = "0.5.3";
"ghc-heap" = "8.8.3";
"mtl" = "2.2.2";
"rts" = "1.0";
"deepseq" = "1.4.4.0";
"template-haskell" = "2.15.0.0";
"containers" = "0.6.2.1";
"base" = "4.13.0.0";
"time" = "1.9.3";
"terminfo" = "0.4.1.4";
"transformers" = "0.5.6.2";
"filepath" = "1.4.2.1";
"pretty" = "1.1.3.6";
"ghc-boot-th" = "8.8.3";
"array" = "0.5.4.0";
"integer-gmp" = "1.0.2.0";
};
};
};
extras = hackage:
{
packages = {
ghc = ./.plan.nix/ghc.nix;
bytestring = ./.plan.nix/bytestring.nix;
remote-iserv = ./.plan.nix/remote-iserv.nix;
iserv-proxy = ./.plan.nix/iserv-proxy.nix;
libiserv = ./.plan.nix/libiserv.nix;
ghc-boot = ./.plan.nix/ghc-boot.nix;
ghci = ./.plan.nix/ghci.nix;
iserv = ./.plan.nix/iserv.nix;
};
};
modules = [
({ lib, ... }:
{
packages = {
"ghc" = {
flags = {
"stage1" = lib.mkOverride 900 false;
"stage2" = lib.mkOverride 900 true;
"integer-gmp" = lib.mkOverride 900 false;
"stage3" = lib.mkOverride 900 false;
"ghci" = lib.mkOverride 900 true;
"integer-simple" = lib.mkOverride 900 false;
"terminfo" = lib.mkOverride 900 true;
};
};
"bytestring" = {
flags = { "integer-simple" = lib.mkOverride 900 false; };
};
"remote-iserv" = { flags = {}; };
"iserv-proxy" = { flags = {}; };
"libiserv" = { flags = { "network" = lib.mkOverride 900 true; }; };
"ghc-boot" = { flags = {}; };
"ghci" = { flags = { "ghci" = lib.mkOverride 900 true; }; };
"iserv" = { flags = {}; };
};
})
];
}

View File

@ -0,0 +1,167 @@
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 = { integer-simple = false; };
package = {
specVersion = "1.10";
identifier = { name = "bytestring"; version = "0.10.8.2"; };
license = "BSD-3-Clause";
copyright = "Copyright (c) Don Stewart 2005-2009,\n(c) Duncan Coutts 2006-2015,\n(c) David Roundy 2003-2005,\n(c) Jasper Van der Jeugt 2010,\n(c) Simon Meier 2010-2013.";
maintainer = "Duncan Coutts <duncan@community.haskell.org>";
author = "Don Stewart,\nDuncan Coutts";
homepage = "https://github.com/haskell/bytestring";
url = "";
synopsis = "Fast, compact, strict and lazy byte strings with a list interface";
description = "An efficient compact, immutable byte string type (both strict and lazy)\nsuitable for binary or 8-bit character data.\n\nThe 'ByteString' type represents sequences of bytes or 8-bit characters.\nIt is suitable for high performance use, both in terms of large data\nquantities, or high speed requirements. The 'ByteString' functions follow\nthe same style as Haskell\\'s ordinary lists, so it is easy to convert code\nfrom using 'String' to 'ByteString'.\n\nTwo 'ByteString' variants are provided:\n\n* Strict 'ByteString's keep the string as a single large array. This\nmakes them convenient for passing data between C and Haskell.\n\n* Lazy 'ByteString's use a lazy list of strict chunks which makes it\nsuitable for I\\/O streaming tasks.\n\nThe @Char8@ modules provide a character-based view of the same\nunderlying 'ByteString' types. This makes it convenient to handle mixed\nbinary and 8-bit character content (which is common in many file formats\nand network protocols).\n\nThe 'Builder' module provides an efficient way to build up 'ByteString's\nin an ad-hoc way by repeated concatenation. This is ideal for fast\nserialisation or pretty printing.\n\nThere is also a 'ShortByteString' type which has a lower memory overhead\nand can can be converted to or from a 'ByteString', but supports very few\nother operations. It is suitable for keeping many short strings in memory.\n\n'ByteString's are not designed for Unicode. For Unicode strings you should\nuse the 'Text' type from the @text@ package.\n\nThese modules are intended to be imported qualified, to avoid name clashes\nwith \"Prelude\" functions, e.g.\n\n> import qualified Data.ByteString as BS";
buildType = "Simple";
isLocal = true;
detailLevel = "FullDetails";
licenseFiles = [ "LICENSE" ];
dataDir = "";
dataFiles = [];
extraSrcFiles = [ "README.md" "Changelog.md" ];
extraTmpFiles = [];
extraDocFiles = [];
};
components = {
"library" = {
depends = ([
(hsPkgs."base" or (buildDepError "base"))
(hsPkgs."ghc-prim" or (buildDepError "ghc-prim"))
(hsPkgs."deepseq" or (buildDepError "deepseq"))
] ++ (pkgs.lib).optionals (compiler.isGhc && (compiler.version).ge "6.11") ((pkgs.lib).optional (!flags.integer-simple) (hsPkgs."integer-gmp" or (buildDepError "integer-gmp")))) ++ (pkgs.lib).optional (compiler.isGhc && (compiler.version).ge "6.9" && (compiler.isGhc && (compiler.version).lt "6.11")) (hsPkgs."integer" or (buildDepError "integer"));
buildable = true;
modules = [
"Data/ByteString/Builder/ASCII"
"Data/ByteString/Builder/Prim/Binary"
"Data/ByteString/Builder/Prim/ASCII"
"Data/ByteString/Builder/Prim/Internal/Floating"
"Data/ByteString/Builder/Prim/Internal/UncheckedShifts"
"Data/ByteString/Builder/Prim/Internal/Base16"
"Data/ByteString"
"Data/ByteString/Char8"
"Data/ByteString/Unsafe"
"Data/ByteString/Internal"
"Data/ByteString/Lazy"
"Data/ByteString/Lazy/Char8"
"Data/ByteString/Lazy/Internal"
"Data/ByteString/Short"
"Data/ByteString/Short/Internal"
"Data/ByteString/Builder"
"Data/ByteString/Builder/Extra"
"Data/ByteString/Builder/Prim"
"Data/ByteString/Builder/Internal"
"Data/ByteString/Builder/Prim/Internal"
"Data/ByteString/Lazy/Builder"
"Data/ByteString/Lazy/Builder/Extras"
"Data/ByteString/Lazy/Builder/ASCII"
];
cSources = [ "cbits/fpstring.c" "cbits/itoa.c" ];
includeDirs = [ "include" ];
includes = [ "fpstring.h" ];
};
tests = {
"prop-compiled" = {
depends = [
(hsPkgs."base" or (buildDepError "base"))
(hsPkgs."ghc-prim" or (buildDepError "ghc-prim"))
(hsPkgs."deepseq" or (buildDepError "deepseq"))
(hsPkgs."random" or (buildDepError "random"))
(hsPkgs."directory" or (buildDepError "directory"))
(hsPkgs."test-framework" or (buildDepError "test-framework"))
(hsPkgs."test-framework-quickcheck2" or (buildDepError "test-framework-quickcheck2"))
(hsPkgs."QuickCheck" or (buildDepError "QuickCheck"))
];
buildable = true;
modules = [ "Rules" "QuickCheckUtils" "TestFramework" ];
cSources = [ "cbits/fpstring.c" ];
hsSourceDirs = [ "." "tests" ];
includeDirs = [ "include" ];
mainPath = [ "Properties.hs" ];
};
"regressions" = {
depends = [
(hsPkgs."base" or (buildDepError "base"))
(hsPkgs."ghc-prim" or (buildDepError "ghc-prim"))
(hsPkgs."deepseq" or (buildDepError "deepseq"))
(hsPkgs."random" or (buildDepError "random"))
(hsPkgs."directory" or (buildDepError "directory"))
(hsPkgs."test-framework" or (buildDepError "test-framework"))
(hsPkgs."test-framework-hunit" or (buildDepError "test-framework-hunit"))
(hsPkgs."HUnit" or (buildDepError "HUnit"))
];
buildable = false;
cSources = [ "cbits/fpstring.c" ];
hsSourceDirs = [ "." "tests" ];
includeDirs = [ "include" ];
mainPath = [ "Regressions.hs" ];
};
"test-builder" = {
depends = [
(hsPkgs."base" or (buildDepError "base"))
(hsPkgs."ghc-prim" or (buildDepError "ghc-prim"))
(hsPkgs."deepseq" or (buildDepError "deepseq"))
(hsPkgs."QuickCheck" or (buildDepError "QuickCheck"))
(hsPkgs."byteorder" or (buildDepError "byteorder"))
(hsPkgs."dlist" or (buildDepError "dlist"))
(hsPkgs."directory" or (buildDepError "directory"))
(hsPkgs."mtl" or (buildDepError "mtl"))
(hsPkgs."HUnit" or (buildDepError "HUnit"))
(hsPkgs."test-framework" or (buildDepError "test-framework"))
(hsPkgs."test-framework-hunit" or (buildDepError "test-framework-hunit"))
(hsPkgs."test-framework-quickcheck2" or (buildDepError "test-framework-quickcheck2"))
];
buildable = true;
modules = [
"Data/ByteString/Builder/Tests"
"Data/ByteString/Builder/Prim/Tests"
"Data/ByteString/Builder/Prim/TestUtils"
"TestFramework"
];
cSources = [ "cbits/fpstring.c" "cbits/itoa.c" ];
hsSourceDirs = [ "." "tests" "tests/builder" ];
includeDirs = [ "include" ];
includes = [ "fpstring.h" ];
mainPath = [ "TestSuite.hs" ];
};
};
};
} // rec { src = (pkgs.lib).mkDefault ../libraries/bytestring; }

View File

@ -0,0 +1,84 @@
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 = {
specVersion = "1.22";
identifier = { name = "ghc-boot"; version = "8.6.5"; };
license = "BSD-3-Clause";
copyright = "";
maintainer = "ghc-devs@haskell.org";
author = "";
homepage = "";
url = "";
synopsis = "Shared functionality between GHC and its boot libraries";
description = "This library is shared between GHC, ghc-pkg, and other boot\nlibraries.\n\nA note about \"GHC.PackageDb\": it only deals with the subset of\nthe package database that the compiler cares about: modules\npaths etc and not package metadata like description, authors\netc. It is thus not a library interface to ghc-pkg and is *not*\nsuitable for modifying GHC package databases.\n\nThe package database format and this library are constructed in\nsuch a way that while ghc-pkg depends on Cabal, the GHC library\nand program do not have to depend on Cabal.";
buildType = "Simple";
isLocal = true;
detailLevel = "FullDetails";
licenseFiles = [ "LICENSE" ];
dataDir = "";
dataFiles = [];
extraSrcFiles = [ "changelog.md" ];
extraTmpFiles = [];
extraDocFiles = [];
};
components = {
"library" = {
depends = [
(hsPkgs."base" or (buildDepError "base"))
(hsPkgs."binary" or (buildDepError "binary"))
(hsPkgs."bytestring" or (buildDepError "bytestring"))
(hsPkgs."directory" or (buildDepError "directory"))
(hsPkgs."filepath" or (buildDepError "filepath"))
(hsPkgs."ghc-boot-th" or (buildDepError "ghc-boot-th"))
];
buildable = true;
modules = [
"GHC/LanguageExtensions"
"GHC/PackageDb"
"GHC/Serialized"
"GHC/ForeignSrcLang"
"GHC/HandleEncoding"
];
};
};
} // rec { src = (pkgs.lib).mkDefault ../libraries/ghc-boot; }

View File

@ -0,0 +1,590 @@
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 = {
ghci = false;
terminfo = true;
stage1 = false;
stage2 = true;
stage3 = false;
};
package = {
specVersion = "1.10";
identifier = { name = "ghc"; version = "8.6.5"; };
license = "BSD-3-Clause";
copyright = "";
maintainer = "glasgow-haskell-users@haskell.org";
author = "The GHC Team";
homepage = "http://www.haskell.org/ghc/";
url = "";
synopsis = "The GHC API";
description = "GHC's functionality can be useful for more things than just\ncompiling Haskell programs. Important use cases are programs\nthat analyse (and perhaps transform) Haskell code. Others\ninclude loading Haskell code dynamically in a GHCi-like manner.\nFor this reason, a lot of GHC's functionality is made available\nthrough this package.";
buildType = "Simple";
isLocal = true;
detailLevel = "FullDetails";
licenseFiles = [ "LICENSE" ];
dataDir = "";
dataFiles = [];
extraSrcFiles = [
"utils/md5.h"
"Unique.h"
"nativeGen/NCG.h"
"parser/cutils.h"
];
extraTmpFiles = [];
extraDocFiles = [];
};
components = {
"library" = {
depends = [
(hsPkgs."base" or (buildDepError "base"))
(hsPkgs."deepseq" or (buildDepError "deepseq"))
(hsPkgs."directory" or (buildDepError "directory"))
(hsPkgs."process" or (buildDepError "process"))
(hsPkgs."bytestring" or (buildDepError "bytestring"))
(hsPkgs."binary" or (buildDepError "binary"))
(hsPkgs."time" or (buildDepError "time"))
(hsPkgs."containers" or (buildDepError "containers"))
(hsPkgs."array" or (buildDepError "array"))
(hsPkgs."filepath" or (buildDepError "filepath"))
(hsPkgs."template-haskell" or (buildDepError "template-haskell"))
(hsPkgs."hpc" or (buildDepError "hpc"))
(hsPkgs."transformers" or (buildDepError "transformers"))
(hsPkgs."ghc-boot" or (buildDepError "ghc-boot"))
(hsPkgs."ghc-boot-th" or (buildDepError "ghc-boot-th"))
(hsPkgs."ghc-heap" or (buildDepError "ghc-heap"))
(hsPkgs."ghci" or (buildDepError "ghci"))
] ++ (if system.isWindows
then [ (hsPkgs."Win32" or (buildDepError "Win32")) ]
else [
(hsPkgs."unix" or (buildDepError "unix"))
] ++ (pkgs.lib).optional (flags.terminfo) (hsPkgs."terminfo" or (buildDepError "terminfo")));
build-tools = [
(hsPkgs.buildPackages.alex or (pkgs.buildPackages.alex or (buildToolDepError "alex")))
(hsPkgs.buildPackages.happy or (pkgs.buildPackages.happy or (buildToolDepError "happy")))
];
buildable = true;
modules = [
"GhcPrelude"
"Ar"
"FileCleanup"
"DriverBkp"
"BkpSyn"
"NameShape"
"RnModIface"
"Avail"
"AsmUtils"
"BasicTypes"
"ConLike"
"DataCon"
"PatSyn"
"Demand"
"Debug"
"Exception"
"FieldLabel"
"GhcMonad"
"Hooks"
"Id"
"IdInfo"
"Lexeme"
"Literal"
"Llvm"
"Llvm/AbsSyn"
"Llvm/MetaData"
"Llvm/PpLlvm"
"Llvm/Types"
"LlvmCodeGen"
"LlvmCodeGen/Base"
"LlvmCodeGen/CodeGen"
"LlvmCodeGen/Data"
"LlvmCodeGen/Ppr"
"LlvmCodeGen/Regs"
"LlvmMangler"
"MkId"
"Module"
"Name"
"NameEnv"
"NameSet"
"OccName"
"RdrName"
"NameCache"
"SrcLoc"
"UniqSupply"
"Unique"
"Var"
"VarEnv"
"VarSet"
"UnVarGraph"
"BlockId"
"CLabel"
"Cmm"
"CmmBuildInfoTables"
"CmmPipeline"
"CmmCallConv"
"CmmCommonBlockElim"
"CmmImplementSwitchPlans"
"CmmContFlowOpt"
"CmmExpr"
"CmmInfo"
"CmmLex"
"CmmLint"
"CmmLive"
"CmmMachOp"
"CmmMonad"
"CmmSwitch"
"CmmNode"
"CmmOpt"
"CmmParse"
"CmmProcPoint"
"CmmSink"
"CmmType"
"CmmUtils"
"CmmLayoutStack"
"EnumSet"
"MkGraph"
"PprBase"
"PprC"
"PprCmm"
"PprCmmDecl"
"PprCmmExpr"
"Bitmap"
"CodeGen/Platform"
"CodeGen/Platform/ARM"
"CodeGen/Platform/ARM64"
"CodeGen/Platform/NoRegs"
"CodeGen/Platform/PPC"
"CodeGen/Platform/PPC_Darwin"
"CodeGen/Platform/SPARC"
"CodeGen/Platform/X86"
"CodeGen/Platform/X86_64"
"CgUtils"
"StgCmm"
"StgCmmBind"
"StgCmmClosure"
"StgCmmCon"
"StgCmmEnv"
"StgCmmExpr"
"StgCmmForeign"
"StgCmmHeap"
"StgCmmHpc"
"StgCmmArgRep"
"StgCmmLayout"
"StgCmmMonad"
"StgCmmPrim"
"StgCmmProf"
"StgCmmTicky"
"StgCmmUtils"
"StgCmmExtCode"
"SMRep"
"CoreArity"
"CoreFVs"
"CoreLint"
"CorePrep"
"CoreSubst"
"CoreOpt"
"CoreSyn"
"TrieMap"
"CoreTidy"
"CoreUnfold"
"CoreUtils"
"CoreMap"
"CoreSeq"
"CoreStats"
"MkCore"
"PprCore"
"PmExpr"
"TmOracle"
"Check"
"Coverage"
"Desugar"
"DsArrows"
"DsBinds"
"DsCCall"
"DsExpr"
"DsForeign"
"DsGRHSs"
"DsListComp"
"DsMonad"
"DsUsage"
"DsUtils"
"ExtractDocs"
"Match"
"MatchCon"
"MatchLit"
"HsBinds"
"HsDecls"
"HsDoc"
"HsExpr"
"HsImpExp"
"HsLit"
"PlaceHolder"
"HsExtension"
"HsInstances"
"HsPat"
"HsSyn"
"HsTypes"
"HsUtils"
"HsDumpAst"
"BinIface"
"BinFingerprint"
"BuildTyCl"
"IfaceEnv"
"IfaceSyn"
"IfaceType"
"ToIface"
"LoadIface"
"MkIface"
"TcIface"
"FlagChecker"
"Annotations"
"CmdLineParser"
"CodeOutput"
"Config"
"Constants"
"DriverMkDepend"
"DriverPhases"
"PipelineMonad"
"DriverPipeline"
"DynFlags"
"ErrUtils"
"Finder"
"GHC"
"GhcMake"
"GhcPlugins"
"DynamicLoading"
"HeaderInfo"
"HscMain"
"HscStats"
"HscTypes"
"InteractiveEval"
"InteractiveEvalTypes"
"PackageConfig"
"Packages"
"PlatformConstants"
"Plugins"
"TcPluginM"
"PprTyThing"
"StaticPtrTable"
"SysTools"
"SysTools/BaseDir"
"SysTools/Terminal"
"SysTools/ExtraObj"
"SysTools/Info"
"SysTools/Process"
"SysTools/Tasks"
"Elf"
"TidyPgm"
"Ctype"
"HaddockUtils"
"Lexer"
"OptCoercion"
"Parser"
"RdrHsSyn"
"ApiAnnotation"
"ForeignCall"
"KnownUniques"
"PrelInfo"
"PrelNames"
"PrelRules"
"PrimOp"
"TysPrim"
"TysWiredIn"
"CostCentre"
"CostCentreState"
"ProfInit"
"RnBinds"
"RnEnv"
"RnExpr"
"RnHsDoc"
"RnNames"
"RnPat"
"RnSource"
"RnSplice"
"RnTypes"
"RnFixity"
"RnUtils"
"RnUnbound"
"CoreMonad"
"CSE"
"FloatIn"
"FloatOut"
"LiberateCase"
"OccurAnal"
"SAT"
"SetLevels"
"SimplCore"
"SimplEnv"
"SimplMonad"
"SimplUtils"
"Simplify"
"SimplStg"
"StgStats"
"StgCse"
"UnariseStg"
"RepType"
"Rules"
"SpecConstr"
"Specialise"
"CoreToStg"
"StgLint"
"StgSyn"
"CallArity"
"DmdAnal"
"Exitify"
"WorkWrap"
"WwLib"
"FamInst"
"Inst"
"TcAnnotations"
"TcArrows"
"TcBinds"
"TcSigs"
"TcClassDcl"
"TcDefaults"
"TcDeriv"
"TcDerivInfer"
"TcDerivUtils"
"TcEnv"
"TcExpr"
"TcForeign"
"TcGenDeriv"
"TcGenFunctor"
"TcGenGenerics"
"TcHsSyn"
"TcHsType"
"TcInstDcls"
"TcMType"
"TcValidity"
"TcMatches"
"TcPat"
"TcPatSyn"
"TcRnDriver"
"TcBackpack"
"TcRnExports"
"TcRnMonad"
"TcRnTypes"
"TcRules"
"TcSimplify"
"TcHoleErrors"
"TcErrors"
"TcTyClsDecls"
"TcTyDecls"
"TcTypeable"
"TcType"
"TcEvidence"
"TcEvTerm"
"TcUnify"
"TcInteract"
"TcCanonical"
"TcFlatten"
"TcSMonad"
"TcTypeNats"
"TcSplice"
"Class"
"Coercion"
"DsMeta"
"THNames"
"FamInstEnv"
"FunDeps"
"InstEnv"
"TyCon"
"CoAxiom"
"Kind"
"Type"
"TyCoRep"
"Unify"
"Bag"
"Binary"
"BooleanFormula"
"BufWrite"
"Digraph"
"Encoding"
"FastFunctions"
"FastMutInt"
"FastString"
"FastStringEnv"
"Fingerprint"
"FiniteMap"
"FV"
"GraphBase"
"GraphColor"
"GraphOps"
"GraphPpr"
"IOEnv"
"Json"
"ListSetOps"
"ListT"
"Maybes"
"MonadUtils"
"OrdList"
"Outputable"
"Pair"
"Panic"
"PprColour"
"Pretty"
"State"
"Stream"
"StringBuffer"
"UniqDFM"
"UniqDSet"
"UniqFM"
"UniqMap"
"UniqSet"
"Util"
"Hoopl/Block"
"Hoopl/Collections"
"Hoopl/Dataflow"
"Hoopl/Graph"
"Hoopl/Label"
"AsmCodeGen"
"TargetReg"
"NCGMonad"
"Instruction"
"Format"
"Reg"
"RegClass"
"PIC"
"Platform"
"CPrim"
"X86/Regs"
"X86/RegInfo"
"X86/Instr"
"X86/Cond"
"X86/Ppr"
"X86/CodeGen"
"PPC/Regs"
"PPC/RegInfo"
"PPC/Instr"
"PPC/Cond"
"PPC/Ppr"
"PPC/CodeGen"
"SPARC/Base"
"SPARC/Regs"
"SPARC/Imm"
"SPARC/AddrMode"
"SPARC/Cond"
"SPARC/Instr"
"SPARC/Stack"
"SPARC/ShortcutJump"
"SPARC/Ppr"
"SPARC/CodeGen"
"SPARC/CodeGen/Amode"
"SPARC/CodeGen/Base"
"SPARC/CodeGen/CondCode"
"SPARC/CodeGen/Gen32"
"SPARC/CodeGen/Gen64"
"SPARC/CodeGen/Sanity"
"SPARC/CodeGen/Expand"
"RegAlloc/Liveness"
"RegAlloc/Graph/Main"
"RegAlloc/Graph/Stats"
"RegAlloc/Graph/ArchBase"
"RegAlloc/Graph/ArchX86"
"RegAlloc/Graph/Coalesce"
"RegAlloc/Graph/Spill"
"RegAlloc/Graph/SpillClean"
"RegAlloc/Graph/SpillCost"
"RegAlloc/Graph/TrivColorable"
"RegAlloc/Linear/Main"
"RegAlloc/Linear/JoinToTargets"
"RegAlloc/Linear/State"
"RegAlloc/Linear/Stats"
"RegAlloc/Linear/FreeRegs"
"RegAlloc/Linear/StackMap"
"RegAlloc/Linear/Base"
"RegAlloc/Linear/X86/FreeRegs"
"RegAlloc/Linear/X86_64/FreeRegs"
"RegAlloc/Linear/PPC/FreeRegs"
"RegAlloc/Linear/SPARC/FreeRegs"
"Dwarf"
"Dwarf/Types"
"Dwarf/Constants"
"Convert"
"ByteCodeTypes"
"ByteCodeAsm"
"ByteCodeGen"
"ByteCodeInstr"
"ByteCodeItbls"
"ByteCodeLink"
"Debugger"
"Linker"
"RtClosureInspect"
"GHCi"
];
cSources = [
"parser/cutils.c"
"ghci/keepCAFsForGHCi.c"
"cbits/genSym.c"
];
hsSourceDirs = [
"backpack"
"basicTypes"
"cmm"
"codeGen"
"coreSyn"
"deSugar"
"ghci"
"hsSyn"
"iface"
"llvmGen"
"main"
"nativeGen"
"parser"
"prelude"
"profiling"
"rename"
"simplCore"
"simplStg"
"specialise"
"stgSyn"
"stranal"
"typecheck"
"types"
"utils"
];
includeDirs = [
"."
"parser"
"utils"
] ++ (pkgs.lib).optional (flags.ghci) "../rts/dist/build";
};
};
} // rec { src = (pkgs.lib).mkDefault ../compiler; }

View File

@ -0,0 +1,101 @@
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 = { ghci = false; };
package = {
specVersion = "1.10";
identifier = { name = "ghci"; version = "8.6.5"; };
license = "BSD-3-Clause";
copyright = "";
maintainer = "ghc-devs@haskell.org";
author = "";
homepage = "";
url = "";
synopsis = "The library supporting GHC's interactive interpreter";
description = "This library offers interfaces which mediate interactions between the\n@ghci@ interactive shell and @iserv@, GHC's out-of-process interpreter\nbackend.";
buildType = "Simple";
isLocal = true;
detailLevel = "FullDetails";
licenseFiles = [ "LICENSE" ];
dataDir = "";
dataFiles = [];
extraSrcFiles = [ "changelog.md" ];
extraTmpFiles = [];
extraDocFiles = [];
};
components = {
"library" = {
depends = [
(hsPkgs."array" or (buildDepError "array"))
(hsPkgs."base" or (buildDepError "base"))
(hsPkgs."binary" or (buildDepError "binary"))
(hsPkgs."bytestring" or (buildDepError "bytestring"))
(hsPkgs."containers" or (buildDepError "containers"))
(hsPkgs."deepseq" or (buildDepError "deepseq"))
(hsPkgs."filepath" or (buildDepError "filepath"))
(hsPkgs."ghc-boot" or (buildDepError "ghc-boot"))
(hsPkgs."ghc-boot-th" or (buildDepError "ghc-boot-th"))
(hsPkgs."ghc-heap" or (buildDepError "ghc-heap"))
(hsPkgs."template-haskell" or (buildDepError "template-haskell"))
(hsPkgs."transformers" or (buildDepError "transformers"))
] ++ (pkgs.lib).optional (!system.isWindows) (hsPkgs."unix" or (buildDepError "unix"));
buildable = true;
modules = [
"GHCi/BreakArray"
"GHCi/BinaryArray"
"GHCi/Message"
"GHCi/ResolvedBCO"
"GHCi/RemoteTypes"
"GHCi/FFI"
"GHCi/InfoTable"
"GHCi/StaticPtrTable"
"GHCi/TH/Binary"
"SizedSeq"
] ++ (pkgs.lib).optionals (flags.ghci) [
"GHCi/Run"
"GHCi/CreateBCO"
"GHCi/ObjLink"
"GHCi/Signals"
"GHCi/TH"
];
};
};
} // rec { src = (pkgs.lib).mkDefault ../libraries/ghci; }

View File

@ -0,0 +1,86 @@
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 = {
specVersion = "1.10";
identifier = { name = "iserv-proxy"; version = "8.6.5"; };
license = "BSD-3-Clause";
copyright = "XXX";
maintainer = "XXX";
author = "XXX";
homepage = "";
url = "";
synopsis = "iserv allows GHC to delegate Tempalte Haskell computations";
description = "GHC can be provided with a path to the iserv binary with\n@-pgmi=/path/to/iserv-bin@, and will in combination with\n@-fexternal-interpreter@, compile Template Haskell though the\n@iserv-bin@ delegate. This is very similar to how ghcjs has been\ncompiling Template Haskell, by spawning a separate delegate (so\ncalled runner on the javascript vm) and evaluating the splices\nthere.\n\niserv can also be used in combination with cross compilation. For\nthis, the @iserv-proxy@ needs to be built on the host, targeting the\nhost (as it is running on the host). @cabal install -flibrary\n-fproxy@ will yield the proxy.\n\nUsing the cabal for the target @arch-platform-target-cabal install\n-flibrary@ will build the required library that contains the ffi\n@startSlave@ function, which needs to be invoked on the target\n(e.g. in an iOS application) to start the remote iserv slave.\n\ncalling the GHC cross compiler with @-fexternal-interpreter\n-pgmi=\$HOME/.cabal/bin/iserv-proxy -opti\\<ip address\\> -opti\\<port\\>@\nwill cause it to compile Template Haskell via the remote at \\<ip address\\>.\n\nThus to get cross compilation with Template Haskell follow the\nfollowing receipt:\n\n* compile the iserv library for your target\n\n> iserv \$ arch-platform-target-cabal install -flibrary\n\n* setup an application for your target that calls the\n* startSlave function. This could be either haskell or your\n* targets ffi capable language, if needed.\n\n> void startSlave(false /* verbose */, 5000 /* port */,\n> \"/path/to/storagelocation/on/target\");\n\n* build the iserv-proxy\n\n> iserv \$ cabal install -flibrary -fproxy\n* Start your iserv-slave app on your target running on say @10.0.0.1:5000@\n* compiler your sources with -fexternal-interpreter and the proxy\n\n> project \$ arch-platform-target-ghc ModuleContainingTH.hs \\\n> -fexternal-interpreter \\\n> -pgmi=\$HOME/.cabal/bin/iserv-proxy \\\n> -opti10.0.0.1 -opti5000\n\nShould something not work as expected, provide @-opti-v@ for verbose\nlogging of the @iserv-proxy@.";
buildType = "Simple";
isLocal = true;
detailLevel = "FullDetails";
licenseFiles = [];
dataDir = "";
dataFiles = [];
extraSrcFiles = [];
extraTmpFiles = [];
extraDocFiles = [];
};
components = {
exes = {
"iserv-proxy" = {
depends = [
(hsPkgs."array" or (buildDepError "array"))
(hsPkgs."base" or (buildDepError "base"))
(hsPkgs."binary" or (buildDepError "binary"))
(hsPkgs."bytestring" or (buildDepError "bytestring"))
(hsPkgs."containers" or (buildDepError "containers"))
(hsPkgs."deepseq" or (buildDepError "deepseq"))
(hsPkgs."directory" or (buildDepError "directory"))
(hsPkgs."network" or (buildDepError "network"))
(hsPkgs."filepath" or (buildDepError "filepath"))
(hsPkgs."ghci" or (buildDepError "ghci"))
(hsPkgs."libiserv" or (buildDepError "libiserv"))
];
buildable = true;
hsSourceDirs = [ "src" ];
mainPath = [ "Main.hs" ];
};
};
};
} // rec { src = (pkgs.lib).mkDefault ../utils/iserv-proxy; }

View File

@ -0,0 +1,85 @@
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 = {
specVersion = "1.10";
identifier = { name = "iserv"; version = "8.6.5"; };
license = "BSD-3-Clause";
copyright = "XXX";
maintainer = "XXX";
author = "XXX";
homepage = "";
url = "";
synopsis = "iserv allows GHC to delegate Tempalte Haskell computations";
description = "GHC can be provided with a path to the iserv binary with\n@-pgmi=/path/to/iserv-bin@, and will in combination with\n@-fexternal-interpreter@, compile Template Haskell though the\n@iserv-bin@ delegate. This is very similar to how ghcjs has been\ncompiling Template Haskell, by spawning a separate delegate (so\ncalled runner on the javascript vm) and evaluating the splices\nthere.\n\nTo use iserv with cross compilers, please see @libraries/libiserv@\nand @utils/iserv-proxy@.";
buildType = "Simple";
isLocal = true;
detailLevel = "FullDetails";
licenseFiles = [];
dataDir = "";
dataFiles = [];
extraSrcFiles = [];
extraTmpFiles = [];
extraDocFiles = [];
};
components = {
exes = {
"iserv" = {
depends = [
(hsPkgs."array" or (buildDepError "array"))
(hsPkgs."base" or (buildDepError "base"))
(hsPkgs."binary" or (buildDepError "binary"))
(hsPkgs."bytestring" or (buildDepError "bytestring"))
(hsPkgs."containers" or (buildDepError "containers"))
(hsPkgs."deepseq" or (buildDepError "deepseq"))
(hsPkgs."ghci" or (buildDepError "ghci"))
(hsPkgs."libiserv" or (buildDepError "libiserv"))
] ++ (pkgs.lib).optional (!system.isWindows) (hsPkgs."unix" or (buildDepError "unix"));
buildable = true;
cSources = [ "cbits/iservmain.c" ];
hsSourceDirs = [ "src" ];
includeDirs = [ "." ];
mainPath = [ "Main.hs" ] ++ [ "" ];
};
};
};
} // rec { src = (pkgs.lib).mkDefault ../utils/iserv; }

View File

@ -0,0 +1,89 @@
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 = { network = false; };
package = {
specVersion = "1.10";
identifier = { name = "libiserv"; version = "8.6.5"; };
license = "BSD-3-Clause";
copyright = "XXX";
maintainer = "XXX";
author = "XXX";
homepage = "";
url = "";
synopsis = "Provides shared functionality between iserv and iserv-proxy";
description = "";
buildType = "Simple";
isLocal = true;
detailLevel = "FullDetails";
licenseFiles = [ "LICENSE" ];
dataDir = "";
dataFiles = [];
extraSrcFiles = [];
extraTmpFiles = [];
extraDocFiles = [];
};
components = {
"library" = {
depends = ([
(hsPkgs."base" or (buildDepError "base"))
(hsPkgs."binary" or (buildDepError "binary"))
(hsPkgs."bytestring" or (buildDepError "bytestring"))
(hsPkgs."containers" or (buildDepError "containers"))
(hsPkgs."deepseq" or (buildDepError "deepseq"))
(hsPkgs."ghci" or (buildDepError "ghci"))
] ++ (pkgs.lib).optionals (flags.network) [
(hsPkgs."network" or (buildDepError "network"))
(hsPkgs."directory" or (buildDepError "directory"))
(hsPkgs."filepath" or (buildDepError "filepath"))
]) ++ (pkgs.lib).optional (!system.isWindows) (hsPkgs."unix" or (buildDepError "unix"));
buildable = true;
modules = [
"Lib"
"GHCi/Utils"
] ++ (pkgs.lib).optionals (flags.network) [
"Remote/Message"
"Remote/Slave"
];
hsSourceDirs = [ "src" ];
};
};
} // rec { src = (pkgs.lib).mkDefault ../libraries/libiserv; }

View File

@ -0,0 +1,77 @@
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 = {
specVersion = "1.10";
identifier = { name = "remote-iserv"; version = "8.6.5"; };
license = "BSD-3-Clause";
copyright = "XXX";
maintainer = "Moritz Angermann <moritz.angermann@gmail.com>";
author = "Moritz Angermann <moritz.angermann@gmail.com>";
homepage = "";
url = "";
synopsis = "iserv allows GHC to delegate Tempalte Haskell computations";
description = "This is a very simple remote runner for iserv, to be used together\nwith iserv-proxy. The foundamental idea is that this this wrapper\nstarts running libiserv on a given port to which iserv-proxy will\nthen connect.";
buildType = "Simple";
isLocal = true;
detailLevel = "FullDetails";
licenseFiles = [];
dataDir = "";
dataFiles = [];
extraSrcFiles = [];
extraTmpFiles = [];
extraDocFiles = [];
};
components = {
exes = {
"remote-iserv" = {
depends = [
(hsPkgs."base" or (buildDepError "base"))
(hsPkgs."libiserv" or (buildDepError "libiserv"))
];
buildable = true;
hsSourceDirs = [ "src" ];
mainPath = [ "Cli.hs" ];
};
};
};
} // rec { src = (pkgs.lib).mkDefault ../utils/remote-iserv; }

View File

@ -0,0 +1,90 @@
{
pkgs = hackage:
{
packages = {
"binary".revision = (((hackage."binary")."0.8.8.0").revisions).default;
"ghc-prim".revision = (((hackage."ghc-prim")."0.5.3").revisions).default;
"ghc-heap".revision = (((hackage."ghc-heap")."8.6.5").revisions).default;
"mtl".revision = (((hackage."mtl")."2.2.2").revisions).default;
"rts".revision = (((hackage."rts")."1.0").revisions).default;
"alex".revision = (((hackage."alex")."3.2.5").revisions).default;
"alex".flags.small_base = true;
"deepseq".revision = (((hackage."deepseq")."1.4.4.0").revisions).default;
"network".revision = (((hackage."network")."2.8.0.1").revisions).default;
"directory".revision = (((hackage."directory")."1.3.6.1").revisions).default;
"template-haskell".revision = (((hackage."template-haskell")."2.14.0.0").revisions).default;
"containers".revision = (((hackage."containers")."0.6.0.1").revisions).default;
"base".revision = (((hackage."base")."4.12.0.0").revisions).default;
"time".revision = (((hackage."time")."1.8.0.4").revisions).default;
"transformers".revision = (((hackage."transformers")."0.5.6.2").revisions).default;
"happy".revision = (((hackage."happy")."1.19.12").revisions).default;
"happy".flags.small_base = true;
"hpc".revision = (((hackage."hpc")."0.6.0.3").revisions).default;
"filepath".revision = (((hackage."filepath")."1.4.2.1").revisions).default;
"process".revision = (((hackage."process")."1.6.8.2").revisions).default;
"pretty".revision = (((hackage."pretty")."1.1.3.6").revisions).default;
"ghc-boot-th".revision = (((hackage."ghc-boot-th")."8.6.5").revisions).default;
"array".revision = (((hackage."array")."0.5.3.0").revisions).default;
"Win32".revision = (((hackage."Win32")."2.6.2.0").revisions).default;
"integer-gmp".revision = (((hackage."integer-gmp")."1.0.2.0").revisions).default;
};
compiler = {
version = "8.6.5";
nix-name = "ghc865";
packages = {
"ghc-prim" = "0.5.3";
"ghc-heap" = "8.6.5";
"mtl" = "2.2.2";
"rts" = "1.0";
"deepseq" = "1.4.4.0";
"template-haskell" = "2.14.0.0";
"containers" = "0.6.0.1";
"base" = "4.12.0.0";
"transformers" = "0.5.6.2";
"filepath" = "1.4.2.1";
"pretty" = "1.1.3.6";
"ghc-boot-th" = "8.6.5";
"array" = "0.5.3.0";
"integer-gmp" = "1.0.2.0";
};
};
};
extras = hackage:
{
packages = {
ghc = ./.plan.nix/ghc.nix;
bytestring = ./.plan.nix/bytestring.nix;
remote-iserv = ./.plan.nix/remote-iserv.nix;
iserv-proxy = ./.plan.nix/iserv-proxy.nix;
libiserv = ./.plan.nix/libiserv.nix;
ghc-boot = ./.plan.nix/ghc-boot.nix;
ghci = ./.plan.nix/ghci.nix;
iserv = ./.plan.nix/iserv.nix;
};
};
modules = [
({ lib, ... }:
{
packages = {
"ghc" = {
flags = {
"stage1" = lib.mkOverride 900 false;
"stage2" = lib.mkOverride 900 true;
"stage3" = lib.mkOverride 900 false;
"ghci" = lib.mkOverride 900 true;
"terminfo" = lib.mkOverride 900 true;
};
};
"bytestring" = {
flags = { "integer-simple" = lib.mkOverride 900 false; };
};
"remote-iserv" = { flags = {}; };
"iserv-proxy" = { flags = {}; };
"libiserv" = { flags = { "network" = lib.mkOverride 900 true; }; };
"ghc-boot" = { flags = {}; };
"ghci" = { flags = { "ghci" = lib.mkOverride 900 true; }; };
"iserv" = { flags = {}; };
};
})
];
}

View File

@ -0,0 +1,167 @@
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 = { integer-simple = false; };
package = {
specVersion = "1.10";
identifier = { name = "bytestring"; version = "0.10.10.0"; };
license = "BSD-3-Clause";
copyright = "Copyright (c) Don Stewart 2005-2009,\n(c) Duncan Coutts 2006-2015,\n(c) David Roundy 2003-2005,\n(c) Jasper Van der Jeugt 2010,\n(c) Simon Meier 2010-2013.";
maintainer = "Duncan Coutts <duncan@community.haskell.org>";
author = "Don Stewart,\nDuncan Coutts";
homepage = "https://github.com/haskell/bytestring";
url = "";
synopsis = "Fast, compact, strict and lazy byte strings with a list interface";
description = "An efficient compact, immutable byte string type (both strict and lazy)\nsuitable for binary or 8-bit character data.\n\nThe 'ByteString' type represents sequences of bytes or 8-bit characters.\nIt is suitable for high performance use, both in terms of large data\nquantities, or high speed requirements. The 'ByteString' functions follow\nthe same style as Haskell\\'s ordinary lists, so it is easy to convert code\nfrom using 'String' to 'ByteString'.\n\nTwo 'ByteString' variants are provided:\n\n* Strict 'ByteString's keep the string as a single large array. This\nmakes them convenient for passing data between C and Haskell.\n\n* Lazy 'ByteString's use a lazy list of strict chunks which makes it\nsuitable for I\\/O streaming tasks.\n\nThe @Char8@ modules provide a character-based view of the same\nunderlying 'ByteString' types. This makes it convenient to handle mixed\nbinary and 8-bit character content (which is common in many file formats\nand network protocols).\n\nThe 'Builder' module provides an efficient way to build up 'ByteString's\nin an ad-hoc way by repeated concatenation. This is ideal for fast\nserialisation or pretty printing.\n\nThere is also a 'ShortByteString' type which has a lower memory overhead\nand can can be converted to or from a 'ByteString', but supports very few\nother operations. It is suitable for keeping many short strings in memory.\n\n'ByteString's are not designed for Unicode. For Unicode strings you should\nuse the 'Text' type from the @text@ package.\n\nThese modules are intended to be imported qualified, to avoid name clashes\nwith \"Prelude\" functions, e.g.\n\n> import qualified Data.ByteString as BS";
buildType = "Simple";
isLocal = true;
detailLevel = "FullDetails";
licenseFiles = [ "LICENSE" ];
dataDir = "";
dataFiles = [];
extraSrcFiles = [ "README.md" "Changelog.md" ];
extraTmpFiles = [];
extraDocFiles = [];
};
components = {
"library" = {
depends = ([
(hsPkgs."base" or (buildDepError "base"))
(hsPkgs."ghc-prim" or (buildDepError "ghc-prim"))
(hsPkgs."deepseq" or (buildDepError "deepseq"))
] ++ (pkgs.lib).optionals (compiler.isGhc && (compiler.version).ge "6.11") ((pkgs.lib).optional (!flags.integer-simple) (hsPkgs."integer-gmp" or (buildDepError "integer-gmp")))) ++ (pkgs.lib).optional (compiler.isGhc && (compiler.version).ge "6.9" && (compiler.isGhc && (compiler.version).lt "6.11")) (hsPkgs."integer" or (buildDepError "integer"));
buildable = true;
modules = [
"Data/ByteString/Builder/ASCII"
"Data/ByteString/Builder/Prim/Binary"
"Data/ByteString/Builder/Prim/ASCII"
"Data/ByteString/Builder/Prim/Internal/Floating"
"Data/ByteString/Builder/Prim/Internal/UncheckedShifts"
"Data/ByteString/Builder/Prim/Internal/Base16"
"Data/ByteString"
"Data/ByteString/Char8"
"Data/ByteString/Unsafe"
"Data/ByteString/Internal"
"Data/ByteString/Lazy"
"Data/ByteString/Lazy/Char8"
"Data/ByteString/Lazy/Internal"
"Data/ByteString/Short"
"Data/ByteString/Short/Internal"
"Data/ByteString/Builder"
"Data/ByteString/Builder/Extra"
"Data/ByteString/Builder/Prim"
"Data/ByteString/Builder/Internal"
"Data/ByteString/Builder/Prim/Internal"
"Data/ByteString/Lazy/Builder"
"Data/ByteString/Lazy/Builder/Extras"
"Data/ByteString/Lazy/Builder/ASCII"
];
cSources = [ "cbits/fpstring.c" "cbits/itoa.c" ];
includeDirs = [ "include" ];
includes = [ "fpstring.h" ];
};
tests = {
"prop-compiled" = {
depends = [
(hsPkgs."base" or (buildDepError "base"))
(hsPkgs."ghc-prim" or (buildDepError "ghc-prim"))
(hsPkgs."deepseq" or (buildDepError "deepseq"))
(hsPkgs."random" or (buildDepError "random"))
(hsPkgs."directory" or (buildDepError "directory"))
(hsPkgs."test-framework" or (buildDepError "test-framework"))
(hsPkgs."test-framework-quickcheck2" or (buildDepError "test-framework-quickcheck2"))
(hsPkgs."QuickCheck" or (buildDepError "QuickCheck"))
];
buildable = true;
modules = [ "Rules" "QuickCheckUtils" "TestFramework" ];
cSources = [ "cbits/fpstring.c" ];
hsSourceDirs = [ "." "tests" ];
includeDirs = [ "include" ];
mainPath = [ "Properties.hs" ];
};
"regressions" = {
depends = [
(hsPkgs."base" or (buildDepError "base"))
(hsPkgs."ghc-prim" or (buildDepError "ghc-prim"))
(hsPkgs."deepseq" or (buildDepError "deepseq"))
(hsPkgs."random" or (buildDepError "random"))
(hsPkgs."directory" or (buildDepError "directory"))
(hsPkgs."test-framework" or (buildDepError "test-framework"))
(hsPkgs."test-framework-hunit" or (buildDepError "test-framework-hunit"))
(hsPkgs."HUnit" or (buildDepError "HUnit"))
];
buildable = false;
cSources = [ "cbits/fpstring.c" ];
hsSourceDirs = [ "." "tests" ];
includeDirs = [ "include" ];
mainPath = [ "Regressions.hs" ];
};
"test-builder" = {
depends = [
(hsPkgs."base" or (buildDepError "base"))
(hsPkgs."ghc-prim" or (buildDepError "ghc-prim"))
(hsPkgs."deepseq" or (buildDepError "deepseq"))
(hsPkgs."QuickCheck" or (buildDepError "QuickCheck"))
(hsPkgs."byteorder" or (buildDepError "byteorder"))
(hsPkgs."dlist" or (buildDepError "dlist"))
(hsPkgs."directory" or (buildDepError "directory"))
(hsPkgs."mtl" or (buildDepError "mtl"))
(hsPkgs."HUnit" or (buildDepError "HUnit"))
(hsPkgs."test-framework" or (buildDepError "test-framework"))
(hsPkgs."test-framework-hunit" or (buildDepError "test-framework-hunit"))
(hsPkgs."test-framework-quickcheck2" or (buildDepError "test-framework-quickcheck2"))
];
buildable = true;
modules = [
"Data/ByteString/Builder/Tests"
"Data/ByteString/Builder/Prim/Tests"
"Data/ByteString/Builder/Prim/TestUtils"
"TestFramework"
];
cSources = [ "cbits/fpstring.c" "cbits/itoa.c" ];
hsSourceDirs = [ "." "tests" "tests/builder" ];
includeDirs = [ "include" ];
includes = [ "fpstring.h" ];
mainPath = [ "TestSuite.hs" ];
};
};
};
} // rec { src = (pkgs.lib).mkDefault ../libraries/bytestring; }

View File

@ -0,0 +1,84 @@
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 = {
specVersion = "1.22";
identifier = { name = "ghc-boot"; version = "8.8.2"; };
license = "BSD-3-Clause";
copyright = "";
maintainer = "ghc-devs@haskell.org";
author = "";
homepage = "";
url = "";
synopsis = "Shared functionality between GHC and its boot libraries";
description = "This library is shared between GHC, ghc-pkg, and other boot\nlibraries.\n\nA note about \"GHC.PackageDb\": it only deals with the subset of\nthe package database that the compiler cares about: modules\npaths etc and not package metadata like description, authors\netc. It is thus not a library interface to ghc-pkg and is *not*\nsuitable for modifying GHC package databases.\n\nThe package database format and this library are constructed in\nsuch a way that while ghc-pkg depends on Cabal, the GHC library\nand program do not have to depend on Cabal.";
buildType = "Simple";
isLocal = true;
detailLevel = "FullDetails";
licenseFiles = [ "LICENSE" ];
dataDir = "";
dataFiles = [];
extraSrcFiles = [ "changelog.md" ];
extraTmpFiles = [];
extraDocFiles = [];
};
components = {
"library" = {
depends = [
(hsPkgs."base" or (buildDepError "base"))
(hsPkgs."binary" or (buildDepError "binary"))
(hsPkgs."bytestring" or (buildDepError "bytestring"))
(hsPkgs."directory" or (buildDepError "directory"))
(hsPkgs."filepath" or (buildDepError "filepath"))
(hsPkgs."ghc-boot-th" or (buildDepError "ghc-boot-th"))
];
buildable = true;
modules = [
"GHC/LanguageExtensions"
"GHC/PackageDb"
"GHC/Serialized"
"GHC/ForeignSrcLang"
"GHC/HandleEncoding"
];
};
};
} // rec { src = (pkgs.lib).mkDefault ../libraries/ghc-boot; }

View File

@ -0,0 +1,608 @@
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 = {
ghci = false;
stage1 = false;
stage2 = true;
stage3 = false;
terminfo = true;
integer-simple = false;
integer-gmp = false;
};
package = {
specVersion = "1.10";
identifier = { name = "ghc"; version = "8.8.2"; };
license = "BSD-3-Clause";
copyright = "";
maintainer = "glasgow-haskell-users@haskell.org";
author = "The GHC Team";
homepage = "http://www.haskell.org/ghc/";
url = "";
synopsis = "The GHC API";
description = "GHC's functionality can be useful for more things than just\ncompiling Haskell programs. Important use cases are programs\nthat analyse (and perhaps transform) Haskell code. Others\ninclude loading Haskell code dynamically in a GHCi-like manner.\nFor this reason, a lot of GHC's functionality is made available\nthrough this package.";
buildType = "Simple";
isLocal = true;
detailLevel = "FullDetails";
licenseFiles = [ "LICENSE" ];
dataDir = "";
dataFiles = [];
extraSrcFiles = [
"utils/md5.h"
"Unique.h"
"nativeGen/NCG.h"
"parser/cutils.h"
];
extraTmpFiles = [];
extraDocFiles = [];
};
components = {
"library" = {
depends = ((([
(hsPkgs."base" or (buildDepError "base"))
(hsPkgs."deepseq" or (buildDepError "deepseq"))
(hsPkgs."directory" or (buildDepError "directory"))
(hsPkgs."process" or (buildDepError "process"))
(hsPkgs."bytestring" or (buildDepError "bytestring"))
(hsPkgs."binary" or (buildDepError "binary"))
(hsPkgs."time" or (buildDepError "time"))
(hsPkgs."containers" or (buildDepError "containers"))
(hsPkgs."array" or (buildDepError "array"))
(hsPkgs."filepath" or (buildDepError "filepath"))
(hsPkgs."template-haskell" or (buildDepError "template-haskell"))
(hsPkgs."hpc" or (buildDepError "hpc"))
(hsPkgs."transformers" or (buildDepError "transformers"))
(hsPkgs."ghc-boot" or (buildDepError "ghc-boot"))
(hsPkgs."ghc-boot-th" or (buildDepError "ghc-boot-th"))
(hsPkgs."ghc-heap" or (buildDepError "ghc-heap"))
(hsPkgs."ghci" or (buildDepError "ghci"))
] ++ (if system.isWindows
then [ (hsPkgs."Win32" or (buildDepError "Win32")) ]
else [
(hsPkgs."unix" or (buildDepError "unix"))
] ++ (pkgs.lib).optional (flags.terminfo) (hsPkgs."terminfo" or (buildDepError "terminfo")))) ++ (pkgs.lib).optional (flags.integer-gmp && flags.integer-simple) (hsPkgs."invalid-cabal-flag-settings" or (buildDepError "invalid-cabal-flag-settings"))) ++ (pkgs.lib).optional (flags.integer-gmp) (hsPkgs."integer-gmp" or (buildDepError "integer-gmp"))) ++ (pkgs.lib).optional (flags.integer-simple) (hsPkgs."integer-simple" or (buildDepError "integer-simple"));
build-tools = [
(hsPkgs.buildPackages.alex or (pkgs.buildPackages.alex or (buildToolDepError "alex")))
(hsPkgs.buildPackages.happy or (pkgs.buildPackages.happy or (buildToolDepError "happy")))
];
buildable = true;
modules = [
"GhcPrelude"
"HieTypes"
"HieDebug"
"HieBin"
"HieUtils"
"HieAst"
"Ar"
"FileCleanup"
"DriverBkp"
"BkpSyn"
"NameShape"
"RnModIface"
"Avail"
"AsmUtils"
"BasicTypes"
"ConLike"
"DataCon"
"PatSyn"
"Demand"
"Debug"
"Exception"
"FieldLabel"
"GhcMonad"
"Hooks"
"Id"
"IdInfo"
"Lexeme"
"Literal"
"Llvm"
"Llvm/AbsSyn"
"Llvm/MetaData"
"Llvm/PpLlvm"
"Llvm/Types"
"LlvmCodeGen"
"LlvmCodeGen/Base"
"LlvmCodeGen/CodeGen"
"LlvmCodeGen/Data"
"LlvmCodeGen/Ppr"
"LlvmCodeGen/Regs"
"LlvmMangler"
"MkId"
"Module"
"Name"
"NameEnv"
"NameSet"
"OccName"
"RdrName"
"NameCache"
"SrcLoc"
"UniqSupply"
"Unique"
"Var"
"VarEnv"
"VarSet"
"UnVarGraph"
"BlockId"
"CLabel"
"Cmm"
"CmmBuildInfoTables"
"CmmPipeline"
"CmmCallConv"
"CmmCommonBlockElim"
"CmmImplementSwitchPlans"
"CmmContFlowOpt"
"CmmExpr"
"CmmInfo"
"CmmLex"
"CmmLint"
"CmmLive"
"CmmMachOp"
"CmmMonad"
"CmmSwitch"
"CmmNode"
"CmmOpt"
"CmmParse"
"CmmProcPoint"
"CmmSink"
"CmmType"
"CmmUtils"
"CmmLayoutStack"
"EnumSet"
"MkGraph"
"PprBase"
"PprC"
"PprCmm"
"PprCmmDecl"
"PprCmmExpr"
"Bitmap"
"CodeGen/Platform"
"CodeGen/Platform/ARM"
"CodeGen/Platform/ARM64"
"CodeGen/Platform/NoRegs"
"CodeGen/Platform/PPC"
"CodeGen/Platform/SPARC"
"CodeGen/Platform/X86"
"CodeGen/Platform/X86_64"
"CgUtils"
"StgCmm"
"StgCmmBind"
"StgCmmClosure"
"StgCmmCon"
"StgCmmEnv"
"StgCmmExpr"
"StgCmmForeign"
"StgCmmHeap"
"StgCmmHpc"
"StgCmmArgRep"
"StgCmmLayout"
"StgCmmMonad"
"StgCmmPrim"
"StgCmmProf"
"StgCmmTicky"
"StgCmmUtils"
"StgCmmExtCode"
"SMRep"
"CoreArity"
"CoreFVs"
"CoreLint"
"CorePrep"
"CoreSubst"
"CoreOpt"
"CoreSyn"
"TrieMap"
"CoreTidy"
"CoreUnfold"
"CoreUtils"
"CoreMap"
"CoreSeq"
"CoreStats"
"MkCore"
"PprCore"
"PmExpr"
"TmOracle"
"Check"
"Coverage"
"Desugar"
"DsArrows"
"DsBinds"
"DsCCall"
"DsExpr"
"DsForeign"
"DsGRHSs"
"DsListComp"
"DsMonad"
"DsUsage"
"DsUtils"
"ExtractDocs"
"Match"
"MatchCon"
"MatchLit"
"HsBinds"
"HsDecls"
"HsDoc"
"HsExpr"
"HsImpExp"
"HsLit"
"PlaceHolder"
"HsExtension"
"HsInstances"
"HsPat"
"HsSyn"
"HsTypes"
"HsUtils"
"HsDumpAst"
"BinIface"
"BinFingerprint"
"BuildTyCl"
"IfaceEnv"
"IfaceSyn"
"IfaceType"
"ToIface"
"LoadIface"
"MkIface"
"TcIface"
"FlagChecker"
"Annotations"
"CmdLineParser"
"CodeOutput"
"Config"
"Constants"
"DriverMkDepend"
"DriverPhases"
"PipelineMonad"
"DriverPipeline"
"DynFlags"
"ErrUtils"
"Finder"
"GHC"
"GhcMake"
"GhcPlugins"
"DynamicLoading"
"HeaderInfo"
"HscMain"
"HscStats"
"HscTypes"
"InteractiveEval"
"InteractiveEvalTypes"
"PackageConfig"
"Packages"
"PlatformConstants"
"Plugins"
"TcPluginM"
"PprTyThing"
"StaticPtrTable"
"SysTools"
"SysTools/BaseDir"
"SysTools/Terminal"
"SysTools/ExtraObj"
"SysTools/Info"
"SysTools/Process"
"SysTools/Tasks"
"Elf"
"TidyPgm"
"Ctype"
"HaddockUtils"
"Lexer"
"OptCoercion"
"Parser"
"RdrHsSyn"
"ApiAnnotation"
"ForeignCall"
"KnownUniques"
"PrelInfo"
"PrelNames"
"PrelRules"
"PrimOp"
"TysPrim"
"TysWiredIn"
"CostCentre"
"CostCentreState"
"ProfInit"
"RnBinds"
"RnEnv"
"RnExpr"
"RnHsDoc"
"RnNames"
"RnPat"
"RnSource"
"RnSplice"
"RnTypes"
"RnFixity"
"RnUtils"
"RnUnbound"
"CoreMonad"
"CSE"
"FloatIn"
"FloatOut"
"LiberateCase"
"OccurAnal"
"SAT"
"SetLevels"
"SimplCore"
"SimplEnv"
"SimplMonad"
"SimplUtils"
"Simplify"
"SimplStg"
"StgStats"
"StgCse"
"StgLiftLams"
"StgLiftLams/Analysis"
"StgLiftLams/LiftM"
"StgLiftLams/Transformation"
"StgSubst"
"UnariseStg"
"RepType"
"Rules"
"SpecConstr"
"Specialise"
"CoreToStg"
"StgLint"
"StgSyn"
"StgFVs"
"CallArity"
"DmdAnal"
"Exitify"
"WorkWrap"
"WwLib"
"FamInst"
"ClsInst"
"Inst"
"TcAnnotations"
"TcArrows"
"TcBinds"
"TcSigs"
"TcClassDcl"
"TcDefaults"
"TcDeriv"
"TcDerivInfer"
"TcDerivUtils"
"TcEnv"
"TcExpr"
"TcForeign"
"TcGenDeriv"
"TcGenFunctor"
"TcGenGenerics"
"TcHsSyn"
"TcHsType"
"TcInstDcls"
"TcMType"
"TcValidity"
"TcMatches"
"TcPat"
"TcPatSyn"
"TcRnDriver"
"TcBackpack"
"TcRnExports"
"TcRnMonad"
"TcRnTypes"
"TcRules"
"TcSimplify"
"TcHoleErrors"
"TcErrors"
"TcTyClsDecls"
"TcTyDecls"
"TcTypeable"
"TcTypeableValidity"
"TcType"
"TcEvidence"
"TcEvTerm"
"TcUnify"
"TcInteract"
"TcCanonical"
"TcFlatten"
"TcSMonad"
"TcTypeNats"
"TcSplice"
"Class"
"Coercion"
"DsMeta"
"THNames"
"FamInstEnv"
"FunDeps"
"InstEnv"
"TyCon"
"CoAxiom"
"Kind"
"Type"
"TyCoRep"
"Unify"
"Bag"
"Binary"
"BooleanFormula"
"BufWrite"
"Digraph"
"Encoding"
"FastFunctions"
"FastMutInt"
"FastString"
"FastStringEnv"
"Fingerprint"
"FiniteMap"
"FV"
"GraphBase"
"GraphColor"
"GraphOps"
"GraphPpr"
"IOEnv"
"Json"
"ListSetOps"
"ListT"
"Maybes"
"MonadUtils"
"OrdList"
"Outputable"
"Pair"
"Panic"
"PlainPanic"
"PprColour"
"Pretty"
"State"
"Stream"
"StringBuffer"
"UniqDFM"
"UniqDSet"
"UniqFM"
"UniqMap"
"UniqSet"
"Util"
"Hoopl/Block"
"Hoopl/Collections"
"Hoopl/Dataflow"
"Hoopl/Graph"
"Hoopl/Label"
"AsmCodeGen"
"TargetReg"
"NCGMonad"
"Instruction"
"BlockLayout"
"CFG"
"Format"
"Reg"
"RegClass"
"PIC"
"Platform"
"CPrim"
"X86/Regs"
"X86/RegInfo"
"X86/Instr"
"X86/Cond"
"X86/Ppr"
"X86/CodeGen"
"PPC/Regs"
"PPC/RegInfo"
"PPC/Instr"
"PPC/Cond"
"PPC/Ppr"
"PPC/CodeGen"
"SPARC/Base"
"SPARC/Regs"
"SPARC/Imm"
"SPARC/AddrMode"
"SPARC/Cond"
"SPARC/Instr"
"SPARC/Stack"
"SPARC/ShortcutJump"
"SPARC/Ppr"
"SPARC/CodeGen"
"SPARC/CodeGen/Amode"
"SPARC/CodeGen/Base"
"SPARC/CodeGen/CondCode"
"SPARC/CodeGen/Gen32"
"SPARC/CodeGen/Gen64"
"SPARC/CodeGen/Sanity"
"SPARC/CodeGen/Expand"
"RegAlloc/Liveness"
"RegAlloc/Graph/Main"
"RegAlloc/Graph/Stats"
"RegAlloc/Graph/ArchBase"
"RegAlloc/Graph/ArchX86"
"RegAlloc/Graph/Coalesce"
"RegAlloc/Graph/Spill"
"RegAlloc/Graph/SpillClean"
"RegAlloc/Graph/SpillCost"
"RegAlloc/Graph/TrivColorable"
"RegAlloc/Linear/Main"
"RegAlloc/Linear/JoinToTargets"
"RegAlloc/Linear/State"
"RegAlloc/Linear/Stats"
"RegAlloc/Linear/FreeRegs"
"RegAlloc/Linear/StackMap"
"RegAlloc/Linear/Base"
"RegAlloc/Linear/X86/FreeRegs"
"RegAlloc/Linear/X86_64/FreeRegs"
"RegAlloc/Linear/PPC/FreeRegs"
"RegAlloc/Linear/SPARC/FreeRegs"
"Dwarf"
"Dwarf/Types"
"Dwarf/Constants"
"Convert"
"ByteCodeTypes"
"ByteCodeAsm"
"ByteCodeGen"
"ByteCodeInstr"
"ByteCodeItbls"
"ByteCodeLink"
"Debugger"
"Linker"
"RtClosureInspect"
"GHCi"
];
cSources = [
"parser/cutils.c"
"ghci/keepCAFsForGHCi.c"
"cbits/genSym.c"
];
hsSourceDirs = [
"backpack"
"basicTypes"
"cmm"
"codeGen"
"coreSyn"
"deSugar"
"ghci"
"hsSyn"
"iface"
"llvmGen"
"main"
"nativeGen"
"parser"
"prelude"
"profiling"
"rename"
"simplCore"
"simplStg"
"specialise"
"stgSyn"
"stranal"
"typecheck"
"types"
"utils"
"hieFile"
];
includeDirs = [
"."
"parser"
"utils"
] ++ (pkgs.lib).optional (flags.ghci) "../rts/dist/build";
};
};
} // rec { src = (pkgs.lib).mkDefault ../compiler; }

View File

@ -0,0 +1,101 @@
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 = { ghci = false; };
package = {
specVersion = "1.10";
identifier = { name = "ghci"; version = "8.8.2"; };
license = "BSD-3-Clause";
copyright = "";
maintainer = "ghc-devs@haskell.org";
author = "";
homepage = "";
url = "";
synopsis = "The library supporting GHC's interactive interpreter";
description = "This library offers interfaces which mediate interactions between the\n@ghci@ interactive shell and @iserv@, GHC's out-of-process interpreter\nbackend.";
buildType = "Simple";
isLocal = true;
detailLevel = "FullDetails";
licenseFiles = [ "LICENSE" ];
dataDir = "";
dataFiles = [];
extraSrcFiles = [ "changelog.md" ];
extraTmpFiles = [];
extraDocFiles = [];
};
components = {
"library" = {
depends = [
(hsPkgs."array" or (buildDepError "array"))
(hsPkgs."base" or (buildDepError "base"))
(hsPkgs."binary" or (buildDepError "binary"))
(hsPkgs."bytestring" or (buildDepError "bytestring"))
(hsPkgs."containers" or (buildDepError "containers"))
(hsPkgs."deepseq" or (buildDepError "deepseq"))
(hsPkgs."filepath" or (buildDepError "filepath"))
(hsPkgs."ghc-boot" or (buildDepError "ghc-boot"))
(hsPkgs."ghc-boot-th" or (buildDepError "ghc-boot-th"))
(hsPkgs."ghc-heap" or (buildDepError "ghc-heap"))
(hsPkgs."template-haskell" or (buildDepError "template-haskell"))
(hsPkgs."transformers" or (buildDepError "transformers"))
] ++ (pkgs.lib).optional (!system.isWindows) (hsPkgs."unix" or (buildDepError "unix"));
buildable = true;
modules = [
"GHCi/BreakArray"
"GHCi/BinaryArray"
"GHCi/Message"
"GHCi/ResolvedBCO"
"GHCi/RemoteTypes"
"GHCi/FFI"
"GHCi/InfoTable"
"GHCi/StaticPtrTable"
"GHCi/TH/Binary"
"SizedSeq"
] ++ (pkgs.lib).optionals (flags.ghci) [
"GHCi/Run"
"GHCi/CreateBCO"
"GHCi/ObjLink"
"GHCi/Signals"
"GHCi/TH"
];
};
};
} // rec { src = (pkgs.lib).mkDefault ../libraries/ghci; }

Some files were not shown because too many files have changed in this diff Show More