mirror of
https://github.com/ilyakooo0/haskell.nix.git
synced 2024-09-11 06:55:40 +03:00
build ghcjs (#382)
Adds `ghcjs` to haskell.nix Co-authored-by: Hamish Mackenzie <Hamish.K.Mackenzie@googlemail.com> Co-authored-by: Michael Bishop <cleverca22@gmail.com>
This commit is contained in:
parent
e346ccbef8
commit
f5b150c98a
@ -103,6 +103,7 @@ let
|
||||
map (arg: "--hsc2hs-option=" + arg) (["--cross-compile"] ++ lib.optionals (stdenv.hostPlatform.isWindows) ["--via-asm"])
|
||||
++ lib.optional (package.buildType == "Configure") "--configure-option=--host=${stdenv.hostPlatform.config}" )
|
||||
++ component.configureFlags
|
||||
++ (ghc.extraConfigureFlags or [])
|
||||
);
|
||||
|
||||
setupGhcOptions = lib.optional (package.ghcOptions != null) '' --ghc-options="${package.ghcOptions}"'';
|
||||
@ -139,7 +140,7 @@ let
|
||||
in stdenv.lib.fix (drv:
|
||||
|
||||
stdenv.mkDerivation ({
|
||||
name = fullName;
|
||||
name = "${ghc.targetPrefix}${fullName}";
|
||||
|
||||
src = cleanSrc;
|
||||
|
||||
@ -272,10 +273,10 @@ stdenv.mkDerivation ({
|
||||
${ghc.targetPrefix}ghc-pkg -v0 init $out/package.conf.d
|
||||
if [ -d "${name}.conf" ]; then
|
||||
for pkg in ${name}.conf/*; do
|
||||
${ghc.targetPrefix}ghc-pkg -v0 --package-db ${configFiles}/package.conf.d -f $out/package.conf.d register "$pkg"
|
||||
${ghc.targetPrefix}ghc-pkg -v0 --package-db ${configFiles}/${configFiles.packageCfgDir} -f $out/package.conf.d register "$pkg"
|
||||
done
|
||||
elif [ -e "${name}.conf" ]; then
|
||||
${ghc.targetPrefix}ghc-pkg -v0 --package-db ${configFiles}/package.conf.d -f $out/package.conf.d register ${name}.conf
|
||||
${ghc.targetPrefix}ghc-pkg -v0 --package-db ${configFiles}/${configFiles.packageCfgDir} -f $out/package.conf.d register ${name}.conf
|
||||
fi
|
||||
|
||||
mkdir -p $out/exactDep
|
||||
|
@ -15,15 +15,11 @@
|
||||
}:
|
||||
|
||||
let
|
||||
isGhcjs = ghc.isGhcjs or false;
|
||||
ghcCommand' = if isGhcjs then "ghcjs" else "ghc";
|
||||
ghcCommand = "${ghc.targetPrefix}${ghcCommand'}";
|
||||
ghcCommandCaps = lib.toUpper ghcCommand';
|
||||
libDir = "$out/lib/${ghcCommand}-${ghc.version}";
|
||||
inherit (configFiles) ghcCommand ghcCommandCaps packageCfgDir;
|
||||
libDir = "$out/${configFiles.libDir}";
|
||||
docDir = "$out/share/doc/ghc/html";
|
||||
packageCfgDir = "${libDir}/package.conf.d";
|
||||
|
||||
in runCommand "${componentName}-${ghc.name}" {
|
||||
in runCommand "${componentName}-${ghc.name}-env" {
|
||||
preferLocalBuild = true;
|
||||
passthru = {
|
||||
inherit (ghc) version meta;
|
||||
@ -40,12 +36,16 @@ in runCommand "${componentName}-${ghc.name}" {
|
||||
rm -rf ${libDir}/*/
|
||||
# ... but retain the lib/ghc/bin directory. This contains `unlit' and friends.
|
||||
ln -s ${ghc}/lib/${ghcCommand}-${ghc.version}/bin ${libDir}
|
||||
# ... and the ghcjs shim's if they are available
|
||||
# ... and the ghcjs shim's if they are available ...
|
||||
if [ -d ${ghc}/lib/${ghcCommand}-${ghc.version}/shims ]; then
|
||||
ln -s ${ghc}/lib/${ghcCommand}-${ghc.version}/shims ${libDir}
|
||||
fi
|
||||
# ... and node modules ...
|
||||
if [ -d ${ghc}/lib/${ghcCommand}-${ghc.version}/ghcjs-node ]; then
|
||||
ln -s ${ghc}/lib/${ghcCommand}-${ghc.version}/ghcjs-node ${libDir}
|
||||
fi
|
||||
# Replace the package database with the one from target package config.
|
||||
ln -s ${configFiles}/package.conf.d ${packageCfgDir}
|
||||
ln -s ${configFiles}/${packageCfgDir} $out/${packageCfgDir}
|
||||
|
||||
# Wrap compiler executables with correct env variables.
|
||||
# The NIX_ variables are used by the patched Paths_ghc module.
|
||||
@ -88,7 +88,7 @@ in runCommand "${componentName}-${ghc.name}" {
|
||||
for prg in ${ghcCommand}-pkg ${ghcCommand}-pkg-${ghc.version}; do
|
||||
if [[ -x "${ghc}/bin/$prg" ]]; then
|
||||
rm -f $out/bin/$prg
|
||||
makeWrapper ${ghc}/bin/$prg $out/bin/$prg --add-flags "--global-package-db=${packageCfgDir}"
|
||||
makeWrapper ${ghc}/bin/$prg $out/bin/$prg --add-flags "--global-package-db=$out/${packageCfgDir}"
|
||||
fi
|
||||
done
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
{ pkgs, buildPackages, stdenv, lib, haskellLib, ghc, fetchurl, runCommand, comp-builder, setup-builder }:
|
||||
|
||||
|
||||
config:
|
||||
{ flags
|
||||
, package
|
||||
, components
|
||||
@ -16,7 +16,7 @@
|
||||
, shellHook
|
||||
|
||||
, ...
|
||||
}@config:
|
||||
}@pkg:
|
||||
|
||||
assert (if ghc.isHaskellNixCompiler or false then true
|
||||
else throw ("It is likely you used `haskell.compiler.X` instead of `haskell-nix.compiler.X`"
|
||||
@ -34,21 +34,59 @@ let
|
||||
import Distribution.Simple
|
||||
main = defaultMain
|
||||
'';
|
||||
defaultSetup = buildPackages.runCommand "default-Setup" { nativeBuildInputs = [(ghc.passthru.buildGHC or ghc)]; } ''
|
||||
cat ${defaultSetupSrc} > Setup.hs
|
||||
mkdir -p $out/bin
|
||||
${(ghc.passthru.buildGHC or ghc).targetPrefix}ghc Setup.hs --make -o $out/bin/Setup
|
||||
'';
|
||||
defaultSetup = setup-builder {
|
||||
name = "${ghc.targetPrefix}default-Setup";
|
||||
component = {
|
||||
depends = config.setup-depends;
|
||||
libs = [];
|
||||
frameworks = [];
|
||||
doExactConfig = false;
|
||||
includeDirs = [];
|
||||
asmSources = [];
|
||||
cSources = [];
|
||||
cmmSources = [];
|
||||
cxxSources = [];
|
||||
jsSources = [];
|
||||
extraSrcFiles = [ "Setup.hs" "Setup.lhs" ];
|
||||
pkgconfig = [];
|
||||
build-tools = [];
|
||||
|
||||
setup = if package.buildType == "Simple" && package.setup-depends == []
|
||||
platforms = null;
|
||||
preBuild = null; postBuild = null;
|
||||
preInstall = null; postInstall = null;
|
||||
preUnpack = null; postUnpack = null;
|
||||
};
|
||||
package = {
|
||||
identifier = {
|
||||
name = "default-Setup";
|
||||
version = "1.0";
|
||||
};
|
||||
homepage = null;
|
||||
synopsis = null;
|
||||
license = "MIT";
|
||||
};
|
||||
src = null; cleanSrc = buildPackages.runCommand "default-Setup-src" {} ''
|
||||
mkdir $out
|
||||
cat ${defaultSetupSrc} > $out/Setup.hs
|
||||
'';
|
||||
inherit defaultSetupSrc;
|
||||
};
|
||||
|
||||
# buildPackages.runCommand "default-Setup" { nativeBuildInputs = [(ghc.passthru.buildGHC or ghc)]; } ''
|
||||
# cat ${defaultSetupSrc} > Setup.hs
|
||||
# mkdir -p $out/bin
|
||||
# ${(ghc.passthru.buildGHC or ghc).targetPrefix}ghc Setup.hs --make -o $out/bin/Setup
|
||||
# '';
|
||||
|
||||
setup = if package.buildType == "Simple"
|
||||
then defaultSetup
|
||||
else setup-builder {
|
||||
component = components.setup // {
|
||||
depends = components.setup.depends ++ package.setup-depends;
|
||||
depends = config.setup-depends ++ components.setup.depends ++ package.setup-depends;
|
||||
extraSrcFiles = components.setup.extraSrcFiles ++ [ "Setup.hs" "Setup.lhs" ];
|
||||
};
|
||||
inherit package name src flags revision patches defaultSetupSrc;
|
||||
inherit (config) preUnpack postUnpack;
|
||||
inherit (pkg) preUnpack postUnpack;
|
||||
};
|
||||
|
||||
buildComp = componentId: component: comp-builder {
|
||||
@ -58,7 +96,7 @@ let
|
||||
};
|
||||
|
||||
in rec {
|
||||
components = haskellLib.applyComponents buildComp config;
|
||||
components = haskellLib.applyComponents buildComp pkg;
|
||||
checks = pkgs.recurseIntoAttrs (builtins.mapAttrs
|
||||
(_: d: haskellLib.check d)
|
||||
(lib.filterAttrs (_: d: d.config.doCheck) components.tests));
|
||||
|
@ -17,9 +17,10 @@ let
|
||||
|
||||
# exactDep will pass --exact-configuration to the `SETUP_HS confiugre` command.
|
||||
# This requires us to pass --dependency={dep name}={pkg id}. The dependency
|
||||
# name will usually be the name of the package `p`, that will have been located
|
||||
# in the suitable package db when the dependency (along with `exactDep` and `envDep`)
|
||||
# was built. Sublibs need a bit of special handling:
|
||||
# name will usually be the name of the package `p`, which we can locate in the
|
||||
# package-db, passed in via `pdbArg`. Thus querying the package-db for the
|
||||
# id field for package `p`, will unsually provide is with the right value. Sublibs
|
||||
# need a bit of special handling:
|
||||
#
|
||||
# - Sublibs: if the dependency is a sublibrary of a package, we need to use
|
||||
# the sublibrary's name for the dep name, and lookup the sublibraries
|
||||
@ -30,11 +31,11 @@ let
|
||||
|
||||
getLibComponent = dep:
|
||||
dep.components.library # Regular package dependency
|
||||
or dep; # or a sublib
|
||||
|
||||
or dep; # or a sublib
|
||||
|
||||
catPkgExactDep = p: ''
|
||||
cat ${getLibComponent p}/exactDep/configure-flags >> $out/configure-flags
|
||||
cat ${getLibComponent p}/exactDep/cabal.config >> $out/cabal.config
|
||||
cat ${p}/exactDep/configure-flags >> $out/configure-flags
|
||||
cat ${p}/exactDep/cabal.config >> $out/cabal.config
|
||||
'';
|
||||
|
||||
catGhcPkgExactDep = p: ''
|
||||
@ -45,7 +46,7 @@ let
|
||||
'';
|
||||
|
||||
catPkgEnvDep = p: ''
|
||||
cat ${getLibComponent p}/envDep >> $out/ghc-environment
|
||||
cat ${p}/envDep >> $out/ghc-environment
|
||||
'';
|
||||
|
||||
catGhcPkgEnvDep = p: ''
|
||||
@ -54,11 +55,36 @@ let
|
||||
fi
|
||||
'';
|
||||
|
||||
# Work our suitable packageCfgDir subdirectory
|
||||
isGhcjs = ghc.isGhcjs or false;
|
||||
ghcCommand' = if isGhcjs then "ghcjs" else "ghc";
|
||||
ghcCommand = "${ghc.targetPrefix}${ghcCommand'}";
|
||||
ghcCommandCaps = lib.toUpper ghcCommand';
|
||||
libDir = "lib/${ghcCommand}-${ghc.version}";
|
||||
packageCfgDir = "${libDir}/package.conf.d";
|
||||
|
||||
in { identifier, component, fullName, flags ? {} }:
|
||||
runCommand "${fullName}-config" { nativeBuildInputs = [ghc]; } (''
|
||||
# Filters out only library packages that for this GHC target
|
||||
# TODO investigate why this is needed
|
||||
let libDeps = lib.filter (p: p.configFiles.targetPrefix == ghc.targetPrefix)
|
||||
(map getLibComponent component.depends);
|
||||
cfgFiles =
|
||||
let xs = map
|
||||
(p: "${p.configFiles}")
|
||||
libDeps;
|
||||
in lib.concatStringsSep "\" \"" xs;
|
||||
libs = lib.concatMapStringsSep "\" \"" (p: "${p}") libDeps;
|
||||
in
|
||||
runCommand "${ghc.targetPrefix}${fullName}-config" {
|
||||
nativeBuildInputs = [ghc];
|
||||
passthru = {
|
||||
inherit (ghc) targetPrefix;
|
||||
inherit ghcCommand ghcCommandCaps libDir packageCfgDir;
|
||||
};
|
||||
} (''
|
||||
mkdir -p $out
|
||||
|
||||
${target-pkg} init $out/package.conf.d
|
||||
${target-pkg} init $out/${packageCfgDir}
|
||||
|
||||
${lib.concatStringsSep "\n" (lib.mapAttrsToList flagsAndConfig {
|
||||
"extra-lib-dirs" = map (p: "${lib.getLib p}/lib") component.libs;
|
||||
@ -68,16 +94,22 @@ in { identifier, component, fullName, flags ? {} }:
|
||||
|
||||
# Copy over the nonReinstallablePkgs from the global package db.
|
||||
${lib.concatMapStringsSep "\n" (p: ''
|
||||
find ${ghc}/lib/${ghc.name}/package.conf.d -name '${p}*.conf' -exec cp -f {} $out/package.conf.d \;
|
||||
find ${ghc}/lib/${ghc.name}/package.conf.d -name '${p}*.conf' -exec cp -f {} $out/${packageCfgDir} \;
|
||||
'') nonReinstallablePkgs}
|
||||
|
||||
${lib.concatMapStringsSep "\n" (p: ''
|
||||
cp -f "${(getLibComponent p).configFiles}/package.conf.d/"*.conf $out/package.conf.d
|
||||
cp -f "${getLibComponent p}/package.conf.d/"*.conf $out/package.conf.d
|
||||
'') component.depends}
|
||||
for l in "${cfgFiles}"; do
|
||||
if [ -n "$l" ]; then
|
||||
cp -f "$l/${packageCfgDir}/"*.conf $out/${packageCfgDir}
|
||||
fi
|
||||
done
|
||||
for l in "${libs}"; do
|
||||
if [ -n "$l" ]; then
|
||||
cp -f "$l/package.conf.d/"*.conf $out/${packageCfgDir}
|
||||
fi
|
||||
done
|
||||
|
||||
# Note: we pass `clear` first to ensure that we never consult the implicit global package db.
|
||||
${flagsAndConfig "package-db" ["clear" "$out/package.conf.d"]}
|
||||
${flagsAndConfig "package-db" ["clear" "$out/${packageCfgDir}"]}
|
||||
|
||||
echo ${lib.concatStringsSep " " (lib.mapAttrsToList (fname: val: "--flags=${lib.optionalString (!val) "-" + fname}") flags)} >> $out/configure-flags
|
||||
|
||||
@ -86,17 +118,17 @@ in { identifier, component, fullName, flags ? {} }:
|
||||
|
||||
# Provide a GHC environment file
|
||||
cat > $out/ghc-environment <<EOF
|
||||
package-db $out/package.conf.d
|
||||
package-db $out/${packageCfgDir}
|
||||
EOF
|
||||
|
||||
${lib.concatMapStringsSep "\n" catPkgEnvDep component.depends}
|
||||
${lib.concatMapStringsSep "\n" catPkgEnvDep libDeps}
|
||||
${lib.concatMapStringsSep "\n" catGhcPkgEnvDep (lib.remove "ghc" nonReinstallablePkgs)}
|
||||
'' + lib.optionalString component.doExactConfig ''
|
||||
echo "--exact-configuration" >> $out/configure-flags
|
||||
echo "allow-newer: ${identifier.name}:*" >> $out/cabal.config
|
||||
echo "allow-older: ${identifier.name}:*" >> $out/cabal.config
|
||||
|
||||
${lib.concatMapStringsSep "\n" catPkgExactDep component.depends}
|
||||
${lib.concatMapStringsSep "\n" catPkgExactDep libDeps}
|
||||
${lib.concatMapStringsSep "\n" catGhcPkgExactDep nonReinstallablePkgs}
|
||||
|
||||
''
|
||||
@ -116,10 +148,12 @@ in { identifier, component, fullName, flags ? {} }:
|
||||
# (e.g. libiconv), and thus we don't want to fail, but just link it again.
|
||||
#
|
||||
# Confusing sed stuff:
|
||||
# '/^ ./{H;$!d} ; x' Groups lines that start with a space with the initial
|
||||
# line of a block. Needs a blank line added to the file
|
||||
# to terminate the last block.
|
||||
# 's/ /\n/g ; s/\n\n*/\n/g; s/^\n//;' Puts each field on its own line.
|
||||
# '/^ ./{H;$!d} ; x' Groups lines that start with a space with the initial
|
||||
# line of a block. Needs a blank line added to the file
|
||||
# to terminate the last block.
|
||||
# 's/ /\n/g ; s/\n\n*/\n/g; s/^\n//;' Puts each field on its own line.
|
||||
# 's|/nix/store/|''${pkgroot}/../../../|' Convert store path to pkgroot relative path
|
||||
# 's|''${pkgroot}/../../../|/nix/store/|' Convert pkgroot relative path to store path
|
||||
+ lib.optionalString stdenv.isDarwin ''
|
||||
# Work around a limit in the macOS Sierra linker on the number of paths
|
||||
# referenced by any one dynamic library:
|
||||
@ -128,20 +162,25 @@ in { identifier, component, fullName, flags ? {} }:
|
||||
# libraries) from all the dependencies.
|
||||
local dynamicLinksDir="$out/lib/links"
|
||||
mkdir -p $dynamicLinksDir
|
||||
# Enumerate dynamic-library-dirs with ''${pkgroot} expanded.
|
||||
local dirsToLink=$(
|
||||
for f in "$out/package.conf.d/"*.conf; do
|
||||
for f in "$out/${packageCfgDir}/"*.conf; do
|
||||
(cat $f; echo) | sed -En '/^ ./{H;$!d} ; x ; /^dynamic-library-dirs:/ {s/^dynamic-library-dirs:// ; s/ /\n/g ; s/\n\n*/\n/g; s/^\n//; p}'
|
||||
done | sort -u
|
||||
done | sed 's|''${pkgroot}/../../../|/nix/store/|' | sort -u
|
||||
)
|
||||
for d in $dirsToLink; do
|
||||
ln -f -s "$d/"*.dylib $dynamicLinksDir
|
||||
done
|
||||
# Edit the local package DB to reference the links directory.
|
||||
for f in "$out/package.conf.d/"*.conf; do
|
||||
for f in "$out/${packageCfgDir}/"*.conf; do
|
||||
chmod +w $f
|
||||
echo >> $f
|
||||
sed -i -E "/^ ./{H;$!d} ; x ; s,^dynamic-library-dirs:.*,dynamic-library-dirs: $dynamicLinksDir," $f
|
||||
done
|
||||
'' + ''
|
||||
${target-pkg} -v0 --package-db $out/package.conf.d recache
|
||||
# Use ''${pkgroot} relative paths so that we can relocate the package database
|
||||
# along with referenced packages and still have it work on systems with
|
||||
# or without nix installed.
|
||||
sed -i 's|/nix/store/|''${pkgroot}/../../../|' $out/${packageCfgDir}/*.conf
|
||||
${target-pkg} -v0 --package-db $out/${packageCfgDir} recache
|
||||
'')
|
||||
|
@ -1,15 +1,14 @@
|
||||
{ stdenv, lib, buildPackages, haskellLib, ghc, nonReinstallablePkgs, hsPkgs, makeSetupConfigFiles, pkgconfig }:
|
||||
|
||||
{ component, package, name, src, flags, revision, patches, defaultSetupSrc
|
||||
{ component, package, name, src, flags ? {}, revision ? null, patches ? [], defaultSetupSrc
|
||||
, preUnpack ? component.preUnpack, postUnpack ? component.postUnpack
|
||||
, prePatch ? null, postPatch ? null
|
||||
, preBuild ? component.preBuild , postBuild ? component.postBuild
|
||||
, preInstall ? component.preInstall , postInstall ? component.postInstall
|
||||
, cleanSrc ? haskellLib.cleanCabalComponent package component src
|
||||
}:
|
||||
|
||||
let
|
||||
cleanSrc = haskellLib.cleanCabalComponent package component src;
|
||||
|
||||
fullName = "${name}-setup";
|
||||
|
||||
includeGhcPackage = lib.any (p: p.identifier.name == "ghc") component.depends;
|
||||
@ -36,7 +35,7 @@ let
|
||||
in
|
||||
stdenv.lib.fix (drv:
|
||||
stdenv.mkDerivation ({
|
||||
name = "${fullName}";
|
||||
name = "${ghc.targetPrefix}${fullName}";
|
||||
src = cleanSrc;
|
||||
buildInputs = component.libs
|
||||
++ component.frameworks
|
||||
@ -70,7 +69,7 @@ in
|
||||
if [ -f $f ]; then
|
||||
echo Compiling package $f
|
||||
ghc $f -threaded '' + (if includeGhcPackage then "-package ghc " else "")
|
||||
+ ''-package-db ${configFiles}/package.conf.d --make -o ./Setup
|
||||
+ ''-package-db ${configFiles}/${configFiles.packageCfgDir} --make -o ./Setup
|
||||
setup=$(pwd)/Setup
|
||||
fi
|
||||
done
|
||||
|
@ -90,6 +90,7 @@ in
|
||||
|
||||
passthru = (mkDrvArgs.passthru or {}) // {
|
||||
ghc = ghcEnv;
|
||||
inherit configFiles;
|
||||
};
|
||||
} // lib.optionalAttrs exactDeps {
|
||||
CABAL_CONFIG = "${configFiles}/cabal.config";
|
||||
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"url": "https://github.com/ghcjs/ghcjs",
|
||||
"rev": "d97caeb07757e09f7402429532c14d20eab79bd2",
|
||||
"sha256": "0025pjgbmr34f2wadrnm9crnx966scc7ja8n9gy93jcqzzmvgj6x",
|
||||
"rev": "e87195eaa2bc7e320e18cf10386802bc90b7c874",
|
||||
"sha256": "02mwkf7aagxqi142gcmq048244apslrr72p568akcab9s0fn2gvy",
|
||||
"fetchSubmodules": true
|
||||
}
|
||||
}
|
||||
|
@ -9,66 +9,15 @@
|
||||
, cabal-install ? pkgs.buildPackages.cabal-install
|
||||
}:
|
||||
let
|
||||
configured-src = pkgs.buildPackages.runCommand "configured-ghcjs-src" {
|
||||
buildInputs = with pkgs.buildPackages; [
|
||||
perl
|
||||
autoconf
|
||||
automake
|
||||
python3
|
||||
] ++ [
|
||||
ghc
|
||||
happy
|
||||
alex
|
||||
cabal-install
|
||||
];
|
||||
inherit ghcjsSrc;
|
||||
} ''
|
||||
export HOME=$(pwd)
|
||||
mkdir $HOME/.cabal
|
||||
touch $HOME/.cabal/config
|
||||
cp -r "$ghcjsSrc" "$out"
|
||||
chmod -R +w "$out"
|
||||
cd "$out"
|
||||
project = pkgs.buildPackages.haskell-nix.ghcjsProject {
|
||||
src = ghcjsSrc;
|
||||
inherit ghc ghcjsVersion ghcVersion happy alex cabal-install;
|
||||
index-state = "2019-12-10T00:00:00Z";
|
||||
# plan-sha256 = "1wy2lr08maxyi7r8jiwf2gj6pdayk5vxxwh42bj4s2gg4035z0yc";
|
||||
# materialized = ../../materialized/ghcjs;
|
||||
};
|
||||
|
||||
# TODO: Find a better way to avoid impure version numbers
|
||||
sed -i 's/RELEASE=NO/RELEASE=YES/' ghc/configure.ac
|
||||
sed -i 's/${ghcjsVersion}/${ghcVersion}/' ghcjs.cabal
|
||||
|
||||
# TODO: How to actually fix this?
|
||||
# Seems to work fine and produce the right files.
|
||||
touch ghc/includes/ghcautoconf.h
|
||||
mkdir -p ghc/compiler/vectorise
|
||||
mkdir -p ghc/utils/haddock/haddock-library/vendor
|
||||
|
||||
patchShebangs .
|
||||
sed -i 's/gcc /cc /g' utils/makePackages.sh
|
||||
cat utils/makePackages.sh
|
||||
./utils/makePackages.sh copy
|
||||
|
||||
echo " build-tool-depends: alex:alex, happy:happy <= 1.19.9" >> lib/ghc-api-ghcjs/ghc-api-ghcjs.cabal
|
||||
'';
|
||||
# see https://github.com/ghcjs/ghcjs/issues/751 for the happy upper bound.
|
||||
ghcjs = (pkgs.buildPackages.haskell-nix.cabalProject {
|
||||
src = configured-src;
|
||||
inherit ghc;
|
||||
modules = [
|
||||
{
|
||||
# we need ghc-boot in here for ghcjs.
|
||||
nonReinstallablePkgs = [ "rts" "ghc-heap" "ghc-prim" "integer-gmp" "integer-simple" "base"
|
||||
"deepseq" "array" "ghc-boot-th" "pretty" "template-haskell"
|
||||
"ghc-boot" "binary" "bytestring" "filepath" "directory" "containers"
|
||||
"time" "unix" "Win32" ];
|
||||
}
|
||||
{
|
||||
packages.Cabal.patches = [ ./../../overlays/patches/Cabal/fix-data-dir.patch ];
|
||||
packages.ghcjs.doHaddock = false;
|
||||
packages.haddock-ghcjs.doHaddock = false;
|
||||
packages.haddock-api-ghcjs.doHaddock = false;
|
||||
packages.ghcjs.flags = { no-wrapper-install = true; };
|
||||
# packages.ghcjs.components.library.configureFlags = [ "-fno-wrapper-install" ];
|
||||
}
|
||||
];
|
||||
}).ghcjs; # <- we are only interested in the `ghcjs` package.
|
||||
inherit (project.hsPkgs) ghcjs;
|
||||
|
||||
all-ghcjs = pkgs.buildPackages.symlinkJoin {
|
||||
name = "ghcjs-${ghcjsVersion}-symlinked";
|
||||
@ -79,46 +28,41 @@ let
|
||||
ghcjs.components.exes.hsc2hs-ghcjs
|
||||
ghcjs.components.exes.ghcjs-boot
|
||||
ghcjs.components.exes.ghcjs-run
|
||||
ghcjs.components.exes.ghcjs-dumparchive
|
||||
];
|
||||
};
|
||||
libexec = "${all-ghcjs}/libexec/${builtins.replaceStrings ["darwin" "i686"] ["osx" "i386"] pkgs.stdenv.buildPlatform.system}-${ghc.name}/ghcjs-${ghcVersion}";
|
||||
in pkgs.stdenv.mkDerivation {
|
||||
name = "ghcjs-${ghcVersion}";
|
||||
src = configured-src;
|
||||
libexec = "libexec/${builtins.replaceStrings ["darwin" "i686"] ["osx" "i386"] pkgs.stdenv.buildPlatform.system}-${ghc.name}/ghcjs-${ghcVersion}";
|
||||
booted-ghcjs = pkgs.stdenv.mkDerivation {
|
||||
name = "ghcjs-${ghcVersion}";
|
||||
src = project.configured-src;
|
||||
|
||||
nativeBuildInputs = with pkgs.buildPackages; [
|
||||
nodejs
|
||||
makeWrapper
|
||||
xorg.lndir
|
||||
gmp
|
||||
pkgconfig
|
||||
]
|
||||
++ [ ghc cabal-install ]
|
||||
++ lib.optionals stdenv.isDarwin [
|
||||
pkgs.buildPackages.gcc # https://github.com/ghcjs/ghcjs/issues/663
|
||||
];
|
||||
passthru = {
|
||||
nativeBuildInputs = project.bootInputs;
|
||||
passthru = {
|
||||
inherit all-ghcjs;
|
||||
} // ghcjs.components.exes;
|
||||
dontConfigure = true;
|
||||
dontInstall = true;
|
||||
buildPhase = ''
|
||||
export HOME=$TMP
|
||||
mkdir $HOME/.cabal
|
||||
touch $HOME/.cabal/config
|
||||
cd lib/boot
|
||||
inherit (project) configured-src;
|
||||
# Used to detect non haskell-nix compilers (accedental use of nixpkgs compilers can lead to unexpected errors)
|
||||
isHaskellNixCompiler = true;
|
||||
} // ghcjs.components.exes;
|
||||
dontConfigure = true;
|
||||
dontInstall = true;
|
||||
buildPhase = ''
|
||||
export HOME=$TMP
|
||||
mkdir $HOME/.cabal
|
||||
touch $HOME/.cabal/config
|
||||
cd lib/boot
|
||||
|
||||
mkdir -p $out/bin
|
||||
mkdir -p $out/lib/ghcjs-${ghcVersion}
|
||||
lndir ${libexec} $out/bin
|
||||
mkdir -p $out/bin
|
||||
mkdir -p $out/lib/ghcjs-${ghcVersion}
|
||||
lndir ${all-ghcjs}/${libexec} $out/bin
|
||||
|
||||
wrapProgram $out/bin/ghcjs --add-flags "-B$out/lib/ghcjs-${ghcVersion}"
|
||||
wrapProgram $out/bin/haddock-ghcjs --add-flags "-B$out/lib/ghcjs-${ghcVersion}"
|
||||
wrapProgram $out/bin/ghcjs-pkg --add-flags "--global-package-db=$out/lib/ghcjs-${ghcVersion}/package.conf.d"
|
||||
wrapProgram $out/bin/ghcjs --add-flags "-B$out/lib/ghcjs-${ghcVersion}"
|
||||
wrapProgram $out/bin/haddock-ghcjs --add-flags "-B$out/lib/ghcjs-${ghcVersion}"
|
||||
wrapProgram $out/bin/ghcjs-pkg --add-flags "--global-package-db=$out/lib/ghcjs-${ghcVersion}/package.conf.d"
|
||||
|
||||
env PATH=$out/bin:$PATH $out/bin/ghcjs-boot -j1 --with-ghcjs-bin $out/bin
|
||||
'';
|
||||
# We hard code -j1 as a temporary workaround for
|
||||
# https://github.com/ghcjs/ghcjs/issues/654
|
||||
# enableParallelBuilding = true;
|
||||
}
|
||||
env PATH=$out/bin:$PATH $out/bin/ghcjs-boot -j1 --with-ghcjs-bin $out/bin
|
||||
'';
|
||||
# We hard code -j1 as a temporary workaround for
|
||||
# https://github.com/ghcjs/ghcjs/issues/654
|
||||
# enableParallelBuilding = true;
|
||||
};
|
||||
in booted-ghcjs
|
@ -173,7 +173,7 @@ let
|
||||
else null;
|
||||
} // pkgs.lib.optionalAttrs (checkMaterialization != null) {
|
||||
inherit checkMaterialization;
|
||||
}) (runCommand (if name == null then "plan-to-nix-pkgs" else name + "-plan-to-nix-pkgs") {
|
||||
}) (builtins.trace "[${if name == null then "plan-to-nix-pkgs" else name + "-plan-to-nix-pkgs"}] cabal new-configure --with-ghc=${ghc.targetPrefix}ghc --with-ghc-pkg=${ghc.targetPrefix}ghc-pkg" (runCommand (if name == null then "plan-to-nix-pkgs" else name + "-plan-to-nix-pkgs") {
|
||||
nativeBuildInputs = [ nix-tools ghc hpack cabal-install pkgs.rsync pkgs.git ];
|
||||
# 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";
|
||||
@ -247,5 +247,5 @@ let
|
||||
|
||||
# move pkgs.nix to default.nix ensure we can just nix `import` the result.
|
||||
mv $out/pkgs.nix $out/default.nix
|
||||
'');
|
||||
''));
|
||||
in { projectNix = plan-nix; inherit src; inherit (fixedProject) sourceRepos; }
|
||||
|
131
lib/ghcjs-project.nix
Normal file
131
lib/ghcjs-project.nix
Normal file
@ -0,0 +1,131 @@
|
||||
# For the time being we can't really treat ghcjs like a
|
||||
# regular ghc (with different target). We need this as a
|
||||
# stop-gap measure until ghcjs can be treated like a regular
|
||||
# ghc.
|
||||
#
|
||||
# `haskell-nix.ghcjsProject` wraps `haskell-nix.cabalProject'`
|
||||
# for use with the ghcjs source. It is exposed to allow GHCJS
|
||||
# developers to work on the GHCJS code in a nix-shell with
|
||||
# `shellFor`. It takes thes the clean src (from fetched
|
||||
# source or local source that has been cleaned with cleanGit.
|
||||
# It configures the source and passes it onto `cabalProject`
|
||||
# along with the necessary modules.
|
||||
#
|
||||
# It also adds `configureInputs` and `bootInputs` that a
|
||||
# needed for configuring the source and booting the compiler
|
||||
# once it is built. These are added to the `hsPkgs.shellFor`
|
||||
# of the project.
|
||||
{ pkgs }:
|
||||
{ src
|
||||
, ghc ? pkgs.ghc
|
||||
, ghcjsVersion ? "8.6.0.1" # TODO get this from the source?
|
||||
, ghcVersion ? "8.6.5" # TODO get this from the ghc arg?
|
||||
, happy ? pkgs.haskellPackages.happy
|
||||
, alex ? pkgs.haskellPackages.alex
|
||||
, cabal-install ? pkgs.cabal-install
|
||||
, ...
|
||||
}@args:
|
||||
let
|
||||
# Inputs needed to configure the GHCJS source tree
|
||||
configureInputs = with pkgs; [
|
||||
perl
|
||||
autoconf
|
||||
automake
|
||||
python3
|
||||
] ++ [
|
||||
ghc
|
||||
happy
|
||||
alex
|
||||
cabal-install
|
||||
];
|
||||
# Inputs needed to boot the GHCJS compiler
|
||||
bootInputs = with pkgs; [
|
||||
nodejs
|
||||
makeWrapper
|
||||
xorg.lndir
|
||||
gmp
|
||||
pkgconfig
|
||||
]
|
||||
++ [ ghc cabal-install ]
|
||||
++ lib.optionals stdenv.isDarwin [
|
||||
pkgs.buildPackages.gcc # https://github.com/ghcjs/ghcjs/issues/663
|
||||
];
|
||||
# Configured the GHCJS source
|
||||
configured-src = pkgs.runCommand "configured-ghcjs-src" {
|
||||
buildInputs = configureInputs;
|
||||
inherit src;
|
||||
} ''
|
||||
export HOME=$(pwd)
|
||||
mkdir $HOME/.cabal
|
||||
touch $HOME/.cabal/config
|
||||
cp -r "$src" "$out"
|
||||
chmod -R +w "$out"
|
||||
cd "$out"
|
||||
|
||||
# TODO: Find a better way to avoid impure version numbers
|
||||
sed -i 's/RELEASE=NO/RELEASE=YES/' ghc/configure.ac
|
||||
sed -i 's/${ghcjsVersion}/${ghcVersion}/' ghcjs.cabal
|
||||
|
||||
# TODO: How to actually fix this?
|
||||
# Seems to work fine and produce the right files.
|
||||
touch ghc/includes/ghcautoconf.h
|
||||
mkdir -p ghc/compiler/vectorise
|
||||
mkdir -p ghc/utils/haddock/haddock-library/vendor
|
||||
|
||||
patchShebangs .
|
||||
sed -i 's/gcc /cc /g' utils/makePackages.sh
|
||||
cat utils/makePackages.sh
|
||||
./utils/makePackages.sh copy
|
||||
|
||||
echo " build-tool-depends: alex:alex, happy:happy <= 1.19.9" >> lib/ghc-api-ghcjs/ghc-api-ghcjs.cabal
|
||||
|
||||
# nuke the HsBaseConfig.h from base.buildinfo.in; this will
|
||||
# prevent it from being installed and provide incorrect values.
|
||||
sed -i 's/HsBaseConfig.h//g' lib/boot/pkg/base/base.buildinfo.in
|
||||
cat lib/boot/pkg/base/base.buildinfo.in
|
||||
'';
|
||||
# see https://github.com/ghcjs/ghcjs/issues/751 for the happy upper bound.
|
||||
|
||||
ghcjsProject = pkgs.haskell-nix.cabalProject' (
|
||||
(pkgs.lib.filterAttrs
|
||||
(n: _: builtins.any (x: x == n)
|
||||
["src" "ghcjsVersion" "ghcVersion" "happy" "alex" "cabal-install"]) args) // {
|
||||
src = configured-src;
|
||||
modules = [
|
||||
{
|
||||
# we need ghc-boot in here for ghcjs.
|
||||
nonReinstallablePkgs = [ "rts" "ghc-heap" "ghc-prim" "integer-gmp" "integer-simple" "base"
|
||||
"deepseq" "array" "ghc-boot-th" "pretty" "template-haskell"
|
||||
"ghc-boot" "binary" "bytestring" "filepath" "directory" "containers"
|
||||
"time" "unix" "Win32" ];
|
||||
}
|
||||
{
|
||||
packages.Cabal.patches = [ ./../overlays/patches/Cabal/fix-data-dir.patch ];
|
||||
packages.ghcjs.doHaddock = false;
|
||||
packages.haddock-ghcjs.doHaddock = false;
|
||||
packages.haddock-api-ghcjs.doHaddock = false;
|
||||
packages.ghcjs.flags.no-wrapper-install = true;
|
||||
# set use-host-template-haskell. This *does*
|
||||
# work as we use a patched ghc to boot anyway.
|
||||
# (we apply https://github.com/ghcjs/ghc/commit/2918d88d4ef786b5f2801f6f77ac333cc56dde75 already)
|
||||
packages.ghcjs.flags.use-host-template-haskell = true;
|
||||
packages.ghc-api-ghcjs.flags.use-host-template-haskell = true;
|
||||
packages.ghcjs-th.flags.use-host-template-haskell = true;
|
||||
packages.ghc.flags.ghci = true;
|
||||
packages.ghci.flags.ghci = true;
|
||||
# packages.ghcjs.components.library.configureFlags = [ "-fno-wrapper-install" ];
|
||||
}
|
||||
];
|
||||
});
|
||||
in ghcjsProject // {
|
||||
# Add `configureInputs` and `bootInputs` to the shell
|
||||
hsPkgs = ghcjsProject.hsPkgs // {
|
||||
# Shell suitable for configuring and building a local copy of GHCJS
|
||||
shellFor = args: (ghcjsProject.hsPkgs.shellFor args).overrideAttrs (drv: {
|
||||
buildInputs = (drv.buildInputs or []) ++ configureInputs;
|
||||
nativeBuildInputs = (drv.nativeBuildInputs or []) ++ bootInputs;
|
||||
});
|
||||
};
|
||||
inherit configureInputs bootInputs configured-src;
|
||||
}
|
||||
|
620
materialized/ghcjs/.plan.nix/ghc-api-ghcjs.nix
Normal file
620
materialized/ghcjs/.plan.nix/ghc-api-ghcjs.nix
Normal file
@ -0,0 +1,620 @@
|
||||
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 = {
|
||||
debug = false;
|
||||
ghci = true;
|
||||
stage1 = false;
|
||||
stage2 = true;
|
||||
stage3 = false;
|
||||
terminfo = true;
|
||||
use-host-template-haskell = false;
|
||||
};
|
||||
package = {
|
||||
specVersion = "2.0";
|
||||
identifier = { name = "ghc-api-ghcjs"; 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 (customized for GHCJS)";
|
||||
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 = [
|
||||
"compiler/utils/md5.h"
|
||||
"compiler/Unique.h"
|
||||
"compiler/HsVersions.h"
|
||||
"compiler/nativeGen/NCG.h"
|
||||
"compiler/parser/cutils.h"
|
||||
"compiler/utils/md5.h"
|
||||
"includes/CodeGen.Platform.hs"
|
||||
"autogen/Config.hs"
|
||||
"autogen/864/Config.hs"
|
||||
"autogen/863/Config.hs"
|
||||
"includes/GHCConstantsHaskellExports.hs"
|
||||
"includes/GHCConstantsHaskellType.hs"
|
||||
"includes/GHCConstantsHaskellWrappers.hs"
|
||||
"includes/*.h"
|
||||
"includes/*.hs-incl"
|
||||
"includes/rts/*.h"
|
||||
"includes/rts/storage/*.h"
|
||||
"includes/stg/*.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."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"))
|
||||
] ++ (if flags.use-host-template-haskell || compiler.isGhcjs && true
|
||||
then [
|
||||
(hsPkgs."template-haskell" or (buildDepError "template-haskell"))
|
||||
(hsPkgs."ghci" or (buildDepError "ghci"))
|
||||
]
|
||||
else [
|
||||
(hsPkgs."template-haskell-ghcjs" or (buildDepError "template-haskell-ghcjs"))
|
||||
(hsPkgs."ghci-ghcjs" or (buildDepError "ghci-ghcjs"))
|
||||
])) ++ (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.happy or (pkgs.buildPackages.happy or (buildToolDepError "happy")))
|
||||
(hsPkgs.buildPackages.alex or (pkgs.buildPackages.alex or (buildToolDepError "alex")))
|
||||
(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 = [
|
||||
"compiler/parser/cutils.c"
|
||||
"compiler/ghci/keepCAFsForGHCi.c"
|
||||
"compiler/cbits/genSym.c"
|
||||
];
|
||||
hsSourceDirs = [
|
||||
"compiler/backpack"
|
||||
"compiler/basicTypes"
|
||||
"compiler/cmm"
|
||||
"compiler/codeGen"
|
||||
"compiler/coreSyn"
|
||||
"compiler/deSugar"
|
||||
"compiler/ghci"
|
||||
"compiler/hsSyn"
|
||||
"compiler/iface"
|
||||
"compiler/llvmGen"
|
||||
"compiler/main"
|
||||
"compiler/nativeGen"
|
||||
"compiler/parser"
|
||||
"compiler/prelude"
|
||||
"compiler/profiling"
|
||||
"compiler/rename"
|
||||
"compiler/simplCore"
|
||||
"compiler/simplStg"
|
||||
"compiler/specialise"
|
||||
"compiler/stgSyn"
|
||||
"compiler/stranal"
|
||||
"compiler/typecheck"
|
||||
"compiler/types"
|
||||
"compiler/utils"
|
||||
] ++ (if compiler.isGhc && (compiler.version).eq "8.6.3"
|
||||
then [ "autogen/863" ]
|
||||
else if compiler.isGhc && (compiler.version).eq "8.6.4"
|
||||
then [ "autogen/864" ]
|
||||
else [ "autogen" ]);
|
||||
includeDirs = [
|
||||
"compiler"
|
||||
"compiler/parser"
|
||||
"compiler/utils"
|
||||
"includes"
|
||||
"autogen"
|
||||
];
|
||||
};
|
||||
};
|
||||
} // rec { src = (pkgs.lib).mkDefault ../lib/ghc-api-ghcjs; }
|
101
materialized/ghcjs/.plan.nix/ghci-ghcjs.nix
Normal file
101
materialized/ghcjs/.plan.nix/ghci-ghcjs.nix
Normal 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 = true; };
|
||||
package = {
|
||||
specVersion = "1.10";
|
||||
identifier = { name = "ghci-ghcjs"; version = "8.6.1"; };
|
||||
license = "BSD-3-Clause";
|
||||
copyright = "";
|
||||
maintainer = "ghc-devs@haskell.org";
|
||||
author = "";
|
||||
homepage = "";
|
||||
url = "";
|
||||
synopsis = "The library supporting GHC's interactive interpreter (customized for GHCJS)";
|
||||
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-ghcjs" or (buildDepError "template-haskell-ghcjs"))
|
||||
(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 ../lib/ghci-ghcjs; }
|
89
materialized/ghcjs/.plan.nix/ghcjs-th.nix
Normal file
89
materialized/ghcjs/.plan.nix/ghcjs-th.nix
Normal 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 = { use-host-template-haskell = false; };
|
||||
package = {
|
||||
specVersion = "1.10";
|
||||
identifier = { name = "ghcjs-th"; version = "0.1.0.0"; };
|
||||
license = "MIT";
|
||||
copyright = "";
|
||||
maintainer = "stegeman@gmail.com";
|
||||
author = "Luite Stegeman";
|
||||
homepage = "http://github.com/ghcjs";
|
||||
url = "";
|
||||
synopsis = "";
|
||||
description = "";
|
||||
buildType = "Simple";
|
||||
isLocal = true;
|
||||
detailLevel = "FullDetails";
|
||||
licenseFiles = [ "LICENSE" ];
|
||||
dataDir = "";
|
||||
dataFiles = [];
|
||||
extraSrcFiles = [];
|
||||
extraTmpFiles = [];
|
||||
extraDocFiles = [];
|
||||
};
|
||||
components = {
|
||||
"library" = {
|
||||
depends = [
|
||||
(hsPkgs."base" or (buildDepError "base"))
|
||||
(hsPkgs."ghc-prim" or (buildDepError "ghc-prim"))
|
||||
(hsPkgs."binary" or (buildDepError "binary"))
|
||||
(hsPkgs."bytestring" or (buildDepError "bytestring"))
|
||||
(hsPkgs."containers" or (buildDepError "containers"))
|
||||
] ++ (if compiler.isGhcjs && true || flags.use-host-template-haskell
|
||||
then [
|
||||
(hsPkgs."template-haskell" or (buildDepError "template-haskell"))
|
||||
(hsPkgs."ghci" or (buildDepError "ghci"))
|
||||
]
|
||||
else [
|
||||
(hsPkgs."template-haskell-ghcjs" or (buildDepError "template-haskell-ghcjs"))
|
||||
(hsPkgs."ghci-ghcjs" or (buildDepError "ghci-ghcjs"))
|
||||
]);
|
||||
buildable = true;
|
||||
modules = [
|
||||
"GHCJS/Prim/TH/Eval"
|
||||
"GHCJS/Prim/TH/Serialized"
|
||||
"GHCJS/Prim/TH/Types"
|
||||
];
|
||||
};
|
||||
};
|
||||
} // rec { src = (pkgs.lib).mkDefault ../lib/ghcjs-th; }
|
362
materialized/ghcjs/.plan.nix/ghcjs.nix
Normal file
362
materialized/ghcjs/.plan.nix/ghcjs.nix
Normal file
@ -0,0 +1,362 @@
|
||||
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 = {
|
||||
compiler-only = false;
|
||||
no-wrapper-install = false;
|
||||
disable-optimizer = false;
|
||||
runtime-assertions = false;
|
||||
use-host-template-haskell = false;
|
||||
};
|
||||
package = {
|
||||
specVersion = "2.0";
|
||||
identifier = { name = "ghcjs"; version = "8.6.5"; };
|
||||
license = "MIT";
|
||||
copyright = "Victor Nazarov, Hamish Mackenzie, Luite Stegeman";
|
||||
maintainer = "Luite Stegeman <stegeman@gmail.com>";
|
||||
author = "Victor Nazarov, Hamish Mackenzie, Luite Stegeman";
|
||||
homepage = "";
|
||||
url = "";
|
||||
synopsis = "Haskell to JavaScript compiler";
|
||||
description = "Haskell to JavaScript compiler based on GHC";
|
||||
buildType = "Custom";
|
||||
isLocal = true;
|
||||
setup-depends = [
|
||||
(hsPkgs.buildPackages.base or (pkgs.buildPackages.base or (buildToolDepError "base")))
|
||||
(hsPkgs.buildPackages.Cabal or (pkgs.buildPackages.Cabal or (buildToolDepError "Cabal")))
|
||||
(hsPkgs.buildPackages.containers or (pkgs.buildPackages.containers or (buildToolDepError "containers")))
|
||||
(hsPkgs.buildPackages.filepath or (pkgs.buildPackages.filepath or (buildToolDepError "filepath")))
|
||||
(hsPkgs.buildPackages.directory or (pkgs.buildPackages.directory or (buildToolDepError "directory")))
|
||||
(hsPkgs.buildPackages.process or (pkgs.buildPackages.process or (buildToolDepError "process")))
|
||||
(hsPkgs.buildPackages.template-haskell or (pkgs.buildPackages.template-haskell or (buildToolDepError "template-haskell")))
|
||||
(hsPkgs.buildPackages.transformers or (pkgs.buildPackages.transformers or (buildToolDepError "transformers")))
|
||||
];
|
||||
detailLevel = "FullDetails";
|
||||
licenseFiles = [ "LICENSE" ];
|
||||
dataDir = "data";
|
||||
dataFiles = [ "*.tar" "bin/*.sh" "bin/*.exe.options" ];
|
||||
extraSrcFiles = [
|
||||
"utils/*.hs"
|
||||
"utils/*.sh"
|
||||
"include/prim/*.hs-incl"
|
||||
"include/prim/*.txt"
|
||||
"include/*.h"
|
||||
"src-bin/haddock/*.hs"
|
||||
"HACKING.markdown"
|
||||
"README.markdown"
|
||||
"test/LICENSE"
|
||||
"test/ghcjs-testsuite.cabal"
|
||||
"stack.yaml"
|
||||
];
|
||||
extraTmpFiles = [];
|
||||
extraDocFiles = [];
|
||||
};
|
||||
components = {
|
||||
"library" = {
|
||||
depends = [
|
||||
(hsPkgs."base" or (buildDepError "base"))
|
||||
(hsPkgs."Cabal" or (buildDepError "Cabal"))
|
||||
(hsPkgs."ghc-api-ghcjs" or (buildDepError "ghc-api-ghcjs"))
|
||||
(hsPkgs."ghcjs-th" or (buildDepError "ghcjs-th"))
|
||||
(hsPkgs."ghc-boot" or (buildDepError "ghc-boot"))
|
||||
(hsPkgs."directory" or (buildDepError "directory"))
|
||||
(hsPkgs."filepath" or (buildDepError "filepath"))
|
||||
(hsPkgs."containers" or (buildDepError "containers"))
|
||||
(hsPkgs."process" or (buildDepError "process"))
|
||||
(hsPkgs."mtl" or (buildDepError "mtl"))
|
||||
(hsPkgs."ghc-paths" or (buildDepError "ghc-paths"))
|
||||
(hsPkgs."template-haskell" or (buildDepError "template-haskell"))
|
||||
(hsPkgs."syb" or (buildDepError "syb"))
|
||||
(hsPkgs."bytestring" or (buildDepError "bytestring"))
|
||||
(hsPkgs."attoparsec" or (buildDepError "attoparsec"))
|
||||
(hsPkgs."aeson" or (buildDepError "aeson"))
|
||||
(hsPkgs."text" or (buildDepError "text"))
|
||||
(hsPkgs."wl-pprint-text" or (buildDepError "wl-pprint-text"))
|
||||
(hsPkgs."lens" or (buildDepError "lens"))
|
||||
(hsPkgs."yaml" or (buildDepError "yaml"))
|
||||
(hsPkgs."time" or (buildDepError "time"))
|
||||
(hsPkgs."transformers" or (buildDepError "transformers"))
|
||||
(hsPkgs."split" or (buildDepError "split"))
|
||||
(hsPkgs."deepseq" or (buildDepError "deepseq"))
|
||||
(hsPkgs."vector" or (buildDepError "vector"))
|
||||
(hsPkgs."data-default" or (buildDepError "data-default"))
|
||||
(hsPkgs."array" or (buildDepError "array"))
|
||||
(hsPkgs."binary" or (buildDepError "binary"))
|
||||
(hsPkgs."unordered-containers" or (buildDepError "unordered-containers"))
|
||||
(hsPkgs."parallel" or (buildDepError "parallel"))
|
||||
(hsPkgs."cryptohash" or (buildDepError "cryptohash"))
|
||||
(hsPkgs."hashable" or (buildDepError "hashable"))
|
||||
(hsPkgs."optparse-applicative" or (buildDepError "optparse-applicative"))
|
||||
(hsPkgs."stringsearch" or (buildDepError "stringsearch"))
|
||||
(hsPkgs."base16-bytestring" or (buildDepError "base16-bytestring"))
|
||||
(hsPkgs."base64-bytestring" or (buildDepError "base64-bytestring"))
|
||||
(hsPkgs."regex-posix" or (buildDepError "regex-posix"))
|
||||
(hsPkgs."safe" or (buildDepError "safe"))
|
||||
(hsPkgs."parsec" or (buildDepError "parsec"))
|
||||
(hsPkgs."haskell-src-exts" or (buildDepError "haskell-src-exts"))
|
||||
(hsPkgs."haskell-src-meta" or (buildDepError "haskell-src-meta"))
|
||||
] ++ (if flags.use-host-template-haskell
|
||||
then [ (hsPkgs."ghci" or (buildDepError "ghci")) ]
|
||||
else [
|
||||
(hsPkgs."template-haskell-ghcjs" or (buildDepError "template-haskell-ghcjs"))
|
||||
(hsPkgs."ghci-ghcjs" or (buildDepError "ghci-ghcjs"))
|
||||
]);
|
||||
buildable = true;
|
||||
modules = [
|
||||
"Paths_ghcjs"
|
||||
"Gen2/Generator"
|
||||
"Gen2/Profiling"
|
||||
"Gen2/Floater"
|
||||
"Gen2/Prim"
|
||||
"Gen2/Rts"
|
||||
"Gen2/RtsApply"
|
||||
"Gen2/RtsTypes"
|
||||
"Gen2/RtsAlloc"
|
||||
"Gen2/Utils"
|
||||
"Gen2/StgAst"
|
||||
"Gen2/Optimizer"
|
||||
"Gen2/Dataflow"
|
||||
"Gen2/Deps"
|
||||
"Gen2/Printer"
|
||||
"Gen2/Linker"
|
||||
"Gen2/Shim"
|
||||
"Gen2/Compactor"
|
||||
"Gen2/Object"
|
||||
"Gen2/Archive"
|
||||
"Gen2/ClosureInfo"
|
||||
"Gen2/Foreign"
|
||||
"Gen2/Sinker"
|
||||
"Gen2/TH"
|
||||
"Gen2/Base"
|
||||
"Gen2/Cache"
|
||||
"Gen2/DynamicLinking"
|
||||
"Gen2/GHC/Digraph"
|
||||
"Gen2/GHC/DsForeign"
|
||||
"Compiler/Compat"
|
||||
"Compiler/GhcjsHooks"
|
||||
"Compiler/GhcjsPlatform"
|
||||
"Compiler/Info"
|
||||
"Compiler/Plugins"
|
||||
"Compiler/Program"
|
||||
"Compiler/GhcjsProgram"
|
||||
"Compiler/Settings"
|
||||
"Compiler/Utils"
|
||||
"Compiler/Variants"
|
||||
"Compiler/JMacro"
|
||||
"Compiler/JMacro/Base"
|
||||
"Compiler/JMacro/Lens"
|
||||
"Compiler/JMacro/QQ"
|
||||
"Compiler/JMacro/ParseTH"
|
||||
"Compiler/JMacro/Util"
|
||||
"GHCJS"
|
||||
];
|
||||
hsSourceDirs = [ "src" ];
|
||||
includeDirs = [ "include" ];
|
||||
};
|
||||
exes = {
|
||||
"ghcjs" = {
|
||||
depends = [
|
||||
(hsPkgs."base" or (buildDepError "base"))
|
||||
(hsPkgs."ghcjs" or (buildDepError "ghcjs"))
|
||||
];
|
||||
buildable = true;
|
||||
hsSourceDirs = [ "src-bin" ];
|
||||
mainPath = [ "Main.hs" ];
|
||||
};
|
||||
"haddock-ghcjs" = {
|
||||
depends = [
|
||||
(hsPkgs."ghc-api-ghcjs" or (buildDepError "ghc-api-ghcjs"))
|
||||
(hsPkgs."haddock-api-ghcjs" or (buildDepError "haddock-api-ghcjs"))
|
||||
(hsPkgs."base" or (buildDepError "base"))
|
||||
(hsPkgs."process" or (buildDepError "process"))
|
||||
(hsPkgs."transformers" or (buildDepError "transformers"))
|
||||
(hsPkgs."transformers-compat" or (buildDepError "transformers-compat"))
|
||||
(hsPkgs."containers" or (buildDepError "containers"))
|
||||
(hsPkgs."directory" or (buildDepError "directory"))
|
||||
(hsPkgs."filepath" or (buildDepError "filepath"))
|
||||
(hsPkgs."ghcjs" or (buildDepError "ghcjs"))
|
||||
];
|
||||
buildable = true;
|
||||
modules = [ "ResponseFile" ];
|
||||
hsSourceDirs = [ "src-bin" "src-bin/haddock" ];
|
||||
mainPath = [
|
||||
"Haddock.hs"
|
||||
] ++ (pkgs.lib).optional (system.isWindows) "";
|
||||
};
|
||||
"hsc2hs-ghcjs" = {
|
||||
depends = [
|
||||
(hsPkgs."base" or (buildDepError "base"))
|
||||
(hsPkgs."ghcjs" or (buildDepError "ghcjs"))
|
||||
(hsPkgs."process" or (buildDepError "process"))
|
||||
];
|
||||
buildable = true;
|
||||
hsSourceDirs = [ "src-bin" ];
|
||||
mainPath = [
|
||||
"Hsc2Hs.hs"
|
||||
] ++ (pkgs.lib).optional (system.isWindows) "";
|
||||
};
|
||||
"ghcjs-pkg" = {
|
||||
depends = [
|
||||
(hsPkgs."ghcjs" or (buildDepError "ghcjs"))
|
||||
(hsPkgs."base" or (buildDepError "base"))
|
||||
(hsPkgs."directory" or (buildDepError "directory"))
|
||||
(hsPkgs."process" or (buildDepError "process"))
|
||||
(hsPkgs."filepath" or (buildDepError "filepath"))
|
||||
(hsPkgs."containers" or (buildDepError "containers"))
|
||||
(hsPkgs."Cabal" or (buildDepError "Cabal"))
|
||||
(hsPkgs."binary" or (buildDepError "binary"))
|
||||
(hsPkgs."bytestring" or (buildDepError "bytestring"))
|
||||
(hsPkgs."ghc-boot" or (buildDepError "ghc-boot"))
|
||||
] ++ (pkgs.lib).optionals (!system.isWindows) [
|
||||
(hsPkgs."unix" or (buildDepError "unix"))
|
||||
(hsPkgs."terminfo" or (buildDepError "terminfo"))
|
||||
];
|
||||
buildable = if flags.compiler-only then false else true;
|
||||
cSources = (pkgs.lib).optional (system.isWindows) "cbits/CRT_noglob.c";
|
||||
hsSourceDirs = [ "src-bin" ];
|
||||
mainPath = (([
|
||||
"Pkg.hs"
|
||||
] ++ (pkgs.lib).optional (flags.compiler-only) "") ++ (pkgs.lib).optional (!system.isWindows) "") ++ (pkgs.lib).optional (system.isWindows) "";
|
||||
};
|
||||
"ghcjs-boot" = {
|
||||
depends = [
|
||||
(hsPkgs."base" or (buildDepError "base"))
|
||||
(hsPkgs."ghcjs" or (buildDepError "ghcjs"))
|
||||
(hsPkgs."directory" or (buildDepError "directory"))
|
||||
(hsPkgs."Cabal" or (buildDepError "Cabal"))
|
||||
(hsPkgs."mtl" or (buildDepError "mtl"))
|
||||
(hsPkgs."transformers" or (buildDepError "transformers"))
|
||||
(hsPkgs."lens" or (buildDepError "lens"))
|
||||
(hsPkgs."unordered-containers" or (buildDepError "unordered-containers"))
|
||||
(hsPkgs."vector" or (buildDepError "vector"))
|
||||
(hsPkgs."filepath" or (buildDepError "filepath"))
|
||||
(hsPkgs."aeson" or (buildDepError "aeson"))
|
||||
(hsPkgs."text" or (buildDepError "text"))
|
||||
(hsPkgs."bytestring" or (buildDepError "bytestring"))
|
||||
(hsPkgs."system-filepath" or (buildDepError "system-filepath"))
|
||||
(hsPkgs."shelly" or (buildDepError "shelly"))
|
||||
(hsPkgs."system-fileio" or (buildDepError "system-fileio"))
|
||||
(hsPkgs."optparse-applicative" or (buildDepError "optparse-applicative"))
|
||||
(hsPkgs."tar" or (buildDepError "tar"))
|
||||
(hsPkgs."yaml" or (buildDepError "yaml"))
|
||||
(hsPkgs."process" or (buildDepError "process"))
|
||||
(hsPkgs."time" or (buildDepError "time"))
|
||||
(hsPkgs."unix-compat" or (buildDepError "unix-compat"))
|
||||
(hsPkgs."executable-path" or (buildDepError "executable-path"))
|
||||
];
|
||||
buildable = if flags.compiler-only then false else true;
|
||||
hsSourceDirs = [ "src-bin" ];
|
||||
mainPath = ([
|
||||
"Boot.hs"
|
||||
] ++ (pkgs.lib).optional (flags.compiler-only) "") ++ (pkgs.lib).optional (system.isWindows) "";
|
||||
};
|
||||
"ghcjs-run" = {
|
||||
depends = [
|
||||
(hsPkgs."base" or (buildDepError "base"))
|
||||
(hsPkgs."directory" or (buildDepError "directory"))
|
||||
(hsPkgs."process" or (buildDepError "process"))
|
||||
(hsPkgs."filepath" or (buildDepError "filepath"))
|
||||
];
|
||||
buildable = if flags.compiler-only then false else true;
|
||||
hsSourceDirs = [ "src-bin" ];
|
||||
mainPath = ([
|
||||
"Run.hs"
|
||||
] ++ (pkgs.lib).optional (flags.compiler-only) "") ++ (pkgs.lib).optional (system.isWindows) "";
|
||||
};
|
||||
"ghcjs-dumparchive" = {
|
||||
depends = [
|
||||
(hsPkgs."base" or (buildDepError "base"))
|
||||
(hsPkgs."text" or (buildDepError "text"))
|
||||
(hsPkgs."ghc-api-ghcjs" or (buildDepError "ghc-api-ghcjs"))
|
||||
(hsPkgs."ghcjs" or (buildDepError "ghcjs"))
|
||||
(hsPkgs."bytestring" or (buildDepError "bytestring"))
|
||||
(hsPkgs."filepath" or (buildDepError "filepath"))
|
||||
];
|
||||
buildable = if flags.compiler-only then false else true;
|
||||
hsSourceDirs = [ "utils" ];
|
||||
mainPath = ([
|
||||
"dumpArchive.hs"
|
||||
] ++ (pkgs.lib).optional (flags.compiler-only) "") ++ (pkgs.lib).optional (system.isWindows) "";
|
||||
};
|
||||
};
|
||||
tests = {
|
||||
"test" = {
|
||||
depends = [
|
||||
(hsPkgs."base" or (buildDepError "base"))
|
||||
(hsPkgs."process" or (buildDepError "process"))
|
||||
(hsPkgs."network" or (buildDepError "network"))
|
||||
(hsPkgs."aeson" or (buildDepError "aeson"))
|
||||
(hsPkgs."test-framework" or (buildDepError "test-framework"))
|
||||
(hsPkgs."test-framework-hunit" or (buildDepError "test-framework-hunit"))
|
||||
(hsPkgs."HUnit" or (buildDepError "HUnit"))
|
||||
(hsPkgs."system-filepath" or (buildDepError "system-filepath"))
|
||||
(hsPkgs."system-fileio" or (buildDepError "system-fileio"))
|
||||
(hsPkgs."text" or (buildDepError "text"))
|
||||
(hsPkgs."transformers" or (buildDepError "transformers"))
|
||||
(hsPkgs."lens" or (buildDepError "lens"))
|
||||
(hsPkgs."random" or (buildDepError "random"))
|
||||
(hsPkgs."time" or (buildDepError "time"))
|
||||
(hsPkgs."bytestring" or (buildDepError "bytestring"))
|
||||
(hsPkgs."deepseq" or (buildDepError "deepseq"))
|
||||
(hsPkgs."unordered-containers" or (buildDepError "unordered-containers"))
|
||||
(hsPkgs."shelly" or (buildDepError "shelly"))
|
||||
(hsPkgs."data-default" or (buildDepError "data-default"))
|
||||
(hsPkgs."yaml" or (buildDepError "yaml"))
|
||||
(hsPkgs."optparse-applicative" or (buildDepError "optparse-applicative"))
|
||||
(hsPkgs."directory" or (buildDepError "directory"))
|
||||
(hsPkgs."http-types" or (buildDepError "http-types"))
|
||||
(hsPkgs."warp" or (buildDepError "warp"))
|
||||
(hsPkgs."wai" or (buildDepError "wai"))
|
||||
(hsPkgs."wai-extra" or (buildDepError "wai-extra"))
|
||||
(hsPkgs."wai-app-static" or (buildDepError "wai-app-static"))
|
||||
(hsPkgs."wai-websockets" or (buildDepError "wai-websockets"))
|
||||
(hsPkgs."websockets" or (buildDepError "websockets"))
|
||||
(hsPkgs."webdriver" or (buildDepError "webdriver"))
|
||||
(hsPkgs."lifted-base" or (buildDepError "lifted-base"))
|
||||
];
|
||||
buildable = true;
|
||||
modules = [ "Server" "Client" "Types" ];
|
||||
hsSourceDirs = [ "test" ];
|
||||
mainPath = [ "TestRunner.hs" ];
|
||||
};
|
||||
};
|
||||
};
|
||||
} // rec { src = (pkgs.lib).mkDefault ../.; }
|
215
materialized/ghcjs/.plan.nix/haddock-api-ghcjs.nix
Normal file
215
materialized/ghcjs/.plan.nix/haddock-api-ghcjs.nix
Normal file
@ -0,0 +1,215 @@
|
||||
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.0";
|
||||
identifier = { name = "haddock-api-ghcjs"; version = "2.20.0"; };
|
||||
license = "BSD-3-Clause";
|
||||
copyright = "(c) Simon Marlow, David Waern";
|
||||
maintainer = "Alex Biehl <alexbiehl@gmail.com>, Simon Hengel <sol@typeful.net>, Mateusz Kowalczyk <fuuzetsu@fuuzetsu.co.uk>";
|
||||
author = "Simon Marlow, David Waern";
|
||||
homepage = "http://www.haskell.org/haddock/";
|
||||
url = "";
|
||||
synopsis = "A documentation-generation tool for Haskell libraries";
|
||||
description = "Haddock is a documentation-generation tool for Haskell\nlibraries";
|
||||
buildType = "Simple";
|
||||
isLocal = true;
|
||||
detailLevel = "FullDetails";
|
||||
licenseFiles = [ "LICENSE" ];
|
||||
dataDir = "resources";
|
||||
dataFiles = [
|
||||
"html/quick-jump.min.js"
|
||||
"html/haddock-bundle.min.js"
|
||||
"html/quick-jump.css"
|
||||
"html/solarized.css"
|
||||
"html/highlight.js"
|
||||
"html/Classic.theme/haskell_icon.gif"
|
||||
"html/Classic.theme/minus.gif"
|
||||
"html/Classic.theme/plus.gif"
|
||||
"html/Classic.theme/xhaddock.css"
|
||||
"html/Ocean.std-theme/hslogo-16.png"
|
||||
"html/Ocean.std-theme/minus.gif"
|
||||
"html/Ocean.std-theme/ocean.css"
|
||||
"html/Ocean.std-theme/plus.gif"
|
||||
"html/Ocean.std-theme/synopsis.png"
|
||||
"latex/haddock.sty"
|
||||
];
|
||||
extraSrcFiles = [ "CHANGES.md" ];
|
||||
extraTmpFiles = [];
|
||||
extraDocFiles = [];
|
||||
};
|
||||
components = {
|
||||
"library" = {
|
||||
depends = [
|
||||
(hsPkgs."base" or (buildDepError "base"))
|
||||
(hsPkgs."Cabal" or (buildDepError "Cabal"))
|
||||
(hsPkgs."ghc-api-ghcjs" or (buildDepError "ghc-api-ghcjs"))
|
||||
(hsPkgs."ghc-paths" or (buildDepError "ghc-paths"))
|
||||
(hsPkgs."haddock-library-ghcjs" or (buildDepError "haddock-library-ghcjs"))
|
||||
(hsPkgs."xhtml" or (buildDepError "xhtml"))
|
||||
(hsPkgs."array" or (buildDepError "array"))
|
||||
(hsPkgs."bytestring" or (buildDepError "bytestring"))
|
||||
(hsPkgs."containers" or (buildDepError "containers"))
|
||||
(hsPkgs."deepseq" or (buildDepError "deepseq"))
|
||||
(hsPkgs."directory" or (buildDepError "directory"))
|
||||
(hsPkgs."filepath" or (buildDepError "filepath"))
|
||||
(hsPkgs."ghc-boot" or (buildDepError "ghc-boot"))
|
||||
(hsPkgs."transformers" or (buildDepError "transformers"))
|
||||
];
|
||||
buildable = true;
|
||||
modules = [
|
||||
"Haddock"
|
||||
"Haddock/Interface"
|
||||
"Haddock/Interface/Rename"
|
||||
"Haddock/Interface/Create"
|
||||
"Haddock/Interface/AttachInstances"
|
||||
"Haddock/Interface/Json"
|
||||
"Haddock/Interface/LexParseRn"
|
||||
"Haddock/Interface/ParseModuleHeader"
|
||||
"Haddock/Interface/Specialize"
|
||||
"Haddock/Parser"
|
||||
"Haddock/Utils"
|
||||
"Haddock/Utils/Json"
|
||||
"Haddock/Backends/Xhtml"
|
||||
"Haddock/Backends/Xhtml/Decl"
|
||||
"Haddock/Backends/Xhtml/DocMarkup"
|
||||
"Haddock/Backends/Xhtml/Layout"
|
||||
"Haddock/Backends/Xhtml/Meta"
|
||||
"Haddock/Backends/Xhtml/Names"
|
||||
"Haddock/Backends/Xhtml/Themes"
|
||||
"Haddock/Backends/Xhtml/Types"
|
||||
"Haddock/Backends/Xhtml/Utils"
|
||||
"Haddock/Backends/LaTeX"
|
||||
"Haddock/Backends/HaddockDB"
|
||||
"Haddock/Backends/Hoogle"
|
||||
"Haddock/Backends/Hyperlinker"
|
||||
"Haddock/Backends/Hyperlinker/Ast"
|
||||
"Haddock/Backends/Hyperlinker/Parser"
|
||||
"Haddock/Backends/Hyperlinker/Renderer"
|
||||
"Haddock/Backends/Hyperlinker/Types"
|
||||
"Haddock/Backends/Hyperlinker/Utils"
|
||||
"Haddock/ModuleTree"
|
||||
"Haddock/Types"
|
||||
"Haddock/Doc"
|
||||
"Haddock/Version"
|
||||
"Haddock/InterfaceFile"
|
||||
"Haddock/Options"
|
||||
"Haddock/GhcUtils"
|
||||
"Haddock/Syb"
|
||||
"Haddock/Convert"
|
||||
"Paths_haddock_api_ghcjs"
|
||||
"Documentation/Haddock"
|
||||
];
|
||||
hsSourceDirs = [ "src" ];
|
||||
};
|
||||
tests = {
|
||||
"spec" = {
|
||||
depends = [
|
||||
(hsPkgs."Cabal" or (buildDepError "Cabal"))
|
||||
(hsPkgs."ghc-api-ghcjs" or (buildDepError "ghc-api-ghcjs"))
|
||||
(hsPkgs."ghc-paths" or (buildDepError "ghc-paths"))
|
||||
(hsPkgs."haddock-library-ghcjs" or (buildDepError "haddock-library-ghcjs"))
|
||||
(hsPkgs."xhtml" or (buildDepError "xhtml"))
|
||||
(hsPkgs."hspec" or (buildDepError "hspec"))
|
||||
(hsPkgs."QuickCheck" or (buildDepError "QuickCheck"))
|
||||
(hsPkgs."base" or (buildDepError "base"))
|
||||
(hsPkgs."array" or (buildDepError "array"))
|
||||
(hsPkgs."bytestring" or (buildDepError "bytestring"))
|
||||
(hsPkgs."containers" or (buildDepError "containers"))
|
||||
(hsPkgs."deepseq" or (buildDepError "deepseq"))
|
||||
(hsPkgs."directory" or (buildDepError "directory"))
|
||||
(hsPkgs."filepath" or (buildDepError "filepath"))
|
||||
(hsPkgs."ghc-boot" or (buildDepError "ghc-boot"))
|
||||
(hsPkgs."transformers" or (buildDepError "transformers"))
|
||||
];
|
||||
build-tools = [
|
||||
(hsPkgs.buildPackages.hspec-discover or (pkgs.buildPackages.hspec-discover or (buildToolDepError "hspec-discover")))
|
||||
];
|
||||
buildable = true;
|
||||
modules = [
|
||||
"Haddock"
|
||||
"Haddock/Backends/Hoogle"
|
||||
"Haddock/Backends/Hyperlinker"
|
||||
"Haddock/Backends/Hyperlinker/Ast"
|
||||
"Haddock/Backends/Hyperlinker/Renderer"
|
||||
"Haddock/Backends/Hyperlinker/Utils"
|
||||
"Haddock/Backends/LaTeX"
|
||||
"Haddock/Backends/Xhtml"
|
||||
"Haddock/Backends/Xhtml/Decl"
|
||||
"Haddock/Backends/Xhtml/DocMarkup"
|
||||
"Haddock/Backends/Xhtml/Layout"
|
||||
"Haddock/Backends/Xhtml/Meta"
|
||||
"Haddock/Backends/Xhtml/Names"
|
||||
"Haddock/Backends/Xhtml/Themes"
|
||||
"Haddock/Backends/Xhtml/Types"
|
||||
"Haddock/Backends/Xhtml/Utils"
|
||||
"Haddock/Convert"
|
||||
"Haddock/Doc"
|
||||
"Haddock/GhcUtils"
|
||||
"Haddock/Interface"
|
||||
"Haddock/Interface/AttachInstances"
|
||||
"Haddock/Interface/Create"
|
||||
"Haddock/Interface/Json"
|
||||
"Haddock/Interface/LexParseRn"
|
||||
"Haddock/Interface/ParseModuleHeader"
|
||||
"Haddock/Interface/Rename"
|
||||
"Haddock/Interface/Specialize"
|
||||
"Haddock/InterfaceFile"
|
||||
"Haddock/ModuleTree"
|
||||
"Haddock/Options"
|
||||
"Haddock/Parser"
|
||||
"Haddock/Syb"
|
||||
"Haddock/Types"
|
||||
"Haddock/Utils"
|
||||
"Haddock/Utils/Json"
|
||||
"Haddock/Version"
|
||||
"Paths_haddock_api_ghcjs"
|
||||
"Haddock/Backends/Hyperlinker/ParserSpec"
|
||||
"Haddock/Backends/Hyperlinker/Parser"
|
||||
"Haddock/Backends/Hyperlinker/Types"
|
||||
];
|
||||
hsSourceDirs = [ "test" "src" ];
|
||||
mainPath = [ "Spec.hs" ];
|
||||
};
|
||||
};
|
||||
};
|
||||
} // rec { src = (pkgs.lib).mkDefault ../lib/haddock-api-ghcjs; }
|
134
materialized/ghcjs/.plan.nix/haddock-library-ghcjs.nix
Normal file
134
materialized/ghcjs/.plan.nix/haddock-library-ghcjs.nix
Normal file
@ -0,0 +1,134 @@
|
||||
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.0";
|
||||
identifier = { name = "haddock-library-ghcjs"; version = "1.6.0"; };
|
||||
license = "BSD-3-Clause";
|
||||
copyright = "";
|
||||
maintainer = "Alex Biehl <alexbiehl@gmail.com>, Simon Hengel <sol@typeful.net>, Mateusz Kowalczyk <fuuzetsu@fuuzetsu.co.uk>";
|
||||
author = "";
|
||||
homepage = "http://www.haskell.org/haddock/";
|
||||
url = "";
|
||||
synopsis = "Library exposing some functionality of Haddock.";
|
||||
description = "Haddock is a documentation-generation tool for Haskell\nlibraries. These modules expose some functionality of it\nwithout pulling in the GHC dependency. Please note that the\nAPI is likely to change so specify upper bounds in your\nproject if you can't release often. For interacting with Haddock\nitself, see the ‘haddock’ package.";
|
||||
buildType = "Simple";
|
||||
isLocal = true;
|
||||
detailLevel = "FullDetails";
|
||||
licenseFiles = [ "LICENSE" ];
|
||||
dataDir = "";
|
||||
dataFiles = [];
|
||||
extraSrcFiles = [ "CHANGES.md" ];
|
||||
extraTmpFiles = [];
|
||||
extraDocFiles = [];
|
||||
};
|
||||
components = {
|
||||
"library" = {
|
||||
depends = [
|
||||
(hsPkgs."base" or (buildDepError "base"))
|
||||
(hsPkgs."bytestring" or (buildDepError "bytestring"))
|
||||
(hsPkgs."containers" or (buildDepError "containers"))
|
||||
(hsPkgs."transformers" or (buildDepError "transformers"))
|
||||
(hsPkgs."text" or (buildDepError "text"))
|
||||
(hsPkgs."parsec" or (buildDepError "parsec"))
|
||||
];
|
||||
buildable = true;
|
||||
modules = [
|
||||
"Documentation/Haddock/Parser/Util"
|
||||
"Documentation/Haddock/Doc"
|
||||
"Documentation/Haddock/Markup"
|
||||
"Documentation/Haddock/Parser"
|
||||
"Documentation/Haddock/Parser/Monad"
|
||||
"Documentation/Haddock/Types"
|
||||
"Documentation/Haddock/Utf8"
|
||||
];
|
||||
hsSourceDirs = [ "src" ];
|
||||
};
|
||||
tests = {
|
||||
"spec" = {
|
||||
depends = [
|
||||
(hsPkgs."base" or (buildDepError "base"))
|
||||
(hsPkgs."base-compat" or (buildDepError "base-compat"))
|
||||
(hsPkgs."bytestring" or (buildDepError "bytestring"))
|
||||
(hsPkgs."containers" or (buildDepError "containers"))
|
||||
(hsPkgs."transformers" or (buildDepError "transformers"))
|
||||
(hsPkgs."hspec" or (buildDepError "hspec"))
|
||||
(hsPkgs."QuickCheck" or (buildDepError "QuickCheck"))
|
||||
(hsPkgs."text" or (buildDepError "text"))
|
||||
(hsPkgs."parsec" or (buildDepError "parsec"))
|
||||
(hsPkgs."deepseq" or (buildDepError "deepseq"))
|
||||
];
|
||||
build-tools = [
|
||||
(hsPkgs.buildPackages.hspec-discover or (pkgs.buildPackages.hspec-discover or (buildToolDepError "hspec-discover")))
|
||||
];
|
||||
buildable = true;
|
||||
modules = [
|
||||
"Documentation/Haddock/Doc"
|
||||
"Documentation/Haddock/Parser"
|
||||
"Documentation/Haddock/Parser/Monad"
|
||||
"Documentation/Haddock/Parser/Util"
|
||||
"Documentation/Haddock/Parser/UtilSpec"
|
||||
"Documentation/Haddock/ParserSpec"
|
||||
"Documentation/Haddock/Types"
|
||||
"Documentation/Haddock/Utf8"
|
||||
"Documentation/Haddock/Utf8Spec"
|
||||
];
|
||||
hsSourceDirs = [ "test" "src" ];
|
||||
mainPath = [ "Spec.hs" ];
|
||||
};
|
||||
"fixtures" = {
|
||||
depends = [
|
||||
(hsPkgs."base" or (buildDepError "base"))
|
||||
(hsPkgs."base-compat" or (buildDepError "base-compat"))
|
||||
(hsPkgs."directory" or (buildDepError "directory"))
|
||||
(hsPkgs."filepath" or (buildDepError "filepath"))
|
||||
(hsPkgs."optparse-applicative" or (buildDepError "optparse-applicative"))
|
||||
(hsPkgs."tree-diff" or (buildDepError "tree-diff"))
|
||||
(hsPkgs."haddock-library" or (buildDepError "haddock-library"))
|
||||
];
|
||||
buildable = true;
|
||||
hsSourceDirs = [ "fixtures" ];
|
||||
mainPath = [ "Fixtures.hs" ];
|
||||
};
|
||||
};
|
||||
};
|
||||
} // rec { src = (pkgs.lib).mkDefault ../lib/haddock-library-ghcjs; }
|
85
materialized/ghcjs/.plan.nix/template-haskell-ghcjs.nix
Normal file
85
materialized/ghcjs/.plan.nix/template-haskell-ghcjs.nix
Normal 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 = "template-haskell-ghcjs"; version = "2.14.0.0"; };
|
||||
license = "BSD-3-Clause";
|
||||
copyright = "";
|
||||
maintainer = "libraries@haskell.org";
|
||||
author = "";
|
||||
homepage = "";
|
||||
url = "";
|
||||
synopsis = "Support library for Template Haskell (customized for GHCJS)";
|
||||
description = "This package provides modules containing facilities for manipulating\nHaskell source code using Template Haskell.\n\nSee <http://www.haskell.org/haskellwiki/Template_Haskell> for more\ninformation.";
|
||||
buildType = "Simple";
|
||||
isLocal = true;
|
||||
detailLevel = "FullDetails";
|
||||
licenseFiles = [ "LICENSE" ];
|
||||
dataDir = "";
|
||||
dataFiles = [];
|
||||
extraSrcFiles = [ "changelog.md" ];
|
||||
extraTmpFiles = [];
|
||||
extraDocFiles = [];
|
||||
};
|
||||
components = {
|
||||
"library" = {
|
||||
depends = [
|
||||
(hsPkgs."base" or (buildDepError "base"))
|
||||
(hsPkgs."ghc-boot-th" or (buildDepError "ghc-boot-th"))
|
||||
(hsPkgs."pretty" or (buildDepError "pretty"))
|
||||
];
|
||||
buildable = true;
|
||||
modules = [
|
||||
"Language/Haskell/TH/Lib/Map"
|
||||
"Language/Haskell/TH"
|
||||
"Language/Haskell/TH/Lib"
|
||||
"Language/Haskell/TH/Ppr"
|
||||
"Language/Haskell/TH/PprLib"
|
||||
"Language/Haskell/TH/Quote"
|
||||
"Language/Haskell/TH/Syntax"
|
||||
"Language/Haskell/TH/LanguageExtensions"
|
||||
"Language/Haskell/TH/Lib/Internal"
|
||||
];
|
||||
};
|
||||
};
|
||||
} // rec { src = (pkgs.lib).mkDefault ../lib/template-haskell-ghcjs; }
|
413
materialized/ghcjs/default.nix
Normal file
413
materialized/ghcjs/default.nix
Normal file
@ -0,0 +1,413 @@
|
||||
{
|
||||
pkgs = hackage:
|
||||
{
|
||||
packages = {
|
||||
"warp".revision = (((hackage."warp")."3.2.28").revisions).default;
|
||||
"warp".flags.allow-sendfilefd = true;
|
||||
"warp".flags.network-bytestring = false;
|
||||
"warp".flags.warp-debug = false;
|
||||
"test-framework-hunit".revision = (((hackage."test-framework-hunit")."0.3.0.2").revisions).default;
|
||||
"test-framework-hunit".flags.base4 = true;
|
||||
"test-framework-hunit".flags.base3 = false;
|
||||
"http-client".revision = (((hackage."http-client")."0.6.4").revisions).default;
|
||||
"http-client".flags.network-uri = true;
|
||||
"haddock-library".revision = (((hackage."haddock-library")."1.8.0").revisions).default;
|
||||
"wai-websockets".revision = (((hackage."wai-websockets")."3.0.1.2").revisions).default;
|
||||
"wai-websockets".flags.example = true;
|
||||
"cookie".revision = (((hackage."cookie")."0.4.5").revisions).default;
|
||||
"void".revision = (((hackage."void")."0.7.3").revisions).default;
|
||||
"void".flags.safe = false;
|
||||
"semigroupoids".revision = (((hackage."semigroupoids")."5.3.4").revisions).default;
|
||||
"semigroupoids".flags.comonad = true;
|
||||
"semigroupoids".flags.doctests = true;
|
||||
"semigroupoids".flags.unordered-containers = true;
|
||||
"semigroupoids".flags.distributive = true;
|
||||
"semigroupoids".flags.tagged = true;
|
||||
"semigroupoids".flags.containers = true;
|
||||
"semigroupoids".flags.contravariant = true;
|
||||
"byteorder".revision = (((hackage."byteorder")."1.0.4").revisions).default;
|
||||
"free".revision = (((hackage."free")."5.1.3").revisions).default;
|
||||
"tf-random".revision = (((hackage."tf-random")."0.5").revisions).default;
|
||||
"zip-archive".revision = (((hackage."zip-archive")."0.4.1").revisions).default;
|
||||
"zip-archive".flags.executable = false;
|
||||
"exceptions".revision = (((hackage."exceptions")."0.10.3").revisions).default;
|
||||
"ghc-paths".revision = (((hackage."ghc-paths")."0.1.0.12").revisions).default;
|
||||
"binary".revision = (((hackage."binary")."0.8.6.0").revisions).default;
|
||||
"ghc-boot".revision = (((hackage."ghc-boot")."8.6.5").revisions).default;
|
||||
"wl-pprint-text".revision = (((hackage."wl-pprint-text")."1.2.0.0").revisions).default;
|
||||
"tar".revision = (((hackage."tar")."0.5.1.1").revisions).default;
|
||||
"tar".flags.old-time = false;
|
||||
"tar".flags.old-bytestring = false;
|
||||
"ghc-prim".revision = (((hackage."ghc-prim")."0.5.3").revisions).default;
|
||||
"old-time".revision = (((hackage."old-time")."1.1.0.3").revisions).default;
|
||||
"bifunctors".revision = (((hackage."bifunctors")."5.5.6").revisions).default;
|
||||
"bifunctors".flags.semigroups = true;
|
||||
"bifunctors".flags.tagged = true;
|
||||
"split".revision = (((hackage."split")."0.2.3.3").revisions).default;
|
||||
"stm".revision = (((hackage."stm")."2.5.0.0").revisions).default;
|
||||
"unix-time".revision = (((hackage."unix-time")."0.4.7").revisions).default;
|
||||
"http2".revision = (((hackage."http2")."1.6.5").revisions).default;
|
||||
"http2".flags.devel = false;
|
||||
"appar".revision = (((hackage."appar")."0.1.8").revisions).default;
|
||||
"case-insensitive".revision = (((hackage."case-insensitive")."1.2.1.0").revisions).default;
|
||||
"network-byte-order".revision = (((hackage."network-byte-order")."0.1.2.0").revisions).default;
|
||||
"sop-core".revision = (((hackage."sop-core")."0.5.0.0").revisions).default;
|
||||
"extensible-exceptions".revision = (((hackage."extensible-exceptions")."0.1.1.4").revisions).default;
|
||||
"unix".revision = (((hackage."unix")."2.7.2.2").revisions).default;
|
||||
"SHA".revision = (((hackage."SHA")."1.6.4.4").revisions).default;
|
||||
"SHA".flags.exe = false;
|
||||
"ghc-heap".revision = (((hackage."ghc-heap")."8.6.5").revisions).default;
|
||||
"mtl".revision = (((hackage."mtl")."2.2.2").revisions).default;
|
||||
"lifted-async".revision = (((hackage."lifted-async")."0.10.0.4").revisions).default;
|
||||
"network-uri".revision = (((hackage."network-uri")."2.6.1.0").revisions).default;
|
||||
"regex-base".revision = (((hackage."regex-base")."0.94.0.0").revisions).default;
|
||||
"zlib".revision = (((hackage."zlib")."0.6.2.1").revisions).default;
|
||||
"zlib".flags.non-blocking-ffi = false;
|
||||
"zlib".flags.pkg-config = false;
|
||||
"rts".revision = (((hackage."rts")."1.0").revisions).default;
|
||||
"easy-file".revision = (((hackage."easy-file")."0.2.2").revisions).default;
|
||||
"th-expand-syns".revision = (((hackage."th-expand-syns")."0.4.5.0").revisions).default;
|
||||
"regex-posix".revision = (((hackage."regex-posix")."0.96.0.0").revisions).default;
|
||||
"regex-posix".flags._regex-posix-clib = false;
|
||||
"cryptonite".revision = (((hackage."cryptonite")."0.26").revisions).default;
|
||||
"cryptonite".flags.support_sse = false;
|
||||
"cryptonite".flags.integer-gmp = true;
|
||||
"cryptonite".flags.support_rdrand = true;
|
||||
"cryptonite".flags.support_aesni = true;
|
||||
"cryptonite".flags.support_deepseq = true;
|
||||
"cryptonite".flags.support_pclmuldq = false;
|
||||
"cryptonite".flags.check_alignment = false;
|
||||
"cryptonite".flags.old_toolchain_inliner = false;
|
||||
"alex".revision = (((hackage."alex")."3.2.5").revisions).default;
|
||||
"alex".flags.small_base = true;
|
||||
"clock".revision = (((hackage."clock")."0.8").revisions).default;
|
||||
"clock".flags.llvm = false;
|
||||
"system-fileio".revision = (((hackage."system-fileio")."0.3.16.4").revisions).default;
|
||||
"adjunctions".revision = (((hackage."adjunctions")."4.4").revisions).default;
|
||||
"invariant".revision = (((hackage."invariant")."0.5.3").revisions).default;
|
||||
"enclosed-exceptions".revision = (((hackage."enclosed-exceptions")."1.0.3").revisions).default;
|
||||
"th-orphans".revision = (((hackage."th-orphans")."0.13.9").revisions).default;
|
||||
"executable-path".revision = (((hackage."executable-path")."0.0.3.1").revisions).default;
|
||||
"syb".revision = (((hackage."syb")."0.7.1").revisions).default;
|
||||
"distributive".revision = (((hackage."distributive")."0.6.1").revisions).default;
|
||||
"distributive".flags.semigroups = true;
|
||||
"distributive".flags.tagged = true;
|
||||
"generics-sop".revision = (((hackage."generics-sop")."0.5.0.0").revisions).default;
|
||||
"system-filepath".revision = (((hackage."system-filepath")."0.4.14").revisions).default;
|
||||
"bytestring-builder".revision = (((hackage."bytestring-builder")."0.10.8.2.0").revisions).default;
|
||||
"bytestring-builder".flags.bytestring_has_builder = true;
|
||||
"QuickCheck".revision = (((hackage."QuickCheck")."2.13.2").revisions).default;
|
||||
"QuickCheck".flags.templatehaskell = true;
|
||||
"scientific".revision = (((hackage."scientific")."0.3.6.2").revisions).default;
|
||||
"scientific".flags.integer-simple = false;
|
||||
"scientific".flags.bytestring-builder = false;
|
||||
"time-manager".revision = (((hackage."time-manager")."0.0.0").revisions).default;
|
||||
"newtype-generics".revision = (((hackage."newtype-generics")."0.5.4").revisions).default;
|
||||
"hspec-discover".revision = (((hackage."hspec-discover")."2.7.1").revisions).default;
|
||||
"parallel".revision = (((hackage."parallel")."3.2.2.0").revisions).default;
|
||||
"deepseq".revision = (((hackage."deepseq")."1.4.4.0").revisions).default;
|
||||
"haskell-src-meta".revision = (((hackage."haskell-src-meta")."0.8.5").revisions).default;
|
||||
"random".revision = (((hackage."random")."1.1").revisions).default;
|
||||
"temporary".revision = (((hackage."temporary")."1.3").revisions).default;
|
||||
"uuid-types".revision = (((hackage."uuid-types")."1.0.3").revisions).default;
|
||||
"optparse-applicative".revision = (((hackage."optparse-applicative")."0.14.3.0").revisions).default;
|
||||
"network".revision = (((hackage."network")."3.1.1.1").revisions).default;
|
||||
"word8".revision = (((hackage."word8")."0.1.3").revisions).default;
|
||||
"splitmix".revision = (((hackage."splitmix")."0.0.3").revisions).default;
|
||||
"splitmix".flags.optimised-mixer = false;
|
||||
"splitmix".flags.random = true;
|
||||
"async".revision = (((hackage."async")."2.2.2").revisions).default;
|
||||
"async".flags.bench = false;
|
||||
"dlist".revision = (((hackage."dlist")."0.8.0.7").revisions).default;
|
||||
"websockets".revision = (((hackage."websockets")."0.12.6.1").revisions).default;
|
||||
"websockets".flags.example = false;
|
||||
"conduit".revision = (((hackage."conduit")."1.3.1.1").revisions).default;
|
||||
"constraints".revision = (((hackage."constraints")."0.11.2").revisions).default;
|
||||
"semigroups".revision = (((hackage."semigroups")."0.19.1").revisions).default;
|
||||
"semigroups".flags.bytestring = true;
|
||||
"semigroups".flags.unordered-containers = true;
|
||||
"semigroups".flags.text = true;
|
||||
"semigroups".flags.tagged = true;
|
||||
"semigroups".flags.containers = true;
|
||||
"semigroups".flags.binary = true;
|
||||
"semigroups".flags.hashable = true;
|
||||
"semigroups".flags.transformers = true;
|
||||
"semigroups".flags.deepseq = true;
|
||||
"semigroups".flags.bytestring-builder = false;
|
||||
"semigroups".flags.template-haskell = true;
|
||||
"data-default".revision = (((hackage."data-default")."0.7.1.1").revisions).default;
|
||||
"HUnit".revision = (((hackage."HUnit")."1.6.0.0").revisions).default;
|
||||
"lifted-base".revision = (((hackage."lifted-base")."0.2.3.12").revisions).default;
|
||||
"data-default-instances-old-locale".revision = (((hackage."data-default-instances-old-locale")."0.0.1").revisions).default;
|
||||
"tree-diff".revision = (((hackage."tree-diff")."0.0.2.1").revisions).default;
|
||||
"parsec".revision = (((hackage."parsec")."3.1.13.0").revisions).default;
|
||||
"th-reify-many".revision = (((hackage."th-reify-many")."0.1.9").revisions).default;
|
||||
"hsc2hs".revision = (((hackage."hsc2hs")."0.68.6").revisions).default;
|
||||
"hsc2hs".flags.in-ghc-tree = false;
|
||||
"directory".revision = (((hackage."directory")."1.3.3.0").revisions).default;
|
||||
"yaml".revision = (((hackage."yaml")."0.10.4.0").revisions).default;
|
||||
"yaml".flags.no-exe = true;
|
||||
"yaml".flags.no-examples = true;
|
||||
"yaml".flags.system-libyaml = false;
|
||||
"yaml".flags.no-unicode = false;
|
||||
"transformers-compat".revision = (((hackage."transformers-compat")."0.6.5").revisions).default;
|
||||
"transformers-compat".flags.five = false;
|
||||
"transformers-compat".flags.generic-deriving = true;
|
||||
"transformers-compat".flags.two = false;
|
||||
"transformers-compat".flags.five-three = true;
|
||||
"transformers-compat".flags.mtl = true;
|
||||
"transformers-compat".flags.four = false;
|
||||
"transformers-compat".flags.three = false;
|
||||
"template-haskell".revision = (((hackage."template-haskell")."2.14.0.0").revisions).default;
|
||||
"hspec-expectations".revision = (((hackage."hspec-expectations")."0.8.2").revisions).default;
|
||||
"mono-traversable".revision = (((hackage."mono-traversable")."1.0.13.0").revisions).default;
|
||||
"psqueues".revision = (((hackage."psqueues")."0.2.7.2").revisions).default;
|
||||
"vector".revision = (((hackage."vector")."0.12.0.3").revisions).default;
|
||||
"vector".flags.unsafechecks = false;
|
||||
"vector".flags.internalchecks = false;
|
||||
"vector".flags.wall = false;
|
||||
"vector".flags.boundschecks = true;
|
||||
"call-stack".revision = (((hackage."call-stack")."0.2.0").revisions).default;
|
||||
"primitive".revision = (((hackage."primitive")."0.7.0.0").revisions).default;
|
||||
"cryptohash".revision = (((hackage."cryptohash")."0.11.9").revisions).default;
|
||||
"profunctors".revision = (((hackage."profunctors")."5.5.1").revisions).default;
|
||||
"safe".revision = (((hackage."safe")."0.3.18").revisions).default;
|
||||
"blaze-builder".revision = (((hackage."blaze-builder")."0.4.1.0").revisions).default;
|
||||
"base-compat".revision = (((hackage."base-compat")."0.10.5").revisions).default;
|
||||
"time-compat".revision = (((hackage."time-compat")."1.9.2.2").revisions).default;
|
||||
"time-compat".flags.old-locale = false;
|
||||
"ansi-terminal".revision = (((hackage."ansi-terminal")."0.9.1").revisions).default;
|
||||
"ansi-terminal".flags.example = false;
|
||||
"tagged".revision = (((hackage."tagged")."0.8.6").revisions).default;
|
||||
"tagged".flags.transformers = true;
|
||||
"tagged".flags.deepseq = true;
|
||||
"parsers".revision = (((hackage."parsers")."0.12.10").revisions).default;
|
||||
"parsers".flags.parsec = true;
|
||||
"parsers".flags.binary = true;
|
||||
"parsers".flags.attoparsec = true;
|
||||
"haskell-src-exts".revision = (((hackage."haskell-src-exts")."1.20.3").revisions).default;
|
||||
"lens".revision = (((hackage."lens")."4.17.1").revisions).default;
|
||||
"lens".flags.j = false;
|
||||
"lens".flags.test-properties = true;
|
||||
"lens".flags.old-inline-pragmas = false;
|
||||
"lens".flags.test-templates = true;
|
||||
"lens".flags.trustworthy = true;
|
||||
"lens".flags.test-doctests = true;
|
||||
"lens".flags.benchmark-uniplate = false;
|
||||
"lens".flags.inlining = true;
|
||||
"lens".flags.dump-splices = false;
|
||||
"lens".flags.test-hunit = true;
|
||||
"lens".flags.safe = false;
|
||||
"unliftio-core".revision = (((hackage."unliftio-core")."0.1.2.0").revisions).default;
|
||||
"containers".revision = (((hackage."containers")."0.6.0.1").revisions).default;
|
||||
"integer-logarithms".revision = (((hackage."integer-logarithms")."1.0.3").revisions).default;
|
||||
"integer-logarithms".flags.check-bounds = false;
|
||||
"integer-logarithms".flags.integer-gmp = true;
|
||||
"reflection".revision = (((hackage."reflection")."2.1.5").revisions).default;
|
||||
"reflection".flags.slow = false;
|
||||
"reflection".flags.template-haskell = true;
|
||||
"streaming-commons".revision = (((hackage."streaming-commons")."0.2.1.1").revisions).default;
|
||||
"streaming-commons".flags.use-bytestring-builder = false;
|
||||
"shelly".revision = (((hackage."shelly")."1.8.1").revisions).default;
|
||||
"shelly".flags.build-examples = false;
|
||||
"shelly".flags.lifted = false;
|
||||
"bytestring".revision = (((hackage."bytestring")."0.10.8.2").revisions).default;
|
||||
"ansi-wl-pprint".revision = (((hackage."ansi-wl-pprint")."0.6.9").revisions).default;
|
||||
"ansi-wl-pprint".flags.example = false;
|
||||
"wai".revision = (((hackage."wai")."3.2.2.1").revisions).default;
|
||||
"basement".revision = (((hackage."basement")."0.0.11").revisions).default;
|
||||
"setenv".revision = (((hackage."setenv")."0.1.1.3").revisions).default;
|
||||
"test-framework".revision = (((hackage."test-framework")."0.8.2.0").revisions).default;
|
||||
"hostname".revision = (((hackage."hostname")."1.0").revisions).default;
|
||||
"old-locale".revision = (((hackage."old-locale")."1.0.0.7").revisions).default;
|
||||
"directory-tree".revision = (((hackage."directory-tree")."0.12.1").revisions).default;
|
||||
"StateVar".revision = (((hackage."StateVar")."1.2").revisions).default;
|
||||
"vault".revision = (((hackage."vault")."0.3.1.3").revisions).default;
|
||||
"vault".flags.useghc = true;
|
||||
"mime-types".revision = (((hackage."mime-types")."0.1.0.9").revisions).default;
|
||||
"charset".revision = (((hackage."charset")."0.3.7.1").revisions).default;
|
||||
"contravariant".revision = (((hackage."contravariant")."1.5.2").revisions).default;
|
||||
"contravariant".flags.semigroups = true;
|
||||
"contravariant".flags.tagged = true;
|
||||
"contravariant".flags.statevar = true;
|
||||
"data-default-instances-dlist".revision = (((hackage."data-default-instances-dlist")."0.0.1").revisions).default;
|
||||
"xhtml".revision = (((hackage."xhtml")."3000.2.2.1").revisions).default;
|
||||
"type-equality".revision = (((hackage."type-equality")."1").revisions).default;
|
||||
"blaze-markup".revision = (((hackage."blaze-markup")."0.8.2.3").revisions).default;
|
||||
"text".revision = (((hackage."text")."1.2.3.1").revisions).default;
|
||||
"Cabal".revision = (((hackage."Cabal")."2.4.0.1").revisions).default;
|
||||
"unordered-containers".revision = (((hackage."unordered-containers")."0.2.10.0").revisions).default;
|
||||
"unordered-containers".flags.debug = false;
|
||||
"base64-bytestring".revision = (((hackage."base64-bytestring")."1.0.0.2").revisions).default;
|
||||
"base".revision = (((hackage."base")."4.12.0.0").revisions).default;
|
||||
"comonad".revision = (((hackage."comonad")."5.0.6").revisions).default;
|
||||
"comonad".flags.distributive = true;
|
||||
"comonad".flags.test-doctests = true;
|
||||
"comonad".flags.containers = true;
|
||||
"hspec".revision = (((hackage."hspec")."2.7.1").revisions).default;
|
||||
"time".revision = (((hackage."time")."1.8.0.2").revisions).default;
|
||||
"data-default-class".revision = (((hackage."data-default-class")."0.1.2.0").revisions).default;
|
||||
"terminfo".revision = (((hackage."terminfo")."0.4.1.2").revisions).default;
|
||||
"base16-bytestring".revision = (((hackage."base16-bytestring")."0.1.1.6").revisions).default;
|
||||
"vector-algorithms".revision = (((hackage."vector-algorithms")."0.8.0.3").revisions).default;
|
||||
"vector-algorithms".flags.unsafechecks = false;
|
||||
"vector-algorithms".flags.internalchecks = false;
|
||||
"vector-algorithms".flags.llvm = false;
|
||||
"vector-algorithms".flags.boundschecks = true;
|
||||
"vector-algorithms".flags.bench = true;
|
||||
"vector-algorithms".flags.properties = true;
|
||||
"iproute".revision = (((hackage."iproute")."1.7.8").revisions).default;
|
||||
"transformers".revision = (((hackage."transformers")."0.5.6.2").revisions).default;
|
||||
"hashable".revision = (((hackage."hashable")."1.3.0.0").revisions).default;
|
||||
"hashable".flags.sse2 = true;
|
||||
"hashable".flags.integer-gmp = true;
|
||||
"hashable".flags.sse41 = false;
|
||||
"hashable".flags.examples = false;
|
||||
"quickcheck-io".revision = (((hackage."quickcheck-io")."0.2.0").revisions).default;
|
||||
"wai-extra".revision = (((hackage."wai-extra")."3.0.28").revisions).default;
|
||||
"wai-extra".flags.build-example = false;
|
||||
"data-default-instances-containers".revision = (((hackage."data-default-instances-containers")."0.0.1").revisions).default;
|
||||
"attoparsec".revision = (((hackage."attoparsec")."0.13.2.3").revisions).default;
|
||||
"attoparsec".flags.developer = false;
|
||||
"blaze-html".revision = (((hackage."blaze-html")."0.9.1.2").revisions).default;
|
||||
"digest".revision = (((hackage."digest")."0.0.1.2").revisions).default;
|
||||
"digest".flags.bytestring-in-base = false;
|
||||
"MemoTrie".revision = (((hackage."MemoTrie")."0.6.10").revisions).default;
|
||||
"MemoTrie".flags.examples = false;
|
||||
"colour".revision = (((hackage."colour")."2.3.5").revisions).default;
|
||||
"transformers-base".revision = (((hackage."transformers-base")."0.4.5.2").revisions).default;
|
||||
"transformers-base".flags.orphaninstances = true;
|
||||
"happy".revision = (((hackage."happy")."1.19.9").revisions).default;
|
||||
"happy".flags.small_base = true;
|
||||
"file-embed".revision = (((hackage."file-embed")."0.0.11").revisions).default;
|
||||
"byteable".revision = (((hackage."byteable")."0.1.1").revisions).default;
|
||||
"hpc".revision = (((hackage."hpc")."0.6.0.3").revisions).default;
|
||||
"entropy".revision = (((hackage."entropy")."0.4.1.5").revisions).default;
|
||||
"entropy".flags.halvm = false;
|
||||
"filepath".revision = (((hackage."filepath")."1.4.2.1").revisions).default;
|
||||
"auto-update".revision = (((hackage."auto-update")."0.1.6").revisions).default;
|
||||
"hspec-core".revision = (((hackage."hspec-core")."2.7.1").revisions).default;
|
||||
"stringsearch".revision = (((hackage."stringsearch")."0.3.6.6").revisions).default;
|
||||
"stringsearch".flags.base4 = true;
|
||||
"stringsearch".flags.base3 = false;
|
||||
"unix-compat".revision = (((hackage."unix-compat")."0.5.2").revisions).default;
|
||||
"unix-compat".flags.old-time = false;
|
||||
"monad-control".revision = (((hackage."monad-control")."1.0.2.3").revisions).default;
|
||||
"process".revision = (((hackage."process")."1.6.5.0").revisions).default;
|
||||
"kan-extensions".revision = (((hackage."kan-extensions")."5.2").revisions).default;
|
||||
"wai-logger".revision = (((hackage."wai-logger")."2.3.6").revisions).default;
|
||||
"th-lift".revision = (((hackage."th-lift")."0.8.1").revisions).default;
|
||||
"resourcet".revision = (((hackage."resourcet")."1.2.2").revisions).default;
|
||||
"webdriver".revision = (((hackage."webdriver")."0.8.5").revisions).default;
|
||||
"webdriver".flags.network-uri = true;
|
||||
"webdriver".flags.developer = false;
|
||||
"pretty".revision = (((hackage."pretty")."1.1.3.6").revisions).default;
|
||||
"cabal-doctest".revision = (((hackage."cabal-doctest")."1.0.8").revisions).default;
|
||||
"aeson".revision = (((hackage."aeson")."1.4.6.0").revisions).default;
|
||||
"aeson".flags.cffi = false;
|
||||
"aeson".flags.fast = false;
|
||||
"aeson".flags.bytestring-builder = false;
|
||||
"aeson".flags.developer = false;
|
||||
"wai-app-static".revision = (((hackage."wai-app-static")."3.1.6.3").revisions).default;
|
||||
"wai-app-static".flags.print = false;
|
||||
"http-types".revision = (((hackage."http-types")."0.12.3").revisions).default;
|
||||
"ghc-boot-th".revision = (((hackage."ghc-boot-th")."8.6.5").revisions).default;
|
||||
"th-lift-instances".revision = (((hackage."th-lift-instances")."0.1.14").revisions).default;
|
||||
"base-orphans".revision = (((hackage."base-orphans")."0.8.1").revisions).default;
|
||||
"http-date".revision = (((hackage."http-date")."0.0.8").revisions).default;
|
||||
"th-abstraction".revision = (((hackage."th-abstraction")."0.3.1.0").revisions).default;
|
||||
"memory".revision = (((hackage."memory")."0.15.0").revisions).default;
|
||||
"memory".flags.support_bytestring = true;
|
||||
"memory".flags.support_basement = true;
|
||||
"memory".flags.support_foundation = true;
|
||||
"memory".flags.support_deepseq = true;
|
||||
"fast-logger".revision = (((hackage."fast-logger")."3.0.0").revisions).default;
|
||||
"bsb-http-chunked".revision = (((hackage."bsb-http-chunked")."0.0.0.4").revisions).default;
|
||||
"array".revision = (((hackage."array")."0.5.3.0").revisions).default;
|
||||
"xml".revision = (((hackage."xml")."1.3.14").revisions).default;
|
||||
"simple-sendfile".revision = (((hackage."simple-sendfile")."0.2.30").revisions).default;
|
||||
"simple-sendfile".flags.allow-bsd = true;
|
||||
"integer-gmp".revision = (((hackage."integer-gmp")."1.0.2.0").revisions).default;
|
||||
};
|
||||
compiler = {
|
||||
version = "8.6.5";
|
||||
nix-name = "ghc865";
|
||||
packages = {
|
||||
"binary" = "0.8.6.0";
|
||||
"ghc-boot" = "8.6.5";
|
||||
"ghc-prim" = "0.5.3";
|
||||
"stm" = "2.5.0.0";
|
||||
"unix" = "2.7.2.2";
|
||||
"ghc-heap" = "8.6.5";
|
||||
"mtl" = "2.2.2";
|
||||
"rts" = "1.0";
|
||||
"deepseq" = "1.4.4.0";
|
||||
"parsec" = "3.1.13.0";
|
||||
"directory" = "1.3.3.0";
|
||||
"template-haskell" = "2.14.0.0";
|
||||
"containers" = "0.6.0.1";
|
||||
"bytestring" = "0.10.8.2";
|
||||
"xhtml" = "3000.2.2.1";
|
||||
"text" = "1.2.3.1";
|
||||
"Cabal" = "2.4.0.1";
|
||||
"base" = "4.12.0.0";
|
||||
"time" = "1.8.0.2";
|
||||
"terminfo" = "0.4.1.2";
|
||||
"transformers" = "0.5.6.2";
|
||||
"hpc" = "0.6.0.3";
|
||||
"filepath" = "1.4.2.1";
|
||||
"process" = "1.6.5.0";
|
||||
"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 = {
|
||||
haddock-library-ghcjs = ./.plan.nix/haddock-library-ghcjs.nix;
|
||||
ghcjs-th = ./.plan.nix/ghcjs-th.nix;
|
||||
ghc-api-ghcjs = ./.plan.nix/ghc-api-ghcjs.nix;
|
||||
ghci-ghcjs = ./.plan.nix/ghci-ghcjs.nix;
|
||||
ghcjs = ./.plan.nix/ghcjs.nix;
|
||||
haddock-api-ghcjs = ./.plan.nix/haddock-api-ghcjs.nix;
|
||||
template-haskell-ghcjs = ./.plan.nix/template-haskell-ghcjs.nix;
|
||||
};
|
||||
};
|
||||
modules = [
|
||||
({ lib, ... }:
|
||||
{
|
||||
packages = {
|
||||
"haddock-library-ghcjs" = { flags = {}; };
|
||||
"ghcjs-th" = {
|
||||
flags = { "use-host-template-haskell" = lib.mkOverride 900 false; };
|
||||
};
|
||||
"ghc-api-ghcjs" = {
|
||||
flags = {
|
||||
"stage1" = lib.mkOverride 900 false;
|
||||
"stage2" = lib.mkOverride 900 true;
|
||||
"debug" = lib.mkOverride 900 false;
|
||||
"stage3" = lib.mkOverride 900 false;
|
||||
"use-host-template-haskell" = lib.mkOverride 900 false;
|
||||
"ghci" = lib.mkOverride 900 true;
|
||||
"terminfo" = lib.mkOverride 900 true;
|
||||
};
|
||||
};
|
||||
"ghci-ghcjs" = { flags = { "ghci" = lib.mkOverride 900 true; }; };
|
||||
"ghcjs" = {
|
||||
flags = {
|
||||
"compiler-only" = lib.mkOverride 900 false;
|
||||
"runtime-assertions" = lib.mkOverride 900 false;
|
||||
"no-wrapper-install" = lib.mkOverride 900 false;
|
||||
"use-host-template-haskell" = lib.mkOverride 900 false;
|
||||
"disable-optimizer" = lib.mkOverride 900 false;
|
||||
};
|
||||
};
|
||||
"haddock-api-ghcjs" = { flags = {}; };
|
||||
"template-haskell-ghcjs" = { flags = {}; };
|
||||
};
|
||||
})
|
||||
];
|
||||
}
|
@ -8,6 +8,11 @@ let
|
||||
|
||||
compiler = cabal.compiler // {
|
||||
isGhc = true;
|
||||
# this is partially a hack to support `impl(ghcjs)`.
|
||||
# We set GHC == true _and_ GHCJS == true.
|
||||
isGhcjs = hostMap.os == "Ghcjs";
|
||||
# maybe we need something for asterius here
|
||||
# as well.
|
||||
version = lib.mapAttrs (_: f: v: f (builtins.compareVersions config.compiler.version v)) {
|
||||
eq = c: c == 0;
|
||||
gt = c: c > 0;
|
||||
|
@ -26,6 +26,11 @@ in
|
||||
default = false;
|
||||
description = "Is lib:ghc reinstallable?";
|
||||
};
|
||||
options.setup-depends = lib.mkOption {
|
||||
type = lib.types.listOf lib.types.unspecified;
|
||||
default = [];
|
||||
description = "pkgs to globally provide to Setup.hs builds";
|
||||
};
|
||||
|
||||
# Dependencies (with reinstallable-lib:ghc)
|
||||
#
|
||||
@ -83,6 +88,6 @@ in
|
||||
buildPackages = buildModules.config.hsPkgs;
|
||||
} //
|
||||
lib.mapAttrs
|
||||
(name: pkg: if pkg == null then null else builder.build-package pkg)
|
||||
(name: pkg: if pkg == null then null else builder.build-package config pkg)
|
||||
(config.packages // lib.genAttrs (config.nonReinstallablePkgs ++ config.bootPkgs) (_: null));
|
||||
}
|
||||
|
@ -245,31 +245,55 @@ in {
|
||||
|
||||
ghc-patches = ghc-patches "8.8.2";
|
||||
};
|
||||
} // self.lib.optionalAttrs (self.targetPlatform.isGhcjs or false) {
|
||||
ghc865 = let ghcjs865 = self.callPackage ../compiler/ghcjs/ghcjs.nix {
|
||||
} // self.lib.optionalAttrs (self.targetPlatform.isGhcjs or false)
|
||||
# This will inject `exactDeps` and `envDeps` into the ghcjs
|
||||
# compiler defined below. This is crucial to build packages
|
||||
# with the current use of env and exact Deps.
|
||||
(builtins.mapAttrs
|
||||
(_: v: v // {
|
||||
isHaskellNixBootCompiler = true;
|
||||
})
|
||||
({
|
||||
ghc865 = let buildGHC = self.buildPackages.haskell-nix.compiler.ghc865;
|
||||
in let ghcjs865 = self.callPackage ../compiler/ghcjs/ghcjs.nix {
|
||||
ghcjsSrcJson = ../compiler/ghcjs/ghcjs-src.json;
|
||||
ghcjsVersion = "8.6.0.1";
|
||||
ghc = self.buildPackages.haskell-nix.compiler.ghc865;
|
||||
ghc = buildGHC;
|
||||
cabal-install = self.buildPackages.haskell-nix.cabal-install;
|
||||
# The alex from the bootstrap packages is apparently broken, and will fail with something like:
|
||||
# > alex: /nix/store/f7b78rg9pmqgvxvsqfzh1przp7pxii5a-alex-3.2.4-exe-alex/share/x86_64-osx-ghc-8.4.4/alex-3.2.4-1pf5faR9dBuJ8mryql0DoA-alex/AlexTemplate-ghc-nopred: openFile: does not exist (No such file or directory)
|
||||
# inherit (self.buildPackages.haskell-nix.bootstrap.packages) alex happy;
|
||||
}; in let targetPrefix = "js-unknown-ghcjs-"; in self.runCommand "${targetPrefix}ghc-8.6.5" {
|
||||
passthru = {
|
||||
inherit targetPrefix;
|
||||
version = "8.6.5";
|
||||
isHaskellNixCompiler = true;
|
||||
inherit (ghcjs865) configured-src;
|
||||
inherit buildGHC;
|
||||
extraConfigureFlags = [
|
||||
"--ghcjs"
|
||||
"--with-ghcjs=${targetPrefix}ghc" "--with-ghcjs-pkg=${targetPrefix}ghc-pkg"
|
||||
# setting gcc is stupid. non-emscripten ghcjs has no cc.
|
||||
# however cabal insists on compiling the c sources. m(
|
||||
"--with-gcc=${self.buildPackages.stdenv.cc}/bin/cc"
|
||||
];
|
||||
};
|
||||
} ''
|
||||
# note: we'll use the buildGHCs `hsc2hs`, ghcjss wrapper just horribly breaks in this nix setup.
|
||||
} (''
|
||||
mkdir -p $out/bin
|
||||
cd $out/bin
|
||||
ln -s ${ghcjs865}/bin/ghcjs ${targetPrefix}ghc
|
||||
ln -s ${ghcjs865}/bin/ghcjs-pkg ${targetPrefix}ghc-pkg
|
||||
ln -s ${ghcjs865}/bin/hsc2hs-ghcjs ${targetPrefix}hsc2hs
|
||||
ln -s ${buildGHC}/bin/hsc2hs ${targetPrefix}hsc2hs
|
||||
cd ..
|
||||
mkdir lib
|
||||
cd lib
|
||||
cp -R ${ghcjs865}/lib/ghcjs-8.6.5 ${targetPrefix}ghc-8.6.5
|
||||
'';
|
||||
});
|
||||
'' + installDeps targetPrefix);
|
||||
})));
|
||||
|
||||
ghc = self.haskell-nix.compiler.ghc865;
|
||||
cabal-install = self.buildPackages.haskell-nix.bootstrap.packages.cabal-install;
|
||||
inherit (self.buildPackages.haskell-nix.bootstrap.packages) cabal-install alex happy;
|
||||
|
||||
# WARN: The `import ../. {}` will prevent
|
||||
# any cross to work, as we will loose
|
||||
|
@ -455,6 +455,11 @@ self: super: {
|
||||
shells.ghc = p.hsPkgs.shellFor {};
|
||||
};
|
||||
|
||||
# Like `cabalProject'`, but for building the GHCJS compiler.
|
||||
# This is exposed to allow GHCJS developers to work on the GHCJS
|
||||
# code in a nix-shell with `shellFor`.
|
||||
ghcjsProject = import ../lib/ghcjs-project.nix { pkgs = self; };
|
||||
|
||||
# The functions that return a plan-nix often have a lot of dependencies
|
||||
# that could be GCed and also will not make it into hydra cache.
|
||||
# Use this `withInputs` function to make sure your tests include
|
||||
|
Loading…
Reference in New Issue
Block a user