Geth MoarVM/nummy-num: 337cf380d7 | (Zoffix Znet)++ | src/strings/parse_num.c
Remove trailing whitespace
00:09
MoarVM: 7349b428fb | (Timo Paulssen)++ | src/debug/debugserver.c
have to use FSA consistently for this field
00:46
MoarVM: c6aba84d3a | (Timo Paulssen)++ | src/debug/debugserver.c
don't use %b in format string

in not-so-important debug output
01:56 ilbot3 joined
Geth MoarVM/nummy-num: c6c0bab915 | (Zoffix Znet)++ | src/strings/parse_num.c
Fix denormals and precision issues in num parser

With the original method we had problems with handling denomals
  (so e.g. 5e-324 ended up as 0e0) and had precision issues where
NOT the closest representable num was generated for a given string, which causes value drift in repeated num->str roundtripping.
... (8 more lines)
02:53
MoarVM: zoffixznet++ created pull request #850:
Nummy num
03:04
MoarVM: 337cf380d7 | (Zoffix Znet)++ | src/strings/parse_num.c
Remove trailing whitespace
MoarVM: c6c0bab915 | (Zoffix Znet)++ | src/strings/parse_num.c
Fix denormals and precision issues in num parser

With the original method we had problems with handling denomals
  (so e.g. 5e-324 ended up as 0e0) and had precision issues where
NOT the closest representable num was generated for a given string, which causes value drift in repeated num->str roundtripping.
... (8 more lines)
MoarVM: 517e26f045 | (Zoffix Znet)++ (committed using GitHub Web editor) | src/strings/parse_num.c
Merge pull request #850 from MoarVM/nummy-num

Nummy num
MoarVM: Kaiepi++ created pull request #851:
Fix installs having an outdated version
05:01
06:16 domidumont joined 06:23 domidumont joined 06:44 robertle joined 07:18 lizmat joined 07:37 brrt joined
Geth MoarVM/jit-stack-walker: 5 commits pushed by (Bart Wiegmans)++ 07:42
brrt not actually a rebase, though
07:49 lizmat joined 08:24 zakharyas joined 08:27 zakharyas joined 08:28 brrt joined 08:49 FROGGS joined 08:51 FROGGS joined
jnthn Jit Stackwalker sounds like a character from a VM-internals Star Wars rip-off :) 08:59
Geth MoarVM/jit-stack-walker: 7b1f287ada | (Bart Wiegmans)++ | 2 files
[JIT] Extract finding inline for dynlex to JIT

JIT entry label should not leak out to dynamic lexical lookup.
09:00
brrt it kind of does, doesn't it
with that in place, lets' try and activate the stack walker... 09:02
it breaks, and it breaks because tc->cur_frame points to a caller while returning, which is not on the stack 09:10
jnthn Caller or callee? 09:11
brrt caller, I think 09:12
jnthn Oh, as in, it's JITted code is not on the stack
brrt correct, not on the C stack, I mean :-) 09:13
jnthn Hmm. 09:15
What do we try and look up during this time?
brrt the proper jit entry label 09:17
well, the current position in the jit frame 09:18
line src/core/frame.c - line 868, we update the tc->cur_frame to its caller;
line src/core/frame.c - line 908, we call the special unwind 09:19
src/6model/6model.c:71 - we try to die 09:20
now, in my branch; src/jit/interface.c:27 if (tc->cur_frame == frame) 09:21
hmm
09:27 brrt joined
FROGGS jnthn: I think I'm going to merge the inlined-shaped-carray branches (moarvm/rakudo) today 10:08
jnthn: and I'll put a lock in setdebugname, or what the op was called 10:09
jnthn FROGGS: Alright...this soon after release sounds like a good time :)
FROGGS aye
:o)
10:34 zakharyas joined 10:35 AlexDaniel joined
Geth MoarVM: 8610b8581b | (Tobias Leich)++ | 2 files
Implement one dimensional inlined shaped CArrays

A C(PP)Struct can now hold an inlined array with a fixed sized shape. There is one issue though. We always assumed that CArray attributes of CStructs will always hold pointers to other things than numeric types. I've changed the default for inlined CArray attributes which have a shape. The memory of the CArray slots will be inlined by default as well. If someone wants the opposite, (s)he can declare a CArray of pointers.
10:52
MoarVM: 25f165ad70 | (Tobias Leich)++ | 5 files
Add CPPStruct/CUnion-reprs where it was forgotten
10:53
MoarVM/jit-stack-walker: 2a871f3bae | (Bart Wiegmans)++ | 3 files
[JIT] Activate stack walker for current frame

Look up the current return address based on the stack layout. Only works with -fno-omit-frame-pointer.
10:54
MoarVM/jit-stack-walker: a575805509 | (Bart Wiegmans)++ | 2 files
[JIT] Remove redundant dynamic label assignments

Now that we can look up the current position in the JIT frame via stack walking, it is no longer required to load the jit entry label on the start and end of frame handlers and at the start of every basic block.
As basic block entry is quite a bit more frequent than looking up dynamic lexicals or throwing exceptions, I hope this should provide a nice speedup.
brrt these ^ are the scariest two commits i have done for some time
oh, and i've already found a bug 10:56
11:19 brrt joined
Geth MoarVM/jit-stack-walker: 960dd4af48 | (Bart Wiegmans)++ | src/core/exceptions.c
[JIT] Also extract selecting active lexical handlers

Forgotten this bit. Not sure if correct though.
11:20
11:27 zakharyas joined 11:59 domidumont joined 12:34 domidumont1 joined 12:47 domidumont joined
Geth MoarVM/jit-stack-walker: 9 commits pushed by (Bart Wiegmans)++ 13:14
brrt surprisingly enough, this works. I now encourage all of you to test and benchmark this against master 13:16
jnthn brrt++ 13:46
Will give it a go later
brrt if you're on windows, it might well not work 13:48
because I expect microsft's assemlber to disagree (if it is configured at all)
jnthn Primarily on Linux these days 13:49
brrt i'm probably going to have to setup a VM anyway 13:51
14:27 domidumont1 joined 15:01 TimToady joined 15:51 robertle joined 16:22 domidumont joined
Geth MoarVM/pluggable-spesh: e963b0500c | (Jonathan Worthington)++ | src/mast/compiler.c
Implement bytecode assembly for speshresolve
16:42
dogbert17 WARNING: unhandled amd64-linux syscall: 1000318 # haven't seen valgrind say this before 16:52
jnthn Me either :) 16:54
ooh, actually I do see it 16:55
Hmm
cooking & 16:57
robertle I have some more data on the mips failures in R#1711, mostly that it still happens with MVM_SPESH_DISABLE and that it is still intermittent with MVM_SPESH_NODELAY. I tried changing the "Bytecode validation error" macro to get better messages, but might have gotten that wrong. any pointers on what else to try very welcome... 16:59
synopsebot R#1711 [open]: github.com/rakudo/rakudo/issues/1711 [severe] intermittent "Bytecode validation error at offset 0, instruction 0" on s390x/mips
nine .tell brrt csv-ip5xs.pl performance is well within noise. 17:55
yoleaux nine: I'll pass your message to brrt.
robertle there is a lot that I do not understand about src/core/validate.c, but doesn't the malloc+memset in the #ifdef MVM_BIGENDIAN in MVM_validate_static_frame mean that we are not actually validating anything? did I get that right? also, why doesn't this leak memory like a sieve? 18:52
timotimo we only do that once per chunk of bytecode, no? 18:55
that's a limited amount of things 18:56
robertle ok, not really worried about the leak... but what is it with the memset? 19:00
why does that not wreck the static_frame we pass in? and why does this ever validate, shouldn't all opcodes be DBDB afterwards? which would be a rather large opcode... 19:01
timotimo validation when endian switching is on will copy from the original code and switch bytes afterwards 19:04
the memset is potentially there so we know when we forgot to do something? 19:05
robertle ah! so ensure_bytes overwrites the stuff we did memset from src_cur_op... 19:08
timotimo right
robertle would it help if I made it hexdump the whole bytecode body in these error conditions?
timotimo i guess? does this ever trigger? 19:09
robertle yes, but only about 1 in every 100 runs on the most trigger happy test cases
I get the "invalid extension opcode %u - should be less than %u" case 19:10
timotimo oh, ah
does rr run on that system?
robertle what's rr? 19:11
timotimo mozilla's time-travelling debugger extension for gdb 19:12
robertle ah that 19:13
I had trouble even getting plain gdb to work in these cases, but perhaps the time travelling would help 19:14
but when I get into these cases, I don't seem to have a valid stack anymore
timotimo right
if jit is turned on, stacks are never there, but your arch doesn't have a jit for it, so ...?
robertle so perhaps something unrelated has wrecked the stack, and this validation error is just the result of that. note that this seems to happen only in the presence of threads 19:16
timotimo possible, but our bytecode isn't on the stack, and neither is the "current operation" pointer i think? 19:17
robertle hmm, not sure about the current op pointer: it's part of the Validator struct which is set up as Validator val[1]; 19:21
timotimo oh, it's dieing inside the validator 19:22
silly me
sorry, i'm not all present
robertle I am still working on the non-presentness... *klink* 19:23
19:23 Kaiepi joined
dogbert17 jnthn, samcv: I believe that the mysterious valgrind msg started to appear with github.com/MoarVM/MoarVM/commit/b0...aeed01791c 19:24
19:51 Kaiepi joined 20:07 Kaiepi joined 20:25 Kaiepi joined
jnthn github.com/MoarVM/MoarVM/commit/b0...986d960R95 :) 20:26
I think it's genuinely that valgrind perhaps doesn't know that syscall :)
If the syscall didn't work, I think we'd know about it. :)
21:27 MasterDuke joined
MasterDuke .tell brrt i didn't see any noticeable difference running Tux's test-t and test-t --race scripts on the jit-stack-walker branch 23:31
yoleaux MasterDuke: I'll pass your message to brrt.
23:51 mtj_ joined