On 5/20/11 May 20 -8:25 AM, Ernst van Waning wrote:
After some unplanned adventures asdf writes and reads fasls from implementation-specific directories. It was simple and the code is in the manual: simply put
(:output-translations (:root (:root :**/ :implementation-type :*.*.*)) :inherit-configuration)
in ~/.config/common-lisp/asdf-output-translations.conf
and it works like magic.
As :root is actually mentioned as magic in the manual, you can imagine how glad I am to have offered to contribute tutorial stuff :-) I will go through the code to try to demystify it for myself and try to find the words to explain it. Being a noob with configurations, maybe I should even try to explain this topic in the case of asdf.
One thing that I have seen my colleagues grapple with is the question about how to do this programmatically, so that you can put the relevant code in your common lisp init file (we have some reasons for preferring this over the use of configuration files). I believe that one can discover how to do this, but it's a bit obscure --- the start of the discussion focuses on placement of the various configuration files (which directories they can live in), and my colleagues had trouble figuring it out. This may actually be primarily a function of the lameness of the texinfo-generated links. Because our nodes in the manual are so big (they tend to be section-level, instead of subsection), the link there to the "Configuration API" appears not to work (at least in info mode). In fact it /does/ work, but not in a useful way --- because the Configuration API is in the same node, clicking on the link does nothing. :-(
Busting these up would not be a huge amount of work, but it's a chunk of drudgery and has a hard time bubbling to the top of my todo list (let's see: paid work/volunteer work; interesting/mechanical drudgery --- lives in the lowest-priority quadrant...). I'll try to see that happen, but the RealWork\tm is not leaving much time for this.
Perhaps having a FAQ entry giving an example of how to use the configuration under the configuration API would be handy...
However, I have one question: what is the reason that these output translations are apparently not applied to the .asd files? The way I understand my output-translations, I have globally specified that all fasls are in a implementation-specific directory just below my source files. For me, .asd files are just source files, so why not place them where the other fasls are written?
Not sure I fully understand. As you say, the .asd files are just source files, and they are never compiled, so there is no need to do any output translations for them.
I may not have fully followed the question....
Best, r