Skip to content
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 support for GHC 8.10 #3434

Merged
merged 5 commits into from
Aug 31, 2023
Merged

Drop support for GHC 8.10 #3434

merged 5 commits into from
Aug 31, 2023

Conversation

michaelpj
Copy link
Collaborator

Per our support policy, we should now deprecated 8.10. We might not want
to do this immediately, but this PR implements it.

TODO:

  • Make sure CI is still all happy
  • Simplify a lot of bindings that can now just be re-exports

@hasufell
Copy link
Member

hasufell commented Jan 4, 2023

I'm against it.

The 2022 Haskell survey results show that almost half of users are still on 8.10.x: https://taylor.fausak.me/2022/11/18/haskell-survey-results/#s2q4

It seems quite radical to drop it.

@fendor
Copy link
Collaborator

fendor commented Jan 4, 2023

Assuming 1.9.0.0 is fairly stable, GHC 8.10.7 users may use that for the foreseeable future, or are we expecting even more groundbreaking performance improvements for HLS and GHC 8.10.7?

@michaelpj
Copy link
Collaborator Author

I misremembered. Our policy says that we support three major GHC versions back from a version that has full support from HLS and is in a stackage LTS. The latest stackage LTS is 9.2 not 9.4. So 8.10 is still in our support window until that happens.

I'll leave this open for now since I did most of the work already.

@hasufell
Copy link
Member

hasufell commented Jan 4, 2023

Assuming 1.9.0.0 is fairly stable, GHC 8.10.7 users may use that for the foreseeable future, or are we expecting even more groundbreaking performance improvements for HLS and GHC 8.10.7?

The policy is a policy, not a rule. And it doesn't make sense in this case unless we want to annoy half of our userbase.

@michaelpj
Copy link
Collaborator Author

The policy is also a justification. Dropping versions will always annoy people, part of the reason for having a policy is so there's something we can point at and say, "look, we have to do something, here's this reasonable policy that says why we're doing it, do you disagree with that?".

@hasufell
Copy link
Member

hasufell commented Jan 4, 2023

Sure, I'll send a PR to update the policy then.

@hasufell hasufell marked this pull request as ready for review January 4, 2023 11:31
@hasufell hasufell marked this pull request as draft January 4, 2023 11:32
@michaelpj
Copy link
Collaborator Author

No, the policy is fine, I misremembered and this PR is premature, see my earlier comment. We should not drop 8.10 according to the policy.

@hasufell
Copy link
Member

hasufell commented Jan 4, 2023

No, the policy is fine

As one of the initiators of the policy, I disagree.

@Kleidukos
Copy link
Member

Kleidukos commented Jan 4, 2023

Please for the love of God I urge you not to deprecate 8.10, its latest minor (8.10.7) is one of the most used GHC version, it has wonderful support in the ecosystem while still being quite reliable in terms of code generation.

@michaelpj
Copy link
Collaborator Author

Just to reiterate:

  1. The current policy is not to drop it, we're not doing it until there's a stackage LTS with 9.4 at least.
  2. Dropping support for 8.10 just means that 8.10 users won't get new HLS updates. The existing versions will work fine forever.

@Kleidukos
Copy link
Member

Kleidukos commented Jan 4, 2023

Dropping support for 8.10 just means that 8.10 users won't get new HLS updates. The existing versions will work fine forever.

Please correct me if I'm wrong but does that mean that there won't be patch releases for the last HLS to support 8.10.7? (note: I'm not trying to make you say anything, I just need to get a grasp on the whole thing)

@hasufell
Copy link
Member

hasufell commented Jan 4, 2023

Please correct me if I'm wrong but does that mean that there won't be patch releases for the last HLS to support 8.10.7?

Yeah I think there never really have been long-running branches and my intuition says that would be more work than keeping that CPP code in master.

@andys8
Copy link
Collaborator

andys8 commented Jan 23, 2023

This is maybe a bit out of scope, but for context: There might be some large libraries that aren't ready / released for ghc 9.x. If I'm not mistaken amazonka is one of them. It might be possible to work around it this issue by using unreleased code, but there is no official release yet. As shown in the survey, there might be a good amount of production projects that will keep using ghc 8.10.7 for now.

@michaelpj
Copy link
Collaborator Author

I want to revisit this. I think it is a good time. Stackage LTS is on 9.4. 8.10.7 was released in 2021. The compiler has not received any bug fixes since then, I think it is not so bad that 8.10-compatible HLS will now no longer receive bug fixes. Other than that the existing releases will continue to work perfectly well.

@michaelpj
Copy link
Collaborator Author

I have updated the PR, it compiles and passes everything.

@michaelpj
Copy link
Collaborator Author

We're going to do a release next week, though, this can wait until after that.

@michaelpj michaelpj marked this pull request as ready for review August 30, 2023 15:49
@michaelpj
Copy link
Collaborator Author

Okay, it's green now. I can't make the pre-commit check green because stylish-haskell chokes on a file and I can't figure out why. But I've updated the formatting as much as possible.

Copy link
Collaborator

Choose a reason for hiding this comment

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

For line 84: stylish-haskell doesn't like function body and arguments to be separated like that. I think you might be able to move just the "=" over to the function body section and get it to work. Otherwise, you'll need to duplicate the function twice.

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

Thanks, I'll fix this separately so I can get this in for now.

Copy link
Collaborator

@fendor fendor left a comment

Choose a reason for hiding this comment

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

LGTM, thanks!

@michaelpj michaelpj merged commit 861aba7 into master Aug 31, 2023
39 of 41 checks passed
@juhp
Copy link
Contributor

juhp commented Sep 29, 2023

Can haskell-language-server-wrapper handle different versions of HLS? (My guess would be no?)

@fendor
Copy link
Collaborator

fendor commented Sep 29, 2023

It only knows about the HLS versions on PATH, iirc, so kind of?

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.

7 participants