Skip to content
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

Issue with zef installs on windows #452

Open
coke opened this issue May 12, 2022 · 13 comments
Open

Issue with zef installs on windows #452

coke opened this issue May 12, 2022 · 13 comments

Comments

@coke
Copy link

coke commented May 12, 2022

After reinstalling rakudo a few times, and updating zef, my zef install now consistently fails with any installed version of rakudo, even after wiping out the entire install directory and re-installing moar/nqp/rakudo/zef.

I've tried now with clean rakudo/zef installs with both HEAD and 2022.04 and am getting the same errors trying to install modules.

Please see labster/p6-file-directory-tree#20 for an example. This is also happening on JSON::Marshal.

@coke
Copy link
Author

coke commented May 12, 2022

$ sw_vers.bat
C:\>systeminfo   | findstr /B /C:"OS Name" /C:"OS Version"
OS Name:                   Microsoft Windows 10 Enterprise
OS Version:                10.0.19042 N/A Build 19042
$ raku --version
Welcome to Rakudo™ v2022.04.
Implementing the Raku® Programming Language v6.d.
Built on MoarVM version 2022.04.
$ zef --version
v0.13.8

@coke
Copy link
Author

coke commented May 12, 2022

I was able to install Directory::Tree from a git clone at one point during this testing; it appears to require installing from the ecosystem to generate the error.

@ugexe
Copy link
Owner

ugexe commented May 12, 2022

What if you use —/rea ?

@coke
Copy link
Author

coke commented May 12, 2022

ok, that worked.

@ugexe
Copy link
Owner

ugexe commented May 12, 2022

I suspect the precomp paths its trying to save to is too long when using rea (which has longer names than other ecosystems). It might require something like https://www.howtogeek.com/266621/how-to-make-windows-10-accept-file-paths-over-260-characters/ In your example the path is C:\Users\coke\.zef\tmp\File%3A%3ADirectory%3A%3ATree%3Aver%3C%2A%3E%3Aauth%3Cgithub%3Alabster%3E.tar.gz\p6-file-directory-tree-master\.precomp\D9FCEA76B4CE7E9B96269DCF9BA0D77F691994B0\95\952279BFDDC9EF8BA07A41980D0268FA20AB126F.repo-id.1BKAD88ZKTH9VQBFCLIUSVDX8.tmp and thats 265 chars

@coke
Copy link
Author

coke commented May 12, 2022

What does --/rea do? (Or, I suppose: what is rea?)

@coke
Copy link
Author

coke commented May 12, 2022

ah, https://github.com/Raku/REA.

Thanks, @ugexe

@coke
Copy link
Author

coke commented May 12, 2022

Related issue that --/rea didn't help with:

$ zef install --/rea --deps-only .
<...>
===> Testing: IO::Capture::Simple:ver<0.0.1>
[IO::Capture::Simple] ===SORRY!=== Error while compiling C:\Users\coke\.zef\store\raku-io-capture-simple-79e699342c0eeb14b8ac52c2f4a0f8819f007e98\1EC8187B786EFDA431B7EB5588440234DB3278C2/t/stderr.t
[IO::Capture::Simple] Failed to open file C:\Users\coke\.zef\store\raku-io-capture-simple-79e699342c0eeb14b8ac52c2f4a0f8819f007e98\1EC8187B786EFDA431B7EB5588440234DB3278C2\.precomp\D9FCEA76B4CE7E9B96269DCF9BA0D77F691994B0\08\08F50F3693BCF14763628EFA49665820B0A22DAA.repo-id.F5IOU30YB07V19FC6R7SMW5JH.tmp: No such file or directory
[IO::Capture::Simple] at C:\Users\coke\.zef\store\raku-io-capture-simple-79e699342c0eeb14b8ac52c2f4a0f8819f007e98\1EC8187B786EFDA431B7EB5588440234DB3278C2/t/stderr.t:1
[IO::Capture::Simple] Actually thrown at:
[IO::Capture::Simple]   in any statement_control at C:\raku\share\perl6\lib/Perl6/Grammar.moarvm line 1
[IO::Capture::Simple] ===SORRY!=== Error while compiling C:\Users\coke\.zef\store\raku-io-capture-simple-79e699342c0eeb14b8ac52c2f4a0f8819f007e98\1EC8187B786EFDA431B7EB5588440234DB3278C2/t/stdout.t
[IO::Capture::Simple] Failed to open file C:\Users\coke\.zef\store\raku-io-capture-simple-79e699342c0eeb14b8ac52c2f4a0f8819f007e98\1EC8187B786EFDA431B7EB5588440234DB3278C2\.precomp\D9FCEA76B4CE7E9B96269DCF9BA0D77F691994B0\08\08F50F3693BCF14763628EFA49665820B0A22DAA.repo-id.42QOQQLE0UPGCGD0UE406MZKT.tmp: No such file or directory
[IO::Capture::Simple] at C:\Users\coke\.zef\store\raku-io-capture-simple-79e699342c0eeb14b8ac52c2f4a0f8819f007e98\1EC8187B786EFDA431B7EB5588440234DB3278C2/t/stdout.t:1
[IO::Capture::Simple] Actually thrown at:
[IO::Capture::Simple]   in any statement_control at C:\raku\share\perl6\lib/Perl6/Grammar.moarvm line 1
[IO::Capture::Simple] ===SORRY!=== Error while compiling C:\Users\coke\.zef\store\raku-io-capture-simple-79e699342c0eeb14b8ac52c2f4a0f8819f007e98\1EC8187B786EFDA431B7EB5588440234DB3278C2/t/test-io-capture/01-basic.t
[IO::Capture::Simple] ===SORRY!=== Error while compiling C:\Users\coke\.zef\store\raku-io-capture-simple-79e699342c0eeb14b8ac52c2f4a0f8819f007e98\1EC8187B786EFDA431B7EB5588440234DB3278C2\lib\Test\IO\Capture.pm6 (Test::IO::Capture)
[IO::Capture::Simple] Failed to open file C:\Users\coke\.zef\store\raku-io-capture-simple-79e699342c0eeb14b8ac52c2f4a0f8819f007e98\1EC8187B786EFDA431B7EB5588440234DB3278C2\.precomp\D9FCEA76B4CE7E9B96269DCF9BA0D77F691994B0\95\952279BFDDC9EF8BA07A41980D0268FA20AB126F.repo-id.8H6XCOAV5SN8OXB4SHE4FC2G1.tmp: No such file or directory
[IO::Capture::Simple] at C:\Users\coke\.zef\store\raku-io-capture-simple-79e699342c0eeb14b8ac52c2f4a0f8819f007e98\1EC8187B786EFDA431B7EB5588440234DB3278C2\lib\Test\IO\Capture.pm6 (Test::IO::Capture):1
[IO::Capture::Simple] Actually thrown at:
[IO::Capture::Simple]   in any statement_control at C:\raku\share\perl6\lib/Perl6/Grammar.moarvm line 1
[IO::Capture::Simple] at C:\Users\coke\.zef\store\raku-io-capture-simple-79e699342c0eeb14b8ac52c2f4a0f8819f007e98\1EC8187B786EFDA431B7EB5588440234DB3278C2/t/test-io-capture/01-basic.t:1
===> Testing [FAIL]: IO::Capture::Simple:ver<0.0.1>
Aborting due to test failure: IO::Capture::Simple:ver<0.0.1> (use --force-test to override)

@coke coke reopened this May 12, 2022
@coke
Copy link
Author

coke commented May 12, 2022

If you think this is still the windows filename length; is this maybe a rakudo thing we can do to reduce length of precomp file names in general? (shorter guids, fewer non guid path components?)

@ugexe
Copy link
Owner

ugexe commented May 12, 2022

Right, REA just uses the longest file names and thus ends up in the longest temp directory name. As far as what rakudo can do yeah sure we can remove path parts, but that is just moving the issue up a (probably insignificant) amount. Honestly I'm not sure why this issue occurs though, as I'm pretty sure libuv uses the UNC paths as shown here which should have a much longer limitation.

@coke
Copy link
Author

coke commented May 16, 2022

I've enabled support for long paths on windows (via the registry, and post-reboot), and am still getting failures trying to install IO::Capture::Simple - no failures if I clone that repo and do a zef install .

@ugexe
Copy link
Owner

ugexe commented May 16, 2022

You might try actually creating the path that is causing the problem with a raku one-liner to see if it works

@coke
Copy link
Author

coke commented Apr 20, 2023

Related to MoarVM/MoarVM#1745. I'm getting this failure on many items that would (probably) otherwise install no problem.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants