Hi Faré, and thanks for remaining active on these mailing lists, I'm getting that you're spread thin these days.
Could you (or anyone who feels competent to explain it) tell us again what is a Logical Pathname (LP) and how does it differ from a Pathname object in general (as printed and readable by #P"some-string-representing-a-pathname") ? i have CLtL2 as well as Franz' "Common Lisp: The Reference" here on my shelf but, true confessions time, I have rarely cracked these books and I find them somewhat intimidating just to open and read for no specific reason. If anyone's explanations of pathnames and logical pathnames can refer to specific sections or passages from those books, I might dare crack them to look at those sections.
One question I have is: Are Pathnames evil in general (and we should be working with bare strings as "pathname designators")? Or is it Logical Pathnames specifically that are evil. Is a logical pathname a thing with the VMS-looking path syntax, e.g. `sys:some;logical;path;` as opposed to a Pathname object which is something like a struct with 6 slots (directory, name, type, host, device, version)? Maybe the concepts are orthogonal, i.e. a Pathname object's string #P"<some-string>" can be of "native" format or in "logical pathname" format? So we could potentially get things like #P"/opt/gendl-ccl/gdl/program/gdl-ccl" or #P"sys:gdl-ccl". And in the first case, HOST, DEVICE, VERSION would be unspecified, while in the second case the HOST is "sys:" and DEVICE and VERSION are still unspecified, or can a given HOST come along with its own default notion of DEVICE and VERSION just as it comes along with its notion of DIRECTORY, or do those other defaults come strictly from *default-pathname-defaults* ? And is the Logical Pathname format meant to be able to accomodate all six of the slots in the Pathname object -- is that the connection between Pathnames and Logical Pathnames?
None of these are burning questions, or blocking my productivity as far as I know (I tend to get things working by hook or by crook and leave them alone, and knock wood, pathnames per se have not been one of my big bottlenecks lately). But I am curious to understand the systemic issues better i.e. if there are an identifiable finite list of shortcomings in the current ANSI spec that we could at least quarantine or create some kind of polyfill for it, although if I had understood Faré completely, maybe I would have understood that uiop is the closest thing we currently have to a "polyfill."
Dave Cooper