Perl 6 - the future is here, just unevenly distributed

IRC log for #moarvm, 2016-06-01

| Channels | #moarvm index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

Time Nick Message
01:48 ilbot3 joined #moarvm
01:48 Topic for #moarvm is now https://github.com/moarvm/moarvm | IRC logs at  http://irclog.perlgeek.de/moarvm/today
04:33 fengc joined #moarvm
05:32 domidumont joined #moarvm
05:37 domidumont joined #moarvm
07:29 zakharyas joined #moarvm
08:48 Ven joined #moarvm
09:44 domidumont joined #moarvm
09:54 zakharyas joined #moarvm
10:37 dalek MoarVM: dc0b36c | jnthn++ | src/core/op (2 files):
10:37 dalek MoarVM: Mark getlexcaller as :noinline.
10:37 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/dc0b36cad3
10:42 dalek MoarVM: 6075599 | jnthn++ | src/spesh/graph.c:
10:42 dalek MoarVM: Don't lose handlers during multi-level inlines.
10:42 dalek MoarVM:
10:42 dalek MoarVM: If the inlinee itself has inlines and those have handlers, we could
10:42 dalek MoarVM: end up with them going missing.
10:42 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/6075599d68
11:03 brrt joined #moarvm
11:07 jnthn m: say 11085521589 / 17534022355
11:07 camelia rakudo-moar 33ab86: OUTPUT«0.632229237796␤»
11:09 * brrt wonders what these are the numbers for
11:10 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:11 jnthn 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
11:13 nwc10 at one time did we have semi-regular benchmark graphs?
11:13 jnthn nwc10: Daily in http://www.moarvm.org/measurements/perl6-bench/
11:14 nwc10 jnthn: could you link to that in whichever blog blogs this awesomeness?
11:14 nwc10 hangon, do we have them comparing some sort of "current" and the past 1 or 2 releases?
11:16 brrt cool stuff
11:16 * nwc10 was hoping for something MBA-enabled PHB-friendly
11:17 brrt if i read that correctly, perl5 is still 5 times faster on an empty loop?
11:18 brrt say, 10 times
11:18 jnthn nwc10: http://www.moarvm.org/measurements/perl6-bench/2016-06-01-releases.html compares xmas release vs. previous monthly vs. HEAD
11:18 nwc10 jnthn++
11:19 brrt then again, native perl6 is rather faster
11:21 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 jnthn uh, rather than machine int
11:21 brrt very nice plots indeed
11:21 jnthn japhb++ made the tooling, with help from others...I just wired up a daily run
11:24 jnthn lunch &
11:26 nwc10 jnthn: would you be able to symlink the most recent page as somethig like http://www.moarvm.org/measurements/perl6-bench/current-releases.html
11:26 nwc10 so that there's a non-stale idiot proof URL?
11:26 nwc10 (I'd guess s/$date/current/ for each variant, at the time of writing the files)
11:27 nwc10 better maybe 'today' than 'current', but this is a bikeshed
11:54 jnthn Hm, could probably be done :)
11:59 nwc10 or you could just make it on a Monday and call it "this-week" :-)
12:48 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 arnsholt I must confess I find it hard to keep track of it once the values start getting into the millions
12:48 arnsholt And it'd make it clearer that it's log-scale
13:11 brrt joined #moarvm
13:12 brrt shall i rename the dynamic array macros from MVM_DYNAR_* to MVM_VECTOR_*
13:12 brrt since the usual name is vector rather than 'dynamic array'
13:20 jnthn m: say  11085521589 - 11025486002
13:20 camelia rakudo-moar ef376d: OUTPUT«60035587␤»
13:20 jnthn m: say 60035587 / 11085521589
13:20 camelia rakudo-moar ef376d: OUTPUT«0.005415675439␤»
13:20 jnthn Hm, not so much as hoped
13:21 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"
13:24 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␤»
13:25 jnthn uh, that's not true either. Made it run in 81% of the time it used to
13:25 jnthn Guess that's something
13:26 timotimo nice
13:27 dalek MoarVM: 1339332 | jnthn++ | src/6model/reprs/P6opaque. (2 files):
13:27 dalek MoarVM: Eliminate loop in get_boxed_ref, decreasing cost.
13:27 dalek MoarVM:
13:27 dalek MoarVM: Takes around 20% off get_boxed_ref, which is a hot path in anything
13:27 dalek MoarVM: doing lots of Int operations in Rakudo. (Much less than 20% off an
13:27 dalek MoarVM: overall program; only 0.5% on my loop/method call/increment benchmark
13:27 dalek MoarVM: for example).
13:27 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/13393320bf
13:57 dalek MoarVM/even-moar-jit: fcb2edb | brrt++ | src/jit/ (6 files):
13:57 dalek MoarVM/even-moar-jit: Move TileList from linked list to vector
13:57 dalek MoarVM/even-moar-jit:
13:57 dalek MoarVM/even-moar-jit: Allow easier backwards and forwards traversal in the tilelist,
13:57 dalek MoarVM/even-moar-jit: which is relevant in several steps of the register allocator
13:57 dalek MoarVM/even-moar-jit: (such as precoloring).
13:57 dalek MoarVM/even-moar-jit: review: https://github.com/MoarVM/MoarVM/commit/fcb2edb40e
13:57 brrt oh, waitaminute
13:58 dalek MoarVM/even-moar-jit: 746b340 | brrt++ | src/jit/compile.c:
13:58 dalek MoarVM/even-moar-jit: Be a sport, clean up yer mess
13:58 dalek MoarVM/even-moar-jit: review: https://github.com/MoarVM/MoarVM/commit/746b340a62
13:59 brrt it pisses me off, a little, that this is yet another sideways step
14:03 brrt but it is a nice simplification if i say so myself
14:05 zakharyas joined #moarvm
14:09 brrt you know what sucks about C
14:09 brrt it gives you a choice between integers of various sizes
14:10 brrt this is not good for somebody who has trouble deciding
14:10 brrt because What If I'm Wrong
14:10 brrt i know that the only true answer is
14:10 brrt of course you're doing it wrong
14:11 brrt you should accept wrongness
14:11 brrt it is the basic state of the universe
14:11 tomboy64 brrt: just always go with double
14:11 brrt lol
14:11 tomboy64 and you shall be saved :D
14:11 brrt seems like a great idea for register indices
14:11 brrt i'll keep that in mind
14:11 brrt :-P
14:11 tomboy64 ;)
14:14 brrt general purpose registers, floating point registers, non-volatile registers....
14:15 brrt i'm actually not all that far away from going mad
14:17 brrt but, in a good way
14:17 brrt register allocators are pretty
14:18 brrt 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:41 japhb jnthn, timotimo, nwc10: I keep this in my ~/bin just because I got tired of doing the speed up computation: https://gist.github.com/japhb/6d263ce206208b20eb357581d187b40d
14:42 japhb 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 :)
14:42 japhb And if I ever forget the order of the args, then I am again thankful it's Perl 6
14:42 timotimo (because i've been known to, at least in the past, try to improve memory usage, too)
14:43 japhb Hmmm, I guess a "smaller" is in order to go with this "faster"
14:44 timotimo :)
16:03 dalek MoarVM/slower/elim-take-dispatcher: 6331770 | jnthn++ | src/spesh/ (5 files):
16:03 dalek MoarVM/slower/elim-take-dispatcher: Eliminate takedispatcher where possible on inline.
16:03 dalek MoarVM/slower/elim-take-dispatcher:
16:03 dalek MoarVM/slower/elim-take-dispatcher: This does work, however the analysis overhead seems to lose any wins
16:03 dalek MoarVM/slower/elim-take-dispatcher: we might otherwise get. May be able to implement it smarter; for now,
16:03 dalek MoarVM/slower/elim-take-dispatcher: will put it aside.
16:03 dalek MoarVM/slower/elim-take-dispatcher: review: https://github.com/MoarVM/MoarVM/commit/6331770b84
16:03 jnthn Throwing that failed experiment out there in case anybody wants to play. :)
16:05 domidumont joined #moarvm
17:48 jnthn Been working locally on eliminating use of lexotic etc. in favor of control exceptions for return
17:48 jnthn Hopefully will get it working tomorrow. :)
17:51 [Coke] jnthn++
18:10 edehont joined #moarvm
18:19 jnthn Here's my scribblings about possible upcoming changes, fwiw: https://gist.github.com/jnthn/d74caa20d7ad19522b9e8e781c6a9030
18:20 * jnthn goes to do nom prep stuff
18:25 timotimo "However, an exception object"
18:25 timotimo i didn't understand that sentence
18:27 timotimo interesting changes
18:36 zakharyas joined #moarvm
18:54 vendethiel joined #moarvm
19:12 lizmat_ joined #moarvm
20:30 edehont joined #moarvm

| Channels | #moarvm index | Today | | Search | Google Search | Plain-Text | summary