00:26 SourceBaby joined 01:57 ilbot3 joined 03:06 Kaiepi joined 05:24 domidumont joined 05:31 domidumont joined
Geth MoarVM: b9874fa94b | (Samantha McVey)++ | src/io/signals.c
Add parens to a #define to silence compiler warnings
06:13
MoarVM: 3f5b9bc891 | (Samantha McVey)++ | src/strings/ops.c
Speed up string cmp by 3-5x by using grapheme iterator

Use a grapheme iterator instead of MVM_string_get_grapheme_at_nocheck. Speeds up cmp for strands by 5x and flat strings by 3x.
06:15
timotimo holy crap, that's awesome! 06:20
samcv not sure how much it affects speed since i'd think most time it stops pretty soon. but. i also may be making it even faster than that 06:21
for flat strings
should make it 3x faster for flat strings compared to the already 3x improvement before 06:24
06:29 travis-ci joined
travis-ci MoarVM build failed. Samantha McVey 'Add parens to a #define to silence compiler warnings' 06:29
travis-ci.org/MoarVM/MoarVM/builds/361983731 github.com/MoarVM/MoarVM/compare/9...874fa94bc8
06:29 travis-ci left
timotimo is your measurement for comparing two equal strings? does it change much for strings that differ on the first grapheme? 06:30
samcv two strings equal except the last 06:31
uh first grapheme difference is unchanged basically
or at least unmeasurable
since it does the same thing practically, doing getgraphemenocheck compared to initializing the grapheme iterator then grabbing from it 06:32
but after the first grapheme then you get the reduced overhead from not having to find your place in the string again
timotimo mhh, right 06:34
i'm definitely glad about the speedup \o/ 06:35
06:35 travis-ci joined
travis-ci MoarVM build failed. Samantha McVey 'Add parens to a #define to silence compiler warnings' 06:35
travis-ci.org/MoarVM/MoarVM/builds/361983731 github.com/MoarVM/MoarVM/compare/9...874fa94bc8
06:35 travis-ci left
timotimo waitwhat? 06:36
it says failed but when i click the link all builds are green except for one that hasn't started yet?
samcv i restarting one of them
not sure why it failed
timotimo ah, ok
samcv well i restarted one. then it passed and i restarted another that i forgot to restart
timotimo i'll head over to breakfast now o/ 06:41
samcv o/ 06:42
06:53 robertle joined 06:57 domidumont joined
Geth MoarVM: bcc32a2a50 | (Samantha McVey)++ | src/strings/ops.c
Speed up string cmp another 2-3x when both strings are flat

If both strings are flat we can iterate until we find the first grapheme which is different between them, then use the GraphemeIter from there.
07:23
08:00 lizmat joined 08:16 zakharyas joined
Geth MoarVM: 19004b0ddd | (Timo Paulssen)++ | src/spesh/inline.c
fix wrong pointer type

harmless, but it rightfully warns
08:17
08:20 zakharyas joined 08:22 zakharyas joined 08:26 zakharyas joined 08:33 zakharyas joined 08:48 zakharyas joined 09:05 robertle joined 09:08 zakharyas joined 09:12 lizmat joined 09:42 zakharyas joined
Geth MoarVM: 9730ff98a9 | (Timo Paulssen)++ | 3 files
jit continuationinvoke

ThreadPoolScheduler's do-await is a tiny method that pushes tiny tasks with continuationinvoke into the queue. Those can now be jitted.
09:50
timotimo laptop battery empty m) 09:51
10:03 zakharyas joined 10:07 Kaypie joined 10:08 zakharyas joined 10:09 harrow` joined
nwc10 much ASAN excitement in NQP build: paste.scsys.co.uk/576663 10:10
may not have time (or battery) to dig this further and give you more detail
10:10 avarab joined
nwc10 #0 0x7fc221085aae in MVM_string_compare src/strings/ops.c:2323 10:11
10:11 Util_ joined
nwc10 0x602000044892 is located 0 bytes to the right of 2-byte region [0x602000044890,0x602000044892) 10:11
lizmat looks like samcv++ had a hand in that 10:12
10:20 timotimo joined 10:22 ingy joined 10:39 lizmat joined
timotimo i'd really like something in the jit graph that lets us put reprid checks and optionally concreteness checks and generate that directly into the assembly 10:39
so we don't have to move these checks into the functions that were usually called by the interp.c that did the checks 10:40
invoking the brrt :) :)
jnthn I'd actually like something more declarative with regard to such checks 10:42
timotimo ah, something in oplist that update_ops would write out? 10:43
jnthn Yeah
timotimo since i have to procrastinate my lightning talk, maybe i'll implement that right quick 10:44
jnthn At the moemnt we have some ops checking and some functions checking
timotimo aye, it's a mess
jnthn and it'd be good to regularize it
Well, the history is
The checks were put into the interp originally.
Because we wanted to lift them out if possible
But...that made JITting hard
So they moved
Into the target functions
What I'd actually like is every function to exist as a checked and unchecked form 10:45
Perhaps with the checked forms generated
11:04 bloatable6 joined, quotable6 joined, bisectable6 joined, undersightable6 joined
nwc10 .tell samcv bcc32a2a5024c0f1b4620db0cc5228cc3d0c43cc is the first bad commit -- paste.scsys.co.uk/576663 11:11
timotimo gist.github.com/timo/6f3513c8b3b58...7e508017e0 11:12
nwc10 use more 'bots'; 11:13
timotimo looks like we have just a single op that wants more than one check 11:15
11:42 scovit joined 12:05 yoleaux joined 12:18 lizmat joined 12:54 zakharyas joined
timotimo not quite sure if the "required concrete" should go in the oplist or as a :foo at the end 12:54
dogbert2 libuv 1.20 is out, github.com/libuv/libuv/blob/v1.x/ChangeLog 13:02
13:04 zakharyas joined 13:07 zakharyas joined 13:39 Kaiepi joined 13:44 lizmat joined 13:48 committable6 joined 13:55 Kaiepi joined
timotimo i wonder if brrt would be mad about nested MVMJitNodes... 14:13
aha! i don't need to nest it! 14:40
14:44 AlexDaniel joined 14:47 dogbert17 joined 15:02 zakharyas joined 15:08 zakharyas joined 15:46 releasable6 joined 16:07 zakharyas joined 16:11 evalable6 joined, coverable6 joined 16:14 buggable joined 16:15 ZofBot joined 16:20 zakharyas joined 16:40 AlexDani` joined 16:54 robertle joined 16:58 domidumont joined
nwc10 .tell samcv bcc32a2a5024c0f1b4620db0cc5228cc3d0c43cc is the first bad commit -- paste.scsys.co.uk/576663 17:06
yoleaux nwc10: I'll pass your message to samcv.
17:14 zakharyas joined
samcv nwc10: thanks. just waking up right now but will get to it shortly 17:35
yoleaux 17:06Z <nwc10> samcv: bcc32a2a5024c0f1b4620db0cc5228cc3d0c43cc is the first bad commit -- paste.scsys.co.uk/576663
nwc10 "good morning" :-) 17:36
Geth MoarVM/declarative_op_checks: a516da2917 | (Timo Paulssen)++ | 3 files
WIP on making concreteness / REPRid checks declarative

With support for this in the jit, we can more easily pull concreteness and reprid checks back out of functions that once got the checks put into them so they could more easily get jitted.
17:39
timotimo ^- this is still missing parts to parse the oplist changes and the jit does nothing with the information yet 17:41
samcv oh /facepalm 17:44
while (a_blob8[i] == b_blob8[i] && i < scanlen) # should be while (i < scanlen && a_blob8[i] == b_blob8[i])
heh
timotimo well, that's easy to solve, then! :D 17:47
samcv i've been thinking of adding ops that will force a string into 8bit or 32 bit formats for testing 17:57
japhb samcv: That seems rather useful, yes. I guess it depends on whether MoarVM already has a standard for such things. Closest I can think of is force_gc. 18:09
Geth MoarVM: 02dd49053b | (Samantha McVey)++ | src/strings/ops.c
Fix scanning loop in string cmp ASAN errors

We were checking the array before the bounds check which was causing an access one after the shortest string's array.
18:14
samcv also maybe we should have an asan build on TravisCI 18:23
18:27 Zoffix joined
Zoffix What's the equivalent to `die "some message"` in MoarVM? Like if some numeric operation fails, I just wanna throw a generic error 18:28
MVM_exception_throw_adhoc looks like 18:29
18:33 FROGGS joined
samcv ^ yep 18:41
Zoffix thanks
19:18 zakharyas joined 19:25 zakharyas joined 19:34 Kaiepi joined 20:12 zakharyas joined 20:23 MasterDuke joined
Geth MoarVM/fix-div_In-drift: 58297946d0 | (Zoffix Znet)++ | src/math/bigintops.c
Stash fix for nqp::div_In drift

Fixes github.com/rakudo/rakudo/issues/1651 but breaks denormals.
Also makes nqp::div_In 12.8x slower.
20:43
MoarVM/fix_num_drift2: a4c7dbf6f7 | (Zoffix Znet)++ | src/math/bigintops.c
Stash further div_In fix

Fixes drift and denormals but has weird results in mid-range negative powers :/
21:37
japhb
.oO( Fixes rift in space but now everyone is blue. I'm pretty sure they're not all supposed to be blue. )
21:39
21:39 Zoffix left 22:16 lizmat joined
Geth MoarVM: b735866dde | (Zoffix Znet)++ | src/math/bigintops.c
Fix drift in Num->Str roundtrip; Make nqp::div_In 14x slower

Fixes R#1651 github.com/rakudo/rakudo/issues/1651
The original code converted bigints to doubles right away, before dividing them, which caused some precision loss that was responsible for repeated Num->Str conversion to drift the value. ... (13 more lines)
22:34
synopsebot R#1651 [open]: github.com/rakudo/rakudo/issues/1651 [math] Drift in Str -> Num -> Str conversion
nwc10 samcv: ASAN is happy. (Or at least, no longer excited) 22:45
22:58 Kaiepi joined