Update ghc 8.4.4 based tools to ghc 8.6.5 (#618)

Although the default ghc used by haskell.nix is ghc 8.6.5 many of
the tools used in haskell.nix are still built with the boot compiler
ghc 8.4.4.  These include

  * haskell-nix.cabal-install
  * haskell-nix.alex
  * haskell-nix.happy

This change updates those to ghc 8.6.5 and includes materializations
for the new versions.

When cabal-install is built it is careful to disable materialization
checks on the version of itself used during the build to avoid
infinite recursion.

There was a version of nix-tools built with the boot ghc which was
only used when `checkMaterialization = true`.  It was used for
the boot versions of alex, happy and hscolour.  These have been update
to use the default (ghc 8.6.5) version of nix-tools and
checkMaterialization is forced off when they are being used to build
ghc.  This means the materialization will only be checked for these
when they are built independently (they are included in the test set
via haskellNixRoots).

Three new arguments are added to `default.nix`:

* `defaultCompilerNixName` if not specified "ghc865" is used
* `checkMaterialization` makes it easier to switch on materialization checks
* `system` defaults to `builtins.currentSystem`

This change also moves the work needed for hydra eval to the eval
system using a new `evalPackages` feature.  This includes:

* Fetching from git with `fetchgit`
* Building scripts with `runCommand` and `writeTextFile`
* `git ls-files` in `cleanGit`
* running `cabal v2-configure`
* copying materialized files (we are not sure why this is necessary but
  if we do not `cp -r` the files nix will not load them on hydra)

Reduce size of `make-config-files.nix` strings by around 80%.
These are unlikely to be the cause of hydra eval time memory
issues in the GB range, but were still quite large (around 10MB for the
`cabal-simple` test case).

There was issue causing excessive builds of the `git` package when
cross compiling.  Gory details are a comment in `lib/defaults.nix`
but in short if you use `git` you need an extra `.buildPackages`
one is not enough because it depends on `gdb` and that will
be different in `buildPackages` compared to
`buildPackages.buildPackages`.

Adds missing materialization files for ghc 8.4.4 (only needed
when `checkMaterialization` is on because of other
materialiazations, but good to have).
This commit is contained in:
Hamish Mackenzie 2020-05-21 11:31:26 +12:00 committed by GitHub
parent 78bc7251d6
commit 099d830db1
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
52 changed files with 6255 additions and 435 deletions

1
.gitattributes vendored
View File

@ -4,3 +4,4 @@
nix-tools/.plan.nix/*.nix linguist-generated=true
nix-tools/pkgs.nix linguist-generated=true
.stack-to-nix.cache linguist-generated=true
materialized/**/* linguist-generated=true

View File

@ -33,28 +33,6 @@ let
dep.components.library # Regular package dependency
or dep; # or a sublib
catPkgExactDep = p: ''
cat ${p}/exactDep/configure-flags >> $out/configure-flags
cat ${p}/exactDep/cabal.config >> $out/cabal.config
'';
catGhcPkgExactDep = p: ''
if [ -e ${ghc}/exactDeps/${p} ]; then
cat ${ghc}/exactDeps/${p}/configure-flags >> $out/configure-flags
cat ${ghc}/exactDeps/${p}/cabal.config >> $out/cabal.config
fi
'';
catPkgEnvDep = p: ''
cat ${p}/envDep >> $out/ghc-environment
'';
catGhcPkgEnvDep = p: ''
if [ -e ${ghc}/envDeps/${p} ]; then
cat ${ghc}/envDeps/${p} >> $out/ghc-environment
fi
'';
# Work our suitable packageCfgDir subdirectory
isGhcjs = ghc.isGhcjs or false;
ghcCommand' = if isGhcjs then "ghcjs" else "ghc";
@ -94,10 +72,13 @@ in { identifier, component, fullName, flags ? {}, needsProfiling ? false }:
"extra-framework-dirs" = map (p: "${p}/Library/Frameworks") component.frameworks;
})}
# 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/${packageCfgDir} \;
'') nonReinstallablePkgs}
ghc=${ghc}
${ # Copy over the nonReinstallablePkgs from the global package db.
''
for p in ${lib.concatStringsSep " " nonReinstallablePkgs}; do
find $ghc/lib/${ghc.name}/package.conf.d -name $p'*.conf' -exec cp -f {} $out/${packageCfgDir} \;
done
''}
for l in "${cfgFiles}"; do
if [ -n "$l" ]; then
@ -110,29 +91,49 @@ in { identifier, component, fullName, flags ? {}, needsProfiling ? false }:
fi
done
# Note: we pass `clear` first to ensure that we never consult the implicit global package db.
${flagsAndConfig "package-db" ["clear" "$out/${packageCfgDir}"]}
${ # Note: we pass `clear` first to ensure that we never consult the implicit global package db.
flagsAndConfig "package-db" ["clear" "$out/${packageCfgDir}"]
}
echo ${lib.concatStringsSep " " (lib.mapAttrsToList (fname: val: "--flags=${lib.optionalString (!val) "-" + fname}") flags)} >> $out/configure-flags
# Provide a cabal config without remote package repositories
echo "write-ghc-environment-files: never" >> $out/cabal.config
${ # Provide a cabal config without remote package repositories
''
echo "write-ghc-environment-files: never" >> $out/cabal.config
''}
# Provide a GHC environment file
cat > $out/ghc-environment <<EOF
package-db $out/${packageCfgDir}
EOF
${ # Provide a GHC environment file
''
cat > $out/ghc-environment <<EOF
package-db $out/${packageCfgDir}
EOF
''}
${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
''}
for p in ${lib.concatStringsSep " " libDeps}; do
cat $p/envDep >> $out/ghc-environment
${ lib.optionalString component.doExactConfig ''
cat $p/exactDep/configure-flags >> $out/configure-flags
cat $p/exactDep/cabal.config >> $out/cabal.config
''}
done
for p in ${lib.concatStringsSep " " (lib.remove "ghc" nonReinstallablePkgs)}; do
if [ -e $ghc/envDeps/$p ]; then
cat $ghc/envDeps/$p >> $out/ghc-environment
fi
done
'' + 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 libDeps}
${lib.concatMapStringsSep "\n" catGhcPkgExactDep nonReinstallablePkgs}
for p in ${lib.concatStringsSep " " nonReinstallablePkgs}; do
if [ -e $ghc/exactDeps/$p ]; then
cat $ghc/exactDeps/$p/configure-flags >> $out/configure-flags
cat $ghc/exactDeps/$p/cabal.config >> $out/cabal.config
fi
done
''
# This code originates in the `generic-builder.nix` from nixpkgs. However GHC has been fixed
# to drop unused libraries referneced from libraries; and this patch is usually included in the
@ -156,12 +157,13 @@ in { identifier, component, fullName, flags ? {}, needsProfiling ? false }:
# '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:
#
# Create a local directory with symlinks of the *.dylib (macOS shared
# libraries) from all the dependencies.
+ lib.optionalString stdenv.isDarwin ''
local dynamicLinksDir="$out/lib/links"
mkdir -p $dynamicLinksDir
# Enumerate dynamic-library-dirs with ''${pkgroot} expanded.

2
ci.nix
View File

@ -6,7 +6,7 @@
, restrictEval ? false }:
let
inherit (import ./ci-lib.nix) dimension platformFilterGeneric filterAttrsOnlyRecursive;
inherit (import ./default.nix {}) sources nixpkgsArgs;
inherit (import ./default.nix { checkMaterialization = false; }) sources nixpkgsArgs;
nixpkgsVersions = {
"R1909" = "nixpkgs-1909";
"R2003" = "nixpkgs-2003";

View File

@ -1,26 +1,50 @@
let haskellNix = rec {
let haskellNix = {
checkMaterialization ? false, # Allows us to easily switch on materialization checking
defaultCompilerNixName ? null, # Quick way to override the default compiler e.g. "ghc883"
system ? builtins.currentSystem,
... }: rec {
sources = {
inherit (import ./nixpkgs/default.nix) nixpkgs-1909 nixpkgs-2003 nixpkgs-default;
};
config = import ./config.nix;
overlays = [ allOverlays.combined ];
overlays = [ allOverlays.combined ] ++ (
if checkMaterialization == true
then [(
final: prev: {
haskell-nix = prev.haskell-nix // {
checkMaterialization = true;
};
}
)]
else []
) ++ (
if defaultCompilerNixName != null
then [(
final: prev: {
haskell-nix = prev.haskell-nix // {
inherit defaultCompilerNixName;
};
}
)]
else []
);
allOverlays = import ./overlays;
nixpkgsArgs = { inherit config overlays; };
nixpkgsArgs = { inherit config overlays system; };
pkgs = import sources.nixpkgs-default nixpkgsArgs;
};
haskellNixV1 = haskellNix.nixpkgsArgs;
haskellNixV1 = (haskellNix {}).nixpkgsArgs;
haskellNixV2 = haskellNix;
v1DeprecationMessage = "Version 1 is deprecated: use version 2 (nixpkgs arguments are available as the `nixpkgsArgs` attribute of version 2)";
# If no arguments, then you get V1
# I'd like to make importing directly issue a warning, but I couldn't figure out a way to make it happen
in haskellNixV1 // {
__functor = _: { version ? 2 }:
__functor = _: { version ? 2, ... }@args:
if version == 1
then builtins.trace v1DeprecationMessage haskellNixV1
else if version == 2
then haskellNixV2
then haskellNixV2 args
else builtins.throw ("haskell.nix: unknown version: " + (builtins.toString version));
}

View File

@ -4,7 +4,10 @@
edition = 201909;
outputs = { self }: {
overlay = self.overlays.combined;
# Using the eval-on-build version here as the plan is that
# `builtins.currentSystem` will not be supported in flakes.
# https://github.com/NixOS/rfcs/pull/49/files#diff-a5a138ca225433534de8d260f225fe31R429
overlay = self.overlays.combined-eval-on-build;
overlays = import ./overlays;
config = import ./config.nix;
sources = import ./nixpkgs;

View File

@ -28,10 +28,6 @@
, extra-hackage-tarballs ? []
, ...
}@args:
# cabal-install versions before 2.4 will generate insufficient plan information.
assert (if (builtins.compareVersions cabal-install.version "2.4.0.0") < 0
then throw "cabal-install (current version: ${cabal-install.version}) needs to be at least 2.4 for plan-to-nix to work without cabal-to-nix"
else true);
let
forName = pkgs.lib.optionalString (name != null) (" for " + name);
@ -265,7 +261,7 @@ let
'');
# Dummy `ghc` that uses the captured output
dummy-ghc = pkgs.writeTextFile {
dummy-ghc = pkgs.evalPackages.writeTextFile {
name = "dummy-" + ghc.name;
executable = true;
destination = "/bin/${ghc.targetPrefix}ghc";
@ -282,7 +278,7 @@ let
};
# Dummy `ghc-pkg` that uses the captured output
dummy-ghc-pkg = pkgs.writeTextFile {
dummy-ghc-pkg = pkgs.evalPackages.writeTextFile {
name = "dummy-pkg-" + ghc.name;
executable = true;
destination = "/bin/${ghc.targetPrefix}ghc-pkg";
@ -306,8 +302,8 @@ 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") {
nativeBuildInputs = [ nix-tools dummy-ghc dummy-ghc-pkg hpack cabal-install pkgs.rsync ];
}) (pkgs.evalPackages.runCommand (if name == null then "plan-to-nix-pkgs" else name + "-plan-to-nix-pkgs") {
nativeBuildInputs = [ nix-tools dummy-ghc dummy-ghc-pkg hpack cabal-install pkgs.evalPackages.rsync ];
# 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";
LANG = "en_US.UTF-8";

View File

@ -1,8 +1,32 @@
{ stdenv, lib, haskellLib, runCommand, git, recurseIntoAttrs, srcOnly }:
{ pkgs, stdenv, lib, haskellLib, recurseIntoAttrs, srcOnly }:
with haskellLib;
{
let
# Why `final.evalPackages.buildPackages.git`?
# Why not just final.evalPackages.git?
#
# A problem arises when `evalPackages` is `buildPackages`.i
# As may be the case in a flake.
#
# It turns out `git` depends on `gdb` in a round about way:
# git -> openssh -> libfido2 -> systemd -> python libxml -> Cython -> gdb
# Somewhere in that chain there should perhaps be a `buildPackages` so
# that the `gdb` that is used is not the one for debugging code in
# the `final` (but instead the one for debugging code in
# `final.buildPackages`).
#
# Using `final.buildPackages.git` causes two problems:
#
# * Multiple versions of `git` (and that dependency chain
# to `gdb` are needed when cross compiling).
# * When `gdb` does not exist for `js`, so when cross
# compiling with ghcjs `final.buildPackages.git` fails
# to build at all.
inherit (pkgs.evalPackages.buildPackages) git;
in {
# Within the package components, these are the attribute names of
# nested attrsets.
subComponentTypes = [
@ -181,7 +205,8 @@ with haskellLib;
# Clean git directory based on `git ls-files --recurse-submodules`
cleanGit = import ./clean-git.nix {
inherit lib runCommand git cleanSourceWith;
inherit lib git cleanSourceWith;
inherit (pkgs.evalPackages) runCommand;
};
# Check a test component

View File

@ -0,0 +1,70 @@
{ system
, compiler
, flags
, pkgs
, hsPkgs
, pkgconfPkgs
, errorHandler
, config
, ... }:
{
flags = {};
package = {
specVersion = "1.6";
identifier = { name = "hscolour"; version = "1.24.4"; };
license = "LicenseRef-LGPL";
copyright = "2003-2017 Malcolm Wallace; 2006 Bjorn Bringert";
maintainer = "Malcolm Wallace";
author = "Malcolm Wallace";
homepage = "http://code.haskell.org/~malcolm/hscolour/";
url = "";
synopsis = "Colourise Haskell code.";
description = "hscolour is a small Haskell script to colourise Haskell code. It currently\nhas six output formats:\nANSI terminal codes (optionally XTerm-256colour codes),\nHTML 3.2 with <font> tags,\nHTML 4.01 with CSS,\nHTML 4.01 with CSS and mouseover annotations,\nXHTML 1.0 with inline CSS styling,\nLaTeX,\nand mIRC chat codes.";
buildType = "Simple";
isLocal = true;
detailLevel = "FullDetails";
licenseFiles = [ "LICENCE-LGPL" ];
dataDir = "";
dataFiles = [ "hscolour.css" "data/rgb24-example-.hscolour" ];
extraSrcFiles = [];
extraTmpFiles = [];
extraDocFiles = [];
};
components = {
"library" = {
depends = [
(hsPkgs."base" or (errorHandler.buildDepError "base"))
(hsPkgs."containers" or (errorHandler.buildDepError "containers"))
];
buildable = true;
modules = [
"Language/Haskell/HsColour"
"Language/Haskell/HsColour/ANSI"
"Language/Haskell/HsColour/Anchors"
"Language/Haskell/HsColour/ACSS"
"Language/Haskell/HsColour/CSS"
"Language/Haskell/HsColour/Classify"
"Language/Haskell/HsColour/ColourHighlight"
"Language/Haskell/HsColour/Colourise"
"Language/Haskell/HsColour/General"
"Language/Haskell/HsColour/HTML"
"Language/Haskell/HsColour/InlineCSS"
"Language/Haskell/HsColour/LaTeX"
"Language/Haskell/HsColour/MIRC"
"Language/Haskell/HsColour/Options"
"Language/Haskell/HsColour/Output"
"Language/Haskell/HsColour/TTY"
];
};
exes = {
"HsColour" = {
depends = [
(hsPkgs."base" or (errorHandler.buildDepError "base"))
(hsPkgs."containers" or (errorHandler.buildDepError "containers"))
];
buildable = true;
mainPath = [ "HsColour.hs" ];
};
};
};
} // rec { src = (pkgs.lib).mkDefault ../.; }

View File

@ -0,0 +1,33 @@
{
pkgs = hackage:
{
packages = {
"ghc-prim".revision = (((hackage."ghc-prim")."0.5.2.0").revisions).default;
"rts".revision = (((hackage."rts")."1.0").revisions).default;
"deepseq".revision = (((hackage."deepseq")."1.4.3.0").revisions).default;
"containers".revision = (((hackage."containers")."0.5.11.0").revisions).default;
"base".revision = (((hackage."base")."4.11.1.0").revisions).default;
"array".revision = (((hackage."array")."0.5.2.0").revisions).default;
"integer-gmp".revision = (((hackage."integer-gmp")."1.0.2.0").revisions).default;
};
compiler = {
version = "8.4.4";
nix-name = "ghc844";
packages = {
"ghc-prim" = "0.5.2.0";
"rts" = "1.0";
"deepseq" = "1.4.3.0";
"containers" = "0.5.11.0";
"base" = "4.11.1.0";
"array" = "0.5.2.0";
"integer-gmp" = "1.0.2.0";
};
};
};
extras = hackage:
{ packages = { hscolour = ./.plan.nix/hscolour.nix; }; };
modules = [
({ lib, ... }:
{ packages = { "hscolour" = { flags = {}; }; }; })
];
}

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1 @@
GHC package manager version 8.4.4

View File

@ -0,0 +1,62 @@
[("Project name","The Glorious Glasgow Haskell Compilation System")
,("GCC extra via C opts"," -fwrapv -fno-builtin")
,("C compiler command","clang")
,("C compiler flags"," -fno-stack-protector")
,("C compiler link flags"," ")
,("C compiler supports -no-pie","YES")
,("Haskell CPP command","clang")
,("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","NO")
,("ld supports filelist","YES")
,("ld is GNU ld","NO")
,("ar command","ar")
,("ar flags","qcls")
,("ar supports at file","NO")
,("ranlib command","ranlib")
,("touch command","touch")
,("dllwrap command","/bin/false")
,("windres command","/bin/false")
,("libtool command","libtool")
,("cross compiling","NO")
,("target os","OSDarwin")
,("target arch","ArchX86_64")
,("target word size","8")
,("target has GNU nonexec stack","False")
,("target has .ident directive","True")
,("target has subsections via symbols","True")
,("target has RTS linker","YES")
,("Unregisterised","NO")
,("LLVM llc command","llc")
,("LLVM opt command","opt")
,("LLVM clang command","clang")
,("Project version","8.4.4")
,("Project Git commit id","3bed09b2efd3df678c5d0752d2cdfba20d7c4863")
,("Booter version","8.4.3")
,("Stage","2")
,("Build platform","x86_64-apple-darwin")
,("Host platform","x86_64-apple-darwin")
,("Target platform","x86_64-apple-darwin")
,("Have interpreter","YES")
,("Object splitting supported","NO")
,("Have native code generator","YES")
,("Support SMP","YES")
,("Tables next to code","YES")
,("RTS ways","l debug thr thr_debug thr_l thr_p dyn debug_dyn thr_dyn thr_debug_dyn l_dyn thr_l_dyn")
,("RTS expects libdw","NO")
,("Support dynamic-too","YES")
,("Support parallel --make","YES")
,("Support reexported-modules","YES")
,("Support thinning and renaming package flags","YES")
,("Support Backpack","YES")
,("Requires unified installed package IDs","YES")
,("Uses package keys","YES")
,("Uses unit IDs","YES")
,("Dynamic by default","NO")
,("GHC Dynamic","YES")
,("GHC Profiled","NO")
,("Leading underscore","YES")
,("Debug on","False")
]

View File

@ -0,0 +1 @@
8.4.4

View File

@ -0,0 +1,235 @@
Haskell98
Haskell2010
Unsafe
Trustworthy
Safe
AllowAmbiguousTypes
NoAllowAmbiguousTypes
AlternativeLayoutRule
NoAlternativeLayoutRule
AlternativeLayoutRuleTransitional
NoAlternativeLayoutRuleTransitional
Arrows
NoArrows
AutoDeriveTypeable
NoAutoDeriveTypeable
BangPatterns
NoBangPatterns
BinaryLiterals
NoBinaryLiterals
CApiFFI
NoCApiFFI
CPP
NoCPP
ConstrainedClassMethods
NoConstrainedClassMethods
ConstraintKinds
NoConstraintKinds
DataKinds
NoDataKinds
DatatypeContexts
NoDatatypeContexts
DefaultSignatures
NoDefaultSignatures
DeriveAnyClass
NoDeriveAnyClass
DeriveDataTypeable
NoDeriveDataTypeable
DeriveFoldable
NoDeriveFoldable
DeriveFunctor
NoDeriveFunctor
DeriveGeneric
NoDeriveGeneric
DeriveLift
NoDeriveLift
DeriveTraversable
NoDeriveTraversable
DerivingStrategies
NoDerivingStrategies
DisambiguateRecordFields
NoDisambiguateRecordFields
DoAndIfThenElse
NoDoAndIfThenElse
DoRec
NoDoRec
DuplicateRecordFields
NoDuplicateRecordFields
EmptyCase
NoEmptyCase
EmptyDataDecls
NoEmptyDataDecls
EmptyDataDeriving
NoEmptyDataDeriving
ExistentialQuantification
NoExistentialQuantification
ExplicitForAll
NoExplicitForAll
ExplicitNamespaces
NoExplicitNamespaces
ExtendedDefaultRules
NoExtendedDefaultRules
FlexibleContexts
NoFlexibleContexts
FlexibleInstances
NoFlexibleInstances
ForeignFunctionInterface
NoForeignFunctionInterface
FunctionalDependencies
NoFunctionalDependencies
GADTSyntax
NoGADTSyntax
GADTs
NoGADTs
GHCForeignImportPrim
NoGHCForeignImportPrim
GeneralizedNewtypeDeriving
NoGeneralizedNewtypeDeriving
ImplicitParams
NoImplicitParams
ImplicitPrelude
NoImplicitPrelude
ImpredicativeTypes
NoImpredicativeTypes
IncoherentInstances
NoIncoherentInstances
TypeFamilyDependencies
NoTypeFamilyDependencies
InstanceSigs
NoInstanceSigs
ApplicativeDo
NoApplicativeDo
InterruptibleFFI
NoInterruptibleFFI
JavaScriptFFI
NoJavaScriptFFI
KindSignatures
NoKindSignatures
LambdaCase
NoLambdaCase
LiberalTypeSynonyms
NoLiberalTypeSynonyms
MagicHash
NoMagicHash
MonadComprehensions
NoMonadComprehensions
MonadFailDesugaring
NoMonadFailDesugaring
MonoLocalBinds
NoMonoLocalBinds
MonoPatBinds
NoMonoPatBinds
MonomorphismRestriction
NoMonomorphismRestriction
MultiParamTypeClasses
NoMultiParamTypeClasses
MultiWayIf
NoMultiWayIf
NPlusKPatterns
NoNPlusKPatterns
NamedFieldPuns
NoNamedFieldPuns
NamedWildCards
NoNamedWildCards
NegativeLiterals
NoNegativeLiterals
HexFloatLiterals
NoHexFloatLiterals
NondecreasingIndentation
NoNondecreasingIndentation
NullaryTypeClasses
NoNullaryTypeClasses
NumDecimals
NoNumDecimals
OverlappingInstances
NoOverlappingInstances
OverloadedLabels
NoOverloadedLabels
OverloadedLists
NoOverloadedLists
OverloadedStrings
NoOverloadedStrings
PackageImports
NoPackageImports
ParallelArrays
NoParallelArrays
ParallelListComp
NoParallelListComp
PartialTypeSignatures
NoPartialTypeSignatures
PatternGuards
NoPatternGuards
PatternSignatures
NoPatternSignatures
PatternSynonyms
NoPatternSynonyms
PolyKinds
NoPolyKinds
PolymorphicComponents
NoPolymorphicComponents
PostfixOperators
NoPostfixOperators
QuasiQuotes
NoQuasiQuotes
Rank2Types
NoRank2Types
RankNTypes
NoRankNTypes
RebindableSyntax
NoRebindableSyntax
RecordPuns
NoRecordPuns
RecordWildCards
NoRecordWildCards
RecursiveDo
NoRecursiveDo
RelaxedLayout
NoRelaxedLayout
RelaxedPolyRec
NoRelaxedPolyRec
RoleAnnotations
NoRoleAnnotations
ScopedTypeVariables
NoScopedTypeVariables
StandaloneDeriving
NoStandaloneDeriving
StaticPointers
NoStaticPointers
Strict
NoStrict
StrictData
NoStrictData
TemplateHaskell
NoTemplateHaskell
TemplateHaskellQuotes
NoTemplateHaskellQuotes
TraditionalRecordSyntax
NoTraditionalRecordSyntax
TransformListComp
NoTransformListComp
TupleSections
NoTupleSections
TypeApplications
NoTypeApplications
TypeInType
NoTypeInType
TypeFamilies
NoTypeFamilies
TypeOperators
NoTypeOperators
TypeSynonymInstances
NoTypeSynonymInstances
UnboxedTuples
NoUnboxedTuples
UnboxedSums
NoUnboxedSums
UndecidableInstances
NoUndecidableInstances
UndecidableSuperClasses
NoUndecidableSuperClasses
UnicodeSyntax
NoUnicodeSyntax
UnliftedFFITypes
NoUnliftedFFITypes
ViewPatterns
NoViewPatterns

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1 @@
GHC package manager version 8.4.4

View File

@ -0,0 +1,62 @@
[("Project name","The Glorious Glasgow Haskell Compilation System")
,("GCC extra via C opts"," -fwrapv -fno-builtin")
,("C compiler command","gcc")
,("C compiler flags"," -fno-stack-protector")
,("C compiler link flags"," ")
,("C compiler supports -no-pie","YES")
,("Haskell CPP command","gcc")
,("Haskell CPP flags","-E -undef -traditional")
,("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 command","ar")
,("ar flags","q")
,("ar supports at file","YES")
,("ranlib command","ranlib")
,("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")
,("target has .ident directive","True")
,("target has subsections via symbols","False")
,("target has RTS linker","YES")
,("Unregisterised","NO")
,("LLVM llc command","llc")
,("LLVM opt command","opt")
,("LLVM clang command","clang")
,("Project version","8.4.4")
,("Project Git commit id","3bed09b2efd3df678c5d0752d2cdfba20d7c4863")
,("Booter version","8.0.2")
,("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")
,("Support SMP","YES")
,("Tables next to code","YES")
,("RTS ways","l debug thr thr_debug thr_l thr_p dyn debug_dyn thr_dyn thr_debug_dyn l_dyn thr_l_dyn")
,("RTS expects libdw","NO")
,("Support dynamic-too","YES")
,("Support parallel --make","YES")
,("Support reexported-modules","YES")
,("Support thinning and renaming package flags","YES")
,("Support Backpack","YES")
,("Requires unified installed package IDs","YES")
,("Uses package keys","YES")
,("Uses unit IDs","YES")
,("Dynamic by default","NO")
,("GHC Dynamic","YES")
,("GHC Profiled","NO")
,("Leading underscore","NO")
,("Debug on","False")
]

View File

@ -0,0 +1 @@
8.4.4

View File

@ -0,0 +1,235 @@
Haskell98
Haskell2010
Unsafe
Trustworthy
Safe
AllowAmbiguousTypes
NoAllowAmbiguousTypes
AlternativeLayoutRule
NoAlternativeLayoutRule
AlternativeLayoutRuleTransitional
NoAlternativeLayoutRuleTransitional
Arrows
NoArrows
AutoDeriveTypeable
NoAutoDeriveTypeable
BangPatterns
NoBangPatterns
BinaryLiterals
NoBinaryLiterals
CApiFFI
NoCApiFFI
CPP
NoCPP
ConstrainedClassMethods
NoConstrainedClassMethods
ConstraintKinds
NoConstraintKinds
DataKinds
NoDataKinds
DatatypeContexts
NoDatatypeContexts
DefaultSignatures
NoDefaultSignatures
DeriveAnyClass
NoDeriveAnyClass
DeriveDataTypeable
NoDeriveDataTypeable
DeriveFoldable
NoDeriveFoldable
DeriveFunctor
NoDeriveFunctor
DeriveGeneric
NoDeriveGeneric
DeriveLift
NoDeriveLift
DeriveTraversable
NoDeriveTraversable
DerivingStrategies
NoDerivingStrategies
DisambiguateRecordFields
NoDisambiguateRecordFields
DoAndIfThenElse
NoDoAndIfThenElse
DoRec
NoDoRec
DuplicateRecordFields
NoDuplicateRecordFields
EmptyCase
NoEmptyCase
EmptyDataDecls
NoEmptyDataDecls
EmptyDataDeriving
NoEmptyDataDeriving
ExistentialQuantification
NoExistentialQuantification
ExplicitForAll
NoExplicitForAll
ExplicitNamespaces
NoExplicitNamespaces
ExtendedDefaultRules
NoExtendedDefaultRules
FlexibleContexts
NoFlexibleContexts
FlexibleInstances
NoFlexibleInstances
ForeignFunctionInterface
NoForeignFunctionInterface
FunctionalDependencies
NoFunctionalDependencies
GADTSyntax
NoGADTSyntax
GADTs
NoGADTs
GHCForeignImportPrim
NoGHCForeignImportPrim
GeneralizedNewtypeDeriving
NoGeneralizedNewtypeDeriving
ImplicitParams
NoImplicitParams
ImplicitPrelude
NoImplicitPrelude
ImpredicativeTypes
NoImpredicativeTypes
IncoherentInstances
NoIncoherentInstances
TypeFamilyDependencies
NoTypeFamilyDependencies
InstanceSigs
NoInstanceSigs
ApplicativeDo
NoApplicativeDo
InterruptibleFFI
NoInterruptibleFFI
JavaScriptFFI
NoJavaScriptFFI
KindSignatures
NoKindSignatures
LambdaCase
NoLambdaCase
LiberalTypeSynonyms
NoLiberalTypeSynonyms
MagicHash
NoMagicHash
MonadComprehensions
NoMonadComprehensions
MonadFailDesugaring
NoMonadFailDesugaring
MonoLocalBinds
NoMonoLocalBinds
MonoPatBinds
NoMonoPatBinds
MonomorphismRestriction
NoMonomorphismRestriction
MultiParamTypeClasses
NoMultiParamTypeClasses
MultiWayIf
NoMultiWayIf
NPlusKPatterns
NoNPlusKPatterns
NamedFieldPuns
NoNamedFieldPuns
NamedWildCards
NoNamedWildCards
NegativeLiterals
NoNegativeLiterals
HexFloatLiterals
NoHexFloatLiterals
NondecreasingIndentation
NoNondecreasingIndentation
NullaryTypeClasses
NoNullaryTypeClasses
NumDecimals
NoNumDecimals
OverlappingInstances
NoOverlappingInstances
OverloadedLabels
NoOverloadedLabels
OverloadedLists
NoOverloadedLists
OverloadedStrings
NoOverloadedStrings
PackageImports
NoPackageImports
ParallelArrays
NoParallelArrays
ParallelListComp
NoParallelListComp
PartialTypeSignatures
NoPartialTypeSignatures
PatternGuards
NoPatternGuards
PatternSignatures
NoPatternSignatures
PatternSynonyms
NoPatternSynonyms
PolyKinds
NoPolyKinds
PolymorphicComponents
NoPolymorphicComponents
PostfixOperators
NoPostfixOperators
QuasiQuotes
NoQuasiQuotes
Rank2Types
NoRank2Types
RankNTypes
NoRankNTypes
RebindableSyntax
NoRebindableSyntax
RecordPuns
NoRecordPuns
RecordWildCards
NoRecordWildCards
RecursiveDo
NoRecursiveDo
RelaxedLayout
NoRelaxedLayout
RelaxedPolyRec
NoRelaxedPolyRec
RoleAnnotations
NoRoleAnnotations
ScopedTypeVariables
NoScopedTypeVariables
StandaloneDeriving
NoStandaloneDeriving
StaticPointers
NoStaticPointers
Strict
NoStrict
StrictData
NoStrictData
TemplateHaskell
NoTemplateHaskell
TemplateHaskellQuotes
NoTemplateHaskellQuotes
TraditionalRecordSyntax
NoTraditionalRecordSyntax
TransformListComp
NoTransformListComp
TupleSections
NoTupleSections
TypeApplications
NoTypeApplications
TypeInType
NoTypeInType
TypeFamilies
NoTypeFamilies
TypeOperators
NoTypeOperators
TypeSynonymInstances
NoTypeSynonymInstances
UnboxedTuples
NoUnboxedTuples
UnboxedSums
NoUnboxedSums
UndecidableInstances
NoUndecidableInstances
UndecidableSuperClasses
NoUndecidableSuperClasses
UnicodeSyntax
NoUnicodeSyntax
UnliftedFFITypes
NoUnliftedFFITypes
ViewPatterns
NoViewPatterns

View File

@ -0,0 +1,160 @@
{ system
, compiler
, flags
, pkgs
, hsPkgs
, pkgconfPkgs
, errorHandler
, config
, ... }:
{
flags = { small_base = true; };
package = {
specVersion = "1.8";
identifier = { name = "alex"; version = "3.2.5"; };
license = "BSD-3-Clause";
copyright = "(c) Chis Dornan, Simon Marlow";
maintainer = "Simon Marlow <marlowsd@gmail.com>";
author = "Chris Dornan and Simon Marlow";
homepage = "http://www.haskell.org/alex/";
url = "";
synopsis = "Alex is a tool for generating lexical analysers in Haskell";
description = "Alex is a tool for generating lexical analysers in Haskell.\nIt takes a description of tokens based on regular\nexpressions and generates a Haskell module containing code\nfor scanning text efficiently. It is similar to the tool\nlex or flex for C/C++.";
buildType = "Simple";
isLocal = true;
detailLevel = "FullDetails";
licenseFiles = [ "LICENSE" ];
dataDir = "data/";
dataFiles = [
"AlexTemplate"
"AlexTemplate-ghc"
"AlexTemplate-ghc-nopred"
"AlexTemplate-ghc-debug"
"AlexTemplate-debug"
"AlexWrapper-basic"
"AlexWrapper-basic-bytestring"
"AlexWrapper-strict-bytestring"
"AlexWrapper-posn"
"AlexWrapper-posn-bytestring"
"AlexWrapper-monad"
"AlexWrapper-monad-bytestring"
"AlexWrapper-monadUserState"
"AlexWrapper-monadUserState-bytestring"
"AlexWrapper-gscan"
];
extraSrcFiles = [
"CHANGELOG.md"
"README.md"
"TODO"
"alex.spec"
"doc/Makefile"
"doc/aclocal.m4"
"doc/alex.1.in"
"doc/alex.xml"
"doc/config.mk.in"
"doc/configure.ac"
"doc/docbook-xml.mk"
"doc/fptools.css"
"examples/Makefile"
"examples/Tokens.x"
"examples/Tokens_gscan.x"
"examples/Tokens_posn.x"
"examples/examples.x"
"examples/haskell.x"
"examples/lit.x"
"examples/pp.x"
"examples/state.x"
"examples/tiny.y"
"examples/words.x"
"examples/words_monad.x"
"examples/words_posn.x"
"src/Parser.y.boot"
"src/Scan.x.boot"
"src/ghc_hooks.c"
"templates/GenericTemplate.hs"
"templates/wrappers.hs"
"tests/Makefile"
"tests/simple.x"
"tests/null.x"
"tests/tokens.x"
"tests/tokens_gscan.x"
"tests/tokens_posn.x"
"tests/tokens_bytestring.x"
"tests/tokens_posn_bytestring.x"
"tests/tokens_scan_user.x"
"tests/tokens_strict_bytestring.x"
"tests/tokens_monad_bytestring.x"
"tests/tokens_monadUserState_bytestring.x"
"tests/tokens_bytestring_unicode.x"
"tests/basic_typeclass.x"
"tests/basic_typeclass_bytestring.x"
"tests/default_typeclass.x"
"tests/gscan_typeclass.x"
"tests/posn_typeclass.x"
"tests/monad_typeclass.x"
"tests/monad_typeclass_bytestring.x"
"tests/monadUserState_typeclass.x"
"tests/monadUserState_typeclass_bytestring.x"
"tests/posn_typeclass_bytestring.x"
"tests/strict_typeclass.x"
"tests/unicode.x"
];
extraTmpFiles = [];
extraDocFiles = [];
};
components = {
exes = {
"alex" = {
depends = [
(hsPkgs."base" or (errorHandler.buildDepError "base"))
] ++ (if flags.small_base
then [
(hsPkgs."base" or (errorHandler.buildDepError "base"))
(hsPkgs."array" or (errorHandler.buildDepError "array"))
(hsPkgs."containers" or (errorHandler.buildDepError "containers"))
(hsPkgs."directory" or (errorHandler.buildDepError "directory"))
]
else [ (hsPkgs."base" or (errorHandler.buildDepError "base")) ]);
buildable = true;
modules = [
"AbsSyn"
"CharSet"
"DFA"
"DFAMin"
"DFS"
"Info"
"Map"
"NFA"
"Output"
"Paths_alex"
"Parser"
"ParseMonad"
"Scan"
"Set"
"Sort"
"Util"
"UTF8"
"Data/Ranged"
"Data/Ranged/Boundaries"
"Data/Ranged/RangedSet"
"Data/Ranged/Ranges"
];
hsSourceDirs = [ "src" ];
mainPath = [ "Main.hs" ] ++ [ "" ];
};
};
tests = {
"tests" = {
depends = [
(hsPkgs."base" or (errorHandler.buildDepError "base"))
(hsPkgs."process" or (errorHandler.buildDepError "process"))
];
build-tools = [
(hsPkgs.buildPackages.alex or (pkgs.buildPackages.alex or (errorHandler.buildToolDepError "alex")))
];
buildable = true;
mainPath = [ "test.hs" ];
};
};
};
} // rec { src = (pkgs.lib).mkDefault ../.; }

49
materialized/ghc865/alex/default.nix generated Normal file
View File

@ -0,0 +1,49 @@
{
pkgs = hackage:
{
packages = {
"ghc-prim".revision = (((hackage."ghc-prim")."0.5.3").revisions).default;
"unix".revision = (((hackage."unix")."2.7.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;
"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;
};
compiler = {
version = "8.6.5";
nix-name = "ghc865";
packages = {
"ghc-prim" = "0.5.3";
"unix" = "2.7.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";
"filepath" = "1.4.2.1";
"process" = "1.6.5.0";
"array" = "0.5.3.0";
"integer-gmp" = "1.0.2.0";
};
};
};
extras = hackage:
{ packages = { alex = ./.plan.nix/alex.nix; }; };
modules = [
({ lib, ... }:
{
packages = {
"alex" = { flags = { "small_base" = lib.mkOverride 900 true; }; };
};
})
];
}

View File

@ -0,0 +1,340 @@
{ system
, compiler
, flags
, pkgs
, hsPkgs
, pkgconfPkgs
, errorHandler
, config
, ... }:
{
flags = {
native-dns = true;
debug-expensive-assertions = false;
debug-conflict-sets = false;
debug-tracetree = false;
lukko = true;
};
package = {
specVersion = "1.10";
identifier = { name = "cabal-install"; version = "3.2.0.0"; };
license = "BSD-3-Clause";
copyright = "2003-2020, Cabal Development Team";
maintainer = "Cabal Development Team <cabal-devel@haskell.org>";
author = "Cabal Development Team (see AUTHORS file)";
homepage = "http://www.haskell.org/cabal/";
url = "";
synopsis = "The command-line interface for Cabal and Hackage.";
description = "The \\'cabal\\' command-line program simplifies the process of managing\nHaskell software by automating the fetching, configuration, compilation\nand installation of Haskell libraries and programs.";
buildType = "Custom";
isLocal = true;
setup-depends = [
(hsPkgs.buildPackages.Cabal or (pkgs.buildPackages.Cabal or (errorHandler.buildToolDepError "Cabal")))
(hsPkgs.buildPackages.base or (pkgs.buildPackages.base or (errorHandler.buildToolDepError "base")))
(hsPkgs.buildPackages.process or (pkgs.buildPackages.process or (errorHandler.buildToolDepError "process")))
(hsPkgs.buildPackages.filepath or (pkgs.buildPackages.filepath or (errorHandler.buildToolDepError "filepath")))
];
detailLevel = "FullDetails";
licenseFiles = [ "LICENSE" ];
dataDir = "";
dataFiles = [];
extraSrcFiles = [
"README.md"
"bash-completion/cabal"
"bootstrap.sh"
"changelog"
"tests/IntegrationTests2/build/keep-going/cabal.project"
"tests/IntegrationTests2/build/keep-going/p/P.hs"
"tests/IntegrationTests2/build/keep-going/p/p.cabal"
"tests/IntegrationTests2/build/keep-going/q/Q.hs"
"tests/IntegrationTests2/build/keep-going/q/q.cabal"
"tests/IntegrationTests2/build/local-tarball/cabal.project"
"tests/IntegrationTests2/build/local-tarball/q/Q.hs"
"tests/IntegrationTests2/build/local-tarball/q/q.cabal"
"tests/IntegrationTests2/build/setup-custom1/A.hs"
"tests/IntegrationTests2/build/setup-custom1/Setup.hs"
"tests/IntegrationTests2/build/setup-custom1/a.cabal"
"tests/IntegrationTests2/build/setup-custom2/A.hs"
"tests/IntegrationTests2/build/setup-custom2/Setup.hs"
"tests/IntegrationTests2/build/setup-custom2/a.cabal"
"tests/IntegrationTests2/build/setup-simple/A.hs"
"tests/IntegrationTests2/build/setup-simple/Setup.hs"
"tests/IntegrationTests2/build/setup-simple/a.cabal"
"tests/IntegrationTests2/exception/bad-config/cabal.project"
"tests/IntegrationTests2/exception/build/Main.hs"
"tests/IntegrationTests2/exception/build/a.cabal"
"tests/IntegrationTests2/exception/configure/a.cabal"
"tests/IntegrationTests2/exception/no-pkg/empty.in"
"tests/IntegrationTests2/exception/no-pkg2/cabal.project"
"tests/IntegrationTests2/regression/3324/cabal.project"
"tests/IntegrationTests2/regression/3324/p/P.hs"
"tests/IntegrationTests2/regression/3324/p/p.cabal"
"tests/IntegrationTests2/regression/3324/q/Q.hs"
"tests/IntegrationTests2/regression/3324/q/q.cabal"
"tests/IntegrationTests2/targets/all-disabled/cabal.project"
"tests/IntegrationTests2/targets/all-disabled/p.cabal"
"tests/IntegrationTests2/targets/benchmarks-disabled/cabal.project"
"tests/IntegrationTests2/targets/benchmarks-disabled/p.cabal"
"tests/IntegrationTests2/targets/benchmarks-disabled/q/q.cabal"
"tests/IntegrationTests2/targets/complex/cabal.project"
"tests/IntegrationTests2/targets/complex/q/Q.hs"
"tests/IntegrationTests2/targets/complex/q/q.cabal"
"tests/IntegrationTests2/targets/empty-pkg/cabal.project"
"tests/IntegrationTests2/targets/empty-pkg/p.cabal"
"tests/IntegrationTests2/targets/empty/cabal.project"
"tests/IntegrationTests2/targets/empty/foo.hs"
"tests/IntegrationTests2/targets/exes-disabled/cabal.project"
"tests/IntegrationTests2/targets/exes-disabled/p/p.cabal"
"tests/IntegrationTests2/targets/exes-disabled/q/q.cabal"
"tests/IntegrationTests2/targets/lib-only/p.cabal"
"tests/IntegrationTests2/targets/libs-disabled/cabal.project"
"tests/IntegrationTests2/targets/libs-disabled/p/p.cabal"
"tests/IntegrationTests2/targets/libs-disabled/q/q.cabal"
"tests/IntegrationTests2/targets/multiple-exes/cabal.project"
"tests/IntegrationTests2/targets/multiple-exes/p.cabal"
"tests/IntegrationTests2/targets/multiple-libs/cabal.project"
"tests/IntegrationTests2/targets/multiple-libs/p/p.cabal"
"tests/IntegrationTests2/targets/multiple-libs/q/q.cabal"
"tests/IntegrationTests2/targets/multiple-tests/cabal.project"
"tests/IntegrationTests2/targets/multiple-tests/p.cabal"
"tests/IntegrationTests2/targets/simple/P.hs"
"tests/IntegrationTests2/targets/simple/cabal.project"
"tests/IntegrationTests2/targets/simple/p.cabal"
"tests/IntegrationTests2/targets/simple/q/QQ.hs"
"tests/IntegrationTests2/targets/simple/q/q.cabal"
"tests/IntegrationTests2/targets/test-only/p.cabal"
"tests/IntegrationTests2/targets/tests-disabled/cabal.project"
"tests/IntegrationTests2/targets/tests-disabled/p.cabal"
"tests/IntegrationTests2/targets/tests-disabled/q/q.cabal"
"tests/IntegrationTests2/targets/variety/cabal.project"
"tests/IntegrationTests2/targets/variety/p.cabal"
"tests/IntegrationTests2/build/local-tarball/p-0.1.tar.gz"
];
extraTmpFiles = [];
extraDocFiles = [];
};
components = {
exes = {
"cabal" = {
depends = ((((([
(hsPkgs."async" or (errorHandler.buildDepError "async"))
(hsPkgs."array" or (errorHandler.buildDepError "array"))
(hsPkgs."base" or (errorHandler.buildDepError "base"))
(hsPkgs."base16-bytestring" or (errorHandler.buildDepError "base16-bytestring"))
(hsPkgs."binary" or (errorHandler.buildDepError "binary"))
(hsPkgs."bytestring" or (errorHandler.buildDepError "bytestring"))
(hsPkgs."Cabal" or (errorHandler.buildDepError "Cabal"))
(hsPkgs."containers" or (errorHandler.buildDepError "containers"))
(hsPkgs."cryptohash-sha256" or (errorHandler.buildDepError "cryptohash-sha256"))
(hsPkgs."deepseq" or (errorHandler.buildDepError "deepseq"))
(hsPkgs."directory" or (errorHandler.buildDepError "directory"))
(hsPkgs."echo" or (errorHandler.buildDepError "echo"))
(hsPkgs."edit-distance" or (errorHandler.buildDepError "edit-distance"))
(hsPkgs."filepath" or (errorHandler.buildDepError "filepath"))
(hsPkgs."hashable" or (errorHandler.buildDepError "hashable"))
(hsPkgs."HTTP" or (errorHandler.buildDepError "HTTP"))
(hsPkgs."mtl" or (errorHandler.buildDepError "mtl"))
(hsPkgs."network-uri" or (errorHandler.buildDepError "network-uri"))
(hsPkgs."network" or (errorHandler.buildDepError "network"))
(hsPkgs."pretty" or (errorHandler.buildDepError "pretty"))
(hsPkgs."process" or (errorHandler.buildDepError "process"))
(hsPkgs."random" or (errorHandler.buildDepError "random"))
(hsPkgs."stm" or (errorHandler.buildDepError "stm"))
(hsPkgs."tar" or (errorHandler.buildDepError "tar"))
(hsPkgs."time" or (errorHandler.buildDepError "time"))
(hsPkgs."transformers" or (errorHandler.buildDepError "transformers"))
(hsPkgs."zlib" or (errorHandler.buildDepError "zlib"))
(hsPkgs."hackage-security" or (errorHandler.buildDepError "hackage-security"))
(hsPkgs."text" or (errorHandler.buildDepError "text"))
(hsPkgs."parsec" or (errorHandler.buildDepError "parsec"))
] ++ (pkgs.lib).optionals (!(compiler.isGhc && (compiler.version).ge "8.0")) [
(hsPkgs."fail" or (errorHandler.buildDepError "fail"))
(hsPkgs."semigroups" or (errorHandler.buildDepError "semigroups"))
]) ++ (pkgs.lib).optionals (flags.native-dns) (if system.isWindows
then [ (hsPkgs."windns" or (errorHandler.buildDepError "windns")) ]
else [
(hsPkgs."resolv" or (errorHandler.buildDepError "resolv"))
])) ++ (if system.isWindows
then [ (hsPkgs."Win32" or (errorHandler.buildDepError "Win32")) ]
else [
(hsPkgs."unix" or (errorHandler.buildDepError "unix"))
])) ++ (if flags.lukko
then [ (hsPkgs."lukko" or (errorHandler.buildDepError "lukko")) ]
else [
(hsPkgs."base" or (errorHandler.buildDepError "base"))
])) ++ (pkgs.lib).optional (flags.debug-conflict-sets) (hsPkgs."base" or (errorHandler.buildDepError "base"))) ++ (pkgs.lib).optional (flags.debug-tracetree) (hsPkgs."tracetree" or (errorHandler.buildDepError "tracetree"));
libs = (pkgs.lib).optional (system.isAix) (pkgs."bsd" or (errorHandler.sysDepError "bsd"));
buildable = true;
modules = [
"Distribution/Deprecated/ParseUtils"
"Distribution/Deprecated/ReadP"
"Distribution/Deprecated/Text"
"Distribution/Deprecated/ViewAsFieldDescr"
"Distribution/Client/BuildReports/Anonymous"
"Distribution/Client/BuildReports/Storage"
"Distribution/Client/BuildReports/Types"
"Distribution/Client/BuildReports/Upload"
"Distribution/Client/Check"
"Distribution/Client/CmdBench"
"Distribution/Client/CmdBuild"
"Distribution/Client/CmdClean"
"Distribution/Client/CmdConfigure"
"Distribution/Client/CmdUpdate"
"Distribution/Client/CmdErrorMessages"
"Distribution/Client/CmdExec"
"Distribution/Client/CmdFreeze"
"Distribution/Client/CmdHaddock"
"Distribution/Client/CmdInstall"
"Distribution/Client/CmdInstall/ClientInstallFlags"
"Distribution/Client/CmdRepl"
"Distribution/Client/CmdRun"
"Distribution/Client/CmdRun/ClientRunFlags"
"Distribution/Client/CmdTest"
"Distribution/Client/CmdLegacy"
"Distribution/Client/CmdSdist"
"Distribution/Client/Compat/Directory"
"Distribution/Client/Compat/ExecutablePath"
"Distribution/Client/Compat/FilePerms"
"Distribution/Client/Compat/Orphans"
"Distribution/Client/Compat/Prelude"
"Distribution/Client/Compat/Process"
"Distribution/Client/Compat/Semaphore"
"Distribution/Client/Config"
"Distribution/Client/Configure"
"Distribution/Client/Dependency"
"Distribution/Client/Dependency/Types"
"Distribution/Client/DistDirLayout"
"Distribution/Client/Exec"
"Distribution/Client/Fetch"
"Distribution/Client/FetchUtils"
"Distribution/Client/FileMonitor"
"Distribution/Client/Freeze"
"Distribution/Client/GZipUtils"
"Distribution/Client/GenBounds"
"Distribution/Client/Get"
"Distribution/Client/Glob"
"Distribution/Client/GlobalFlags"
"Distribution/Client/Haddock"
"Distribution/Client/HashValue"
"Distribution/Client/HttpUtils"
"Distribution/Client/IndexUtils"
"Distribution/Client/IndexUtils/Timestamp"
"Distribution/Client/Init"
"Distribution/Client/Init/Heuristics"
"Distribution/Client/Init/Licenses"
"Distribution/Client/Init/Types"
"Distribution/Client/Install"
"Distribution/Client/InstallPlan"
"Distribution/Client/InstallSymlink"
"Distribution/Client/JobControl"
"Distribution/Client/List"
"Distribution/Client/Manpage"
"Distribution/Client/Nix"
"Distribution/Client/Outdated"
"Distribution/Client/PackageHash"
"Distribution/Client/PackageUtils"
"Distribution/Client/ParseUtils"
"Distribution/Client/ProjectBuilding"
"Distribution/Client/ProjectBuilding/Types"
"Distribution/Client/ProjectConfig"
"Distribution/Client/ProjectConfig/Legacy"
"Distribution/Client/ProjectConfig/Types"
"Distribution/Client/ProjectOrchestration"
"Distribution/Client/ProjectPlanOutput"
"Distribution/Client/ProjectPlanning"
"Distribution/Client/ProjectPlanning/Types"
"Distribution/Client/RebuildMonad"
"Distribution/Client/Reconfigure"
"Distribution/Client/Run"
"Distribution/Client/Sandbox"
"Distribution/Client/Sandbox/Index"
"Distribution/Client/Sandbox/PackageEnvironment"
"Distribution/Client/Sandbox/Timestamp"
"Distribution/Client/Sandbox/Types"
"Distribution/Client/SavedFlags"
"Distribution/Client/Security/DNS"
"Distribution/Client/Security/HTTP"
"Distribution/Client/Setup"
"Distribution/Client/SetupWrapper"
"Distribution/Client/SolverInstallPlan"
"Distribution/Client/SourceFiles"
"Distribution/Client/SourceRepo"
"Distribution/Client/SrcDist"
"Distribution/Client/Store"
"Distribution/Client/Tar"
"Distribution/Client/TargetSelector"
"Distribution/Client/Targets"
"Distribution/Client/Types"
"Distribution/Client/Update"
"Distribution/Client/Upload"
"Distribution/Client/Utils"
"Distribution/Client/Utils/Assertion"
"Distribution/Client/Utils/Json"
"Distribution/Client/Utils/Parsec"
"Distribution/Client/VCS"
"Distribution/Client/Win32SelfUpgrade"
"Distribution/Client/World"
"Distribution/Solver/Compat/Prelude"
"Distribution/Solver/Modular"
"Distribution/Solver/Modular/Assignment"
"Distribution/Solver/Modular/Builder"
"Distribution/Solver/Modular/Configured"
"Distribution/Solver/Modular/ConfiguredConversion"
"Distribution/Solver/Modular/ConflictSet"
"Distribution/Solver/Modular/Cycles"
"Distribution/Solver/Modular/Dependency"
"Distribution/Solver/Modular/Explore"
"Distribution/Solver/Modular/Flag"
"Distribution/Solver/Modular/Index"
"Distribution/Solver/Modular/IndexConversion"
"Distribution/Solver/Modular/LabeledGraph"
"Distribution/Solver/Modular/Linking"
"Distribution/Solver/Modular/Log"
"Distribution/Solver/Modular/Message"
"Distribution/Solver/Modular/PSQ"
"Distribution/Solver/Modular/Package"
"Distribution/Solver/Modular/Preference"
"Distribution/Solver/Modular/RetryLog"
"Distribution/Solver/Modular/Solver"
"Distribution/Solver/Modular/Tree"
"Distribution/Solver/Modular/Validate"
"Distribution/Solver/Modular/Var"
"Distribution/Solver/Modular/Version"
"Distribution/Solver/Modular/WeightedPSQ"
"Distribution/Solver/Types/ComponentDeps"
"Distribution/Solver/Types/ConstraintSource"
"Distribution/Solver/Types/DependencyResolver"
"Distribution/Solver/Types/Flag"
"Distribution/Solver/Types/InstSolverPackage"
"Distribution/Solver/Types/InstalledPreference"
"Distribution/Solver/Types/LabeledPackageConstraint"
"Distribution/Solver/Types/OptionalStanza"
"Distribution/Solver/Types/PackageConstraint"
"Distribution/Solver/Types/PackageFixedDeps"
"Distribution/Solver/Types/PackageIndex"
"Distribution/Solver/Types/PackagePath"
"Distribution/Solver/Types/PackagePreferences"
"Distribution/Solver/Types/PkgConfigDb"
"Distribution/Solver/Types/Progress"
"Distribution/Solver/Types/ResolverPackage"
"Distribution/Solver/Types/Settings"
"Distribution/Solver/Types/SolverId"
"Distribution/Solver/Types/SolverPackage"
"Distribution/Solver/Types/SourcePackage"
"Distribution/Solver/Types/Variable"
"Paths_cabal_install"
];
hsSourceDirs = [ "main" "." ];
mainPath = (((((((([
"Main.hs"
] ++ (pkgs.lib).optionals (compiler.isGhc && (compiler.version).ge "8.0") ([
""
] ++ (pkgs.lib).optional (compiler.isGhc && (compiler.version).lt "8.8") "")) ++ (pkgs.lib).optional (system.isAix) "") ++ (pkgs.lib).optional (!(compiler.isGhc && (compiler.version).ge "8.0")) "") ++ (pkgs.lib).optionals (flags.native-dns) ([
""
] ++ [ "" ])) ++ [ "" ]) ++ [
""
]) ++ (pkgs.lib).optional (flags.debug-expensive-assertions) "") ++ (pkgs.lib).optional (flags.debug-conflict-sets) "") ++ (pkgs.lib).optional (flags.debug-tracetree) "";
};
};
};
} // rec { src = (pkgs.lib).mkDefault ../.; }

View File

@ -0,0 +1,122 @@
{
pkgs = hackage:
{
packages = {
"cryptohash-sha256".revision = (((hackage."cryptohash-sha256")."0.11.101.0").revisions).default;
"cryptohash-sha256".flags.exe = false;
"binary".revision = (((hackage."binary")."0.8.6.0").revisions).default;
"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;
"edit-distance".revision = (((hackage."edit-distance")."0.2.2.1").revisions).default;
"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.1").revisions).default;
"zlib".flags.non-blocking-ffi = false;
"zlib".flags.pkg-config = false;
"rts".revision = (((hackage."rts")."1.0").revisions).default;
"deepseq".revision = (((hackage."deepseq")."1.4.4.0").revisions).default;
"random".revision = (((hackage."random")."1.1").revisions).default;
"network".revision = (((hackage."network")."3.1.1.1").revisions).default;
"async".revision = (((hackage."async")."2.2.2").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".flags.example = false;
"hsc2hs".revision = (((hackage."hsc2hs")."0.68.7").revisions).default;
"hsc2hs".flags.in-ghc-tree = false;
"resolv".revision = (((hackage."resolv")."0.1.2.0").revisions).default;
"directory".revision = (((hackage."directory")."1.3.3.0").revisions).default;
"template-haskell".revision = (((hackage."template-haskell")."2.14.0.0").revisions).default;
"containers".revision = (((hackage."containers")."0.6.0.1").revisions).default;
"bytestring".revision = (((hackage."bytestring")."0.10.8.2").revisions).default;
"text".revision = (((hackage."text")."1.2.3.1").revisions).default;
"Cabal".revision = (((hackage."Cabal")."3.2.0.0").revisions).default;
"Cabal".flags.bundled-binary-generic = false;
"base64-bytestring".revision = (((hackage."base64-bytestring")."1.0.0.3").revisions).default;
"base".revision = (((hackage."base")."4.12.0.0").revisions).default;
"time".revision = (((hackage."time")."1.8.0.2").revisions).default;
"base16-bytestring".revision = (((hackage."base16-bytestring")."0.1.1.6").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;
"HTTP".revision = (((hackage."HTTP")."4000.3.14").revisions).default;
"HTTP".flags.mtl1 = false;
"HTTP".flags.conduit10 = false;
"HTTP".flags.warn-as-error = false;
"HTTP".flags.warp-tests = false;
"HTTP".flags.network-uri = true;
"filepath".revision = (((hackage."filepath")."1.4.2.1").revisions).default;
"ed25519".revision = (((hackage."ed25519")."0.0.5.0").revisions).default;
"ed25519".flags.test-hlint = true;
"ed25519".flags.test-properties = true;
"ed25519".flags.test-doctests = true;
"ed25519".flags.no-donna = true;
"process".revision = (((hackage."process")."1.6.5.0").revisions).default;
"pretty".revision = (((hackage."pretty")."1.1.3.6").revisions).default;
"lukko".revision = (((hackage."lukko")."0.1.1.2").revisions).default;
"lukko".flags.ofd-locking = true;
"ghc-boot-th".revision = (((hackage."ghc-boot-th")."8.6.5").revisions).default;
"array".revision = (((hackage."array")."0.5.3.0").revisions).default;
"hackage-security".revision = (((hackage."hackage-security")."0.6.0.1").revisions).default;
"hackage-security".flags.old-directory = false;
"hackage-security".flags.use-network-uri = true;
"hackage-security".flags.base48 = true;
"hackage-security".flags.lukko = true;
"hackage-security".flags.mtl21 = false;
"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-prim" = "0.5.3";
"stm" = "2.5.0.0";
"unix" = "2.7.2.2";
"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";
"text" = "1.2.3.1";
"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";
"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 = { cabal-install = ./.plan.nix/cabal-install.nix; }; };
modules = [
({ lib, ... }:
{
packages = {
"cabal-install" = {
flags = {
"native-dns" = lib.mkOverride 900 true;
"debug-expensive-assertions" = lib.mkOverride 900 false;
"debug-tracetree" = lib.mkOverride 900 false;
"lukko" = lib.mkOverride 900 true;
"debug-conflict-sets" = lib.mkOverride 900 false;
};
};
};
})
];
}

View File

@ -0,0 +1,200 @@
{ system
, compiler
, flags
, pkgs
, hsPkgs
, pkgconfPkgs
, errorHandler
, config
, ... }:
{
flags = { small_base = true; };
package = {
specVersion = "1.8";
identifier = { name = "happy"; version = "1.19.12"; };
license = "BSD-2-Clause";
copyright = "(c) Andy Gill, Simon Marlow";
maintainer = "Simon Marlow <marlowsd@gmail.com>";
author = "Andy Gill and Simon Marlow";
homepage = "https://www.haskell.org/happy/";
url = "";
synopsis = "Happy is a parser generator for Haskell";
description = "Happy is a parser generator for Haskell. Given a grammar\nspecification in BNF, Happy generates Haskell code to parse the\ngrammar. Happy works in a similar way to the @yacc@ tool for C.";
buildType = "Simple";
isLocal = true;
detailLevel = "FullDetails";
licenseFiles = [ "LICENSE" ];
dataDir = "data/";
dataFiles = [
"HappyTemplate"
"HappyTemplate-arrays"
"HappyTemplate-arrays-coerce"
"HappyTemplate-arrays-coerce-debug"
"HappyTemplate-arrays-debug"
"HappyTemplate-arrays-ghc"
"HappyTemplate-arrays-ghc-debug"
"HappyTemplate-coerce"
"HappyTemplate-ghc"
"GLR_Base"
"GLR_Lib"
"GLR_Lib-ghc"
"GLR_Lib-ghc-debug"
];
extraSrcFiles = [
"ANNOUNCE"
"CHANGES"
"Makefile"
"README.md"
"TODO"
"doc/Makefile"
"doc/aclocal.m4"
"doc/config.mk.in"
"doc/configure.ac"
"doc/docbook-xml.mk"
"doc/fptools.css"
"doc/happy.1.in"
"doc/happy.xml"
"examples/glr/nlp/Main.lhs"
"examples/glr/nlp/Makefile"
"examples/glr/nlp/README"
"examples/glr/nlp/English.y"
"examples/glr/nlp/Hugs.lhs"
"examples/glr/Makefile"
"examples/glr/Makefile.defs"
"examples/glr/expr-eval/Main.lhs"
"examples/glr/expr-eval/Makefile"
"examples/glr/expr-eval/Expr.y"
"examples/glr/expr-eval/README"
"examples/glr/expr-eval/Hugs.lhs"
"examples/glr/expr-tree/Main.lhs"
"examples/glr/expr-tree/Makefile"
"examples/glr/expr-tree/Expr.y"
"examples/glr/expr-tree/README"
"examples/glr/expr-tree/Tree.lhs"
"examples/glr/expr-tree/Hugs.lhs"
"examples/glr/highly-ambiguous/Main.lhs"
"examples/glr/highly-ambiguous/Makefile"
"examples/glr/highly-ambiguous/Expr.y"
"examples/glr/highly-ambiguous/README"
"examples/glr/highly-ambiguous/Hugs.lhs"
"examples/glr/hidden-leftrec/Main.lhs"
"examples/glr/hidden-leftrec/Makefile"
"examples/glr/hidden-leftrec/Expr.y"
"examples/glr/hidden-leftrec/README"
"examples/glr/hidden-leftrec/Hugs.lhs"
"examples/glr/expr-monad/Main.lhs"
"examples/glr/expr-monad/Makefile"
"examples/glr/expr-monad/Expr.y"
"examples/glr/expr-monad/README"
"examples/glr/expr-monad/Hugs.lhs"
"examples/glr/bio-eg/Main.lhs"
"examples/glr/bio-eg/Makefile"
"examples/glr/bio-eg/Bio.y"
"examples/glr/bio-eg/README"
"examples/glr/bio-eg/1-1200.dna"
"examples/glr/bio-eg/1-600.dna"
"examples/glr/common/DV_lhs"
"examples/glr/common/DaVinciTypes.hs"
"examples/glr/packing/Main.lhs"
"examples/glr/packing/Makefile"
"examples/glr/packing/Expr.y"
"examples/glr/packing/README"
"examples/glr/packing/Hugs.lhs"
"examples/PgnParser.ly"
"examples/MonadTest.ly"
"examples/igloo/ParserM.hs"
"examples/igloo/Makefile"
"examples/igloo/Parser.y"
"examples/igloo/Foo.hs"
"examples/igloo/README"
"examples/igloo/Lexer.x"
"examples/README"
"examples/Calc.ly"
"examples/DavesExample.ly"
"examples/ErrorTest.ly"
"examples/ErlParser.ly"
"examples/SimonsExample.ly"
"examples/LexerTest.ly"
"happy.spec"
"src/ARRAY-NOTES"
"tests/AttrGrammar001.y"
"tests/AttrGrammar002.y"
"tests/Makefile"
"tests/Partial.ly"
"tests/Test.ly"
"tests/TestMulti.ly"
"tests/TestPrecedence.ly"
"tests/bogus-token.y"
"tests/bug001.ly"
"tests/bug002.y"
"tests/error001.stderr"
"tests/error001.stdout"
"tests/error001.y"
"tests/monad001.y"
"tests/monad002.ly"
"tests/monaderror.y"
"tests/precedence001.ly"
"tests/precedence002.y"
"tests/test_rules.y"
"tests/issue91.y"
"tests/issue93.y"
"tests/issue94.y"
"tests/issue95.y"
"tests/monaderror-explist.y"
"tests/typeclass_monad001.y"
"tests/typeclass_monad002.ly"
"tests/typeclass_monad_lexer.y"
"tests/rank2.y"
];
extraTmpFiles = [];
extraDocFiles = [];
};
components = {
exes = {
"happy" = {
depends = [
(hsPkgs."base" or (errorHandler.buildDepError "base"))
(hsPkgs."array" or (errorHandler.buildDepError "array"))
(hsPkgs."containers" or (errorHandler.buildDepError "containers"))
(hsPkgs."mtl" or (errorHandler.buildDepError "mtl"))
];
buildable = true;
modules = [
"Paths_happy"
"AbsSyn"
"First"
"GenUtils"
"Grammar"
"Info"
"LALR"
"Lexer"
"ParseMonad"
"Parser"
"ProduceCode"
"ProduceGLRCode"
"NameSet"
"Target"
"AttrGrammar"
"AttrGrammarParser"
"ParamRules"
"PrettyGrammar"
];
hsSourceDirs = [ "src" ];
mainPath = [ "Main.lhs" ];
};
};
tests = {
"tests" = {
depends = [
(hsPkgs."base" or (errorHandler.buildDepError "base"))
(hsPkgs."process" or (errorHandler.buildDepError "process"))
];
build-tools = [
(hsPkgs.buildPackages.happy or (pkgs.buildPackages.happy or (errorHandler.buildToolDepError "happy")))
];
buildable = true;
mainPath = [ "test.hs" ];
};
};
};
} // rec { src = (pkgs.lib).mkDefault ../.; }

53
materialized/ghc865/happy/default.nix generated Normal file
View File

@ -0,0 +1,53 @@
{
pkgs = hackage:
{
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;
};
compiler = {
version = "8.6.5";
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";
};
};
};
extras = hackage:
{ packages = { happy = ./.plan.nix/happy.nix; }; };
modules = [
({ lib, ... }:
{
packages = {
"happy" = { flags = { "small_base" = lib.mkOverride 900 true; }; };
};
})
];
}

View File

@ -22,6 +22,13 @@
description = "This library provides convenient access to the local copy of the Hackage\ndatabase that \\\"cabal update\\\" creates. Check out\n<https://github.com/peti/hackage-db/tree/master/example/> for a collection\nof simple example programs that demonstrate how to use this code.";
buildType = "Simple";
isLocal = true;
detailLevel = "FullDetails";
licenseFiles = [ "LICENSE" ];
dataDir = "";
dataFiles = [];
extraSrcFiles = [];
extraTmpFiles = [];
extraDocFiles = [];
};
components = {
"library" = {
@ -39,6 +46,18 @@
(hsPkgs."utf8-string" or (errorHandler.buildDepError "utf8-string"))
];
buildable = true;
modules = [
"Paths_hackage_db"
"Distribution/Hackage/DB"
"Distribution/Hackage/DB/Builder"
"Distribution/Hackage/DB/Errors"
"Distribution/Hackage/DB/MetaData"
"Distribution/Hackage/DB/Parsed"
"Distribution/Hackage/DB/Path"
"Distribution/Hackage/DB/Unparsed"
"Distribution/Hackage/DB/Utility"
];
hsSourceDirs = [ "src" ];
};
exes = {
"list-known-versions" = {
@ -50,6 +69,8 @@
(hsPkgs."hackage-db" or (errorHandler.buildDepError "hackage-db"))
];
buildable = if flags.install-examples then true else false;
hsSourceDirs = [ "example" ];
mainPath = [ "list-known-versions.hs" ] ++ [ "" ];
};
"show-meta-data" = {
depends = (pkgs.lib).optionals (flags.install-examples) [
@ -60,6 +81,8 @@
(hsPkgs."utf8-string" or (errorHandler.buildDepError "utf8-string"))
];
buildable = if flags.install-examples then true else false;
hsSourceDirs = [ "example" ];
mainPath = [ "show-meta-data.hs" ] ++ [ "" ];
};
"show-package-versions" = {
depends = (pkgs.lib).optionals (flags.install-examples) [
@ -69,13 +92,9 @@
(hsPkgs."hackage-db" or (errorHandler.buildDepError "hackage-db"))
];
buildable = if flags.install-examples then true else false;
hsSourceDirs = [ "example" ];
mainPath = [ "show-package-versions.hs" ] ++ [ "" ];
};
};
};
} // {
src = (pkgs.lib).mkDefault (pkgs.fetchgit {
url = "https://github.com/hamishmack/hackage-db.git";
rev = "3f12730c0d6092efce142cad87264e7b7eb2b05a";
sha256 = "13nl8swdd3g1rh14f29v6nhnzaxgc8l70vs6hviw8qgdpbxvhs45";
});
}
} // rec { src = (pkgs.lib).mkDefault .././.source-repository-packages/0; }

View File

@ -22,6 +22,13 @@
description = "A set of tools to aid in trating stack and cabal projects into nix expressions.";
buildType = "Simple";
isLocal = true;
detailLevel = "FullDetails";
licenseFiles = [ "LICENSE" ];
dataDir = "";
dataFiles = [];
extraSrcFiles = [ "ChangeLog.md" ];
extraTmpFiles = [];
extraDocFiles = [];
};
components = {
"library" = {
@ -53,6 +60,23 @@
(hsPkgs."yaml" or (errorHandler.buildDepError "yaml"))
];
buildable = true;
modules = [
"Cabal2Nix"
"Cabal2Nix/Util"
"Cabal2Nix/Plan"
"CabalName"
"CabalName/CLI"
"Distribution/Nixpkgs/Fetch"
"StackRepos"
"StackRepos/CLI"
"Stack2nix"
"Stack2nix/Cache"
"Stack2nix/CLI"
"Stack2nix/External/Resolve"
"Stack2nix/Project"
"Stack2nix/Stack"
];
hsSourceDirs = [ "lib" ];
};
exes = {
"cabal-to-nix" = {
@ -69,6 +93,8 @@
(hsPkgs."prettyprinter" or (errorHandler.buildDepError "prettyprinter"))
];
buildable = true;
hsSourceDirs = [ "cabal2nix" ];
mainPath = [ "Main.hs" ];
};
"hashes-to-nix" = {
depends = [
@ -84,6 +110,8 @@
(hsPkgs."directory" or (errorHandler.buildDepError "directory"))
];
buildable = true;
hsSourceDirs = [ "hashes2nix" ];
mainPath = [ "Main.hs" ];
};
"plan-to-nix" = {
depends = [
@ -107,6 +135,15 @@
(hsPkgs."extra" or (errorHandler.buildDepError "extra"))
];
buildable = true;
modules = [
"Plan2Nix"
"Plan2Nix/Cache"
"Plan2Nix/CLI"
"Plan2Nix/Project"
"Plan2Nix/Plan"
];
hsSourceDirs = [ "plan2nix" ];
mainPath = [ "Main.hs" ];
};
"hackage-to-nix" = {
depends = [
@ -128,6 +165,8 @@
(hsPkgs."transformers" or (errorHandler.buildDepError "transformers"))
];
buildable = true;
hsSourceDirs = [ "hackage2nix" ];
mainPath = [ "Main.hs" ];
};
"lts-to-nix" = {
depends = [
@ -146,6 +185,8 @@
(hsPkgs."Cabal" or (errorHandler.buildDepError "Cabal"))
];
buildable = true;
hsSourceDirs = [ "lts2nix" ];
mainPath = [ "Main.hs" ];
};
"stack-to-nix" = {
depends = [
@ -153,6 +194,8 @@
(hsPkgs."nix-tools" or (errorHandler.buildDepError "nix-tools"))
];
buildable = true;
hsSourceDirs = [ "stack2nix" ];
mainPath = [ "Main.hs" ];
};
"truncate-index" = {
depends = [
@ -164,6 +207,8 @@
(hsPkgs."time" or (errorHandler.buildDepError "time"))
];
buildable = true;
hsSourceDirs = [ "truncate-index" ];
mainPath = [ "Main.hs" ];
};
"stack-repos" = {
depends = [
@ -171,6 +216,8 @@
(hsPkgs."nix-tools" or (errorHandler.buildDepError "nix-tools"))
];
buildable = true;
hsSourceDirs = [ "stack-repos" ];
mainPath = [ "Main.hs" ];
};
"cabal-name" = {
depends = [
@ -178,6 +225,8 @@
(hsPkgs."nix-tools" or (errorHandler.buildDepError "nix-tools"))
];
buildable = true;
hsSourceDirs = [ "cabal-name" ];
mainPath = [ "Main.hs" ];
};
};
};

View File

@ -81,7 +81,7 @@
"adjunctions".revision = (((hackage."adjunctions")."4.4").revisions).default;
"cryptohash-md5".revision = (((hackage."cryptohash-md5")."0.11.100.1").revisions).default;
"invariant".revision = (((hackage."invariant")."0.5.3").revisions).default;
"th-orphans".revision = (((hackage."th-orphans")."0.13.10").revisions).default;
"th-orphans".revision = (((hackage."th-orphans")."0.13.9").revisions).default;
"pem".revision = (((hackage."pem")."0.2.4").revisions).default;
"megaparsec".revision = (((hackage."megaparsec")."8.0.0").revisions).default;
"megaparsec".flags.dev = false;
@ -170,7 +170,7 @@
"tagged".flags.deepseq = true;
"x509".revision = (((hackage."x509")."1.7.5").revisions).default;
"haskell-src-exts".revision = (((hackage."haskell-src-exts")."1.23.0").revisions).default;
"lens".revision = (((hackage."lens")."4.19.2").revisions).default;
"lens".revision = (((hackage."lens")."4.19.1").revisions).default;
"lens".flags.j = false;
"lens".flags.test-properties = true;
"lens".flags.old-inline-pragmas = false;
@ -231,7 +231,7 @@
"assoc".revision = (((hackage."assoc")."1.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.1.0.0").revisions).default;
"base64-bytestring".revision = (((hackage."base64-bytestring")."1.0.0.3").revisions).default;
"aeson-pretty".revision = (((hackage."aeson-pretty")."0.8.8").revisions).default;
"aeson-pretty".flags.lib-only = false;
"base".revision = (((hackage."base")."4.12.0.0").revisions).default;
@ -283,7 +283,7 @@
"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").revisions).default;
"resourcet".revision = (((hackage."resourcet")."1.2.3").revisions).default;
"pretty".revision = (((hackage."pretty")."1.1.3.6").revisions).default;
"cabal-doctest".revision = (((hackage."cabal-doctest")."1.0.8").revisions).default;
"Glob".revision = (((hackage."Glob")."0.10.0").revisions).default;
@ -295,7 +295,7 @@
"aeson".flags.developer = 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.16").revisions).default;
"th-lift-instances".revision = (((hackage."th-lift-instances")."0.1.15").revisions).default;
"base-orphans".revision = (((hackage."base-orphans")."0.8.2").revisions).default;
"th-abstraction".revision = (((hackage."th-abstraction")."0.3.2.0").revisions).default;
"memory".revision = (((hackage."memory")."0.15.0").revisions).default;
@ -327,7 +327,6 @@
"containers" = "0.6.0.1";
"bytestring" = "0.10.8.2";
"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";

View File

@ -0,0 +1,160 @@
{ system
, compiler
, flags
, pkgs
, hsPkgs
, pkgconfPkgs
, errorHandler
, config
, ... }:
{
flags = { small_base = true; };
package = {
specVersion = "1.8";
identifier = { name = "alex"; version = "3.2.5"; };
license = "BSD-3-Clause";
copyright = "(c) Chis Dornan, Simon Marlow";
maintainer = "Simon Marlow <marlowsd@gmail.com>";
author = "Chris Dornan and Simon Marlow";
homepage = "http://www.haskell.org/alex/";
url = "";
synopsis = "Alex is a tool for generating lexical analysers in Haskell";
description = "Alex is a tool for generating lexical analysers in Haskell.\nIt takes a description of tokens based on regular\nexpressions and generates a Haskell module containing code\nfor scanning text efficiently. It is similar to the tool\nlex or flex for C/C++.";
buildType = "Simple";
isLocal = true;
detailLevel = "FullDetails";
licenseFiles = [ "LICENSE" ];
dataDir = "data/";
dataFiles = [
"AlexTemplate"
"AlexTemplate-ghc"
"AlexTemplate-ghc-nopred"
"AlexTemplate-ghc-debug"
"AlexTemplate-debug"
"AlexWrapper-basic"
"AlexWrapper-basic-bytestring"
"AlexWrapper-strict-bytestring"
"AlexWrapper-posn"
"AlexWrapper-posn-bytestring"
"AlexWrapper-monad"
"AlexWrapper-monad-bytestring"
"AlexWrapper-monadUserState"
"AlexWrapper-monadUserState-bytestring"
"AlexWrapper-gscan"
];
extraSrcFiles = [
"CHANGELOG.md"
"README.md"
"TODO"
"alex.spec"
"doc/Makefile"
"doc/aclocal.m4"
"doc/alex.1.in"
"doc/alex.xml"
"doc/config.mk.in"
"doc/configure.ac"
"doc/docbook-xml.mk"
"doc/fptools.css"
"examples/Makefile"
"examples/Tokens.x"
"examples/Tokens_gscan.x"
"examples/Tokens_posn.x"
"examples/examples.x"
"examples/haskell.x"
"examples/lit.x"
"examples/pp.x"
"examples/state.x"
"examples/tiny.y"
"examples/words.x"
"examples/words_monad.x"
"examples/words_posn.x"
"src/Parser.y.boot"
"src/Scan.x.boot"
"src/ghc_hooks.c"
"templates/GenericTemplate.hs"
"templates/wrappers.hs"
"tests/Makefile"
"tests/simple.x"
"tests/null.x"
"tests/tokens.x"
"tests/tokens_gscan.x"
"tests/tokens_posn.x"
"tests/tokens_bytestring.x"
"tests/tokens_posn_bytestring.x"
"tests/tokens_scan_user.x"
"tests/tokens_strict_bytestring.x"
"tests/tokens_monad_bytestring.x"
"tests/tokens_monadUserState_bytestring.x"
"tests/tokens_bytestring_unicode.x"
"tests/basic_typeclass.x"
"tests/basic_typeclass_bytestring.x"
"tests/default_typeclass.x"
"tests/gscan_typeclass.x"
"tests/posn_typeclass.x"
"tests/monad_typeclass.x"
"tests/monad_typeclass_bytestring.x"
"tests/monadUserState_typeclass.x"
"tests/monadUserState_typeclass_bytestring.x"
"tests/posn_typeclass_bytestring.x"
"tests/strict_typeclass.x"
"tests/unicode.x"
];
extraTmpFiles = [];
extraDocFiles = [];
};
components = {
exes = {
"alex" = {
depends = [
(hsPkgs."base" or (errorHandler.buildDepError "base"))
] ++ (if flags.small_base
then [
(hsPkgs."base" or (errorHandler.buildDepError "base"))
(hsPkgs."array" or (errorHandler.buildDepError "array"))
(hsPkgs."containers" or (errorHandler.buildDepError "containers"))
(hsPkgs."directory" or (errorHandler.buildDepError "directory"))
]
else [ (hsPkgs."base" or (errorHandler.buildDepError "base")) ]);
buildable = true;
modules = [
"AbsSyn"
"CharSet"
"DFA"
"DFAMin"
"DFS"
"Info"
"Map"
"NFA"
"Output"
"Paths_alex"
"Parser"
"ParseMonad"
"Scan"
"Set"
"Sort"
"Util"
"UTF8"
"Data/Ranged"
"Data/Ranged/Boundaries"
"Data/Ranged/RangedSet"
"Data/Ranged/Ranges"
];
hsSourceDirs = [ "src" ];
mainPath = [ "Main.hs" ] ++ [ "" ];
};
};
tests = {
"tests" = {
depends = [
(hsPkgs."base" or (errorHandler.buildDepError "base"))
(hsPkgs."process" or (errorHandler.buildDepError "process"))
];
build-tools = [
(hsPkgs.buildPackages.alex or (pkgs.buildPackages.alex or (errorHandler.buildToolDepError "alex")))
];
buildable = true;
mainPath = [ "test.hs" ];
};
};
};
} // rec { src = (pkgs.lib).mkDefault ../.; }

49
materialized/ghc883/alex/default.nix generated Normal file
View File

@ -0,0 +1,49 @@
{
pkgs = hackage:
{
packages = {
"ghc-prim".revision = (((hackage."ghc-prim")."0.5.3").revisions).default;
"unix".revision = (((hackage."unix")."2.7.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.0").revisions).default;
"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.8.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;
};
compiler = {
version = "8.8.3";
nix-name = "ghc883";
packages = {
"ghc-prim" = "0.5.3";
"unix" = "2.7.2.2";
"rts" = "1.0";
"deepseq" = "1.4.4.0";
"directory" = "1.3.6.0";
"containers" = "0.6.2.1";
"bytestring" = "0.10.10.0";
"base" = "4.13.0.0";
"time" = "1.9.3";
"filepath" = "1.4.2.1";
"process" = "1.6.8.0";
"array" = "0.5.4.0";
"integer-gmp" = "1.0.2.0";
};
};
};
extras = hackage:
{ packages = { alex = ./.plan.nix/alex.nix; }; };
modules = [
({ lib, ... }:
{
packages = {
"alex" = { flags = { "small_base" = lib.mkOverride 900 true; }; };
};
})
];
}

View File

@ -0,0 +1,340 @@
{ system
, compiler
, flags
, pkgs
, hsPkgs
, pkgconfPkgs
, errorHandler
, config
, ... }:
{
flags = {
native-dns = true;
debug-expensive-assertions = false;
debug-conflict-sets = false;
debug-tracetree = false;
lukko = true;
};
package = {
specVersion = "1.10";
identifier = { name = "cabal-install"; version = "3.2.0.0"; };
license = "BSD-3-Clause";
copyright = "2003-2020, Cabal Development Team";
maintainer = "Cabal Development Team <cabal-devel@haskell.org>";
author = "Cabal Development Team (see AUTHORS file)";
homepage = "http://www.haskell.org/cabal/";
url = "";
synopsis = "The command-line interface for Cabal and Hackage.";
description = "The \\'cabal\\' command-line program simplifies the process of managing\nHaskell software by automating the fetching, configuration, compilation\nand installation of Haskell libraries and programs.";
buildType = "Custom";
isLocal = true;
setup-depends = [
(hsPkgs.buildPackages.Cabal or (pkgs.buildPackages.Cabal or (errorHandler.buildToolDepError "Cabal")))
(hsPkgs.buildPackages.base or (pkgs.buildPackages.base or (errorHandler.buildToolDepError "base")))
(hsPkgs.buildPackages.process or (pkgs.buildPackages.process or (errorHandler.buildToolDepError "process")))
(hsPkgs.buildPackages.filepath or (pkgs.buildPackages.filepath or (errorHandler.buildToolDepError "filepath")))
];
detailLevel = "FullDetails";
licenseFiles = [ "LICENSE" ];
dataDir = "";
dataFiles = [];
extraSrcFiles = [
"README.md"
"bash-completion/cabal"
"bootstrap.sh"
"changelog"
"tests/IntegrationTests2/build/keep-going/cabal.project"
"tests/IntegrationTests2/build/keep-going/p/P.hs"
"tests/IntegrationTests2/build/keep-going/p/p.cabal"
"tests/IntegrationTests2/build/keep-going/q/Q.hs"
"tests/IntegrationTests2/build/keep-going/q/q.cabal"
"tests/IntegrationTests2/build/local-tarball/cabal.project"
"tests/IntegrationTests2/build/local-tarball/q/Q.hs"
"tests/IntegrationTests2/build/local-tarball/q/q.cabal"
"tests/IntegrationTests2/build/setup-custom1/A.hs"
"tests/IntegrationTests2/build/setup-custom1/Setup.hs"
"tests/IntegrationTests2/build/setup-custom1/a.cabal"
"tests/IntegrationTests2/build/setup-custom2/A.hs"
"tests/IntegrationTests2/build/setup-custom2/Setup.hs"
"tests/IntegrationTests2/build/setup-custom2/a.cabal"
"tests/IntegrationTests2/build/setup-simple/A.hs"
"tests/IntegrationTests2/build/setup-simple/Setup.hs"
"tests/IntegrationTests2/build/setup-simple/a.cabal"
"tests/IntegrationTests2/exception/bad-config/cabal.project"
"tests/IntegrationTests2/exception/build/Main.hs"
"tests/IntegrationTests2/exception/build/a.cabal"
"tests/IntegrationTests2/exception/configure/a.cabal"
"tests/IntegrationTests2/exception/no-pkg/empty.in"
"tests/IntegrationTests2/exception/no-pkg2/cabal.project"
"tests/IntegrationTests2/regression/3324/cabal.project"
"tests/IntegrationTests2/regression/3324/p/P.hs"
"tests/IntegrationTests2/regression/3324/p/p.cabal"
"tests/IntegrationTests2/regression/3324/q/Q.hs"
"tests/IntegrationTests2/regression/3324/q/q.cabal"
"tests/IntegrationTests2/targets/all-disabled/cabal.project"
"tests/IntegrationTests2/targets/all-disabled/p.cabal"
"tests/IntegrationTests2/targets/benchmarks-disabled/cabal.project"
"tests/IntegrationTests2/targets/benchmarks-disabled/p.cabal"
"tests/IntegrationTests2/targets/benchmarks-disabled/q/q.cabal"
"tests/IntegrationTests2/targets/complex/cabal.project"
"tests/IntegrationTests2/targets/complex/q/Q.hs"
"tests/IntegrationTests2/targets/complex/q/q.cabal"
"tests/IntegrationTests2/targets/empty-pkg/cabal.project"
"tests/IntegrationTests2/targets/empty-pkg/p.cabal"
"tests/IntegrationTests2/targets/empty/cabal.project"
"tests/IntegrationTests2/targets/empty/foo.hs"
"tests/IntegrationTests2/targets/exes-disabled/cabal.project"
"tests/IntegrationTests2/targets/exes-disabled/p/p.cabal"
"tests/IntegrationTests2/targets/exes-disabled/q/q.cabal"
"tests/IntegrationTests2/targets/lib-only/p.cabal"
"tests/IntegrationTests2/targets/libs-disabled/cabal.project"
"tests/IntegrationTests2/targets/libs-disabled/p/p.cabal"
"tests/IntegrationTests2/targets/libs-disabled/q/q.cabal"
"tests/IntegrationTests2/targets/multiple-exes/cabal.project"
"tests/IntegrationTests2/targets/multiple-exes/p.cabal"
"tests/IntegrationTests2/targets/multiple-libs/cabal.project"
"tests/IntegrationTests2/targets/multiple-libs/p/p.cabal"
"tests/IntegrationTests2/targets/multiple-libs/q/q.cabal"
"tests/IntegrationTests2/targets/multiple-tests/cabal.project"
"tests/IntegrationTests2/targets/multiple-tests/p.cabal"
"tests/IntegrationTests2/targets/simple/P.hs"
"tests/IntegrationTests2/targets/simple/cabal.project"
"tests/IntegrationTests2/targets/simple/p.cabal"
"tests/IntegrationTests2/targets/simple/q/QQ.hs"
"tests/IntegrationTests2/targets/simple/q/q.cabal"
"tests/IntegrationTests2/targets/test-only/p.cabal"
"tests/IntegrationTests2/targets/tests-disabled/cabal.project"
"tests/IntegrationTests2/targets/tests-disabled/p.cabal"
"tests/IntegrationTests2/targets/tests-disabled/q/q.cabal"
"tests/IntegrationTests2/targets/variety/cabal.project"
"tests/IntegrationTests2/targets/variety/p.cabal"
"tests/IntegrationTests2/build/local-tarball/p-0.1.tar.gz"
];
extraTmpFiles = [];
extraDocFiles = [];
};
components = {
exes = {
"cabal" = {
depends = ((((([
(hsPkgs."async" or (errorHandler.buildDepError "async"))
(hsPkgs."array" or (errorHandler.buildDepError "array"))
(hsPkgs."base" or (errorHandler.buildDepError "base"))
(hsPkgs."base16-bytestring" or (errorHandler.buildDepError "base16-bytestring"))
(hsPkgs."binary" or (errorHandler.buildDepError "binary"))
(hsPkgs."bytestring" or (errorHandler.buildDepError "bytestring"))
(hsPkgs."Cabal" or (errorHandler.buildDepError "Cabal"))
(hsPkgs."containers" or (errorHandler.buildDepError "containers"))
(hsPkgs."cryptohash-sha256" or (errorHandler.buildDepError "cryptohash-sha256"))
(hsPkgs."deepseq" or (errorHandler.buildDepError "deepseq"))
(hsPkgs."directory" or (errorHandler.buildDepError "directory"))
(hsPkgs."echo" or (errorHandler.buildDepError "echo"))
(hsPkgs."edit-distance" or (errorHandler.buildDepError "edit-distance"))
(hsPkgs."filepath" or (errorHandler.buildDepError "filepath"))
(hsPkgs."hashable" or (errorHandler.buildDepError "hashable"))
(hsPkgs."HTTP" or (errorHandler.buildDepError "HTTP"))
(hsPkgs."mtl" or (errorHandler.buildDepError "mtl"))
(hsPkgs."network-uri" or (errorHandler.buildDepError "network-uri"))
(hsPkgs."network" or (errorHandler.buildDepError "network"))
(hsPkgs."pretty" or (errorHandler.buildDepError "pretty"))
(hsPkgs."process" or (errorHandler.buildDepError "process"))
(hsPkgs."random" or (errorHandler.buildDepError "random"))
(hsPkgs."stm" or (errorHandler.buildDepError "stm"))
(hsPkgs."tar" or (errorHandler.buildDepError "tar"))
(hsPkgs."time" or (errorHandler.buildDepError "time"))
(hsPkgs."transformers" or (errorHandler.buildDepError "transformers"))
(hsPkgs."zlib" or (errorHandler.buildDepError "zlib"))
(hsPkgs."hackage-security" or (errorHandler.buildDepError "hackage-security"))
(hsPkgs."text" or (errorHandler.buildDepError "text"))
(hsPkgs."parsec" or (errorHandler.buildDepError "parsec"))
] ++ (pkgs.lib).optionals (!(compiler.isGhc && (compiler.version).ge "8.0")) [
(hsPkgs."fail" or (errorHandler.buildDepError "fail"))
(hsPkgs."semigroups" or (errorHandler.buildDepError "semigroups"))
]) ++ (pkgs.lib).optionals (flags.native-dns) (if system.isWindows
then [ (hsPkgs."windns" or (errorHandler.buildDepError "windns")) ]
else [
(hsPkgs."resolv" or (errorHandler.buildDepError "resolv"))
])) ++ (if system.isWindows
then [ (hsPkgs."Win32" or (errorHandler.buildDepError "Win32")) ]
else [
(hsPkgs."unix" or (errorHandler.buildDepError "unix"))
])) ++ (if flags.lukko
then [ (hsPkgs."lukko" or (errorHandler.buildDepError "lukko")) ]
else [
(hsPkgs."base" or (errorHandler.buildDepError "base"))
])) ++ (pkgs.lib).optional (flags.debug-conflict-sets) (hsPkgs."base" or (errorHandler.buildDepError "base"))) ++ (pkgs.lib).optional (flags.debug-tracetree) (hsPkgs."tracetree" or (errorHandler.buildDepError "tracetree"));
libs = (pkgs.lib).optional (system.isAix) (pkgs."bsd" or (errorHandler.sysDepError "bsd"));
buildable = true;
modules = [
"Distribution/Deprecated/ParseUtils"
"Distribution/Deprecated/ReadP"
"Distribution/Deprecated/Text"
"Distribution/Deprecated/ViewAsFieldDescr"
"Distribution/Client/BuildReports/Anonymous"
"Distribution/Client/BuildReports/Storage"
"Distribution/Client/BuildReports/Types"
"Distribution/Client/BuildReports/Upload"
"Distribution/Client/Check"
"Distribution/Client/CmdBench"
"Distribution/Client/CmdBuild"
"Distribution/Client/CmdClean"
"Distribution/Client/CmdConfigure"
"Distribution/Client/CmdUpdate"
"Distribution/Client/CmdErrorMessages"
"Distribution/Client/CmdExec"
"Distribution/Client/CmdFreeze"
"Distribution/Client/CmdHaddock"
"Distribution/Client/CmdInstall"
"Distribution/Client/CmdInstall/ClientInstallFlags"
"Distribution/Client/CmdRepl"
"Distribution/Client/CmdRun"
"Distribution/Client/CmdRun/ClientRunFlags"
"Distribution/Client/CmdTest"
"Distribution/Client/CmdLegacy"
"Distribution/Client/CmdSdist"
"Distribution/Client/Compat/Directory"
"Distribution/Client/Compat/ExecutablePath"
"Distribution/Client/Compat/FilePerms"
"Distribution/Client/Compat/Orphans"
"Distribution/Client/Compat/Prelude"
"Distribution/Client/Compat/Process"
"Distribution/Client/Compat/Semaphore"
"Distribution/Client/Config"
"Distribution/Client/Configure"
"Distribution/Client/Dependency"
"Distribution/Client/Dependency/Types"
"Distribution/Client/DistDirLayout"
"Distribution/Client/Exec"
"Distribution/Client/Fetch"
"Distribution/Client/FetchUtils"
"Distribution/Client/FileMonitor"
"Distribution/Client/Freeze"
"Distribution/Client/GZipUtils"
"Distribution/Client/GenBounds"
"Distribution/Client/Get"
"Distribution/Client/Glob"
"Distribution/Client/GlobalFlags"
"Distribution/Client/Haddock"
"Distribution/Client/HashValue"
"Distribution/Client/HttpUtils"
"Distribution/Client/IndexUtils"
"Distribution/Client/IndexUtils/Timestamp"
"Distribution/Client/Init"
"Distribution/Client/Init/Heuristics"
"Distribution/Client/Init/Licenses"
"Distribution/Client/Init/Types"
"Distribution/Client/Install"
"Distribution/Client/InstallPlan"
"Distribution/Client/InstallSymlink"
"Distribution/Client/JobControl"
"Distribution/Client/List"
"Distribution/Client/Manpage"
"Distribution/Client/Nix"
"Distribution/Client/Outdated"
"Distribution/Client/PackageHash"
"Distribution/Client/PackageUtils"
"Distribution/Client/ParseUtils"
"Distribution/Client/ProjectBuilding"
"Distribution/Client/ProjectBuilding/Types"
"Distribution/Client/ProjectConfig"
"Distribution/Client/ProjectConfig/Legacy"
"Distribution/Client/ProjectConfig/Types"
"Distribution/Client/ProjectOrchestration"
"Distribution/Client/ProjectPlanOutput"
"Distribution/Client/ProjectPlanning"
"Distribution/Client/ProjectPlanning/Types"
"Distribution/Client/RebuildMonad"
"Distribution/Client/Reconfigure"
"Distribution/Client/Run"
"Distribution/Client/Sandbox"
"Distribution/Client/Sandbox/Index"
"Distribution/Client/Sandbox/PackageEnvironment"
"Distribution/Client/Sandbox/Timestamp"
"Distribution/Client/Sandbox/Types"
"Distribution/Client/SavedFlags"
"Distribution/Client/Security/DNS"
"Distribution/Client/Security/HTTP"
"Distribution/Client/Setup"
"Distribution/Client/SetupWrapper"
"Distribution/Client/SolverInstallPlan"
"Distribution/Client/SourceFiles"
"Distribution/Client/SourceRepo"
"Distribution/Client/SrcDist"
"Distribution/Client/Store"
"Distribution/Client/Tar"
"Distribution/Client/TargetSelector"
"Distribution/Client/Targets"
"Distribution/Client/Types"
"Distribution/Client/Update"
"Distribution/Client/Upload"
"Distribution/Client/Utils"
"Distribution/Client/Utils/Assertion"
"Distribution/Client/Utils/Json"
"Distribution/Client/Utils/Parsec"
"Distribution/Client/VCS"
"Distribution/Client/Win32SelfUpgrade"
"Distribution/Client/World"
"Distribution/Solver/Compat/Prelude"
"Distribution/Solver/Modular"
"Distribution/Solver/Modular/Assignment"
"Distribution/Solver/Modular/Builder"
"Distribution/Solver/Modular/Configured"
"Distribution/Solver/Modular/ConfiguredConversion"
"Distribution/Solver/Modular/ConflictSet"
"Distribution/Solver/Modular/Cycles"
"Distribution/Solver/Modular/Dependency"
"Distribution/Solver/Modular/Explore"
"Distribution/Solver/Modular/Flag"
"Distribution/Solver/Modular/Index"
"Distribution/Solver/Modular/IndexConversion"
"Distribution/Solver/Modular/LabeledGraph"
"Distribution/Solver/Modular/Linking"
"Distribution/Solver/Modular/Log"
"Distribution/Solver/Modular/Message"
"Distribution/Solver/Modular/PSQ"
"Distribution/Solver/Modular/Package"
"Distribution/Solver/Modular/Preference"
"Distribution/Solver/Modular/RetryLog"
"Distribution/Solver/Modular/Solver"
"Distribution/Solver/Modular/Tree"
"Distribution/Solver/Modular/Validate"
"Distribution/Solver/Modular/Var"
"Distribution/Solver/Modular/Version"
"Distribution/Solver/Modular/WeightedPSQ"
"Distribution/Solver/Types/ComponentDeps"
"Distribution/Solver/Types/ConstraintSource"
"Distribution/Solver/Types/DependencyResolver"
"Distribution/Solver/Types/Flag"
"Distribution/Solver/Types/InstSolverPackage"
"Distribution/Solver/Types/InstalledPreference"
"Distribution/Solver/Types/LabeledPackageConstraint"
"Distribution/Solver/Types/OptionalStanza"
"Distribution/Solver/Types/PackageConstraint"
"Distribution/Solver/Types/PackageFixedDeps"
"Distribution/Solver/Types/PackageIndex"
"Distribution/Solver/Types/PackagePath"
"Distribution/Solver/Types/PackagePreferences"
"Distribution/Solver/Types/PkgConfigDb"
"Distribution/Solver/Types/Progress"
"Distribution/Solver/Types/ResolverPackage"
"Distribution/Solver/Types/Settings"
"Distribution/Solver/Types/SolverId"
"Distribution/Solver/Types/SolverPackage"
"Distribution/Solver/Types/SourcePackage"
"Distribution/Solver/Types/Variable"
"Paths_cabal_install"
];
hsSourceDirs = [ "main" "." ];
mainPath = (((((((([
"Main.hs"
] ++ (pkgs.lib).optionals (compiler.isGhc && (compiler.version).ge "8.0") ([
""
] ++ (pkgs.lib).optional (compiler.isGhc && (compiler.version).lt "8.8") "")) ++ (pkgs.lib).optional (system.isAix) "") ++ (pkgs.lib).optional (!(compiler.isGhc && (compiler.version).ge "8.0")) "") ++ (pkgs.lib).optionals (flags.native-dns) ([
""
] ++ [ "" ])) ++ [ "" ]) ++ [
""
]) ++ (pkgs.lib).optional (flags.debug-expensive-assertions) "") ++ (pkgs.lib).optional (flags.debug-conflict-sets) "") ++ (pkgs.lib).optional (flags.debug-tracetree) "";
};
};
};
} // rec { src = (pkgs.lib).mkDefault ../.; }

View File

@ -0,0 +1,122 @@
{
pkgs = hackage:
{
packages = {
"cryptohash-sha256".revision = (((hackage."cryptohash-sha256")."0.11.101.0").revisions).default;
"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;
"tar".flags.old-time = false;
"tar".flags.old-bytestring = false;
"ghc-prim".revision = (((hackage."ghc-prim")."0.5.3").revisions).default;
"edit-distance".revision = (((hackage."edit-distance")."0.2.2.1").revisions).default;
"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.1").revisions).default;
"zlib".flags.non-blocking-ffi = false;
"zlib".flags.pkg-config = false;
"rts".revision = (((hackage."rts")."1.0").revisions).default;
"deepseq".revision = (((hackage."deepseq")."1.4.4.0").revisions).default;
"random".revision = (((hackage."random")."1.1").revisions).default;
"network".revision = (((hackage."network")."3.1.1.1").revisions).default;
"async".revision = (((hackage."async")."2.2.2").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".flags.example = false;
"hsc2hs".revision = (((hackage."hsc2hs")."0.68.7").revisions).default;
"hsc2hs".flags.in-ghc-tree = false;
"resolv".revision = (((hackage."resolv")."0.1.2.0").revisions).default;
"directory".revision = (((hackage."directory")."1.3.6.0").revisions).default;
"template-haskell".revision = (((hackage."template-haskell")."2.15.0.0").revisions).default;
"containers".revision = (((hackage."containers")."0.6.2.1").revisions).default;
"bytestring".revision = (((hackage."bytestring")."0.10.10.0").revisions).default;
"text".revision = (((hackage."text")."1.2.4.0").revisions).default;
"Cabal".revision = (((hackage."Cabal")."3.2.0.0").revisions).default;
"Cabal".flags.bundled-binary-generic = false;
"base64-bytestring".revision = (((hackage."base64-bytestring")."1.0.0.3").revisions).default;
"base".revision = (((hackage."base")."4.13.0.0").revisions).default;
"time".revision = (((hackage."time")."1.9.3").revisions).default;
"base16-bytestring".revision = (((hackage."base16-bytestring")."0.1.1.6").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;
"HTTP".revision = (((hackage."HTTP")."4000.3.14").revisions).default;
"HTTP".flags.mtl1 = false;
"HTTP".flags.conduit10 = false;
"HTTP".flags.warn-as-error = false;
"HTTP".flags.warp-tests = false;
"HTTP".flags.network-uri = true;
"filepath".revision = (((hackage."filepath")."1.4.2.1").revisions).default;
"ed25519".revision = (((hackage."ed25519")."0.0.5.0").revisions).default;
"ed25519".flags.test-hlint = true;
"ed25519".flags.test-properties = true;
"ed25519".flags.test-doctests = true;
"ed25519".flags.no-donna = true;
"process".revision = (((hackage."process")."1.6.8.0").revisions).default;
"pretty".revision = (((hackage."pretty")."1.1.3.6").revisions).default;
"lukko".revision = (((hackage."lukko")."0.1.1.2").revisions).default;
"lukko".flags.ofd-locking = true;
"ghc-boot-th".revision = (((hackage."ghc-boot-th")."8.8.3").revisions).default;
"array".revision = (((hackage."array")."0.5.4.0").revisions).default;
"hackage-security".revision = (((hackage."hackage-security")."0.6.0.1").revisions).default;
"hackage-security".flags.old-directory = false;
"hackage-security".flags.use-network-uri = true;
"hackage-security".flags.base48 = true;
"hackage-security".flags.lukko = true;
"hackage-security".flags.mtl21 = false;
"integer-gmp".revision = (((hackage."integer-gmp")."1.0.2.0").revisions).default;
};
compiler = {
version = "8.8.3";
nix-name = "ghc883";
packages = {
"binary" = "0.8.7.0";
"ghc-prim" = "0.5.3";
"stm" = "2.5.0.0";
"unix" = "2.7.2.2";
"mtl" = "2.2.2";
"rts" = "1.0";
"deepseq" = "1.4.4.0";
"parsec" = "3.1.14.0";
"directory" = "1.3.6.0";
"template-haskell" = "2.15.0.0";
"containers" = "0.6.2.1";
"bytestring" = "0.10.10.0";
"text" = "1.2.4.0";
"base" = "4.13.0.0";
"time" = "1.9.3";
"transformers" = "0.5.6.2";
"filepath" = "1.4.2.1";
"process" = "1.6.8.0";
"pretty" = "1.1.3.6";
"ghc-boot-th" = "8.8.3";
"array" = "0.5.4.0";
"integer-gmp" = "1.0.2.0";
};
};
};
extras = hackage:
{ packages = { cabal-install = ./.plan.nix/cabal-install.nix; }; };
modules = [
({ lib, ... }:
{
packages = {
"cabal-install" = {
flags = {
"native-dns" = lib.mkOverride 900 true;
"debug-expensive-assertions" = lib.mkOverride 900 false;
"debug-tracetree" = lib.mkOverride 900 false;
"lukko" = lib.mkOverride 900 true;
"debug-conflict-sets" = lib.mkOverride 900 false;
};
};
};
})
];
}

View File

@ -0,0 +1,200 @@
{ system
, compiler
, flags
, pkgs
, hsPkgs
, pkgconfPkgs
, errorHandler
, config
, ... }:
{
flags = { small_base = true; };
package = {
specVersion = "1.8";
identifier = { name = "happy"; version = "1.19.12"; };
license = "BSD-2-Clause";
copyright = "(c) Andy Gill, Simon Marlow";
maintainer = "Simon Marlow <marlowsd@gmail.com>";
author = "Andy Gill and Simon Marlow";
homepage = "https://www.haskell.org/happy/";
url = "";
synopsis = "Happy is a parser generator for Haskell";
description = "Happy is a parser generator for Haskell. Given a grammar\nspecification in BNF, Happy generates Haskell code to parse the\ngrammar. Happy works in a similar way to the @yacc@ tool for C.";
buildType = "Simple";
isLocal = true;
detailLevel = "FullDetails";
licenseFiles = [ "LICENSE" ];
dataDir = "data/";
dataFiles = [
"HappyTemplate"
"HappyTemplate-arrays"
"HappyTemplate-arrays-coerce"
"HappyTemplate-arrays-coerce-debug"
"HappyTemplate-arrays-debug"
"HappyTemplate-arrays-ghc"
"HappyTemplate-arrays-ghc-debug"
"HappyTemplate-coerce"
"HappyTemplate-ghc"
"GLR_Base"
"GLR_Lib"
"GLR_Lib-ghc"
"GLR_Lib-ghc-debug"
];
extraSrcFiles = [
"ANNOUNCE"
"CHANGES"
"Makefile"
"README.md"
"TODO"
"doc/Makefile"
"doc/aclocal.m4"
"doc/config.mk.in"
"doc/configure.ac"
"doc/docbook-xml.mk"
"doc/fptools.css"
"doc/happy.1.in"
"doc/happy.xml"
"examples/glr/nlp/Main.lhs"
"examples/glr/nlp/Makefile"
"examples/glr/nlp/README"
"examples/glr/nlp/English.y"
"examples/glr/nlp/Hugs.lhs"
"examples/glr/Makefile"
"examples/glr/Makefile.defs"
"examples/glr/expr-eval/Main.lhs"
"examples/glr/expr-eval/Makefile"
"examples/glr/expr-eval/Expr.y"
"examples/glr/expr-eval/README"
"examples/glr/expr-eval/Hugs.lhs"
"examples/glr/expr-tree/Main.lhs"
"examples/glr/expr-tree/Makefile"
"examples/glr/expr-tree/Expr.y"
"examples/glr/expr-tree/README"
"examples/glr/expr-tree/Tree.lhs"
"examples/glr/expr-tree/Hugs.lhs"
"examples/glr/highly-ambiguous/Main.lhs"
"examples/glr/highly-ambiguous/Makefile"
"examples/glr/highly-ambiguous/Expr.y"
"examples/glr/highly-ambiguous/README"
"examples/glr/highly-ambiguous/Hugs.lhs"
"examples/glr/hidden-leftrec/Main.lhs"
"examples/glr/hidden-leftrec/Makefile"
"examples/glr/hidden-leftrec/Expr.y"
"examples/glr/hidden-leftrec/README"
"examples/glr/hidden-leftrec/Hugs.lhs"
"examples/glr/expr-monad/Main.lhs"
"examples/glr/expr-monad/Makefile"
"examples/glr/expr-monad/Expr.y"
"examples/glr/expr-monad/README"
"examples/glr/expr-monad/Hugs.lhs"
"examples/glr/bio-eg/Main.lhs"
"examples/glr/bio-eg/Makefile"
"examples/glr/bio-eg/Bio.y"
"examples/glr/bio-eg/README"
"examples/glr/bio-eg/1-1200.dna"
"examples/glr/bio-eg/1-600.dna"
"examples/glr/common/DV_lhs"
"examples/glr/common/DaVinciTypes.hs"
"examples/glr/packing/Main.lhs"
"examples/glr/packing/Makefile"
"examples/glr/packing/Expr.y"
"examples/glr/packing/README"
"examples/glr/packing/Hugs.lhs"
"examples/PgnParser.ly"
"examples/MonadTest.ly"
"examples/igloo/ParserM.hs"
"examples/igloo/Makefile"
"examples/igloo/Parser.y"
"examples/igloo/Foo.hs"
"examples/igloo/README"
"examples/igloo/Lexer.x"
"examples/README"
"examples/Calc.ly"
"examples/DavesExample.ly"
"examples/ErrorTest.ly"
"examples/ErlParser.ly"
"examples/SimonsExample.ly"
"examples/LexerTest.ly"
"happy.spec"
"src/ARRAY-NOTES"
"tests/AttrGrammar001.y"
"tests/AttrGrammar002.y"
"tests/Makefile"
"tests/Partial.ly"
"tests/Test.ly"
"tests/TestMulti.ly"
"tests/TestPrecedence.ly"
"tests/bogus-token.y"
"tests/bug001.ly"
"tests/bug002.y"
"tests/error001.stderr"
"tests/error001.stdout"
"tests/error001.y"
"tests/monad001.y"
"tests/monad002.ly"
"tests/monaderror.y"
"tests/precedence001.ly"
"tests/precedence002.y"
"tests/test_rules.y"
"tests/issue91.y"
"tests/issue93.y"
"tests/issue94.y"
"tests/issue95.y"
"tests/monaderror-explist.y"
"tests/typeclass_monad001.y"
"tests/typeclass_monad002.ly"
"tests/typeclass_monad_lexer.y"
"tests/rank2.y"
];
extraTmpFiles = [];
extraDocFiles = [];
};
components = {
exes = {
"happy" = {
depends = [
(hsPkgs."base" or (errorHandler.buildDepError "base"))
(hsPkgs."array" or (errorHandler.buildDepError "array"))
(hsPkgs."containers" or (errorHandler.buildDepError "containers"))
(hsPkgs."mtl" or (errorHandler.buildDepError "mtl"))
];
buildable = true;
modules = [
"Paths_happy"
"AbsSyn"
"First"
"GenUtils"
"Grammar"
"Info"
"LALR"
"Lexer"
"ParseMonad"
"Parser"
"ProduceCode"
"ProduceGLRCode"
"NameSet"
"Target"
"AttrGrammar"
"AttrGrammarParser"
"ParamRules"
"PrettyGrammar"
];
hsSourceDirs = [ "src" ];
mainPath = [ "Main.lhs" ];
};
};
tests = {
"tests" = {
depends = [
(hsPkgs."base" or (errorHandler.buildDepError "base"))
(hsPkgs."process" or (errorHandler.buildDepError "process"))
];
build-tools = [
(hsPkgs.buildPackages.happy or (pkgs.buildPackages.happy or (errorHandler.buildToolDepError "happy")))
];
buildable = true;
mainPath = [ "test.hs" ];
};
};
};
} // rec { src = (pkgs.lib).mkDefault ../.; }

53
materialized/ghc883/happy/default.nix generated Normal file
View File

@ -0,0 +1,53 @@
{
pkgs = hackage:
{
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.0").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.8.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;
};
compiler = {
version = "8.8.3";
nix-name = "ghc883";
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.0";
"base" = "4.13.0.0";
"time" = "1.9.3";
"transformers" = "0.5.6.2";
"filepath" = "1.4.2.1";
"process" = "1.6.8.0";
"array" = "0.5.4.0";
"integer-gmp" = "1.0.2.0";
};
};
};
extras = hackage:
{ packages = { happy = ./.plan.nix/happy.nix; }; };
modules = [
({ lib, ... }:
{
packages = {
"happy" = { flags = { "small_base" = lib.mkOverride 900 true; }; };
};
})
];
}

View File

@ -0,0 +1,100 @@
{ system
, compiler
, flags
, pkgs
, hsPkgs
, pkgconfPkgs
, errorHandler
, config
, ... }:
{
flags = { install-examples = false; };
package = {
specVersion = "1.10";
identifier = { name = "hackage-db"; version = "2.1.0"; };
license = "BSD-3-Clause";
copyright = "";
maintainer = "Peter Simons <simons@cryp.to>";
author = "Peter Simons, Alexander Altman, Ben James";
homepage = "https://github.com/peti/hackage-db#readme";
url = "";
synopsis = "Access cabal-install's Hackage database via Data.Map";
description = "This library provides convenient access to the local copy of the Hackage\ndatabase that \\\"cabal update\\\" creates. Check out\n<https://github.com/peti/hackage-db/tree/master/example/> for a collection\nof simple example programs that demonstrate how to use this code.";
buildType = "Simple";
isLocal = true;
detailLevel = "FullDetails";
licenseFiles = [ "LICENSE" ];
dataDir = "";
dataFiles = [];
extraSrcFiles = [];
extraTmpFiles = [];
extraDocFiles = [];
};
components = {
"library" = {
depends = [
(hsPkgs."base" or (errorHandler.buildDepError "base"))
(hsPkgs."Cabal" or (errorHandler.buildDepError "Cabal"))
(hsPkgs."aeson" or (errorHandler.buildDepError "aeson"))
(hsPkgs."bytestring" or (errorHandler.buildDepError "bytestring"))
(hsPkgs."containers" or (errorHandler.buildDepError "containers"))
(hsPkgs."directory" or (errorHandler.buildDepError "directory"))
(hsPkgs."exceptions" or (errorHandler.buildDepError "exceptions"))
(hsPkgs."filepath" or (errorHandler.buildDepError "filepath"))
(hsPkgs."tar" or (errorHandler.buildDepError "tar"))
(hsPkgs."time" or (errorHandler.buildDepError "time"))
(hsPkgs."utf8-string" or (errorHandler.buildDepError "utf8-string"))
];
buildable = true;
modules = [
"Paths_hackage_db"
"Distribution/Hackage/DB"
"Distribution/Hackage/DB/Builder"
"Distribution/Hackage/DB/Errors"
"Distribution/Hackage/DB/MetaData"
"Distribution/Hackage/DB/Parsed"
"Distribution/Hackage/DB/Path"
"Distribution/Hackage/DB/Unparsed"
"Distribution/Hackage/DB/Utility"
];
hsSourceDirs = [ "src" ];
};
exes = {
"list-known-versions" = {
depends = (pkgs.lib).optionals (flags.install-examples) [
(hsPkgs."base" or (errorHandler.buildDepError "base"))
(hsPkgs."Cabal" or (errorHandler.buildDepError "Cabal"))
(hsPkgs."bytestring" or (errorHandler.buildDepError "bytestring"))
(hsPkgs."containers" or (errorHandler.buildDepError "containers"))
(hsPkgs."hackage-db" or (errorHandler.buildDepError "hackage-db"))
];
buildable = if flags.install-examples then true else false;
hsSourceDirs = [ "example" ];
mainPath = [ "list-known-versions.hs" ] ++ [ "" ];
};
"show-meta-data" = {
depends = (pkgs.lib).optionals (flags.install-examples) [
(hsPkgs."base" or (errorHandler.buildDepError "base"))
(hsPkgs."Cabal" or (errorHandler.buildDepError "Cabal"))
(hsPkgs."containers" or (errorHandler.buildDepError "containers"))
(hsPkgs."hackage-db" or (errorHandler.buildDepError "hackage-db"))
(hsPkgs."utf8-string" or (errorHandler.buildDepError "utf8-string"))
];
buildable = if flags.install-examples then true else false;
hsSourceDirs = [ "example" ];
mainPath = [ "show-meta-data.hs" ] ++ [ "" ];
};
"show-package-versions" = {
depends = (pkgs.lib).optionals (flags.install-examples) [
(hsPkgs."base" or (errorHandler.buildDepError "base"))
(hsPkgs."Cabal" or (errorHandler.buildDepError "Cabal"))
(hsPkgs."containers" or (errorHandler.buildDepError "containers"))
(hsPkgs."hackage-db" or (errorHandler.buildDepError "hackage-db"))
];
buildable = if flags.install-examples then true else false;
hsSourceDirs = [ "example" ];
mainPath = [ "show-package-versions.hs" ] ++ [ "" ];
};
};
};
} // rec { src = (pkgs.lib).mkDefault .././.source-repository-packages/0; }

View File

@ -0,0 +1,233 @@
{ system
, compiler
, flags
, pkgs
, hsPkgs
, pkgconfPkgs
, errorHandler
, config
, ... }:
{
flags = {};
package = {
specVersion = "1.10";
identifier = { name = "nix-tools"; version = "0.1.0.0"; };
license = "BSD-3-Clause";
copyright = "";
maintainer = "moritz.angermann@gmail.com";
author = "Moritz Angermann";
homepage = "";
url = "";
synopsis = "cabal/stack to nix translation tools";
description = "A set of tools to aid in trating stack and cabal projects into nix expressions.";
buildType = "Simple";
isLocal = true;
detailLevel = "FullDetails";
licenseFiles = [ "LICENSE" ];
dataDir = "";
dataFiles = [];
extraSrcFiles = [ "ChangeLog.md" ];
extraTmpFiles = [];
extraDocFiles = [];
};
components = {
"library" = {
depends = [
(hsPkgs."base" or (errorHandler.buildDepError "base"))
(hsPkgs."Cabal" or (errorHandler.buildDepError "Cabal"))
(hsPkgs."aeson" or (errorHandler.buildDepError "aeson"))
(hsPkgs."aeson-pretty" or (errorHandler.buildDepError "aeson-pretty"))
(hsPkgs."base16-bytestring" or (errorHandler.buildDepError "base16-bytestring"))
(hsPkgs."bytestring" or (errorHandler.buildDepError "bytestring"))
(hsPkgs."cryptohash-sha256" or (errorHandler.buildDepError "cryptohash-sha256"))
(hsPkgs."containers" or (errorHandler.buildDepError "containers"))
(hsPkgs."data-fix" or (errorHandler.buildDepError "data-fix"))
(hsPkgs."deepseq" or (errorHandler.buildDepError "deepseq"))
(hsPkgs."directory" or (errorHandler.buildDepError "directory"))
(hsPkgs."extra" or (errorHandler.buildDepError "extra"))
(hsPkgs."filepath" or (errorHandler.buildDepError "filepath"))
(hsPkgs."hnix" or (errorHandler.buildDepError "hnix"))
(hsPkgs."hpack" or (errorHandler.buildDepError "hpack"))
(hsPkgs."http-client" or (errorHandler.buildDepError "http-client"))
(hsPkgs."http-client-tls" or (errorHandler.buildDepError "http-client-tls"))
(hsPkgs."http-types" or (errorHandler.buildDepError "http-types"))
(hsPkgs."optparse-applicative" or (errorHandler.buildDepError "optparse-applicative"))
(hsPkgs."prettyprinter" or (errorHandler.buildDepError "prettyprinter"))
(hsPkgs."process" or (errorHandler.buildDepError "process"))
(hsPkgs."text" or (errorHandler.buildDepError "text"))
(hsPkgs."transformers" or (errorHandler.buildDepError "transformers"))
(hsPkgs."unordered-containers" or (errorHandler.buildDepError "unordered-containers"))
(hsPkgs."yaml" or (errorHandler.buildDepError "yaml"))
];
buildable = true;
modules = [
"Cabal2Nix"
"Cabal2Nix/Util"
"Cabal2Nix/Plan"
"CabalName"
"CabalName/CLI"
"Distribution/Nixpkgs/Fetch"
"StackRepos"
"StackRepos/CLI"
"Stack2nix"
"Stack2nix/Cache"
"Stack2nix/CLI"
"Stack2nix/External/Resolve"
"Stack2nix/Project"
"Stack2nix/Stack"
];
hsSourceDirs = [ "lib" ];
};
exes = {
"cabal-to-nix" = {
depends = [
(hsPkgs."base" or (errorHandler.buildDepError "base"))
(hsPkgs."transformers" or (errorHandler.buildDepError "transformers"))
(hsPkgs."bytestring" or (errorHandler.buildDepError "bytestring"))
(hsPkgs."hpack" or (errorHandler.buildDepError "hpack"))
(hsPkgs."hnix" or (errorHandler.buildDepError "hnix"))
(hsPkgs."text" or (errorHandler.buildDepError "text"))
(hsPkgs."nix-tools" or (errorHandler.buildDepError "nix-tools"))
(hsPkgs."filepath" or (errorHandler.buildDepError "filepath"))
(hsPkgs."directory" or (errorHandler.buildDepError "directory"))
(hsPkgs."prettyprinter" or (errorHandler.buildDepError "prettyprinter"))
];
buildable = true;
hsSourceDirs = [ "cabal2nix" ];
mainPath = [ "Main.hs" ];
};
"hashes-to-nix" = {
depends = [
(hsPkgs."base" or (errorHandler.buildDepError "base"))
(hsPkgs."hnix" or (errorHandler.buildDepError "hnix"))
(hsPkgs."nix-tools" or (errorHandler.buildDepError "nix-tools"))
(hsPkgs."data-fix" or (errorHandler.buildDepError "data-fix"))
(hsPkgs."aeson" or (errorHandler.buildDepError "aeson"))
(hsPkgs."microlens" or (errorHandler.buildDepError "microlens"))
(hsPkgs."microlens-aeson" or (errorHandler.buildDepError "microlens-aeson"))
(hsPkgs."text" or (errorHandler.buildDepError "text"))
(hsPkgs."filepath" or (errorHandler.buildDepError "filepath"))
(hsPkgs."directory" or (errorHandler.buildDepError "directory"))
];
buildable = true;
hsSourceDirs = [ "hashes2nix" ];
mainPath = [ "Main.hs" ];
};
"plan-to-nix" = {
depends = [
(hsPkgs."base" or (errorHandler.buildDepError "base"))
(hsPkgs."nix-tools" or (errorHandler.buildDepError "nix-tools"))
(hsPkgs."hnix" or (errorHandler.buildDepError "hnix"))
(hsPkgs."Cabal" or (errorHandler.buildDepError "Cabal"))
(hsPkgs."text" or (errorHandler.buildDepError "text"))
(hsPkgs."hpack" or (errorHandler.buildDepError "hpack"))
(hsPkgs."unordered-containers" or (errorHandler.buildDepError "unordered-containers"))
(hsPkgs."vector" or (errorHandler.buildDepError "vector"))
(hsPkgs."aeson" or (errorHandler.buildDepError "aeson"))
(hsPkgs."microlens" or (errorHandler.buildDepError "microlens"))
(hsPkgs."microlens-aeson" or (errorHandler.buildDepError "microlens-aeson"))
(hsPkgs."optparse-applicative" or (errorHandler.buildDepError "optparse-applicative"))
(hsPkgs."prettyprinter" or (errorHandler.buildDepError "prettyprinter"))
(hsPkgs."filepath" or (errorHandler.buildDepError "filepath"))
(hsPkgs."directory" or (errorHandler.buildDepError "directory"))
(hsPkgs."bytestring" or (errorHandler.buildDepError "bytestring"))
(hsPkgs."transformers" or (errorHandler.buildDepError "transformers"))
(hsPkgs."extra" or (errorHandler.buildDepError "extra"))
];
buildable = true;
modules = [
"Plan2Nix"
"Plan2Nix/Cache"
"Plan2Nix/CLI"
"Plan2Nix/Project"
"Plan2Nix/Plan"
];
hsSourceDirs = [ "plan2nix" ];
mainPath = [ "Main.hs" ];
};
"hackage-to-nix" = {
depends = [
(hsPkgs."base" or (errorHandler.buildDepError "base"))
(hsPkgs."nix-tools" or (errorHandler.buildDepError "nix-tools"))
(hsPkgs."hackage-db" or (errorHandler.buildDepError "hackage-db"))
(hsPkgs."hnix" or (errorHandler.buildDepError "hnix"))
(hsPkgs."Cabal" or (errorHandler.buildDepError "Cabal"))
(hsPkgs."aeson" or (errorHandler.buildDepError "aeson"))
(hsPkgs."aeson-pretty" or (errorHandler.buildDepError "aeson-pretty"))
(hsPkgs."containers" or (errorHandler.buildDepError "containers"))
(hsPkgs."bytestring" or (errorHandler.buildDepError "bytestring"))
(hsPkgs."text" or (errorHandler.buildDepError "text"))
(hsPkgs."cryptohash-sha256" or (errorHandler.buildDepError "cryptohash-sha256"))
(hsPkgs."base16-bytestring" or (errorHandler.buildDepError "base16-bytestring"))
(hsPkgs."base64-bytestring" or (errorHandler.buildDepError "base64-bytestring"))
(hsPkgs."filepath" or (errorHandler.buildDepError "filepath"))
(hsPkgs."directory" or (errorHandler.buildDepError "directory"))
(hsPkgs."transformers" or (errorHandler.buildDepError "transformers"))
];
buildable = true;
hsSourceDirs = [ "hackage2nix" ];
mainPath = [ "Main.hs" ];
};
"lts-to-nix" = {
depends = [
(hsPkgs."base" or (errorHandler.buildDepError "base"))
(hsPkgs."nix-tools" or (errorHandler.buildDepError "nix-tools"))
(hsPkgs."hnix" or (errorHandler.buildDepError "hnix"))
(hsPkgs."yaml" or (errorHandler.buildDepError "yaml"))
(hsPkgs."aeson" or (errorHandler.buildDepError "aeson"))
(hsPkgs."microlens" or (errorHandler.buildDepError "microlens"))
(hsPkgs."microlens-aeson" or (errorHandler.buildDepError "microlens-aeson"))
(hsPkgs."text" or (errorHandler.buildDepError "text"))
(hsPkgs."filepath" or (errorHandler.buildDepError "filepath"))
(hsPkgs."directory" or (errorHandler.buildDepError "directory"))
(hsPkgs."unordered-containers" or (errorHandler.buildDepError "unordered-containers"))
(hsPkgs."vector" or (errorHandler.buildDepError "vector"))
(hsPkgs."Cabal" or (errorHandler.buildDepError "Cabal"))
];
buildable = true;
hsSourceDirs = [ "lts2nix" ];
mainPath = [ "Main.hs" ];
};
"stack-to-nix" = {
depends = [
(hsPkgs."base" or (errorHandler.buildDepError "base"))
(hsPkgs."nix-tools" or (errorHandler.buildDepError "nix-tools"))
];
buildable = true;
hsSourceDirs = [ "stack2nix" ];
mainPath = [ "Main.hs" ];
};
"truncate-index" = {
depends = [
(hsPkgs."base" or (errorHandler.buildDepError "base"))
(hsPkgs."optparse-applicative" or (errorHandler.buildDepError "optparse-applicative"))
(hsPkgs."zlib" or (errorHandler.buildDepError "zlib"))
(hsPkgs."tar" or (errorHandler.buildDepError "tar"))
(hsPkgs."bytestring" or (errorHandler.buildDepError "bytestring"))
(hsPkgs."time" or (errorHandler.buildDepError "time"))
];
buildable = true;
hsSourceDirs = [ "truncate-index" ];
mainPath = [ "Main.hs" ];
};
"stack-repos" = {
depends = [
(hsPkgs."base" or (errorHandler.buildDepError "base"))
(hsPkgs."nix-tools" or (errorHandler.buildDepError "nix-tools"))
];
buildable = true;
hsSourceDirs = [ "stack-repos" ];
mainPath = [ "Main.hs" ];
};
"cabal-name" = {
depends = [
(hsPkgs."base" or (errorHandler.buildDepError "base"))
(hsPkgs."nix-tools" or (errorHandler.buildDepError "nix-tools"))
];
buildable = true;
hsSourceDirs = [ "cabal-name" ];
mainPath = [ "Main.hs" ];
};
};
};
} // rec { src = (pkgs.lib).mkDefault ../.; }

View File

@ -22,7 +22,7 @@
"exceptions".flags.transformers-0-4 = true;
"cryptohash-sha256".revision = (((hackage."cryptohash-sha256")."0.11.101.0").revisions).default;
"cryptohash-sha256".flags.exe = false;
"binary".revision = (((hackage."binary")."0.8.5.1").revisions).default;
"binary".revision = (((hackage."binary")."0.8.7.0").revisions).default;
"interpolate".revision = (((hackage."interpolate")."0.2.0").revisions).default;
"hnix".revision = (((hackage."hnix")."0.7.1").revisions).default;
"hnix".flags.profiling = false;
@ -32,7 +32,7 @@
"tar".flags.old-bytestring = false;
"regex-tdfa".revision = (((hackage."regex-tdfa")."1.3.1.0").revisions).default;
"regex-tdfa".flags.force-o2 = false;
"ghc-prim".revision = (((hackage."ghc-prim")."0.5.2.0").revisions).default;
"ghc-prim".revision = (((hackage."ghc-prim")."0.5.3").revisions).default;
"text-metrics".revision = (((hackage."text-metrics")."0.3.0").revisions).default;
"text-metrics".flags.dev = false;
"utf8-string".revision = (((hackage."utf8-string")."1.0.1.1").revisions).default;
@ -41,12 +41,12 @@
"bifunctors".flags.tagged = true;
"hashing".revision = (((hackage."hashing")."0.1.0.1").revisions).default;
"extra".revision = (((hackage."extra")."1.7.1").revisions).default;
"haskeline".revision = (((hackage."haskeline")."0.7.4.2").revisions).default;
"haskeline".revision = (((hackage."haskeline")."0.7.5.0").revisions).default;
"logict".revision = (((hackage."logict")."0.7.0.2").revisions).default;
"x509-validation".revision = (((hackage."x509-validation")."1.6.11").revisions).default;
"split".revision = (((hackage."split")."0.2.3.4").revisions).default;
"data-fix".revision = (((hackage."data-fix")."0.2.1").revisions).default;
"stm".revision = (((hackage."stm")."2.4.5.1").revisions).default;
"stm".revision = (((hackage."stm")."2.5.0.0").revisions).default;
"base-compat-batteries".revision = (((hackage."base-compat-batteries")."0.11.1").revisions).default;
"constraints-extras".revision = (((hackage."constraints-extras")."0.3.0.2").revisions).default;
"constraints-extras".flags.build-readme = true;
@ -81,7 +81,7 @@
"adjunctions".revision = (((hackage."adjunctions")."4.4").revisions).default;
"cryptohash-md5".revision = (((hackage."cryptohash-md5")."0.11.100.1").revisions).default;
"invariant".revision = (((hackage."invariant")."0.5.3").revisions).default;
"th-orphans".revision = (((hackage."th-orphans")."0.13.10").revisions).default;
"th-orphans".revision = (((hackage."th-orphans")."0.13.9").revisions).default;
"pem".revision = (((hackage."pem")."0.2.4").revisions).default;
"megaparsec".revision = (((hackage."megaparsec")."8.0.0").revisions).default;
"megaparsec".flags.dev = false;
@ -98,7 +98,7 @@
"monadlist".revision = (((hackage."monadlist")."0.0.2").revisions).default;
"half".revision = (((hackage."half")."0.3").revisions).default;
"parallel".revision = (((hackage."parallel")."3.2.2.0").revisions).default;
"deepseq".revision = (((hackage."deepseq")."1.4.3.0").revisions).default;
"deepseq".revision = (((hackage."deepseq")."1.4.4.0").revisions).default;
"hnix-store-core".revision = (((hackage."hnix-store-core")."0.2.0.0").revisions).default;
"hnix-store-core".flags.bounded_memory = false;
"haskell-src-meta".revision = (((hackage."haskell-src-meta")."0.8.5").revisions).default;
@ -130,11 +130,11 @@
"semigroups".flags.deepseq = true;
"semigroups".flags.bytestring-builder = false;
"semigroups".flags.template-haskell = true;
"parsec".revision = (((hackage."parsec")."3.1.13.0").revisions).default;
"parsec".revision = (((hackage."parsec")."3.1.14.0").revisions).default;
"th-reify-many".revision = (((hackage."th-reify-many")."0.1.9").revisions).default;
"hsc2hs".revision = (((hackage."hsc2hs")."0.68.7").revisions).default;
"hsc2hs".flags.in-ghc-tree = false;
"directory".revision = (((hackage."directory")."1.3.1.5").revisions).default;
"directory".revision = (((hackage."directory")."1.3.6.0").revisions).default;
"yaml".revision = (((hackage."yaml")."0.11.3.0").revisions).default;
"yaml".flags.no-exe = true;
"yaml".flags.no-examples = true;
@ -147,7 +147,7 @@
"transformers-compat".flags.four = false;
"transformers-compat".flags.three = false;
"hpack".revision = (((hackage."hpack")."0.33.0").revisions).default;
"template-haskell".revision = (((hackage."template-haskell")."2.13.0.0").revisions).default;
"template-haskell".revision = (((hackage."template-haskell")."2.15.0.0").revisions).default;
"mono-traversable".revision = (((hackage."mono-traversable")."1.0.15.1").revisions).default;
"vector".revision = (((hackage."vector")."0.12.1.2").revisions).default;
"vector".flags.unsafechecks = false;
@ -170,7 +170,7 @@
"tagged".flags.deepseq = true;
"x509".revision = (((hackage."x509")."1.7.5").revisions).default;
"haskell-src-exts".revision = (((hackage."haskell-src-exts")."1.23.0").revisions).default;
"lens".revision = (((hackage."lens")."4.19.2").revisions).default;
"lens".revision = (((hackage."lens")."4.19.1").revisions).default;
"lens".flags.j = false;
"lens".flags.test-properties = true;
"lens".flags.old-inline-pragmas = false;
@ -183,7 +183,7 @@
"lens".flags.test-hunit = true;
"lens".flags.safe = false;
"unliftio-core".revision = (((hackage."unliftio-core")."0.2.0.1").revisions).default;
"containers".revision = (((hackage."containers")."0.5.11.0").revisions).default;
"containers".revision = (((hackage."containers")."0.6.2.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;
@ -203,7 +203,7 @@
"streaming-commons".flags.use-bytestring-builder = false;
"haskell-lexer".revision = (((hackage."haskell-lexer")."1.1").revisions).default;
"lens-family".revision = (((hackage."lens-family")."2.1.0").revisions).default;
"bytestring".revision = (((hackage."bytestring")."0.10.8.2").revisions).default;
"bytestring".revision = (((hackage."bytestring")."0.10.10.0").revisions).default;
"ansi-wl-pprint".revision = (((hackage."ansi-wl-pprint")."0.6.9").revisions).default;
"ansi-wl-pprint".flags.example = false;
"basement".revision = (((hackage."basement")."0.0.11").revisions).default;
@ -225,23 +225,23 @@
"deriving-compat".flags.base-4-9 = true;
"deriving-compat".flags.template-haskell-2-11 = true;
"deriving-compat".flags.new-functor-classes = true;
"text".revision = (((hackage."text")."1.2.3.1").revisions).default;
"text".revision = (((hackage."text")."1.2.4.0").revisions).default;
"Cabal".revision = (((hackage."Cabal")."3.2.0.0").revisions).default;
"Cabal".flags.bundled-binary-generic = false;
"assoc".revision = (((hackage."assoc")."1.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.1.0.0").revisions).default;
"base64-bytestring".revision = (((hackage."base64-bytestring")."1.0.0.3").revisions).default;
"aeson-pretty".revision = (((hackage."aeson-pretty")."0.8.8").revisions).default;
"aeson-pretty".flags.lib-only = false;
"base".revision = (((hackage."base")."4.11.1.0").revisions).default;
"base".revision = (((hackage."base")."4.13.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;
"time".revision = (((hackage."time")."1.8.0.2").revisions).default;
"time".revision = (((hackage."time")."1.9.3").revisions).default;
"data-default-class".revision = (((hackage."data-default-class")."0.1.2.0").revisions).default;
"terminfo".revision = (((hackage."terminfo")."0.4.1.1").revisions).default;
"terminfo".revision = (((hackage."terminfo")."0.4.1.4").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;
@ -254,7 +254,7 @@
"prettyprinter".flags.buildreadme = false;
"cryptohash-sha512".revision = (((hackage."cryptohash-sha512")."0.11.100.1").revisions).default;
"pretty-show".revision = (((hackage."pretty-show")."1.9.5").revisions).default;
"transformers".revision = (((hackage."transformers")."0.5.5.0").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;
@ -268,12 +268,12 @@
"transformers-base".flags.orphaninstances = true;
"happy".revision = (((hackage."happy")."1.19.12").revisions).default;
"happy".flags.small_base = true;
"filepath".revision = (((hackage."filepath")."1.4.2").revisions).default;
"filepath".revision = (((hackage."filepath")."1.4.2.1").revisions).default;
"asn1-types".revision = (((hackage."asn1-types")."0.3.4").revisions).default;
"cborg".revision = (((hackage."cborg")."0.2.2.1").revisions).default;
"cborg".flags.optimize-gmp = true;
"monad-control".revision = (((hackage."monad-control")."1.0.2.3").revisions).default;
"process".revision = (((hackage."process")."1.6.3.0").revisions).default;
"process".revision = (((hackage."process")."1.6.8.0").revisions).default;
"tls".revision = (((hackage."tls")."1.5.4").revisions).default;
"tls".flags.compat = true;
"tls".flags.network = true;
@ -283,7 +283,7 @@
"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").revisions).default;
"resourcet".revision = (((hackage."resourcet")."1.2.3").revisions).default;
"pretty".revision = (((hackage."pretty")."1.1.3.6").revisions).default;
"cabal-doctest".revision = (((hackage."cabal-doctest")."1.0.8").revisions).default;
"Glob".revision = (((hackage."Glob")."0.10.0").revisions).default;
@ -294,8 +294,8 @@
"aeson".flags.bytestring-builder = false;
"aeson".flags.developer = false;
"http-types".revision = (((hackage."http-types")."0.12.3").revisions).default;
"ghc-boot-th".revision = (((hackage."ghc-boot-th")."8.4.4").revisions).default;
"th-lift-instances".revision = (((hackage."th-lift-instances")."0.1.16").revisions).default;
"ghc-boot-th".revision = (((hackage."ghc-boot-th")."8.8.3").revisions).default;
"th-lift-instances".revision = (((hackage."th-lift-instances")."0.1.15").revisions).default;
"base-orphans".revision = (((hackage."base-orphans")."0.8.2").revisions).default;
"th-abstraction".revision = (((hackage."th-abstraction")."0.3.2.0").revisions).default;
"memory".revision = (((hackage."memory")."0.15.0").revisions).default;
@ -303,40 +303,39 @@
"memory".flags.support_basement = true;
"memory".flags.support_foundation = true;
"memory".flags.support_deepseq = true;
"array".revision = (((hackage."array")."0.5.2.0").revisions).default;
"array".revision = (((hackage."array")."0.5.4.0").revisions).default;
"repline".revision = (((hackage."repline")."0.2.2.0").revisions).default;
"xml".revision = (((hackage."xml")."1.3.14").revisions).default;
"lens-family-core".revision = (((hackage."lens-family-core")."2.1.0").revisions).default;
"integer-gmp".revision = (((hackage."integer-gmp")."1.0.2.0").revisions).default;
};
compiler = {
version = "8.4.4";
nix-name = "ghc844";
version = "8.8.3";
nix-name = "ghc883";
packages = {
"binary" = "0.8.5.1";
"ghc-prim" = "0.5.2.0";
"haskeline" = "0.7.4.2";
"stm" = "2.4.5.1";
"binary" = "0.8.7.0";
"ghc-prim" = "0.5.3";
"haskeline" = "0.7.5.0";
"stm" = "2.5.0.0";
"unix" = "2.7.2.2";
"mtl" = "2.2.2";
"rts" = "1.0";
"deepseq" = "1.4.3.0";
"parsec" = "3.1.13.0";
"directory" = "1.3.1.5";
"template-haskell" = "2.13.0.0";
"containers" = "0.5.11.0";
"bytestring" = "0.10.8.2";
"text" = "1.2.3.1";
"Cabal" = "2.2.0.1";
"base" = "4.11.1.0";
"time" = "1.8.0.2";
"terminfo" = "0.4.1.1";
"transformers" = "0.5.5.0";
"filepath" = "1.4.2";
"process" = "1.6.3.0";
"deepseq" = "1.4.4.0";
"parsec" = "3.1.14.0";
"directory" = "1.3.6.0";
"template-haskell" = "2.15.0.0";
"containers" = "0.6.2.1";
"bytestring" = "0.10.10.0";
"text" = "1.2.4.0";
"base" = "4.13.0.0";
"time" = "1.9.3";
"terminfo" = "0.4.1.4";
"transformers" = "0.5.6.2";
"filepath" = "1.4.2.1";
"process" = "1.6.8.0";
"pretty" = "1.1.3.6";
"ghc-boot-th" = "8.4.4";
"array" = "0.5.2.0";
"ghc-boot-th" = "8.8.3";
"array" = "0.5.4.0";
"integer-gmp" = "1.0.2.0";
};
};

View File

@ -17,7 +17,7 @@
pkgs:
{ name, index }:
pkgs.runCommand "hackage-repo-${name}" { nativeBuildInputs = [ pkgs.buildPackages.nix ]; } ''
pkgs.evalPackages.runCommand "hackage-repo-${name}" { nativeBuildInputs = [ pkgs.evalPackages.nix ]; } ''
mkdir -p $out
export expires="4000-01-01T00:00:00Z"

View File

@ -1,98 +0,0 @@
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.8";
identifier = { name = "haskell-src-meta"; version = "0.8.0.5"; };
license = "BSD-3-Clause";
copyright = "(c) Matt Morrow";
maintainer = "Ben Millwood <haskell@benmachine.co.uk>";
author = "Matt Morrow";
homepage = "";
url = "";
synopsis = "Parse source to template-haskell abstract syntax.";
description = "The translation from haskell-src-exts abstract syntax\nto template-haskell abstract syntax isn't 100% complete yet.";
buildType = "Simple";
isLocal = true;
};
components = {
"library" = {
depends = [
(hsPkgs."base" or (buildDepError "base"))
(hsPkgs."haskell-src-exts" or (buildDepError "haskell-src-exts"))
(hsPkgs."pretty" or (buildDepError "pretty"))
(hsPkgs."syb" or (buildDepError "syb"))
(hsPkgs."template-haskell" or (buildDepError "template-haskell"))
(hsPkgs."th-orphans" or (buildDepError "th-orphans"))
] ++ (pkgs.lib).optional (compiler.isGhc && (compiler.version).lt "7.8") (hsPkgs."safe" or (buildDepError "safe"));
buildable = true;
};
tests = {
"unit" = {
depends = [
(hsPkgs."HUnit" or (buildDepError "HUnit"))
(hsPkgs."base" or (buildDepError "base"))
(hsPkgs."haskell-src-exts" or (buildDepError "haskell-src-exts"))
(hsPkgs."haskell-src-meta" or (buildDepError "haskell-src-meta"))
(hsPkgs."pretty" or (buildDepError "pretty"))
(hsPkgs."template-haskell" or (buildDepError "template-haskell"))
(hsPkgs."test-framework" or (buildDepError "test-framework"))
(hsPkgs."test-framework-hunit" or (buildDepError "test-framework-hunit"))
];
buildable = true;
};
"splices" = {
depends = [
(hsPkgs."base" or (buildDepError "base"))
(hsPkgs."haskell-src-meta" or (buildDepError "haskell-src-meta"))
];
buildable = true;
};
};
};
} // {
src = (pkgs.lib).mkDefault (pkgs.fetchgit {
url = "https://github.com/galenhuntington/haskell-src-meta.git";
rev = "109ee29d5fd0f4e23fdd2f80eb122d66341b64a9";
sha256 = "08qw6y9br6fy3qkwl9v2kp38msprsq9v1ssym0fsnj2jm0vbnfrx";
});
}

View File

@ -1,70 +0,0 @@
{ pkgs, lib, symlinkJoin, makeWrapper
, hpack, git, nix, nix-prefetch-git
, fetchExternal, cleanSourceHaskell, mkCabalProjectPkgSet
, ... }@args:
let
src = cleanSourceHaskell {
src = fetchExternal {
name = "nix-tools-src";
specJSON = ./nix-tools-src.json;
override = "nix-tools-src";
};
};
pkgSet = mkCabalProjectPkgSet {
plan-pkgs = if args ? ghc
then import (./pkgs + "-${args.ghc.version}.nix")
else import ./pkgs.nix;
modules = [
{
packages.transformers-compat.components.library.doExactConfig = true;
packages.time-compat.components.library.doExactConfig = true;
packages.time-locale-compat.components.library.doExactConfig = true;
}
{
packages.nix-tools.src = src;
}
# This is needed for ghc 8.4.4 to make sure a new version of Cabal
# is used to build setup for happy. The one that comes with ghc 8.4.4
# does not work for newer versions of happy and haskell.nix)
({config, ...}: {
packages.happy.package.buildType = lib.mkForce "Custom";
packages.happy.package.setup-depends = [ config.hsPkgs.Cabal ];
})
{
# Make Cabal reinstallable
nonReinstallablePkgs =
[ "rts" "ghc-heap" "ghc-prim" "integer-gmp" "integer-simple" "base"
"deepseq" "array" "ghc-boot-th" "pretty" "template-haskell"
"ghc-boot"
"ghc" "Win32" "array" "binary" "bytestring" "containers"
"directory" "filepath" "ghc-boot" "ghc-compact" "ghc-prim"
"hpc"
"mtl" "parsec" "process" "text" "time" "transformers"
"unix" "xhtml"
];
}
] ++ pkgs.lib.optional (args ? ghc) { ghc.package = args.ghc; };
};
hsPkgs = pkgSet.config.hsPkgs;
tools = [ hpack git nix nix-prefetch-git ];
in
symlinkJoin {
name = "nix-tools";
paths = builtins.attrValues hsPkgs.nix-tools.components.exes;
buildInputs = [ makeWrapper ];
meta.platforms = lib.platforms.all;
# We wrap the -to-nix executables with the executables from `tools` (e.g. nix-prefetch-git)
# so that consumers of `nix-tools` won't have to provide those tools.
postBuild = ''
for prog in stack-to-nix cabal-to-nix plan-to-nix; do
wrapProgram "$out/bin/$prog" --prefix PATH : "${lib.makeBinPath tools}"
done
'';
}

View File

@ -1,6 +1,21 @@
#
# Update script to update nix-tools.
#
# This scipt might still come in handy, but it should now be possible to update
# the nix-tools materialization without it.
#
# Without this script:
# 1. run `nix-prefetch-git https://github.com/input-output-hk/nix-tools > nix-tools-src-new.json`
# 2. run `nix-build -E '(import ./. { checkMaterialization = true; }).pkgs.haskell-nix.nix-tools'`
# 3. If it fails apply the fixes from the log (there should be rm, cp and chmod commands)
#
# To bootstap materialization files for a new compiler (e.g. for ghc 8.8.3)
#
# nix-build -E 'let h = (import ./. {}).pkgs.haskell-nix; in h.cabal-install-tool { compiler-nix-name = "ghc883"; checkMaterialization = true; inherit (h) cabal-install nix-tools; }'
# nix-build -E 'let h = (import ./. {}).pkgs.haskell-nix; in h.nix-tools-set { compiler-nix-name = "ghc883"; checkMaterialization = true; inherit (h) cabal-install nix-tools; }'
# nix-build -E 'let h = (import ./. {}).pkgs.haskell-nix; in h.alex-tool { compiler-nix-name = "ghc883"; checkMaterialization = true; inherit (h) cabal-install nix-tools; }'
# nix-build -E 'let h = (import ./. {}).pkgs.haskell-nix; in h.happy-tool { compiler-nix-name = "ghc883"; checkMaterialization = true; inherit (h) cabal-install nix-tools; }'
#
# Using the script:
# 1. run `nix-prefetch-git https://github.com/input-output-hk/nix-tools > nix-tools-src-new.json`
# 2. run `nix-build regenerate.nix --show-trace --arg specJSON ./nix-tools-src-new.json`
# 3. run `./result/bin/update-nix-tools` and follow the instructions.
@ -53,18 +68,8 @@ writeShellScriptBin "update-nix-tools" ''
cp ${src}/cabal.project .
cp ${specJSON} ./nix-tools-src.json
# Build for ghc-8.4.4
echo "--> Updating cabal index..."
cabal v2-update -v0
echo "--> Configuring nix-tools for ${haskell-nix.bootstrap.compiler.ghc844.name}..."
cabal v2-configure -w ${getBin haskell-nix.bootstrap.compiler.ghc844}/bin/ghc -v0
echo "--> Running plan-to-nix for ${haskell-nix.bootstrap.compiler.ghc844.name}..."
plan-to-nix -o . --plan-json=$(find . -name "plan.json")
rm cabal.project.local
rm -fR dist-newstyle
mv pkgs.nix pkgs-8.4.4.nix
# build for the current ghc in haskell.nix
echo "--> Configuring nix-tools for ${haskell-nix.ghc.name}..."
@ -77,14 +82,14 @@ writeShellScriptBin "update-nix-tools" ''
# we don't want the default.nix that plan-to-nix generates to
# update the custom one in nix-tools
rm default.nix
mv pkgs.nix default.nix
rm -f nix-tools.cabal
echo "--> Done."
echo "******"
echo "*** please copy $TMP/ into haskell.nix/nix-tools"
echo "*** please copy $TMP/ into haskell.nix/materialized/GHCVER/nix-tools"
echo "***"
echo "*** cp -fr "$TMP/" ."
echo "*** cp -fr "$TMP/" ../materialized/GHCVER/nix-tools/"
echo "***"
echo "******"
''

View File

@ -34,7 +34,15 @@ in {
compiler =
let bootPkgs = with final.buildPackages; {
ghc = buildPackages.haskell-nix.bootstrap.compiler.ghc844;
inherit (final.haskell-nix.bootstrap.packages) alex happy hscolour;
alex = final.haskell-nix.bootstrap.packages.alex-tool {
checkMaterialization = false;
};
happy = final.haskell-nix.bootstrap.packages.happy-tool {
checkMaterialization = false;
};
hscolour = final.haskell-nix.bootstrap.packages.hscolour-tool {
checkMaterialization = false;
};
};
sphinx = with final.buildPackages; (python3Packages.sphinx_1_7_9 or python3Packages.sphinx);
hsc2hs-align-conditionals-patch = final.fetchpatch {
@ -312,8 +320,97 @@ in {
'' + installDeps targetPrefix);
})));
ghc = final.haskell-nix.compiler.ghc865;
inherit (final.buildPackages.haskell-nix.bootstrap.packages) cabal-install alex happy;
defaultCompilerNixName = "ghc865";
ghc = final.haskell-nix.compiler."${final.haskell-nix.defaultCompilerNixName}";
# Both `cabal-install` and `nix-tools` are needed for `cabalProject`
# to check materialized results. We need to take care that when
# it is doing this we do not check the materialization of the
# tools used or there will be infinite recursion.
# always has `checkMaterialization = false` to avoid infinite
# recursion.
cabal-install-tool = args: final.haskell-nix.tool "cabal" ({
version = "3.2.0.0";
index-state = final.haskell-nix.internalHackageIndexState;
# When building cabal-install (only happens when checking materialization)
# disable checking of the tools used to avoid infinite recursion.
cabal-install = final.evalPackages.haskell-nix.cabal-install-tool
(args // { checkMaterialization = false; });
nix-tools = final.evalPackages.haskell-nix.nix-tools-set
(args // { checkMaterialization = false; });
materialized = ../materialized + "/${
args.compiler-nix-name or final.haskell-nix.defaultCompilerNixName
}/cabal-install";
} // args);
cabal-install = final.buildPackages.haskell-nix.cabal-install-tool {};
nix-tools-set = args:
let
exes =
(final.haskell-nix.cabalProject ({
name = "nix-tools";
src = final.haskell-nix.fetchExternal {
name = "nix-tools-src";
specJSON = ../nix-tools/nix-tools-src.json;
override = "nix-tools-src";
};
index-state = final.haskell-nix.internalHackageIndexState;
# When building cabal-install (only happens when checking materialization)
# disable checking of the tools used to avoid infinite recursion.
cabal-install = final.evalPackages.haskell-nix.cabal-install-tool
(args // { checkMaterialization = false; });
nix-tools = final.evalPackages.haskell-nix.nix-tools-set
(args // { checkMaterialization = false; });
materialized = ../materialized + "/${
args.compiler-nix-name or final.haskell-nix.defaultCompilerNixName
}/nix-tools";
modules = [{
packages.transformers-compat.components.library.doExactConfig = true;
packages.time-compat.components.library.doExactConfig = true;
packages.time-locale-compat.components.library.doExactConfig = true;
# Make Cabal reinstallable
nonReinstallablePkgs =
[ "rts" "ghc-heap" "ghc-prim" "integer-gmp" "integer-simple" "base"
"deepseq" "array" "ghc-boot-th" "pretty" "template-haskell"
"ghc-boot"
"ghc" "Win32" "array" "binary" "bytestring" "containers"
"directory" "filepath" "ghc-boot" "ghc-compact" "ghc-prim"
"hpc"
"mtl" "parsec" "process" "text" "time" "transformers"
"unix" "xhtml"
];
}];
} // args)).nix-tools.components.exes;
tools = [ final.git final.buildPackages.nix final.buildPackages.nix-prefetch-git ];
in
final.symlinkJoin {
name = "nix-tools";
paths = builtins.attrValues exes;
buildInputs = [ final.makeWrapper ];
meta.platforms = final.lib.platforms.all;
# We wrap the -to-nix executables with the executables from `tools` (e.g. nix-prefetch-git)
# so that consumers of `nix-tools` won't have to provide those tools.
postBuild = ''
for prog in stack-to-nix cabal-to-nix plan-to-nix; do
wrapProgram "$out/bin/$prog" --prefix PATH : "${final.lib.makeBinPath tools}"
done
'';
};
nix-tools = final.buildPackages.haskell-nix.nix-tools-set {};
alex-tool = args: final.haskell-nix.tool "alex" ({
version = "3.2.5";
index-state = final.haskell-nix.internalHackageIndexState;
materialized = ../materialized + "/${
args.compiler-nix-name or final.haskell-nix.defaultCompilerNixName
}/alex";
} // args);
alex = final.buildPackages.haskell-nix.alex-tool {};
happy-tool = args: final.haskell-nix.tool "happy" ({
version = "1.19.12";
index-state = final.haskell-nix.internalHackageIndexState;
materialized = ../materialized + "/${
args.compiler-nix-name or final.haskell-nix.defaultCompilerNixName
}/happy";
} // args);
happy = final.buildPackages.haskell-nix.happy-tool {};
# WARN: The `import ../. {}` will prevent
# any cross to work, as we will loose
@ -358,57 +455,41 @@ in {
(import ../compiler/old-ghc-nix { pkgs = final; });
packages = {
# cabal has it's own bootstrap script which we'll use.
cabal-install = import ../compiler/bootstrap/cabal-install.nix {
inherit (final) fetchurl stdenv zlib;
inherit hackage ghc;
src = final.fetchurl {
url = "https://github.com/haskell/cabal/archive/Cabal-v3.0.0.0-rc3.tar.gz";
sha256 = "1zl2mgg8307ykq3v8nmafc6zdhhj1cw7w8ffpap16dsm65lbnx33";
};
version = "3.0.0.0";
};
# disable hpack support during bootstrap
hpack = null;
nix-tools = nix-tools.override {
# Only a boot compiler is suitable here
ghc = ghc // { isHaskellNixCompiler = ghc.isHaskellNixBootCompiler; };
inherit (bootstrap.packages) hpack;
};
# now that we have nix-tools and hpack, we can just
# use `hackage-package` to build any package from
# hackage with haskell.nix. For alex and happy we
# need to use the boot strap compiler as we need them
# to build ghcs from source.
alex-project = hackage-project {
# guardMaterializationChecks is used here so we
# can turn off materialization checks when
# building ghc itself (since GHC is a dependency
# of the materialization check it would cause
# infinite recusion).
alex-tool = args: tool "alex" ({
version = "3.2.4";
# Only a boot compiler is suitable here
ghcOverride = ghc // { isHaskellNixCompiler = ghc.isHaskellNixBootCompiler; };
inherit (bootstrap.packages) cabal-install nix-tools hpack;
name = "alex"; version = "3.2.4";
index-state = final.haskell-nix.internalHackageIndexState;
materialized = ../materialized/alex;
};
alex = bootstrap.packages.alex-project.hsPkgs.alex.components.exes.alex;
happy-project = hackage-project {
materialized = ../materialized/bootstrap/alex;
} // args);
alex = bootstrap.packages.alex-tool {};
happy-tool = args: tool "happy" ({
version = "1.19.11";
# Only a boot compiler is suitable here
ghcOverride = ghc // { isHaskellNixCompiler = ghc.isHaskellNixBootCompiler; };
inherit (bootstrap.packages) cabal-install nix-tools hpack;
name = "happy"; version = "1.19.11";
index-state = final.haskell-nix.internalHackageIndexState;
materialized = ../materialized/happy;
};
happy = bootstrap.packages.happy-project.hsPkgs.happy.components.exes.happy;
hscolour-project = hackage-project {
materialized = ../materialized/bootstrap/happy;
} // args);
happy = bootstrap.packages.happy-tool {};
hscolour-tool = args: (hackage-package ({
name = "hscolour";
version = "1.24.4";
# Only a boot compiler is suitable here
ghcOverride = ghc // { isHaskellNixCompiler = ghc.isHaskellNixBootCompiler; };
inherit (bootstrap.packages) cabal-install nix-tools hpack;
name = "hscolour"; version = "1.24.4";
index-state = final.haskell-nix.internalHackageIndexState;
materialized = ../materialized/hscolour;
};
hscolour = bootstrap.packages.hscolour-project.hsPkgs.hscolour.components.exes.HsColour;
materialized = ../materialized/bootstrap/hscolour;
} // args)).components.exes.HsColour;
hscolour = bootstrap.packages.hscolour-tool {};
};
};
};

View File

@ -13,6 +13,8 @@ let
musl = import ./musl.nix;
tools = import ./tools.nix;
emscripten = import ./emscripten.nix;
eval-on-current = import ./eval-on-current.nix;
eval-on-build = import ./eval-on-build.nix;
};
composeExtensions = f: g: final: prev:
@ -43,5 +45,8 @@ let
# Restore nixpkgs haskell and haskellPackages
(_: prev: { inherit (prev.haskell-nix-prev) haskell haskellPackages; })
];
combined = builtins.foldl' composeExtensions (_: _: { }) ordered;
combined = builtins.foldl' composeExtensions (_: _: { })
(ordered ++ [overlays.eval-on-current]);
combined-eval-on-build = builtins.foldl' composeExtensions (_: _: { })
(ordered ++ [overlays.eval-on-build]);
in overlays // { inherit combined; }

View File

@ -0,0 +1,6 @@
final: prev: {
# This overlay sets `evalPackages` as just `buildPackages`
# See `eval-on-current.nix` for alternative that uses
# `builtins.currentSystem`.
evalPackages = final.buildPackages;
}

View File

@ -0,0 +1,8 @@
final: prev: {
# This overlay makes `evalPackages` is like `buildPackages`, but on
# `builtins.currentSystem`.
# See `eval-on-build.nix` for alternative that just uses `buildPackages`.
evalPackages = (import final.path (import ../. {
inherit (final.haskell-nix) defaultCompilerNixName;
}).nixpkgsArgs).buildPackages;
}

View File

@ -1,24 +1,14 @@
final: prev:
let
emptyDotCabal = final.runCommand "empty-dot-cabal" {} ''
mkdir -p $out/.cabal
cat <<EOF > $out/.cabal/config
EOF
'';
callCabalSdist = name: src: final.runCommand "${name}-sdist.tar.gz" {
nativeBuildInputs = [ final.haskell-nix.cabal-install ];
} ''
tmp=$(mktemp -d)
cp -r ${src}/* $tmp
cd $tmp
tmp2=$(mktemp -d)
HOME=${emptyDotCabal} cabal new-sdist -o $tmp2
cp $tmp2/*.tar.gz $out
'';
callCabal2Nix = name: src: final.stdenv.mkDerivation {
name = "${name}-package.nix";
inherit src;
nativeBuildInputs = [ final.haskell-nix.nix-tools ];
nativeBuildInputs = [ (final.buildPackages.haskell-nix.nix-tools-set {
# It is not safe to checkk the nix-tools materialization here
# as we would need to run this code to do so leading to
# infinite recursion.
checkMaterialization = false;
}) ];
phases = [ "unpackPhase" "buildPhase" ];
LOCALE_ARCHIVE = final.lib.optionalString (final.stdenv.hostPlatform.libc == "glibc") "${final.glibcLocales}/lib/locale/locale-archive";
@ -38,17 +28,6 @@ let
inherit path;
}) files);
# Calculate the `cabal sdist` of a single boot package as well as
# the output of cabal-to-nix.
cabalToSdistAndNix = ghcName: pkgName: src:
# build the source dist
let sdist = callCabalSdist "${ghcName}-${pkgName}" src;
# and generate the nix expression corresponding to the source dist
in {
inherit sdist;
nix = callCabal2Nix "${ghcName}-${pkgName}" sdist;
};
# Combine the all the boot package nix files for a given ghc
# into a single derivation and materialize it.
combineAndMaterialize = ghcName: bootPackages:
@ -65,11 +44,11 @@ let
then materializedPath
else null;
}) (combineFiles "${ghcName}-boot-packages-nix" ".nix" (builtins.mapAttrs
(_: sdistAndNix: sdistAndNix.nix) (skipBroken bootPackages))));
(_: srcAndNix: srcAndNix.nix) (skipBroken bootPackages))));
# Import the nix and fix the src to the sdist as well.
importSdistAndNix = sdistAndNix:
args: (import sdistAndNix.nix args) // { src = sdistAndNix.sdist; };
# Import the nix and src.
importSrcAndNix = srcAndNix:
args: (import srcAndNix.nix args) // { inherit (srcAndNix) src; };
# The packages in GHC source and the locations of them
ghc-extra-pkgs = {
@ -110,24 +89,27 @@ let
# as part of patches we applied to the GHC tree.
in rec {
ghc-boot-packages-sdist-and-nix = builtins.mapAttrs
ghc-boot-packages-src-and-nix = builtins.mapAttrs
(ghcName: value: builtins.mapAttrs
(pkgName: dir: cabalToSdistAndNix ghcName pkgName "${value.passthru.configured-src}/${dir}") ghc-extra-pkgs)
(pkgName: dir: rec {
src = "${value.passthru.configured-src}/${dir}";
nix = callCabal2Nix "${ghcName}-${pkgName}" src;
}) ghc-extra-pkgs)
final.buildPackages.haskell-nix.compiler;
# All the ghc boot package nix files for each ghc.
ghc-boot-packages-nix = builtins.mapAttrs
combineAndMaterialize
ghc-boot-packages-sdist-and-nix;
ghc-boot-packages-src-and-nix;
# The import nix results for each ghc boot package for each ghc (with src=sdist).
# The import nix results for each ghc boot package for each ghc.
ghc-boot-packages = builtins.mapAttrs
(ghcName: value: builtins.mapAttrs
(pkgName: sdistAndNix: importSdistAndNix {
inherit (sdistAndNix) sdist;
(pkgName: srcAndNix: importSrcAndNix {
inherit (srcAndNix) src;
nix = ghc-boot-packages-nix."${ghcName}" + "/${pkgName}.nix";
}) value)
ghc-boot-packages-sdist-and-nix;
ghc-boot-packages-src-and-nix;
# Derivation with cabal.project for use with `cabalProject'` for each ghc.
ghc-extra-pkgs-cabal-projects = builtins.mapAttrs (name: value:

View File

@ -2,26 +2,7 @@
#
# for hygenic reasons we'll use haskell-nix as a prefix.
# Using haskell.nix in nix is awkward as I needs to be quoted.
final: prev:
let
# Why `final.buildPackages.buildPackages.git`?
#
# It turns out `git` depends on `gdb` in a round about way:
# git -> openssh -> libfido2 -> systemd -> python libxml -> Cython -> gdb
# Somewhere in that chain there should perhaps be a `buildPackages` so
# that the `gdb` that is used is not the one for debugging code in
# the `final` (but instead the one for debugging code in
# `final.buildPackages`).
#
# Using `final.buildPackages.git` causes two problems:
#
# * Multiple versions of `git` (and that dependency chain
# to `gdb` are needed when cross compiling).
# * When `gdb` does not exist for `js`, so when cross
# compiling with ghcjs `final.buildPackages.git` fails
# to build at all.
inherit (final.buildPackages.buildPackages) git nix-prefetch-git;
in {
final: prev: {
haskell-nix = with final.haskell-nix; {
# Default modules, these will always be included.
@ -78,8 +59,8 @@ in {
# Utility functions for working with the component builder.
haskellLib = let hl = import ../lib {
inherit (final) stdenv lib runCommand recurseIntoAttrs srcOnly;
inherit git;
pkgs = final;
inherit (final) stdenv lib recurseIntoAttrs srcOnly;
haskellLib = hl;
}; in hl;
@ -180,22 +161,6 @@ in {
# Pick a recent LTS snapshot to be our "default" package set.
haskellPackages = snapshots."lts-14.13";
# Programs for generating Nix expressions from Cabal and Stack
# files. This version of nix-tools may be cross compiled.
# We probably never want to actually cross compile nix-tools on
# it's own.
nix-tools-cross-compiled = final.lib.makeOverridable (import ../nix-tools) {
inherit (final) pkgs lib symlinkJoin makeWrapper nix;
inherit git nix-prefetch-git;
inherit (final.haskell-nix) fetchExternal cleanSourceHaskell mkCabalProjectPkgSet;
hpack = null; # nix-tools does not use hpack project files
};
# While `nix-tools-cross-compiled` may be cross compiled,
# getting it from `buildPackages` we should get
# nix-tools suitable for running on the build system.
nix-tools = final.buildPackages.haskell-nix.nix-tools-cross-compiled;
# TODO perhaps there is a cleaner way to get a suitable nix-tools.
# Produce a fixed output derivation from a moving target (hackage index tarball)
# Takes desired index-state and sha256 and produces a set { name, index }, where
# index points to "01-index.tar.gz" file downloaded from hackage.haskell.org.
@ -203,7 +168,7 @@ in {
assert sha256 != null;
let at = builtins.replaceStrings [":"] [""] index-state; in
{ name = "hackage.haskell.org-at-${at}";
index = final.fetchurl {
index = final.evalPackages.fetchurl {
name = "01-index.tar.gz-at-${at}";
url = "https://hackage.haskell.org/01-index.tar.gz";
downloadToTemp = true;
@ -225,7 +190,7 @@ in {
# dotCabalName anyway.
dotCabalName = "dot-cabal-" + allNames;
in
final.runCommand dotCabalName { nativeBuildInputs = [ cabal-install ]; } ''
final.evalPackages.runCommand dotCabalName { nativeBuildInputs = [ cabal-install ]; } ''
mkdir -p $out/.cabal
cat <<EOF > $out/.cabal/config
${final.lib.concatStrings (
@ -264,10 +229,10 @@ in {
# Helps materialize the output of derivations
materialize = import ../lib/materialize.nix {
inherit (final.buildPackages) nix;
inherit (final.evalPackages) nix;
inherit (final.haskell-nix) checkMaterialization;
pkgs = final.buildPackages.pkgs;
inherit (final.buildPackages.pkgs) runCommand;
pkgs = final.evalPackages.pkgs;
inherit (final.evalPackages.pkgs) runCommand;
};
update-index-state-hashes = import ../scripts/update-index-state-hashes.nix {
@ -427,10 +392,11 @@ in {
# Resulting nix files are added to nix-plan subdirectory.
callCabalProjectToNix = import ../lib/call-cabal-project-to-nix.nix {
index-state-hashes = import indexStateHashesPath;
inherit (final.buildPackages.haskell-nix) dotCabal nix-tools haskellLib materialize;
inherit (final.buildPackages.haskell-nix) haskellLib materialize;
pkgs = final.buildPackages.pkgs;
inherit (final.buildPackages.haskell-nix.haskellPackages.hpack.components.exes) hpack;
inherit (final.buildPackages.haskell-nix) cabal-install ghc;
inherit (final.evalPackages.haskell-nix.haskellPackages.hpack.components.exes) hpack;
inherit (final.buildPackages.haskell-nix) ghc;
inherit (final.evalPackages.haskell-nix) cabal-install dotCabal nix-tools;
inherit (final.buildPackages.pkgs) runCommand symlinkJoin cacert;
};
@ -549,10 +515,6 @@ in {
in final.recurseIntoAttrs ({
# Things that require no IFD to build
inherit (final.buildPackages.haskell-nix) nix-tools source-pins;
bootstap-nix-tools = final.buildPackages.haskell-nix.bootstrap.packages.nix-tools;
alex-plan-nix = withInputs final.buildPackages.haskell-nix.bootstrap.packages.alex-project.plan-nix;
happy-plan-nix = withInputs final.buildPackages.haskell-nix.bootstrap.packages.happy-project.plan-nix;
hscolour-plan-nix = withInputs final.buildPackages.haskell-nix.bootstrap.packages.hscolour-project.plan-nix;
} // final.lib.optionalAttrs (ifdLevel > 0) {
# Things that require one IFD to build (the inputs should be in level 0)
alex = final.buildPackages.haskell-nix.bootstrap.packages.alex;

View File

@ -7,7 +7,7 @@ in pkgs.lib.evalModules {
_module.args = {
# this is *not* the hasekllLib from nixpkgs; it is rather our own
# library from haskell.nix
haskellLib = let hl = import ./lib { inherit lib; inherit (pkgs) stdenv runCommand recurseIntoAttrs git srcOnly; haskellLib = hl; }; in hl;
haskellLib = let hl = import ./lib { inherit pkgs lib; inherit (pkgs) stdenv recurseIntoAttrs srcOnly; haskellLib = hl; }; in hl;
# The package descriptions depend on pkgs, which are used to resolve system package dependencies
# as well as pkgconfPkgs, which are used to resolve pkgconfig name to nixpkgs names. We simply