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.

Reply via email to