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.6 #235

Merged
merged 7 commits into from
Jul 28, 2023
Merged

Support building with GHC 9.6 #235

merged 7 commits into from
Jul 28, 2023

Conversation

RyanGlScott
Copy link
Contributor

@RyanGlScott RyanGlScott commented Jul 19, 2023

This patch contains a variety of fixes needed to build the libraries in the
what4 repo with GHC 9.6:

  • GHC 9.6 bundles mtl-2.3.*, which no longer re-exports Control.Monad,
    Control.Monad.IO.Class, and similar modules from mtl-related modules.
    To accommodate this, various imports have been made more explicit.

  • MonadTrans t now has a quantified forall m. Monad m => Monad (t m)
    superclass in mtl-2.3.*. As a result, the MonadTrans (PartialT sym)
    instance must now have an IsExpr (SymExpr sym) instance context in order
    for it to typecheck, as this is the same instance context that PartialT's
    Monad instance has.

    This is technically a breaking change, so I have noted it in the what4
    changelog. That being said, this change is unlikely to affect many people
    in practice, considering that the MonadTrans instance for PartialT is
    usually used in tandem with the Monad instance.

  • Various upper version bounds on base have been lifted to allow building
    with base-4.18.

  • The aig submodule has been bumped to bring in the changes from
    Support building with GHC 9.6 aig#15, which allows it to build with GHC 9.6.

This patch contains a variety of fixes needed to build the libraries in the
`what4` repo with GHC 9.6:

* GHC 9.6 bundles `mtl-2.3.*`, which no longer re-exports `Control.Monad`,
  `Control.Monad.IO.Class`, and similar modules from `mtl`-related modules.
  To accommodate this, various imports have been made more explicit.
* `MonadTrans t` now has a quantified `forall m. Monad m => Monad (t m)`
  superclass in `mtl-2.3.*`. As a result, the `MonadTrans (PartialT sym)`
  instance must now have an `IsExpr (SymExpr sym)` instance context in order
  for it to typecheck, as this is the same instance context that `PartialT`'s
  `Monad` instance has.

  This is technically a breaking change, so I have noted it in the `what4`
  changelog. That being said, this change is unlikely to affect many people
  in practice, considering that the `MonadTrans` instance for `PartialT` is
  usually used in tandem with the `Monad` instance.
* Various upper version bounds on `base` have been lifted to allow building
  with `base-4.18`.
* The `aig` submodule has been bumped to bring in the changes from
  GaloisInc/aig#15, which allows it to build with GHC 9.6.
Not only is it not used, the version bounds were interfering with GHC 9.6 build
plans. Let's just remove it.
@RyanGlScott RyanGlScott changed the title Draft: Support building with GHC 9.6 Support building with GHC 9.6 Jul 28, 2023
@RyanGlScott RyanGlScott marked this pull request as ready for review July 28, 2023 17:29
@RyanGlScott RyanGlScott requested a review from kquick July 28, 2023 17:29
.github/workflows/test.yml Outdated Show resolved Hide resolved
@RyanGlScott RyanGlScott merged commit 3b00db7 into master Jul 28, 2023
26 checks passed
@RyanGlScott RyanGlScott deleted the ghc-9.6 branch July 28, 2023 19:13
RyanGlScott added a commit to GaloisInc/crucible that referenced this pull request Aug 3, 2023
This patch contains a variety of fixes needed to build the libraries in the
`crucible` repo with GHC 9.6:

* GHC 9.6 bundles `mtl-2.3.*`, which no longer re-exports `Control.Monad`,
  `Control.Monad.IO.Class`, and similar modules from `mtl`-related modules. To
  accommodate this, various imports have been made more explicit.
* Per [this part](https://gitlab.haskell.org/ghc/ghc/-/wikis/migration/9.6?version_id=e9996b225b1f2a5005178283f833fe6ce341beb3#type-changing-record-updates-involving-type-families)
  of the GHC 9.6 migration guide, a type-changing record update involving
  `emptyInitialFileSystemContents` had to be disambiguated using an explicit
  type application.
* Various upper version bounds on `base` and `aeson` were raised to allow
  building with GHC 9.6.
* The following submodules were bumped to bring in GHC 9.6–related changes:
  * `golang`: GaloisInc/golang#9
  * `llvm-pretty`: GaloisInc/llvm-pretty#112
  * `llvm-pretty-bc-parser`: GaloisInc/llvm-pretty-bc-parser#225
  * `what4`: GaloisInc/what4#235
RyanGlScott added a commit to GaloisInc/language-sally that referenced this pull request Aug 4, 2023
This is a matter of bumping the upper version bounds on `base` and bumping the
`what4` submodule to bring in the changes from
GaloisInc/what4#235.
RyanGlScott added a commit to GaloisInc/language-sally that referenced this pull request Aug 4, 2023
This is a matter of bumping the upper version bounds on `base` and bumping the
`what4` submodule to bring in the changes from
GaloisInc/what4#235.
RyanGlScott added a commit to GaloisInc/asl-translator that referenced this pull request Aug 7, 2023
This patch contains two changes needed to make `asl-translator` compile with
GHC 9.6:

* GHC 9.6 bundles `mtl-2.3.*`, which no longer re-exports `Control.Monad`
  and similar modules from `mtl`-related modules.  To accommodate this, various
  imports have been made more explicit.
* I have bumped the following submodules to bring in GHC 9.6–related changes:
  * `crucible`: GaloisInc/crucible#1102
  * `what4`: GaloisInc/what4#235
RyanGlScott added a commit to GaloisInc/asl-translator that referenced this pull request Aug 8, 2023
This patch contains two changes needed to make `asl-translator` compile with
GHC 9.6:

* GHC 9.6 bundles `mtl-2.3.*`, which no longer re-exports `Control.Monad`
  and similar modules from `mtl`-related modules.  To accommodate this, various
  imports have been made more explicit.
* I have bumped the following submodules to bring in GHC 9.6–related changes:
  * `crucible`: GaloisInc/crucible#1102
  * `what4`: GaloisInc/what4#235
RyanGlScott added a commit to GaloisInc/semmc that referenced this pull request Aug 8, 2023
This patch contains a handful of small tweaks needed to make the libraries in
the `semmc` repo build with GHC 9.6:

* I have disambiguated a use of `Data.Parameterized.NatRepr.withKnownNat` in
  `semmc-aarch32` to avoid clashing with a newly exported function of the same
  name in `GHC.TypeNats`.
* I have bumped `semmc`'s upper version bounds on `mtl` and `transformers` to
  allow building with `mtl-2.3.*` and `transformers-0.6.*`, which are bundled
  with GHC 9.6.
* I have bumped the following submodules to bring in GHC 9.6–related changes:
  * `asl-translator`: GaloisInc/asl-translator#53
  * `crucible`: GaloisInc/crucible#1102
  * `elf-edit`: GaloisInc/elf-edit#38
  * `llvm-pretty`: GaloisInc/llvm-pretty#112
  * `what4`: GaloisInc/what4#235
RyanGlScott added a commit to GaloisInc/semmc that referenced this pull request Aug 8, 2023
This patch contains a handful of small tweaks needed to make the libraries in
the `semmc` repo build with GHC 9.6:

* I have disambiguated a use of `Data.Parameterized.NatRepr.withKnownNat` in
  `semmc-aarch32` to avoid clashing with a newly exported function of the same
  name in `GHC.TypeNats`.
* I have bumped `semmc`'s upper version bounds on `mtl` and `transformers` to
  allow building with `mtl-2.3.*` and `transformers-0.6.*`, which are bundled
  with GHC 9.6.
* I have bumped the following submodules to bring in GHC 9.6–related changes:
  * `asl-translator`: GaloisInc/asl-translator#53
  * `crucible`: GaloisInc/crucible#1102
  * `elf-edit`: GaloisInc/elf-edit#38
  * `llvm-pretty`: GaloisInc/llvm-pretty#112
  * `what4`: GaloisInc/what4#235
RyanGlScott added a commit to GaloisInc/macaw that referenced this pull request Aug 8, 2023
This patch contains a handful of tweaks needed to make the libraries in the
`macaw` repo build with GHC 9.6:

* GHC 9.6 bundles `mtl-2.3.*`, which no longer re-exports `Control.Monad`,
  `Control.Monad.Trans`, and similar modules from `mtl`-related modules. To
  accommodate this, various imports have been made more explicit.
* I have disambiguated a use of `Data.Parameterized.NatRepr.withKnownNat` in
  `macaw-aarch32` to avoid clashing with a newly exported function of the same
  name in `GHC.TypeNats`.
* I have bumped various upper version bounds on `doctest`,
  `optparse-applicative`, and `what4` to allow building these libraries with
  GHC 9.6.
* I have bumped the following submodules to bring in GHC 9.6–related changes:
  * `asl-translator`: GaloisInc/asl-translator#53
  * `crucible`: GaloisInc/crucible#1102
  * `dwarf`: GaloisInc/dwarf#6
  * `elf-edit`: GaloisInc/elf-edit#38
  * `flexdis86`: GaloisInc/flexdis86#54
  * `grift`: GaloisInc/grift#9
  * `llvm-pretty`: GaloisInc/llvm-pretty#112
  * `llvm-pretty-bc-parser`: GaloisInc/llvm-pretty-bc-parser#225
  * `semmc`: GaloisInc/semmc#80
  * `what4`: GaloisInc/what4#235
RyanGlScott added a commit to GaloisInc/macaw that referenced this pull request Aug 8, 2023
This patch contains a handful of tweaks needed to make the libraries in the
`macaw` repo build with GHC 9.6:

* GHC 9.6 bundles `mtl-2.3.*`, which no longer re-exports `Control.Monad`,
  `Control.Monad.Trans`, and similar modules from `mtl`-related modules. To
  accommodate this, various imports have been made more explicit.
* I have disambiguated a use of `Data.Parameterized.NatRepr.withKnownNat` in
  `macaw-aarch32` to avoid clashing with a newly exported function of the same
  name in `GHC.TypeNats`.
* I have bumped various upper version bounds on `doctest`,
  `optparse-applicative`, and `what4` to allow building these libraries with
  GHC 9.6.
* I have bumped the following submodules to bring in GHC 9.6–related changes:
  * `asl-translator`: GaloisInc/asl-translator#53
  * `crucible`: GaloisInc/crucible#1102
  * `dwarf`: GaloisInc/dwarf#6
  * `elf-edit`: GaloisInc/elf-edit#38
  * `flexdis86`: GaloisInc/flexdis86#54
  * `grift`: GaloisInc/grift#9
  * `llvm-pretty`: GaloisInc/llvm-pretty#112
  * `llvm-pretty-bc-parser`: GaloisInc/llvm-pretty-bc-parser#225
  * `semmc`: GaloisInc/semmc#80
  * `what4`: GaloisInc/what4#235
RyanGlScott added a commit to GaloisInc/macaw that referenced this pull request Aug 21, 2023
This patch contains a handful of tweaks needed to make the libraries in the
`macaw` repo build with GHC 9.6:

* GHC 9.6 bundles `mtl-2.3.*`, which no longer re-exports `Control.Monad`,
  `Control.Monad.Trans`, and similar modules from `mtl`-related modules. To
  accommodate this, various imports have been made more explicit.
* I have disambiguated a use of `Data.Parameterized.NatRepr.withKnownNat` in
  `macaw-aarch32` to avoid clashing with a newly exported function of the same
  name in `GHC.TypeNats`.
* I have bumped various upper version bounds on `doctest`,
  `optparse-applicative`, and `what4` to allow building these libraries with
  GHC 9.6.
* I have bumped the following submodules to bring in GHC 9.6–related changes:
  * `asl-translator`: GaloisInc/asl-translator#53
  * `crucible`: GaloisInc/crucible#1102
  * `dwarf`: GaloisInc/dwarf#6
  * `elf-edit`: GaloisInc/elf-edit#38
  * `flexdis86`: GaloisInc/flexdis86#54
  * `grift`: GaloisInc/grift#9
  * `llvm-pretty`: GaloisInc/llvm-pretty#112
  * `llvm-pretty-bc-parser`: GaloisInc/llvm-pretty-bc-parser#225
  * `semmc`: GaloisInc/semmc#80
  * `what4`: GaloisInc/what4#235
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