rules_haskell icon indicating copy to clipboard operation
rules_haskell copied to clipboard

feat(ghc): add GHC 9.10.3 support for ARM64 macOS

Open lexfrei opened this issue 1 month ago • 2 comments

Summary

Add support for GHC 9.10.3 across supported platforms (Linux and macOS).

  • Add stackage snapshot configuration using LTS 24.19
  • Update CI workflow matrix to test GHC 9.10.3
  • Exclude Windows and bzlmod builds (consistent with recent GHC versions)

Changes

  • Created stackage_snapshot_9.10.3.yaml with LTS 24.19 resolver
  • Added GHC 9.10.3 to CI test matrices for nixpkgs and bindist workflows
  • Added symlink in rules_haskell_tests/ for test snapshot

Notes

The GHC 9.10.3 binary distributions already exist in ghc_bindist_generated.json for all platforms (darwin_amd64, darwin_arm64, linux_amd64, linux_arm64, windows_amd64).

Windows and bzlmod support excluded following the pattern of GHC 9.6.5 and 9.8.2.

Test Plan

  • CI will test GHC 9.10.3 on Ubuntu 24.04 and macOS 14
  • Both nixpkgs and bindist toolchains will be tested
  • All three workspaces (rules_haskell, rules_haskell_nix, rules_haskell_tests) covered

lexfrei avatar Nov 19 '25 16:11 lexfrei

@avdv Thanks for the review! Fixed and pushed.

The ghcide-snapshot_9.10.3.json generation required two additional fixes in ghcide-stack-snapshot_9.10.3.yaml:

  1. Fixed resolver: Changed from nightly-2024-12-10 to nightly-2024-12-11 - the former doesn't exist in Stackage (GHC 9.10 nightly started on Dec 11, 2024)

  2. Added missing packages: lsp-2.7.0.0 and lsp-types-2.3.0.0 - these are not included in nightly-2024-12-11 but are required dependencies for ghcide 2.9.0.0

lexfrei avatar Dec 02 '25 12:12 lexfrei

@avdv Thanks for the review! Fixed and pushed.

The ghcide-snapshot_9.10.3.json generation required two additional fixes in ghcide-stack-snapshot_9.10.3.yaml:

1. **Fixed resolver**: Changed from `nightly-2024-12-10` to `nightly-2024-12-11` - the former doesn't exist in Stackage (GHC 9.10 nightly started on Dec 11, 2024)

2. **Added missing packages**: `lsp-2.7.0.0` and `lsp-types-2.3.0.0` - these are not included in `nightly-2024-12-11` but are required dependencies for ghcide 2.9.0.0

Thanks, that makes sense. I just pushed some changes to use an lts revision instead of a nightly and pinned the two other snapshots. Hopefully, these will succeed now. :crossed_fingers:

\edit: it failed for the test-haddock test which needs to be adapted to new compiler versions. I took the opportunity to replace the test with a unittest that checks against the output files with version suffixes removed.

avdv avatar Dec 04 '25 12:12 avdv

I fixed a few of the remaining test failures but there are some left. Could you look into them, I probably won't be able to on the next days?!

avdv avatar Dec 13 '25 13:12 avdv