04:04 FROGGS__ joined 07:49 Ven joined
nwc10 good *, #moarvm 08:37
jnthn o/ 08:41
timotimo #moarvm, * good 08:45
08:56 Ven joined 09:47 Ven joined 10:01 Ven joined
FROGGS__ o|) --> (·) 10:36
11:28 Ven joined
nwc10 jnthn: I baked you another patch, at [email@hidden.address] 11:53
1% reduction in startup CPU count
(as "threatened" some weeks back) 11:54
jnthn nwc10: I get permission denied...is there a ro url? 12:14
(I just did git remote add -f nwc10 [the url]) 12:15
nwc10 gitlab.com/nwc10/MoarVM.git
I hope
jnthn yup, I can git fetch nwc10 now :) 12:17
nwc10 excellent
jnthn Cute patch 12:18
nwc10 I can't find anything else similar that's as easy
I can benchmark it at (seemigly) 1% less time to run "Hello world" but I don't trust benchmarks that are under 5% :-/ 12:19
dalek arVM: af7753e | nicholas++ | src/6model/serialization.c:
Inline assert_can_read(), which is called 7,133,540 times for perl6-m -e 1

assert_can_read() is a very small function, but 15th highest by Ir count in callgrind's output for perl6-m -e 1. Hence the overhead of making the function call is likely to be similar in size to the function's body.
cachegrind reports that inlining it reduces I refs from 515,809,288 to 509,668,666, ie a 1% reduction in CPU instructions needed to run perl6-m -e 1
12:21
jnthn nwc10: Measuring instructions retired in pretty reliable, though, at least :) 12:22
dalek arVM: c33c704 | (Jimmy Zhuo)++ | src/6model/reprs/P6opaque.c:
removed an repeated function
13:15
arVM: 364432d | (Jimmy Zhuo)++ | src/6model/reprs/P6opaque. (2 files):
Inline some small functions
13:28
13:58 avar joined, ChanServ joined, timotimo joined, BinGOs joined, jnthn joined, oetiker joined, moritz joined, retupmoca joined, sivoais joined, tadzik joined, arnsholt joined, leedo joined, nwc10 joined, Peter__R joined, masak joined, Util joined, [Coke] joined, TimToady joined, JimmyZ joined, psch joined, rudi_s joined, flussence joined, danaj joined, hoelzro joined, ingy joined, camelia joined, vendethiel joined, btyler joined, xiaomiao joined, FROGGS joined, harrow joined, colomon joined, dalek joined, betterworld joined, Ven joined, ShimmerFairy joined 14:28 Ven joined 14:43 pyrimidine joined 14:58 rurban_ joined 15:32 Ven joined 15:36 ggoebel joined 15:59 Ven joined
psch m: say "m\x0308" 17:23
camelia rakudo-moar 4c1f57: OUTPUT«m̈␤»
psch eh
i'm not used to tab 4 not being camelia :P 17:24
17:49 Ven joined
dalek arVM: bbf73a1 | FROGGS++ | src/core/nativecall.c:
decont arg in not 'is rw' param slot

This shall unbreak Inline::Perl5. nine++ for reporting it.
17:51
arnsholt Has anyone considered running afl-fuzz on Moar? 18:22
jnthn It's been mentioned here before, but nobody had les tuits to make it happen yet. 18:24
arnsholt Who's discussed it? I have a desktop machine at work that's standing mostly idle. Figured it might be worthwhile to use a core for fuzzing Moar 18:25
But might be useful to discuss it a bit with someone before just blindly setting of in some direction
jnthn I can't remember, 'fraid 18:28
I think if you search the irclogs for this channel you may dig something up
arnsholt Yeah. I'll grep the clogs
Thanks!
FROGGS m: my uint8 $a = 200; say $a # is autoboxing to blame? because P6int->get_int is called with bits=64 and unsigned=0 only...
camelia rakudo-moar c314f4: OUTPUT«-56␤»
jnthn I know I saw afl before, and I'm pretty sure it was on this channel :) 18:29
18:29 ggoebel joined
FROGGS would like to know where autoboxing happens 18:29
jnthn FROGGS: We totally ignore the u there at present
FROGGS jnthn: well, P6int->compose gets it and it gets serialized... but it gets lost later on
jnthn Yeah, but on lexicals I meant. 18:30
FROGGS is that something I could fix?
jnthn But the answer is likely that QSAT to MAST should be emitting a box_u not a box_i
FROGGS aha 18:31
jnthn I can probably delegate implementation of that stuff to you, but I need to ponder on design a little more.
FROGGS k
jnthn The Moar opset already has a bunch of _u though
We just ain't doing anything with 'em yet. 18:32
FROGGS nods
jnthn I also dunno how we're gonna handle this stuff on JVM :S
FROGGS "differently" :o) 18:33
nwc10 jnthn: I baked you another patch at gitlab.com/nwc10/MoarVM 18:37
only 0.5% less CPU this time
jnthn Thanks :) 18:41
arnsholt I think on JVM you need to do the interpretation of unsigneds on your own 18:42
But IIRC the VM spec mandates that integer types are stored twos complement, so there's no ambiguity there
jnthn masak: I'm inclined to reject RT#124226. That's stretching "syntactically" incredibly far.
masak: We also don't keep enough information around to do it realistically cross-compilation unit and I'm not sure we should. 18:43
masak: Finally, we do our static analysis on lexical things, not on method calls. We'd have to factor in the meta-object's behavior too, which we don't really know. 18:44
uh, shoulda been on #perl6...d'oh 18:45
18:45 zakharyas joined
dalek arVM: f37765f | nicholas++ | src/6model/reprs/MVMHash.c:
Inline extract_key(), which is called 57306153 times by at_key() and bind_key()

at_key() and bind_key() are 2nd and 3rd highest by Ir count in callgrind's output for perl6-m -e 1. Both call extract_key(), which is a simple wrapper around the macro MVM_HASH_EXTRACT_KEY(). Making the function inline reduces the CPU instructions needed to run perl-m -e 1 by about 0.5%
18:45
nwc10 at this rate, (obviously) I just need to find about infinity more things and we'll be another 0.5% faster 18:50
dalek arVM: 0acf845 | FROGGS++ | src/strings/utf8.c:
fix throwing ex when utf8 string is invalid, fixes RT #124185
19:05
japhb nwc10: As you have only two entries in the sequence, there's not enough evidence to assume exponentially decreasing returns, as opposed to (say) a normal distribution around .75%. :-) 19:12
I suppose that we could assume the distribution is bounded by 100% (because causality) and 0% (because you wouldn't apply a known pessimization) 19:13
arnsholt Heh. The afl-fuzz Makefile is funny: "NOTE: If you can read this, your terminal probably uses white background. This will make the UI hard to read. See docs/status_screen.txt for advice." 20:12
FROGGS hehe
japhb Nice
I once tried to write a colored-output script to autodetect whether the terminal had a light background or dark one and compensate, and I discovered that this seemingly easy thing is essentially completely brain-dead and non-portable. 20:13
arnsholt Yeah. The afl docs just go "use white-on-black or turn colours off entirely" 20:14
21:41 kjs_ joined