Skip to content

RocqIDE external command defaults still use compatibility Coq binaries #22473

Description

@zhaob1n

Description

RocqIDE still defaults to several legacy Coq command names for external commands, even though the Rocq CLI provides corresponding rocq subcommands.

In ide/rocqide/preferences.ml, the defaults are currently:

let cmd_rocqc =
  new preference ~name:["cmd_coqc"] ~init:"coqc" ~repr:Repr.(string)

let cmd_rocqmakefile =
  new preference ~name:["cmd_coqmakefile"]
    ~init:"coq_makefile -o makefile *.v" ~repr:Repr.(string)

let cmd_rocqdoc =
  new preference ~name:["cmd_coqdoc"]
    ~init:"coqdoc -q -g" ~repr:Repr.(string)

Compile buffer then directly uses cmd_rocqc, so with the default preferences RocqIDE runs coqc rather than rocq compile.

The preferences UI also still exposes these commands using names such as coqc:, coqmakefile:, and coqdoc:.

Documentation inconsistency

The current RocqIDE manual says that Compile buffer compiles the current buffer with:

rocq compile

So the documented behavior and the current default configuration appear to disagree.

Suggested change

Would it make sense for RocqIDE to use the Rocq CLI commands as its defaults?

For example:

coqc              -> rocq compile
coq_makefile ...  -> rocq makefile ...
coqdoc ...        -> rocq doc ...

The old commands can of course remain available as compatibility binaries through coq-core; this issue is only about what RocqIDE itself uses by default.

The persisted preference names (cmd_coqc, cmd_coqmakefile, etc.) may need to remain supported for compatibility with existing RocqIDE configuration files, even if the displayed labels or defaults are updated.

Context

This looks like a remaining part of the staged Coq → Rocq migration:

Updating RocqIDE's external-command defaults seems like another small step in the same migration.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions