Skip to content
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

Reduce CBMC verbosity to CBMC's default #3398

Draft
wants to merge 2 commits into
base: main
Choose a base branch
from

Conversation

tautschnig
Copy link
Member

CBMC v6 included changes to hide timing information and loop unwinding status output at the default verbosity. To not impact Kani users, #2995 included changes to make Kani run CBMC with --verbosity 9. This change now makes Kani run CBMC with just the default verbosity, hiding timing information and loop unwinding status by default. If users still wish to see this information, they can invoke Kani with
--cbmc args --verbosity 9.

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 and MIT licenses.

CBMC v6 included changes to hide timing information and loop unwinding
status output at the default verbosity. To not impact Kani users, model-checking#2995
included changes to make Kani run CBMC with `--verbosity 9`. This change
now makes Kani run CBMC with just the default verbosity, hiding timing
information and loop unwinding status by default. If users still wish to
see this information, they can invoke Kani with
`--cbmc args --verbosity 9`.
@tautschnig tautschnig requested a review from a team as a code owner July 31, 2024 09:59
Copy link
Contributor

@zhassan-aws zhassan-aws left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would suggest packaging this in a Kani-level option (e.g. --verbose_solver). The user should not be required to use --cbmc-args except in very unusual cases, and I think it will be common for users to need this option to debug a run that is not terminating (e.g. to understand whether it's stuck in unwinding, symex, or solver stage).

We also need to highlight this change in the CHANGELOG.md.

@tautschnig tautschnig marked this pull request as draft July 31, 2024 16:23
@tautschnig
Copy link
Member Author

I would suggest packaging this in a Kani-level option (e.g. --verbose_solver). The user should not be required to use --cbmc-args except in very unusual cases, and I think it will be common for users to need this option to debug a run that is not terminating (e.g. to understand whether it's stuck in unwinding, symex, or solver stage).

We also need to highlight this change in the CHANGELOG.md.

Marking this PR as "Draft," which I actually meant to do from the start: we should really review the verbosity levels on the CBMC side as at least some of the information that's now hidden at the default verbosity (such as unwinding information) is practically very important. (Timing information, however, is probably not very important.)

I suggest we revisit this PR once we have a better situation on the CBMC side, at which point it may well be possible to merge this one as-is.

@tautschnig tautschnig self-assigned this Jul 31, 2024
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.

3 participants