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 minor changes needed to make `saw` and its
supporting libraries compile with GHC 9.2:
* One place in `heapster-saw` matches on a GADT using a `let` binding, which no
longer typechecks in GHC 9.2. While somewhat mysterious, using `let` bindings
to match on GADTs is fragile anyway, so I opted to simply replace this with a
monadic `do` match, which does not exhibit the same fragility.
* GHC now includes `-Wincomplete-uni-patterns` in `-Wall` as of 9.2, so much
of this patch is dedicated to silencing these sorts of warnings, usually by
adding explicit fall-through cases for partial pattern matches.
* GHC now inclues `-Wnoncanonical-monad-instances` in `-Wall` as of 9.2, so I
had to refactor some `Applicative`/`Monad` instances to fix these warnings.
* GHC 9.2 now defines `readBin` in `Numeric`, which clashes with a function of
the same name in `SAWScript.Lexer`. Using explicit imports avoids this.
* GHC's pattern-match coverage checker is smarter in 9.2 (see
[here](https://gitlab.haskell.org/ghc/ghc/-/wikis/migration/9.2?version_id=63085dd8a5b56370571bda428848e7098765f7f8#improved-pattern-match-coverage-checker)),
so I had to use `EmptyCase` to silence some of the new
`-Wincomplete-patterns` warnings that were uncovered in `heapster-saw`.
This is still a draft because:
* [ ] There are various `-Wincomplete-uni-patterns` warnings in `saw` and
`heapster-saw` that I have not yet had time to address. (See also a
`TODO RGS` in `exe:saw` that should be fixed.)
* [ ] I am temporarily including an `allow-newer` section in the
`cabal.project` file to allow `graphviz` (a `verif-viewer` dependency)
to build with GHC 9.2. See ivan-m/graphviz#53.
Once that is merged upstream, we can remove this hack.
[ci skip]
0 commit comments