Commit Graph

2765 Commits

Author SHA1 Message Date
Wolfgang Walther
55d0b557eb haskell.compiler.ghc{9102,9122}: drop (#439323) 2026-04-16 10:56:54 +00:00
nixpkgs-ci[bot]
6f8d98bfeb Merge f5c6b4fe94 into haskell-updates 2026-04-12 00:35:27 +00:00
sternenseemann
b4d17f0cfa haskell.compiler.native-bignum: don't evaluate compiler exprs
This makes isNativeBignumGhc purely textual again after #460845.
Could improve performance in the right conditions, but most importantly
solves eval issues with aliases allowed (due to the throw-ing ghc
attributes) without resorting to tryEval.
2026-04-11 14:26:55 +02:00
Wolfgang Walther
19885395bb haskell.compiler.ghc9122: drop
Latest 9.12.x minor release is 9.12.4, which is also in Stackage Nightly
already, so will never be the latest in a Stackage major version.

Thus, dropping according to the GHC Deprecation Policy.
2026-04-10 10:50:02 +02:00
Wolfgang Walther
e28db541d4 haskell.compiler.ghc9102: drop
Latest 9.10.x minor release is 9.10.3, which is also in Stackage 24.12+.

Thus, dropping according to the GHC Deprecation Policy.
2026-04-10 10:38:56 +02:00
nixpkgs-ci[bot]
cfd89a5979 Merge 3e3435576f into haskell-updates 2026-04-10 00:32:26 +00:00
Alex Tunstall
e805baacb7 haskell.{compiler,packages}.microhs: init
The package set is built entirely from source using the stdenv and Hugs.

This also replaces the recently added microhs package, which was built
from pre-generated compiler output.

Co-authored-by: sternenseemann <sternenseemann@systemli.org>
2026-04-09 22:33:33 +01:00
Wolfgang Walther
764e9289bf Merge commit '803c334e054de82093d74d01ce0ae215f171b793' into haskell-updates 2026-03-31 16:41:17 +02:00
sternenseemann
471b76f833 haskell.compiler.ghc9124: init at 9.12.4
https://www.haskell.org/ghc/blog/20260327-ghc-9.12.4-released.html
2026-03-29 13:46:32 +02:00
sternenseemann
5e74d3ca0e haskell.compiler.ghc912: 9.12.2 -> 9.12.3
After #490755, the problematic regression has been patched, so we can actually
update. After the fixes for fourmolu and cabal-add, HLS can also be built with
GHC 9.12.3.
2026-03-10 23:08:49 +01:00
sternenseemann
fda37a6db0 haskell: choose default versions in centralised way 2026-01-09 16:06:06 +01:00
sternenseemann
867f6b8b28 haskell.compiler.ghc9123: init at 9.12.3 (#474597) 2025-12-30 14:26:52 +00:00
sternenseemann
5710b82c56 haskell.compiler.ghcHEAD: 9.15.20250811 -> 9.15.20251225 2025-12-28 12:44:58 +01:00
sternenseemann
f3958665b8 haskell.compiler.ghc9123: init at 9.12.3
https://www.haskell.org/ghc/blog/20251227-ghc-9.12.3-released.html

haskell.packages.ghc9123.interpolate: fix eval
2025-12-28 10:25:03 +01:00
sternenseemann
c8680a776e haskell.*: Bootstrap & fix on powerpc64 (#439258) 2025-12-26 19:02:19 +00:00
Guillaume Bouchard
9654052789 haskell.compiler.ghc9141: init at 9.14.1
https://www.haskell.org/ghc/blog/20251219-ghc-9.14.1-released.html

Co-authored-by: sternenseemann <sternenseemann@systemli.org>
2025-12-22 22:34:14 +01:00
OPNA2608
370df1e30d haskell.compiler.ghc966DebianBinary: init at 9.6.6
Yoinked the ppc64 build from Debian, because there are no bindists for this.
2025-12-19 22:34:50 +01:00
nixpkgs-ci[bot]
a9ac86e773 Merge 92661251e0 into haskell-updates 2025-11-01 00:24:19 +00:00
Aliaksandr
03bb7d8195 all-packages: do not export lib functions from pkgs 2025-10-30 22:38:49 +02:00
Emily
2a59d27e69 haskell.compiler.ghc{948,967,984,9102,9103,9121,9122}: backport patches for LLVM support
LLVM 12–17 have been dropped for Nixpkgs 25.11. As discussed recently
on Matrix, this backports upstream changes to allow the use of
LLVM 20 for all GHC versions from 9.4.8 onward.

I looked over GHC commits mentioning LLVM since the release of 9.4.8,
and read the discussions and issues around the relevant bumps, and
attempted to be quite thorough, but I obviously cannot guarantee that
this is wholly comprehensive. It seems like upstream generally bumps
the upper bound on the basis of “it builds successfully for me”,
with specific adaptations for new versions being fairly uncommon and
only coming for obvious build blockers or reactively in response to
bug reports. I have backported both kinds of changes here.

For some commits, trivial conflict resolutions and adaptations
were required. It would be possible to pass the affected files to
`fetchpatch` as `excludes` and keep smaller fix‐up patches in tree in
some cases, but I opted to keep it simple and vendor complete backport
patches instead. I did not attempt to backport every single change to
the LLVM backend, only those that seemed directly relevant to support
for newer versions; if you’d get the same issue with the older LLVM,
that’s just a GHC bug.

These changes should actually make it easier to cross‐compile for
new architectures, as more recent LLVMs will have better support for
newer platforms, and it will be easier to backport GHC changes to
enable new platforms with less drift in the backend.

These patches do result in two breaking changes. Firstly, the minimum
LLVM version is bumped to 13 across the board. This is irrelevant for
Nixpkgs as we pin a specific LLVM version anyway, and versions below
LLVM 18 will be removed imminently. Secondly, support for the hidden
`-fno-llvm-tbaa` flag is dropped. This can be replaced with custom
`-optlo` flags to control the passes more directly, but the main
use of this undocumented flag appears to have been to [work around]
the lack of support for newer LLVM versions, anyway.

[work around]: <https://gitlab.haskell.org/ghc/ghc/-/issues/22220>

I successfully built the following on `aarch64-linux`:

* `pkgsCross.armv7l-hf-multiplatform.buildPackages.haskell.compiler.ghc948`
* `pkgsCross.armv7l-hf-multiplatform.buildPackages.haskell.compiler.ghc967`
* `pkgsCross.armv7l-hf-multiplatform.buildPackages.haskell.compiler.ghc984`
* `pkgsCross.armv7l-hf-multiplatform.buildPackages.haskell.compiler.ghc9102`
* `pkgsCross.armv7l-hf-multiplatform.buildPackages.haskell.compiler.ghc9121`
* `pkgsCross.armv7l-hf-multiplatform.buildPackages.haskell.compiler.ghc9122`
* `pkgsCross.riscv64.haskell.compiler.ghc948`

The GHC 9.4.8 with an ARMv7 host platform segfaults when I try to run
GHC, though e.g. `ghc-pkg --help` runs successfully. The GHC 9.10.3
build targeting ARMv7 crashed inside `llc(1)`, so I tried RISC‐V,
which has some platform mismatch issue relating to `libffi`, so I
tried z/Architecture, which failed with an invalid floating point
constant in the LLVM IR, so I tried 64‐bit MIPS, which failed with
a different `libffi` issue, so I tried 32‐bit MIPS, which failed
to compile `compiler-rt`, so I gave up. I confirmed that both of the
ARMv7 issues reproduce with 944e8fd4f4,
the revision before they were bumped from their old versions of LLVM,
so these are not regressions.

I built a test program with the ARMv7 cross‐compilers and
confirmed that they run on the AArch64 builder. I also confirmed
that the cross‐compiled RISC‐V GHC successfully runs under
`qemu-riscv64(1)`. It will only try to build programs via the C
backend, though, as that is the only option for unregisterised™
targets, so it’s not clear to me how useful LLVM support in 9.4.8
really is for bootstrapping new platforms; I guess even RISC‐V
would require more backporting work to produce a cross‐compiled
GHC that will use LLVM to compile its own input. I didn’t bother
setting up all the binfmt machinery to get it through compiling and
running a test program, but it at least makes the attempt.

(cherry picked from commit b6be8a03a7)
2025-10-23 10:42:16 +02:00
Wolfgang Walther
0b63c854c7 haskell.compiler.ghc9121: drop
Latest 9.12.x minor release is 9.12.2, which is also in Stackage Nightly
2025-09-01.

Thus, dropping according to the GHC Deprecation Policy.
2025-10-15 15:12:33 +02:00
Emily
58799a0f1a haskell.compiler.ghc924Binary: drop
(cherry picked from commit c9c7344657)
2025-10-15 15:05:53 +02:00
Emily
fe0862b815 haskell.compiler.ghc967: bootstrap with GHC 9.4.8
We’d want every version to be able to trace back to 9.4.8 for the
“cross‐compiled GHC bootstrap tarballs” plan, anyway. I’m not
sure whether we’d want a `ghc948Binary` package that also includes
the official tarballs, or just only use our cross‐compiled binary
distributions, but it will make sense to align the version used for
bootstrap regardless.

(cherry picked from commit da915f81ef)
2025-10-15 15:05:43 +02:00
Wolfgang Walther
95d6e417ca haskell.compiler.ghc963Binary: drop
This bootstraps mostly from ghc984Binary, at least for the major
platforms. The bootstrap paths for darwin become much shorter.
Unfortunately, the bootstrap paths for i686-linux become a bit longer,
so it's a trade-off.

(cherry picked from commit 5df6c9a28f)
2025-10-15 15:05:40 +02:00
Wolfgang Walther
ab3b9e8495 haskell.compiler.ghc9101: drop
Latest 9.10.x minor release is 9.10.2, which is also in Stackage 24.8.

Thus, dropping according to the GHC Deprecation Policy.

(cherry picked from commit ac5228c6c0)
2025-10-15 15:05:21 +02:00
sternenseemann
054e2d2541 Merge commit 59f9c6722b into haskell-updates 2025-10-08 12:34:28 +02:00
sternenseemann
e1831c312a haskell.compiler: make krank ignore informational issue references
A lot of the links to issues in pkgs/development/compilers/ghc note
historical issues we need to workaround for outdated versions of GHC
or note related discussion. Them being closed is not actionable in many
cases so I have marked them with krank:ignore-line, so they don't show
up in reports generated using krank.
2025-09-26 14:31:36 +02:00
Wolfgang Walther
916333cd33 haskell.compiler.ghc9103: fix eval with removal of llvmPackages_15
While LLVM 15 was removed on staging, GHC 9.10.3 was introducd on
haskell-updates.
2025-09-23 20:18:36 +02:00
sternenseemann
ce72c74432 haskell.compiler: remove references xattr missing flag issues
darwin.xattr used to be a fork of python3.pkgs.xattr.
bafc6ff88d switched darwin.xattr to Apple's new
C implementation of the tool.

When I originally packaged darwin.xattr (283d622397),
I linked tickets on the original tool's issue tracker suggesting to
add support for flags added by Apple in their fork. This has since
happened, so we could possibly switch to python3.pkgs.xattr.

However, I think it's no longer a good idea:

- Bootstrapping-wise a C tool is considerably simpler.
- GHC upstream tests against Apple's xattr(1) implementation in their
  CI. Especially now, since they no longer share a direct ancestry,
  it seems unwise to assume the tools will behave the same.
2025-09-22 13:24:02 +02:00
sternenseemann
f02201c53a ghc: 9.8.4 -> 9.10.3; Stackage LTS: 23.27 -> 24.9 (#429810) 2025-09-20 23:09:13 +02:00
Wolfgang Walther
a8e20b128a haskell.compiler.ghc963: drop
Latest 9.6.x minor release is 9.6.7, which is also in Stackage 22.44.

Thus, dropping according to the GHC Deprecation Policy.

This requires to change the bootstrap for GHC 9.8.x and GHC 9.10.x on
some platforms.
2025-09-18 20:09:57 +02:00
nixpkgs-ci[bot]
226863ce1c Merge f77e9a221d into haskell-updates 2025-09-15 15:36:24 +00:00
Emily
ac290135ea haskell.compiler.ghc{948,963,967,984,9101,9102,9121,9122}: bump LLVM
Bump the LLVM version used by our GHC packages in preparation for
the LLVM drops. This breaks the LLVM backend; it will be fixed soon
by backporting patches, but that will require a mass rebuild.
2025-09-14 19:03:24 +01:00
sternenseemann
bd1da437f6 haskell.compiler.ghc910: 9.10.2 -> 9.10.3
https://www.haskell.org/ghc/blog/20250910-ghc-9.10.3-released.html

(partially cherry picked from commit ed65db9c51)
2025-09-12 21:25:47 +02:00
sternenseemann
ed65db9c51 ghc: 9.10.2 -> 9.10.3
https://www.haskell.org/ghc/blog/20250910-ghc-9.10.3-released.html
2025-09-12 00:34:54 +02:00
Wolfgang Walther
e883d6d78c Merge commit '50a00d8692c0253cc75a3dc0bfc46a88d98f1b8c' into haskell-updates 2025-09-07 20:29:39 +02:00
Emily
fb5a523d14 haskell.compiler.ghc902Binary: bump LLVM by wrapping opt(1)
Implement a wrapper script to translate the `opt(1)` arguments passed
by the GHC 9.0.2 binary distribution to the equivalent arguments
for the new LLVM pass manager passed by GHC ≥ 9.10 and our
soon‐to‐be‐patched compilers. This ensures that the bootstrap
of GHC 9.4 continues to work on AArch64.

On an earlier version of this change, I built `haskell.compiler.ghc948`
on both `aarch64-linux` and `aarch64-darwin`, and
`haskell.compiler.ghc924` on `aarch64-linux` only (it is already
broken on Darwin). I confirmed that we get functionally identical
store outputs before and after this change, modulo self‐references:

    $ cp -a result-before/ before
    $ cp -a result-after/ after
    $ chmod -R +w before after
    $ LANG=C find before -type f -exec \
        remove-references-to \
        -t $(readlink result-before) \
        -t $(readlink result-before-doc) \
        '{}' ';'
    $ LANG=C find after -type f -exec \
        remove-references-to \
        -t $(readlink result-after) \
        -t $(readlink result-after-doc) \
        '{}' ';'
    # Darwin only: normalize build user UIDs in the archive files…
    $ LANG=C find before -name '*.a' -exec \
        sed -i 's/ 360 / 351 /g' '{}' ';'
    $ diff -r before after
    # Linux only: the `package.cache` files differ, presumably due to
    # an unrelated reproducibility issue.

Therefore, bumping this LLVM dependency did not affect the end result
of the bootstrap for the only compilers it is used for.
2025-09-07 19:07:56 +01:00
Emily
1bda5b199d haskell.compiler.ghc{924,963,984}Binary: remove LLVM‐related dead code
These binary packages are available for a fixed set of platforms,
all of which support the native code generator. Therefore, the
`llvmPackages` argument was never used. We leave an assertion around,
just in case.
2025-09-07 19:07:35 +01:00
Emily
3b7e7e362b haskell.compiler.ghc928: drop 2025-09-07 18:45:52 +01:00
Emily
c024327605 haskell.compiler.ghc8107{,Binary}: drop
Also, rearrange the GHC‐related release notes to be in order of
most likely to matter to anyone.

Co-authored-by: Wolfgang Walther <walther@technowledgy.de>
2025-09-07 18:45:36 +01:00
Emily
08129b69e5 haskell.compiler.ghc{928,963,967,9101,9102,HEAD}: drop AArch32 bootstrap
It’s questionable whether or not this worked – 32‐bit ARM in
Nixpkgs is already flaky even when cross‐compiling, and I find
it dubious whether much 32‐bit ARM hardware can build modern
GHCs in a bearable amount of time and memory – and figuring out
cross‐compilation of bootstrap GHCs will be a more sustainable way
to keep it working if anyone cares enough to.

Also, rearrange the GHC‐related release notes to be in order of
most likely to matter to anyone.
2025-09-07 18:45:02 +01:00
Emily
a25e8c5291 haskell.compiler.ghc902: add missing alias
Fixes: f8560ade01
2025-09-07 18:13:23 +02:00
sternenseemann
f8560ade01 haskell.compiler.ghc902: remove at 9.0.2
Let's drop everyone's least favorite GHC version.
2025-09-07 11:26:58 +02:00
nixpkgs-ci[bot]
027d77d285 Merge 38c4f0e410 into haskell-updates 2025-09-07 00:22:23 +00:00
Wolfgang Walther
4a5ab1eb69 haskell.compiler.ghc865Binary: drop
This was used for bootstrapping GHC on powerpc64le, but it's unclear
whether that actually still works. It makes no sense to pretend to
support it, when it's most likely broken, but we can't even verify.

Also the bootstrap chain will be broken once we drop GHC 8.10.7, so we
might as well drop the whole thing.
2025-09-07 00:32:48 +02:00
Wolfgang Walther
cdb246abb3 Merge commit '5203378d1dbf394970184006df4d6111065601a4' into haskell-updates 2025-09-06 21:18:41 +02:00
sternenseemann
62a276d4cd haskell.compiler.ghcjs: remove at 8.10.7 (#422342) 2025-09-06 15:08:39 +02:00
sternenseemann
60dfb9bae8 haskell.compiler.ghcjs: remove at 8.10.7 2025-09-06 14:56:30 +02:00
Wolfgang Walther
0c5d7ad8e0 haskell.compiler.ghc983: drop
Latest 9.8.x minor release is 9.8.4, which is also in Stackage 23.28.

Thus, dropping according to the GHC Deprecation Policy.

(cherry picked from commit 0943cd9574)
2025-09-06 14:38:43 +02:00
Wolfgang Walther
d5e27faf8e haskell.compiler.ghc982: drop
Latest 9.8.x minor release is 9.8.4, which is also in Stackage 23.28.

Thus, dropping according to the GHC Deprecation Policy.

(cherry picked from commit 1874b16d38)
2025-09-06 14:38:42 +02:00