00:07 AmsterdamJoe joined, vendethiel joined 02:18 vendethiel joined 02:47 ilbot3 joined 02:59 FROGGS_ joined 03:27 colomon joined 04:39 vendethiel joined 06:39 vendethiel joined 07:11 FROGGS joined 07:33 domidumont joined 07:38 domidumont joined 07:42 vendethiel joined 09:34 kjs_ joined
jnthn In prep for upcoming reliability and performance work, I'll be setting up various daily measurements. Will do a valgrind no-leak one once my work on that is a bit further along, and a spesh-immediately one too. For now, though, there's a daily run of perl6-bench on Rakudo head: www.moarvm.org/measurements/perl6-bench/ 10:07
10:08 zakharyas joined 10:41 cognominal joined
timotimo i noticed i haven't actually merged the "only use atomic ops when more than one thread exists" code yet. maybe i should. 12:02
perhaps i should wait for after february's release, though?
jnthn That's still a bit into the future 12:03
flussence
.oO( will the february release even be in february? )
12:04
timotimo OK, then i'll do it later today
jnthn flussence: Dunno, that sounds terribly conventional :P
timotimo maybe next year we'll use discordian "months" instead of the regular ones 12:06
well, in the discordian calendar we only have 5 seasons, which is the equivalent of months
jnthn
.oO( accordian months sound better to me... :) )
12:07
timotimo chaos, discord, confusion, bureaucracy, and "The Aftermath" ā™„
"This is Rakudo Chaos 3182"
13:17 Ven joined 13:40 Ven joined 13:52 Ven joined 14:06 masak joined
masak dunno how relevant this is, but it reminded me of MoarVM for some reason: webkit.org/docs/b3/ 14:07
jnthn Hm, interesting 14:09
14:10 leont joined 14:11 japhb joined 14:30 kjs_ joined 14:52 brrt joined
brrt ohai 14:52
timotimo oh, hey brrt
how's your day? :)
brrt masak: yeah, b3 and expr jit are similarish, except that b3 is of course written by experts people who know what they're doing, and expr jit is written by me
hmm, okay i guess 14:53
jnthn: i recall fixing that cleanup on the jitcode earlier 14:54
but maybe that was limited to the expr jit branch
also, b3 doesn't do 'optimal' tiling but maximal-munch 15:05
which is a good way, fwiw
recording a 'good idea' here; i was thinking of creating a table of { operation, { operand_nr, operaand_type }, template } for type-specific operation templates 15:12
15:15 vendethiel joined 15:23 Ven joined
brrt (and yes, i will eventually get to implementing all these things :-)) 15:24
15:28 Ven joined
brrt anyway, that would be used for specialized jit templates 15:30
15:33 japhb joined 15:41 vendethiel joined
masak brrt: yes, the greedy approach seems like it could work quite well 16:02
16:45 leont joined
timotimo jnthn: something may be off in our "dead BB elimination", i have an example for you: gist.github.com/timo/6e049585004912f5f24d 17:05
even the very simple code perl6 -e 'for ^4194304 { rand }' ends up not inlining the loop body (but it does inline rand) 17:06
jnthn Loop bodies are map closures at present so don't really inline at all 17:07
timotimo oh
OK, fair enough
jnthn Hm, you mean BB4 is unreachable, but left behind?
timotimo i think so, yes 17:08
Successors: 5
Predeccessors: 5
^- very suspicious
also, that for loop gets turned into a while loop; wouldn't that make it inlinabler? 17:09
in the profile, i get 67.5% exclusive time on the outer block, the one that for's, and 32.5% exclusive time on the inner block, the one that rand's 17:10
so ... rand is really fast, but entering a block and incrementing an integer is really slow in comparison?
jnthn Something like 17:11
Invocation is fairly high on my list of stuff to speed up
timotimo sweet 17:12
i'm not really aware what exactly makes invocation expensive 17:13
do you have a clue how much you can get out of optimized invocation? 17:18
jnthn Not sure, but it can account for up to 10% of runtime in some cases on profiles. 17:19
But we also have GC getting costly when there's huge numbers of closures alive
timotimo mhm
17:24 FROGGS joined 18:08 japhb joined
diakopte1 I saw fixed size allocation taking up 6% of the 10% of invocation 18:21
well, 60% depending how you read it
timotimo oh? wow 18:22
diakopte1 (using Xcode's profiler)
timotimo was that what we had the frame cache for at some point?
diakopte1 yeah, but theoretically the fixed size allocoater should be good too 18:23
alligoater
timotimo i haven't looked at the FSA yet ... does it have a lot of locking or something? 18:25
diakopter no, but the malloc it calls probably does in most platforms 18:26
timotimo ah
but don't we have a bunch of pools for that purpose? with like big pages?
diakopter there might be some arithmetic wrong somewhere; last time I looked (within 2 months) the number of mallocs seemed quite high compared to number of calls to the FSA 18:27
timotimo hmm
well, there's a whole bunch of straight-up malloc calls from deserialization 18:28
for STables, iirc
18:34 vendethiel joined 18:39 japhb joined 18:58 japhb joined
japhb Oh holy cow, timotimo++ did a pile of fixes for perl6-bench! 19:03
Very many thanks to both of you for keeping it going. :-)
timotimo <3 19:04
19:20 domidumont joined
jnthn The improvements should show up in tonight's run 19:24
timotimo when is that likely to appear online? do you have to manually upload the result? 19:25
jnthn timotimo: No, it's an automated run
timotimo cool :)
i'm looking forward to that 19:26
jnthn So I don't have to do anything for it to run. Do have to `git pull` in improvements still
(Not for Rakudo etc., just for the benchmarks themselves) 19:27
It runs with Rakudo and NQP HEAD and the Moar in MOAR_REVISION
timotimo ah, hm. so only benchmark improvements, no moar improvements just yet 19:31
diakopter
.oO( I wonder if the cache_sc_idx branch automagically fixed itself on windows... I'll check )
19:34
timotimo i'm running spec tests with the no-atomics-for-stuff merge
19:40 cognominal joined
dalek Heuristic branch merge: pushed 48 commits to MoarVM/cache_sc_idx by diakopter 19:40
diakopter dalek++ # for once
[Coke] even a stopped bot is right twice a... 20:06
20:30 zakharyas joined
timotimo it seems like all those spec tests are busy-looping inside an AO_ operation 20:34
dalek arVM: 2136293 | jnthn++ | src/core/nativecall_ (2 files):
Don't create partly-initialized callsites.

We left the named args pointer junk, which would cause problems were it freed later. Would only have come up with --full-cleanup before, but after fixing a leak in callsite interning it could come up much more often.
20:48