01:08
travis-ci joined
|
|||
travis-ci | MoarVM build passed. Stefan Seifert 'Fix off-by-one error in uninline | 01:08 | |
travis-ci.org/MoarVM/MoarVM/builds/328839703 github.com/MoarVM/MoarVM/compare/5...a08024edfe | |||
01:08
travis-ci left
01:17
unicodable6 joined,
quotable6 joined
02:57
ilbot3 joined
03:42
Kaiepi joined
03:50
klapperl joined
03:57
bloatable6 joined
06:26
domidumont joined
06:32
domidumont joined
06:34
brrt joined
07:40
brrt joined
07:42
brrt joined
|
|||
samcv | have a ton more ucd2c.pl work i've been doing. removing more unneeded variables simplifying loops. making quoted strings not contain newlines inside them which make it hard to read | 07:44 | |
and many more things. no real functional changes but it's making the code better | |||
07:50
domidumont joined
07:56
FROGGS joined
08:14
brrt joined
08:35
zakharyas joined
09:03
zakharyas joined
09:21
Kaiepi joined
09:32
brrt joined
10:30
brrt joined
10:31
brrt joined
|
|||
jnthn | morning o/ | 10:32 | |
samcv++ # ucd2c cleanups | |||
nine++ # inline fixes | |||
brrt | \o everybody | 10:33 | |
indeed nine++ samcv++ | |||
jnthn | o/ brrt | ||
brrt is positively impressed by nine's perseverance | 10:34 | ||
jnthn | That's pretty much half of debugging | 10:40 | |
10:46
zakharyas joined
|
|||
lizmat | time for a bump ? | 11:06 | |
11:40
zakharyas joined
11:46
committable6 joined
12:06
brrt joined
13:48
zakharyas joined
13:52
zakharyas joined
14:14
bisectable6 joined
14:47
squashable6 joined
15:28
zakharyas joined
16:26
brrt joined
17:23
coverable6 joined,
benchable6 joined
17:28
domidumont joined
|
|||
nine | Oh boy...the next issue occurs after speshing a function consisting of 1464 basic blocks and 147 registers | 17:35 | |
And no less than 20 inlines | 17:36 | ||
17:43
brrt joined
|
|||
timotimo | :D | 17:56 | |
Geth | MoarVM: 4a0a912ef1 | (Stefan Seifert)++ | tools/spesh-bisect.pl New spesh-bisect.pl tool Finds the first MVM_SPESH_LIMIT value where test program breaks. Usage: tools/spesh-bisect.pl perl6 t/foo/bar.t Uses the process' return code for deciding whether the run was successful or not (like git bisect run) |
18:12 | |
18:13
zakharyas joined
18:15
zakharyas joined
18:31
geospeck joined
|
|||
lizmat | jnthn: I think I've asked this before, but may be not | 18:38 | |
if I look at the performance of "say (^Inf).hyper(:1000batch,:4degree).grep( *.is-prime )[5000]" | |||
then there is hardly any gain increasing the :degree: values 5 - 8 only give marginal wallclock gains | 18:39 | ||
whereas :8degree almost doubles in CPU usage | |||
so it appears to be busy doing something, but not actual work :-) | |||
is this something we can see improve in the future or not ? | 18:40 | ||
jnthn | How many real cores do you have? | ||
lizmat | 4 real / 8 virtual | ||
jnthn | OK, so by the time you're in 5 you're beyond the real cores | ||
And the work is the same, so competing over the same function units | |||
18:40
releasable6 joined
18:41
greppable6 joined,
reportable6 joined,
statisfiable6 joined,
nativecallable6 joined
|
|||
timotimo | right, hyper threading helps mostly if the individual pieces of work are different | 18:41 | |
like, one core is doing mostly floating point arithmetic, the other mostly shuffling data around or bitwise operations or whatnot | |||
lizmat | ok, so you're saying, don't increase :degrees above real cores for .hyper | ||
perhaps we need to doc this? | 18:42 | ||
jnthn | We can but it's very workoad dependent | ||
timotimo | well, if you're already .hypering just one sequence, maybe that means the workload is mostly the same? | 18:43 | |
lizmat | ok, so you're saying "say (^Inf).hyper(:1000batch,:4degree).grep( *.is-prime )[5000]" is like a worst case | ||
jnthn | The work is mostly in .is-prime, and | ||
that's going to be a nice, tight, chunk of well-optimized C code | 18:44 | ||
Presumably mostly doing integer, memory, and branch work | |||
So yeah, it's the kind of case that's liable to wind up with more threads on the CPU, but not many more instructions being retired | |||
lizmat | yeah, gotcha | 18:45 | |
jnthn | A modern CPU core is like a pin board with tasks to be done on it, and lots of workers grabbing tasks that have all their dependencies available. Hyperthreading is two threads sticking stuff on the board, but there's only so many workers. :) | 18:46 | |
The biggest wins are when the threads occupy different workers. | |||
Then there's the times a disgruntled worker saw something on the pin board that was confidential and snitches about it down the pub. Thus Meltdown. :P | 18:48 | ||
dinner & | |||
nine | Apparently all remaining test failures are due to mis-spesh of the 'compile_var' monster (the one with 1464 BBs and 20 inlines) | 18:56 | |
19:43
dogbert17 joined
20:33
Ven`` joined
20:47
Kaiepi joined
20:50
evalable6 joined
|
|||
lizmat | and another Perl 6 Weekly hits the Net: p6weekly.wordpress.com/2018/01/15/...blue-note/ | 20:57 | |
22:20
leont joined
22:26
Ven`` joined
22:39
Ven`` joined
|
|||
leont | Either spawn_async is leaking data, or uv_spawn takes ownership of the handles without documenting it, or I'm not understanding the code | 23:01 | |
samcv | lizmat++ | 23:25 |