You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This contains a variety of fixes needed to make the packages in the
`saw-script` repo compile with GHC 9.0:
* GHC 9.0 implements simplified subsumption (see
[here](https://gitlab.haskell.org/ghc/ghc/-/wikis/migration/9.0?version_id=5fcd0a50e0872efb3c38a32db140506da8310d87#simplified-subsumption)).
This requires manually eta expanding some function applications to
accommodate (see, for instance, the expansions of `getAllLLVM` in
`SAWScript.Crucible.LLVM.MethodSpecIR`.
* GHC's constraint solver now solves constraints in each top-level group
sooner (see
[here](https://gitlab.haskell.org/ghc/ghc/-/wikis/migration/9.0?version_id=5fcd0a50e0872efb3c38a32db140506da8310d87#the-order-of-th-splices-is-more-important)).
This affects `heapster-saw`, as it uses declaration splices extensively. I
did some fairly involved rearranging of data type declarations and
TH-generated instances to make everything typecheck. It's not exactly pretty,
but it gets the job done.
* GHC 9.0 now enables `-Wstar-is-type` in `-Wall`, so this patch replaces some
uses of `*` with `Data.Kind.Type` in `saw-core-what4` and `crux-mir-comp`.
`Data.Kind` requires the use of GHC 8.0 or later, so this patch also updates
the lower bounds on `base` to `>= 4.9` in the appropriate `.cabal` files.
(I'm fairly certain that this requirement was already present implicity, but
better to be explicit about it.)
* The upper version bounds on `base` in `saw-remote-api` were raised to allow
it to build with `base-4.15.*`, which is bundled with GHC 9.0.
* The `cryptol` submodule was bumped to incorporate the changes from
GaloisInc/cryptol#1233, which allow it to build with GHC 9.0.
0 commit comments