Skip to content

Support Rocq timing outputs #11587

Open
Open
@SkySkimmer

Description

@SkySkimmer

Rocq can produce per-command timing info with command line -time-file foo.timing, and more complex profiles with profile foo.json (NB: json profiles benefit from being gzipped after they're produced to reduce space consumption).

Makefiles produced by rocq makefile automatically enables these when env vars TIMING and PROFILING are set respectively (the profile output also depends on ROCQ_PROFILE_COMPONENTS and COQ_PROFILE_COMPONENTS).

Additionally env var TIMED makes make produce per-file timing info in the build log (using time -f "$@ (real: %e, user: %U, sys: %S, mem: %M ko)" rocq compile ...).

These outputs can be processed by some rocq tools. This is done automatically in rocq's benchmarking script.

Currently dune doesn't produce these outputs, so benchmarking projects using dune is missing a lot of data.

Can we get dune to produce these things?

Changing the interface to make it easier or nicer is possible, but for the sake of rocq's benchmarking it should be possible to globally enable (currently done by exporting the env vars, but we could also modify the global dune config or whatever).

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions