01:48
ilbot3 joined
02:11
colomon joined
05:38
domidumont joined
05:59
domidumont joined
06:00
domidumont joined
07:01
brrt joined
|
|||
brrt | good * | 07:03 | |
07:41
zakharyas joined
|
|||
jnthn | o/ brrt | 07:59 | |
heh, missed the quit line :) | 08:00 | ||
nwc10 | good *, #moarvm | 08:11 | |
08:54
zakharyas joined
09:32
zakharyas joined
10:54
TimToady joined
|
|||
lizmat | rt.perl.org/Ticket/Display.html?id=128368 # golfed spesh issue with return | 11:34 | |
jnthn | Can retest it after the various upcoming branch merges | 11:41 | |
(Which totally change how return is handled) | |||
I suspect those'll resolve it | |||
It's waiting on me fixing error reporting for return outside of routine (lost the typed exception) | 11:42 | ||
And then it needs JVM work I guess | |||
timotimo | oh, i thought this is from using those branches %) | 11:44 | |
lizmat | fwiw, the shortest golf so far: sub foo() { return 42 }; for ^158 { foo } | 11:47 | |
timotimo | how is it when you (^158).map(&foo), does that also do it? | 11:52 | |
because then it doesn't have the extra curly, but invokes the foo immediately | |||
lizmat | m: sub foo($a) { return 42 }; (^158).map(&foo); say "done" | 11:54 | |
camelia | rakudo-moar 87e91c: OUTPUT«done» | ||
timotimo | that just makes it a bit clearer that it's probably inlining that's at fault | 11:56 | |
lizmat | timotimo: that means it shouldn't occur with MVM_JIT_DISABLE=1 ? | 12:07 | |
timotimo | actually, inlining happens before the JIT starts | ||
so MVM_SPESH_INLINE_DISABLE or what's it calleed? | |||
lizmat | MVM_SPESH_INLINE_DISABLE=1 makes it also work ok indeed | 12:08 | |
12:16
rurban_ joined
|
|||
lizmat | afk for a few hours& | 12:19 | |
12:37
brrt joined
|
|||
lizmat | m: sub bar() { foo; return 666 }; sub foo() { return 42 }; for ^158 { print bar } | 12:37 | |
camelia | rakudo-moar 9cfcb9: OUTPUT«6666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666…» | ||
lizmat | hmmm | ||
m: sub bar() { foo; return 6 }; sub foo() { return 42 }; for ^158 { print bar } | |||
camelia | rakudo-moar 9cfcb9: OUTPUT«666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666642» | ||
lizmat | really afk& | ||
brrt | \o jnthn (back again) | 12:41 | |
14:52
FROGGS joined
15:10
zakharyas joined
16:30
domidumont joined
16:53
rurban_ joined
|
|||
timotimo | ack | 17:49 | |
18:15
rurban_ joined
18:18
tomboy64 joined
18:35
domidumont joined
|
|||
diakopter | wow I wonder what's happening there | 19:49 | |
[Coke] | there where now? | 19:58 | |
timotimo | see how it returns a 42 at the end there? | ||
it's missing the inner return handler and hits the outer one instead | 19:59 | ||
that's the threshold where OSR kicks in, if i'm not mistaken. | |||
jnthn | Hm, OSR is at 200 | 21:04 | |
158 = 150 thershold + 8 logging runs | 21:05 | ||
But yeah, my branch contains some protection around the lexical handler resolution stuff | |||
It's a tad fraught to allow things that call "return" to be inlined. | 21:06 | ||
However...the beautiful thing is that I don't think I'll ever have to implement that. | |||
Because 1) Inline `return` itself, 2) rewrite the throw into a set/goto pair, 3) no exception throw that needs inlining any more :) | 21:07 | ||
21:07
vendethiel joined
|
|||
jnthn | It's a bit like how we don't rewrite complex arg processing on inline, 'cus that already was rewritten into sp_arg ops | 21:08 | |
21:16
camelia joined
|
|||
timotimo | hooray for composable optimizations | 21:40 |