Perl 6 - the future is here, just unevenly distributed

IRC log for #moarvm, 2017-09-03

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

All times shown according to UTC.

Time Nick Message
01:06 Geth ¦ MoarVM: 3bd371f108 | (Samantha McVey)++ (committed using GitHub Web editor) | 7 files
01:06 Geth ¦ MoarVM: Rework MVMNFGSynthetic to not store base separately (#657)
01:06 Geth ¦ MoarVM:
01:06 Geth ¦ MoarVM: This is done to (eventually) get Prepend support working. Unlike
01:06 Geth ¦ MoarVM: all other marks which come after a base character, Prepend characters
01:06 Geth ¦ MoarVM: come *before* the base character. All of our current code assumed the
01:06 Geth ¦ MoarVM: first codepoint of the synthetic is the base character.
01:06 Geth ¦ MoarVM:
01:06 Geth ¦ MoarVM: <…commit message has 7 more lines…>
01:06 Geth ¦ MoarVM: review: https://github.com/MoarVM/MoarVM/commit/3bd371f108
01:15 Geth ¦ MoarVM: 5f95e944a3 | (Samantha McVey)++ | 4 files
01:15 Geth ¦ MoarVM: Replace all uses of sprintf with snprintf
01:15 Geth ¦ MoarVM:
01:15 Geth ¦ MoarVM: For extra security and ensuring we don't overflow the buffer.
01:15 Geth ¦ MoarVM: review: https://github.com/MoarVM/MoarVM/commit/5f95e944a3
01:15 Geth ¦ MoarVM: aedd632c08 | (Samantha McVey)++ (committed using GitHub Web editor) | 4 files
01:15 Geth ¦ MoarVM: Merge pull request #673 from samcv/snprintf
01:15 Geth ¦ MoarVM:
01:15 Geth ¦ MoarVM: Replace all uses of sprintf with snprintf
01:15 Geth ¦ MoarVM: review: https://github.com/MoarVM/MoarVM/commit/aedd632c08
01:52 ilbot3 joined #moarvm
01:52 Topic for #moarvm is now https://github.com/moarvm/moarvm | IRC logs at  http://irclog.perlgeek.de/moarvm/today
08:53 dogbert2 joined #moarvm
09:54 Skarsnik joined #moarvm
11:34 dogbert2 joined #moarvm
12:05 MasterDuke joined #moarvm
12:42 timotimo so the heapanalyzer ... i made quite a mistake in the code to parse format version 1
12:43 timotimo it was parsing the collectables thinking they were references
12:43 timotimo that of course threw timings off because now it was doing less work for the version 1 parser than for the version 2 parser
12:44 nine oops
12:59 MasterDuke timotimo: ah, that explains the wrong type names?
13:25 timotimo no, there's even more breakage in there somewhere
13:30 Skarsnik_ joined #moarvm
14:36 Geth ¦ MoarVM: 55c3e72a63 | MasterDuke17++ (committed using GitHub Web editor) | src/spesh/graph.c
14:36 Geth ¦ MoarVM: Clean up typos, formatting, etc in comments
14:36 Geth ¦ MoarVM:
14:36 Geth ¦ MoarVM: It looks like the last sentence in the comment starting on line 427 is incomplete, but I'm not sure how it should be finished.
14:36 Geth ¦ MoarVM: review: https://github.com/MoarVM/MoarVM/commit/55c3e72a63
14:36 Geth ¦ MoarVM: d65be80cff | (Jonathan Worthington)++ (committed using GitHub Web editor) | src/spesh/graph.c
14:36 Geth ¦ MoarVM: Merge pull request #638 from MasterDuke17/patch-1
14:36 Geth ¦ MoarVM:
14:36 Geth ¦ MoarVM: Clean up typos, formatting, etc in comments
14:36 Geth ¦ MoarVM: review: https://github.com/MoarVM/MoarVM/commit/d65be80cff
14:49 Geth ¦ MoarVM/jit_nativecall: 40111c7c21 | (Stefan Seifert)++ | 3 files
14:49 Geth ¦ MoarVM/jit_nativecall: Simplify MVM_nativecall_invoke_jit
14:49 Geth ¦ MoarVM/jit_nativecall:
14:49 Geth ¦ MoarVM/jit_nativecall: Inline the relevant part of MVM_jit_enter_code to avoid having to overwrite
14:49 Geth ¦ MoarVM/jit_nativecall: tc->cur_frame->jit_entry_label. Also we don't actually need the res_type, as
14:49 Geth ¦ MoarVM/jit_nativecall: the return value was ignored anyway.
14:49 Geth ¦ MoarVM/jit_nativecall: review: https://github.com/MoarVM/MoarVM/commit/40111c7c21
14:49 Geth ¦ MoarVM/jit_nativecall: 387ddf2d6b | (Stefan Seifert)++ | 2 files
14:49 Geth ¦ MoarVM/jit_nativecall: Prepare NativeCall JIT code for use by spesh
14:49 Geth ¦ MoarVM/jit_nativecall:
14:49 Geth ¦ MoarVM/jit_nativecall: By using MVM_spesh_alloc instead of stack allocation and by separating out
14:49 Geth ¦ MoarVM/jit_nativecall: the part that creates the spesh graph, the code is reusable for JIT compilation
14:49 Geth ¦ MoarVM/jit_nativecall: triggered by spesh.
14:49 Geth ¦ MoarVM/jit_nativecall: review: https://github.com/MoarVM/MoarVM/commit/387ddf2d6b
15:08 zakharyas joined #moarvm
15:14 Skarsnik__ joined #moarvm
15:24 Skarsnik_ joined #moarvm
15:28 Geth ¦ MoarVM/jit_nativecall: 46092749f5 | (Stefan Seifert)++ | 3 files
15:28 Geth ¦ MoarVM/jit_nativecall: JIT compile JITed native calls
15:28 Geth ¦ MoarVM/jit_nativecall:
15:28 Geth ¦ MoarVM/jit_nativecall: While we already generated machine code for performing the actual call to the
15:28 Geth ¦ MoarVM/jit_nativecall: C function, we perform all deconting and unboxing of arguments in high level
15:28 Geth ¦ MoarVM/jit_nativecall: code. This is so that spesh can optimize this code to what's actually
15:28 Geth ¦ MoarVM/jit_nativecall: necessary for a given call site.
15:28 Geth ¦ MoarVM/jit_nativecall:
15:28 Geth ¦ MoarVM/jit_nativecall: <…commit message has 10 more lines…>
15:28 Geth ¦ MoarVM/jit_nativecall: review: https://github.com/MoarVM/MoarVM/commit/46092749f5
15:41 nine This actually now looks stable enough to merge :)
15:48 dogbert2 joined #moarvm
15:50 Geth ¦ MoarVM/jit_nativecall: 92198c815f | (Stefan Seifert)++ | src/core/nativecall.c
15:50 Geth ¦ MoarVM/jit_nativecall: Extend JIT compilation of native callse to other integer types
15:50 Geth ¦ MoarVM/jit_nativecall: review: https://github.com/MoarVM/MoarVM/commit/92198c815f
16:00 nine What's sadly missing is support for passing strings to the C function. String unmarshalling requires calling a function which doesn't fit at all into how the JIT compiler structures the code. I'd have to do this first and store the result somewhere, so I can later pass it to the C function.
16:07 Skarsnik_ What are you optimising btw? call like C_add(1, 2) ?
16:27 nine yes
16:31 nine Also calls like "p5_sv_refcnt_dec(Perl5Interpreter, SV) # both are actually pointers" which means it covers a lot of calls
16:33 nine I think, I could even add support for having a single string in the arguments by unmarshalling that upfront and putting it into an ARG register. That won't be touched by any of the following arg setup steps
16:36 nine Cool...so far the diff in MoarVM is less than 500 LOC (excluding the changes to oplists)
16:36 Skarsnik__ joined #moarvm
16:37 nine 12 files changed, 260 insertions(+), 8 deletions(-)
16:38 squashable6 joined #moarvm
16:58 geekosaur joined #moarvm
19:57 Skarsnik_ joined #moarvm
21:17 samcv lewd!
21:18 samcv oops wrong box
22:09 dogbert2 joined #moarvm
23:40 samcv this is weird. if i change something from MVM_string_graphs to MVM_string_graphs_nocheck it actually gets slower
23:43 samcv that doesn't make any sense...
23:44 samcv from 1.7s to 2.3s running the KMP algorighm 420 times
23:44 samcv that's insane
23:44 samcv it doesn't make much sense either
23:46 MasterDuke maybe see what perf says?
23:49 samcv it's also slower if i do `MVMStringIndex Haystack_graphs = Haystack->body.num_graphs`
23:49 samcv compared to calling MVM_string_graphs
23:50 samcv perf doesn't show anything useful
23:50 samcv somehow the code it's generating must be really crappy somehow?
23:53 samcv MasterDuke, this is where https://github.com/MoarVM/MoarVM/blob/master/src/strings/ops.c#L1045-L1046
23:53 samcv change that to nocheck and it gets way slower
23:58 MasterDuke no change for me
23:58 samcv i'm building with clang
23:59 samcv ./Configure.pl --compiler=clang
23:59 MasterDuke gcc version 6.3.0 20170406 (Ubuntu 6.3.0-12ubuntu2)

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