libera/#abcl - IRC Chatlog
Search
7:56:09
easye
We need to understand more of what ANSI conformance means, but Alan is a heavy user of logical pathnames in ABCL, so I want him to weigh on their use.
7:56:46
easye
Anyone here using logical pathnames? Would implementing pjb's proposal be the way forward? What is the simplest API to expose this choice to the user?
9:54:24
pjb
easye: well, given that the way this is specified seems to be not convenient or adapted to modern usage, I think it would be acceptable to design an extension; since you're talkingabout API and choice.
9:55:56
pjb
easye: so if we had a parameter to specify the customary case (member :upcase :downcase :preserved :inverted), the translation could be performed according to user choice, and you could set a default by platform (say :preserved on macOS, and MS-Windows, and :downcase on Linux).
9:59:42
pjb
There's one thing that underspecified too: https://termbin.com/jihu should parsing a logical pathname upper case the components or not?
10:03:15
pjb
only uppercase letters (and digits and hyphens) should be in logical pathname components.
10:03:54
pjb
So an implementation putting lowercase letter in there (or other charaters), implements an extension that should be documented (to stay a conforming implementation of a superset of CL).
10:05:18
pjb
I'd say that ABCL does the right thing in uppercasing there, but then :preserved and :inverted are not too useful, and we can translate automatically to mixed case physical pathnames.
10:07:35
pjb
Notice also that make-pathname has a :case :local and :case :common parameter, to indicate if the component names are given in the customary case, or in the logical pathname standard case (here, lowercase can be given, and will be uppercased, which is why abcl upcases #"TEST:foo;bar").
10:09:31
pjb
This seems to apply more to physical pathnames than logical pathnames given 19.3.1; but
10:10:07
pjb
if we want to apply this to logical pathnames, then we'd have to accept mixed cases in logical pathname component names, as ccl does it.
10:12:19
pjb
The behavior of ccl is usually nice, only it use :uppercase as customary case on macOS which is a Darwin ~= BSD ~= POSIX system with both case sensitive and case insensitive & preserving file systems… I'd prefer it to use a lowercase customary case…