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](https://asdf.common-lisp.dev/asdf.html#Controlling-where-ASDF-saves-compiled...), 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