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) |