Perl 6 - the future is here, just unevenly distributed

IRC log for #moarvm, 2015-07-22

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

All times shown according to UTC.

Time Nick Message
00:13 lizmat joined #moarvm
00:57 lizmat joined #moarvm
04:28 vendethiel joined #moarvm
05:00 FROGGS joined #moarvm
06:00 FROGGS joined #moarvm
07:04 nebuchadnezzar joined #moarvm
07:14 FROGGS joined #moarvm
07:32 Ven joined #moarvm
07:36 lizmat joined #moarvm
07:48 oetiker_ joined #moarvm
07:48 zakharyas joined #moarvm
07:51 oetiker joined #moarvm
07:56 brrt joined #moarvm
08:50 JimmyZ_ joined #moarvm
09:43 brrt hey, about the JIT... something I was looking into yesterday; how to define the registers in a machine-indepndent way
09:43 brrt hmm
09:43 brrt never mind
09:43 jnthn Make it work on one machine first :)
09:44 brrt yeah, exactly that :-)
09:44 brrt i think the important abstraction is probably the idea of register classes
10:21 FROGGS joined #moarvm
10:32 JimmyZ__ joined #moarvm
11:34 Ven joined #moarvm
11:47 JimmyZ_ joined #moarvm
11:48 Ven joined #moarvm
12:25 Ven joined #moarvm
12:40 brrt oh, there is a pretty nice circularity, for you (and me) to ponder
12:40 brrt see, there's the issue of representing stores to locals
12:41 brrt if you regard the moarvm opcodes literally, they form statements
12:41 brrt e.g. add is r0 = r1 + r2
12:43 brrt the expression tree 'expressifies' the calculation; it just says 'the value of r0 is calculated by (add r1 r2)'
12:43 brrt the assignment is implicit, left out
12:43 brrt for correctness, they have to be added somewhere
12:44 brrt (the assignments, that is)
12:44 brrt actually, that's not true; they can be left out of the tree altogether, and have the value-management layer insert stores as needed
12:45 brrt *however* and this is where i'm probably thinking ahead further than is proper
12:45 brrt ideally you do represent them in the tree, because then the instruction-selector can take them into account
12:46 brrt i.e. if r0 equals r1, the best way to compile it is: add [address-of-r0], r2
12:47 jnthn Well, to me it's more like "there are points where the assignment to the real register is demanded"
12:47 brrt (timotimo added that to the current JIT some time ago)
12:47 brrt getting to it
12:47 jnthn Where by real I mean the VM callframe
12:47 brrt :-)
12:47 brrt right, that thing :-)
12:48 timotimo did i break something?
12:48 brrt no, you made something
12:48 timotimo ooooh
12:48 brrt well, there is that matter
12:48 timotimo i don't remember that at all! ;)
12:49 timotimo oh, right, having add directly add into a memory location
12:49 timotimo i remember that
12:49 timotimo i have no idea if it was worth anything at all, though
12:50 brrt the circularity is that you want to store values, at latest, when you run out of registers to hold them
12:50 brrt however, you only know how much registers you need after tiling (or perhaps during tiling)
12:51 brrt similar arguments apply to full spills induced by e.g. function calls
12:52 jnthn Why is it a circularity? I see the stores we place becuase of deopt/calls/barriers as "constraints"
12:53 jnthn You can introduce extra stores ahead of the constraints if you need to for spilling
12:53 jnthn And when you hit the constraint point you can know you already spilled
12:54 jnthn And if not, you'd better spill here.
12:54 brrt the circularity is that you want to use the store information during tiling, but you might add stores after tiling, during register allocation, or (at earliest) during tiling
12:54 brrt because only during tiling do you know how much registers you're using
12:54 jnthn ah
12:55 brrt but i agree on the constraints
12:55 brrt hmmm
12:55 jnthn I note that the spills you do for CPU register allocation could be handled in The Usual Way by spilling to the C stack, however, 'cus you know that by the time it really matters where they are you'll have done a real store.
12:56 brrt yes
12:56 brrt that is true
12:59 brrt that's probably a good strategy, albeit a bit complex
13:00 jnthn Less complex than the problem you're already facing? :)
13:02 brrt a bit :-)
13:02 brrt ok, rephrased that way
13:03 brrt the question is then to add stores (and loads) to the tree in a way that is compatible with restraints
13:03 brrt eh, constraints :-)
13:04 jnthn *nod*
13:04 brrt gives you the possibility for both having and eating cake
13:04 jnthn I think we will want to handle deopts in the same tail-y way as write barriers too, fwiw.
13:04 brrt aye
13:04 Ven joined #moarvm
13:05 jnthn So if you never deopt or hit a write barrier, then you'll never branch off the "main" code
13:05 brrt invokish and throwish nicely translate themselves to node types, fwiw :-)
13:05 jnthn Which is great for cache locality and branch prediction and so on.
13:06 * brrt nods
13:07 jnthn My hope in this is that we'll reach a point where simple integer loops working with native integer arrays and doing math ops will basically be able to run and run without needing to every write back to the MoarVM registers :)
13:07 jnthn *ever
13:07 brrt yever
13:07 brrt eh
13:07 brrt braino
13:07 brrt yes
13:08 jnthn 'cus we'll have re-written the array accesses in to primitive things too.
13:08 timotimo oh, i didn't merge profile_native_calls yet
13:08 jnthn Of course, we still have to do the "must we GC" backbranch check.
13:08 jnthn That's another of those taily things I guess.
13:08 brrt i think you'll argue for tailing them to
13:08 brrt too
13:08 brrt hmmm
13:09 jnthn Yeah, in fact your only non-tail ones are C function calls :)
13:09 timotimo i don't think anything speaks against profile_native_calls
13:09 brrt ok, i have to scribble this stuff down somewhere
13:18 * JimmyZ_ 's hope is that the point class benchmark is as fast as luajit( speaking of one's hope) ????
13:22 [Coke] Will the first version of brrt's new jit work on 64bit os x?
13:23 jnthn [Coke]: I don't see why not, in so far as it should work everywhere the current JIT is. In practice, it's easy to make a platformo when working at this level.
13:23 [Coke] sweeeeeeet.
13:23 [Coke] thanks, groovy moar devs.
13:26 Ven joined #moarvm
13:27 brrt [Coke]: yes, OS X just uses the POSIX ABI, so everything should just work
13:27 brrt i'll guarantee we're nowhere near luajit soon :-)
13:28 brrt i need a whole lot more summers for that ^^
13:28 timotimo :S
13:32 brrt well, what did you expect? :-)
13:32 brrt luajit is really *blazingly* fast
13:33 brrt ... consider that luajit was written when lua was a mature language; perl6 has yet to have it's first release
13:34 * JimmyZ_ agrees
13:37 jnthn wow, 200g of chilis is a larger amount than I realized...
13:37 jnthn uh, ww
13:39 JimmyZ_ ????
13:45 timotimo don't put them all in your mouth at the same time :)
13:45 jnthn My mouth isn't actually big enough for that amount :P
13:46 timotimo :)
13:50 brrt the difficulty probably lies with the chemical contents rather than the quantity
13:52 timotimo well, there are people who have built up a significant tolerance for spicy food
13:52 timotimo and as far as i know, jnthn likes spicy food
13:52 timotimo i eat spicy food so rarely that even mildly fiery food gives me a hard time :|
13:53 jnthn My tolerance is relatively high, yeah.
13:53 jnthn I think so far I've only been served one dish that was just too hot to really enjoy eating.
13:53 FROGGS_ joined #moarvm
13:55 jnthn I cooked one that came close to that too, but thankfully it landed just on the "pleasantly extremely spicy" side :)
13:55 jnthn (A friend grew naga jolokia at home, and gave me a couple of cook with :))
13:57 * [Coke] just found this wonderful spicy relish called wickles that he's putting on everything these days.
13:59 timotimo i'm convinced that the way spicyness is experienced by people who enjoy spicy food must be severely different from the way i experience it >_>
14:00 * JimmyZ_ eats spicy food too
14:01 jnthn timotimo: It's even more complex than that; there's different natures of spicy.
14:01 timotimo i haven't been able to distinguish/notice yet
14:02 jnthn It's most noticeable in Sichuanese food compared to Indian food; the spices in the former actually numb the mouth, whereas the latter don't.
14:04 JimmyZ_ there are different spicy food in different province of china.
14:04 jnthn JimmyZ_: Oh, indeed; I was just calling Sichuanese out as one that had a notably different nature of spicy :)
14:04 JimmyZ_ sichuanese food is one of provinces
14:04 JimmyZ_ yeah.
14:05 jnthn I like it, but it's certainly different.
14:05 JimmyZ_ little is ok
14:05 jnthn A good mapo tofu doesn't need more than a little :P
14:05 JimmyZ_ little spicy I mean????
14:10 jnthn Oh man. It's touching 40C here today. That's nuts.
14:12 brrt :-o
14:12 brrt it's only 25C here
14:13 jnthn Yeah, it'll be more like that tomorrow.
14:15 timotimo we'll be almost reaching 35 again today
14:15 timotimo actually, that peak is right around now
14:15 brrt didn't we discuss a few weeks ago how prague (assuming that's where you are) didn't get that hot
14:15 timotimo tonight there'll be some rain, which is nice
14:16 jnthn brrt: Yes; this is somewhat unusual from the climate charts I've seen.
14:18 lizmat joined #moarvm
14:31 dalek MoarVM: 499d4c2 | timotimo++ | / (12 files):
14:31 dalek MoarVM: add special support for nativecallinvoke to profiler
14:31 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/499d4c2eff
14:31 dalek MoarVM: b0e6608 | timotimo++ | src/profiler/profile.c:
14:31 dalek MoarVM: fix output of profiler wrt. native function names
14:31 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/b0e6608362
14:31 dalek MoarVM: 08fe286 | timotimo++ | / (13 files):
14:31 dalek MoarVM: Merge remote-tracking branch 'origin/profile_native_calls'
14:31 dalek MoarVM:
14:31 dalek MoarVM: This gives us entries for functions called inside native
14:31 dalek MoarVM: libraries for the profiler and lets us more accurately
14:31 dalek MoarVM: measure the overhead NativeCall has.
14:31 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/08fe2863fc
15:09 timotimo i wonder why Ops.p6 wasn't checked in at all so far
15:09 timotimo was that on purpose?
15:20 JimmyZ_ joined #moarvm
15:58 rudi_s joined #moarvm
16:02 Ven joined #moarvm
16:42 lizmat joined #moarvm
17:30 lizmat joined #moarvm
17:48 lizmat joined #moarvm
18:13 lizmat joined #moarvm
18:30 lizmat joined #moarvm
18:40 brrt joined #moarvm
18:52 brrt ugh, i almost understood how to implement tiling today
18:52 brrt i've forgot again
18:56 brrt had.. something something to do with state transfers during inorder traversal
18:58 colomon joined #moarvm
19:00 brrt and state resolution during postorder traversal
19:11 colomon joined #moarvm
19:12 colomon joined #moarvm
19:38 brrt oh, i see
19:44 brrt bbiab
19:56 brrt joined #moarvm
19:59 jnthn For anyone curious about the fate of some of the 200g of chillies mentioned earlier today - they went into making a very satisfying vegetable curry :)
19:59 brrt hmmm, sounds nice
20:00 jnthn It was, depite me misreading the recipe and doing tablespoons instead of teaspoons of a bunch of the spices. :)
20:00 brrt lol
20:00 brrt maybe the teaspoons were too conservative
20:00 jnthn Yeah, for my tastes they certainly were.
20:01 jnthn I'd not really tone it down much at all if I was making it just for me again.
20:01 jnthn Soon I'll be cooking for my wife also, though, and then I'll probably have to follow the recipe. :)
20:01 jnthn (Her tolerance is a good bit lower than mine....so far ;))
20:03 jnthn While I'd love to hack on stuff here, I probably should try and get the $dayjob course exercises off my plate...
20:04 jnthn Or further off the plate...
20:05 brrt :-)
20:05 brrt btw, i finally got it
20:05 jnthn The tiling thing?
20:05 brrt had to spend some time in the library, but, yes
20:05 brrt you'll like to hear that i'll have to write another preprocessor :-)
20:06 brrt fortunately, i can probably reuse the sexpr parser
20:06 jnthn What is it with compiler writers and writing compilers... :P
20:07 brrt it's a habit
20:12 brrt just can't stop :-)
20:12 jnthn :-)
20:15 vendethiel joined #moarvm
20:31 colomon joined #moarvm
20:43 colomon joined #moarvm
20:50 colomon joined #moarvm
21:18 lizmat joined #moarvm
21:31 lizmat joined #moarvm
21:36 lizmat joined #moarvm
21:43 Peter_R joined #moarvm
21:56 colomon joined #moarvm
22:01 vendethiel joined #moarvm
22:27 timotimo wow, more preprocessors %)
22:27 timotimo with new source data, as well?
22:42 TEttinger joined #moarvm
23:47 dalek joined #moarvm

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