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
|