*LOAD-TRUENAME* and ASDF

Kevin Layer layer at franz.com
Mon Aug 29 16:48:58 UTC 2016


Faré wrote:

>> > That said, I regret that we have accidentally broke innocent uses of
>> > *load-truename*.
>> >
>> > But maybe I can make a FAQ entry for this case.
>> >
>> There is nothing innocent about assuming that compiled file are close
>> to the source files, or that the source files are available at
>> runtime, what more at the same location as at compile-time. Unless may
>> if you're using Nix.

I've avoided getting into this discussion, but I feel I need to ask:
why use *load-truename* instead of *load-pathname*?

*load-truename* goes through symbolic links (even though the ANS says
nothing about it, this is the behavior of implementations I know of)
and that is almost always the wrong thing.  GNU make doesn't do it, I
don't see why ASDF should do it.  A build system should never itself
follow symlinks, because it defeats systems that have been in place
for 30+ years: linked directories of binary files linking to a single
source directory.

Kevin



More information about the asdf-devel mailing list