On Tue, Apr 2, 2013 at 7:35 PM, Anton Vodonosov avodonosov@yandex.ru wrote:
Suppose I want to configure ASDF output translations so that for all source files under the ~/test/src/ directory the fasl files are placed into ~/test/fasl/ directory.
All other fasls are placed as usually, to the ~/.cache/common-lisp/
This is achieved by:
(asdf:initialize-output-translations `(:output-translations ("~/test/src" "~/test/fasl") :inherit-configuration))
That works.
But what if I have source files in ~/test/fasl/ directory. Where their fasl files should be placed, near them in the ~/test/fals/ or in the default location ~/.cache/common-lisp/ ? The current ASDF implementation keeps such fasl files in ~/test/fasl/
My question, is it by design, or by accident? Because the cffi-grovel in the latest cffi release relies on this behavior.
This is by design. The issue is to avoid double-translation, e.g. when some component creates a Lisp file from some other source, that is then compiled. You want to be able to use compile-op and load-op, except that the source-file will be the output of whichever create-lisp-op you're using, and therefore already translated. In general, being able to compose or not compose operations suggests that you shouldn't double-translate.
I noticed this because test-grid-agent customizes output translations to place fasls to a temporary directory in order to achieve fresh recompilation every time. And the way output translations are customized doesn't obey the expectation of new cff-grovel. In the terms of the example above, any sources generated and saved to ~/test/fasl/ when compiled have their .fasl files in the default location - ~/.cache/common-lisp/.
So I am thinking, should I correct test-grid-agent output translations or report it as a bug to CFFI.
I think you should correct test-grid-agent.
Regards,
—♯ƒ • François-René ÐVB Rideau •Reflection&Cybernethics• http://fare.tunes.org Why is there only one Monopolies Commission? — Lord Sutch