[perl #131870] [CONC] [REGEX] Capture lookup inside regex is not threadsafe

2018-03-11 Thread Jan-Olof Hendig via RT
On Wed, 09 Aug 2017 13:32:58 -0700, sml...@gmail.com wrote:
> Heh, on further thought, they may be the same issue after all.
> 
> In  `/(...) { ... $i ... $0 ... }`,  both the $i and the $0 (or $/
> rather) are outer lexicals from the point of view of the curly block,
> right?
> 
> So it might be a general problem with the way that *code blocks inside
> regexes* access outer lexicals.
> 
> (It doesn't happen with code blocks *outside* of regexes, and as the
> other ticket demonstrates, also doesn't happen inside the regex-
> portion of regexes.)

It was initially broken with commit (2016-08-03) 
https://github.com/rakudo/rakudo/commit/08e39ee2653b1ae5144d4158a4f8ad03193e7024
and fixed with the better-sched merge, i.e.
7c18112c59d20413b82356e5c48b38d8a66fc7ea
c285b489c6629ccdf0c4cb11d2d695b9ef1f890c
7fcab1067de4757bfdf2fdd1c66893ce4ab06e1b
89b9ac7830bdc195cb303f5241641e0dbe0ebbde
683037be698d0bdc21b3c23588085b2d076d7a0a
b5605c2dd6d361b705a59136c8ad641f245a5da5
c50d35a90e66346157b31cd92643c2a64e801c24
de311f46a98f13a5b0211d2585fbd9b17ce1bf2c
340d8ed3bb4b45af85708771bea396cf862a7330
3b98fb9e396d040a8cb2c32d23cee54a5e88f878
596611c8fdc3baf119bc94a8ea30efc0a12cf673
80b49320cf854ac68a17cdd216575ee26e380325
61a77e60a7d936415503d8916fcc7546569e9135


[perl #131870] [CONC] [REGEX] Capture lookup inside regex is not threadsafe

2017-08-09 Thread Sam S. via RT
Heh, on further thought, they may be the same issue after all.

In  `/(...) { ... $i ... $0 ... }`,  both the $i and the $0 (or $/ rather) are 
outer lexicals from the point of view of the curly block, right?

So it might be a general problem with the way that *code blocks inside regexes* 
access outer lexicals.

(It doesn't happen with code blocks *outside* of regexes, and as the other 
ticket demonstrates, also doesn't happen inside the regex-portion of regexes.)


[perl #131870] [CONC] [REGEX] Capture lookup inside regex is not threadsafe

2017-08-09 Thread Sam S. via RT
Also notable is that multiple iterations somehow see the same value for `$i` 
(as observed in the output listing above).

I've sumbitted a separate issue for that (RT #131871), because the 
Capture-lookup bug of the current issue occurs even when removing the `$i`.