From: John Cowan <xxxxxx@ccil.org>
Date: Monday, August 26, 2019 12:51 PM
If a directory entry is a symlink that points to a file that doesn't exist, file-info as it now stands, as well as with the default of chase? being true if it's added back, will signal an error.
I think that's the Right Thing unless follow? is #f.
I believe you agree below that #f should be the default.
What needs some thought is that's a confusing errno and message, "No such file or directory", yet the user can "see" it with directory-files and open/read/close-directory.
That's exactly what happens if you type "ln -s /foo shambolic-link; cat shambolic-link".
A strong argument for the chase? flag for file-info is that if we don't add it back, the code for file-info-symlink? becomes exceptionally trivial, the body is just #f because it can never be handed a file-info for a symlink itself.
Hmm. I think follow? should not default, forcing you to choose when making a file-info objecct. Everything else, though, should always chase.
That was always the default, before the chase? arguments were removed along with every other bit of symlink awareness.
Now we can add the argument back to just file-info, but change the default to #f. As well as take the opportunity to possibly change it to "follow?"
- Harold