Skip to content

General notes on usability issues revealed by documentation writing #477

@tedinski

Description

@tedinski

I just wanted to publicly track the things I came across somewhere as I find them, so I don't forget.

Critical (ordered):

High (unordered)

  • MIR gives us a lot of generated variables that are mostly just copies and obfuscate traces. (e.g. var_10 = 0; then x = var_10;)
  • There should be a "simpler" version of traces for the common case of "just tell me the nondet values in my proof harness"
  • Possibly some "test case reduction" though this would be a CBMC feature. We get traces about (534, 535) that could have been (0, 1)

Medium

  • "Assertion failed: blah: SUCCESS" is confusing. Failed...Success? Can we remove "assertion failed" from successful assertions? #189
  • We should preserve color-coded output of rustc and cbmc. We also need to "stream" output instead of waiting until completion (for instance, to see log lines as they are printed when cbmc doesn't terminate.) I believe this is the same issue. We should connect the 'tty' instead of capturing output as a string and re-printing.
  • We should be able to annotate individual loops with an unwind bound instead of having to resort to a global bound.
  • A better summary view on the command line. Needing to | grep FAIL is not a good user experience. We should summarize failures at the end of a run. (CBMC task?)
  • Can we prioritize (even heuristically) the failures in the output? Helping users understand what they should debug first is a good idea.
  • Can we deal with unreachable assertions? Currently these will just report success, but maybe that wasn't intended. (Coverage debugging problem?)
  • Visualize should also give good output on the command line, not just dump useless xml. (CBMC/viewer task?)

Metadata

Metadata

Assignees

Labels

[C] InternalTracks some internal work. I.e.: Users should not be affected.

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions