develooper Front page | perl.perl5.porters | Postings from May 2017

Re: Long path names on Windows

Thread Previous | Thread Next
From:
Leon Timmermans
Date:
May 9, 2017 08:17
Subject:
Re: Long path names on Windows
Message ID:
CAHhgV8jDXnTLfnNzxHmE02GnxhSmA3HV0Jt-nwHhUH=6n3+wbA@mail.gmail.com
On Tue, May 9, 2017 at 9:40 AM, demerphq <demerphq@gmail.com> wrote:

> On 9 May 2017 09:36, "Leon Timmermans" <fawaka@gmail.com> wrote:
>
> On Tue, May 9, 2017 at 5:11 AM, Zakariyya Mughal <zaki.mughal@gmail.com>
> wrote:
>
>> Hello,
>>
>> Has there been any progress on supporting long path names on Windows? I
>> noticed that there have been changes in Windows 10 that let you opt-in
>> to bypassing the `MAX_PATH` limit by setting up a manifest and registry
>> key:
>>
>> - <https://msdn.microsoft.com/en-us/library/aa365247(VS.85).aspx#maxpath>
>> - <https://blogs.msdn.microsoft.com/jeremykuhne/2016/07/30/net
>> -4-6-2-and-long-paths-on-windows-10/>
>>
>> (spotted on the Python bug tracker <https://bugs.python.org/issue18199>,
>> <https://bugs.python.org/issue27731>).
>>
>> However, it seems that these changes depend on using the wide-char
>> versions of the API functions. I see that there is already an issue for
>> this here <https://rt.perl.org/Public/Bug/Display.html?id=60888> (and
>> the associated meta issue for Unicode and system calls
>> <https://rt.perl.org/Public/Bug/Display.html?id=105914>).
>>
>> If this can not be done yet, it might be useful to catch the error when
>> calls like open() fail on Windows. Right now the output of accessing a
>> long file path on Windows looks like this:
>>
>> ```perl
>> use autodie;
>> open($long_path);
>> ```
>>
>> ```output
>> Can't open('$long_path'): No such file or directory
>> ```
>>
>> When I use built-in commands like `dir`, it tells me: `The filename or
>> extension is too long.` which is more informative.
>>
>
> I agree this is highly desirable, but it is also rather difficult to
> achieve. It would involve both language design challenges and
> implementation challenges. I suspect this will require grant work given the
> size and scope of it.
>
>
> Leon,  I can understand the need for implementation details but why does
> it need language changes?
>
> Yves
>

open and other built-ins taking paths are some of the last places that
suffer from The Unicode Bug. Fixing this would be a breaking change that
will need to be dealt with one way or another. It also means making a
distinction between platforms where paths are binary data (Unix) and
platforms where they are text (Windows).

Leon

Thread Previous | Thread Next


nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About