Running the analyzer

This chapter is about getting from a packaged release tarball (or a fresh local build) to a working visao invocation on each supported host. Everything below applies regardless of which Operating modes you intend to use; the mode-specific guidance lives on the linked pages.

Per-OS guides

  • Run on Linux: unpack, PATH setup, runtime layout.

  • Run on Windows: installer notes, Windows-specific points (the -- separator, system headers).

  • Run through Docker: running the analyser from a packaged container image. This gives a reproducible CI run.

First-run checklist

After visao is on PATH, the recommended one-time setup:

  1. Install the host compilers you want Visao to probe. These are gcc, clang, MSVC clang-cl and Go, whichever apply. Visao searches the directories of PATH.

  2. Warm the toolchain cache once. This pays the probe cost upfront so the first real run is not delayed:

    visao --update-toolchains
  3. Smoke-test with a trivial source:

    echo 'int main(void) { return 0; }' > /tmp/hello.c
    visao --language c /tmp/hello.c

    The run prints dim engine progress, an empty Reports block, and a one-line ✓ Finished successfully · NNN ms final status.

Environment variables

These influence runtime behaviour without changing any flags:

NO_COLOR

Disable ANSI colour output (standard, any value).

VISAO_DISABLE_COLORS=y

Same, legacy variant. Used by tools/run_openvef.sh.

VISAO_DETAILED_TOOLCHAIN=y

Verbose probe diagnostics (every command line, every match attempt). Use when probing fails or matches the wrong compiler.

VISAO_ABORT_ON_FAILURE=y

Convert assertion failures into abort(). Helpful for capturing crash backtraces.

User-level state

The analyser keeps two pieces of state under the user’s config directory:

  • $XDG_CONFIG_HOME/visao/tccache.txt (or $HOME/.config/visao/tccache.txt; %APPDATA%\visao\tccache.txt on Windows). This file holds the toolchain probe cache in a plain-text key/value format. You can delete it. The next probing run writes it again.

  • The temporary probe device is /dev/null on Unix and NUL on Windows. A probe writes nothing to disk.

Neither file holds source code or analysis results. The analyser keeps no other state between runs.