CVISE(1)

πŸ“¦
version 2.12.0 Β· 5 versions
, in ubuntu questing, ubuntu resolute, ubuntu stonking

πŸ’– CVISE(1) πŸ’–

okay so bestie, welcome to cvise β€” that's section 1 of the manual, "User Commands" β€” and no cap, this thing is a super-parallel Python port of the C-Reduce project. it takes your big messy test case and shrinks it down to the tiny little diva that still reproduces the bug. slay. ✨


✨ NAME ✨

cvise β€” super-parallel Python port of the C-Reduce project πŸ¦‹


🌸 DESCRIPTION 🌸

so here's the whole vibe, and the usage line is literally this, verbatim, don't touch it:

usage: cvise [-h] [--n N] [--tidy] [--shaddap] [--die-on-pass-bug]
[--sllooww]

       [--also-interesting EXIT_CODE] [--debug] [--log-level
       {INFO,DEBUG,WARNING,ERROR}] [--log-file LOG_FILE] [--no-give-up]
       [--print-diff] [--save-temps] [--skip-initial-passes]
       [--skip-interestingness-test-check] [--remove-pass REMOVE_PASS]
       [--start-with-pass START_WITH_PASS] [--no-timing] [--timestamp]
       [--timeout [TIMEOUT]] [--no-cache] [--skip-key-off]
       [--max-improvement BYTES] [--pass-group
       {all,binary,opencl-120,delta} | --pass-group-file
       PASS_GROUP_FILE] [--clang-delta-std
       {c++98,c++11,c++14,c++17,c++20,c++2b}]
       [--clang-delta-preserve-routine CLANG_DELTA_PRESERVE_ROUTINE]
       [--not-c] [--renaming] [--list-passes] [--version] [--commands
       COMMANDS] [--shell SHELL] [--to-utf8] [--skip-after-n-transforms
       SKIP_AFTER_N_TRANSFORMS] [--stopping-threshold
       STOPPING_THRESHOLD] [INTERESTINGNESS_TEST] TEST_CASE [TEST_CASE
       ...]

C-Vise πŸ’…


πŸŽ€ positional arguments:

  • INTERESTINGNESS_TEST β€” the executable that checks whether a test case is still interesting, aka the little oracle that tells cvise "yes bestie keep it" or "no bestie throw it out" πŸ”₯
  • TEST_CASE β€” the test cases themselves, give it as many as you want πŸ“

πŸ‘‘ options:

  • -h, --help β€” show this help message and dip out
  • --n, -n N β€” how many cores to use; C-Vise tries to automatically pick a good setting but its choice may be too low or high for your situation (she's guessing, be nice 😭)
  • --tidy β€” do not make a backup copy of each file to reduce as file.orig (yes the original really is spelled file.orig, we don't ask questions)
  • --shaddap β€” suppress output about non-fatal internal errors 🀫
  • --die-on-pass-bug β€” terminate C-Vise if a pass encounters an otherwise non-fatal problem πŸ’€
  • --sllooww β€” try harder to reduce, but perhaps take a long time to do so (the name is the vibe, it's giving patience 🐌)
  • --also-interesting EXIT_CODE β€” a process exit code (somewhere in the range 64-113 would be usual) that, when returned by the interestingness test, will cause C-Vise to save a copy of the variant
  • --debug β€” print debug information (it's an alias for --log-level=DEBUG)
  • --log-level {INFO,DEBUG,WARNING,ERROR} β€” define the verbosity of the logged events
  • --log-file LOG_FILE β€” log events into LOG_FILE instead of stderr. new events are appended to the end of the file
  • --no-give-up β€” don't give up on a pass that hasn't made progress for 50000 iterations (she believes in it 🫢)
  • --print-diff β€” show changes made by transformations, for debugging
  • --save-temps β€” don't delete /tmp/cvise-xxxxxx directories on termination
  • --skip-initial-passes β€” skip initial passes (useful if input is already partially reduced)
  • --skip-interestingness-test-check, -s β€” skip initial interestingness test check
  • --remove-pass REMOVE_PASS β€” remove all instances of the specified passes from the schedule (comma-separated)
  • --start-with-pass START_WITH_PASS β€” start with the specified pass
  • --no-timing β€” do not print timestamps about reduction progress
  • --timestamp β€” print timestamps instead of relative time from a reduction start
  • --timeout [TIMEOUT] β€” interestingness test timeout in seconds
  • --no-cache β€” don't cache behavior of passes
  • --skip-key-off β€” disable skipping the rest of the current pass when s is pressed
  • --max-improvement BYTES β€” largest improvement in file size from a single transformation that C-Vise should accept (useful only to slow C-Vise down πŸ™ˆ)
  • --pass-group {all,binary,opencl-120,delta} β€” set of passes used during the reduction
  • --pass-group-file PASS_GROUP_FILE β€” JSON file defining a custom pass group
  • --clang-delta-std {c++98,c++11,c++14,c++17,c++20,c++2b} β€” specify clang_delta C++ standard, it can rapidly speed up all clang_delta passes ⚑
  • --clang-delta-preserve-routine CLANG_DELTA_PRESERVE_ROUTINE β€” preserve the given function in replace-function-defwith-decl clang delta pass
  • --not-c β€” don't run passes that are specific to C and C++, use this mode for reducing other languages 🌈
  • --renaming β€” enable all renaming passes (that are disabled by default)
  • --list-passes β€” print all available passes and exit
  • --version β€” show program's version number and exit
  • --commands, -c COMMANDS β€” use shell commands instead of an interestingness test case
  • --shell SHELL β€” use selected shell for the --commands option
  • --to-utf8 β€” convert any non-UTF-8 encoded input file to UTF-8
  • --skip-after-n-transforms SKIP_AFTER_N_TRANSFORMS β€” skip each pass after N successful transformations
  • --stopping-threshold STOPPING_THRESHOLD β€” CVise will stop reducing a test case once it has reduced by this fraction of its original size. between 0.0 and 1.0.

πŸ’… available shortcuts:

  • S β€” skip execution of the current pass
  • D β€” toggle --print-diff option

for bug reporting instructions, please use: https://github.com/marxin/cvise/ πŸ›

and that's the whole page bestie, go forth and reduce 🧚✨

this was cvise 2.12.0, dated October 2025, from the CVISE(1) page β€” mwah, ily, bye πŸ‘‘πŸ’–

πŸ“¦ where this page comes from