mirror of
https://github.com/GaloisInc/macaw.git
synced 2024-11-23 08:27:24 +03:00
049096c506
This contains a variety of fixes needed to make the packages in the `macaw` 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)). In most cases, adapting to this is a matter of manually eta expanding definitions, such as in `base:Data.Macaw.Analysis.RegisterUse`. In the case of `macaw-x86-symbolic:Data.Macaw.X86.Crucible`, the type signature of `evalExt` had to be made more specific to adapt to the loss of contravariance when typechecking `(->)`. * 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 `macaw-aarch32` and `macaw-symbolic`, as they separate top-level groups with `$(return [])` Template Haskell splices. The previous locations of these splices made it so that the TH-generated instances in that package were not available to any code before the splice, resulting in type errors when compiled with GHC 9.0. To overcome this, I rearranged the TH-generated instances so that they appear before the top-level groups that make use of them. * GHC 9.0 now enables `-Wstar-is-type` in `-Wall`, so this patch replaces some uses of `*` with `Data.Kind.Type`. `Data.Kind` requires the use of GHC 8.0 or later, so this patch also updates thes 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 `asl-translator`, `crucible`, and `semmc` submodules were updated to allow them to build with GHC 9.0. The `llvm-pretty` and `llvm-pretty-bc-parser` submodules were also bumped to accommodate unrelated changes in `crucible` that were brought in. * The upper version bounds on `doctest` in `macaw-symbolic`'s test suite were raised to allow it to build with GHC 9.0. |
||
---|---|---|
.. | ||
src/Data/Macaw | ||
tests | ||
ChangeLog.md | ||
LICENSE | ||
macaw-aarch32.cabal | ||
REAMDE.md | ||
Setup.hs |