ASDF package-inferred-system and package-local nicknames

ASDF's :package-inferred-system class facilitates having one system and one package in each one file. one top-level system definition can suffice for the entire codebase.

then how can ASDF know what dependencies a package requires? it parses the package definition. but what if a package is not :use-d and therefore doesn't appear in the package definition?

i thought to solve this by giving every dependency package a package-local nickname. (i like to do so in general instead of :use-ing anything.)

ASDF doesn't support package-local nicknames in the :package-inferred-system mechanism until version 3.3.3.2 for SBCL, probably later for other implementations.

the commit adding SBCL local nickname support to ASDF's :package-inferred-system mechanism

modern SBCL packages an older ASDF than that. upgrade ASDF simply by building it in ~/common-lisp/. refer to the ASDF manual or that of your lisp implementation.

ASDF manual ยง3.4, replacing your implementation's ASDF

SBCL, at least, automatically loads the ~/common-lisp/ ASDF version on startup.

Proxied content from gemini://tykozic.net/gmi/20260514T210803--asdf-package-inferred-system-and-package-local-nicknames__commonlisp.gmi

Gemini request details:

Original URL
gemini://tykozic.net/gmi/20260514T210803--asdf-package-inferred-system-and-package-local-nicknames__commonlisp.gmi
Status code
Success
Meta
text/gemini;lang=en
Proxied by
kineto

Be advised that no attempt was made to verify the remote SSL certificate.