-
Notifications
You must be signed in to change notification settings - Fork 176
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Avoid MAX_PATH issue on windows #1743
Comments
FYI, I started on this last night. I think I'm mostly done, but I don't
find the libuv documentation all that clear and so I still need to get the
synchronization between closing dir handles and our gc process right.
…On Mon, Feb 20, 2023 at 5:02 PM Will Coleda ***@***.***> wrote:
Code in src/io/dirops.c is explicitly checking for MAX_PATH on windows,
which means that even if a user has disabled that check in the windows
registry, raku will still fail to deal with paths greater than MAX_PATH
length.
- MVM_dir_open
- MVM_dir_mkdir
Should be updated to use the corresponding libuv functions, which will
hopefully hide any OS specific code in the library, and allow windows users
to use longer path names.
—
Reply to this email directly, view it on GitHub
<#1743>, or unsubscribe
<https://github.com/notifications/unsubscribe-auth/ACOHYUNMBX26YZ4P6IOXFWLWYPSYHANCNFSM6AAAAAAVCKJH6E>
.
You are receiving this because you are subscribed to this thread.Message
ID: ***@***.***>
|
I'd be happy to try out a work in progress, btw. |
https://github.com/MasterDuke17/MoarVM/tree/use_more_libuv_dir_functions is what I have so far, but I just realized it also needs some work because '.' and '..' are handled differently. But it's probably fine for testing if large paths can in fact be create on Windows. |
Build error on windows:
which only appears here:
|
Maybe the issue is: why am I linking against unix/fs.c and not win/fs.c ? |
Oh - S_ISDIR is also in the new code, that's why I'm getting the error. I had a "moarvm-md" and a "moar-md" folder next to each other and was looking in one on git bash and the other on cmd and confused myself. So, yes, the link with suggested implementation of S_ISDIR on windows is probably the way to go. |
I locally added in the defines from the link above. One the one hand, I'm able to build, but the rakudo install fails with:
On the other hand, rakudo-m.exe was installed, and I can run it. (e.g. -e "say 3" works) On the gripping hand, when I run rakudo-m.exe on my failing test script, I get a segfault. |
I went back and did a debug build (--debug on the MoarVM config), but VS is only showing me assembly, not C code, so I have no idea what the problem is. |
Maybe you’re gripping too hard? More seriously, I have a local update I haven’t pushed yet that improves things. Still segfaults, but you may get further. Will push later this evening.Sent from my iPhoneOn Feb 22, 2023, at 4:03 PM, Will Coleda ***@***.***> wrote:
One the one hand, I'm able to build, but the rakudo install fails with:
+++ Preparing installation
NMAKE : fatal error U1077: 'C:\sandbox\rakudo-md\rakudo-m.exe' : return code '0xc0000005'
Stop.
On the OTHER hand, rakudo-m.exe was installed, and I can run it.
On the GRIPPING hand, when I run rakudo-m.exe on my failing test script, I get a segfault.
—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you commented.Message ID: ***@***.***>
|
@coke my most recent updates to https://github.com/MasterDuke17/MoarVM/tree/use_more_libuv_dir_functions (I force pushed, so you'll probably have to |
Code in src/io/dirops.c is explicitly checking for MAX_PATH on windows, which means that even if a user has disabled that check in the windows registry, raku will still fail to deal with paths greater than MAX_PATH length.
MVM_dir_open
MVM_dir_read
(Not impacted by the MAX_PATH, but needs updating if we're using libuv elsewhere)MVM_dir_close
(Not impacted by the MAX_PATH, but needs updating if we're using libuv elsewhere)MVM_dir_mkdir
Should be updated to use the corresponding libuv functions, which will hopefully hide any OS specific code in the library, and allow windows users to use longer path names.
The text was updated successfully, but these errors were encountered: