in reply to Unable to install module IO::Async::Loop on windows 10 strawberry Perl

This node falls below the community's threshold of quality. You may see it by logging in.
  • Comment on Re: Unable to install module IO::Async::Loop on windows 10 strawberry Perl

Replies are listed 'Best First'.
Re^2: Unable to install module IO::Async::Loop on windows 10 strawberry Perl
by Anonymous Monk on Jun 28, 2021 at 17:25 UTC

    What do you know about it? (answer: nothing.)

      Hello, I tried couple of days on Windows Strawberry with io:async for getting io:async:loop and timer running. I tested with 5.32.x all failed by the requirement of Future-IO. always. Always on fresh Strawberry installation on a Windows 10 system. I did the Socket update too. The installation stopped always including cpan -f io:async or cpan -fi io:async on the same point:
      Running Build install for PEVANS/Future-IO-0.13.tar.gz Building Future-IO Installing C:\STRAWB~1\perl\site\lib\Future\IO.pm Installing C:\STRAWB~1\perl\site\lib\Future\IO\ImplBase.pm Installing C:\STRAWB~1\perl\site\lib\Future\IO\System.pm Installing C:\STRAWB~1\perl\site\lib\Test\Future\IO\Impl.pm PEVANS/Future-IO-0.13.tar.gz C:\Strawberry\perl\bin\perl.exe ./Build install --uninst 1 -- OK Stopping: 'install' failed for 'Test::Future::IO::Impl'.
      It is always Future-IO which fails. Which is required for testing, maybe? By an unknown reason io:async is now installed. I installed it again and again, by using
      cpan -if io:async or cpan -f io:async
      all failed. Once I executed on the pure cmd command line, because i was thinking the force does work and I did something wrong.
      cpan force install io:async
      I learned this command is wrong, it try to install the package "force" which was not found. But it installed a package: "install". For now I don`t know what it is. Afterwarrds it tries to install io:async and i got the message io:async is already up to date. I don not understand. Now it is running and working with my actual cases, but I do not know if I be able to reproduce it, on my final Windows 10 System / Environment. Thanks for any help or hint carsten
        Please note: io:async is not the same thing as IO::Async -- it would not be able to find the first, but should find the second. To force in that client, cpan -f -i IO::Async (but forcing should be a last resort.)

        However, given that Re^4: Unable to install module IO::Async::Loop on windows 10 strawberry Perl lists a successful combination, I'm not sure why you aren't trying that.

        Please note: that successful combination used IO::Async v0.78, which was current in 2021. As seen at cpantesters, the current v0.802 doesn't have any passes on mswin32, and max versions with a pass shows that IO::Async last passed on mswin32 with v0.78 -- the same version mentioned elsewhere in this thread. So that means maybe you should try to install an older version of IO::Async rather than the most-recent.

        So my recommendation to you, based on that:

        • Since you said you have Strawberry 5.28.2, use that version rather than 5.32.2, as that's a "known working" version, based on other statements in this thread (though the max-versions shows 5.32.2 can succeed with IO::Async v0.78 as well)
        • Update Socket as vr suggested: cpanm Socket
        • Install the specific version of IO::Async v0.78: cpanm IO::Async@0.78

        (I used cpanm client instead of cpan because it comes with Strawberry, I know it better, and the syntax for installing a specific revision is natural.)

        Caveat: I haven't tried installing this myself. (I would have waited for vr to comment, but since it appears to have been 24 weeks since the last login... I don't think you want to wait...)

        You seem to have forced-installed your IO::Async, with result as good as described below. Calmly analyse logs, don't panic, the "force" option is there for a reason. Looks like Future::IO can depend on IO::Async, not the other way round -- with the latter providing implementation (one of) for the former. At some point on route to current 0.802 version, the IO::Async became to require Future::IO as pre-requisite, unnecessarily. Future::IO, great otherwise, seems to dislike Windows.

        If absolutely loath to force, you can download IO-Async-0.802.tar.gz, unpack, delete line#30,

        del t\70future-io.t cpanm .

        then enjoy your clean (according to stranger on Internet advice, worth as such, of course) installation