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.