Fixing emcc usage in haskell.nix ghcjs (#1064)

* Use emscripten branch of GHCJS for 8.6

* Adds release-linux-only.nix (for hydra with no mac builders)

* Sets HOME to a temp dir once per derivation to help performance of emcc

* Updates materialization

* Uses symlinks to reduce ghc derivation size for wrapped ghcjs

* Removes compiler-nix-name test
    This test checked that the default compiler was overridden by the
    compiler-nix-name arg.  There is no default any more.

The GHCJS branches used include fixes for:

* hs$ret_1 typo (should be hs$ret1)

* A bignum issue
This commit is contained in:
Hamish Mackenzie 2021-03-12 12:21:07 +13:00 committed by GitHub
parent 536327105e
commit 4d700cf155
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
24 changed files with 849 additions and 1099 deletions

View File

@ -329,6 +329,10 @@ let
++ (lib.optional keepSource "source");
configurePhase =
# emcc is very slow if it cannot cache stuff in $HOME
(lib.optionalString (stdenv.hostPlatform.isGhcjs) ''
export HOME=$(mktemp -d)
'') +
(lib.optionalString (!canCleanSource) ''
echo "Cleaning component source not supported, leaving it un-cleaned"
'') +

View File

@ -1,6 +1,6 @@
{
"url": "https://github.com/ghcjs/ghcjs",
"rev": "31a54f7320b1f9700eb6389c2eb2d50c712e8371",
"sha256": "1cj1gfqcj0ygc23xj5gbm0ym9wmh8ini57zlgd6s25avgjbrwga6",
"rev": "30706cd687a301776ba4c1efd3db442fa9c78883",
"sha256": "sha256-7mJ/y6l89Rq/rIvZLZAOGpHsiBJ5BPCUuZIu2nxc6Dk=",
"fetchSubmodules": true
}

View File

@ -1,7 +1,7 @@
{ pkgs
, ghcjsSrcJson ? ./ghcjs-src.json
, ghcjsSrc ? pkgs.buildPackages.fetchgit (builtins.fromJSON (builtins.readFile ghcjsSrcJson))
, ghcjsVersion ? "8.6.0.1"
, ghcjsVersion ? "8.6.0.0.10"
, ghcVersion ? "8.6.5"
, compiler-nix-name ? if builtins.compareVersions ghcjsVersion "8.8.0.0" > 0
then "ghc884"
@ -24,21 +24,25 @@ let
all-ghcjs = pkgs.buildPackages.symlinkJoin {
name = "ghcjs-${ghcjsVersion}-symlinked";
paths = [
(ghcjs.getComponent "exe:ghcjs")
(ghcjs.getComponent "exe:ghcjs-pkg")
(ghcjs.getComponent "exe:ghcjs-boot")
(ghcjs.getComponent "exe:ghcjs-dumparchive")
] ++ (if isGhcjs88
then [
(ghcjs.getComponent "exe:ghcjs")
(ghcjs.getComponent "exe:ghcjs-pkg")
(ghcjs.getComponent "exe:private-ghcjs-hsc2hs")
(ghcjs.getComponent "exe:haddock")
(ghcjs.getComponent "exe:ghcjs-dumparchive")
(ghcjs.getComponent "exe:private-ghcjs-run")
(ghcjs.getComponent "exe:private-ghcjs-unlit")
]
else [
(ghcjs.getComponent "exe:private-ghcjs-ghcjs")
(ghcjs.getComponent "exe:private-ghcjs-ghcjs-pkg")
(ghcjs.getComponent "exe:private-ghcjs-run")
(ghcjs.getComponent "exe:private-ghcjs-unlit")
(ghcjs.getComponent "exe:private-ghcjs-hsc2hs")
]
else [
(ghcjs.getComponent "exe:haddock-ghcjs")
(ghcjs.getComponent "exe:hsc2hs-ghcjs")
(ghcjs.getComponent "exe:ghcjs-run")
(ghcjs.getComponent "exe:private-ghcjs-haddock")
(ghcjs.getComponent "exe:private-ghcjs-ghcjs-dumparchive")
]);
};
libexec = "libexec/${builtins.replaceStrings ["darwin" "i686"] ["osx" "i386"] pkgs.stdenv.buildPlatform.system}-${ghc.name}/ghcjs-${ghcVersion}";
@ -77,13 +81,17 @@ let
wrapProgram $out/bin/ghcjs-pkg --add-flags "--global-package-db=$out/lib/package.conf.d"
''
else ''
mkdir -p $out/bin
mkdir -p $out
lndir ${all-ghcjs} $out
mkdir -p $out/lib/ghcjs-${ghcVersion}
lndir ${all-ghcjs}/${libexec} $out/bin
rm $out/bin/ghcjs-boot
cp ${ghcjs.getComponent "exe:ghcjs-boot"}/bin/ghcjs-boot $out/bin
wrapProgram $out/bin/ghcjs-boot --set ghcjs_libexecdir $out/bin
mv $out/${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/private-ghcjs-ghcjs --add-flags "-B$out/lib"
wrapProgram $out/bin/private-ghcjs-haddock --add-flags "-B$out/lib"
wrapProgram $out/bin/private-ghcjs-ghcjs-pkg --add-flags "--global-package-db=$out/lib/package.conf.d"
''
}
# Avoid timeouts while unix package runs hsc2hs (it does not print anything
@ -101,12 +109,12 @@ let
# Unsets NIX_CFLAGS_COMPILE so the osx version of iconv.h is not used by mistake
''
env -u NIX_CFLAGS_COMPILE PATH=$out/bin:$PATH \
PYTHON=${pkgs.buildPackages.python3}/bin/python3 \
$out/bin/ghcjs-boot -j1 --with-emsdk=${project.emsdk} --no-prof --no-haddock \
|| (echo failed > $TMP/done; false)
''
else ''
env PATH=$out/bin:$PATH $out/bin/ghcjs-boot -j1 --with-ghcjs-bin $out/bin \
env -u NIX_CFLAGS_COMPILE PATH=$out/bin:$PATH \
$out/bin/ghcjs-boot -j1 --with-ghcjs-libdir=$out --with-emsdk=${project.emsdk} \
|| (echo failed > $TMP/done; false)
''
}

View File

@ -1,6 +1,6 @@
{
"url": "https://github.com/ghcjs/ghcjs",
"rev": "23e75593937dc15eaee73bed1443450fc68bd277",
"sha256": "1cj4q2rx3xs8zfkpjjwfdfadidg0wgn3qisffiikxmgf41b4a760",
"rev": "1af48a877fdf1f647a3b81e828a1e61adb0baceb",
"sha256": "sha256-B4LFpd1nl96SO6/gsTjkizMGSglMkrujmwgXVjahC68=",
"fetchSubmodules": true
}

View File

@ -62,17 +62,9 @@ let
alex
cabal-install
];
# nixpkgs does not have an emsdk, this derivation uses symlinks to make something
# that matches enought for `ghcjs-boot` to work
emscriptenupstream = pkgs.buildPackages.emscriptenupstream;
emscripten = pkgs.buildPackages.emscripten.override {
emscriptenBackend = emscriptenupstream;
};
emsdk = pkgs.linkFarm "emsdk" [
{ name = "upstream/bin"; path = emscriptenupstream + "/bin"; }
{ name = "upstream/emscripten"; path = emscripten + "/bin"; }
{ name = "share"; path = emscripten + "/share"; }
];
inherit (pkgs.buildPackages) emscriptenupstream emscripten emsdk;
# Inputs needed to boot the GHCJS compiler
bootInputs = with pkgs.buildPackages; [
nodejs
@ -81,11 +73,7 @@ let
gmp
pkgconfig
]
++ [ ghc cabal-install ]
++ lib.optionals stdenv.isDarwin [
pkgs.buildPackages.gcc # https://github.com/ghcjs/ghcjs/issues/663
]
++ lib.optional isGhcjs88 [ emsdk ];
++ [ ghc cabal-install emsdk ];
# Configured the GHCJS source
configured-src = pkgs.runCommand "configured-ghcjs-src" {
buildInputs = configureInputs;
@ -123,14 +111,7 @@ let
sed -i 's/gcc /cc /g' utils/makePackages.sh
./utils/makePackages.sh copy
${
# nuke the HsBaseConfig.h from base.buildinfo.in; this will
# prevent it from being installed and provide incorrect values.
pkgs.lib.optionalString (!isGhcjs88) ''
echo " build-tool-depends: alex:alex, happy:happy <= 1.19.9" >> lib/ghc-api-ghcjs/ghc-api-ghcjs.cabal
sed -i 's/HsBaseConfig.h//g' 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' (

View File

@ -741,8 +741,6 @@ exposed-modules:
GHC.Integer.Logarithms.Internals
hidden-modules: GHC.Integer.Type
hs-libraries: HSinteger-gmp-1.0.2.0-6GHJbRN6krEDXGMaCSGBVX
extra-libraries:
gmp
depends:
ghc-prim-0.5.3-D5yTV0DK5iW2rkul1Hko6R
---
@ -890,70 +888,11 @@ key: rts
license: BSD-3-Clause
maintainer: glasgow-haskell-users@haskell.org
exposed: True
hs-libraries: HSrts
hs-libraries: HSrts Cffi
extra-libraries:
m rt dl ffi numa pthread
m dl
includes:
Stg.h
ld-options: "-Wl,-u,base_GHCziTopHandler_runIO_closure"
"-Wl,-u,base_GHCziTopHandler_runNonIO_closure"
"-Wl,-u,ghczmprim_GHCziTuple_Z0T_closure"
"-Wl,-u,ghczmprim_GHCziTypes_True_closure"
"-Wl,-u,ghczmprim_GHCziTypes_False_closure"
"-Wl,-u,base_GHCziPack_unpackCString_closure"
"-Wl,-u,base_GHCziWeak_runFinalizzerBatch_closure"
"-Wl,-u,base_GHCziIOziException_stackOverflow_closure"
"-Wl,-u,base_GHCziIOziException_heapOverflow_closure"
"-Wl,-u,base_GHCziIOziException_allocationLimitExceeded_closure"
"-Wl,-u,base_GHCziIOziException_blockedIndefinitelyOnMVar_closure"
"-Wl,-u,base_GHCziIOziException_blockedIndefinitelyOnSTM_closure"
"-Wl,-u,base_GHCziIOziException_cannotCompactFunction_closure"
"-Wl,-u,base_GHCziIOziException_cannotCompactPinned_closure"
"-Wl,-u,base_GHCziIOziException_cannotCompactMutable_closure"
"-Wl,-u,base_ControlziExceptionziBase_absentSumFieldError_closure"
"-Wl,-u,base_ControlziExceptionziBase_nonTermination_closure"
"-Wl,-u,base_ControlziExceptionziBase_nestedAtomically_closure"
"-Wl,-u,base_GHCziEventziThread_blockedOnBadFD_closure"
"-Wl,-u,base_GHCziConcziSync_runSparks_closure"
"-Wl,-u,base_GHCziConcziIO_ensureIOManagerIsRunning_closure"
"-Wl,-u,base_GHCziConcziIO_ioManagerCapabilitiesChanged_closure"
"-Wl,-u,base_GHCziConcziSignal_runHandlersPtr_closure"
"-Wl,-u,base_GHCziTopHandler_flushStdHandles_closure"
"-Wl,-u,base_GHCziTopHandler_runMainIO_closure"
"-Wl,-u,ghczmprim_GHCziTypes_Czh_con_info"
"-Wl,-u,ghczmprim_GHCziTypes_Izh_con_info"
"-Wl,-u,ghczmprim_GHCziTypes_Fzh_con_info"
"-Wl,-u,ghczmprim_GHCziTypes_Dzh_con_info"
"-Wl,-u,ghczmprim_GHCziTypes_Wzh_con_info"
"-Wl,-u,base_GHCziPtr_Ptr_con_info"
"-Wl,-u,base_GHCziPtr_FunPtr_con_info"
"-Wl,-u,base_GHCziInt_I8zh_con_info"
"-Wl,-u,base_GHCziInt_I16zh_con_info"
"-Wl,-u,base_GHCziInt_I32zh_con_info"
"-Wl,-u,base_GHCziInt_I64zh_con_info"
"-Wl,-u,base_GHCziWord_W8zh_con_info"
"-Wl,-u,base_GHCziWord_W16zh_con_info"
"-Wl,-u,base_GHCziWord_W32zh_con_info"
"-Wl,-u,base_GHCziWord_W64zh_con_info"
"-Wl,-u,base_GHCziStable_StablePtr_con_info"
"-Wl,-u,hs_atomic_add8" "-Wl,-u,hs_atomic_add16"
"-Wl,-u,hs_atomic_add32" "-Wl,-u,hs_atomic_add64"
"-Wl,-u,hs_atomic_sub8" "-Wl,-u,hs_atomic_sub16"
"-Wl,-u,hs_atomic_sub32" "-Wl,-u,hs_atomic_sub64"
"-Wl,-u,hs_atomic_and8" "-Wl,-u,hs_atomic_and16"
"-Wl,-u,hs_atomic_and32" "-Wl,-u,hs_atomic_and64"
"-Wl,-u,hs_atomic_nand8" "-Wl,-u,hs_atomic_nand16"
"-Wl,-u,hs_atomic_nand32" "-Wl,-u,hs_atomic_nand64"
"-Wl,-u,hs_atomic_or8" "-Wl,-u,hs_atomic_or16"
"-Wl,-u,hs_atomic_or32" "-Wl,-u,hs_atomic_or64"
"-Wl,-u,hs_atomic_xor8" "-Wl,-u,hs_atomic_xor16"
"-Wl,-u,hs_atomic_xor32" "-Wl,-u,hs_atomic_xor64"
"-Wl,-u,hs_cmpxchg8" "-Wl,-u,hs_cmpxchg16" "-Wl,-u,hs_cmpxchg32"
"-Wl,-u,hs_cmpxchg64" "-Wl,-u,hs_atomicread8"
"-Wl,-u,hs_atomicread16" "-Wl,-u,hs_atomicread32"
"-Wl,-u,hs_atomicread64" "-Wl,-u,hs_atomicwrite8"
"-Wl,-u,hs_atomicwrite16" "-Wl,-u,hs_atomicwrite32"
"-Wl,-u,hs_atomicwrite64"
---
name: template-haskell
version: 2.14.0.0
@ -1175,8 +1114,6 @@ hidden-modules: System.Posix.Directory.Common
System.Posix.IO.Common System.Posix.Process.Common
System.Posix.Terminal.Common
hs-libraries: HSunix-2.7.2.2-JxmyTgtpFqj7lvsQuv62w2
extra-libraries:
rt util dl pthread
includes:
HsUnix.h execvpe.h
depends:

View File

@ -1,31 +1,33 @@
[("Project name","The Glorious Glasgow Haskell Compilation System for JavaScript")
,("Project version","8.6.5")
,("Native Too","NO")
,("GCC extra via C opts"," -fwrapv -fno-builtin")
,("C compiler flags"," -fno-stack-protector")
,("C compiler flags","")
,("C compiler link flags"," ")
,("C compiler supports -no-pie","YES")
,("Haskell CPP flags","-E -undef -traditional")
,("C compiler supports -no-pie","NO")
,("Haskell CPP flags","-E -undef -traditional -Wno-invalid-pp-token -Wno-unicode -Wno-trigraphs")
,("ld command","ld")
,("ld flags","")
,("ld supports compact unwind","YES")
,("ld supports build-id","YES")
,("ld supports filelist","NO")
,("ld is GNU ld","YES")
,("ar flags","q")
,("ar supports at file","YES")
,("ld supports build-id","NO")
,("ld supports filelist","YES")
,("ld is GNU ld","NO")
,("ar flags","qcls")
,("ar supports at file","NO")
,("touch command","touch")
,("dllwrap command","/bin/false")
,("windres command","/bin/false")
,("libtool command","libtool")
,("cross compiling","NO")
,("target os","OSLinux")
,("target arch","ArchX86_64")
,("target word size","8")
,("target has GNU nonexec stack","True")
,("perl command","/usr/bin/perl")
,("cross compiling","YES")
,("target os","OSUnknown")
,("target arch","ArchJavaScript")
,("Target platform","wasm32-unknown-none")
,("target word size","4")
,("target has GNU nonexec stack","False")
,("target has .ident directive","True")
,("target has subsections via symbols","False")
,("target has subsections via symbols","True")
,("target has RTS linker","YES")
,("Unregisterised","NO")
,("Unregisterised","YES")
,("LLVM llc command","llc")
,("LLVM opt command","opt")
,("LLVM clang command","clang")
@ -34,7 +36,6 @@
,("Stage","2")
,("Build platform","x86_64-unknown-linux")
,("Host platform","x86_64-unknown-linux")
,("Target platform","x86_64-unknown-linux")
,("Have interpreter","YES")
,("Object splitting supported","YES")
,("Have native code generator","YES")

View File

@ -12,7 +12,6 @@
"base".revision = (((hackage."base")."4.12.0.0").revisions).default;
"time".revision = (((hackage."time")."1.8.0.2").revisions).default;
"filepath".revision = (((hackage."filepath")."1.4.2.1").revisions).default;
"process".revision = (((hackage."process")."1.6.5.0").revisions).default;
"array".revision = (((hackage."array")."0.5.3.0").revisions).default;
"integer-gmp".revision = (((hackage."integer-gmp")."1.0.2.0").revisions).default;
};
@ -30,7 +29,6 @@
"base" = "4.12.0.0";
"time" = "1.8.0.2";
"filepath" = "1.4.2.1";
"process" = "1.6.5.0";
"array" = "0.5.3.0";
"integer-gmp" = "1.0.2.0";
};

View File

@ -12,7 +12,6 @@
"base".revision = (((hackage."base")."4.13.0.0").revisions).default;
"time".revision = (((hackage."time")."1.9.3").revisions).default;
"filepath".revision = (((hackage."filepath")."1.4.2.1").revisions).default;
"process".revision = (((hackage."process")."1.6.9.0").revisions).default;
"array".revision = (((hackage."array")."0.5.4.0").revisions).default;
"integer-gmp".revision = (((hackage."integer-gmp")."1.0.2.0").revisions).default;
};
@ -30,7 +29,6 @@
"base" = "4.13.0.0";
"time" = "1.9.3";
"filepath" = "1.4.2.1";
"process" = "1.6.9.0";
"array" = "0.5.4.0";
"integer-gmp" = "1.0.2.0";
};

View File

@ -2,7 +2,8 @@
pkgs = hackage:
{
packages = {
"cryptohash-sha256".revision = (((hackage."cryptohash-sha256")."0.11.101.0").revisions).default;
"cryptohash-sha256".revision = (((hackage."cryptohash-sha256")."0.11.102.0").revisions).default;
"cryptohash-sha256".flags.use-cbits = true;
"cryptohash-sha256".flags.exe = false;
"binary".revision = (((hackage."binary")."0.8.6.0").revisions).default;
"tar".revision = (((hackage."tar")."0.5.1.1").revisions).default;
@ -13,8 +14,8 @@
"stm".revision = (((hackage."stm")."2.5.0.0").revisions).default;
"unix".revision = (((hackage."unix")."2.7.2.2").revisions).default;
"mtl".revision = (((hackage."mtl")."2.2.2").revisions).default;
"network-uri".revision = (((hackage."network-uri")."2.6.3.0").revisions).default;
"zlib".revision = (((hackage."zlib")."0.6.2.2").revisions).default;
"network-uri".revision = (((hackage."network-uri")."2.6.4.1").revisions).default;
"zlib".revision = (((hackage."zlib")."0.6.2.3").revisions).default;
"zlib".flags.non-blocking-ffi = false;
"zlib".flags.bundled-c-zlib = false;
"zlib".flags.pkg-config = false;
@ -23,10 +24,10 @@
"random".revision = (((hackage."random")."1.1").revisions).default;
"network".revision = (((hackage."network")."3.1.2.1").revisions).default;
"network".flags.devel = false;
"async".revision = (((hackage."async")."2.2.2").revisions).default;
"async".revision = (((hackage."async")."2.2.3").revisions).default;
"async".flags.bench = false;
"parsec".revision = (((hackage."parsec")."3.1.13.0").revisions).default;
"echo".revision = (((hackage."echo")."0.1.3").revisions).default;
"echo".revision = (((hackage."echo")."0.1.4").revisions).default;
"echo".flags.example = false;
"hsc2hs".revision = (((hackage."hsc2hs")."0.68.7").revisions).default;
"hsc2hs".flags.in-ghc-tree = false;
@ -41,13 +42,11 @@
"base64-bytestring".revision = (((hackage."base64-bytestring")."1.2.0.1").revisions).default;
"base".revision = (((hackage."base")."4.12.0.0").revisions).default;
"time".revision = (((hackage."time")."1.8.0.2").revisions).default;
"th-compat".revision = (((hackage."th-compat")."0.1.1").revisions).default;
"base16-bytestring".revision = (((hackage."base16-bytestring")."0.1.1.7").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".revision = (((hackage."hashable")."1.3.1.0").revisions).default;
"hashable".flags.integer-gmp = true;
"hashable".flags.sse41 = false;
"hashable".flags.examples = false;
"HTTP".revision = (((hackage."HTTP")."4000.3.15").revisions).default;
"HTTP".flags.mtl1 = false;
"HTTP".flags.conduit10 = false;

View File

@ -2,7 +2,8 @@
pkgs = hackage:
{
packages = {
"cryptohash-sha256".revision = (((hackage."cryptohash-sha256")."0.11.101.0").revisions).default;
"cryptohash-sha256".revision = (((hackage."cryptohash-sha256")."0.11.102.0").revisions).default;
"cryptohash-sha256".flags.use-cbits = true;
"cryptohash-sha256".flags.exe = false;
"binary".revision = (((hackage."binary")."0.8.7.0").revisions).default;
"tar".revision = (((hackage."tar")."0.5.1.1").revisions).default;
@ -13,8 +14,8 @@
"stm".revision = (((hackage."stm")."2.5.0.0").revisions).default;
"unix".revision = (((hackage."unix")."2.7.2.2").revisions).default;
"mtl".revision = (((hackage."mtl")."2.2.2").revisions).default;
"network-uri".revision = (((hackage."network-uri")."2.6.3.0").revisions).default;
"zlib".revision = (((hackage."zlib")."0.6.2.2").revisions).default;
"network-uri".revision = (((hackage."network-uri")."2.6.4.1").revisions).default;
"zlib".revision = (((hackage."zlib")."0.6.2.3").revisions).default;
"zlib".flags.non-blocking-ffi = false;
"zlib".flags.bundled-c-zlib = false;
"zlib".flags.pkg-config = false;
@ -23,10 +24,10 @@
"random".revision = (((hackage."random")."1.1").revisions).default;
"network".revision = (((hackage."network")."3.1.2.1").revisions).default;
"network".flags.devel = false;
"async".revision = (((hackage."async")."2.2.2").revisions).default;
"async".revision = (((hackage."async")."2.2.3").revisions).default;
"async".flags.bench = false;
"parsec".revision = (((hackage."parsec")."3.1.14.0").revisions).default;
"echo".revision = (((hackage."echo")."0.1.3").revisions).default;
"echo".revision = (((hackage."echo")."0.1.4").revisions).default;
"echo".flags.example = false;
"hsc2hs".revision = (((hackage."hsc2hs")."0.68.7").revisions).default;
"hsc2hs".flags.in-ghc-tree = false;
@ -41,13 +42,11 @@
"base64-bytestring".revision = (((hackage."base64-bytestring")."1.2.0.1").revisions).default;
"base".revision = (((hackage."base")."4.13.0.0").revisions).default;
"time".revision = (((hackage."time")."1.9.3").revisions).default;
"th-compat".revision = (((hackage."th-compat")."0.1.1").revisions).default;
"base16-bytestring".revision = (((hackage."base16-bytestring")."0.1.1.7").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".revision = (((hackage."hashable")."1.3.1.0").revisions).default;
"hashable".flags.integer-gmp = true;
"hashable".flags.sse41 = false;
"hashable".flags.examples = false;
"HTTP".revision = (((hackage."HTTP")."4000.3.15").revisions).default;
"HTTP".flags.mtl1 = false;
"HTTP".flags.conduit10 = false;

View File

@ -3,18 +3,12 @@
{
packages = {
"ghc-prim".revision = (((hackage."ghc-prim")."0.5.3").revisions).default;
"unix".revision = (((hackage."unix")."2.7.2.2").revisions).default;
"mtl".revision = (((hackage."mtl")."2.2.2").revisions).default;
"rts".revision = (((hackage."rts")."1.0").revisions).default;
"deepseq".revision = (((hackage."deepseq")."1.4.4.0").revisions).default;
"directory".revision = (((hackage."directory")."1.3.3.0").revisions).default;
"containers".revision = (((hackage."containers")."0.6.0.1").revisions).default;
"bytestring".revision = (((hackage."bytestring")."0.10.8.2").revisions).default;
"base".revision = (((hackage."base")."4.12.0.0").revisions).default;
"time".revision = (((hackage."time")."1.8.0.2").revisions).default;
"transformers".revision = (((hackage."transformers")."0.5.6.2").revisions).default;
"filepath".revision = (((hackage."filepath")."1.4.2.1").revisions).default;
"process".revision = (((hackage."process")."1.6.5.0").revisions).default;
"array".revision = (((hackage."array")."0.5.3.0").revisions).default;
"integer-gmp".revision = (((hackage."integer-gmp")."1.0.2.0").revisions).default;
};
@ -23,18 +17,12 @@
nix-name = "ghc865";
packages = {
"ghc-prim" = "0.5.3";
"unix" = "2.7.2.2";
"mtl" = "2.2.2";
"rts" = "1.0";
"deepseq" = "1.4.4.0";
"directory" = "1.3.3.0";
"containers" = "0.6.0.1";
"bytestring" = "0.10.8.2";
"base" = "4.12.0.0";
"time" = "1.8.0.2";
"transformers" = "0.5.6.2";
"filepath" = "1.4.2.1";
"process" = "1.6.5.0";
"array" = "0.5.3.0";
"integer-gmp" = "1.0.2.0";
};

View File

@ -3,18 +3,12 @@
{
packages = {
"ghc-prim".revision = (((hackage."ghc-prim")."0.5.3").revisions).default;
"unix".revision = (((hackage."unix")."2.7.2.2").revisions).default;
"mtl".revision = (((hackage."mtl")."2.2.2").revisions).default;
"rts".revision = (((hackage."rts")."1.0").revisions).default;
"deepseq".revision = (((hackage."deepseq")."1.4.4.0").revisions).default;
"directory".revision = (((hackage."directory")."1.3.6.0").revisions).default;
"containers".revision = (((hackage."containers")."0.6.2.1").revisions).default;
"bytestring".revision = (((hackage."bytestring")."0.10.10.1").revisions).default;
"base".revision = (((hackage."base")."4.13.0.0").revisions).default;
"time".revision = (((hackage."time")."1.9.3").revisions).default;
"transformers".revision = (((hackage."transformers")."0.5.6.2").revisions).default;
"filepath".revision = (((hackage."filepath")."1.4.2.1").revisions).default;
"process".revision = (((hackage."process")."1.6.9.0").revisions).default;
"array".revision = (((hackage."array")."0.5.4.0").revisions).default;
"integer-gmp".revision = (((hackage."integer-gmp")."1.0.2.0").revisions).default;
};
@ -23,18 +17,12 @@
nix-name = "ghc884";
packages = {
"ghc-prim" = "0.5.3";
"unix" = "2.7.2.2";
"mtl" = "2.2.2";
"rts" = "1.0";
"deepseq" = "1.4.4.0";
"directory" = "1.3.6.0";
"containers" = "0.6.2.1";
"bytestring" = "0.10.10.1";
"base" = "4.13.0.0";
"time" = "1.9.3";
"transformers" = "0.5.6.2";
"filepath" = "1.4.2.1";
"process" = "1.6.9.0";
"array" = "0.5.4.0";
"integer-gmp" = "1.0.2.0";
};

View File

@ -1,589 +0,0 @@
{ system
, compiler
, flags
, pkgs
, hsPkgs
, pkgconfPkgs
, errorHandler
, config
, ... }:
{
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 (errorHandler.buildDepError "base"))
(hsPkgs."deepseq" or (errorHandler.buildDepError "deepseq"))
(hsPkgs."directory" or (errorHandler.buildDepError "directory"))
(hsPkgs."process" or (errorHandler.buildDepError "process"))
(hsPkgs."bytestring" or (errorHandler.buildDepError "bytestring"))
(hsPkgs."binary" or (errorHandler.buildDepError "binary"))
(hsPkgs."time" or (errorHandler.buildDepError "time"))
(hsPkgs."containers" or (errorHandler.buildDepError "containers"))
(hsPkgs."array" or (errorHandler.buildDepError "array"))
(hsPkgs."filepath" or (errorHandler.buildDepError "filepath"))
(hsPkgs."hpc" or (errorHandler.buildDepError "hpc"))
(hsPkgs."transformers" or (errorHandler.buildDepError "transformers"))
(hsPkgs."ghc-boot" or (errorHandler.buildDepError "ghc-boot"))
(hsPkgs."ghc-boot-th" or (errorHandler.buildDepError "ghc-boot-th"))
(hsPkgs."ghc-heap" or (errorHandler.buildDepError "ghc-heap"))
] ++ (if flags.use-host-template-haskell || compiler.isGhcjs && true
then [
(hsPkgs."template-haskell" or (errorHandler.buildDepError "template-haskell"))
(hsPkgs."ghci" or (errorHandler.buildDepError "ghci"))
]
else [
(hsPkgs."template-haskell-ghcjs" or (errorHandler.buildDepError "template-haskell-ghcjs"))
(hsPkgs."ghci-ghcjs" or (errorHandler.buildDepError "ghci-ghcjs"))
])) ++ (if system.isWindows
then [ (hsPkgs."Win32" or (errorHandler.buildDepError "Win32")) ]
else [
(hsPkgs."unix" or (errorHandler.buildDepError "unix"))
] ++ (pkgs.lib).optional (flags.terminfo) (hsPkgs."terminfo" or (errorHandler.buildDepError "terminfo")));
build-tools = [
(hsPkgs.buildPackages.happy.components.exes.happy or (pkgs.buildPackages.happy or (errorHandler.buildToolDepError "happy:happy")))
(hsPkgs.buildPackages.alex.components.exes.alex or (pkgs.buildPackages.alex or (errorHandler.buildToolDepError "alex:alex")))
(hsPkgs.buildPackages.alex.components.exes.alex or (pkgs.buildPackages.alex or (errorHandler.buildToolDepError "alex:alex")))
(hsPkgs.buildPackages.happy.components.exes.happy or (pkgs.buildPackages.happy or (errorHandler.buildToolDepError "happy: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; }

View File

@ -13,7 +13,13 @@
no-wrapper-install = false;
disable-optimizer = false;
runtime-assertions = false;
use-host-template-haskell = false;
use-host-template-haskell = true;
debug = false;
ghci = true;
stage1 = false;
stage2 = true;
stage3 = false;
terminfo = true;
};
package = {
specVersion = "2.0";
@ -31,12 +37,6 @@
setup-depends = [
(hsPkgs.buildPackages.base or (pkgs.buildPackages.base or (errorHandler.setupDepError "base")))
(hsPkgs.buildPackages.Cabal or (pkgs.buildPackages.Cabal or (errorHandler.setupDepError "Cabal")))
(hsPkgs.buildPackages.containers or (pkgs.buildPackages.containers or (errorHandler.setupDepError "containers")))
(hsPkgs.buildPackages.filepath or (pkgs.buildPackages.filepath or (errorHandler.setupDepError "filepath")))
(hsPkgs.buildPackages.directory or (pkgs.buildPackages.directory or (errorHandler.setupDepError "directory")))
(hsPkgs.buildPackages.process or (pkgs.buildPackages.process or (errorHandler.setupDepError "process")))
(hsPkgs.buildPackages.template-haskell or (pkgs.buildPackages.template-haskell or (errorHandler.setupDepError "template-haskell")))
(hsPkgs.buildPackages.transformers or (pkgs.buildPackages.transformers or (errorHandler.setupDepError "transformers")))
];
detailLevel = "FullDetails";
licenseFiles = [ "LICENSE" ];
@ -53,19 +53,45 @@
"README.markdown"
"test/LICENSE"
"test/ghcjs-testsuite.cabal"
"stack.yaml"
"ghc/compiler/Unique.h"
"ghc/compiler/HsVersions.h"
"ghc/compiler/nativeGen/NCG.h"
"ghc/compiler/parser/cutils.h"
"ghc/compiler/utils/md5.h"
"ghc/includes/CodeGen.Platform.hs"
"lib/ghc-api-ghcjs/autogen/Config.hs"
"lib/ghc-api-ghcjs/autogen/864/Config.hs"
"lib/ghc-api-ghcjs/autogen/863/Config.hs"
"lib/ghc-api-ghcjs/includes/GHCConstantsHaskellExports.hs"
"lib/ghc-api-ghcjs/includes/GHCConstantsHaskellType.hs"
"lib/ghc-api-ghcjs/includes/GHCConstantsHaskellWrappers.hs"
"lib/ghc-api-ghcjs/includes/*.h"
"lib/ghc-api-ghcjs/includes/*.hs-incl"
"ghc/includes/rts/*.h"
"ghc/includes/rts/storage/*.h"
"ghc/includes/MachDeps.h"
"ghc/includes/Rts.h"
"ghc/includes/RtsAPI.h"
"ghc/includes/Stg.h"
"ghc/includes/HsFFI.h"
"ghc/includes/Cmm.h"
"ghc/includes/stg/*.h"
"ghc/utils/unlit/fs.h"
"ghc/driver/utils/cwrapper.h"
"ghc/driver/utils/getLocation.h"
"utils/wrapper/getline.h"
];
extraTmpFiles = [];
extraDocFiles = [];
};
components = {
"library" = {
depends = [
depends = (([
(hsPkgs."base" or (errorHandler.buildDepError "base"))
(hsPkgs."Cabal" or (errorHandler.buildDepError "Cabal"))
(hsPkgs."ghc-api-ghcjs" or (errorHandler.buildDepError "ghc-api-ghcjs"))
(hsPkgs."ghcjs-th" or (errorHandler.buildDepError "ghcjs-th"))
(hsPkgs."ghc-boot" or (errorHandler.buildDepError "ghc-boot"))
(hsPkgs."ghc-heap" or (errorHandler.buildDepError "ghc-heap"))
(hsPkgs."ghc-compact" or (errorHandler.buildDepError "ghc-compact"))
(hsPkgs."directory" or (errorHandler.buildDepError "directory"))
(hsPkgs."filepath" or (errorHandler.buildDepError "filepath"))
(hsPkgs."containers" or (errorHandler.buildDepError "containers"))
@ -102,15 +128,46 @@
(hsPkgs."parsec" or (errorHandler.buildDepError "parsec"))
(hsPkgs."haskell-src-exts" or (errorHandler.buildDepError "haskell-src-exts"))
(hsPkgs."haskell-src-meta" or (errorHandler.buildDepError "haskell-src-meta"))
(hsPkgs."base" or (errorHandler.buildDepError "base"))
(hsPkgs."deepseq" or (errorHandler.buildDepError "deepseq"))
(hsPkgs."directory" or (errorHandler.buildDepError "directory"))
(hsPkgs."process" or (errorHandler.buildDepError "process"))
(hsPkgs."bytestring" or (errorHandler.buildDepError "bytestring"))
(hsPkgs."binary" or (errorHandler.buildDepError "binary"))
(hsPkgs."time" or (errorHandler.buildDepError "time"))
(hsPkgs."containers" or (errorHandler.buildDepError "containers"))
(hsPkgs."array" or (errorHandler.buildDepError "array"))
(hsPkgs."filepath" or (errorHandler.buildDepError "filepath"))
(hsPkgs."hpc" or (errorHandler.buildDepError "hpc"))
(hsPkgs."transformers" or (errorHandler.buildDepError "transformers"))
(hsPkgs."ghc-boot" or (errorHandler.buildDepError "ghc-boot"))
(hsPkgs."ghc-boot-th" or (errorHandler.buildDepError "ghc-boot-th"))
(hsPkgs."ghc-heap" or (errorHandler.buildDepError "ghc-heap"))
] ++ (if flags.use-host-template-haskell
then [ (hsPkgs."ghci" or (errorHandler.buildDepError "ghci")) ]
else [
(hsPkgs."template-haskell-ghcjs" or (errorHandler.buildDepError "template-haskell-ghcjs"))
(hsPkgs."ghci-ghcjs" or (errorHandler.buildDepError "ghci-ghcjs"))
]);
])) ++ (if flags.use-host-template-haskell || compiler.isGhcjs && true
then [
(hsPkgs."template-haskell" or (errorHandler.buildDepError "template-haskell"))
(hsPkgs."ghci" or (errorHandler.buildDepError "ghci"))
]
else [
(hsPkgs."template-haskell-ghcjs" or (errorHandler.buildDepError "template-haskell-ghcjs"))
(hsPkgs."ghci-ghcjs" or (errorHandler.buildDepError "ghci-ghcjs"))
])) ++ (if system.isWindows
then [ (hsPkgs."Win32" or (errorHandler.buildDepError "Win32")) ]
else [
(hsPkgs."unix" or (errorHandler.buildDepError "unix"))
] ++ (pkgs.lib).optional (flags.terminfo) (hsPkgs."terminfo" or (errorHandler.buildDepError "terminfo")));
build-tools = [
(hsPkgs.buildPackages.happy.components.exes.happy or (pkgs.buildPackages.happy or (errorHandler.buildToolDepError "happy:happy")))
];
buildable = true;
modules = [
"Paths_ghcjs"
"GhcPrelude"
"Gen2/Generator"
"Gen2/Profiling"
"Gen2/Floater"
@ -146,22 +203,514 @@
"Compiler/Plugins"
"Compiler/Program"
"Compiler/GhcjsProgram"
"Compiler/Platform"
"Compiler/Settings"
"Compiler/Utils"
"Compiler/Variants"
"Compiler/JMacro"
"Compiler/JMacro/Base"
"Compiler/JMacro/Lens"
"Compiler/JMacro/QQ"
"Compiler/JMacro/ParseTH"
"Compiler/JMacro/QQ"
"Compiler/JMacro/Util"
"Compiler/JMacro/Combinators"
"Compiler/JMacro/Symbols"
"GHCJS"
"GHCJS/Prim/TH/Eval"
"GHCJS/Prim/TH/Serialized"
"GHCJS/Prim/TH/Types"
"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 = [
"ghc/compiler/parser/cutils.c"
"ghc/compiler/cbits/genSym.c"
];
hsSourceDirs = [
"lib/ghcjs-th"
"src"
"lib/ghc-api-ghcjs/autogen"
"ghc/compiler/backpack"
"ghc/compiler/basicTypes"
"ghc/compiler/cmm"
"ghc/compiler/codeGen"
"ghc/compiler/coreSyn"
"ghc/compiler/deSugar"
"ghc/compiler/ghci"
"ghc/compiler/hsSyn"
"ghc/compiler/iface"
"ghc/compiler/llvmGen"
"ghc/compiler/main"
"ghc/compiler/nativeGen"
"ghc/compiler/parser"
"ghc/compiler/prelude"
"ghc/compiler/profiling"
"ghc/compiler/rename"
"ghc/compiler/simplCore"
"ghc/compiler/simplStg"
"ghc/compiler/specialise"
"ghc/compiler/stgSyn"
"ghc/compiler/stranal"
"ghc/compiler/typecheck"
"ghc/compiler/types"
"ghc/compiler/utils"
"lib/ghc-api-ghcjs/autogen"
] ++ (if system.isWindows
then [ "src-platform/windows" ]
else [ "src-platform/unix" ]);
includeDirs = [
"ghc/compiler"
"ghc/compiler/parser"
"ghc/compiler/utils"
"lib/ghc-api-ghcjs/includes"
"lib/ghc-api-ghcjs/autogen"
"ghc/includes"
];
hsSourceDirs = [ "src" ];
includeDirs = [ "include" ];
};
exes = {
"ghcjs" = {
"private-ghcjs-ghcjs" = {
depends = [
(hsPkgs."base" or (errorHandler.buildDepError "base"))
(hsPkgs."ghcjs" or (errorHandler.buildDepError "ghcjs"))
@ -170,39 +719,7 @@
hsSourceDirs = [ "src-bin" ];
mainPath = [ "Main.hs" ];
};
"haddock-ghcjs" = {
depends = [
(hsPkgs."ghc-api-ghcjs" or (errorHandler.buildDepError "ghc-api-ghcjs"))
(hsPkgs."haddock-api-ghcjs" or (errorHandler.buildDepError "haddock-api-ghcjs"))
(hsPkgs."base" or (errorHandler.buildDepError "base"))
(hsPkgs."process" or (errorHandler.buildDepError "process"))
(hsPkgs."transformers" or (errorHandler.buildDepError "transformers"))
(hsPkgs."transformers-compat" or (errorHandler.buildDepError "transformers-compat"))
(hsPkgs."containers" or (errorHandler.buildDepError "containers"))
(hsPkgs."directory" or (errorHandler.buildDepError "directory"))
(hsPkgs."filepath" or (errorHandler.buildDepError "filepath"))
(hsPkgs."ghcjs" or (errorHandler.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 (errorHandler.buildDepError "base"))
(hsPkgs."ghcjs" or (errorHandler.buildDepError "ghcjs"))
(hsPkgs."process" or (errorHandler.buildDepError "process"))
];
buildable = true;
hsSourceDirs = [ "src-bin" ];
mainPath = [
"Hsc2Hs.hs"
] ++ (pkgs.lib).optional (system.isWindows) "";
};
"ghcjs-pkg" = {
"private-ghcjs-ghcjs-pkg" = {
depends = [
(hsPkgs."ghcjs" or (errorHandler.buildDepError "ghcjs"))
(hsPkgs."base" or (errorHandler.buildDepError "base"))
@ -251,13 +768,12 @@
(hsPkgs."unix-compat" or (errorHandler.buildDepError "unix-compat"))
(hsPkgs."executable-path" or (errorHandler.buildDepError "executable-path"))
];
buildable = if flags.compiler-only then false else true;
buildable = true;
modules = [ "Paths_ghcjs" ];
hsSourceDirs = [ "src-bin" ];
mainPath = ([
"Boot.hs"
] ++ (pkgs.lib).optional (flags.compiler-only) "") ++ (pkgs.lib).optional (system.isWindows) "";
mainPath = [ "Boot.hs" ] ++ (pkgs.lib).optional (system.isWindows) "";
};
"ghcjs-run" = {
"private-ghcjs-run" = {
depends = [
(hsPkgs."base" or (errorHandler.buildDepError "base"))
(hsPkgs."directory" or (errorHandler.buildDepError "directory"))
@ -270,11 +786,151 @@
"Run.hs"
] ++ (pkgs.lib).optional (flags.compiler-only) "") ++ (pkgs.lib).optional (system.isWindows) "";
};
"ghcjs-dumparchive" = {
"private-ghcjs-wrapper" = {
buildable = if flags.compiler-only || !system.isWindows
then false
else true;
cSources = [
"ghc/driver/utils/getLocation.c"
"ghc/driver/utils/cwrapper.c"
"utils/wrapper/getline.c"
];
hsSourceDirs = [ "utils/wrapper" ];
includeDirs = [ "ghc/driver/utils" ];
includes = [
"ghc/driver/utils/cwrapper.h"
"ghc/driver/utils/getLocation.h"
"utils/wrapper/getline.h"
];
mainPath = [
"wrapper.c"
] ++ (pkgs.lib).optional (flags.compiler-only || !system.isWindows) "";
};
"private-ghcjs-unlit" = {
buildable = if flags.compiler-only then false else true;
cSources = [ "ghc/utils/unlit/fs.c" ];
hsSourceDirs = [ "ghc/utils/unlit" ];
includes = [ "ghc/utils/unlit/fs.h" ];
mainPath = [
"unlit.c"
] ++ (pkgs.lib).optional (flags.compiler-only) "";
};
"private-ghcjs-touchy" = {
buildable = if flags.compiler-only || !system.isWindows
then false
else true;
hsSourceDirs = [ "ghc/utils/touchy" ];
mainPath = [
"touchy.c"
] ++ (pkgs.lib).optional (flags.compiler-only || !system.isWindows) "";
};
"private-ghcjs-hsc2hs" = {
depends = [
(hsPkgs."base" or (errorHandler.buildDepError "base"))
(hsPkgs."containers" or (errorHandler.buildDepError "containers"))
(hsPkgs."directory" or (errorHandler.buildDepError "directory"))
(hsPkgs."filepath" or (errorHandler.buildDepError "filepath"))
(hsPkgs."process" or (errorHandler.buildDepError "process"))
];
buildable = if flags.compiler-only then false else true;
modules = [
"C"
"Common"
"CrossCodegen"
"DirectCodegen"
"Flags"
"HSCParser"
"ATTParser"
"UtilsCodegen"
"Compat/ResponseFile"
"Paths_ghcjs"
];
hsSourceDirs = [ "ghc/utils/hsc2hs" ];
mainPath = [
"Main.hs"
] ++ (pkgs.lib).optional (flags.compiler-only) "";
};
"private-ghcjs-haddock" = {
depends = [
(hsPkgs."base" or (errorHandler.buildDepError "base"))
] ++ (pkgs.lib).optionals true [
(hsPkgs."filepath" or (errorHandler.buildDepError "filepath"))
(hsPkgs."directory" or (errorHandler.buildDepError "directory"))
(hsPkgs."containers" or (errorHandler.buildDepError "containers"))
(hsPkgs."deepseq" or (errorHandler.buildDepError "deepseq"))
(hsPkgs."array" or (errorHandler.buildDepError "array"))
(hsPkgs."xhtml" or (errorHandler.buildDepError "xhtml"))
(hsPkgs."Cabal" or (errorHandler.buildDepError "Cabal"))
(hsPkgs."ghc-boot" or (errorHandler.buildDepError "ghc-boot"))
(hsPkgs."ghcjs" or (errorHandler.buildDepError "ghcjs"))
(hsPkgs."bytestring" or (errorHandler.buildDepError "bytestring"))
(hsPkgs."parsec" or (errorHandler.buildDepError "parsec"))
(hsPkgs."text" or (errorHandler.buildDepError "text"))
(hsPkgs."transformers" or (errorHandler.buildDepError "transformers"))
];
buildable = if flags.compiler-only then false else true;
modules = (pkgs.lib).optionals true [
"Documentation/Haddock/Parser"
"Documentation/Haddock/Parser/Monad"
"Documentation/Haddock/Types"
"Documentation/Haddock/Doc"
"Documentation/Haddock/Utf8"
"Documentation/Haddock/Parser/Util"
"Documentation/Haddock/Markup"
"Documentation/Haddock"
"Haddock"
"Haddock/Interface"
"Haddock/Interface/Json"
"Haddock/Interface/Rename"
"Haddock/Interface/Create"
"Haddock/Interface/AttachInstances"
"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_ghcjs"
];
hsSourceDirs = [ "src-bin" ] ++ (pkgs.lib).optionals true [
"ghc/utils/haddock/haddock-api/src"
"ghc/utils/haddock/haddock-library/src"
];
mainPath = ([
"HaddockDriver.hs"
] ++ (pkgs.lib).optional (flags.compiler-only) "") ++ (pkgs.lib).optional true "";
};
"private-ghcjs-ghcjs-dumparchive" = {
depends = [
(hsPkgs."base" or (errorHandler.buildDepError "base"))
(hsPkgs."text" or (errorHandler.buildDepError "text"))
(hsPkgs."ghc-api-ghcjs" or (errorHandler.buildDepError "ghc-api-ghcjs"))
(hsPkgs."ghcjs" or (errorHandler.buildDepError "ghcjs"))
(hsPkgs."bytestring" or (errorHandler.buildDepError "bytestring"))
(hsPkgs."filepath" or (errorHandler.buildDepError "filepath"))

View File

@ -1,184 +0,0 @@
{ system
, compiler
, flags
, pkgs
, hsPkgs
, pkgconfPkgs
, errorHandler
, config
, ... }:
{
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 (errorHandler.buildDepError "base"))
(hsPkgs."Cabal" or (errorHandler.buildDepError "Cabal"))
(hsPkgs."ghc-api-ghcjs" or (errorHandler.buildDepError "ghc-api-ghcjs"))
(hsPkgs."ghc-paths" or (errorHandler.buildDepError "ghc-paths"))
(hsPkgs."haddock-library-ghcjs" or (errorHandler.buildDepError "haddock-library-ghcjs"))
(hsPkgs."xhtml" or (errorHandler.buildDepError "xhtml"))
(hsPkgs."array" or (errorHandler.buildDepError "array"))
(hsPkgs."bytestring" or (errorHandler.buildDepError "bytestring"))
(hsPkgs."containers" or (errorHandler.buildDepError "containers"))
(hsPkgs."deepseq" or (errorHandler.buildDepError "deepseq"))
(hsPkgs."directory" or (errorHandler.buildDepError "directory"))
(hsPkgs."filepath" or (errorHandler.buildDepError "filepath"))
(hsPkgs."ghc-boot" or (errorHandler.buildDepError "ghc-boot"))
(hsPkgs."transformers" or (errorHandler.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 (errorHandler.buildDepError "Cabal"))
(hsPkgs."ghc-api-ghcjs" or (errorHandler.buildDepError "ghc-api-ghcjs"))
(hsPkgs."ghc-paths" or (errorHandler.buildDepError "ghc-paths"))
(hsPkgs."haddock-library-ghcjs" or (errorHandler.buildDepError "haddock-library-ghcjs"))
(hsPkgs."xhtml" or (errorHandler.buildDepError "xhtml"))
(hsPkgs."hspec" or (errorHandler.buildDepError "hspec"))
(hsPkgs."QuickCheck" or (errorHandler.buildDepError "QuickCheck"))
(hsPkgs."base" or (errorHandler.buildDepError "base"))
(hsPkgs."array" or (errorHandler.buildDepError "array"))
(hsPkgs."bytestring" or (errorHandler.buildDepError "bytestring"))
(hsPkgs."containers" or (errorHandler.buildDepError "containers"))
(hsPkgs."deepseq" or (errorHandler.buildDepError "deepseq"))
(hsPkgs."directory" or (errorHandler.buildDepError "directory"))
(hsPkgs."filepath" or (errorHandler.buildDepError "filepath"))
(hsPkgs."ghc-boot" or (errorHandler.buildDepError "ghc-boot"))
(hsPkgs."transformers" or (errorHandler.buildDepError "transformers"))
];
build-tools = [
(hsPkgs.buildPackages.hspec-discover.components.exes.hspec-discover or (pkgs.buildPackages.hspec-discover or (errorHandler.buildToolDepError "hspec-discover: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; }

View File

@ -69,6 +69,7 @@
"zlib".flags.pkg-config = false;
"rts".revision = (((hackage."rts")."1.0").revisions).default;
"easy-file".revision = (((hackage."easy-file")."0.2.2").revisions).default;
"ghci".revision = (((hackage."ghci")."8.6.5").revisions).default;
"th-expand-syns".revision = (((hackage."th-expand-syns")."0.4.6.0").revisions).default;
"regex-posix".revision = (((hackage."regex-posix")."0.96.0.0").revisions).default;
"regex-posix".flags._regex-posix-clib = false;
@ -82,8 +83,6 @@
"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;
@ -128,6 +127,7 @@
"websockets".flags.example = false;
"conduit".revision = (((hackage."conduit")."1.3.3").revisions).default;
"constraints".revision = (((hackage."constraints")."0.12").revisions).default;
"ghc-compact".revision = (((hackage."ghc-compact")."0.1.0.0").revisions).default;
"semigroups".revision = (((hackage."semigroups")."0.19.1").revisions).default;
"semigroups".flags.bytestring = true;
"semigroups".flags.unordered-containers = true;
@ -150,11 +150,9 @@
"hsc2hs".revision = (((hackage."hsc2hs")."0.68.7").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".revision = (((hackage."yaml")."0.11.5.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.6").revisions).default;
"transformers-compat".flags.five = false;
"transformers-compat".flags.generic-deriving = true;
@ -303,8 +301,11 @@
"kan-extensions".revision = (((hackage."kan-extensions")."5.2.1").revisions).default;
"wai-logger".revision = (((hackage."wai-logger")."2.3.6").revisions).default;
"th-lift".revision = (((hackage."th-lift")."0.8.2").revisions).default;
"libyaml".revision = (((hackage."libyaml")."0.1.2").revisions).default;
"libyaml".flags.system-libyaml = false;
"libyaml".flags.no-unicode = false;
"resourcet".revision = (((hackage."resourcet")."1.2.4.2").revisions).default;
"webdriver".revision = (((hackage."webdriver")."0.8.5").revisions).default;
"webdriver".revision = (((hackage."webdriver")."0.9.0.1").revisions).default;
"webdriver".flags.network-uri = true;
"webdriver".flags.developer = false;
"pretty".revision = (((hackage."pretty")."1.1.3.6").revisions).default;
@ -347,7 +348,9 @@
"ghc-heap" = "8.6.5";
"mtl" = "2.2.2";
"rts" = "1.0";
"ghci" = "8.6.5";
"deepseq" = "1.4.4.0";
"ghc-compact" = "0.1.0.0";
"parsec" = "3.1.13.0";
"directory" = "1.3.3.0";
"template-haskell" = "2.14.0.0";
@ -375,10 +378,8 @@
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;
};
};
@ -390,28 +391,22 @@
"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;
"stage1" = 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;
"stage2" = lib.mkOverride 900 true;
"debug" = lib.mkOverride 900 false;
"stage3" = lib.mkOverride 900 false;
"use-host-template-haskell" = lib.mkOverride 900 true;
"disable-optimizer" = lib.mkOverride 900 false;
"ghci" = lib.mkOverride 900 true;
"terminfo" = lib.mkOverride 900 true;
};
};
"haddock-api-ghcjs" = { flags = {}; };
"template-haskell-ghcjs" = { flags = {}; };
};
})

View File

@ -463,9 +463,10 @@ in {
ghc865 = let buildGHC = final.buildPackages.haskell-nix.compiler.ghc865;
in let ghcjs865 = final.callPackage ../compiler/ghcjs/ghcjs.nix {
ghcjsSrcJson = ../compiler/ghcjs/ghcjs-src.json;
ghcjsVersion = "8.6.0.1";
ghcjsVersion = "8.6.0.0.10";
ghc = buildGHC;
}; in let targetPrefix = "js-unknown-ghcjs-"; in final.runCommand "${targetPrefix}ghc-8.6.5" {
nativeBuildInputs = [ final.xorg.lndir ];
passthru = {
inherit targetPrefix;
version = "8.6.5";
@ -476,9 +477,7 @@ in {
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=${final.buildPackages.stdenv.cc}/bin/cc"
"--with-gcc=${final.buildPackages.emscripten}/bin/emcc"
];
};
# note: we'll use the buildGHCs `hsc2hs`, ghcjss wrapper just horribly breaks in this nix setup.
@ -489,9 +488,9 @@ in {
ln -s ${ghcjs865}/bin/ghcjs-pkg ${targetPrefix}ghc-pkg
ln -s ${buildGHC}/bin/hsc2hs ${targetPrefix}hsc2hs
cd ..
mkdir lib
mkdir -p lib/${targetPrefix}ghc-8.6.5
cd lib
cp -R ${ghcjs865}/lib/ghcjs-8.6.5 ${targetPrefix}ghc-8.6.5
lndir ${ghcjs865}/lib ${targetPrefix}ghc-8.6.5
'' + installDeps targetPrefix);
ghc883 = let buildGHC = final.buildPackages.haskell-nix.compiler.ghc883;
in let ghcjs883 = final.callPackage ../compiler/ghcjs/ghcjs.nix {
@ -501,6 +500,7 @@ in {
ghcVersion = "8.8.3";
compiler-nix-name = "ghc883";
}; in let targetPrefix = "js-unknown-ghcjs-"; in final.runCommand "${targetPrefix}ghc-8.8.3" {
nativeBuildInputs = [ final.xorg.lndir ];
passthru = {
inherit targetPrefix;
version = "8.8.3";
@ -511,9 +511,7 @@ in {
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=${final.buildPackages.stdenv.cc}/bin/cc"
"--with-gcc=${final.buildPackages.emscripten}/bin/emcc"
];
};
# note: we'll use the buildGHCs `hsc2hs`, ghcjss wrapper just horribly breaks in this nix setup.
@ -524,9 +522,9 @@ in {
ln -s ${ghcjs883}/bin/ghcjs-pkg ${targetPrefix}ghc-pkg
ln -s ${buildGHC}/bin/hsc2hs ${targetPrefix}hsc2hs
cd ..
mkdir lib
mkdir -p lib/${targetPrefix}ghc-8.8.3
cd lib
cp -R ${ghcjs883}/lib ${targetPrefix}ghc-8.8.3
lndir ${ghcjs883}/lib ${targetPrefix}ghc-8.8.3
'' + installDeps targetPrefix);
ghc884 = let buildGHC = final.buildPackages.haskell-nix.compiler.ghc884;
in let ghcjs884 = final.callPackage ../compiler/ghcjs/ghcjs.nix {
@ -536,6 +534,7 @@ in {
ghcVersion = "8.8.4";
compiler-nix-name = "ghc884";
}; in let targetPrefix = "js-unknown-ghcjs-"; in final.runCommand "${targetPrefix}ghc-8.8.4" {
nativeBuildInputs = [ final.xorg.lndir ];
passthru = {
inherit targetPrefix;
version = "8.8.4";
@ -546,9 +545,7 @@ in {
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=${final.buildPackages.stdenv.cc}/bin/cc"
"--with-gcc=${final.buildPackages.emscripten}/bin/emcc"
];
};
# note: we'll use the buildGHCs `hsc2hs`, ghcjss wrapper just horribly breaks in this nix setup.
@ -559,9 +556,9 @@ in {
ln -s ${ghcjs884}/bin/ghcjs-pkg ${targetPrefix}ghc-pkg
ln -s ${buildGHC}/bin/hsc2hs ${targetPrefix}hsc2hs
cd ..
mkdir lib
mkdir -p lib/${targetPrefix}ghc-8.8.4
cd lib
cp -R ${ghcjs884}/lib ${targetPrefix}ghc-8.8.4
lndir ${ghcjs884}/lib ${targetPrefix}ghc-8.8.4
'' + installDeps targetPrefix);
}))));

View File

@ -1,8 +1,8 @@
final: prev: {
final: prev: let
# GHCJS currently requires an old version of emscripten. Overriding to build the older version doesn't
# work straightforwardly on 20.09 anymore, so we use an ugly hack and pull emscripten from 20.03.
# In future, we'll just fix GHCJS to work with the newer emscripten.
inherit (import final.haskell-nix.sources.nixpkgs-2003 {
pkgs-2003 = import final.haskell-nix.sources.nixpkgs-2003 {
system = final.stdenv.system;
overlays = [(final: prev: with final; {
binaryen = callPackage ./emscripten/binaryen.nix {};
@ -23,5 +23,33 @@ final: prev: {
emscriptenStdenv = stdenv // { mkDerivation = buildEmscriptenPackage; };
})];
}) emscripten emscriptenupstream;
};
in {
# nixpkgs does not have an emsdk, this derivation uses symlinks to make something
# that matches enought for `ghcjs-boot` to work
emscriptenupstream = pkgs-2003.emscriptenupstream;
emscripten = (pkgs-2003.emscripten.override {
emscriptenBackend = pkgs-2003.emscriptenupstream;
}).overrideAttrs (attrs: {
buildInputs = attrs.buildInputs or [] ++ [ final.makeWrapper ];
buildCommand = attrs.buildCommand or "" + ''
for f in $(find $out/bin/ -type l -executable ! -name "*.py"); do
if [[ -e "$f.py" ]]; then
rm "$f"
echo '#!'${final.runtimeShell} > "$f"
echo 'if [[ ! -d $HOME ]]; then' >> "$f"
echo ' export HOME=$(mktemp -d)' >> "$f"
echo 'fi' >> "$f"
echo 'exec "'$f.py'" "$@"' >> "$f"
chmod +x "$f"
fi
done
'';
});
emsdk = final.linkFarm "emsdk" [
{ name = "upstream/bin"; path = final.emscriptenupstream + "/bin"; }
{ name = "upstream/emscripten"; path = final.emscripten + "/bin"; }
{ name = "share"; path = final.emscripten + "/share"; }
];
}

4
release-linux-only.nix Normal file
View File

@ -0,0 +1,4 @@
{ supportedSystems ? [ "x86_64-linux" ]
, ifdLevel ? 3
, checkMaterialization ? false }:
import ./release.nix { inherit supportedSystems ifdLevel checkMaterialization; }

View File

@ -1,5 +0,0 @@
{-# LANGUAGE CPP #-}
module Main where
main :: IO ()
main = putStr $ show __GLASGOW_HASKELL__

View File

@ -1,11 +0,0 @@
cabal-version: >=1.10
name: compiler-nix-name
version: 0.1.0.0
license: PublicDomain
author: Hamish Mackenzie
build-type: Simple
executable compiler-nix-name
main-is: Main.hs
build-depends: base >=4.13 && <4.14
default-language: Haskell2010

View File

@ -1,41 +0,0 @@
{ stdenv, lib, haskell-nix, recurseIntoAttrs, testSrc }:
with lib;
let
project = haskell-nix.cabalProject' {
src = testSrc "compiler-nix-name";
compiler-nix-name = "ghc884";
};
packages = project.hsPkgs;
compiler-nix-name =
packages.compiler-nix-name.components.exes.compiler-nix-name;
in recurseIntoAttrs {
ifdInputs = {
inherit (project) plan-nix;
};
run = stdenv.mkDerivation {
name = "compiler-nix-name-test";
buildCommand = ''
exe="${compiler-nix-name.exePath}"
ver="$(${toString compiler-nix-name.config.testWrapper} $exe)"
if [[ "$ver" != "808" ]]; then
echo "Unexpected GHC version (expected 808, but got $ver)" >& 2
false
else
touch $out
fi
'';
meta.platforms = platforms.all;
passthru = {
# Used for debugging with nix repl
inherit project packages;
};
};
}

View File

@ -180,7 +180,6 @@ let
exe-only = callTest ./exe-only { inherit util compiler-nix-name; };
stack-source-repo = callTest ./stack-source-repo {};
extra-hackage = callTest ./extra-hackage { inherit compiler-nix-name; };
compiler-nix-name = callTest ./compiler-nix-name {};
hls-cabal = callTest ./haskell-language-server/cabal.nix { inherit compiler-nix-name; };
hls-stack = callTest ./haskell-language-server/stack.nix { inherit compiler-nix-name; };
cabal-hpack = callTest ./cabal-hpack { inherit util compiler-nix-name; };