phobo's std.file is completely broke!
tide
tide at tide.tide
Sun Sep 16 16:21:04 UTC 2018
On Sunday, 16 September 2018 at 03:19:12 UTC, Vladimir Panteleev
wrote:
> On Sunday, 16 September 2018 at 02:58:30 UTC, tide wrote:
>> There are a lot of issues that aren't simple bugs that just
>> anyone can fix. They are issues that are locked behind
>> management. One's that are 4 years old for example, they are
>> probably some bug locked behind management. That's why they
>> get so old. From the comments it is not clear that a pull
>> request wouldn't be accepted to fix the issue. Personally I
>> think phobos should not exception for long file names.
>
> Nothing is "locked behind management". If you feel that some
> issue important to you is stalled, you can create a forum
> thread, or email Walter/Andrei to ask for a resolution.
>
>> Walters concern is that the path will change unexpected for
>> the user. Where does that matter for something like rmDir ?
>> The user passes a long path, and rmDir swallows it, never to
>> be seen again by the user. What does it matter if the path
>> gets corrected if it is too long?
>
> It's more than that.
>
> The path needs to be normalized, which means that \.\ and \..\
> fragments need to be removed away first. Depending on your
> interpretation of symlinks/junctions/etc., "foo/bar/../" might
> mean something else than "foo/" if "bar" is a reparse point.
>
> The path also needs to be absolute, so it has to be expanded to
> a full path before it can be prefixed with the UNC prefix.
> Given how the current directory is state tied to the process
> (not thread), you get bonus race condition issues. There's also
> issues like the current directory object being renamed/moved;
> then a relative path will no longer correspond to what the
> program thinks the absolute paths is.
>
> All things considered, this goes well into the territory of
> "not D's problem". My personal recommendation: if you care
> about long path names, use an operating system which implements
> them right.
I'd agree with you that it isn't **Phobos** problem, but since
most of the functions there aren't @system nor @nogc, I do
believe it is. And if you want @system and @nogc with no safety
you can go look into core.stdc for that.
More information about the Digitalmars-d
mailing list