On 1 Jan 2025, at 16:33, Joseph Mingrone wrote:
As you can see, in this particular case, the ASDF package itself is being built. For CCL, CLISP, and SBCL, everything works as expected, and the FASL files are written under /wrkdirs/. However, when building packages for ECL, ASDF tries to write the FASL files to ${HOME}/.cache/common-lisp, which fails due to restrictions in our package-building tool.
I noticed some #+ecl conditions in uiop/lisp-build.lisp, but have not been able to pinpoint the issue. The ECL maintainer guessed that ASDF might fail to write to the expected location because it's trying to rename files between different mount points when POSIX says it should copy them. I haven't had a chance to check the source, but it seems like this explanation is probably wrong. Here's why: if the problem was not being able to write to the expected location, I don't believe that the code would fall back to writing in `~/.cache`. I would have expected the output translations to fail and the fasl file (possibly with a temp name) be left in the compilation directory.
To debug, the first thing I would do is look at what's in `asdf/output-translations::*output-translations*` when running in ECL and compare that with what's there in one of the implementations where the output translations are working properly. That will tell us if the OT specifications are being processed correctly, at least. If that looks good, then I would see what happens with some calls to `asdf/output-translations::apply-output-translations` in the REPL. If you find errors there, please post a bug to the ASDF issues site. If you *don't* please email again and we can try to figure out what's going wrong. Worst case, you could modify your copy of ASDF to add a call to `(trace asdf/output-translations::apply-output-translations)` and see what happens then. Also, are you using this with ASDF taken from our git repo? It looks like you are working with some packaged version. Please see if you get the same behavior after loading the latest `asdf.lisp` instead of whatever is coming from FreeBSD.