Skip to content

Conversation

@tomsmeding
Copy link
Collaborator

Cabal is a dependency of Setup.hs.

No work was needed for 3.12 and 3.16 (just up the version bound). The interesting part is Cabal 3.14, which re-did the typing for paths in Cabal (haskell/cabal#9718) and as a result, since our Setup.hs does a bunch of stuff with paths, required quite a few changes.

I tried to localise the version differences in an API shim at the bottom of Setup.hs, to avoid introducing a very large number of CPP conditionals throughout the file. I'm open to other approaches.

Tested with Cabal 3.10, 3.12, 3.14, 3.16. @tmcdonell If you don't have time to review I'm also happy to merge as-is, but I wanted to give you the opportunity to have a look.

Copy link
Owner

@tmcdonell tmcdonell left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM. I agree the shim approach is the way to go.

Supporting old Cabal == supporting old ghc => old OS => existing GPU cluster, which is the thing we would ideally retain access to. That also implies keeping support for old CUDA versions as well. Maybe good context to add to the “if you want to remove support for old Cabal” section.

@tomsmeding
Copy link
Collaborator Author

Yep, good point, added. Worth noting is that getting Accelerate to run on very old GPU clusters may be some work in any case; we require clang > 15 for the gpu backend (because clang 15 tries to send PTX assembly to the system assembler for some reason, resulting in hilarity) and we're not testing old cuda versions, so we wouldn't notice if things break there. (We did drop support for compute capability < 3.0, but that seems reasonable.)

@tomsmeding tomsmeding merged commit 581b73f into tmcdonell:master Sep 15, 2025
0 of 43 checks passed
@tomsmeding tomsmeding deleted the cabal-3.16 branch September 15, 2025 08:35
@tomsmeding tomsmeding mentioned this pull request Sep 16, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants