Re: resolution of symlinks in asdf
Kevin Layer <[email protected]>
| Newsgroups | gmane.lisp.cclan.general |
|---|---|
| Message-ID | <15333.1148917121@gemini> |
Christophe Rhodes <[email protected]> wrote: >> 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. Your comments about filesystem layout don't make any sense to me. What does that have to do with anything? I'm from the school of development that all of software I've compiled uses. I'm talking about software I've downloaded and installed myself. Going back to the early 80's. You download something. You extract it. You build it. The binaries go in the relative directory where you extracted. The installation is the only thing which copies/moves things outside this relative directory. >> 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. I'm sorry you feel that way. >> 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, I disagree. It would be used by anyone that wants the behavior I describe above. Why is this so foreign to you? Every single package that you can download from the FSF behaves this way. >> 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?"). Your worried about someone that specified :resolve-symlinks t and uses asdf-install and complains? :resolve-symlinks defaults to nil. >> >> 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? The symlinks are cross-machine. hard links work within a single filesystem. >> Or following up someone else's suggestion of >> asdf-binary-locations (I don't know what that is myself, but it sounds >> plausible)? I haven't looked at this yet. >> Or reworking your patch in the light of suggestions I've >> made already? What suggestions? The only one I see if using the output-files method? The only way that can work is if there is some hardwired directory structure into which the binaries are put. That is a deal breaker. >> >> [ 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. The only choice I see is whether or not to use symbolic links in the first place. What choice are you talking about? Kevin