-
Notifications
You must be signed in to change notification settings - Fork 411
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Coq] Dune crashes on version 3.8 #7846
[Coq] Dune crashes on version 3.8 #7846
Comments
Do you only have coq-core installed by chance? This should go away if you install the stdlib. The issue is that coqc --config fails without the stdlib. |
No. This is running on coq 8.11. |
@LasseBlaauwbroek OK in that case this is new, will have a look ASAP. |
OK so the issue is that Dune is looking for COQ_NATIVE_COMPILER_DEFAULT however this is only available since 8.13. I'm not exactly sure how it should be treated when it isn't present, so I will assume "no" for the time being. |
Thanks. Since 3.8.0 is already released, can we add a conflicts clause for Coq < 8.13 to the package? |
Sure that will be up to @emillon to do. I will definitely fix this for a 3.8.1 point release however. |
I've submitted #7847. If you could opam pin that PR branch and test it that would be appreciated. It worked (didn't crash) for me locally. |
coq 8.13.0 builds fine with dune 3.8.0, so it looks like it's a more precise combination that should be rejected. Agree to cut a point release with a fix. |
To clarify: if the coq package as built with 3.8.0 is useless, it can conflict, but it seems like we're restricting valid combinations. |
I guess we are indeed restricting valid combinations. But is this really a big problem? Dune 3.7 can still be used for all current packages, and Dune 3.8.1 will presumably be released soon. It would be inconvenient to have a Dune version in the Opam manager that crashes on a bunch of packages. The only other solution is to manually mark all current and future packages that depend on Coq <= 8.12 to be conflicting with Dune 3.8.0... Not something I'd like to be in charge of. |
I guess it's up to the coq and opam maintainers. You can open a PR to ocaml/opam-repository to add the conflicts clause. |
At first sight, I don't think so. I mean, all Coq versions upto 8.12.x certainly will trigger the crash regarding So I vote +1 for adding a |
Indeed the conflict sounds reasonable. As we approach |
I was imagining setting up a custom workflow for older coq versions that can be manually triggered. That would help us with a lot of these issues stemming from the coq world. |
Actually if we do cache the Coq installl that should not be too heavy IMVHO as a regular job. |
I think we also need to be very mindful and define (maybe we write it down in the DuneCoq paper) our methodology for ensuring compatibility with older Coq versions. Testing is very important but also we need to be very defensive when interacting with the Coq API. |
Due to a bug, the new release of Dune 3.8.0 is incompatible with any Coq package that depends on Coq < 8.13. See ocaml/dune#7846 for details. Even though Dune is technically compatible with these Coq versions itself, this doesn't seems very useful. An older version of Dune will do perfectly well for these use-cases and Dune 3.8.1 will be around soon. So I propose to mark a conflict with these versions of Coq. Otherwise, we end up with a large number of uninstallable packages with one particular version of Dune.
CHANGES: - Fix a crash when using a version of Coq < 8.13 due to the native compiler config variable being missing. We now explicitly default to `(mode vo)` for these older versions of Coq. (ocaml/dune#7847, fixes ocaml/dune#7846, @Alizter) - Duplicate installed Coq theories are now allowed with the first appearing in COQPATH being preferred. This is inline with Coq's loadpath semantics. This fixes an issue with install layouts based on COQPATH such as those found in nixpkgs. (ocaml/dune#7790, @Alizter) - Revert ocaml/dune#7415 and ocaml/dune#7450 (Resolve `ppx_runtime_libraries` in the target context when cross compiling) (ocaml/dune#7887, fixes ocaml/dune#7875, @emillon)
Reproduction
git clone git@github.com:coq-tactician/coq-tactician.git
opam install . --deps-only
dune build
Crashes with:
CC @ejgallego @Alizter
Specifications
dune
(output ofdune --version
): 3.8.0ocaml
(output ofocamlc --version
): 4.09.1The text was updated successfully, but these errors were encountered: