*LOAD-TRUENAME* and ASDF

Jason Miller jason at milr.com
Tue Aug 30 20:46:24 UTC 2016


On 09:48 Mon 29 Aug     , Kevin Layer wrote:
> 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.
Somewhat off-topic, but I'll bite:

This is because *load-pathname* is likely to be a relative pathname, and
relative pathnames have their own problems.  The unix way of solving it
is to transform relative pathnames with "$PWD/pathname" but I don't
believe there is a builtin facility for doing the equivalent in common
lisp, nor did I find one in a quick look throug uiop/pathname.



More information about the asdf-devel mailing list