mit-plv/fiat-crypto

Please create a tag for Coq 8.18 in Coq Platform 2023.10

rtetley opened this issue ยท 10 comments

The Coq team released Coq 8.18.0 on September 7th, 2023.
The corresponding Coq Platform release 2023.10 should be released before November 30th, 2023.
It can be delayed in case of difficulties until January 15th, 2023, but this should be an exception.

This issue is to inform you that to our (possibly a few days old) best knowledge the latest released version of your project (0.0.22) does not work with Coq 8.18.0.
We tried to remove version restrictions in opam files and possibly make or configure files, but this did not suffice.

Please note that in Coq Platform CI (unlike Coq CI) we test only released / tagged versions. Coq CI is currently testing commit c371fb8
20ad035 on repository https://github.com/mit-plv/fiat-crypto
https://github.com/mit-plv/fiat-crypto - which likely means that this commit does work in Coq CI.

Could you please create a tag and opam package, or communicate us any existing tag that works with Coq branch v8.18, preferably before October 31st, 2023?
In case we might have to delay the Coq Platform release cause of issues with your project, we would prefer to be informed about the situation as early as possible.

In case the tag and opam package are available before October 31st, 2023, it will be included in an early Coq Platform beta release of the for Coq 8.18.0.

The working branch of Coq Platform, can be found here main.
It contains package pick ~8.18+beta1 which already supports Coq version 8.18.0 and contains already working (possibly patched / commit pinned) Coq Platform packages.

Please don't close this issue, even after creating the new tag and/or opam package.
We will close the issue after updating Coq Platform.
This is a measure of 'double book keeping' in order to avoid that we ship the wrong version.

In any case, Coq Platform won't be released before this issue is closed!

Thanks!

P.S.: this issue has been created automatically based on CI status.

CC: coq/platform#372

@JasonGross : would it be possible to get an ETA for this?

Sorry, I missed this. I'll try to tag a release today or tomorrow

@MSoegtropIMC Can you check the setup on your side? We tagged v0.0.22 on Sep 1, and at that point it built with Coq master, 8.16, and 8.17, and so presumably also built with 8.18 since 8.18+rc1 predates Sep 1. And our release notes claim that v0.0.21 and v0.0.22 should both work with Coq 8.18. Furthermore, both of the commits you mention significantly predate the v0.0.22 tag (v0.0.22 is about 40 commits ahead of c371fb8, and 20ad035 is part of fiat-crypto-legacy / branch sp2019latest). What/where is the error message from building this tag of fiat-crypto? (And what are the tags used in the opam dependencies?) Perhaps the actual error is about incompatible dependency versions / version constraints being too loose?

(I also don't see any commits in the diff that seem likely to change the compatibility story.)

Sure, I will double check. As stated above we did test v0.0.22 at it apparently didn't build just like that via opam, but I can't say what went wrong.

First we had a bug in our opam file - we required coq-rewriter <= 0.0.8 but provided 0.0.9.
After fixing this locally I did run into:

File "./src/Bedrock/Field/Synthesis/Examples/redc.v", line 164, characters 9-23:
Error: The reference Semantics.call was not found in the current environment.

Maybe there is something wrong with out prerequisite selection:

        PACKAGES="${PACKAGES} coq-coqutil.0.0.3"
        PACKAGES="${PACKAGES} coq-rewriter.0.0.9"
        PACKAGES="${PACKAGES} coq-riscv.0.0.4"
        PACKAGES="${PACKAGES} coq-bedrock2.0.0.5"
        PACKAGES="${PACKAGES} coq-bedrock2-compiler.0.0.5"
        PACKAGES="${PACKAGES} coq-rupicola.0.0.7"
        PACKAGES="${PACKAGES} coq-fiat-crypto.0.0.22"

The prerequisites all build - it fails at fiat-crypto.

The dependencies are incompatible, I guess we need to tag new versions. @andres-erbsen @samuelgruetter could you tag the versions of rupicola, bedrock2, and coqutil from the submodules of the v0.0.23 tag I just made, and then I can create opam packages?

I just ran these commands:

~/git/fiat-crypto/rupicola/bedrock2/deps/coqutil$ git tag v0.0.4 8b84b7a
~/git/fiat-crypto/rupicola/bedrock2/deps/coqutil$ git push --tags
~/git/fiat-crypto/rupicola/bedrock2/deps/coqutil$ cd ../..
~/git/fiat-crypto/rupicola/bedrock2$ git tag v0.0.6 f5b29c5
~/git/fiat-crypto/rupicola/bedrock2$ git push --tags
~/git/fiat-crypto/rupicola/bedrock2$ cd ..
~/git/fiat-crypto/rupicola$ git tag v0.0.8 e6daa5e
~/git/fiat-crypto/rupicola$ git push --tags

@MSoegtropIMC I've made a PR with new versions for opam at coq/opam#2805

This selection of packages works with Coq 8.18:

coq-coqutil.0.0.4
coq-rewriter.0.0.9
coq-riscv.0.0.4
coq-bedrock2.0.0.6
coq-bedrock2-compiler.0.0.6
coq-rupicola.0.0.8
coq-fiat-crypto.0.0.24

@JasonGross, @rtetley : I cannot close this issue - can you please close it?