-
Notifications
You must be signed in to change notification settings - Fork 430
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
Rocq support in dune #11572
Comments
(and also instead of coqdep) |
Thanks for opening the issue @mattam82 , a couple of comments:
Note about rocq vs rocqworkerAfter Rocq 9.0, the public entry point to Rocq is the It seems Rocq devs added a patch to coqdep so it outputs a dependency on In any case, using An easy trick is just to have dune find |
Another idea I just had while cooking, maybe we could just use the Rocq language versioning to implement this, thus:
I think I like this idea, thoughts? cc @Alizter @rlepigre @palmskog Main drawback is that it would prevent dune packages from having a common source build for Coq / Rocq projects |
I think a solution with |
From a distance, I think Is there any situation for which the above strategy would not be enough?
I am not sure I follow: how is this different from the relation between |
That was the original plan, but it is quite a bit more work than this second idea. But indeed, I agree with you, if we can find the cycles to implement the better auto-detection plan, we should do it.
In the Rocq would is very common to vendor Rocq itself. Rocq 9.0 moved from
|
Note that coqc in 9.0 is also a shim calling rocqworker.
People who keep using older versions of coq because of the transitive dep behaviour would probably not be too happy about this. |
This patch is needed because the rocq/rocq-prover:9.0 Docker image does not contain the coq opam package (nor coq-core, which provides the coqc binary) and UniMath's CI script relies docker-coq-action's `custom_script` feature, which overwrites the default `install` script documented at https://github.com/rocq-community/docker-coq-action#install (which would have installed "coq" otherwise, as per the coq-unimath.opam file). Note: this commit can be reverted as soon as dune fully supports Rocq's CLI: ocaml/dune#11572
This patch is needed because the rocq/rocq-prover:9.0 Docker image does not contain the coq opam package (nor coq-core, which provides the coqc binary) and UniMath's CI script relies docker-coq-action's `custom_script` feature, which overwrites the default `install` script documented at https://github.com/rocq-community/docker-coq-action#install (which would have installed "coq" otherwise, as per the coq-unimath.opam file). Note: this commit can be reverted as soon as dune fully supports Rocq's CLI: ocaml/dune#11572
This patch is needed because the rocq/rocq-prover:9.0 Docker image does not contain the coq opam package (nor coq-core, which provides the coqc binary) and UniMath's CI script relies docker-coq-action's `custom_script` feature, which overwrites the default `install` script documented at https://github.com/rocq-community/docker-coq-action#install (which would have installed "coq" otherwise, as per the coq-unimath.opam file). Note: this commit can be reverted as soon as dune fully supports Rocq's CLI: ocaml/dune#11572
Desired Behavior
We would like dune's Coq support to be able to call the new
rocq
binary instead ofcoqc
.Currently we need to use compatibility shims (opam package
coq-core
) on top of therocq-core
package to compile Rocq projects.Ideally we want a solution that's compatible with both
coqc
androcq
usage.Example
Dune coq support just fails if
coqc
is not installed right now.Discussion
We are currently discussing the various design decisions regarding Rocq <-> dune integration here, and plan to contribute a solution. This issue hence for letting you know we're working on it and soliciting feedback if you have any:
https://rocq-prover.zulipchat.com/#narrow/channel/240550-Dune-devs-.26-users/topic/Dune.20support.20for.20rocq.20binary/with/508283855
The text was updated successfully, but these errors were encountered: