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

crucible-0.7.1 Hackage release does not compile #1246

Closed
RyanGlScott opened this issue Sep 3, 2024 · 3 comments · Fixed by #1247
Closed

crucible-0.7.1 Hackage release does not compile #1246

RyanGlScott opened this issue Sep 3, 2024 · 3 comments · Fixed by #1247
Assignees
Labels
dependencies Pull requests that update a dependency file

Comments

@RyanGlScott
Copy link
Contributor

As observed here:

[32 of 58] Compiling Lang.Crucible.Concretize ( src/Lang/Crucible/Concretize.hs, dist/build/Lang/Crucible/Concretize.o, dist/build/Lang/Crucible/Concretize.dyn_o )

src/Lang/Crucible/Concretize.hs:561:17: error: [GHC-76037]
    Not in scope: W4GE.groundToSym
    NB: the module What4.Expr.GroundEval does not export groundToSym.
    |
561 |     BoolRepr -> W4GE.groundToSym sym BaseBoolRepr v
    |                 ^^^^^^^^^^^^^^^^

src/Lang/Crucible/Concretize.hs:562:21: error: [GHC-76037]
    Not in scope: W4GE.groundToSym
    NB: the module What4.Expr.GroundEval does not export groundToSym.
    |
562 |     BVRepr width -> W4GE.groundToSym sym (BaseBVRepr width) v
    |                     ^^^^^^^^^^^^^^^^

src/Lang/Crucible/Concretize.hs:563:24: error: [GHC-76037]
    Not in scope: W4GE.groundToSym
    NB: the module What4.Expr.GroundEval does not export groundToSym.
    |
563 |     ComplexRealRepr -> W4GE.groundToSym sym BaseComplexRepr v
    |                        ^^^^^^^^^^^^^^^^

src/Lang/Crucible/Concretize.hs:569:17: error: [GHC-76037]
    Not in scope: W4GE.groundToSym
    NB: the module What4.Expr.GroundEval does not export groundToSym.
    |
569 |           sv <- W4GE.groundToSym sym (floatInfoToBVTypeRepr fi) v
    |                 ^^^^^^^^^^^^^^^^

src/Lang/Crucible/Concretize.hs:573:26: error: [GHC-76037]
    Not in scope: W4GE.groundToSym
    NB: the module What4.Expr.GroundEval does not export groundToSym.
    |
573 |     IEEEFloatRepr fpp -> W4GE.groundToSym sym (BaseFloatRepr fpp) v
    |                          ^^^^^^^^^^^^^^^^

src/Lang/Crucible/Concretize.hs:574:20: error: [GHC-76037]
    Not in scope: W4GE.groundToSym
    NB: the module What4.Expr.GroundEval does not export groundToSym.
    |
574 |     IntegerRepr -> W4GE.groundToSym sym BaseIntegerRepr v
    |                    ^^^^^^^^^^^^^^^^

src/Lang/Crucible/Concretize.hs:575:41: error: [GHC-76037]
    Not in scope: W4GE.groundToSym
    NB: the module What4.Expr.GroundEval does not export groundToSym.
    |
575 |     NatRepr -> W4I.integerToNat sym =<< W4GE.groundToSym sym BaseIntegerRepr v
    |                                         ^^^^^^^^^^^^^^^^

src/Lang/Crucible/Concretize.hs:576:20: error: [GHC-76037]
    Not in scope: W4GE.groundToSym
    NB: the module What4.Expr.GroundEval does not export groundToSym.
    |
576 |     RealValRepr -> W4GE.groundToSym sym BaseRealRepr v
    |                    ^^^^^^^^^^^^^^^^

src/Lang/Crucible/Concretize.hs:577:22: error: [GHC-76037]
    Not in scope: W4GE.groundToSym
    NB: the module What4.Expr.GroundEval does not export groundToSym.
    |
577 |     StringRepr si -> W4GE.groundToSym sym (BaseStringRepr si) v
    |                      ^^^^^^^^^^^^^^^^

src/Lang/Crucible/Concretize.hs:578:35: error: [GHC-76037]
    Not in scope: W4GE.groundToSym
    NB: the module What4.Expr.GroundEval does not export groundToSym.
    |
578 |     SymbolicArrayRepr idxs tp' -> W4GE.groundToSym sym (BaseArrayRepr idxs tp') v
    |                                   ^^^^^^^^^^^^^^^^

src/Lang/Crucible/Concretize.hs:579:31: error: [GHC-76037]
    Not in scope: W4GE.groundToSym
    NB: the module What4.Expr.GroundEval does not export groundToSym.
    |
579 |     SymbolicStructRepr tys -> W4GE.groundToSym sym (BaseStructRepr tys) v
    |                               ^^^^^^^^^^^^^^^^

This happens because there have been some changes to crucible's what4 submodule since the latest Hackage release of what4 (e.g., GaloisInc/what4#268) that end up being important in order to build crucible. To fix this, we should first make a new Hackage release of what4 that includes these changes, and then we should adjust crucible's lower bounds on what4 accordingly.

@RyanGlScott RyanGlScott added the dependencies Pull requests that update a dependency file label Sep 3, 2024
@RyanGlScott RyanGlScott self-assigned this Sep 3, 2024
@RyanGlScott
Copy link
Contributor Author

Relatedly, the .cabal file for crucible-llvm ought to reflect that it requires llvm-pretty-0.12.1 or later in order to build. Thankfully, that version of llvm-pretty is on Hackage, so the situation there isn't quite as dire. Still, you'd encounter a build failure if cabal picked a build plan with an older llvm-pretty Hackage release, so we should bump the lower version bounds to be on the safe side.

RyanGlScott added a commit that referenced this issue Sep 3, 2024
As of #1226, `crucible-llvm` requires `llvm-pretty-0.12.1` or later to build,
but this was not reflected in the `.cabal` file's version bounds. Fix this, and
bump the `llvm-pretty` submodule to pin against version 0.12.1.

Related to #1246.
RyanGlScott added a commit that referenced this issue Sep 3, 2024
As of #1226, `crucible-llvm` requires `llvm-pretty-0.12.1` or later to build,
but this was not reflected in the `.cabal` file's version bounds. Fix this, and
bump the `llvm-pretty` submodule to pin against version 0.12.1.

Related to #1246.

(cherry picked from commit 4661e4e)
RyanGlScott added a commit that referenced this issue Sep 3, 2024
As of #1211, `crucible` requires `what4-1.6.1` or later to build, but this was
not reflected in the `.cabal` file's version bounds. Fix this, and also bump
the `what4` submodule to version 1.6.1.

Fixes #1246.

(cherry picked from commit 9399334)
@langston-barrett
Copy link
Contributor

Perhaps relatedly, it looks like the Haddocks aren't available online: https://hackage.haskell.org/package/crucible-0.7.1

@RyanGlScott
Copy link
Contributor Author

I've restarted the documentation builds on Hackage, so the latest Hackage releases of crucible, crucible-llvm, crucible-symio, crux, and crux-llvm now have their Haddocks available.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
dependencies Pull requests that update a dependency file
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants