00:27 colomon joined
[Coke] timotimo: shorter to write -j 01:20
01:48 ilbot3 joined 02:19 _longines_ joined 02:21 JimmyZ joined 02:29 nwc10_ joined 02:30 orbus joined 02:42 colomon joined 03:07 nebuchad` joined 03:09 xiaomiao joined 03:13 harrow joined 03:17 TimToady joined 03:19 _longines joined 04:26 tokuhiro_ joined 04:30 dalek joined 05:20 ShimmerFairy joined 06:08 vendethiel joined, FROGGS joined 07:07 Ven joined 07:34 lizmat joined 07:56 lizmat joined 08:02 lizmat joined 08:11 lizmat joined 08:45 Ven joined 09:49 rarara joined 10:11 ShimmerFairy joined 10:13 Ven joined 10:42 brrt joined 11:16 Ven joined 11:51 Ven joined
brrt good * 11:55
jnthn o/ brrt 12:16
brrt how is today? :-)
brrt kind of has post-yapc start-of-academic-year blues 12:17
i don't want to start doing responsible things
nwc10 I am having massive difficulty concentrating 12:18
despite knowing what I want to do, and having a reasonably good idea how to do it
jnthn is still exhausted
Though I seem to be getting past the mental exhaustion some 12:19
Still some way to go on the physical, though feel notably icky today 'cus my guts have decided to be unhappy (a fairly typical delayed-reaction-to-stress thing for me) 12:20
brrt ah, that sucks
hope it get's better soon 12:21
jnthn Yeah. Means I need to eat boring stuff for a while
brrt gets
jnthn Though my wife insists it's not boring, but healthy :)
brrt in case you're not gluten-sensitive, i can recommend oatmeal :-)
yes, terribly hipster food, but also boring and healthy :-)
jnthn I'm not :)
brrt fortunately 12:22
jnthn Hm, I wonder if oatmeal stout also helps... ;)
brrt i'm not sure...
jnthn decides not to do that experiment
nwc10 jnthn: mine also do that after various foods, particularly some that I enjoy (eg Indian)
jnthn Oatmeal stout can be a very good drink, though.
brrt nwc10: re: the pypy / rpython thing. i've been sufficiently critical of that approach on other times 12:23
but at least the pypy guys themselves believe that their approach can be generalized to other systems
jnthn nwc10: I've eaten Indian at least once a week for 20 years, so it normally has little effect; in fact, in normal conditions Indian food (if not stupidly hot) tends to have a calming effect.
brrt surprisingly few other teams do, but i'm not sure what that says about whom
nwc10 could you clarify "that approach"? Something about how they don't see their project as a VM?
at least, the VM-like bit of their project not actually being a VM. 12:24
brrt well, it seems to me they have succesively tried to abstract away from the icky bits of writing a VM and JIT
nwc10 (nothing wrong with PyPy. Just how they self-describe)
brrt and wrote a meta-meta-meta-compiler-vm-jit thingy that ultimately resolves to a (very decent) JIT+interpreter system 12:25
so yeah. it's great for them. but i don't think it's been a practical approach 12:26
nevertheless, they're years ahead of us
nwc10 for now. We can iterate configure/build/test cycles much faster than they can. 12:28
brrt yes. and we've access to the papers written in the meantime :-) 12:31
nwc10 what I'm also curious about is that the pypy release rate has slowed down. 12:34
Now we have 2.6.1 about 3 months after 2.6: morepypy.blogspot.co.at/2015/08/pyp...eased.html
we used to have 2.$n+1 about 3 months after 2.$n
brrt well, they're 10 years old or so 12:35
nwc10 not sure if they're scared of reaching 2.7
let alone 2,8
brrt so they must have had a slower release date earlier
nwc10 er, 2.8
brrt hmm, yeah, i guess i can see why not :-)
12:45 Ven joined
brrt we're halfway through compiling a single 170-node expr tree 12:50
as a wise man once said, 'brrt, your assumptions suck' :-P 12:53
FROGGS *g*
brrt one of the things that i still want to do, is convert the tree structure back to linear structure, interleaved with 'special' tiles that do al the labelling magic now 12:57
timotimo o/ 13:00
dalek arVM/even-moar-jit: 821738c | brrt++ | src/jit/ (3 files):
Fix a set of register allocator bugs
13:07
brrt \o timotimo
jnthn
.oO( If you made the same bug twice, would you be disciplined enough to say you fixed a bag of bugs? )
timotimo brrt: how can you tell how far the compiler makes it? when i try to run something that uses it, i end up with a very unhelpful stack trace inside gdb :) 13:08
well, i *could* probably disassemble and have a closer look, but ... enh
brrt well, the compiler makes it to the end if it doesn't burn into flames 13:09
so you don't have to worry so much about that
(i'm not sure if i would jnthn)
anyway, i do actually disassemble and inspect registers and stuff 13:10
i have a little gdb script that sets up moar+nqp for me
timotimo you as the jit author are expected to :)
me as a "be amazed and cheer from the sidelines" type of person ... not so much :))
brrt yeah, i kind of expected that 13:11
hmm 13:12
oh, and i have MVM_JIT_BYTECODE_DIR set obviously
timotimo of course :)
i bet the generated code already looks a lot nicer than the old code used to :) 13:13
what with all the repeated loads and stores partially removed :)
brrt 'a lot' - i'm kind of sceptical there 13:14
also
there's a bug in the kitchen
as in
timotimo an insect trying to nom all your food? 13:15
brrt i'm fairly sure i never do [reg1+reg2*4+0x48]
timotimo hm
brrt no, these are just my rats....
timotimo :)
brrt ok, i see 13:16
timotimo i forgot, we don't have common subexpression elimination, right?
so the code is possibly a bit bloated at the moment? because we duplicate things all the time so we can properly tile the tree?
brrt we don't have CSE, indeed 13:20
yes, our tree is bloated
no, that isn't to help tiling
actually
we do duplicate nodes to resolve tile conflicts 13:21
but that's not the same as lacking CSE
timotimo mhm
well, CSE would help that, i imagine 13:22
that's why i lumped them together
brrt yeah, CSE could do nice things 13:23
one of the nicer things still is to automatically order computations shared between branches before the branch
timotimo ah, invariant code hoisting or something like that 13:24
brrt it's a correctness issue. code hoisting is also really cool but i'm not sure if most effect would not be had at the spesh level 13:25
jnthn Possibly. 13:27
brrt looks like i have another code-generation bug on my hands
jnthn Me too :) 13:28
Though mine is the QAST -> JAST one I think others already banged their heads against for 10 hours... 13:29
brrt fun times :-) 13:37
FROGGS no.
jnthn wtf 13:38
Yeah, it's odd alright
FROGGS hehe
timotimo jnthn: did you know the optimizer has a flag called "flattened" that "incorporate_inner" expects to be set if an inner block has been flattened, but we only initialize it to 0, never set it to 1? :) 13:39
sadly, setting it after having done a flattening operation reveals a problem that has been hidden before :| 13:40
FROGGS timotimo: do not disturb him nao!
timotimo oh
FROGGS :D
jnthn timotimo: I suspect that's a case of "I stole the logic from NQP but didn't get so far as making it work as well as NQP" :)
timotimo right, i just expected a short comment about it
jnthn FROGGS: With the JVM build times I've all the time in the world :P
FROGGS jnthn: hehe
jnthn It really does seem to get the tree for the entire CORE.setting just about 13:41
timotimo jnthn: with my lex-to-loc branch it's even worse; there seems to be some oversharing going on that causes a QAST::Var to be turned into a local in a block that's in some totally different place :| 13:42
jnthn What's really odd is that it shouldn't get that far
Because nqp::p6configposbindfailover isn't implemented for the JVM
But it should blow up saying so
FROGGS ohh 13:43
jnthn Somewhere along the way
Not get to the end and have a null
FROGGS jnthn: how did you find out that this op is not implemented? 13:45
jnthn FROGGS: I didn't; I just knew it was the only added op, and was in that code a moment ago fixing the multi-dispatcher, and thought to search for it and found it's missing on JVM :/ 13:47
I'm currently trying to work out why it didn't explode
rarara For me, it is surprising that they Pypy people claim an improvement on simple cycles which sum two vectors using SIMD. I did many tests douring my phd and that didn't work. Check for instance this gist.github.com/anonymous/7dca6d4b7dbd12c19fb4 (gcc -S -mavx -std=gnu99 -O3 source.c) the nonparallelized run is faster for me; I don't think i'm making errors 13:48
(-S is for see code, run gcc without to compile) 13:51
Non optimized, passed 0 sec and 450765901 nanosec Optimized, passed 0 sec and 467647205 nanosec Result checked! 13:52
FROGGS jnthn: do you also observe that we hit the CATCH block twice in as_jast(QAST::Op ...)? 14:13
jnthn FROGGS: I decided to work on getting JVM closer to working with GLR rather than investigating the error reporting issue 14:15
(The latter is worth doing but with something rather smaller than CORE.setting ;))
FROGGS jnthn: np, I can do that :o)
jnthn FROGGS: OK 14:17
FROGGS: I'm about to push a patch that clears up the JVM guts-y code some
And adds throws to point out code that needs updating
(rather than it exploding with odd errors) 14:18
Do you want to take on filling those few bits out?
.oO( Or is FROGGS not going to answer that until I've actually ended up doing them... :P )
14:27
FROGGS *g* 14:35
I can take over filling holes I think
15:20 FROGGS[mobile] joined, ShimmerFairy joined 15:26 psch joined 15:53 FROGGS joined 16:25 Ven joined 17:17 Ven joined 17:50 Peter_R joined 17:54 tokuhiro_ joined 18:31 vendethiel joined 18:55 tokuhiro_ joined 20:14 brrt joined
brrt rarara: my suspicion is that this is related to a fewer total number of iterations in the vectorized case for pypy 20:14
i.e. the iterating loop isn't totally optimal, hence reducing the iterations increases the performance 20:15
20:16 tokuhiro_ joined 21:06 lizmat joined 21:22 lizmat_ joined 21:55 lizmat joined 22:01 psch joined 22:17 tokuhiro_ joined 23:03 FROGGS joined 23:19 Peter_R joined 23:35 FROGGS joined