Skip to main content

report_unavailable_kpathsea

Function report_unavailable_kpathsea 

Source
pub fn report_unavailable_kpathsea()
Expand description

search for a list of candidate names via the external kpsewhich utility returning the first path that is found

Memoized (hits AND misses) per thread, keyed by the candidate list (Principle 5, closed by the 2026-07-02 perf audit): repeated lookups of the same missing asset (e.g. a figure referenced by many \includegraphics) otherwise re-probe kpathsea each time — a full fork-exec per probe on the subprocess-kpsewhich backend (portable builds without linked libkpathsea), a cheaper but nonzero library walk on the in-process backend. Results are stable for a fixed texmf tree (the same assumption kpathsea’s own ls-R cache makes); the memo clears per conversion via clear_kpsewhich_memo. Say so, ONCE, when neither backend could be constructed.

A host TeX installation is OPTIONAL here — embedded bindings and dumps convert self-contained documents perfectly well without one — so this is a warning, not an error. It exists because a silent dead kpathsea is indistinguishable from a genuinely missing file: every lookup just reports Can't find TeX file X, which sends users (and us — issue #304) hunting TEXINPUTS instead of the resolver that never came up.