-
Notifications
You must be signed in to change notification settings - Fork 704
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Cabal complains about TypeAbstractions
#9496
Comments
I thought @bgamari, @Kleidukos, we missed that in #9203. Do we want to fix the omission in cabal 3.10.3.0? Are there any additional new extensions? I think somebody told me there are none, but nobody took responsibility for that by ticking the box in the ticket. |
Let me mark it as 3.10 backport so that we don't forget to decide. |
Unfortunately adding a known extension (represented by a type constructor) is a breaking change and cannot be backported to 3.10. |
Depending on how important this is re: blessed-by-ghcup, this can be backported to 3.10, without adding type constructors, just modifying the logic of |
Andrea, you are right we can't just add a new type constructor. This is a shame and one more reason to review why we missed the extension. IMHO, this is worth a hack that Francesco suggests. GHC warns to add that extension, so more and more people are going to have it, so the warning at each |
Right. W.r.t to ghcup, ghcup only ships the executable binary so there's no issues of compatibility there. But we need to be careful not to add a breaking change to the 3.10 branch, otherwise we risk forgetting about it and mixing it up with other backports. @Mikolaj yeah, unfortunately it is. From https://pvp.haskell.org/
The reason is simple, if a dependent package case splits on the data type, it will either fail to build or worse get an exception at runtime. I don't have any issue with modifying how cabal check works. |
Right. I think @ffaf1 might have meant that if the "recommended" status bestowed by ghcup, which we so eagerly seek, depends on handling the extension, that's one more argument to make the extra effort and hack this in 3.10. |
See haskell#9496. “Backport” of haskell#9502, notice that we are not adding a new constructor, just tweaking `check` behaviour. This is improve UX without breaking changes.
See haskell#9496. “Backport” of haskell#9502, notice that we are not adding a new constructor, just tweaking `check` behaviour. This is improve UX without breaking changes.
Why did we miss
In the future, if we want to automatically test this,
(but note that |
Re 3.10 postmortem: and how about the GHC test https://gitlab.haskell.org/ghc/ghc/-/blob/master/testsuite/tests/driver/T4437.hs? How come it did not detect the missing extension? Is it not run by GHC CI? @bgamari, @mpickering? |
Wow, |
Something I was looking into for #9435 might help: cabal/Cabal-tests/tests/UnitTests/Distribution/Simple/Program/GHC.hs Lines 80 to 89 in 2dad49a
Here's a sequence of commands that shows
Are option changes only ever shipped with the first of a GHC series, in the |
@philderbeast There is precedent for shipping extensions with later versions of GHC in exceptional circumstances (see |
I added it there because it's the first step of the documented process
The problem is that I somehow forgot to do the other two steps. |
@int-index: thank you very much for the clarification. It seems we missed to double-check from the cabal side, as well. I've now added to our release checklist a hint to use Also, it seems the communication with GHC devs that grace our cabal dev meetings failed in this respect --- I'm being told we got distracted by long term automation and decoupling plans discussion and never got back to, e.g., cross-checking #9203 and a similar integration ticket on the GHC side, if there was any this time (there was for previous GHC releases). @bgamari says "I think all we can do is to potentially make the T4437 fail during release builds" --- that sounds great. Let's not close this here cabal ticket before it's resolved. All in all, the postmortem up to this point indicates it's not a major process or communication break-down, but just an unfortunate combination of little problems. Thank you all for keeping at it and let's also work on the long term automation/decoupling solutions! |
This is done and backported. |
As I understand it GHC 9.8.1 should work well with cabal 3.10.2.1, and indeed I've those versions:
But I'm getting:
The cabal file under question is: https://github.com/LeventErkok/sbv/blob/master/sbv.cabal
TypeAbstractions
is in a conditional stanza (https://github.com/LeventErkok/sbv/blob/48f39ce0666b976ebba559cc27a55a3c41d2fcc0/sbv.cabal#L79-L81), but I don't think that matters. Cabal still complains the same if I move it out of the conditional part.The text was updated successfully, but these errors were encountered: