Skip to content

v0.5.1

Choose a tag to compare

@github-actions github-actions released this 21 Jun 05:32

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 install preflights libclang right after reading the package manifest —
    before dependency recursion and native-header downloads.
  • pnlx gen preflights right after resolving the library key, before headers are
    read.
  • The message is unchanged and stays platform-specific:
    • macOSxcode-select --install (the Command Line Tools bundle libclang),
      plus a LIBCLANG_PATH hint 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).

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