Perl 6 - the future is here, just unevenly distributed

IRC log for #moarvm, 2015-01-16

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

All times shown according to UTC.

Time Nick Message
00:08 sivoais joined #moarvm
01:12 retupmoca joined #moarvm
02:26 xiaomiao joined #moarvm
02:54 vendethiel joined #moarvm
03:17 vendethiel joined #moarvm
05:21 vendethiel joined #moarvm
06:57 kjs_ joined #moarvm
06:58 nebuchadnezzar joined #moarvm
07:36 vendethiel joined #moarvm
07:56 kjs_ joined #moarvm
07:58 brrt joined #moarvm
07:59 brrt ncw10 - the trick to upgrading smaller integer types to larger ones is movsx :-)
08:04 FROGGS joined #moarvm
08:05 nwc10 brrt: other CPUs are avaialable. And more numerous.
08:05 brrt very true
08:05 brrt hmm
08:05 nwc10 and almost always have equivalent tricks
08:05 brrt weird spesh bug
08:05 nwc10 it was more that there isn't a clean C way to say "do this cunning thing"
08:06 brrt no. i sometimes think asm is clearer than C
08:06 nwc10 I had also thought (but not typed it) that assembler programmers are fine with registers containing values, and knowing in some cases to compare them as signed values, and others as unsigned
08:07 brrt now that you say it, i wouldn't really know how to do an unsigned integer compare
08:09 brrt (its just cmp, but you use different flags)
08:09 nwc10 IIRC that's all it is on ARM - same CMP, but check different flags in the subsequent instructions
08:24 zakharyas joined #moarvm
09:07 vendethiel joined #moarvm
09:15 jnthn brrt: Yeah, really weird one, but I suspect the spesh log will reveal all...
09:23 brrt jnthn, unfortunately it seems nobody has yet had time for that...
09:24 jnthn It was only reported about 12 hours ago, and many of them were sleeping time for the usual suspects. ;)
09:25 * jnthn is teaching today, but may have time this evening
09:25 brrt very true
09:25 jnthn If not, loads of free time at the weekend :)
09:28 brrt (yay weekend
09:28 brrt )
09:28 jnthn Yes, planning to sleep plenty too in hope of fully getting rid of this pesky cold.
09:33 brrt sleeping is good
09:33 brrt i tried it last night
09:33 brrt made me feel much better :-)
09:44 Ven joined #moarvm
09:45 vendethiel joined #moarvm
09:56 donaldh joined #moarvm
10:13 rurban joined #moarvm
11:18 rurban joined #moarvm
11:22 dalek joined #moarvm
12:18 kjs_ joined #moarvm
12:33 kjs_ joined #moarvm
12:54 kjs_ joined #moarvm
12:55 FROGGS jnthn: I wonder what you think about https://github.com/MoarVM/MoarVM/pull/168
13:00 jnthn That MVM_free(str) is obviously wrong
13:00 jnthn You can't just free a GC-able object!
13:00 FROGGS k, that meets my expectations
13:01 jnthn I think the added free(buf) is right, though
13:02 jnthn And the whitespace changes are just clutter.
13:02 jnthn Yeah, that added free(buf) at the end is correct.
13:03 kjs_ joined #moarvm
13:05 FROGGS that's what I thought too... I don't know why I wasn't certain enough here...
13:05 jnthn Have some confidence, man!
13:05 FROGGS yeah...
13:05 FROGGS I'll have some conference soon, maybe that will do :o)
13:06 jnthn Me too...I'll have to write my talk...
13:07 * FROGGS needs to write his talk and needs to hack... otherwise there is not much to talk about :o)
13:07 FROGGS CDD FTW! /o/
13:07 kjs_ joined #moarvm
13:07 jnthn Yeah, I should probably come up with something or other vaguely new.
13:07 FROGGS you have to :P
13:08 nwc10 and if this isn't CDD, what is? https://fosdem.org/2015/schedule/event/get_ready_to_party/
13:08 FROGGS there was always a surprise (at least at the end of the talks)...
13:08 jnthn Thoguh I suspect the FOSDEM audience is a lot of folks who haven't seen any of my talks in the last year... :)
13:08 jnthn Yeah, I've managed a few fun ones :)
13:08 FROGGS nwc10: exactly!
13:08 FROGGS jnthn: *g*
13:51 donaldh joined #moarvm
13:59 brrt joined #moarvm
14:12 brrt wrt to TimToady's bug report, it's likely the next does something funny
14:13 brrt m: for <aa aba> xx 50 { if not m/b/ { print "."; } else { print "!"; } }; say "";
14:13 camelia rakudo-moar 200478: OUTPUT«.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!␤»
14:20 jnthn brrt: You could try commenting out the exception handler optimizations in optimize.c and seeing if that hides it.
14:20 brrt hmm good idea
14:20 jnthn (it re-writes control exceptions into gotos)
14:22 brrt that'd be optimize_throwcat wouldn't it
14:23 jnthn Sounds like.
14:23 jnthn .oO( Poor moggy. )
14:24 brrt no, removing optimize_throwcat doesn't do anything
14:25 jnthn OK.
14:25 jnthn Well, phew. :)
14:25 jnthn 'cus I didn't want to have to debug that :P
14:26 brrt :-)
14:29 brrt btw, how do you like MVM_fail for a vm failure case in which we ought to be in good shape (but not catchable)
14:30 brrt sort of between panic and exception_throw_adhoc
14:31 brrt (commenting out istrue_isfalse does the trick)
14:34 brrt seems likely that prefix:<not> is not inlined here for some reason
14:42 [Coke] in https://github.com/rakudo/rakudo/commit/2004789b061f6b04d2b4bb483196b84a4be06e90, a method is changed to multi but there don't appear to be any actual multi methods; isn't this a behavioral change (now we can have multis, before we couldn't) to get a speedup? is this right?
14:42 [Coke] ww.
14:43 synopsebot joined #moarvm
14:43 Util joined #moarvm
14:53 brrt hmm
14:53 brrt did you know the logging transformation already changes param_rp_o to sp_getarg_o
14:53 brrt totally valid in this case, but still
14:56 Ven joined #moarvm
15:12 rurban joined #moarvm
15:31 brrt spesh bugs is hard :-(
15:34 jnthn brrt++ # hunting spesh bug
15:34 jnthn The istrue_isfalse thing is a huge hint
15:34 jnthn Yes, I know args get transformed right off the bat, 'cus we already know the callsite.
15:36 brrt i didn't know that :-)
15:37 brrt p6capturelex, what does that do?
15:39 jnthn capturelex but looks through the wrapping code object
15:40 jnthn capturelex on the underlying code object is perhaps a better description
15:44 jnthn decommute &
16:00 brrt when you're back, shouldn't dominance children be unique?
16:23 brrt yay, commenting optimize_isconcrete within optimize_istrue_isfalse actually undoes the bug as well
16:23 brrt hmm
16:23 brrt also, there's a comment on breaking the SSA form and hopefuly getting away with it
16:24 brrt but i don't think we're negated here
16:28 brrt hmm
16:28 brrt somewhere isconcrete is turned into a boolean true
16:28 brrt or actually an integer one
16:35 lizmat nqp::isconcrete is supposed to return 0 or 1 according to doc
16:46 * brrt nods :-)
16:46 brrt hmmm
16:46 brrt MATCH
16:46 brrt turns a decont -> istrue to const_i64_16
16:48 * brrt did not know nqp had documentation
16:50 lizmat https://github.com/perl6/nqp/blob/master/docs/ops.markdown
16:50 lizmat incomplete, but helpful most of the time
16:50 lizmat brrt: ^^^
16:54 brrt thanks :-)
16:58 brrt ok, i am now fairly certain that this happens during a mis-spesh of MATCH
17:00 brrt why? because in MATCH an istrue is converted into isconcrete is converted into lit_i64_16
17:00 brrt which happens never otherwise
17:01 brrt (in this program at least)
17:02 brrt dinner 7
17:02 brrt &
18:08 kjs_ joined #moarvm
18:23 kjs_ joined #moarvm
18:32 FROGGS joined #moarvm
21:34 rurban joined #moarvm
21:49 sivoais joined #moarvm
22:31 dalek MoarVM: aaa5926 | jnthn++ | src/core/interp.c:
22:31 dalek MoarVM: Use labs instead of abs to avoid truncation.
22:31 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/aaa5926833
22:51 sivoais joined #moarvm
22:54 dalek MoarVM: c0d64f1 | jnthn++ | src/core/bytecode.c:
22:54 dalek MoarVM: Fix signed/unsigned warnings in bytecode handling.
22:54 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/c0d64f1b6c
22:57 dalek MoarVM: c0b7c37 | jnthn++ | src/6model/reprs/MVMCompUnit.h:
22:57 dalek MoarVM: Treat serialized data blob as unsigned.
22:57 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/c0b7c37d54
23:02 timotimo i require moarvm to be faster so that i can use spesh_diff more efficiently in order to make moarvm faster
23:04 jnthn .oO( circularity sore... )
23:05 jnthn I'm too tired to do anything hard, so I'm trying to make clang...well...clang less :)
23:19 japhb This seems like a very useful task nevertheless.
23:22 jnthn aye
23:29 timotimo https://gist.github.com/timo/a39c98d7af822b763be6
23:34 timotimo we're turning a get_I into a p6oget_o, that means tracking code for boxing/unboxing will not understand it any more :(
23:34 timotimo even if we put a fact flag in there, it won't be visible for when the time comes to inline the spesh graph into another spesh graph
23:46 timotimo however, alias analysis may still rescue us

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