The code of `lib.closePropagation` was internally using a
recursion on the dependencies and returns all the derivation directly or
indirectly referenced by buildInputs.
`lib.closeProgation` is implemented in pure nix and uses an unique
function for list which is quadratic and does "true" equality, which
needs deep set comparison.
Instead, we use the `builtins.genericClosure` which is implemented as a
builtin and uses a more efficient sorting feature.
Note that `genericClosure` needs a `key` to discriminate the values, we
used the `outPath` which is unique and orderable.
On benchmarks, it performs up to 15x time faster on a benchmark related
to haskellPackages.ghcWithPackages.
Deprecate haskell.lib{,.compose}.generateOptparseApplicativeCompletion*
in favor of the newly added
haskell.packages.*.generateOptparseApplicativeCompletions (plural!)
which takes into account whether we are cross-compiling or not. If we
are, generating completions is disabled, since we can't execute software
built for a different platform.
The move is necessary, so we can receive the /same/ stdenv as the
package we are overriding in order to accurately check whether we can
execute produced binaries.
Resolves#174040.
Resolves#49648.
This change introduces some actual overrides in
configuration-ghc-9.4.x.nix (based on the ones for 9.2) with the aim of
getting a basic 9.4 package set up. In particular the following
“interesting” packages are working:
* hpack
* hoogle
* cabal2nix
* cabal-install
You can get a better overview by looking at the overrides and the
versionedCompilerJobs in release-haskell.nix. Next obvious steps would
be working towards basic HLS support, but it seems that basically none
of the plugins are working so far. Big blockers here:
* https://github.com/alanz/ghc-exactprint/issues/114
* https://github.com/ndmitchell/hlint/issues/1413
* https://github.com/haskell/haskell-language-server/issues/3190
We ourselves have some churn to take care of and should try to release
the changes in https://github.com/NixOS/cabal2nix/pull/571 soon.
Co-authored-by: Rebecca Turner <rbt@sent.as>
Co-authored-by: sternenseemann <sternenseemann@systemli.org>
This checks that ghc and its boot libraries have the same ABI at runtime as at compile time.
Co-authored-by: sternenseemann <sternenseemann@systemli.org>