I haven't verified the details, but I believe the short answer to your question is "yes."

What one would need to do is to find where packages such as cl-alexandria-sbcl write their compiled code and add that location to the exceptions to output translations.

See the asdf manual, and particularly look at the definition of the configuration DSL.

This may require the user to appropriately employ :inherit-configuration in any user-specific configuration they do, but in general it's not a good idea to :ignore-inherited-configuration unless you have a very good reason.

Best,
R

On 24 Nov 2024, at 11:08, Joseph Mingrone wrote:

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

Robert P. Goldman
Research Fellow
Smart Information Flow Technologies (d/b/a SIFT, LLC)

319 N. First Ave., Suite 400
Minneapolis, MN 55401

Google Voice: (612) 326-3934
Cell: (612) 384-3454
Email: rpgoldman@SIFT.net