Skip to content

Commit

Permalink
Support GHC 9.10
Browse files Browse the repository at this point in the history
  • Loading branch information
langston-barrett committed Feb 13, 2025
1 parent 50d1550 commit af117f7
Show file tree
Hide file tree
Showing 30 changed files with 290 additions and 129 deletions.
8 changes: 5 additions & 3 deletions .github/Dockerfile-crux-llvm
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
# If you update this version number, make sure to update the value of
# LINUX_LLVM_VER in .github/ci.sh (in the install_llvm() function).
ARG LLVM_VER=14
ARG GHC_VER=9.6.5

FROM ubuntu:22.04 AS build
ARG LLVM_VER
ARG GHC_VER

RUN apt-get update && \
apt-get install -y \
Expand All @@ -27,7 +29,7 @@ ADD crux ${CRUX_BUILD_DIR}/crux
ADD crux-llvm ${CRUX_BUILD_DIR}/crux-llvm
ADD dependencies ${CRUX_BUILD_DIR}/dependencies
ADD .github/cabal.project.crux-llvm ${CRUX_BUILD_DIR}/cabal.project
ADD cabal.GHC-9.4.8.config ${CRUX_BUILD_DIR}/cabal.project.freeze
ADD cabal.GHC-${GHC_VER}.config ${CRUX_BUILD_DIR}/cabal.project.freeze
# Workaround until we have a more recent LLVM build available
RUN cp ${CRUX_BUILD_DIR}/crux-llvm/c-src/libcxx-7.1.0.bc ${CRUX_BUILD_DIR}/crux-llvm/c-src/libcxx-${LLVM_VER}.0.0.bc

Expand Down Expand Up @@ -56,8 +58,8 @@ RUN mkdir -p /home/crux-llvm/.local/bin && \
RUN mkdir -p /home/crux-llvm/.ghcup && \
ghcup --version && \
ghcup install cabal 3.10.3.0 && \
ghcup install ghc 9.4.8 && \
ghcup set ghc 9.4.8
ghcup install ghc ${GHC_VER} && \
ghcup set ghc ${GHC_VER}

WORKDIR ${CRUX_BUILD_DIR}
RUN cabal v2-update && \
Expand Down
8 changes: 5 additions & 3 deletions .github/Dockerfile-crux-mir
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,12 @@
# .github/workflows/crux-mir-build.yml
ARG RUST_TOOLCHAIN="nightly-2023-01-23"
ARG CRUX_BUILD_DIR=/crux-mir/build
ARG GHC_VER=9.6.5

FROM ubuntu:22.04 AS build
ARG RUST_TOOLCHAIN
ARG CRUX_BUILD_DIR
ARG GHC_VER

RUN apt-get update && \
apt-get install -y \
Expand All @@ -26,7 +28,7 @@ ADD crux ${CRUX_BUILD_DIR}/crux
ADD crux-mir ${CRUX_BUILD_DIR}/crux-mir
ADD dependencies ${CRUX_BUILD_DIR}/dependencies
ADD .github/cabal.project.crux-mir ${CRUX_BUILD_DIR}/cabal.project
ADD cabal.GHC-9.4.8.config ${CRUX_BUILD_DIR}/cabal.project.freeze
ADD cabal.GHC-${GHC_VER}.config ${CRUX_BUILD_DIR}/cabal.project.freeze

RUN useradd -m crux-mir && chown -R crux-mir:crux-mir /crux-mir
USER crux-mir
Expand Down Expand Up @@ -56,8 +58,8 @@ RUN mkdir -p /home/crux-mir/.local/bin && \
RUN mkdir -p /home/crux-mir/.ghcup && \
ghcup --version && \
ghcup install cabal 3.10.3.0 && \
ghcup install ghc 9.4.8 && \
ghcup set ghc 9.4.8
ghcup install ghc ${GHC_VER} && \
ghcup set ghc ${GHC_VER}

WORKDIR ${CRUX_BUILD_DIR}/crux-mir
RUN ./translate_libs.sh
Expand Down
7 changes: 4 additions & 3 deletions .github/workflows/crucible-go-build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,14 +28,14 @@ jobs:
matrix:
os: [ubuntu-22.04]
cabal: ["3.10.3.0"]
ghc: ["9.4.8", "9.6.5", "9.8.2"]
ghc: ["9.6.5", "9.8.2", "9.10.1"]
include:
- os: macos-14
cabal: 3.10.3.0
ghc: 9.8.2
ghc: 9.10.1
- os: windows-2019
cabal: 3.10.3.0
ghc: 9.8.2
ghc: 9.10.1
name: crucible-go - GHC v${{ matrix.ghc }} - ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
Expand Down Expand Up @@ -93,6 +93,7 @@ jobs:
9.4.8) GHC_NIXPKGS=github:nixos/nixpkgs/nixos-24.05 ;;
9.6.5) GHC_NIXPKGS=github:nixos/nixpkgs/nixos-24.05 ;;
9.8.2) GHC_NIXPKGS=github:nixos/nixpkgs/nixos-24.05 ;;
9.10.1) GHC_NIXPKGS=github:nixos/nixpkgs/nixos-24.05 ;;
*) GHC_NIXPKGS=github:nixos/nixpkgs/21.11 ;;
esac
echo NS="nix shell ${GHC_NIXPKGS}#cabal-install ${GHC_NIXPKGS}#${GHC} nixpkgs#gmp nixpkgs#zlib nixpkgs#zlib.dev" >> $GITHUB_ENV
Expand Down
7 changes: 4 additions & 3 deletions .github/workflows/crucible-jvm-build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,14 +28,14 @@ jobs:
matrix:
os: [ubuntu-22.04]
cabal: ["3.10.3.0"]
ghc: ["9.4.8", "9.6.5", "9.8.2"]
ghc: ["9.6.5", "9.8.2", "9.10.1"]
include:
- os: macos-14
cabal: 3.10.3.0
ghc: 9.8.2
ghc: 9.10.1
- os: windows-2019
cabal: 3.10.3.0
ghc: 9.8.2
ghc: 9.10.1
name: crucible-jvm - GHC v${{ matrix.ghc }} - ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
Expand Down Expand Up @@ -93,6 +93,7 @@ jobs:
9.4.8) GHC_NIXPKGS=github:nixos/nixpkgs/nixos-24.05 ;;
9.6.5) GHC_NIXPKGS=github:nixos/nixpkgs/nixos-24.05 ;;
9.8.2) GHC_NIXPKGS=github:nixos/nixpkgs/nixos-24.05 ;;
9.10.1) GHC_NIXPKGS=github:nixos/nixpkgs/nixos-24.05 ;;
*) GHC_NIXPKGS=github:nixos/nixpkgs/21.11 ;;
esac
echo NS="nix shell ${GHC_NIXPKGS}#cabal-install ${GHC_NIXPKGS}#${GHC} nixpkgs#gmp nixpkgs#zlib nixpkgs#zlib.dev" >> $GITHUB_ENV
Expand Down
8 changes: 4 additions & 4 deletions .github/workflows/crucible-wasm-build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,14 +28,14 @@ jobs:
matrix:
os: [ubuntu-22.04]
cabal: ["3.10.3.0"]
ghc: ["9.4.8", "9.6.5", "9.8.2"]
ghc: ["9.6.5", "9.8.2", "9.10.1"]
include:
- os: macos-14
cabal: 3.10.3.0
ghc: 9.8.2
ghc: 9.10.1
- os: windows-2019
cabal: 3.10.3.0
ghc: 9.8.2
ghc: 9.10.1
name: crucible-wasm - GHC v${{ matrix.ghc }} - ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
Expand Down Expand Up @@ -90,9 +90,9 @@ jobs:
run: |
GHC=haskell.compiler.ghc$(echo ${{ matrix.ghc }} | sed -e s,\\.,,g)
case ${{ matrix.ghc }} in
9.4.8) GHC_NIXPKGS=github:nixos/nixpkgs/nixos-24.05 ;;
9.6.5) GHC_NIXPKGS=github:nixos/nixpkgs/nixos-24.05 ;;
9.8.2) GHC_NIXPKGS=github:nixos/nixpkgs/nixos-24.05 ;;
9.10.1) GHC_NIXPKGS=github:nixos/nixpkgs/nixos-24.05 ;;
*) GHC_NIXPKGS=github:nixos/nixpkgs/21.11 ;;
esac
echo NS="nix shell ${GHC_NIXPKGS}#cabal-install ${GHC_NIXPKGS}#${GHC} nixpkgs#gmp nixpkgs#zlib nixpkgs#zlib.dev" >> $GITHUB_ENV
Expand Down
9 changes: 5 additions & 4 deletions .github/workflows/crux-llvm-build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -65,17 +65,17 @@ jobs:
matrix:
os: [ubuntu-22.04]
cabal: ["3.10.3.0"]
ghc: ["9.4.8", "9.6.5", "9.8.2"]
ghc: ["9.6.5", "9.8.2", "9.10.1"]
include:
- os: ubuntu-20.04
cabal: 3.10.3.0
ghc: 9.4.8
ghc: 9.10.1
- os: macos-14
cabal: 3.10.3.0
ghc: 9.4.8
ghc: 9.10.1
- os: windows-2019
cabal: 3.10.3.0
ghc: 9.4.8
ghc: 9.10.1
name: crux-llvm - GHC v${{ matrix.ghc }} - ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
Expand Down Expand Up @@ -133,6 +133,7 @@ jobs:
9.4.8) GHC_NIXPKGS=github:nixos/nixpkgs/nixos-24.05 ;;
9.6.5) GHC_NIXPKGS=github:nixos/nixpkgs/nixos-24.05 ;;
9.8.2) GHC_NIXPKGS=github:nixos/nixpkgs/nixos-24.05 ;;
9.10.1) GHC_NIXPKGS=github:nixos/nixpkgs/nixos-24.05 ;;
*) GHC_NIXPKGS=github:nixos/nixpkgs/21.11 ;;
esac
echo NS="nix shell ${GHC_NIXPKGS}#cabal-install ${GHC_NIXPKGS}#${GHC} nixpkgs#gmp nixpkgs#zlib nixpkgs#zlib.dev" >> $GITHUB_ENV
Expand Down
1 change: 1 addition & 0 deletions .github/workflows/crux-mir-build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -139,6 +139,7 @@ jobs:
9.4.8) GHC_NIXPKGS=github:nixos/nixpkgs/nixos-24.05 ;;
9.6.5) GHC_NIXPKGS=github:nixos/nixpkgs/nixos-24.05 ;;
9.8.2) GHC_NIXPKGS=github:nixos/nixpkgs/nixos-24.05 ;;
9.10.1) GHC_NIXPKGS=github:nixos/nixpkgs/nixos-24.05 ;;
*) GHC_NIXPKGS=github:nixos/nixpkgs/21.11 ;;
esac
echo NS="nix shell ${GHC_NIXPKGS}#cabal-install ${GHC_NIXPKGS}#${GHC} nixpkgs#gmp nixpkgs#zlib nixpkgs#zlib.dev" >> $GITHUB_ENV
Expand Down
61 changes: 30 additions & 31 deletions cabal.GHC-9.4.8.config → cabal.GHC-9.10.1.config
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
active-repositories: hackage.haskell.org:merge
constraints: any.BoundedChan ==1.0.3.0,
any.Cabal ==3.8.1.0,
any.Cabal-syntax ==3.8.1.0,
any.Cabal ==3.12.0.0,
any.Cabal-syntax ==3.12.0.0,
any.Glob ==0.10.2,
any.HUnit ==1.6.2.0,
any.IntervalMap ==0.6.2.1,
Expand All @@ -18,7 +18,7 @@ constraints: any.BoundedChan ==1.0.3.0,
any.ansi-terminal ==1.1.2,
ansi-terminal -example,
any.ansi-terminal-types ==1.1,
any.array ==0.5.4.0,
any.array ==0.5.7.0,
any.assoc ==1.1.1,
assoc -tagged,
any.async ==2.2.5,
Expand All @@ -28,15 +28,15 @@ constraints: any.BoundedChan ==1.0.3.0,
any.attoparsec ==0.14.4,
attoparsec -developer,
any.barbies ==2.1.1.0,
any.base ==4.17.2.1,
any.base ==4.20.0.0,
any.base-compat ==0.14.1,
any.base-orphans ==0.9.3,
any.base16-bytestring ==1.0.2.0,
any.base64-bytestring ==1.2.1.0,
any.bifunctors ==5.6.2,
bifunctors +tagged,
any.bimap ==0.5.0,
any.binary ==0.8.9.1,
any.binary ==0.8.9.2,
any.bitvec ==1.1.5.0,
bitvec +simd,
any.bitwise ==1.0.0.1,
Expand All @@ -45,7 +45,7 @@ constraints: any.BoundedChan ==1.0.3.0,
any.boring ==0.2.2,
boring +tagged,
any.bv-sized ==1.0.5,
any.bytestring ==0.11.5.3,
any.bytestring ==0.12.1.0,
any.call-stack ==0.4.0,
any.case-insensitive ==1.2.1.0,
any.cereal ==0.5.8.3,
Expand All @@ -62,7 +62,7 @@ constraints: any.BoundedChan ==1.0.3.0,
any.config-schema ==1.3.0.0,
any.config-value ==0.8.3,
any.constraints ==0.14.2,
any.containers ==0.6.7,
any.containers ==0.7,
any.contravariant ==1.5.5,
contravariant +semigroups +statevar +tagged,
crucible +unsafe-operations,
Expand All @@ -72,9 +72,9 @@ constraints: any.BoundedChan ==1.0.3.0,
any.data-default ==0.8.0.0,
any.data-default-class ==0.2.0.0,
any.data-fix ==0.3.4,
any.deepseq ==1.4.8.0,
any.deepseq ==1.5.0.0,
any.deriving-compat ==0.6.7,
any.directory ==1.3.7.1,
any.directory ==1.3.8.3,
any.distributive ==0.6.2.1,
distributive +semigroups +tagged,
any.dlist ==1.0,
Expand All @@ -84,33 +84,32 @@ constraints: any.BoundedChan ==1.0.3.0,
any.entropy ==0.4.1.11,
entropy -donotgetentropy,
any.erf ==2.0.0.0,
any.exceptions ==0.10.5,
any.exceptions ==0.10.7,
any.extra ==1.8,
any.fgl ==5.8.3.0,
fgl +containers042,
any.fgl-visualize ==0.1.0.1,
any.filemanip ==0.3.6.3,
any.filepath ==1.4.2.2,
any.filepath ==1.5.2.0,
any.fingertree ==0.1.5.0,
any.foldable1-classes-compat ==0.1.1,
foldable1-classes-compat +tagged,
any.free ==5.2,
any.generic-lens ==2.2.2.0,
any.generic-lens-core ==2.2.1.0,
any.generic-random ==1.5.0.1,
generic-random -enable-inspect,
any.generically ==0.1.1,
any.ghc-bignum ==1.3,
any.ghc-boot-th ==9.4.8,
any.ghc-prim ==0.9.1,
any.ghc-boot-th ==9.10.1,
any.ghc-internal ==9.1001.0,
any.ghc-prim ==0.11.0,
any.gitrev ==1.3.1,
any.happy ==1.20.1.1 || ==2.1.4,
any.happy-lib ==2.1.4,
any.hashable ==1.4.7.0,
hashable -arch-native +integer-gmp -random-initial-seed,
any.happy ==1.20.1.1 || ==2.1.5,
any.happy-lib ==2.1.5,
any.hashable ==1.5.0.0,
hashable -arch-native -random-initial-seed,
any.hashtables ==1.4.2,
hashtables -bounds-checking -debug -detailed-profiling -portable -sse42 +unsafe-tricks,
any.haskeline ==0.8.2,
any.haskeline ==0.8.2.1,
any.haskell-lexer ==1.1.2,
any.haskell-src-exts ==1.23.1,
any.haskell-src-meta ==0.8.15,
Expand Down Expand Up @@ -159,7 +158,7 @@ constraints: any.BoundedChan ==1.0.3.0,
any.monad-control ==1.0.3.1,
any.monadLib ==3.10.3,
any.mono-traversable ==1.0.21.0,
any.mtl ==2.2.2,
any.mtl ==2.3.1,
any.named-text ==1.2.1.0,
named-text +with-json,
any.network ==3.2.7.0,
Expand All @@ -168,12 +167,12 @@ constraints: any.BoundedChan ==1.0.3.0,
any.optparse-applicative ==0.18.1.0,
optparse-applicative +process,
any.ordered-containers ==0.2.4,
any.os-string ==2.0.7,
any.os-string ==2.0.2,
any.panic ==0.4.0.1,
any.parallel ==3.2.2.0,
any.parameterized-utils ==2.1.9.0,
parameterized-utils +unsafe-operations,
any.parsec ==3.1.16.1,
any.parsec ==3.1.17.0,
any.parser-combinators ==1.3.0,
parser-combinators -dev,
any.pretty ==1.1.3.6,
Expand All @@ -182,7 +181,7 @@ constraints: any.BoundedChan ==1.0.3.0,
prettyprinter -buildreadme +text,
any.prettyprinter-ansi-terminal ==1.1.3,
any.primitive ==0.9.0.0,
any.process ==1.6.18.0,
any.process ==1.6.19.0,
any.profunctors ==5.6.2,
any.pvar ==1.0.0.0,
any.quickcheck-io ==0.2.0,
Expand Down Expand Up @@ -216,7 +215,7 @@ constraints: any.BoundedChan ==1.0.3.0,
any.split ==0.2.5,
any.splitmix ==0.1.1,
splitmix -optimised-mixer,
any.stm ==2.5.1.0,
any.stm ==2.5.3.1,
any.streaming-commons ==0.2.3.0,
streaming-commons -use-bytestring-builder,
any.strict ==0.5.1,
Expand All @@ -237,11 +236,11 @@ constraints: any.BoundedChan ==1.0.3.0,
any.tasty-quickcheck ==0.11.1,
any.tasty-smallcheck ==0.8.2,
any.tasty-sugar ==2.2.2.0,
any.template-haskell ==2.19.0.0,
any.template-haskell ==2.22.0.0,
any.temporary ==1.3,
any.terminal-size ==0.3.4,
any.terminfo ==0.4.1.5,
any.text ==2.0.2,
any.terminfo ==0.4.1.6,
any.text ==2.1.1,
any.text-conversions ==0.3.1.1,
any.text-iso8601 ==0.1.1,
any.text-short ==0.1.6,
Expand All @@ -257,15 +256,15 @@ constraints: any.BoundedChan ==1.0.3.0,
any.these ==1.2.1,
any.time ==1.12.2,
any.time-compat ==1.9.8,
any.transformers ==0.5.6.2,
any.transformers ==0.6.1.1,
any.transformers-base ==0.4.6,
transformers-base +orphaninstances,
any.transformers-compat ==0.7.2,
transformers-compat -five +five-three -four +generic-deriving +mtl -three -two,
any.typed-process ==0.2.12.0,
any.unbounded-delays ==0.1.1.1,
any.uniplate ==1.6.13,
any.unix ==2.7.3,
any.unix ==2.8.5.1,
any.unix-compat ==0.7.3,
any.unliftio ==0.2.25.0,
any.unliftio-core ==0.2.1.0,
Expand Down Expand Up @@ -293,4 +292,4 @@ constraints: any.BoundedChan ==1.0.3.0,
any.zlib ==0.7.1.0,
zlib -bundled-c-zlib +non-blocking-ffi -pkg-config,
any.zlib-bindings ==0.1.1.5
index-state: hackage.haskell.org 2025-02-05T20:39:53Z
index-state: hackage.haskell.org 2025-02-13T19:25:42Z
4 changes: 4 additions & 0 deletions cabal.project
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,10 @@
--
-- export PATH=$PWD/dist-newstyle/build/x86_64-linux/ghc-7.10.3/hpb-0.1.1/c/hpb/build/hpb:$PATH

-- TODO: https://github.com/travitch/itanium-abi/pull/15
allow-newer: itanium-abi:text
allow-newer: boomerang:template-haskell

packages:
crucible/
crucible-cli/
Expand Down
Loading

0 comments on commit af117f7

Please sign in to comment.