FAQ
# New Ticket Created by Sam S.
# Please include the string: [perl #128201]
# in the subject line of all future correspondence about this issue.
# <URL: https://rt.perl.org/Ticket/Display.html?id=128201 >


The .gist call in the following code hangs indefinitely:

     my @a = 1..Inf; foo @a; sub foo(*@_) { say @_.gist };

It shouldn't hang, because checking the argument for laziness returns True, and indexing it does not hang either:

     my @a = 1..Inf; foo @a; sub foo(*@_) { say @_.is-lazy }; # True
     my @a = 1..Inf; foo @a; sub foo(*@_) { say @_[42] }; # 43

And now, this is where it gets really weird: When calling `.is-lazy` or `.[]` on the parameter *first*, then a *subsequent* .gist on it no longer hangs:

     my @a = 1..Inf; foo @a; sub foo(*@_) { say @_.is-lazy; say @_.gist }; # True␤[...]
     my @a = 1..Inf; foo @a; sub foo(*@_) { say @_[1]; say @_.gist }; # 1␤[...]

For comparison, here are some variations which also do not hang:

     my @a = 1..Inf; say @a.gist; # [...]

     my @a = 1..Inf; foo @a; sub foo(@_) { say @_.gist }; # [...]

     my @a = 1..Inf; foo @a; sub foo(*@_ is raw) { say @_.gist }; # (1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 ...)


---
This is Rakudo version 2016.04-210-gc59e4dc built on MoarVM version 2016.05
implementing Perl 6.c.

Search Discussions

Related Discussions

Discussion Navigation
viewthread | post
Discussion Overview
groupperl6-compiler @
categoriesperl
postedMay 20, '16 at 10:32p
activeMay 20, '16 at 10:32p
posts1
users1
websiteperl6.org

1 user in discussion

Sam S .: 1 post

People

Translate

site design / logo © 2019 Grokbase