<ZzZombo> I just found out you can't call ANY inherited methods from submethods under the pretense that "Virtual method call $.v may not be used on partially constructed object (maybe you mean $!v for direct attribute access here?)", despite the object being constructed a long time ago.

rakudo-moar d80fc376d: OUTPUT: «5===SORRY!5=== Error while compiling <tmp>␤Unsupported use of bare "say"; in Perl 6 please use .say if you meant to call it as a method on $_, or use an explicit invocant or argument, or use &say to refer to the function as a noun␤at <tmp>:1…»

It does show however that runtime generated code might be the key to gain further generic speedups. Those Captures just are not fast enough. But generating new multi candidates for the actuall calling conditions at runtime is rather simple

nine, Zoffix: I think the answer will be something like exploding flattening things sooner, in-place in the args buffer, for the cases that fit, and putting an interned callsite in place of the flattening one

I was looking at that bug yesterday and it's basically copying the symbols into a fake block and compiles there, so any bindings get lots in that fake block and that's why if you bind $a would end up a Mu or whatever

Zoffix: Yeah. Lexpads are immutable, and when we compile a BEGIN we obviously haven't finished the outer block yet, so we have to fake something up. But what? Containers are cloned from a "prototype", and the fake lexpad contains the static container. Thus what's actually happening is that on entry to the scope post-compilation, the Scalar is cloned complete with the value set in the prototype.

I think the concern was that if the test suite creates these files, then the user may later have problems getting rid of them. Yes, all the other tools that can't handle that are broken, but we shouldn't be causing this kind of trouble

rakudo-moar 95f23a563: OUTPUT: «spurt is disallowed in restricted setting␤ in sub restricted at src/RESTRICTED.setting line 1␤ in sub spurt at src/RESTRICTED.setting line 17␤ in block <unit> at <tmp> line 1␤␤»

rakudo-moar 95f23a563: OUTPUT: «spurt is disallowed in restricted setting␤ in sub restricted at src/RESTRICTED.setting line 1␤ in sub spurt at src/RESTRICTED.setting line 17␤ in block <unit> at <tmp> line 1␤␤»

moritz: do you know if there’s a standard idiom for sending the stdout or stderr of a Proc::Async to files? I think I can see how to do it, but it seems awfully longwinded for something I’d think would be common.