runtimeverification / runtimeverification/kontrol

Add timing logs for `kontrol build` and total time for `kontrol prove`

Open
#182 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement
Dominant language
Python
Stars
122
Forks
16
PR merge metrics
No merged PRs in 30d

Description

It is almost always of interest how long a proof takes to execute. It would be good to have time metrics built in Kontrol to easily determine how long each proof takes to finish execution, whether successful or not.

We should measure time in three ways:

  • Time per proof. Log how long each individual proof takes and show it in kontrol list
  • Entire execution time. At the end of kontrol prove ... output in the summary how long it took for the entire execution
  • At the end of kontrol build ... also output how long it took to build the project. Perhaps even break it down for phases, such as the forge build phase

It would be interesting perhaps to log these in a file, or at least give the option with a flag such as --log-time-file $PATH_TO_LOG_TIME_FILE

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Locate the entry points for kontrol prove, kontrol build, and kontrol list, then trace how their summaries and existing per-proof timing are produced. Add total elapsed time to the kontrol prove and kontrol build summaries, optionally covering the forge build phase if the existing structure supports it. Done means successful and failed executions report their total duration consistently.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
cli, observability
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
38/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.