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 |