github.com/moarvm/moarvm | IRC logs at irclog.perlgeek.de/moarvm/today
Set by moderator on 30 April 2018.
buggable 🎺🎺🎺 It's time for the monthly Accidental /win Lottery 😍😍😍 We have 2 ballots submitted by 2 users! DRUM ROLL PLEASE!... 00:00
And the winning number is 10! Congratulations to nine! You win a roll of duck tape!
01:57 ilbot3 joined
moderator github.com/moarvm/moarvm | IRC logs at irclog.perlgeek.de/moarvm/today
07:47 domidumont joined 07:54 domidumont joined 08:01 robertle joined 08:26 brrt joined
Geth MoarVM: 8130881b36 | (Bart Wiegmans)++ | tools/spesh-time.p6
[Tools] report time spent on JIT

Commit f2b9b7f4f0e98 added time logging for the JIT, so we can see the time spent JITting compared to just specializing code.
08:26
jnthn morning o/ 09:14
brrt morning 09:26
jnthn brrt: Spotted one more issue on your PR, but other than that I think let's give it a try :) 09:27
Geth MoarVM/spesh-limit-debug-log: 4 commits pushed by (Bart Wiegmans)++ 09:28
brrt :-)
thanks
Geth MoarVM/master: 5 commits pushed by (Bart Wiegmans)++
MoarVM/pluggable-spesh: c2bd6abafb | (Jonathan Worthington)++ | 10 files
Stub the spesh plugin ops
09:33
MoarVM/pluggable-spesh: 4b2bc61fdb | (Jonathan Worthington)++ | src/mast/compiler.c
Implement bytecode assembly for speshresolve
MoarVM/pluggable-spesh: a4b8cdab3e | (Jonathan Worthington)++ | 3 files
Implement spesh plugin registration/resolution

Since the lookup only happens on a miss, the lock here is probably not going to be too highly contended over. We can revisit that if profiling suggests otherwise (with some kind of read-only lookup).
jnthn Just a rebase. :) 09:37
Now let's see how far I can get this thing...
09:51 zakharyas joined 09:52 Ven`` joined 09:53 Ven`` joined 10:03 Ven`` joined 10:43 brrt joined
domidumont Cool. Rakudo is built for all arch on Debian. buildd.debian.org/status/package.php?p=rakudo . Debian testing is going to get rakudo back :-) 12:38
moritz \\o/ 12:40
domidumont++
12:43 AlexDaniel joined 12:59 lizmat joined 13:28 domidumont joined
Geth MoarVM/pluggable-spesh: 6f158fe8bf | (Jonathan Worthington)++ | 6 files
Implement spesh plugin resolution by position

We currently don't pay any attention to the guards, meaning that once a plugin produces a value, that will always be used. This gets the basic infrastructure for caching by bytecode position working, however.
13:35
[Coke] domidumont++ 13:37
13:56 brrt joined 14:00 zakharyas joined
Geth MoarVM: 429b57795e | MasterDuke17++ (committed by Daniel Green) | src/jit/core_templates.expr
Put jit templates in same order as ops in interp.c
14:10
MoarVM: 1003874b2e | MasterDuke17++ (committed by Daniel Green) | src/jit/core_templates.expr
Make formatting of all jit templates consistent

This is all formatting/whitespace, no code changes.
MoarVM: 2db92e93cd | (Bart Wiegmans)++ (committed using GitHub Web editor) | src/jit/core_templates.expr
Merge pull request #852 from MasterDuke17/reorder_jit_templates_to_match_op_order_in_interp.c

Clean up src/jit/core_templates.expr a bit
14:34 lizmat joined 14:35 lizmat_ joined
Geth MoarVM/pluggable-spesh: e75154cf4a | (Jonathan Worthington)++ | 3 files
Prepare data structures for plugin guards
14:41
15:03 Ven`` joined 15:26 lizmat joined 15:30 domidumont joined 15:33 robertle joined 15:34 zakharyas joined
samcv so it turns out if uthash has a fatal error moarvm will just segfault. noticed while looking at uthash.h 15:50
though it could be we are defining uthash_fatal wrong, because it seems to be not defined in uthash.h so then it will call exit(-1) instead of what we want 15:54
15:54 brrt joined
samcv or maybe i was the one assuming things wrong. since it seems to be working. well that's good :) 15:55
timotimo i don't know what kind of fatal error uthash can encounter, aside from things like "there isn't any memory left" maybe 15:57
brrt how can we get 'random' order of spesh frames with MVM_SPESH_BLOCKING 16:07
16:10 Ven`` joined
lizmat hash? 16:11
yoleaux 14:18Z <Zoffix> lizmat: If you have any Wordpress theming experience: looks like it's hard to reach RSS feeds for the Weekly: github.com/perl6/user-experience/issues/21
jnthn brrt: threads?
lizmat .tell Zoffix I have 0 experience with Wordpress theming experience
yoleaux lizmat: I'll pass your message to Zoffix.
Geth MoarVM/pluggable-spesh: 931f5b07de | (Jonathan Worthington)++ | 4 files
Implement spesh plugin guard recording obj case

This adds the infrastructure for spesh plugin guard recording and adding them to the guards table. It then uses it to implement the literal match guard.
16:19 zakharyas joined
jnthn Time for a break, but glad to have got a start on that :) 16:20
brrt prolly, innit 16:26
although i'm not seeing them 16:31
maybe precompilation... 16:55
jnthn If it's precomp then it's threads too, 'cus it uses Proc::Async to spawn the process to do the precomping 17:32
brrt i see 17:48
i thought as much
18:36 Ven`` joined
jnthn I found queue.acm.org/detail.cfm?id=3212479 an interesting read 18:44
brrt i have the same article in front of me :-) 18:45
19:43 zakharyas joined 20:06 brrt joined 20:17 zakharyas joined 21:23 shareable6 joined
Geth MoarVM/pluggable-spesh: 5e461b7e77 | (Jonathan Worthington)++ | 2 files
Concreteness and type guards for spesh plugins
22:13
22:14 Ven`` joined
Geth MoarVM/pluggable-spesh: 1292ae44cc | (Jonathan Worthington)++ | src/spesh/plugin.c
Implement plugin guards on fetched attributes
23:05
jnthn There we go. Tomorrow comes actually teaching the spesh facts/optimizer about these plugins. 23:09
I think probably the best bet will be to add a spesh log entry saying which index we resolve to 23:10
That means that we get to correlate with callsites and type tuples
Which means that we statically polymorphic sites that are monomorphic within a given specialization can be easily identified as such 23:11
s/that we/that/
For ones that are polymorphic within the specializatin, didn't quite decide what to do yet, put probably will send it via the lookup 23:12
Though in the future we can do a PIC or some such
That should get us our private methods in roles optimization, anyway 23:13
I guess the $obj.Foo::Bar() will also work out nicely that way 23:14
Well, $obj.Foo::Bar::meth()
Once those two are working I'll merge this lot and then dig into re-doing assignment. 23:15