Thanks, that helps. I wasn't sure where to file this bug, because this is the first time I've used Rakudo.

What looks odd to me is the line

Can't find string terminator '"' anywhere before EOF at -e line 1.

which is presumably the command

shell('perl -e "use v5.18;"')

on the line you linked to in zef's Build.pm. Is shell a Perl 6 built-in? I can't find its definition in Rakudo's Windows build (documentation seems to be in site/doc/Type/IO.pod).

Indeed, if you try this line at the REPL prompt:

PS C:\rakudo> .\bin\perl6
To exit type 'exit' or '^D'
> shell('perl -e "use v5.18;"')
Can't find string terminator '"' anywhere before EOF at -e line 1.
Proc.new(in => IO::Pipe, out => IO::Pipe, err => IO::Pipe, exitcode => 255, signal => 0, command => ["perl -e \"use v5.18;\""])
>

Problem isn't lack of Perl 5:

PS C:\rakudo> perl -v

This is perl 5, version 26, subversion 0 (v5.26.0) built for MSWin32-x64-multi-thread


Regards,
Ville

On 01/10/2017 13:53, Steve Mynott via RT wrote:
It seems a bit unfair ("shooting the messenger") blaming zef for
module install error messages and after all it does says "Perl 5
version requirement not met"

Looking at what triggers this error...

https://github.com/niner/Inline-Perl5/blob/master/Build.pm#L6

suggests you need 5.18 or better and it doesn't look this is installed.

Note also the docs

https://github.com/niner/Inline-Perl5/blob/master/README.md

(under BUILDING) says your Perl 5 needs to be built with particular
compile flags (-fPIC via -Duseshrplib).

It's probably worth checking this is the case when you upgrade perl 5.

If you have to rebuild perl5 from source you may (not sure) also have
to rebuild perl 6 from source in order to use the same C compiler with
both.

This all *should* work on Windows (although I'd be unsurprised if
noone has tested it recently) but it's probably easier to practice the
steps on a common linux distro (under virtualbox or whatever) before
trying it on that platform.

Cheers Steve

On 29 September 2017 at 17:06, Ville Koskinen
<perl6-bugs-follo...@perl.org> wrote:
# New Ticket Created by  Ville Koskinen
# Please include the string:  [perl #132183]
# in the subject line of all future correspondence about this issue.
# <URL: https://rt.perl.org/Ticket/Display.html?id=132183 >


I downloaded and installed the latest Windows x64 build of Rakudo
(http://rakudo.org/downloads/star/rakudo-star-latest-x86_64%20(JIT).msi).
My operating system is Windows Server 2016.

When I try to install Inline::Perl5 with zef, the package installation
fails. But no matter how high I set verbosity, all I get is a cryptic
error message:

C:\Users\villek>zef --debug install Inline::Perl5
===> Searching for: Inline::Perl5
===> Found: Inline::Perl5:ver('0.29'):auth('github:niner') [via
Zef::Repository::LocalCache]
===> Dependencies: LibraryMake, File::Temp
===> Filtering: Inline::Perl5:ver('0.29'):auth('github:niner')
===> Filtering [OK] for Inline::Perl5:ver('0.29'):auth('github:niner')
===> Building: Inline::Perl5:ver('0.29'):auth('github:niner')
Building with plugin: Zef::Service::Shell::Build+{<anon|123227344>}
Command: C:\rakudo\bin\perl6.bat -Ilib -I. -MBuild -e
::('Build').new.build('C:\Users\villek\.zef\store\Inline-Perl5-0.29.tar.gz\Inline-Perl5-0.29');
exit(0);
Can't find string terminator '"' anywhere before EOF at -e line 1.

Perl 5 version requirement not met

    in method build at
C:\Users\villek\.zef\store\Inline-Perl5-0.29.tar.gz\Inline-Perl5-0.29\Build.pm
(Build) line 6
    in block <unit> at -e line 1


===> Building [FAIL]: Inline::Perl5:ver('0.29'):auth('github:niner')
Aborting due to build failure:
Inline::Perl5:ver('0.29'):auth('github:niner') (use --force-build to
override)
    in code  at
C:\rakudo\share\perl6\site\sources\3393EDA469A9E8925A633FF7A533AB41141495DA
(Zef::Client) line 329
    in method build at
C:\rakudo\share\perl6\site\sources\3393EDA469A9E8925A633FF7A533AB41141495DA
(Zef::Client) line 294
    in sub  at
C:\rakudo\share\perl6\site\sources\3393EDA469A9E8925A633FF7A533AB41141495DA
(Zef::Client) line 520
    in method install at
C:\rakudo\share\perl6\site\sources\3393EDA469A9E8925A633FF7A533AB41141495DA
(Zef::Client) line 631
    in sub MAIN at
C:\rakudo\share\perl6\site\sources\ED3033E8712BCF9F6DE53678B14A54705DF211A6
(Zef::CLI) line 152
    in block <unit> at
C:\rakudo\share\perl6\site\resources\DC5F87DA28311BE6F3A731229527E5C4A2F12716
line 1
    in sub MAIN at C:\rakudo\share\perl6\site\bin\zef line 2
    in block <unit> at C:\rakudo\share\perl6\site\bin\zef line 2

This is in cmd.exe. In Powershell, the output is similar:

PS C:\Users\villek> zef --debug install Inline::Perl5
===> Searching for: Inline::Perl5
===> Found: Inline::Perl5:ver('0.29'):auth('github:niner') [via
Zef::Repository::LocalCache]
===> Dependencies: LibraryMake, File::Temp
===> Filtering: Inline::Perl5:ver('0.29'):auth('github:niner')
===> Filtering [OK] for Inline::Perl5:ver('0.29'):auth('github:niner')
===> Building: Inline::Perl5:ver('0.29'):auth('github:niner')
Building with plugin: Zef::Service::Shell::Build+{<anon|123227344>}
Command: C:\rakudo\bin\perl6.bat -Ilib -I. -MBuild -e
::('Build').new.build('C:\Users\villek\.zef\store\Inline-Perl5-0.29.tar.gz\Inline-Perl5-0.29');
exit(0);
Can't find string terminator '"' anywhere before EOF at -e line 1.

Perl 5 version requirement not met

    in method build at
C:\Users\villek\.zef\store\Inline-Perl5-0.29.tar.gz\Inline-Perl5-0.29\Build.pm
(Build) line 6
    in block <unit> at -e line 1


===> Building [FAIL]: Inline::Perl5:ver('0.29'):auth('github:niner')
Aborting due to build failure:
Inline::Perl5:ver('0.29'):auth('github:niner') (use --force-build to
override)
    in code  at
C:\rakudo\share\perl6\site\sources\3393EDA469A9E8925A633FF7A533AB41141495DA
(Zef::Client) line 329
    in method build at
C:\rakudo\share\perl6\site\sources\3393EDA469A9E8925A633FF7A533AB41141495DA
(Zef::Client) line 294
    in sub  at
C:\rakudo\share\perl6\site\sources\3393EDA469A9E8925A633FF7A533AB41141495DA
(Zef::Client) line 520
    in method install at
C:\rakudo\share\perl6\site\sources\3393EDA469A9E8925A633FF7A533AB41141495DA
(Zef::Client) line 631
    in sub MAIN at
C:\rakudo\share\perl6\site\sources\ED3033E8712BCF9F6DE53678B14A54705DF211A6
(Zef::CLI) line 152
    in block <unit> at
C:\rakudo\share\perl6\site\resources\DC5F87DA28311BE6F3A731229527E5C4A2F12716
line 1
    in sub MAIN at C:\rakudo\share\perl6\site\bin\zef line 2
    in block <unit> at C:\rakudo\share\perl6\site\bin\zef line 2

Is this a bug in zef or in perl6.bat?

Am I expected to read through the source code on the lines mentioned in
the stack trace?

It would be much more useful to see some diagnostics about which
compiler the Build package is trying to use (if any!), whether it has
failed to find it and what it is actually trying to accomplish.

Regards,
Ville Koskinen



--
Ville Koskinen
Matrix Science
64 Baker Street
London W1U 7GB, UK
Tel: +44 (0)20 7486 1050
Fax: +44 (0)20 7224 1344

vil...@matrixscience.com
http://www.matrixscience.com

Matrix Science Ltd. is registered in England and Wales
Company number 3533898

Reply via email to