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