`copilot-theorem`: Failure to compile with GHC 9.6.3
ivanperez-keera opened this issue · 6 comments
Description
copilot-theorem
is failing to compile with GHC 9.6.3. This is because the module Control.Monad.State
no longer re-exports Control.Monad
, so the functions ap
, forM
, when
, liftM
and liftM2
are not in scope. Another issue is that System.Directory
can no longer be imported safely. These errors are causing the build to fail on hackage, which uses GHC 9.6.3.
Type
- Bug: Failure to compile with version of dependency.
Additional context
Requester
- Ivan Perez
Method to check presence of bug
Compiling with GHC 9.6 fails.
Expected result
Compiling with GHC 9.6 succeeds.
Desired result
Compiling with GHC 9.6 succeeds.
Proposed solution
Modify copilot-theorem
to import Control.Monad
, and to not import System.Directory
safely.
Further notes
None.
Change Manager: Confirmed that the issue exists.
Technical Lead: Confirmed that the issue should be addressed.
Technical Lead: Issue scheduled for fixing in Copilot 3.18.1.
Fix assigned to: @ivanperez-keera .
Implementor: Solution implemented, review requested.
Change Manager: Verified that:
- Solution is implemented:
-
The code proposed compiles and passes all tests. Details:
Build log: https://app.travis-ci.com/github/Copilot-Language/copilot/builds/268180998 -
The solution proposed produces the expected result. Details:
The following Dockerfile checks Copilot can be installed with GHC 9.6, in which case it prints the messageSuccess
:FROM ubuntu:focal RUN apt-get update RUN apt-get install --yes libz-dev RUN apt-get install --yes git RUN apt-get install --yes wget RUN mkdir -p $HOME/.ghcup/bin RUN wget https://downloads.haskell.org/~ghcup/0.1.17.7/x86_64-linux-ghcup-0.1.17.7 -O $HOME/.ghcup/bin/ghcup RUN chmod a+x $HOME/.ghcup/bin/ghcup ENV PATH=$PATH:/root/.ghcup/bin/ ENV PATH=$PATH:/root/.cabal/bin/ RUN apt-get install --yes curl RUN apt-get install --yes gcc g++ make libgmp3-dev RUN ghcup install ghc 9.6.3 RUN ghcup install cabal 3.4 RUN ghcup set ghc 9.6.3 RUN cabal update SHELL ["/bin/bash", "-c"] CMD git clone $REPO \ && cd $NAME \ && git checkout $COMMIT \ && cabal install --lib copilot**/ \ && echo Success
Command (substitute variables based on new path after merge):
$ docker run -e "REPO=https://github.com/ivanperez-keera/copilot" -e "NAME=copilot" -e "COMMIT=b9c7f5861cd05fe87958f9f067f91ff1bfe908bb" -it copilot-verify-491
-
- Implementation is documented. Details:
README updated. - Change history is clear.
- Commit messages are clear.
- Changelogs are updated.
- Examples are updated. Details:
No updates needed. - Required version bumps are evaluated. Details:
Bump not needed (new versions allowed but not required).
Change Manager: Implementation ready to be merged.