v0.5.1
Highlights
Missing libclang now fails fast — before any download — with an actionable message.
libclang is pnl's one hard external requirement for reading C headers, and the
readiness check (pnl -i) plus the platform-specific "how to install it" message
already existed. But during pnl install the check only fired deep inside binding
generation — after the package archive was downloaded, dependencies were installed
recursively, and native libraries and their headers were resolved and fetched. On a
fresh machine without the toolchain you paid for all of that before being told to run
xcode-select --install.
The check now runs up front, so you get the message immediately instead of at the end.
What changed
pnl installpreflights libclang right after reading the package manifest —
before dependency recursion and native-header downloads.pnlx genpreflights right after resolving the library key, before headers are
read.- The message is unchanged and stays platform-specific:
- macOS —
xcode-select --install(the Command Line Tools bundle libclang),
plus aLIBCLANG_PATHhint if they're already installed. - Linux — the distro package to install (
apt install libclang-dev,
dnf install clang-devel,apk add clang-dev,pacman -S clang).
- macOS —
No false positives
The preflight is gated on the effective symbol prefix, so the curated
verbatim-header path (libc and friends, which emit a cdef without libclang) is
never blocked — those packages install with no toolchain at all, exactly as before.
Full diff: v0.5.0...v0.5.1