I can't help but think that binding a state variable should be illegal, and doing so will have unexpected effects.
On Wed, Mar 22, 2017 at 1:48 PM, Zoffix Znet <perl6-bugs-follo...@perl.org> wrote: > # New Ticket Created by Zoffix Znet > # Please include the string: [perl #131043] > # in the subject line of all future correspondence about this issue. > # <URL: https://rt.perl.org/Ticket/Display.html?id=131043 > > > > $ perl6 -v > This is Rakudo version 2017.03-20-g027aa54 built on MoarVM version > 2017.03-7-g029d121 > implementing Perl 6.c. > > $ perl6 -e 'state $x = 42; dd $x' > Int $x = 42 > > $ perl6 -e 'state $x := 42; dd $x' > Mu > > > I also have a small snippet where the `state` declaration uses assignment, > but later > in the code a binding is used for the same variable. The result of the > routine changes, > based on whether it's a binding or an assignment (also, I believe the > result with binding > is incorrect: > > use MONKEY; > sub z { > my @found; > for $^v.pairs { > my $value := .value; > state $max = $value; > my $cmp; > nqp::if( > nqp::iseq_i( ($cmp := $value cmp $max), 1 ), > > ### CHANGING FROM $max := to $max = BELOW CHANGES RESULT > nqp::stmts((@found = $_), ($max := $value)), > nqp::if( > nqp::iseq_i($cmp, 0), > @found.push: $_ > ) > ) > } > @found.List > } > > dd z (1, 2, 65, -6, 4); > -- brandon s allbery kf8nh sine nomine associates allber...@gmail.com ballb...@sinenomine.net unix, openafs, kerberos, infrastructure, xmonad http://sinenomine.net