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