Perl 6 - the future is here, just unevenly distributed

IRC log for #moarvm, 2016-01-13

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

All times shown according to UTC.

Time Nick Message
02:47 ilbot3 joined #moarvm
02:47 Topic for #moarvm is now https://github.com/moarvm/moarvm | IRC logs at  http://irclog.perlgeek.de/moarvm/today
05:31 vendethiel joined #moarvm
06:46 virtualsue joined #moarvm
07:06 virtualsue joined #moarvm
07:11 domidumont joined #moarvm
07:17 domidumont joined #moarvm
08:06 Ven joined #moarvm
08:08 FROGGS joined #moarvm
08:15 Ven joined #moarvm
08:37 zakharyas joined #moarvm
09:27 leont joined #moarvm
09:35 brrt joined #moarvm
10:15 kjs_ joined #moarvm
11:00 dalek MoarVM: cc59c5e | (Jimmy Zhuo)++ | src/core/interp.c:
11:00 dalek MoarVM: re-order op
11:00 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/cc59c5e505
11:08 dalek MoarVM: bc36ad6 | (Francois Perrad)++ | src/core/args.c:
11:08 dalek MoarVM: remove useless curly brackets
11:08 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/bc36ad6870
11:08 dalek MoarVM: ae463e0 | (Francois Perrad)++ | src/core/callsite.c:
11:08 dalek MoarVM: remove unreachable code
11:08 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/ae463e0e27
11:08 dalek MoarVM: 2f4d271 | (Francois Perrad)++ | src/core/exceptions.c:
11:08 dalek MoarVM: remove duplicated include
11:08 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/2f4d271a07
11:08 dalek MoarVM: 5345c2f | (Francois Perrad)++ | src/core/validation.c:
11:08 dalek MoarVM: comment FALLTHROUGH in uppercase is understood by many lint tools
11:08 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/5345c2f306
11:08 dalek MoarVM: bddcf29 | (Francois Perrad)++ | src/core/bytecodedump.c:
11:08 dalek MoarVM: add parentheses around parameters in macro
11:44 FROGGS joined #moarvm
11:48 zakharyas joined #moarvm
12:43 JimmyZ jnthn: I found haveat_s op not used, Do you think it need to be DEPRECATED?
12:44 jnthn No. Stop deprecating stuff.
12:44 jnthn What's the point?
12:47 brrt \o jnthn
12:48 jnthn o/ brrt
12:48 JimmyZ it looks like doing something like index_s
12:49 brrt long time no see here? :-)
12:49 jnthn brrt: Indeed. :) Hope you're doing fine?>
12:49 jnthn JimmyZ: iirc, it's checking if the string in question exists at the specified index.
12:49 jnthn So, a bit different.
12:49 timotimo so it's like eqat?
12:50 brrt i'm very busy with my thesis still.. eating all my time :-) but it's going well
12:50 jnthn Yes...so how does it different from eqat? :)
12:50 timotimo i hope your time is tasty
12:50 brrt :-D
12:50 brrt its been caffeinated, for one thing
12:51 timotimo :)
12:51 brrt i do have lots of notes on how to proceed with the jit
12:51 brrt maybe i should write them up in a gist, then others can look at them too
12:52 timotimo well, to be honest, i wouldn't be able to contribute much
12:52 timotimo so if writing it down is only a time sink, it's not helpful from my POV
12:52 timotimo if it makes things easier for you, though, that's a whole 'nother story
12:52 brrt you can add comments? :-)
12:52 brrt hmmm
12:52 * jnthn will be doing more optimization-y stuff, so could be in a position to help, and could use such a doc.
12:53 brrt do you think the even-moar-jit work has become too complex?
12:53 brrt ok, i'll make it one of them days...
12:53 brrt would be very helpful if you could take a look :-)
12:53 brrt (you = plural you, fwiw)
12:54 jnthn :)
12:55 jnthn I wonder a bit if even-moar-jit has suffered from not cheating enough to Get Something Working that can then be incrementally improved.
12:56 jnthn Good code-gen is relatively complex, so I can imagine that's an amount of necesary complexity in there.
12:56 jnthn *there's
12:56 brrt hmm.... i could kind of agree on that
12:56 brrt although the current version is quite cheating
12:56 brrt i.e., doesn't do anything conditionally and all that
12:57 brrt personally, i kind of think the whole issue of internal-basic-blocks caught me by surprise
12:57 brrt like, if something conditionally calls a c function, then that invalidates all variables that live in registers
12:58 brrt i really have / had no proper way to deal with that, and dealing with it inline in the register allocator routines itself, i never got that to work properly
12:58 jnthn Where did we end up with on that? A JIT graph that was low level enough that it captured all kinds of basic blocks may be a way to go...
13:06 brrt that is kind of my next step, yes
13:07 brrt we have lots and lots of moarvm-level nodes which end up into multiple low-level basic blocks
13:07 brrt anytime there is an if (some_check) { do_this(); } else result=NULL;, that's three basic blocks right there
13:08 jnthn Indeed
13:08 brrt if i have if (some_check) { do_this(); result=1; } else result = 0;  that is four
13:09 jnthn This is why spesh tries to re-write various things to ops that don't have such indirections.
13:10 brrt now what is interesting, or annoying, is that i first have to linearise instructions into a sequence before i can define the basic blocks, because otherwise a subtree (which may be refered to by different parents) may belong to multiple basic blocks....
13:10 brrt e.g. (let ((foo (bar baz)) (if (nz foo) (bar foo) (bar (null))) - now foo is shared by the first and second bb;
13:12 brrt hence, my graph becomes: bb(0): foo = bar(baz); bb(1): if zr foo goto bb(3); bb(2): result=bar(foo); goto bb(4); bb(3): result = bar(null()); bb(4): unify_results();
13:13 brrt maybe this can be solved in some more clever way by a more clever tree representation...
13:16 timotimo a tree where a node can have multiple parents? preposterous! heresy!
13:17 brrt i know....
13:17 brrt it's bad enough :-$
13:20 timotimo i have no clue, honestly
13:21 jnthn Well, it's a graph rather than a tree by this point.
13:22 timotimo mhm
13:22 timotimo i say if it makes the implementation make more sense, do it. even if classic compsci training would tell you "that's not proper!"
13:35 brrt yeah, it's a graph alright. the question is, whether i want to rename it :-P
13:36 timotimo let's just go with "goobledygook" for now and just continue coding :P
13:38 brrt right, it is irrelevant :-)
13:38 timotimo well, hopefully it is :)
13:39 timotimo names are good for communication between humans; if it's just the three of us plus a few people like nwc10 helping out by running automated tools or looking over the code manually at a fine-grained level, it doesn't make a big difference
13:39 timotimo since everybody is "in on the joke"
13:39 timotimo long-term, we probably want to have cleaner terminology
13:42 timotimo ... incoherent ranting again
13:43 timotimo i don't know why, but i feel extremely exhausted
13:44 * jnthn also, though he knows why :)
13:47 timotimo i'm not feeling up to debugging "Internal error: Unwound entire stack and missed handler" any more in my gtk_cairo_shooter example script ...
13:48 timotimo i put a say statement at the beginning of everything in my "user" code that is callback related and none of that triggers
13:48 timotimo perhaps it's argument binding or something
13:48 timotimo but could we install a default exception handler that gets run when that internal error occurs?
13:49 timotimo so that we at least can has backtrace?
13:49 timotimo actually ... i suppose we can just print the backtrace from inside moar when we get to that error. any good reason why we don't do that already?
13:52 timotimo oh, heh.
13:52 timotimo remove_one_frame(tc, 1) fails, so we don't actually have anything backtrace-like at that point? or something?
13:57 Ven joined #moarvm
14:57 domidumont joined #moarvm
15:29 virtualsue joined #moarvm
16:10 zakharyas joined #moarvm
16:23 zakharyas joined #moarvm
17:10 zakharyas joined #moarvm
17:40 leont joined #moarvm
18:02 virtualsue joined #moarvm
18:08 kjs_ joined #moarvm
18:13 virtualsue joined #moarvm
18:24 kjs_ joined #moarvm
18:26 zakharyas joined #moarvm
18:36 kjs_ joined #moarvm
19:10 kjs_ joined #moarvm
21:49 vendethiel joined #moarvm
22:26 leont joined #moarvm
22:31 virtualsue joined #moarvm
22:44 zakharyas joined #moarvm

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