diff --git a/README.md b/README.md index 7dbbd61c71..89380e8d8f 100644 --- a/README.md +++ b/README.md @@ -34,7 +34,7 @@ EasyCrypt uses the following third-party tools/libraries: * OCamlbuild - * Why3 (= 1.6.x) + * Why3 (>= 1.7.x, < 1.8) Available at @@ -202,20 +202,15 @@ Why3 and SMT solvers are independent pieces of software with their own version-specific interactions. Obtaining a working SMT setup may require installing specific versions of some of the provers. -At the time of writing, we depend on Why3 1.6.x, which supports the +At the time of writing, we depend on Why3 1.7.x, which supports the following prover versions: - * Alt-Ergo 2.4.2 - * CVC4 1.8 - * Z3 4.12.1 + * Alt-Ergo 2.4.3 + * CVC5 1.0.5 + * Z3 4.12.x `alt-ergo` can be installed using opam, if you do you can use pins to -select a specific version (e.g, `opam pin alt-ergo 2.4.1`). - -Development branches use `dune-3.x` and which is incompatible with -`alt-ergo-2.4.1`. In this case, you can use `alt-ergo-2.4.2`. The -warning "Prover Alt-Ergo version 2.4.2 is not recognized." upon -configuration (see below) can be [safely ignored](https://gitlab.inria.fr/why3/why3/-/commit/f2863d84f65824f21afd75546117becbf453efcc). +select a specific version (e.g, `opam pin alt-ergo 2.4.3`). Installing/Compiling EasyCrypt ==================================================================== diff --git a/dune-project b/dune-project index 69b48bb937..a8bc5091e4 100644 --- a/dune-project +++ b/dune-project @@ -21,7 +21,7 @@ dune-site (ocaml-inifiles (>= 1.2)) (pcre (>= 7)) - (why3 (and (>= 1.6.0) (< 1.8))) + (why3 (and (>= 1.7.0) (< 1.8))) yojson (zarith (>= 1.10)) )) diff --git a/easycrypt.opam b/easycrypt.opam index 9af04487d7..a1c17689c9 100644 --- a/easycrypt.opam +++ b/easycrypt.opam @@ -9,7 +9,7 @@ depends: [ "dune-site" "ocaml-inifiles" {>= "1.2"} "pcre" {>= "7"} - "why3" {>= "1.6.0" & < "1.8"} + "why3" {>= "1.7.0" & < "1.8"} "yojson" "zarith" {>= "1.10"} "odoc" {with-doc} diff --git a/scripts/docker/Makefile b/scripts/docker/Makefile index e9d4ec22e2..ae1cc34e45 100644 --- a/scripts/docker/Makefile +++ b/scripts/docker/Makefile @@ -2,8 +2,8 @@ # -------------------------------------------------------------------- # docker.com account name -DNAME ?= ghcr.io/easycrypt -BBOX := build-box test-box +DNAME ?= ghcr.io/easycrypt +BBOX := build-box test-box # -------------------------------------------------------------------- .PHONY: all __force__ @@ -20,7 +20,7 @@ all: cd $*-test-box && docker build -t $(DNAME)/ec-$*-test-box . %-build: __force__ - cd $* && docker build -t $(DNAME)/ec-$* . + cd $* && docker build --platform linux/amd64 -t $(DNAME)/ec-$* . %-publish: __force__ cd $* && docker push $(DNAME)/ec-$*:latest diff --git a/scripts/docker/build-box/Dockerfile b/scripts/docker/build-box/Dockerfile index 39accc5b65..aaf5248158 100644 --- a/scripts/docker/build-box/Dockerfile +++ b/scripts/docker/build-box/Dockerfile @@ -5,31 +5,35 @@ MAINTAINER Pierre-Yves Strub ENV DEBIAN_FRONTEND noninteractive RUN \ - sudo apt-get -q -y install wget curl python3 python3-pip && \ - sudo apt-get -q -y clean && \ - sudo pip3 install --no-cache-dir pyyaml + sudo apt-get -q -y install wget curl python3 python3-pip python3-yaml && \ + sudo apt-get -q -y clean RUN \ opam pin add -n easycrypt https://github.com/EasyCrypt/easycrypt.git && \ - opam install depext && opam depext easycrypt && \ - opam install --deps-only easycrypt && \ + opam install --deps-only --confirm-level=unsafe-yes easycrypt && \ opam clean -ENV ALTERGO=2.4.2 CVC4V=1.8 Z3V=4.8.10 Z3SV= Z3A=ubuntu-18.04 +ENV ALTERGO=2.4.3 CVC4=1.8 CVC5=1.0.5 Z3=4.12.1 Z3GLIBC=2.35 RUN \ - opam pin add -n alt-ergo ${ALTERGO} && \ - opam depext alt-ergo && opam install alt-ergo && opam clean + wget -O z3.zip https://github.com/Z3Prover/z3/releases/download/z3-${Z3}/z3-${Z3}-x64-glibc-${Z3GLIBC}.zip && \ + unzip -j z3.zip z3-${Z3}-x64-glibc-${Z3GLIBC}/bin/z3 && \ + sudo cp z3 /usr/local/bin/ && sudo chmod 755 /usr/local/bin/z3 && \ + rm -rf z3 z3.zip RUN \ - wget -O cvc4 https://github.com/cvc5/cvc5/releases/download/${CVC4V}/cvc4-${CVC4V}-x86_64-linux-opt && \ + wget -O cvc4 https://github.com/cvc5/cvc5/releases/download/${CVC4}/cvc4-${CVC4}-x86_64-linux-opt && \ sudo mv cvc4 /usr/local/bin/ && sudo chmod 755 /usr/local/bin/cvc4 RUN \ - wget https://github.com/Z3Prover/z3/releases/download/z3-${Z3V}/z3-${Z3V}${Z3SV}-x64-${Z3A}.zip && \ - unzip -j z3-${Z3V}${Z3SV}-x64-${Z3A}.zip z3-${Z3V}${Z3SV}-x64-${Z3A}/bin/z3 && \ - sudo cp z3 /usr/local/bin/ && sudo chmod 755 /usr/local/bin/z3 && \ - rm -rf z3 z3-${Z3V}${Z3SV}-x64-${Z3A}.zip + wget -O cvc5 https://github.com/cvc5/cvc5/releases/download/cvc5-${CVC5}/cvc5-Linux && \ + sudo mv cvc5 /usr/local/bin/ && sudo chmod 755 /usr/local/bin/cvc5 + +RUN \ + opam pin add -n alt-ergo ${ALTERGO} && \ + opam install --deps-only --confirm-level=unsafe-yes alt-ergo && \ + opam install alt-ergo && \ + opam clean RUN \ opam config exec -- why3 config detect