Skip to main content

Module compiler

Module compiler 

Source
Expand description

Locate the bynkc compiler the driver shells, and report driver↔compiler version skew.

Resolution order (ADR: introduce the bynk driver):

  1. an explicit override — the BYNK_BYNKC environment variable (the bynk.executablePath-style escape hatch);
  2. bynkc on PATH;
  3. a bynkc sibling of the running bynk binary (mirrors how vscode-bynk resolves bynkc-lsp next to itself).

An explicit override wins when set — an override that only applied after auto-discovery failed would be useless. The skew check exists because this resolution can pick a bynkc whose version differs from the driver’s: once they are separate binaries, a global bynk 0.46 can shell a stale bynkc 0.44, and doctor’s whole job is to surface exactly that.

Structs§

Compiler
A resolved (or unresolved) bynkc.

Enums§

Origin
How bynkc was located.
Skew
Driver↔compiler version relationship. Patch differences are ignored (they are wire-compatible under the project’s unified versioning); a minor drift warns; a major drift is a contract mismatch and an error.

Functions§

resolve
Resolve bynkc against a Toolbox, given the override (typically std::env::var("BYNK_BYNKC")), the directory of the running bynk binary (for the sibling fallback), and the driver’s own version (to classify skew).