unable to reliably customize asdf output translations
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
ASDF |
Won't Fix
|
Wishlist
|
Faré |
Bug Description
Hello.
I want to report here limitation of asdf output translations customization.
This is not a request for a fix, as I found a workaround which works for me.
Reporting this to provide information which might be worth to consider in future
design choices.
My goal is to ensure libraries from private quicklisp installation
tested by cl-test-grid are freshly recompiled.
For this I customize asdf-output-
stored inside the quicklisp directory so that their .fals files
are placed into temporary directory.
So it is simple case: for sources inside this directory place .fals
into that directory.
The official ASDF approach of passing configuration DSL to
asdf:initialize
whatever variant of the DSL config I use, because of
the implementation dependent behaviour of cl:pathname-
The only reliable way we found to customize where ASDF stores the .fasl
files is to redefine the asdf:apply-
(thankfully. asdf ensures the functions are never inlined, so I consider
this a relatevely reliable approach).
What I do in my redefined asdf:apply-
is not suitable as a generic solution, because to determine if one pathname is a
chile of another I just compare their pathame-directories and is if one is a prefix
of another (as a string) - I rely on the fact that in my case I don't have
weird pathmanes like a/../a/../a.
----
Another small note about configuration DSL. It is strange that
I can specify custom function for the second element of a directive -
TRANSLATION-
It would be more symmetric if I could pass custom functoin for the directory
designator.
----
As I said, this issue is not pressing for me, I have a workaround.
Your problem description is not sufficient for me to take action.
Is your issue due to some implementations not fully implementing cl:pathname-match-p ?
What semantics would you like for your function on the left-hand side of an output-translation ?
Note that we currently sort the output translations by the prefix size of these left-hand-side (search for stable-sort in asdf.lisp). We could either have a prefix plus guard, or give priority to all guards as with an empty prefix.
Can you post your changes to apply-output- translations, so we have a more concrete basis to discuss things?
Thanks.
(Marking the bug report as Incomplete in the meantime.)