On 3/12/10 Mar 12 -10:43 AM, Faré wrote:
(asdf:initialize-output-translations `(:asdf-output-translations (:root (,(truename *default-pathname-defaults*) :implementation-type))))
What happens to this as the value of *default-pathname-defaults* changes over time?
Well, Lisp is call-by-value, so this clearly takes the current directory at the time this initialization takes place. I think it is crazy to try to offer a :current-directory directive the semantics of which you'd have to specify.
I guess I don't understand the role of the (truename *default-pathname-defaults*) here.
It locates the cwd at the time of execution of this form. On some implementations, indeed (like CMUCL), *default-pathname-defaults* is #p"" by default, and you better resolve that, or have surprises.
OK, this isn't going to do what A-B-L did then, because A-B-L was pervasive, and this will only work on the current value of *default-pathname-defaults*.
So my original, without this, didn't work?
What's the way to make ALL the systems so that a file foo.lisp gets its fasl into <foo.lisp directory>/<implementation>/foo.fasl ?
Does this mean that A-O-T by default always does the equivalent of *centralize-binaries* in A-B-L?
Yes. That is the default configuration indeed. It should be documented prominently.
If you think it's wrong, it's still time to revert this default before ASDF 2 is released.
I don't think that this is what anyone expects; I would think that making centralization not be the default would be more appropriate, but if the community feels differently, that's fine, too.
Question: for people who have been using ASDF-BINARY-LOCATIONS for a while without a deep understanding (e.g., colleagues of mine who just did what I told them to), would it be possible to provide
(ASDF:ABL-COMPATIBILITY-MODE)
as an alias for the former?
That would allow an easy
#+ASDF2 (ASDF:ABL-COMPATIBILITY-MODE) #-ASDF2 (ASDF:OOS 'ASDF:LOAD-OP :ASDF-BINARY-LOCATIONS)
in lisp init files.
That's a great idea. function ASDF:ASDF-BINARY-LOCATION-COMPATIBILITY-MODE would take keyword arguments :centralize-binaries, etc., with proper defaults.
We probably also want a simple function to disable A-O-T.
OK, thanks. I'll work on this. But note that I still don't know how to replicate A-B-L with *centralize-binaries* NIL.