dalek arVM/even-moar-jit: dd75160 | brrt++ | 3rdparty/dynasm:
Upgrade dynasm for dynamic register bugfix
11:29
MoarVM/even-moar-jit: e629fe3 | brrt++ | src/ (4 files):
MoarVM/even-moar-jit: Take JIT spill area into account for work size
timotimo cool, now i get leave_conditional NYI instead of a segfault :) 12:49
"This caused issues when the same 12:50
register was 'used' twice in a
"
haha, the line break is fantastic on this one 12:51
"Without this the JIT will emit code that overwrites (gnu) malloc"
"wait, it does WHAT? HOW?!?"
brrt \o 14:32
timotimo o/
dalek MoarVM/even-moar-jit: ff26781 | paultcochrane++ | src/core/nativecall_dyncall.c: 14:37
MoarVM/even-moar-jit: Add missing break statement to callback_handler switch cascade
MoarVM/even-moar-jit:
MoarVM/even-moar-jit: It seems that a break statement is missing in the MVM_NATIVECALL_ARG_*
MoarVM/even-moar-jit: cascade of case statements. This adds the missing break. The NQP tests
jnthn o/ brrt
brrt (that was a merge dalek)
\o jnthn
and timotimo
how are you today?
brrt the fixes of yesterday (i pushed this morning) reduce some of the more crazy bugs 14:38
jnthn Tired, probably 'cus I felt well yesterday and walked for 2-3 hours and did a bunch of cooking...
brrt walking is good, usually 14:39
jnthn needs to remember to be more relaxed on the days he feels less exhausted, rather than being like "omg I feel more OK let's do lots!" and then feeling tired again the next day...
brrt yes, that's a good idea
balancing energy is a tricky business :-) 14:41
jnthn Yeah...I need to be more careful 14:42
jnthn thinks he'll take a look at a couple of RTs today 14:43
brrt hopes jnthn will be more careful :-) 14:48
shall i tell you of the wondrous bug that turned a r8 reference into a rax reference? 14:49
jnthn haha
Go on :)
brrt first i couldn't believe what i was seeing as i couldn't repeat it in example code 14:50
so i tried it with luajit and various other options, and there was no diference in minilua 14:51
basically, the only difference between rax and r8 on the instruction encoding level is a bit set in the REX byte
as it turned out, that bit was really not being set 14:52
while the right number was passed, and while it worked in every other case
so why was that so? because the REX byte was not marked (in that case)
why was the REX byte not marked? dynasm didn't say that it should
why did dynasm say it shouldn't? it looked at only the second operand, which was (in this case) a constant register (rbx) 14:53
jnthn oops 14:54
.oO( totally rex the code-gen )
14:55
brrt so i replaced that with a loop over all operands, which fixed it 14:56
kind of took the sting out of waiting on the airport :-)
anyway, that still leaves some bits not implemented yet 15:04
and i kind of don't have the spare braintime left for now 15:09
but good to see jnthn++ back online :-)
timotimo i'm not doing so great, but i'll be okay 15:20
timotimo jnthn: my understanding of lexicalref decl'd vars doesn't cover the reason why we would declare a var as lexicalref and then just assign_i a value into them ... what lexical does it ref in that case? how can this not be poking into unallocated memory and blowing up? 15:22
jnthn timotimo: Got a code snippet I can --target=ast? 15:23
timotimo wait! 15:25
oh no
did i ... did i totally misread this?
i must have been somewhat tired at that point, i guess
never mind >_<
i should remove ":decl(..)" from the qast dump if it isn't actually set, perhaps 15:26
jnthn That has caught me out more than once... 15:27
timotimo there's already an nqp::isnull_s in there that should prevent :decl() from appearing in the dump 15:32
m: use nqp; say nqp::isnull_s("") 15:35
camelia rakudo-moar e6f360: OUTPUT«0␤»
timotimo that'll be it, then
m: use nqp; say nqp::graphs("")
camelia rakudo-moar e6f360: OUTPUT«===SORRY!===␤No registered operation handler for 'graphs'␤»
timotimo m: use nqp; say nqp::chars("")
camelia rakudo-moar e6f360: OUTPUT«0␤»
timotimo that ought to be better in that case 15:36
this realization brings me one more step closer to getting lex-to-local back to working order 15:38
took me long enough … 15:39
timotimo jnthn: your tiny act of ducking unblocked my work, i'm very glad :) 16:23
dalek arVM: 163ee73 | FROGGS++ | src/6model/reprs/C (6 files):
bring CStruct, CPPStruct and CUnion in line

That involves porting all CStruct patches to CPPStruct that happened since CPPStruct was born in a branch, but also means that all three representations can now be in attribute slots of the others.
21:08