01:48 ilbot3 joined 04:33 fengc joined 05:32 domidumont joined 05:37 domidumont joined 07:29 zakharyas joined 08:48 Ven joined 09:44 domidumont joined 09:54 zakharyas joined
dalek arVM: dc0b36c | jnthn++ | src/core/op (2 files):
Mark getlexcaller as :noinline.
10:37
arVM: 6075599 | jnthn++ | src/spesh/graph.c:
Don't lose handlers during multi-level inlines.

If the inlinee itself has inlines and those have handlers, we could end up with them going missing.
10:42
11:03 brrt joined
jnthn m: say 11085521589 / 17534022355 11:07
camelia rakudo-moar 33ab86: OUTPUT«0.632229237796␤»
brrt wonders what these are the numbers for 11:09
jnthn If this is right, the above two fixes above which in turn unblock removing &EXHAUST in Rakudo result in the program 'class A { has $.i = 0; method m() { $!i++ } }; my $a = A.new; for ^5000000 { $a.m() }; say $a.i' running in 63% of the CPU cycles it used to 11:10
I suspect both thanks to the removal of the late-bound &EXHAUST lookup but also unblocking various bits of inlining 11:11
brrt that... would.. be something
nwc10 at one time did we have semi-regular benchmark graphs? 11:13
jnthn nwc10: Daily in www.moarvm.org/measurements/perl6-bench/
nwc10 jnthn: could you link to that in whichever blog blogs this awesomeness? 11:14
hangon, do we have them comparing some sort of "current" and the past 1 or 2 releases?
brrt cool stuff 11:16
nwc10 was hoping for something MBA-enabled PHB-friendly
brrt if i read that correctly, perl5 is still 5 times faster on an empty loop? 11:17
say, 10 times 11:18
jnthn nwc10: www.moarvm.org/measurements/perl6-b...eases.html compares xmas release vs. previous monthly vs. HEAD
nwc10 jnthn++
brrt then again, native perl6 is rather faster 11:19
jnthn brrt: Yeah, we win on native (go JIT) but not on the other, largely 'cus our integers are bigints and GC-allocated rather than bigint 11:21
uh, rather than machine int
brrt very nice plots indeed
jnthn japhb++ made the tooling, with help from others...I just wired up a daily run
lunch & 11:24
nwc10 jnthn: would you be able to symlink the most recent page as somethig like www.moarvm.org/measurements/perl6-b...eases.html 11:26
so that there's a non-stale idiot proof URL?
(I'd guess s/$date/current/ for each variant, at the time of writing the files)
better maybe 'today' than 'current', but this is a bikeshed 11:27
jnthn Hm, could probably be done :) 11:54
nwc10 or you could just make it on a Monday and call it "this-week" :-) 11:59
arnsholt Another suggestion, while we're talking about it: Maybe change the tic labels in the plots to 2^$n rather than decimal notation? 12:48
I must confess I find it hard to keep track of it once the values start getting into the millions
And it'd make it clearer that it's log-scale
13:11 brrt joined
brrt shall i rename the dynamic array macros from MVM_DYNAR_* to MVM_VECTOR_* 13:12
since the usual name is vector rather than 'dynamic array'
jnthn m: say 11085521589 - 11025486002 13:20
camelia rakudo-moar ef376d: OUTPUT«60035587␤»
jnthn m: say 60035587 / 11085521589
camelia rakudo-moar ef376d: OUTPUT«0.005415675439␤»
jnthn Hm, not so much as hoped
nwc10 you really need a built-in function to do that calculation :-) 13:21
timotimo we call the bot's command that does it "jnthnize"
jnthn m: say "sped up get_boxed_ref by {255009758 / 315012162}" 13:24
camelia rakudo-moar ef376d: OUTPUT«sped up get_boxed_ref by 0.8095235320␤»
jnthn uh, that's not true either. Made it run in 81% of the time it used to 13:25
Guess that's something
timotimo nice 13:26
dalek arVM: 1339332 | jnthn++ | src/6model/reprs/P6opaque. (2 files):
Eliminate loop in get_boxed_ref, decreasing cost.

Takes around 20% off get_boxed_ref, which is a hot path in anything doing lots of Int operations in Rakudo. (Much less than 20% off an overall program; only 0.5% on my loop/method call/increment benchmark for example).
13:27
arVM/even-moar-jit: fcb2edb | brrt++ | src/jit/ (6 files):
Move TileList from linked list to vector

Allow easier backwards and forwards traversal in the tilelist, which is relevant in several steps of the register allocator
  (such as precoloring).
13:57
brrt oh, waitaminute
dalek arVM/even-moar-jit: 746b340 | brrt++ | src/jit/compile.c:
Be a sport, clean up yer mess
13:58
brrt it pisses me off, a little, that this is yet another sideways step 13:59
but it is a nice simplification if i say so myself 14:03
14:05 zakharyas joined
brrt you know what sucks about C 14:09
it gives you a choice between integers of various sizes
this is not good for somebody who has trouble deciding 14:10
because What If I'm Wrong
i know that the only true answer is
of course you're doing it wrong
you should accept wrongness 14:11
it is the basic state of the universe
tomboy64 brrt: just always go with double
brrt lol
tomboy64 and you shall be saved :D
brrt seems like a great idea for register indices
i'll keep that in mind
:-P
tomboy64 ;)
brrt general purpose registers, floating point registers, non-volatile registers.... 14:14
i'm actually not all that far away from going mad 14:15
but, in a good way 14:17
register allocators are pretty
you know that i'm planning, not only a heap (heaps are my favorite data structure), but also topological sort (one of my favoritae algorithms) 14:18
japhb jnthn, timotimo, nwc10: I keep this in my ~/bin just because I got tired of doing the speed up computation: gist.github.com/japhb/6d263ce20620...81d187b40d 14:41
It shows the times faster/slower as well as % more/less time, so you get both ways of saying it. :-) 14:42
timotimo it could also do memory :)
japhb And if I ever forget the order of the args, then I am again thankful it's Perl 6
timotimo (because i've been known to, at least in the past, try to improve memory usage, too)
japhb Hmmm, I guess a "smaller" is in order to go with this "faster" 14:43
timotimo :) 14:44
dalek arVM/slower/elim-take-dispatcher: 6331770 | jnthn++ | src/spesh/ (5 files):
Eliminate takedispatcher where possible on inline.

This does work, however the analysis overhead seems to lose any wins we might otherwise get. May be able to implement it smarter; for now, will put it aside.
16:03
jnthn Throwing that failed experiment out there in case anybody wants to play. :)
16:05 domidumont joined
jnthn Been working locally on eliminating use of lexotic etc. in favor of control exceptions for return 17:48
Hopefully will get it working tomorrow. :)
[Coke] jnthn++ 17:51
18:10 edehont joined
jnthn Here's my scribblings about possible upcoming changes, fwiw: gist.github.com/jnthn/d74caa20d7ad...781c6a9030 18:19
jnthn goes to do nom prep stuff 18:20
timotimo "However, an exception object" 18:25
i didn't understand that sentence
interesting changes 18:27
18:36 zakharyas joined 18:54 vendethiel joined 19:12 lizmat_ joined 20:30 edehont joined