apogee_ntv No worries 01:04
Voldenet I've golfed it - intriguingly I couldn't get rid of `with True` 01:39
hm, I could with `True andthen self!thing` 02:25
03:01 nine left, nine joined 05:36 xiaomiao joined 05:38 xiaomiao left 05:42 xiaomiao joined 08:08 kjp left
apogee_ntv I took a better look: first thing I found was RakuAST already gets it right, second was it affects a lot more than just 'with', basically all of that family. 08:16
I'm stepping through the actual path, going to figure out where it goes wrong. 08:26
Voldenet with rakuast - I'm betting it only happens to work because some optimizations are not wired to syntax yet 08:30
lizmat yeah, there's a lot of that :-) 08:34
08:45 kjp joined
apogee_ntv Did some more digging and I have what I think is a strong hypothesis, added as a comment. 09:54
If you change minrole to do `self.execute(input => 54);` (not a Str) it doesn't crash, so my strongest hypothesis is that the class anchor lookup is being optimized away and it's just assumed that A is the class anchor for all Str (that's the known shape). 09:57
specialized_on_invocant seems to be set without checking that arg0 is an invocant. 09:59
The issue there may well lie at another layer, I'm not sure what it's supposed to be able to assume ofc. 15:32
16:05 nativecallable6 left, benchable6 left 16:06 benchable6 joined 16:07 nativecallable6 joined
ab5tract "it only happens to work because some optimizations are not wired to syntax yet" <-- I think this is the wrong way to think about things 20:06
the problem is that we have a bunch of bugs in the legacy frontend that are papered over by the legacy optimizer
the problem is not that RakuAST doesn't replicate legacy frontend bugs 20:07
and since we are building a new optimizer (afaict), I don't actually see a real connection between the two 20:09
(imo it's a bug in the optimizer if it can optimize over a bug in the VM) 20:31