Based on https://gitlab.haskell.org/ghc/ghc/-/wikis/platforms, although
it sadly doesn't list when the backends were introduced.
* PowerPC, x86 (and x86_64) and Sparc have been supported for longer.
* aarch64-darwin is new in 9.2.1 and backported to 8.10.5, 8.10.6 and
8.10.7 (check is dumb here since we'll grep for 8.10.7 anyways when
upgrading)
Fixes ghcWithPackages failing to evaluate on aarch64-darwin because of
missing support for the platform in LLVM 9's compiler-rt.
The availability of native codegen (which allows us to disable the LLVM
backend by default) hinges on the target platform of the compiler (that
is GHC), not on the platform it runs on (the host platform).
Move everything into a single overrideCabal and express conditionality
using optionalAttrs. This should make it easier to add
more (un)conditional overrides in the future.
PR was merged after the switch to haskell.lib.compose by default, but
originally created before that day, so the argument order used was
completely wrong, but CI didn't show it, because its state was stale.
`nix-tree >= 0.19` requires `brick >= 0.64` which is not the default
on the stackage resolver yet. This commit adds an override for the correct
version.
This adds a new builder option `doHaddockInterfaces` to enable the -haddock flag in GHC,
which results in Haddock comments parsed at compile-time and embedded in
interface files. These are used by the :doc command in GHCi, as well as IDE
tools like ghcide and hls to display docs on hover.
The `-haddock` flag has been around since at least 8.2, even though it does not
get a mention in the GHC Users guide.
There are two downsides to turning on this flag:
1. Increased compile times, since Haddocks must be parsed and then encoded
2. Haddock parse errors now become compile errors for GHC < 9.0.1
(https://gitlab.haskell.org/ghc/ghc/-/issues/8944)
Thus we only enable the feature if we have GHC 9.0.1 and haddock is
enabled; when 9.0.1 becomes the default GHC, we may need to reevaluate
the performance concern.
Co-authored-by: sternenseemann <sternenseemann@systemli.org>
Starting with GHC 9.0.1 ghc-bignum is bundled with GHC and we don't need
to worry about building it from hackage. ghc-bignum 1.2 doesn't seem to
build with anything before 9.2.1, so we need to downgrade ghc-bignum to
1.0 (and sadly keep our patches) for 8.10.7 support.
overrideScope applies an overlay that fixes the build error for
libyaml-streamly, however the (correct) broken state of the package in
the normal package set is incorrectly inherited, so a markUnbroken is
required.