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

Support building with GHC 9.8 #1234

Merged
merged 8 commits into from
Aug 2, 2024
Merged

Support building with GHC 9.8 #1234

merged 8 commits into from
Aug 2, 2024

Conversation

RyanGlScott
Copy link
Contributor

This PR contains a variety of fixes needed to build the libraries in the crucible repo with GHC 9.8:

  • I've bumped the jvm-parser submodule to bring in the changes from Fix -Wx-partial warnings discovered by GHC 9.8 jvm-parser#12.
  • Various upper version bounds on base and th-abstraction were raised to allow building with GHC 9.8.
  • GHC 9.8 adds the -Wx-partial warning to -Wall, which warns on uses of the partial head and tail functions. I have made an effort to remove uses of these functions where possible. Where this is not possible, I have rewritten uses of head and tail into pattern matches with explicit panics in the partial cases.
  • I have updated the CI to test GHC 9.4, 9.6, and 9.8. We now drop GHC 9.2 from CI. This means that the Dockerfiles now use GHC 9.4 instead of 9.2.

We have managed to call `tail` here on empty lists before (see #1000), which
leads to confusing error messages. Let's replace this with explicit
pattern-matching plus a call to `panic` in the empty list case to make it more
obvious where the error comes from. Moreover, doing this fixes a `-Wx-partial`
warning on GHC 9.8, which is also nice.
`pkg-config` is needed for the Haskell `zlib` library to locate the system's
`zlib` installation.
Copy link
Contributor

@langston-barrett langston-barrett left a comment

Choose a reason for hiding this comment

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

Excellent, thanks for putting this together!

crucible/src/Lang/Crucible/Simulator/Profiling.hs Outdated Show resolved Hide resolved
crux-llvm/test/Test.hs Outdated Show resolved Hide resolved
@RyanGlScott RyanGlScott merged commit e861406 into master Aug 2, 2024
32 checks passed
@RyanGlScott RyanGlScott deleted the ghc-9.8 branch August 2, 2024 17:14
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.

3 participants