-
Notifications
You must be signed in to change notification settings - Fork 20
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.4 #330
Merged
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Note that due to a circular submodule dependency (see #283), this PR depends on GaloisInc/macaw-loader#17, but GaloisInc/macaw-loader#17 also depends on this PR. I may need to bump the submodule commits that each repo points to post facto after landing to ensure that they both point to a commit on the |
kquick
approved these changes
Apr 18, 2023
This is cargo-culted from the `*.Panic` module of a similar name in `macaw-aarch32`. This will be useful in a subsequent commit in which we replace some unreachable calls to `fail` with `panic`.
This contains a variety of tweaks needed to make the libraries in the `macaw` repo build with GHC 9.4: * `ST` no longer has a `MonadFail` instance. See [this section](https://gitlab.haskell.org/ghc/ghc/-/wikis/migration/9.4?version_id=b60e52482a666d25638d59cd7e86851ddf971dc1#st-is-no-longer-an-instance-of-monadfail) of the GHC 9.4 Migration Guide. To adapt to this change, I had to change some uses of `fail` to `panic`, and I also had to avoid some partial pattern matches in `do`-notation to avoid incurring `MonadFail (ST s)` constraints. * GHC 9.4 is pickier about undecidable superclass checking. As such, I needed to explicitly enable `UndecidableSuperClasses` in a handful of places. * The following submodule changes were brought in to support building with GHC 9.4: * `asl-translator`: GaloisInc/asl-translator#51 * `bv-sized`: GaloisInc/bv-sized#27 * `bv-sized-float`: GaloisInc/bv-sized-float#4 * `crucible`: GaloisInc/crucible#1073 (This also requires bumping the `llvm-pretty`, `llvm-pretty-bc-parser`, and `what4` submodules as a side effect) * `dismantle`: GaloisInc/dismantle#40 * `grift`: GaloisInc/grift#8 * `macaw-loader`: GaloisInc/macaw-loader#17 * `semmc`: GaloisInc/semmc#79
GHC 9.4 adds `-Wtype-equality-requires-operators` to `-Wall`, which warns about certain uses of type equalities that are not forward-compatible with planned changes in GHC. See [this section](https://gitlab.haskell.org/ghc/ghc/-/wikis/migration/9.4?version_id=b60e52482a666d25638d59cd7e86851ddf971dc1#-is-now-a-type-operator) of the GHC 9.4 Migration Guide. These warnings are easily fixed by enabling the `TypeOperators` extension.
RyanGlScott
added a commit
to GaloisInc/macaw-loader
that referenced
this pull request
Apr 18, 2023
This contains a variety of tweaks needed to make the libraries in the `macaw-loader` repo build with GHC 9.4: * GHC 9.4 is pickier about undecidable superclass checking. As such, I needed to explicitly enable `UndecidableSuperClasses` in one place. * The following submodule changes were brought in to support building with GHC 9.4: * `asl-translator`: GaloisInc/asl-translator#51 * `bv-sized`: GaloisInc/bv-sized#27 * `bv-sized-float`: GaloisInc/bv-sized-float#4 * `crucible`: GaloisInc/crucible#1073 (This also requires bumping the `llvm-pretty`, `llvm-pretty-bc-parser`, and `what4` submodules as a side effect) * `dismantle`: GaloisInc/dismantle#40 * `grift`: GaloisInc/grift#8 * `macaw`: GaloisInc/macaw#330 * `parameterized-utils`: GaloisInc/parameterized-utils#146 * `semmc`: GaloisInc/semmc#79
RyanGlScott
added a commit
to GaloisInc/macaw-loader
that referenced
this pull request
Apr 18, 2023
This contains a variety of tweaks needed to make the libraries in the `macaw-loader` repo build with GHC 9.4: * GHC 9.4 is pickier about undecidable superclass checking. As such, I needed to explicitly enable `UndecidableSuperClasses` in one place. * The following submodule changes were brought in to support building with GHC 9.4: * `asl-translator`: GaloisInc/asl-translator#51 * `bv-sized`: GaloisInc/bv-sized#27 * `bv-sized-float`: GaloisInc/bv-sized-float#4 * `crucible`: GaloisInc/crucible#1073 (This also requires bumping the `llvm-pretty`, `llvm-pretty-bc-parser`, and `what4` submodules as a side effect) * `dismantle`: GaloisInc/dismantle#40 * `grift`: GaloisInc/grift#8 * `macaw`: GaloisInc/macaw#330 * `parameterized-utils`: GaloisInc/parameterized-utils#146 * `semmc`: GaloisInc/semmc#79
RyanGlScott
added a commit
to GaloisInc/saw-script
that referenced
this pull request
Apr 18, 2023
This contains a variety of tweaks needed to build SAW with GHC 9.4: * GHC 9.4 is more conservative about inferring superclass constraints that arise from functional dependencies (see [this section](https://gitlab.haskell.org/ghc/ghc/-/wikis/migration/9.4?version_id=b60e52482a666d25638d59cd7e86851ddf971dc1#constraints-derived-from-superclasses) of the GHC 9.4 Migration Guide), so we must add explicit `m ~ Identity` constraints to certain parts of `heapster-saw` to make it compile with GHC 9.4. * I raised the upper version bounds on `aeson` and `vector` to allow building them with GHC 9.4. * The following submodule changes were brought in to support building with GHC 9.4: * `argo`: #193 * `crucible`: GaloisInc/crucible#1073 (This also requires bumping the `llvm-pretty`, `llvm-pretty-bc-parser`, and `what4` submodules as a side effect) * `language-sally`: GaloisInc/language-sally#13 * `macaw`: GaloisInc/macaw#330 * `parameterized-utils`: GaloisInc/parameterized-utils#146 temp
RyanGlScott
added a commit
to GaloisInc/saw-script
that referenced
this pull request
Apr 19, 2023
This contains a variety of tweaks needed to build SAW with GHC 9.4: * GHC 9.4 is more conservative about inferring superclass constraints that arise from functional dependencies (see [this section](https://gitlab.haskell.org/ghc/ghc/-/wikis/migration/9.4?version_id=b60e52482a666d25638d59cd7e86851ddf971dc1#constraints-derived-from-superclasses) of the GHC 9.4 Migration Guide), so we must add explicit `m ~ Identity` constraints to certain parts of `heapster-saw` to make it compile with GHC 9.4. * I raised the upper version bounds on `aeson` and `vector` to allow building them with GHC 9.4. * The following submodule changes were brought in to support building with GHC 9.4: * `argo`: #193 * `crucible`: GaloisInc/crucible#1073 (This also requires bumping the `llvm-pretty`, `llvm-pretty-bc-parser`, and `what4` submodules as a side effect) * `language-sally`: GaloisInc/language-sally#13 * `macaw`: GaloisInc/macaw#330 * `parameterized-utils`: GaloisInc/parameterized-utils#146 Fixes #1852.
RyanGlScott
added a commit
to GaloisInc/saw-script
that referenced
this pull request
May 26, 2023
This contains a variety of tweaks needed to build SAW with GHC 9.4: * GHC 9.4 is more conservative about inferring superclass constraints that arise from functional dependencies (see [this section](https://gitlab.haskell.org/ghc/ghc/-/wikis/migration/9.4?version_id=b60e52482a666d25638d59cd7e86851ddf971dc1#constraints-derived-from-superclasses) of the GHC 9.4 Migration Guide), so we must add explicit `m ~ Identity` constraints to certain parts of `heapster-saw` to make it compile with GHC 9.4. * I raised the upper version bounds on `aeson` and `vector` to allow building them with GHC 9.4. * The following submodule changes were brought in to support building with GHC 9.4: * `argo`: #193 * `crucible`: GaloisInc/crucible#1073 (This also requires bumping the `llvm-pretty`, `llvm-pretty-bc-parser`, and `what4` submodules as a side effect) * `language-sally`: GaloisInc/language-sally#13 * `macaw`: GaloisInc/macaw#330 * `parameterized-utils`: GaloisInc/parameterized-utils#146 Fixes #1852.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This contains a variety of tweaks needed to make the libraries in the
macaw
repo build with GHC 9.4:ST
no longer has aMonadFail
instance. See this section of the GHC 9.4 Migration Guide. To adapt to this change, I had to change some uses offail
toerror
, and I also had to avoid some partial pattern matches indo
-notation to avoid incurringMonadFail (ST s)
constraints.UndecidableSuperClasses
in a handful of places.asl-translator
: Support building with GHC 9.4 asl-translator#51bv-sized
: Support building with GHC 9.4 bv-sized#27bv-sized-float
: Allow building with GHC 9.4 bv-sized-float#4crucible
: Support building with GHC 9.4 crucible#1073(This also requires bumping the
llvm-pretty
,llvm-pretty-bc-parser
,and
what4
submodules as a side effect)dismantle
: Support building with GHC 9.4 dismantle#40grift
: Allow building with GHC 9.4 grift#8macaw-loader
: Support building with GHC 9.4 macaw-loader#17semmc
: Support building with GHC 9.4 semmc#79