Closed HazardousPeach closed 1 year ago
This error is due to Coq master
requiring locality attributes for certain code. It's not possible for a project to be compatible with Coq 8.10 and Coq master
at the same time, so we go with master
as always. Coq 8.10 is now around 3 years old. I'll document the minimum Coq version in the near future, but there are no plans to support Coq 8.10 or earlier anymore.
Ah that makes sense. Yeah you might consider also making a branch or release for the last commit before that pull request, so that the opam repos can point to it when users want to use coq 8.10.
Seems like this breaks Verdi's installation. Any workarounds I could use to install Verdi?
@thalesmg there are two options to make the Verdi build work:
git checkout 9c7f66e
)Hi @palmskog , thanks for the answer!
Indeed, trying to pin cheerios to that commit worked for me! :beers:
For anyone else having this problem:
opam pin add coq-cheerios https://github.com/uwplse/cheerios.git\#9c7f66e57b91f706d70afa8ed99d64ed98ab367d
About using Coq >= 8.12, since Verdi requires Coq < 8.12~
, I guess that lib would need to relax that constraint to allow for this Coq version? Or maybe I should force the Coq version when installing coq-verdi
? The fresh opam switch
resolved to Coq 8.11 probably because of that. :thinking:
Thanks again!
@thalesmg Verdi (and Verdi Raft) works fine on 8.12 if you compile it from repo sources - the bound in any opam packages are incorrect, I'll fix this soon. In the meantime, you could clone the Verdi repo, locally edit the package definition to allow 8.12 and later, and use: opam pin add . -k path
in the repo root directory.
@palmskog I'll try that! Thanks for the fast responses! :beers:
Minimum Coq version (which is actually 8.14) should now be documented everywhere, including in all relevant opam packages in repos, etc.
Hi @palmskog , thanks for the answer!
Indeed, trying to pin cheerios to that commit worked for me! 🍻
For anyone else having this problem:
opam pin add coq-cheerios https://github.com/uwplse/cheerios.git\#9c7f66e57b91f706d70afa8ed99d64ed98ab367d
About using Coq >= 8.12, since Verdi requires
Coq < 8.12~
, I guess that lib would need to relax that constraint to allow for this Coq version? Or maybe I should force the Coq version when installingcoq-verdi
? The freshopam switch
resolved to Coq 8.11 probably because of that. 🤔Thanks again!
@HazardousPeach didn't work. Which commits did you use for coq-cheerios
and verdi
? Those are breaking for me.
cool, seemed to work with coq-8.10. Now I need to find a commit of verdi that works with coq-8.10.
(iit_synthesis) brando9~ $ eval $(opam env --switch=coq-8.10 --set-switch)
(iit_synthesis) brando9~ $
(iit_synthesis) brando9~ $ opam pin add coq-cheerios https://github.com/uwplse/cheerios.git\#9c7f66e57b91f706d70afa8ed99d64ed98ab367d
[coq-cheerios.dev] synchronised (git+https://github.com/uwplse/cheerios.git#9c7f66e57b91f706d70afa8ed99d64ed98ab367d)
coq-cheerios is now pinned to git+https://github.com/uwplse/cheerios.git#9c7f66e57b91f706d70afa8ed99d64ed98ab367d (version dev)
The following actions will be performed:
∗ install coq-cheerios dev*
Do you want to continue? [Y/n] y
<><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><><><>
Processing 2/3: [coq-cheerios: make]
∗ installed coq-cheerios.dev
Done.
perhaps useful, how to freeze a deps chain in opam: https://stackoverflow.com/questions/75452407/how-does-one-pin-freeze-a-version-of-the-dependencies-of-an-opam-project-package#75453430
for my issue I think this worked:
# -- Get cheerios, req to have old versions work in opam: https://github.com/uwplse/cheerios/issues/17
eval $(opam env --switch=coq-8.10 --set-switch)
# opam install might give issues since it gets the most recent version from the officialOPAM repository
#opam -y install coq-cheerios
# use opam pin since pin is created to install specific version (e.g. from git, local, etc.)
opam pin add coq-cheerios git+https://github.com/uwplse/cheerios.git#9c7f66e57b91f706d70afa8ed99d64ed98ab367
output:
(iit_synthesis) brando9~ $ opam pin add coq-cheerios git+https://github.com/uwplse/cheerios.git#9c7f66e57b91f706d70afa8ed99d64ed98ab367
[NOTE] Package coq-cheerios is currently pinned to git+https://github.com/uwplse/cheerios.git#9c7f66e57b91f706d70afa8ed99d64ed98ab367d (version dev).
Processing: [coq-cheerios.dev: git]
[coq-cheerios.dev] synchronised (no changes)
coq-cheerios is now pinned to git+https://github.com/uwplse/cheerios.git#9c7f66e57b91f706d70afa8ed99d64ed98ab367 (version dev)
The following actions will be performed:
∗ install coq-cheerios dev*
Do you want to continue? [Y/n]
[NOTE] Pinning command successful, but your installed packages may be out of sync.
(iit_synthesis) brando9~ $ opam switch
# switch compiler description
→ coq-8.10 ocaml-base-compiler.4.07.1 coq-8.10
default ocaml.5.0.0 default
[NOTE] Current switch is set locally through the OPAMSWITCH variable.
The current global system switch is unset.
@thalesmg how did you fix the verdi installation?
I think I found a version of verdi that works (and install cheerios too it seems):
(iit_synthesis) brando9~ $ opam pin add coq-verdi git+https://github.com/uwplse/verdi.git#f3ef8d77afcac495c0864de119e83b25d294e8bb
[coq-verdi.dev] synchronised (git+https://github.com/uwplse/verdi.git#f3ef8d77afcac495c0864de119e83b25d294e8bb)
coq-verdi is now pinned to git+https://github.com/uwplse/verdi.git#f3ef8d77afcac495c0864de119e83b25d294e8bb (version dev)
The following actions will be performed:
∗ install coq-cheerios dev* [required by coq-verdi]
∗ install coq-verdi dev*
===== ∗ 2 =====
Do you want to continue? [Y/n] Y
<><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><><><>
Processing 3/6: [coq-cheerios: make]
∗ installed coq-cheerios.dev
∗ installed coq-verdi.dev
Done.
related: https://github.com/uwplse/cheerios/issues/20 but for coq 8.12
related: https://github.com/UCSD-PL/proverbot9001/issues/92 but for coq 8.12 proverbot issues
11 appears to break the build on Coq 8.10.2. Maybe other versions too, haven't checked. You might want to note that this version is no longer supported in the README, or provide a workaround.
The error I get on 8.10.2 is: