github.com/moarvm/moarvm | IRC logs at irclog.perlgeek.de/moarvm/today
Set by moderator on 11 May 2018.
01:56 ilbot3 joined
moderator github.com/moarvm/moarvm | IRC logs at irclog.perlgeek.de/moarvm/today
02:34 Kaiepi joined 07:40 robertle joined 09:25 brrt joined
brrt good * 09:25
ok, so i've tried with both msvc and gcc-msys, and there is a consistent failure in the jit compiler with the jit-stack-walker branch
(which is now stack walker-less) 09:26
good evidence suggest that we are trying to call into a corrupted frame 09:34
i know no-one who works at MS development tools will *ever* read is, but I have to say, they are awesome
gdb isn't giving me anything, ms just tells me 'your code is corrupted dude' 09:35
$rax is very much nearly zero 09:42
now, i need a good diff tool for windows. i'm using ediff usually, but it doesn't work per diff not being installed with strawberry perl 09:44
or git
hmm. i'm totally failing to see what's wrong with the code i'm compiling 10:45
MasterDuke brrt: i think i've used kdiff3 on windows a long time ago 10:46
brrt i think i'm going to have to set a breakpoint to understand this 10:47
... what if it's just my vms running out of memory though 10:56
12:10 brrt joined 12:29 zakharyas joined
Geth MoarVM/jit-moar-ops: db8f7db51f | (Bart Wiegmans)++ | 5 files
[JIT] Implement 'SAVE_RV' JIT node as RV mode

SAVE_RV would save the return value (rax) of a function to stack. This was necessary to support the (un)boxing of strings in nativecall. However, there already exists a mechanism for dealing with return values in the c-call handler (the 'rv mode'). So this was redundant, and removed with this commit.
12:32
12:46 AlexDaniel joined 13:10 mtj_ joined 13:37 ilbot3 joined
moderator github.com/moarvm/moarvm | IRC logs at irclog.perlgeek.de/moarvm/today
13:46 wictory[m] joined 14:22 ilmari[m] joined, AlexDaniel` joined 16:23 dogbert11 joined 18:36 Kaiepi joined 18:56 Kaiepi joined
MasterDuke there's no env variable to set that will log why something isn't inlined, correct? 19:29
huh. what ridiculous mistake am i making? github.com/MoarVM/MoarVM/blob/mast...726-L1727, if i change it to `fprintf(stderr, "Can NOT inline %s (%s) with bytecode size (%d) into %s (%s): %s\\n", c_name_i, c_cuid_i, target_sf->body.spesh->body.spesh_candidates[spesh_cand]->bytecode_size, c_name_t, c_cuid_t, no_inline_reason);` i get a segfault 19:52
the ridiculous mistake was somewhere else, that line is fine 19:55
19:59 Ven`` joined 20:21 Ven`` joined
MasterDuke why would rewriting an `if {} elsif {} else {}` into nqp ops almost triple the bytecode size of a sub? 20:33
20:46 vendethiel- joined
jnthn MasterDuke: Maybe because the blocks were separate frames before? 20:50
MasterDuke: Also, there is a #define at the top of optimize.c that turns on some inline logging
20:57 AlexDani` joined 21:05 AlexDani` joined
timotimo yes, it's very likely that using nqp ifs will put all code together in one sub, whereas having curly braces with regular if/elsif/else gives you one frame per piece 22:01
Geth MoarVM: jstuder-gh++ created pull request #857:
Add cmp_i and string cmp op exprjit templates
23:32