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 #2098

Merged
merged 17 commits into from
Aug 22, 2024
Merged

Support building with GHC 9.8 #2098

merged 17 commits into from
Aug 22, 2024

Conversation

RyanGlScott
Copy link
Contributor

This PR contains a variety of tweaks needed to make the libraries in the saw-script repo support building with GHC 9.8. This includes:

RyanGlScott and others added 15 commits August 21, 2024 08:15
As of `aeson-2.2.*`, the `json'` function has been removed and migrated to a
new package, `attoparsec-aeson`. Adapt to this change accordingly in
`verif-viewer`, which uses `json'`.
In `sbv-10.3`, `UINone` gained an additional `Bool` field to represent if the
`UICodeKind` is curried or not. (See
LeventErkok/sbv@46fb932)
This usually defaults to `True`, so we follow suit in `saw-core-sbv`.
`sbv-10.3` adds support for the OpenSMT solver
(https://verify.inf.usi.ch/opensmt). Annoyingly, it's not possible to query the
OpenSMT version number from the command line, which is the one operation that
SAW's SMT caching requires. As such, we do the bare minimum to fix warnings
related to missing pattern match cases on `OpenSMT`, but without going as far
as adding full support for OpenSMT.
GHC 9.8 is better about reporting orphan type family instances, which are used
in various spots in Macaw. Enable `-Wno-orphans` to suppress these warnings.
`base-4.19.0.0` (GHC 9.8) adds `unzip` to `Data.Functor`, which clashes with
the `unzip` function defined in `Data.List`. We resolve the ambiguity by using
explicit imports from `Data.Functor` to avoid importing `Data.Functor.unzip`.
Really, we should be throwing a proper error message here instead of throwing a
`panic`, and we should document the requirement that the list of mutually
recursive functions must be non-empty. That is left as future work (see #2096).
Really, we should be throwing a proper error message here instead of throwing a
`panic`, and we should document the requirement that `__breakpoint__` functions
must end with `#<parent_name>`. That is left as future work (see #2097).
`pkg-config` is needed for the Haskell `zlib` library to locate the system's
`zlib` installation.
These are needed to install shared libraries for `zlib`, which SAW depends on
an runtime.
src/SAWScript/Crucible/LLVM/Builtins.hs Outdated Show resolved Hide resolved
src/SAWScript/Crucible/LLVM/FFI.hs Show resolved Hide resolved
src/SAWScript/HeapsterBuiltins.hs Outdated Show resolved Hide resolved
@RyanGlScott RyanGlScott merged commit 7873573 into master Aug 22, 2024
34 checks passed
@RyanGlScott RyanGlScott deleted the ghc-9.8 branch August 22, 2024 22:31
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