Skip Menu |
Report information
Id: 126139
Status: new
Priority: 0/
Queue: perl6

Owner: Nobody
Requestors: larry <larry [at] wall.org>
smls75 [at] gmail.com
Cc:
AdminCc:

Severity: (no value)
Tag: Bug
Platform: (no value)
Patch Status: (no value)
VM: (no value)



To: rakudobug [...] perl.org
From: Larry Wall <larry [...] wall.org>
Subject: [BUG] [GLR] nested lazy cross operators confuse the continuations
Date: Tue, 22 Sep 2015 18:09:41 -0700
Download (untitled) / with headers
text/plain 626b
18:00 < TimToady> m: my @v := [1, 2]; my \step1 = 8 X* ^4; my \step2 = @v X+> step1; say step2 X% 256;
18:00 <+camelia> rakudo-moar 631ac4: OUTPUT«===SORRY!===␤Cannot invoke this object (REPR: Uninstantiable)␤»
18:00 < TimToady> m: my @v := [1, 2]; my \step1 = (8 X* ^4).eager; my \step2 = @v X+> step1; say step2 X% 256;
18:00 <+camelia> rakudo-moar 631ac4: OUTPUT«(1 0 0 0 2 0 0 0)␤»

Putting eager on step1 fixes it, but putting eager anywhere else doesn't.

The stack trace indicates it's blowing up in sub GATHER, Seq.new, inside the pull-one method where it calls nqp::continuationreset(PROMPT, &!resumption);
From: "Sam S." <smls75 [...] gmail.com>
To: rakudobug [...] perl.org
Date: Fri, 20 Jan 2017 14:34:03 +0100
Subject: [BUG] `1, 2 Xand "ab".ords` fails with "Cannot invoke this object (REPR: Uninstantiable; Callable)"
Download (untitled) / with headers
text/plain 609b
➜ say 1, 2 Xand "ab".ords; Cannot invoke this object (REPR: Uninstantiable; Callable) in block <unit> at -e line 1 Output with `--ll-exception`: http://pastebin.com/raw/MfYJ8v6D Interestingly, the following Rakudo performance-optimization commit from 4 days ago actually fixes the problem for most operators (e.g. `X+`): * commit: https://github.com/rakudo/rakudo/commit/a26f51361bfea213fa59749d7a401e09c8f2ef31 * bisectable report: https://gist.github.com/Whateverable/64c152ed26ff96cba295b761414c763f But as the commit message says, the "Xand family" is still using the old code path.
Download (untitled) / with headers
text/plain 135b
This bug is still present in Rakudo version 2017.08-8-g753c9a5ea built on MoarVM version 2017.08.1-19-g151a2563 implementing Perl 6.c.
Download (untitled) / with headers
text/plain 735b
Merged two commits that I'm pretty sure are about the same issue. On Tue, 22 Sep 2015 18:09:54 -0700, larry wrote: Show quoted text
> 18:00 < TimToady> m: my @v := [1, 2]; my \step1 = 8 X* ^4; my \step2 = @v > X+> step1; say step2 X% 256; > 18:00 <+camelia> rakudo-moar 631ac4: OUTPUT«===SORRY!===␤Cannot invoke this > object (REPR: Uninstantiable)␤»
The original test-case posted by larry is among the ones that works correctly now, since¹ the aforementioned performance-optimization commit. Golfed example that used to blow up before that commit, but now works: say (1, 2 X* (3 X+> 4)); Golfed example that still blows up: say (1, 2 Xand (3 Xand 4)); --- [1] https://gist.github.com/Whateverable/a662877edcb635eff937adb1f5c34275


This service is sponsored and maintained by Best Practical Solutions and runs on Perl.org infrastructure.

For issues related to this RT instance (aka "perlbug"), please contact perlbug-admin at perl.org