Skip to content

Add preliminary support for Rocq's packaging support#15400

Open
rlepigre-skylabs-ai wants to merge 1 commit into
ocaml:mainfrom
rlepigre-skylabs-ai:rocq-package
Open

Add preliminary support for Rocq's packaging support#15400
rlepigre-skylabs-ai wants to merge 1 commit into
ocaml:mainfrom
rlepigre-skylabs-ai:rocq-package

Conversation

@rlepigre-skylabs-ai

Copy link
Copy Markdown
Collaborator

This PR adds support for Rocq package support (see this rfc), which is enabled by rocq-prover/rocq#21564.

This introduces a distinction between the public name of a Rocq theory (i.e., an ocamlfind package name) and the Rocq module path under which it lives. Starting with version 0.15 of the rocq language support, Rocq theory dependencies consist of ocamlfind package names, and transitive dependencies are handled in the expected way using ocamlfind (for installed dependencies). Dependencies in the workspace are still resolved by dune as before, and Rocq packages are installed by dune using the expected installation scheme.

The changes to the rocq.theory stanza are the following:

  • A new (public_name ...) field, similar to that of (library ...) stanzas is added, and its use enables Rocq package support.
  • The (theories ...) field is populated by Rocq package names (not to be confused with module paths), and transitive dependencies are automatically added.
  • The (legacy_install) flag, if present, leads to the Rocq package being additionally installed under $LIB/coq/user-contrib for backwards compatibility.

This solves #11483, and provides an alternative to #11945 (it is not entirely clear to me how the two approaches compare though).

Signed-off-by: Rodolphe Lepigre <rodolphe.lepigre@skylabs-ai.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant