jnthn Time for some sleep; 'night 00:02
00:56 woosley joined 02:56 FROGGS_ joined 07:38 FROGGS joined 07:56 zakharyas joined 12:13 brrt joined 13:58 btyler joined 14:04 jnap joined
brrt jnthn - i'd like to report that while i'd be excited to work on MoarVM JIT-compilation for GSoC this year, i feel a bit too stressed to write a good proposal 14:06
thats not an excuse, by the way :-)
nwc10 write the best proposal you can, before the deadline 14:07
more
IIRC, it's acceptable to resumbit proposals, until the deadline, isn't it?
so write the best you can today 14:08
and then resubmit the best you can tomorrow
and Friday :-)
jnthn brrt: Write a quick draft and pass it over to me; I can help pimp it out a bit. 14:09
brrt …. okay :-)
i will do that
can i use your git commit e-mail adress?
address
14:10 jnap joined
jnthn yes 14:10
brrt i'll give it a shot 14:11
timotimo best of luck! :) 14:12
jnthn :)
FROGGS from me too!
brrt thanks :-)
jnthn today really didn't work out as planned :/
FROGGS :/
brrt that happens :-)
FROGGS jnthn: what is wrong(ish) ?
jnthn FROGGS: Some epic fail where $dayjob trying to get me faster phone internets ended up with me having a non-working phone, just days after my adsl router at home died, and I've been away so didn't have chance to get one... 14:14
So I actually came into the office for once. 14:15
I'm vaguely exhausted after the last weeks travel/teaching, though... 14:16
FROGGS :/
brrt wonders if there is a sympathy emoticon 14:23
JimmyZ :<) 14:24
jnthn I'm taking a small mostly-offline vacation this weekend; hopefully that'll do something good for my energy levels. :) 14:35
timotimo yay :)
jnthn Anyway, will cut the Moar release later this evneing so it's done in time for the Rakudo monthly :)
The concurrency stuff won't make it, sadly.
The parallel GC bug is genuinely hard. 14:36
(I'm not worried if a non-tired me can fix it, but today we've got a tired me. :))
timotimo that's okay
jnthn It's basically that when it passes stolen work about, it sometimes loses it. 14:37
FROGGS sadly we (all of us humans) can't relax and work in parallel :o)
JimmyZ you need i7 in your brain :P 14:38
14:41 jnap1 joined
brrt jnthn - i may be able to take a look later today 15:21
jnthn brrt: OK. :)
brrt whats the issue? 15:22
i.e. github issue
jnthn brrt: Wait, what are you asking about?
I thought you meant your JIT proposal :)
brrt as well, i mean the parralel gc :-)
i'll make the proposal first
jnthn Oh!
Yeah, help there is welcome. And I think we'll want algorithmic improvements in the future too; the current thing is meant to be "simple but works" :) 15:23
brrt but i've got a feeling i'll have to deal with the gc anyway :-)
jnthn Yeah, JIT can't be completely ignorant of it, though we should do that to the degree we can :)
brrt is there any other way? :-p
jnthn Sadly, GCs seem to seep into quite a few places in a VM. 15:24
At least, any interesting GC will.
(Due to write barriers, moving, etc.)
brrt … i thought about it, and i think that a vm has really only two 'real' jobs - memory management and callframe management 15:32
all actual instructions can in principle be replaced with add :-) 15:33
… maybe that is an overstatement, but most of them
jnthn Well, the REPR/meta-object split separates memory management from things like dispatch and type checking, for the "VM needs to own that bit" reasons. 15:35
brrt type checking, too 15:36
?
jnthn sorry, that sentence was hard to parse
I meant the REPR concerns are things the VM needs to handle
Dispatch and type checking can be much more loosely coupled to the VM. 15:37
Much potentially polymorphic code is actually monomorphic, meaning that you can go a long way with optimization without having much awareness about any kind of subtyping relation in the VM. 15:38
Well, that's my claim anyway. :P
brrt my claim would be that virtual method dispatch is probably one of the cheaper things a modern vm does 15:39
jnthn Yeah; the choice is how hardcoded "virtual" and "method" and "dispatch" are... 15:41
Much of the reson for invokedynamic in the JVM is that invokevirtual and invokeinterface are two very narrow ways of saying, "I dunno what we'll call". 15:42
brrt what does invokedynamic do, exactly? 15:44
jnthn Lets you write code that does the figuring out of what to call. 15:45
And then provides ways to convey to the VM how stable that decision is.
And ways to invalidate it and trigger de-opt in the future 15:46
I did some talk on it at some point... 15:47
brrt ok, very interesting 15:48
6model's HOW does the same thing right? 15:49
jnthn kinda 16:03
I gotta go
bbl...if I can fix some internet
jnthn will try at least two ways
& 16:04
brrt :-) 16:24
17:59 FROGGS joined 18:52 tgt joined 19:54 brrt joined 20:02 btyler_ joined 20:07 FROGGS_ joined
brrt ok, i'm out of ideas - what kind of things do we need to do to build a JIT compiler 22:06
i guess it depends on the way we want to use it 22:07
something like dalvik just tosses a few ASM fragments together for the interpreter runloop
which is then executed simply by jumping 22:08
hoelzro does LuaJIT list its JITy features? 22:10
it's probably one of the more advanced JITs out there
22:10 woolfy joined
brrt actually, good question 22:21
i don't know
they have papers i think 22:22
hoelzro bam: article.gmane.org/gmane.comp.lang.l...eral/58908 22:23
taken from luajit.org/faq.html 22:26
brrt yes, luajit is really impressive
japhb__ Reliable coredump in perl6-debug-m, doesn't occur on other backends: 23:20
$ perl6-debug-m -e 'sub MAIN(*@a) { }' foo
>>> LOADING -e
Segmentation fault (core dumped)
Annoying since I was about to debug why a little program was giving the wrong answer only on perl6-m ... :-( 23:21
This is from a standard build this afternoon, not old or on a branch or anything. 23:22
Weirdly, perl6-debug-m doesn't seem to know its own version: 23:23
$ perl6-debug-m -v
This is perl6 version built on MoarVM version 2014.02-124-gff01095
Whereas standard perl6-m does:
$ perl6-m -v 23:24
This is perl6 version 2014.02-117-g01d16c2 built on MoarVM version 2014.02-124-gff01095
.tell jnthn Segfault and oddness in perl6-debug-m; see irclog.perlgeek.de/moarvm/2014-03-19#i_8463775 23:25
Bah, no yoleaux.
jnthn japhb__: Ugh. Wonder what that SEGV is... 23:36
japhb__ jnthn: It only happens when there are args, and only for the debugger, so I'm guessing a simple bug there ...? 23:37
jnthn japhb__: I suspect it won't be hard to find. 23:40
jnthn pulls latest master to hunt it 23:49