Perl 6 - the future is here, just unevenly distributed

IRC log for #moarvm, 2014-10-20

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

All times shown according to UTC.

Time Nick Message
00:07 garyaj Anyone else have a Parallella board and wanting to port moarvm/P6 to it?
00:07 colomon joined #moarvm
00:08 garyaj rakudobrew installs the ARM version on the companion Zync chip. The trouble is getting it to use the Epiphany 16-core coprocessor.
00:09 garyaj s/Zync/Zynq/
00:46 _sri_ joined #moarvm
03:11 _sri_ joined #moarvm
04:32 avuserow joined #moarvm
04:46 ggoebel11111115 joined #moarvm
05:02 avuserow joined #moarvm
05:24 avuserow joined #moarvm
06:24 FROGGS joined #moarvm
07:00 zakharyas joined #moarvm
08:32 kjs_ joined #moarvm
09:59 kjs_ joined #moarvm
11:27 garyaj left #moarvm
11:33 brrt joined #moarvm
11:33 brrt \o
11:34 brrt timotimo: invokewithcapture is actually really simple
11:46 timotimo Oh cool
11:47 timotimo I did not even bother to look at what it takes to implement it
11:48 timotimo how do you feel about a vastly simplified register allocation scheme that only removed load instructions if the data we want is still in a register?
11:48 timotimo seems like a waste of time?
11:50 timotimo I've been told emitting loads of redundant loads and stores is pretty much worse than Hitler
11:51 FROGGS O.o
11:51 tadzik :D
11:53 timotimo best car you hit the proper caches, average case you could just as well insert fence ops everywhere
11:53 timotimo OSLT
12:03 brrt i feel that would be a good idea, yes
12:04 brrt about the relative badness compared to well-known violent dictators, i'm not sure
12:04 brrt but, are you talking about the JIT right now?
13:28 timotimo yes
13:29 timotimo well, eliminating set ops would also help if we do it in spesh
13:30 timotimo but even if we have no redundant set operations, we will still be loading and storing values to ram all the time
13:31 timotimo I wonder if there is any value at all to making register allocation on the mvm frame level align values to cache lines oslt
13:31 timotimo as in have the parameters to an op in a different line than the result
13:31 timotimo I have no idea what I'm talking about
13:34 brrt well, that's good, because neither have i :-)
13:34 brrt basically, we run into 'we-can't-do-register-selection' argument still
13:34 brrt register selection is a prerequisite for register allocation in any fashin
13:34 brrt fashion
13:34 brrt so
13:34 brrt but otherwise such a scheme as you mentioned is really simple
13:35 brrt textbook simple in fact
13:35 brrt :-)
13:38 timotimo did i explain that scheme yet? just kicking out the loads after stores and just emit a register-register mov instead of a heap-register mov?
13:40 brrt you don't even need to do a register-register mov
13:40 brrt i mean, if it is in one register, and you're going to move it to another register, why move it at all
13:40 brrt just use the old register instead of the new one
13:41 JimmyZ joined #moarvm
13:42 timotimo we can't do that with dynasm :)
13:42 timotimo not yet
13:42 timotimo that's why i'm suggesting it could be a waste of time
13:45 brrt well.... it should be relatively simple to add to dynasm
13:45 brrt 'relatively'
13:55 kjs_ joined #moarvm
13:57 timotimo what are we waiting for? ;)
14:03 moritz tuits? motivation? inspiration?
14:07 timotimo of course :)
14:09 brrt tuits
14:09 brrt i'm rather busy with a java project, of all things
14:09 brrt a pretty cool java project, i might add, but still
14:14 timotimo that's fair
14:15 brrt and the next thing is, even if we have that, it'll be a pretty big rework of the way the JIT works until we can use it
14:15 brrt that's ok, but it requires yet more tuits
14:16 * JimmyZ still wonders how luajit does it :P
14:23 brrt luajit ahas it's own highly specialised bytecode emitter
14:23 brrt luajit doesn't actually use dynasm to generate the bytecode
14:25 JimmyZ after luajit 2.0?
14:25 brrt yeah i'm referring to luajit-2.0
14:27 JimmyZ yeah, I know luajit 2.0 is written by hardcode asm
14:27 JimmyZ and using dynasm compile it
14:28 * jnthn waves from Malaysia, land of good food to eat and big lightning storms to get caught out in. :)
14:29 JimmyZ jnthn: I will go to Malaysia , will next month :P
14:29 JimmyZ s/,will/, maybe/
14:29 jnthn JimmyZ: Enjoy ;)
14:29 brrt \o jnthn
14:30 jnthn I'm just here for a few days. I've already found more restaurants I want to eat at than I have meals to find... :)
14:30 [Coke] good problem to have!
14:30 jnthn Yes!
14:30 JimmyZ Are you in Kuala Lumpur?
14:30 jnthn Aye.
14:31 timotimo o/ jnthn
14:32 jnthn o/ timo
14:33 brother joined #moarvm
14:33 timotimo jnthn: imagine this: remember how my game has an acceptable framerate?
14:33 brrt what
14:33 timotimo turns out i've been using software rendering the whole time
14:33 brrt :-D
14:34 brrt you /did/ give me work for the JIT though
14:34 brrt which is something i'm happy about
14:34 timotimo a bit :)
14:34 timotimo so not only did i get to a passable framerate with perl6, but it also had the extra penalty of rendering every frame in software
14:38 jnthn Oh...so when you use hardware acceleration your framerate pressure goes away? :)
14:39 timotimo er ...
14:39 timotimo it's not as easy as that
14:40 jnthn Dang :)
14:40 timotimo i'm going to have to switch from "GTK and using Cairo to draw the whole frame" to "Cairo renders sprite sheets and SDL2 composits the scene onto the screen",
14:40 timotimo at least that's what i've decided to do
14:41 timotimo it's surprisingly hard to get an opengl-backed cairo to work if you want to not use XGL, WGL, CGL, EGL, ...
14:41 timotimo so instead of trying to have a hardware accelerated cairo, i'm going to pre-render stuff in software and just move the already-pretty sprites over the screen with supersonic speeds using OpenGL
14:43 jnthn Neat. Have fun! ;)
14:46 hoelzro moarning #moarvm
14:47 brrt \o hoelzro
14:48 brrt timotimo: what you can do simply is to make so-called 'register descriptors' which describe the contents of the cpu registers and 'address descriptors' which describe the addresses of any given value at any given time in the execution
14:58 timotimo that's probably what i've imagnied
14:59 brrt :-)
14:59 brrt anyway, that's doable
15:00 timotimo so that part may be salvagable for when we actually have register selection
15:00 brrt it does complicate a lot of things, though
15:01 timotimo well, yeah
15:01 brrt the jit graph has to be developed as an actual (directed acyclic) graph, rather than a linked list (as it is now)
15:01 timotimo oh damn :(
15:02 timotimo you're making this sound less and less interesting :P
15:02 timotimo don't make it sound like actual work!
15:02 brrt and anyway, you'll still - currently - spend a lot of time in MVM_frame_inc_ref and MVM_frame_decr_ref
15:02 brrt hey, it's fun work
15:02 brrt :-)
15:02 brrt but yeah, i'd admit i'd feel a bit better if i had another bout of gsoc-style tuits for it
15:03 timotimo .o( we could guard against "are multiple threads running" and deopt away from a fence-less/atomic-less inc_ref/dec_ref
15:03 brrt that won't help that much
15:03 brrt basically 'frame allocation is expensive in moarvm' is one of our greater performance-wise problems
15:03 timotimo hmm
15:03 hoelzro is there a good way to inspect a P6Opaque from within MoarVM?
15:03 brrt or perhaps not allocation, but jumping-between-frames is
15:04 brrt hoelzro - i don't think there is an easy way, no
15:04 hoelzro =(
15:04 JimmyZ .oO(GCI...)
15:30 * brrt afk. will try to look at invokewithcapture tonight, but i'm not promising anything
16:03 kjs_ joined #moarvm
16:12 odc joined #moarvm
17:07 vendethiel joined #moarvm
18:00 Ven joined #moarvm
18:22 FROGGS joined #moarvm
18:36 kjs_ joined #moarvm
19:07 kjs_ joined #moarvm
19:30 brrt joined #moarvm
20:10 kjs_ joined #moarvm
20:11 brrt energy levels are not sufficient for great implementations today
20:15 Ven joined #moarvm
20:24 brrt left #moarvm
20:29 dalek MoarVM: b375d61 | (Bart Wiegmans)++ | src/jit/emit_x64.dasc:
20:29 dalek MoarVM: Panic rather than throw for JIT errors
20:29 dalek MoarVM:
20:29 dalek MoarVM: It makes no sense to throw an exception, they might be caught.
20:29 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/b375d61c24
21:09 kjs_ joined #moarvm
21:37 kjs_ joined #moarvm
22:03 kjs_ joined #moarvm
22:06 colomon joined #moarvm
22:36 camelia joined #moarvm
22:48 colomon joined #moarvm

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