I see that Int/Num error, and also would like an explanation as to why "my Int $y" isn't re-initialized to Any each time through this loop
$ seq 1000000 | perl6 -ne 'my Int $y += $_; END { print $y; }' Type check failed in assignment to $y; expected Int but got Num (500000500000e0) in block <unit> at -e line 1 $ perl6 --version This is Rakudo Star version 2019.03.1 built on MoarVM version 2019.03 implementing Perl 6.d. -y On Thu, Sep 26, 2019 at 2:24 PM William Michels via perl6-users < perl6-us...@perl.org> wrote: > Thank you, Andy and Joseph! > > > On Thu, Sep 26, 2019 at 8:47 AM Andy Bach <andy_b...@wiwb.uscourts.gov> > wrote: > > > > > Still, it's just "works for me": > > > > seq 1000000 | time perl6 -ne 'my $y += $_; END { print $y; }' > > > > I think that's still the wrong one - your missing the "Int" > > $ seq 1000000 | perl6 -ne 'my Int $y += $_; END { print $y; }' > > 500000500000 > > > > though that works here, admittedly, my p6 is sort old > > This is Rakudo version 2018.03 built on MoarVM version 2018.03 > > implementing Perl 6.c. > > > > I'm a little puzzled, I'd've thought the loop around the 'my Int $y' > would redeclare a local $y each time. Instead it behaves like: > > $ time perl6 -e 'my Int $y = 0;for ( 1 .. 1000000) { $y += $_} ; say > $y; ' > > > > (which is signficantly faster ;-) > > 500000500000 > > real 0m1.229s > > user 0m1.254s > > sys 0m0.040s > > > > ) > > ________________________________ > > From: Joseph Brenner <doom...@gmail.com> > > Sent: Wednesday, September 25, 2019 11:13 PM > > To: William Michels <w...@caa.columbia.edu> > > Cc: Marc Chantreux <e...@phear.org>; Vittore Scolari < > vittore.scol...@gmail.com>; Elizabeth Mattijsen <l...@dijkmat.nl>; perl6 < > perl6-us...@perl.org> > > Subject: Re: anything faster than say [+] lines? > > > > Oh, wait. I tried the wrong one-liner. Still, it's just "works for me": > > > > seq 1000000 | time perl6 -ne 'my $y += $_; END { print $y; }' > > 50000050000029.29user 0.06system 0:28.41elapsed 103%CPU > > (0avgtext+0avgdata 76196maxresident)k > > 63328inputs+0outputs (32major+15588minor)pagefaults 0swaps > > > > > > > > On 9/25/19, Joseph Brenner <doom...@gmail.com> wrote: > > > I just gave that one-liner a try, but I didn't see that error: > > > > > >> seq 1000000 | time perl6 -e 'say [+] lines' > > > 500000500000 > > > 28.70user 0.07system 0:28.29elapsed 101%CPU (0avgtext+0avgdata > > > 74188maxresident)k > > > 63424inputs+0outputs (32major+15409minor)pagefaults 0swaps > > > > > > > > > perl6 --version > > > This is Rakudo Star version 2019.03.1 built on MoarVM version 2019.03 > > > implementing Perl 6.d. > > > > > > uname -a > > > Linux fandango 4.9.0-8-686 #1 SMP Debian 4.9.144-3 (2019-02-02) i686 > > > GNU/Linux > > > > > > > > > > > > On 9/24/19, William Michels via perl6-users <perl6-us...@perl.org> > wrote: > > >> I'm seeing a strange error. I started trying out Marc's original code, > > >> then tried to adapt some Perl5-type solutions from SO to see how they > > >> performed when re-written as Perl6. One thing I wanted to explicitly > > >> test was how restricting to an "Int" type affected performance. > > >> > > >> However, I found a surprising result: a sequence of one-million Ints > > >> throws an error, but a sequence of 999,999 Ints does not: > > >> > > >>> mbook:~ homedir$ seq 1000000 | time perl6 -e 'say [+] lines' > > >>> 500000500000 > > >>> 4.81 real 4.86 user 0.20 sys > > >>> mbook:~ homedir$ seq 1000000 | time perl6 -ne 'my $y += $_; END { > print > > >>> $y; }' > > >>> 500000500000 4.88 real 5.06 user 0.19 sys > > >>> mbook:~ homedir$ seq 1000000 | time perl6 -ne 'my Int $y += $_; END { > > >>> print $y; }' > > >>> Type check failed in assignment to $y; expected Int but got Num > > >>> (500000500000e0) > > >>> in block <unit> at -e line 1 > > >>> 499999500000 4.77 real 4.97 user 0.19 sys > > >>> mbook:~ homedir$ seq 999999 | time perl6 -ne 'my Int $y += $_; END { > > >>> print > > >>> $y; }' > > >>> 499999500000 4.86 real 5.05 user 0.19 sys > > >>> mbook:~ homedir$ perl6 -v > > >>> This is Rakudo version 2019.07.1 built on MoarVM version 2019.07.1 > > >>> implementing Perl 6.d. > > >>> mbook:~ homedir$ > > >> > > >> Any comments or explanation appreciated, > > >> > > >> Best Regards, Bill. > > >> > > >> > > >> > > >> > > >> On Tue, Sep 24, 2019 at 1:59 AM Marc Chantreux <e...@phear.org> > wrote: > > >>> > > >>> hello, > > >>> > > >>> > > > > nice ... but when x is ~ 75440 (not always), there is a > problem > > >>> > > > What is x here? > > >>> > > sorry. x is the arg of seq (number of lines). > > >>> > That never happens on my laptop > > >>> > > >>> well.. so it's a problem with my station. nevermind :) > > >>> > > >>> thanks again for helping > > >>> marc > > >> > > > >