Hello,
I'm attempting to adjust the ASDF configuration for FreeBSD CL
ports/packages to balance the use of precompiled FASL files from OS
packages with the ability to compile and write code under users' home
directories. Details are below. Any advice would be appreciated.
The system-wide configuration [0] I'm attempting to adjust is used both
when building FreeBSD CL OS packages and on target systems.
Specifically, it:
- sets up a central registry,
- enforces a filesystem layout,
- and configures output translations.
With this configuration, users can run `pkg install cl-alexandria-sbcl`
and two packages will be installed:
- cl-alexandria, essentially the upstream repository,
- cl-alexandria-sbcl, the compiled code.
From their Lisp implementation, users only need to execute
(asdf:load-system :alexandria) and no local compilation is required.
However, if a user installs only cl-alexandria without
cl-alexandria-sbcl, issues arise. Due to the output translations, ASDF
attempts to write compiled code to a location where the user lacks write
access. On the other hand, if we remove the output translations on
target systems, all FASL files provided by the OS packages are ignored,
and ASDF tries to recompile and write them under ~/.cache/common-lisp/.
Is there a way to configure ASDF to recognize and accept the FASL files
from the OS packages and compile and write any missing FASL files to the
default untranslated location under ~/.cache/common-lisp/?
Thank you,
Joe
[0] https://cgit.freebsd.org/ports/tree/devel/cl-asdf/bsd.cl-asdf.mk