Perl 6 - the future is here, just unevenly distributed

IRC log for #moarvm, 2014-10-27

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

All times shown according to UTC.

Time Nick Message
04:46 ggoebel111111114 joined #moarvm
07:32 FROGGS joined #moarvm
08:04 zakharyas joined #moarvm
08:06 lizmat_ joined #moarvm
08:19 brrt joined #moarvm
08:39 lizmat joined #moarvm
08:42 lizmat_ joined #moarvm
08:44 brrt http://tratt.net/laurie/blog/entries/fast_enough_vms_in_fast_enough_time interesting
08:44 brrt about vm's and pypy and stuff
08:46 FROGGS ohh, will read that as soon as I have time
08:48 lizmat joined #moarvm
08:49 lizmat__ joined #moarvm
08:50 lizmat joined #moarvm
08:50 brrt i'm not totally agreeing about rpython being awesome
08:51 brrt i saw it and it was limited, but unlike nqp, it didn't make that entirely obvious
08:51 brrt that sucks imho
08:51 FROGGS yeah
08:51 lizmat___ joined #moarvm
08:53 lizmat_ joined #moarvm
08:58 nwc10 brrt: http://irclog.perlgeek.de/moarvm/2014-10-24#i_9559181
09:02 lizmat joined #moarvm
09:04 brrt thanks :-)
09:15 lizmat_ joined #moarvm
09:15 kjs_ joined #moarvm
09:21 brrt wrt to the difficulties he expressed in writing JIT's... I can concur with some, and not with others
09:22 brrt but that may be because moarvm is on the whole pretty well-designed
09:22 brrt i.e. it was easier than he makes it out to be
09:38 brrt joined #moarvm
09:45 lizmat joined #moarvm
10:02 lizmat_ joined #moarvm
10:10 JimmyZ joined #moarvm
10:11 JimmyZ I saw the luajit asm code, it's well designed, and so looks like it's not that hard, i.e: call exten func
10:12 JimmyZ precall and postcall etc
10:13 JimmyZ *extern
10:14 brrt luajit is well designed indeed :-)
10:14 brrt i should study that a bit more
10:15 JimmyZ yeah, And I really like its allocation sink optimization and I hope moarvm will also have it .
10:16 JimmyZ which will really helps perl6's performance
10:16 lizmat joined #moarvm
10:16 * JimmyZ will discuss it a bit with jnthn later ...
10:17 JimmyZ *jnthn++ :P
10:21 nwc10 timotimo: unfortunately 15d3b75921577f342ffaa128de141199343e3a37/824b28497ceab5a162a50ab6bcaa17bd1bf6a89d/0809f665c272dcdd28fc6d0eaacd7354b7a38135 add ASAN barfage
10:23 nwc10 can jit multicacheadd and multicachefind
10:23 nwc10 er
10:23 nwc10 http://paste.scsys.co.uk/435332
10:23 brrt allocation sink pot?
10:23 brrt opt
10:26 JimmyZ yeah
10:28 JimmyZ *sinking
10:29 JimmyZ an addition optimization to escape analysis
10:29 JimmyZ for the escaped variable
10:44 nwc10 timotimo: strangely, valgrind can't spot anything
10:45 brrt hmmm
11:31 zakharyas joined #moarvm
11:35 dalek MoarVM: 63f3285 | (Timo Paulssen)++ | src/jit/graph.c:
11:35 dalek MoarVM: fix wrong number of arguments passed to multicache*
11:35 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/63f3285b53
11:35 timotimo ^- should be better
11:37 timotimo brrt: allocation sinking means you move the allocation that *does* escape as far towards the end as possible, which often causes the allocation to be moved past some branching point that is only taken rarely
11:39 timotimo brrt: implementing brshift_i and blshift_i should be very easy, but i've had massive amounts of trouble
11:39 timotimo especially regarding register sizes and such
11:40 timotimo as the shift instructions want an 8bit register for the shift amount
11:52 JimmyZ joined #moarvm
11:54 nwc10 timotimo: works on "my" machine
11:54 nwc10 (2 spectests fail. I think that's a #perl6 problem)
11:54 JimmyZ timotimo: the example is past to some branch, but the it actually is to past to anoter frame(and the benchmark code too)
11:54 timotimo might be
11:56 JimmyZ an frame always return a new object and past to another frame sometimes is not need, which can be optimized
11:57 timotimo ah, hmm
11:57 timotimo we do have an "is in sink context" thing inside our optimizer
11:58 timotimo i think the GLR will also cause a nice improvement to how sinking works
11:58 JimmyZ and that's why it said it needs tracing
11:58 timotimo it'd be moved out of the code-gen and into return handlers possibly?
11:58 timotimo i don't 100% remember
11:58 JimmyZ well, it's different thing, methinks?
11:58 JimmyZ sink context vs allocation sinking
12:01 timotimo i meant the "blocks have to return something" thing
12:01 JimmyZ I know nothing about perl6's sinking context :P
12:04 JimmyZ and I didn't see any context sinkin in the Rat type
12:04 JimmyZ *sinking
12:08 timotimo right, fair enough
12:09 timotimo it's a "big thing" in rakudo though
12:09 JimmyZ the luajit benchmark code is very much like the Rat type in rakudo
12:09 JimmyZ and I think the Rat type doesn't have context sinking
12:10 timotimo yes
12:10 timotimo i was talking about "the rest of rakudo" :)
12:11 JimmyZ I know :P
12:12 brrt aha timotimo
12:12 * brrt can look at b(lr)shift
12:12 timotimo thanks :)
12:12 brrt np :-)
12:13 timotimo and when i implemented reprname, i stumbled upon a segfault, but that's probably due to the multicache* stuff i botched rather than reprname itself
12:13 timotimo also, invokewithcapture? :)
12:13 brrt haven't had time for it
12:13 brrt if you just finish my distributed system course project for me, i'll fix the JIT, how about that
12:13 brrt ;-)
12:13 timotimo :D
12:14 brrt (which i'm doing on my own by now... o.O)
12:21 brrt timotimo - how to make a shift in nqp
12:22 timotimo nqp::shift?
12:22 brrt aha
12:23 brrt no
12:23 timotimo what are you looking for, exactly?
12:24 brrt a binary shift
12:24 brrt $x << 1 or so, that doesn't work
12:24 timotimo oh
12:24 timotimo +< in perl6
12:24 timotimo the op is called bitshiftl_i
12:25 brrt aha
12:37 lizmat_ joined #moarvm
12:40 lizmat__ joined #moarvm
12:44 brrt joined #moarvm
12:45 brrt have i cmplained about clang sufficiently yet
12:45 FROGGS brrt: yes :o)
12:45 brrt ok
12:45 brrt then i can skip it today
12:45 FROGGS *g*
12:46 lizmat joined #moarvm
12:49 lizmat_ joined #moarvm
12:53 lizmat joined #moarvm
13:10 brrt pff
13:22 itz joined #moarvm
13:37 dalek MoarVM: 6724ed6 | (Bart Wiegmans)++ | src/jit/ (2 files):
13:37 dalek MoarVM: JIT blshift_i and brshift_i
13:37 dalek MoarVM:
13:37 dalek MoarVM: Also small fix to make clang a bit happier
13:37 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/6724ed6194
13:37 brrt timotimo ^
13:38 lizmat_ joined #moarvm
13:45 timotimo <3
13:45 timotimo pretty much every single run of perl6 uses blshift_i because it's used when setting up moar op mappers
13:46 timotimo oh, shl and shr are correct?
13:46 timotimo i was convinced i'd have to use shld and shrd
13:46 brrt as far as i know they are ok
13:46 brrt shld is probably shift-left-doubleword
13:46 timotimo i believe so
13:46 brrt as in, 32 bit shift-left
13:46 timotimo well, "double precision"
13:46 timotimo should be 64bit
13:47 brrt but dynasm doesn't use op modifiers but argument modifiers
13:47 brrt so if you want to do that, you want to write shl eax, cl;
13:47 timotimo oh
13:47 brrt (cl is rcx lower byte)
13:47 timotimo well, that's good to know! :)
13:48 brrt and you only need to use 'm when accessing memory, because it is 'embedded' in the size of the register
13:48 timotimo 'k
13:49 kjs_ joined #moarvm
13:53 [Coke] Octover?
13:54 brrt octover?
13:54 timotimo quadrover?
13:54 brrt octoword :-)]
13:54 brrt and quadword
13:58 zakharyas joined #moarvm
13:58 [Coke] whoops, wrong window.
14:02 brrt :-)
14:12 [Coke] moarvm jit died today.
14:14 brrt wow
14:14 brrt i see
14:14 brrt hmmm
14:14 brrt can we bisect that
14:25 [Coke] brrt: sure, I can do that.
14:26 brrt thanks :-)
14:28 timotimo [Coke]: it would be enough to see if my fix commit for multicache* fixes it: https://github.com/MoarVM/MoarVM/commit/63f3285b53
14:37 [Coke] HEAD seems fine.
14:37 [Coke] (still running, but passing stuff)
14:50 bcode joined #moarvm
15:55 TimToady I would be very surprised to see any sinking in a value type like Rat, since the only purpose of sink is to trigger side effects.
15:56 TimToady m: 42; 43
15:56 camelia rakudo-moar 315ec6: OUTPUT«WARNINGS:␤Useless use of constant integer 42 in sink context (line 1)␤»
15:56 TimToady m: 1/42; 1/43
15:56 camelia rakudo-moar 315ec6: ( no output )
15:56 TimToady there's a missing diagnostic there
16:00 TimToady m: 42.1; 43.1;
16:00 camelia rakudo-moar 315ec6: ( no output )
16:00 TimToady well, probably a #perl6 issue now
16:01 FROGGS m: v42; v1
16:01 camelia rakudo-moar 315ec6: ( no output )
16:04 JimmyZ TimToady: yeah, we didn't expect to see any sinking in a value like Rat
16:06 JimmyZ Good night
16:06 FROGGS gnight JimmyZ
16:06 TimToady o/
16:14 FROGGS[mobile] joined #moarvm
16:34 kjs_ joined #moarvm
16:46 FROGGS joined #moarvm
17:33 lizmat joined #moarvm
17:49 FROGGS_ joined #moarvm
19:17 kjs_ joined #moarvm
19:32 Ven joined #moarvm
19:44 Ven joined #moarvm
19:50 timotimo damn it, building rakudos core setting gives me segfaults quite reliably now >_<
20:01 [Coke] timotimo: does it work with moarvm-recommended?
20:02 timotimo will try
20:03 timotimo it doesn't :\
20:05 timotimo i don't have local changes either
21:42 kjs_ joined #moarvm
22:34 colomon joined #moarvm
23:13 timotimo joined #moarvm

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