james anderson wrote:
On 2009-09-09, at 16:27 , Robert Goldman wrote:
james anderson wrote:
hello;
i recall, that we have started down this path before, but we never got very far, so i would like to pick up the thread again:
what exactly fails (or is just inconsistent) in the respective logical pathname implementations to preclude accomplishing the same thing with logical pathnames? whatever that may be, why is it better to re-implement the functionality for asdf rather than to fix the problem?
Two things rule out logical pathnames as a solution for this problem:
- They don't actually solve the problem --- in order to get what you
want you'd still need to have logic that redirects the binary files to different directories. I.e., we'd have to add logic to differentially define logical pathnames for binaries depending on features of the lisp implementation and then we'd have to add logic to methods for output-files. Gary's A-B-L just fixes this with methods for output-files. So it's a simpler solution and more portable.
as i understand this statement, it is not accurate. while one does need the logic, one would not "still" need it. one specifies the mapping with the logical host definition. the logic is equivalent to that which abl implements. it is just realized in the pathname translation mechanism.
- Logical pathnames are defined in ANSI CL to use case-flattened
pathnames. That means they are an extremely poor fit for modern case-sensitive file systems. Some number of existing ASDF systems would break because their directory structures contain case-sensitive pathnames. From the Hyperspec grammar for logical pathname namestrings (section 19.3.1):
"word---one or more uppercase letters, digits, and hyphens."
As long as SBCL hews to the letter of the ANSI spec for logical pathnames, I regard logical pathnames as useless in portable code. I now use them only in code that, for one reason or another, will only run in ACL. [Note that this is /not/ meant as a criticism of the SBCL policy.]
is it perhaps time to deal with this as a community, rather that each asserting that they know better?
Probably, but I don't think we should wait to get the function that A-B-L provides until we have fixed logical pathnames. At the expense of being flip, that's like saying "we'll wait until the Messiah comes." Especially given how many years the community has been saying "what comes after the ANSI standard?"
Best, Robert