Geth MoarVM: 3bd371f108 | (Samantha McVey)++ (committed using GitHub Web editor) | 7 files
Rework MVMNFGSynthetic to not store base separately (#657)

This is done to (eventually) get Prepend support working. Unlike all other marks which come after a base character, Prepend characters come *before* the base character. All of our current code assumed the first codepoint of the synthetic is the base character.
... (7 more lines)
01:06
MoarVM: 5f95e944a3 | (Samantha McVey)++ | 4 files
Replace all uses of sprintf with snprintf

For extra security and ensuring we don't overflow the buffer.
01:15
MoarVM: aedd632c08 | (Samantha McVey)++ (committed using GitHub Web editor) | 4 files
Merge pull request #673 from samcv/snprintf

Replace all uses of sprintf with snprintf
01:52 ilbot3 joined 08:53 dogbert2 joined 09:54 Skarsnik joined 11:34 dogbert2 joined 12:05 MasterDuke joined
timotimo so the heapanalyzer ... i made quite a mistake in the code to parse format version 1 12:42
it was parsing the collectables thinking they were references 12:43
that of course threw timings off because now it was doing less work for the version 1 parser than for the version 2 parser
nine oops 12:44
MasterDuke timotimo: ah, that explains the wrong type names? 12:59
timotimo no, there's even more breakage in there somewhere 13:25
13:30 Skarsnik_ joined
Geth MoarVM: 55c3e72a63 | MasterDuke17++ (committed using GitHub Web editor) | src/spesh/graph.c
Clean up typos, formatting, etc in comments

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
MoarVM: d65be80cff | (Jonathan Worthington)++ (committed using GitHub Web editor) | src/spesh/graph.c
Merge pull request #638 from MasterDuke17/patch-1

Clean up typos, formatting, etc in comments
MoarVM/jit_nativecall: 40111c7c21 | (Stefan Seifert)++ | 3 files
Simplify MVM_nativecall_invoke_jit

Inline the relevant part of MVM_jit_enter_code to avoid having to overwrite tc->cur_frame->jit_entry_label. Also we don't actually need the res_type, as the return value was ignored anyway.
14:49
MoarVM/jit_nativecall: 387ddf2d6b | (Stefan Seifert)++ | 2 files
Prepare NativeCall JIT code for use by spesh

By using MVM_spesh_alloc instead of stack allocation and by separating out the part that creates the spesh graph, the code is reusable for JIT compilation triggered by spesh.
15:08 zakharyas joined 15:14 Skarsnik__ joined 15:24 Skarsnik_ joined
Geth MoarVM/jit_nativecall: 46092749f5 | (Stefan Seifert)++ | 3 files
JIT compile JITed native calls

While we already generated machine code for performing the actual call to the C function, we perform all deconting and unboxing of arguments in high level code. This is so that spesh can optimize this code to what's actually necessary for a given call site.
... (10 more lines)
15:28
nine This actually now looks stable enough to merge :) 15:41
15:48 dogbert2 joined
Geth MoarVM/jit_nativecall: 92198c815f | (Stefan Seifert)++ | src/core/nativecall.c
Extend JIT compilation of native callse to other integer types
15:50
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:00
Skarsnik_ What are you optimising btw? call like C_add(1, 2) ? 16:07
nine yes 16:27
Also calls like "p5_sv_refcnt_dec(Perl5Interpreter, SV) # both are actually pointers" which means it covers a lot of calls 16:31
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:33
Cool...so far the diff in MoarVM is less than 500 LOC (excluding the changes to oplists) 16:36
16:36 Skarsnik__ joined
nine 12 files changed, 260 insertions(+), 8 deletions(-) 16:37
16:38 squashable6 joined 16:58 geekosaur joined 19:57 Skarsnik_ joined
samcv lewd! 21:17
oops wrong box 21:18
22:09 dogbert2 joined
samcv this is weird. if i change something from MVM_string_graphs to MVM_string_graphs_nocheck it actually gets slower 23:40
that doesn't make any sense... 23:43
from 1.7s to 2.3s running the KMP algorighm 420 times 23:44
that's insane
it doesn't make much sense either
MasterDuke maybe see what perf says? 23:46
samcv it's also slower if i do `MVMStringIndex Haystack_graphs = Haystack->body.num_graphs` 23:49
compared to calling MVM_string_graphs
perf doesn't show anything useful 23:50
somehow the code it's generating must be really crappy somehow?
MasterDuke, this is where github.com/MoarVM/MoarVM/blob/mast...1045-L1046 23:53
change that to nocheck and it gets way slower
MasterDuke no change for me 23:58
samcv i'm building with clang
./Configure.pl --compiler=clang 23:59
MasterDuke gcc version 6.3.0 20170406 (Ubuntu 6.3.0-12ubuntu2)