Repository navigation
E5a: a summary line, --quiet, --verbose, and --list-functions - #93
Merged
Merged
Conversation
…e parameters, default arguments, declarations without effect, __builtin_expect, initializer-list returns, and structured bindings.
…fect, and if constexpr.
…, lifted helpers' asserts, and LLVM's MathExtras.
This was referenced Oct 27, 2026
…n backend_execution.test.
…n parallel_functions.test.
…parallel_functions.test.
This was referenced Oct 28, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
A run printed its verdicts and stopped, with no total; every spec function that needs no check added a line (
Verified: spec axiom: twice) that is not a verdict; there was no way to see only what needs attention, or to list what a run would verify; and--helpdid not give the default of--timeout. Now:On the base (#92) the first command prints
Verified: spec axiom: twicebeforeadd_oneand no summary, and the other three are unknown options.Stacked on #92. Plan item E5, its first half (the filter
--function, results printed as they become final, and--time-reportfollow); decision Q5 taken as recommended: exit codes stay as they are, with the summary.Design
printDiagnosticsprints it, into the run'sVerifySummary: proofs (Verified,Certified,Proved (z3+lean)), failures, unresolved results with each reason code, bounded-safe, trusted, lowered, exported, interrupted. An error counts only when it carries a verdict, as the first error of a function the verifier does not represent does (construct.unsupported), so a function with two such errors counts once. A verdict the fixpoints demote counts with its new reason; an inductive predicate's line, which had no result of its own, now gets one when demoted, so it counts as unresolved (spec.inductive) and its JSON record has areason, which it lacked before. The driver prints the counts of every file of the run and the time from its start. JSON output (records are the whole stream),--list-functions, and archive replay (one line per module already) have no summary.--quietleaves out proofs, lowered and exported results, and trusted contracts: what remains is what needs attention, the summary included.spec axiomlines come only with--verbose, marked as no verdict, so the summary is the same with or without them.--list-functionsstops after conversion and prints each function the user wrote with its location and kind (function,spec,constexpr spec,proof,trusted); generated functions (builtins, choices, an inductive predicate's step and rules) are left out, and errors about functions the verifier does not represent are printed as a run prints them.--helpgives--timeout's default, built fromDefaultSolverTimeoutMs.Tests
suite/command_line.cpp(new): the summary of a file with each kind of verdict (proofs, a failure, an unsupported function, a trusted contract),--quiet,--verbose(with the same summary),--list-functions(with a function that usescv::valid, whose builtin spec must not be listed), no summary in JSON, and the default in--help.suite/inductive_rules.cpp: the summary and the JSON reason of a predicate whose rules are not established.spec axiomlines no longer do, and six that pin the end of the output (-NEXT,-NOT: {{.}}) expect the summary; two of them are among the 26.Each mutant below, applied alone, makes
suite/command_line.cppfail:--quietprints proofs--quietprints trusted contracts--verbosecv::valid's builtin spec) are listed--list-functionsverifies too--list-functionsgets the summary--helphides the default timeoutsuite/inductive_rules.cppfails)Q1, Q2, and V1 survived the first run: the test's
-NOTlines stood before-DAGgroups, so they checked only the output before the first match. The test now checks the default, quiet, and verbose outputs in order, with--implicit-check-notfor what must not appear, which covers every gap between matches.Docs
spec axiomlines. ARCHITECTURE.md: how a run counts its verdicts.Checked
clang/test/Verifyon this branch first: 447 passed, 33 failed, every failure a test that expectedspec axiomlines or pinned the end of the output; after the changes above each of the 33 passes. The full run on the branch stacked on this one (E4a) then had no failure of this PR's.docs_examples.testanddocs_coverage.testpass with the new section and the droppedspec axiomlines.