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

Update GHC support in INSTALL.md #597

Merged
merged 2 commits into from
Aug 12, 2023

Conversation

Vekhir
Copy link
Contributor

@Vekhir Vekhir commented Aug 11, 2023

The supported GHC versions have changed and need to be reflected in INSTALL.md

The GHC version in CI has been upgraded to 9.2.8 from 9.0.2 (#580),
Support for < 8.0 has been dropped (#585),
Support for 9.4 and 9.6 is in the works (#581), and
GHC 9.6 is known to compile (#585).

These 4 facts are now reflected in the INSTALL.md with outdated information removed.

The GHC version in CI has been updated to 9.2.8, support for < 8.0 has been dropped, and support for 9.4 and 9.6 are in the works with 9.6 known to compile.
@quark17
Copy link
Collaborator

quark17 commented Aug 12, 2023

Thanks for contributing this!

FYI, BSC still builds with GHC 7.10.3 (although the I see that I needed to add mtl to the cabal command given in the build instructions). I notice that GHCUP still lists 7.10.3 as an option. It's probably OK to say that GHC 8+ is needed, but it also doesn't hurt to leave in 7.10. Was there a reason you thought that 7.10 should be dropped?

@quark17
Copy link
Collaborator

quark17 commented Aug 12, 2023

Ah, I see I was sloppy and mentioned 8.0 in the PR that you reference. I should have said 7.10.

@Vekhir
Copy link
Contributor Author

Vekhir commented Aug 12, 2023

There is a slight difference between "supported" and "happens to work" which I used to explain the discrepancy between your comment and commit message, the latter stating correctly that 7.10 is unaffected. The situation was still somewhat confusing, so I chose to just say 8.0 for the initial PR.

If 7.10 still qualifies as "supported", then I have no issue with keeping that particular language.

@quark17
Copy link
Collaborator

quark17 commented Aug 12, 2023

We don't have a policy on what we want to support. Technically, the only thing we can say we support is what we test, which is just 9.2.8 at the moment. Although I have been experimenting in my own fork with adding testing of more GHC versions to the CI. I was just looking at adding 9.6.2. We could add more, but I worry about the CI time getting out of control then?

Unless someone wants to propose a policy ... I'm happy to say that we still support 7.10.3+ until it becomes a hassle to do so ... and I'm happy to just track the versions that GHCUP lists. (There's no need to keep support for more versions than GHCUP, but we could choose to support fewer versions, if someone wants to propose a policy.) I also notice that the GHC download page lists only 9.2.8, 9.4.6, and 9.6.2 as "stable releases" (and the rest as "older"). I'm happy to say that BSC has two tiers of support: the three GHC "stable release" are more supported, meaning that any issues would be a priority to fix; whereas, for older versions, we just support that the code will compile.

The Makefile and source code still has ifdefs to support 7.10; we haven't removed those. We probably should update src/comp/Makefile so that it doesn't warn about 9.4 and 9.6 not being supported, since I would consider those supported now (9.6.2 compiles and passes the CI tests on Ubuntu).

I might propose the following text (for now until we add more GHC versions to the CI):

Bluespec compiler builds are tested with GHC 9.2.8.
GHC releases older than 7.10.3 are not supported.

The source code has been written with extensive preprocessor macros to
support compiling with every minor release of GHC since 7.10, through 9.6.
Any releases in that range should be fine.
The stable releases of 9.0.2 and 9.2.8 are reasonable choices.

Although GHC's website doesn't call 9.0.2 a "stable release", so I'm open to a different wording. I'm also happy to drop the mention of 9.0.2 or to say that 9.2.8 is the recommended version.

Readded 7.10.3 as supported, since there are no plans to drop the existing infrastructure that enables 7.10.3 to compile.

Added version 9.2 as recommendation. This version is also used to build the official releases (e.g. 2023.1). The point release (.8 at time of writing) is omitted to avoid having to update it.
@Vekhir
Copy link
Contributor Author

Vekhir commented Aug 12, 2023

I've updated the PR with another commit. The chosen wording just mentions 9.2 in its latest point release as recommended.

@quark17 quark17 merged commit 0b38555 into B-Lang-org:main Aug 12, 2023
33 checks passed
@quark17
Copy link
Collaborator

quark17 commented Aug 12, 2023

Thank you!

@Vekhir Vekhir deleted the ghc-support-install-me branch August 12, 2023 23:56
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