haskell.compiler.ghc*Binary: make sure meta can always be evaluated #246805
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The
meta
set of the binary GHCs is mostly independent of the used bindist (except forpname
which includesvariantSuffix
). Thus we should make sure it can be evaluated even if no bindist is available for the platform, i.e. evaluatingoutPath
may cause an evaluation failure, butmeta.platforms
not. Use case at present is to makelib.meta.availableOn
work everywhere for any GHC (the normal GHCs inherit their platforms list from their respective boot compiler, at least for now).To fix this we need to make sure that shallowly evaluating
passthru
doesn't forcebinDistUsed
, sincemkDerivation
needs to mergepassthru
into the resulting derivation attribute set, thus forcing the attribute names ofpassthru
. We can easily do this by accessing what we want to learn fromghcBinDists
manually and usingor
to fall back to a sensible default.Description of changes
Things done
sandbox = true
set innix.conf
? (See Nix manual)nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD"
. Note: all changes have to be committed, also see nixpkgs-review usage./result/bin/
)