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-files),
 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:    rpgold...@sift.net

Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to