> On 08 Sep 2015, at 16:44, (via RT) <[email protected]> wrote:
>
> # New Ticket Created by
> # Please include the string: [perl #126018]
> # in the subject line of all future correspondence about this issue.
> # <URL: https://rt.perl.org/Ticket/Display.html?id=126018 >
>
>
> $ cat golf.p6
> class A
> {
> has $.integer where * > 0;
> has %!hash;
>
> method meth {
> my $a = 0;
> my $b = $a / $!integer;
> my $c = $a ?? 100 * ($a - +%!hash) / $a !! 0;
> }
> }
>
> A.new(integer => 7).meth;
>
> $ perl6 golf.p6
> ===SORRY!===
> Cannot invoke this object (REPR: Null, cs = 0)
>
> $ perl6 --version
> This is perl6 version 2015.07.1-756-g16d366a built on MoarVM version
> 2015.07-108-g7e9f29e
Further golf down:
class A {
has $.i where * > 0;
method a { 0 / $!i }
}
The blowup appears at compile time. It also doesn’t blow up with the optimizer
disabled with —optimize=off .
Full stack trace follows below.
Liz
$ perl6 --ll-exception golf.p6
Cannot invoke this object (REPR: Null, cs = 0)
at golf.p6:3 (<ephemeral file>::13)
from src/Perl6/World.nqp:1832 (blib/Perl6/World.moarvm::17)
from src/gen/m-CORE.setting:4444
(/Users/liz/Github/rakudo.moar/install/share/perl6/runtime/./CORE.setting.moarvm:ACCEPTS:43)
from src/gen/m-CORE.setting:956
(/Users/liz/Github/rakudo.moar/install/share/perl6/runtime/./CORE.setting.moarvm:ACCEPTS:39)
from src/gen/m-Metamodel.nqp:3237
(blib/Perl6/Metamodel.moarvm:accepts_type:22)
from src/gen/m-BOOTSTRAP.nqp:2431 (blib/Perl6/BOOTSTRAP.moarvm::285)
from src/gen/m-Perl6-Optimizer.nqp:1283
(blib/Perl6/Optimizer.moarvm:optimize_call:151)
from src/gen/m-Perl6-Optimizer.nqp:1146
(blib/Perl6/Optimizer.moarvm:visit_op:994)
from src/gen/m-Perl6-Optimizer.nqp:1709
(blib/Perl6/Optimizer.moarvm:visit_children:108)
from src/gen/m-Perl6-Optimizer.nqp:1549
(blib/Perl6/Optimizer.moarvm:visit_want:246)
from src/gen/m-Perl6-Optimizer.nqp:1712
(blib/Perl6/Optimizer.moarvm:visit_children:122)
from src/gen/m-Perl6-Optimizer.nqp:1727
(blib/Perl6/Optimizer.moarvm:visit_children:246)
from src/gen/m-Perl6-Optimizer.nqp:1721
(blib/Perl6/Optimizer.moarvm:visit_children:187)
from src/gen/m-Perl6-Optimizer.nqp:1169
(blib/Perl6/Optimizer.moarvm:visit_op_children:19)
from src/gen/m-Perl6-Optimizer.nqp:1051
(blib/Perl6/Optimizer.moarvm:visit_op:398)
from src/gen/m-Perl6-Optimizer.nqp:1709
(blib/Perl6/Optimizer.moarvm:visit_children:108)
from src/gen/m-Perl6-Optimizer.nqp:1169
(blib/Perl6/Optimizer.moarvm:visit_op_children:19)
from src/gen/m-Perl6-Optimizer.nqp:1051
(blib/Perl6/Optimizer.moarvm:visit_op:398)
from src/gen/m-Perl6-Optimizer.nqp:1709
(blib/Perl6/Optimizer.moarvm:visit_children:108)
from src/gen/m-Perl6-Optimizer.nqp:1727
(blib/Perl6/Optimizer.moarvm:visit_children:246)
from src/gen/m-Perl6-Optimizer.nqp:1169
(blib/Perl6/Optimizer.moarvm:visit_op_children:19)
from src/gen/m-Perl6-Optimizer.nqp:1051
(blib/Perl6/Optimizer.moarvm:visit_op:398)
from src/gen/m-Perl6-Optimizer.nqp:1709
(blib/Perl6/Optimizer.moarvm:visit_children:108)
from src/gen/m-Perl6-Optimizer.nqp:896
(blib/Perl6/Optimizer.moarvm:visit_block:70)
from src/gen/m-Perl6-Optimizer.nqp:1718
(blib/Perl6/Optimizer.moarvm:visit_children:150)
from src/gen/m-Perl6-Optimizer.nqp:1727
(blib/Perl6/Optimizer.moarvm:visit_children:246)
from src/gen/m-Perl6-Optimizer.nqp:896
(blib/Perl6/Optimizer.moarvm:visit_block:70)
from src/gen/m-Perl6-Optimizer.nqp:1718
(blib/Perl6/Optimizer.moarvm:visit_children:150)
from src/gen/m-Perl6-Optimizer.nqp:1727
(blib/Perl6/Optimizer.moarvm:visit_children:246)
from src/gen/m-Perl6-Optimizer.nqp:1727
(blib/Perl6/Optimizer.moarvm:visit_children:246)
from src/gen/m-Perl6-Optimizer.nqp:1721
(blib/Perl6/Optimizer.moarvm:visit_children:187)
from src/gen/m-Perl6-Optimizer.nqp:1727
(blib/Perl6/Optimizer.moarvm:visit_children:246)
from src/gen/m-Perl6-Optimizer.nqp:896
(blib/Perl6/Optimizer.moarvm:visit_block:70)
from src/gen/m-Perl6-Optimizer.nqp:876
(blib/Perl6/Optimizer.moarvm:optimize:134)
from src/Perl6/Compiler.nqp:64 (blib/Perl6/Compiler.moarvm:optimize:31)
from gen/moar/stage2/NQPHLL.nqp:1536
(/Users/liz/Github/rakudo.moar/install/share/nqp/lib/NQPHLL.moarvm:compile:202)
from gen/moar/stage2/NQPHLL.nqp:1272
(/Users/liz/Github/rakudo.moar/install/share/nqp/lib/NQPHLL.moarvm:eval:62)
from gen/moar/stage2/NQPHLL.nqp:1492
(/Users/liz/Github/rakudo.moar/install/share/nqp/lib/NQPHLL.moarvm:evalfiles:91)
from gen/moar/stage2/NQPHLL.nqp:1386
(/Users/liz/Github/rakudo.moar/install/share/nqp/lib/NQPHLL.moarvm:command_eval:214)
from src/Perl6/Compiler.nqp:59 (blib/Perl6/Compiler.moarvm:command_eval:93)
from gen/moar/stage2/NQPHLL.nqp:1360
(/Users/liz/Github/rakudo.moar/install/share/nqp/lib/NQPHLL.moarvm:command_line:114)
from src/gen/m-main.nqp:39
(/Users/liz/Github/rakudo.moar/install/share/perl6/runtime/perl6.moarvm:MAIN:18)
from src/gen/m-main.nqp:35
(/Users/liz/Github/rakudo.moar/install/share/perl6/runtime/perl6.moarvm:<mainline>:197)
from <unknown>:1
(/Users/liz/Github/rakudo.moar/install/share/perl6/runtime/perl6.moarvm:<main>:8)
from <unknown>:1
(/Users/liz/Github/rakudo.moar/install/share/perl6/runtime/perl6.moarvm:<entry>:9)