02:01 colomon joined 03:55 colomon joined 09:14 rurban joined 11:19 kjs_ joined 14:00 kjs_ joined, Ven joined 14:28 Ven joined 14:45 zakharyas joined 15:11 Ven joined 15:30 kjs_ joined 16:09 dalek joined 17:20 kjs_ joined 17:54 rurban joined 18:01 Ven joined
jnthn timotimo: fwiw, I've tended to find probabalistic profiles show up lock or interlocked operations hotter than instrumented ones do while using the Visual Studio tools. 19:22
I never figured out why and was assuming "Windows artefact", but it'd be curious if it showed up on Linux that way too.
timotimo hmm, mayhaps 19:23
how optimistic are you about perl6/rakudo performance in the next few weeks? do you have tips for JimmyZ for the alias analysis stuff he's been up to?
jnthn Well, this week I'll be quite distracted. :) 19:24
Next week I'm back home and should be ready to start digging back into things again.
I think I'm going to be focusing on 6pe and native arrays first. 19:25
Those will help performance for programs that can make use of them :P
timotimo is there anything i could try to do to prepare 6pe for you a tiny bit? 19:30
jnthn The most valuable thing would be to port what I did so far to, say, JVM. 19:32
Or even Parrot.
Thing is, much of what remains to do in Moar is related to the interaction of 6pe and bounded serialization. 19:33
Which is, uh...delicate. :)
timotimo oh lord! :P
jnthn Exactly. :P 19:34
timotimo both porting to jvm/parrot and the interaction ... :S 19:40
jnthn Well, the porting bit should be mostly mechanical 19:42
And there's tests in nqp/6pe to say if you got it right.
19:45 Ven joined
timotimo i'm frustratingly excitement-driven :\ 19:45
nwc10 6pe?
timotimo sixmodel parametric edition 19:46
nwc10 OK, "sixmodel parametric edition?" - that was the next thing to do for spesh?
FROGGS__ it is needed for NSA
nwc10 ah OK thanks 19:47
timotimo i think it's actually "parametric extensions"? 19:49
jnthn It was extensions :P
It's a small 6model extension that solves a bunch of painful things that bothered me for a while
Though in the relaxation excesses of the past couple of weeks and the work excesses of the preceeding weeks, I'd probably have to go look at my notebook to remember all of them... 19:50
FROGGS__ that's not a reason to call it six-pee though :o)
jnthn FROGGS__: Eww! In return for that I'm going to tell you to render it in German! :P
japhb At least you kept notes ....
jnthn japhb: This is true ;)
19:53 kjs_ joined 20:00 colomon joined
timotimo suggest something simple i could pour a bit of spare time into? 20:01
jnthn If you turn off spesh, Rakudo uses a bunch less memory. I think one of the memory sinks is that when we JIT, we also are still producing the optimized bytecode too. I don't know what, exactly, needs us to do that. But I think there's a potential multi-meg reduction on offer for fixing this. 20:03
Plus not producing the spesh'd bytecode we never use will be a time win too. 20:04
So I guess it's a case of (a) just try the easiest thing - don't produce it, and (b) untangle what breaks, if anything does
It *may* related to deopt tables being built in the code-gen phase.
But that feels a bit off... 20:05
I can't really think easily what it is
brrt++ may know
timotimo i'm not sure what you mean with "spesh'd bytecode we never use"?
jnthn When we do spesh today, I'm pretty sure if we JIT a frame we also produce the specialized bytecode to interpret 20:06
But if we have a successful JIT of it, we'll always choose that over interpreting
See src/spesh/candidate.c 20:07
MVM_spesh_codegen(tc, sg); is called; later, we try to JIT. We may want to try to JIT, and do the bytecode formation as a fallback.
jnthn hopes he's making some sense 20:09
timotimo oh, we don't use the bytecode as the source for the jit? 20:11
that's something i have not properly grokked so far
now it makes sense to me :)
jnthn We use spesh graph for both 20:13
timotimo that makes sense 20:14
do we throw out the spesh graph after we've jitted successfully, too? 20:15
jnthn Yes, that should be happening already. 20:18
In either case.
Otherwise I think we'd be leaking a good bit more.
japhb jnthn: What's the intended behavior if a thread tries to acquire the same semaphore more than once? (I'm writing Semaphore tests right now, as you may have guessed. :-) 20:19
timotimo i'll have a look-see, but for now i'll be AFK and commuting and sleeping :)
jnthn japhb: It's just asking for another permit 20:23
japhb jnthn: So it should succeed and decrement the available permits normally, then. Good, that's what I was hoping for.
jnthn japhb: Yes. That's different from ReentrantMutex, which - as the name hints - makes an already-holding thread re-acquiring the lock Just Work. 20:25
Or nestedly acquiring.
japhb right 20:27
dalek arVM: 7e95c05 | jnthn++ | src/6model/reprs/ReentrantMutex.c:
Make ReentrantMutex work out with serialization.
20:28
20:46 ggoebel111111117 joined 21:38 kjs_ joined 21:51 FROGGS[tab] joined 22:56 FROGGS joined 23:07 danaj joined 23:18 FROGGS joined