(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.
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.
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.
[ François-René ÐVB Rideau | Reflection&Cybernethics | http://fare.tunes.org ] Those who hammer their guns into plows will plow for those who do not. — Thomas Jefferson