On Mon, 28 Aug 2017 17:59:39 -0700, j.david.l...@apple.com wrote: > This short program behaves strangely on my system: > > ``` > #!/usr/bin/env perl6 > > use v6.c; > > await((1 .. 5).map: -> $tid { > start { > for (1 .. 100) -> $index { > my $s-tid = "{$tid}"; > my $s-index = "{$index}"; > > say "thread $tid != stringified $s-tid" unless $tid ~~ $s-tid; > say "index $index != stringified $s-index" unless $index ~~ $s-index; > } > } > }); > ``` > > ... producing output like: > > > ``` > $ ./bug > thread 2 != stringified 1 > index 54 != stringified 11 > thread 5 != stringified 4 > thread 3 != stringified 2 > index 61 != stringified 39 > index 42 != stringified 16 > thread 5 != stringified 2 > thread 2 != stringified 1 > index 66 != stringified 53 > index 57 != stringified 79 > thread 1 != stringified 3 > index 59 != stringified 70 > thread 4 != stringified 1 > index 36 != stringified 71 > index 39 != stringified 76 > index 41 != stringified 97 > thread 2 != stringified 5 > > $ ./bug > thread 2 != stringified 5 > index 26 != stringified 35 > index 47 != stringified 58 > thread 4 != stringified 2 > index 19 != stringified 33 > ``` > > It's hard to imagine that this could be correct. > > More information: > > ``` > $ perl6 --version > This is Rakudo version 2017.07 built on MoarVM version 2017.07 > implementing Perl 6.c. > ```
Fixed, and test added to S17-promise/start.t.