-
-
Notifications
You must be signed in to change notification settings - Fork 367
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
Drop ghc-api-compat from dependency closure #2128
Conversation
Incredible herculean work here, many many thanks. I hope you dont mind cause ive marked it as a draft (following the title) and chenge the title itself to note it adds ghc-9.2 support |
58993f7
to
9d1cd2e
Compare
@jneira this PR can be merged before GHC 9.2 support lands |
88f10ce
to
6821ffb
Compare
This adds GHC 9.0 support for the I don't guarantee that they work correctly, but they compile :) |
2f517e4
to
c89afc1
Compare
@fendor will try to help with stack files asap |
Solver error for ghc-9.0.1:
I think it will be fixed by 19e0681 |
I've started to work on stack.yaml's here: https://github.com/jneira/haskell-language-server/tree/ghc92 |
We can replace the source snapshot with Cabal conditions. This will unblock Hackage uploads until #2128 lands
We can replace the source snapshot with Cabal conditions. This will unblock Hackage uploads until #2128 lands
We can replace the source snapshot with Cabal conditions. This will unblock Hackage uploads until #2128 lands
We can replace the source snapshot with Cabal conditions. This will unblock Hackage uploads until #2128 lands
Equality of 'SrcSpan' also considers its field 'Maybe BufSpan' which is wrong in a couple of cases. Fixes Splice Plugin
Add .gitignore exemption
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM, thanks for this again
Thanks for cleaning up the mess I caused/contributed to when adding GHC-9.0 support! ❤️ |
@anka-213 Thank you for your GHC 9.0 support contribution, without this would have been harder! |
Requires re-structuring GHC API Compatibility.
We try to go with the latest GHC API and provide backwards compatible
functions for older GHC versions. The intention is that ghcide code is
written with the latest GHC API in mind, older GHC versions may have
inefficiencies in order to satisfy the newer API.
This way dropping support for older GHC versions is trivial (only delete
a couple of '#if ... #endif' and maybe update some imports), and ghcide
does suffer less from bit-rot. Additionally, we want to have the latest
and best GHC API, not some semi-outdated frankenstein.
The implementation adds a new Compat sub-hierarchy that defines
backwards compatible functions for the GHC API, where possible
higher-level abstractions.
The module hierarchy re-organisation of GHC is taken care of by
'Development.IDE.GHC.Compat.Core', which takes care of almost every
definition used by ghcide. If this becomes to unwieldy, it makes sense
to split it up into smaller logical pieces.
Design Decisions:
GHC
.TODOS:
Proper GHC 9.2 support(blocked on Support GHC 9.2 facebookincubator/retrie#36)Status:
With all supported plugins, HLS compiles for GHC 8.6.5 ... 9.0.1.