Re: resolution of symlinks in asdf

Christophe Rhodes <[email protected]>
Newsgroups gmane.lisp.cclan.general
Message-ID <[email protected]>
Kevin Layer <[email protected]> writes:

>>> It depends on how regular your filesystem layout is.  Yes, you don't
>>> have enough information to know where the original system: as I said
>>> in the piece that you quoted.  However, you may be able to reconstruct
>>> it based on the identity of the running lisp: something like
>>>
>>>   (defmethod output-files :around ((o compile-op) (c source-file))
>>>     (let ((result (call-next-method)))
>>>       (merge-pathnames 
>>>        (make-pathname 
>>>         :directory 
>>>         `(:absolute "fasl" ,(lisp-implementation-version) 
>>>                     ,(machine-type) ,(excl::case-mode)))
>>>        result)))
>
> No, this will not work for us.  As I said, binaries must be put in the
> binary directories.  This is a hard requirement, one that I don't
> think is unreasonable.

Well, you might need to change my example code, given that you've
provided no details of the filesystem layout.  Forgive me for being
blunt: you are not providing enough evidence in your messages that you
are reading mine with enough care to extract information and ideas
from them, and you are not providing any information in your own for
me to respond to.

A :resolve-symlinks keyword is a non-starter from my point of view,
because though it might be intended for use just at your site, once it
is there, people will use it in a mistaken belief that their site is
the only site in the world that matters; code using it will get out
into the wild, and then _we_ will have a support burden (consider
questions of the form "why doesn't asdf-install work?").

You might have slightly more traction if it were
e.g. excl::resolve-symlinks instead, because then at least any
brokenness would be restricted to one implementation and we could just
ignore it, but that is clearly suboptimal and would be a last-resort
solution.

Have you considered using hard links instead of symbolic links in your
filesystem?  Or following up someone else's suggestion of
asdf-binary-locations (I don't know what that is myself, but it sounds
plausible)?  Or reworking your patch in the light of suggestions I've
made already?

[ from another message ]
>>> And the symbolic links are not a property of the system, 

> OK symbolic links are not a property of the system, but indirecting
> through them is.  If you disagree, then please explain why there is a
> call to `resolve-symlinks' in the definition of defsystem.  It
> certainly appears to me that implicit in every asdf-defined system is
> the notion that symlinks are followed, if the defsystem appears in a
> file.

Following symbolic links provides a mechanism for achieving certain
things, yes.  However, it really isn't a property of the system,
because the site administrator, through their control of the
filesystem, has the ability to choose whether this mechanism is
invoked or not.

Cheers,

Christophe
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.