timotimo gives string_decodestream_get_all a one-char-only thing to go through the cache | 00:12 | ||
00:13
lizmat joined
|
|||
timotimo | huh, it's only getting hit a single time during this benchmark, which iterates over a file doing getc over and over again | 00:21 | |
oh, i get it | 00:26 | ||
00:46
sivoais joined
|
|||
timotimo | now the benchmark script doesn't really run any more %) | 00:46 | |
ugh. i made the benchmark 2x faster, but also not finish any more | 01:05 | ||
i ran git stash pop once too often and now my state is a bit messed up >_> | 01:13 | ||
suffice to say i messed up big time :) | 01:16 | ||
lizmat | time to get some sleep ? | ||
:-) | |||
timotimo | yeah, maybe :) | 01:17 | |
i actually forgot to stash the grapheme into the storage i was allocating | 01:29 | ||
that stings | |||
oh, wow, this benchmark (naive_count_chars) allocates more Str objects through ObjAt.Str than through the "naive" sub which is the one that getc's | 01:34 | ||
(that's because of a Set membership test) | 01:35 | ||
i.e. $set{$_} | 01:36 | ||
not sure if it's actually supposed to ObjAt in that case ... | 01:37 | ||
but all in all, WHICH is responsible for 18.77% of run time here | |||
and EXISTS-KEY is 12.96%, AT-KEY is 11.58%, postcircumfix:<{ }> is another 6.11% | 01:38 | ||
huh ... it's not actually putting any letters into the cache at all ?!? | 01:40 | ||
oh | |||
maybe all the letters are already in there before getc starts being used | |||
ah, yes | 01:41 | ||
so i guess we're allocating a crapton of Str| ~ $single-letter in this benchmark | 01:46 | ||
01:48
ilbot3 joined
02:28
lizmat joined
02:34
vendethiel- joined
02:58
mtj_ joined
03:24
lizmat joined
06:09
cognominal joined
06:11
lizmat joined
06:14
lizmat joined
06:45
nebuchadnezzar joined
07:12
domidumont joined
08:43
brrt joined
|
|||
brrt | good * | 08:44 | |
the new multi-cache thing looks good | |||
jnthn | :) | 08:49 | |
o/ brrt | |||
brrt | \o jnthn | ||
my brain is extremely slow this morning | 08:51 | ||
nine | brrt: coffee is supposed to help there | 09:15 | |
brrt | doesn't always work | 09:16 | |
but yeah, may be an option :-) | |||
nine | I figure, even if coffee doesn't actually help, it still tastes good ;) | 09:29 | |
brrt | that is true | 09:34 | |
nwc10 | jnthn: some actual ASAN barfage: paste.scsys.co.uk/524343 | 09:53 | |
lots of spectests failed. First I sampled was just a SEGV. Second was ASAN | |||
rather too many to attack systematically | |||
unless you think it's useful right now. | |||
jnthn | I'd bet turning on the fixed size allocator debugging flag will yield more useful info | 09:54 | |
I didn't get so far as trying a spectest | 09:55 | ||
nwc10 | OK. | 09:59 | |
jnthn | I'm not sure I did a Rakudo build either, thinking about it. I know it builds NQP and passes Rakudo make test | 10:00 | |
nwc10 | fixed size allocator debugging flag? Is that `#define MVM_FSA_BINS 0` or something else? | ||
jnthn | No | ||
#define FSA_SIZE_DEBUG 0 | 10:01 | ||
Set that to 1 | |||
nwc10 | OK. | 10:02 | |
It will take longer than a cup of coffee, but less time than lunch, to get an updated answer | |||
oh, wait, no it won't | 10:03 | ||
jnthn | The coffee machine broke? Lunch got further away? :) | ||
nwc10 | paste.scsys.co.uk/524347 -- NQP immediate SEGV | ||
I was expecting to get *to* the spectest and then see failure | |||
jnthn | Wheee | 10:04 | |
Will look at it in a bit | |||
nwc10 | yes, have lunch :-) | ||
konobi | nwc10: in related fun... backtrace.io/ | 10:22 | |
10:49
dalek joined
10:50
psch joined
10:51
brrt joined
11:51
cognominal joined
11:57
lizmat joined
12:09
lizmat joined
12:50
[Coke] joined
12:56
lizmat joined
|
|||
timotimo | Spesh: get_osr_deopt_finalize_index failed | 13:09 | |
wow. | |||
13:10
Util joined
|
|||
jnthn | How'd you get that o.O? | 13:10 | |
timotimo | afl-fuzz :) | 13:11 | |
jnthn | oh :) | ||
timotimo | instead of deleting the file (which i've done for the other test cases that were preventing it from resuming the previous run) i copied it away to see what's up | ||
13:15
psch_ joined
15:06
[Coke]_ joined
|
|||
jnthn receives a fresh supply of beer o/ | 15:09 | ||
stmuk | Supply.tap? | 15:14 | |
jnthn | Soon ;) | 15:20 | |
15:20
[Coke] joined
15:22
camelia joined
15:24
[Coke] joined
15:25
[Coke] joined
|
|||
jnthn | Righty, lets see if I can figure out that SEGV... | 15:35 | |
dalek | arVM/new-multi-cache: 883f6aa | jnthn++ | src/6model/reprs/MVMMultiCache.c: Don't try to fixed-size-free NULL. |
15:40 | |
arVM/new-multi-cache: e6f13d7 | jnthn++ | src/6model/reprs/MVMMultiCache.c: Re-instate spesh integration with multi cache. So we can inline multis again after the caching changes. |
16:06 | ||
jnthn | With that, an NQP build+test seems happy, but Rakudo's CORE.setting build explodes. | 16:08 | |
Unfortunately, quite a long way in, so the valgrind is taking a while | 16:13 | ||
timotimo | oof | 16:22 | |
jnthn | I'm hopefully it'll end up being silly rather than deep | 16:25 | |
timotimo | sounds good :) | 16:26 | |
jnthn | *hopeful | ||
timotimo | ran into an invalid read of size 4 and a failure to create a spesh graph, copied that away, too | ||
jnthn | Ooh, interesting | ||
timotimo | er, that was the same case, not two different cases | ||
jnthn | Probably related :) | 16:27 | |
timotimo | my thoughts exactly :) | ||
jnthn leaves the valgrind running while he goes to rest, dinner, etc. | 16:28 | ||
timotimo | cya later :) | 16:29 | |
dalek | arVM/new-multi-cache: 7ef30e5 | jnthn++ | src/6model/reprs/MVMMultiCache.c: Remove accidentally left-behind MVM_free. Was meant to be replaced by the line above that frees it with the FSA, but was accidentally left there in addition. |
16:32 | |
jnthn | It finished just as I was about to clock off :P | ||
timotimo | ooooh | 16:33 | |
jnthn | Silly one. Phew. | ||
Yup, CORE.setting builds happily with that :) | 16:36 | ||
Some spectest unhappiness, though not too wild | 16:38 | ||
Anyways, really time for a break :) | |||
timotimo | yup yup yup | ||
nwc10 | jnthn: for post-break (tomorrow or next week) - paste.scsys.co.uk/524442 -- ASAN finds things | 17:27 | |
timotimo | use-after-free! | 17:35 | |
WHAT ain't no macro i ever heard of. do they give type objects in WHAT? | 17:43 | ||
lizmat | m: say WHAT 42 | 17:44 | |
camelia | rakudo-moar 9b579d: OUTPUT«(Int)» | ||
dalek | arVM/short_string_cache: 0676b9b | timotimo++ | src/strings/decode_stream.c: make sure result is actually allocated |
18:09 | |
arVM/short_string_cache: 88b1b0b | timotimo++ | src/strings/decode_stream.c: make take_chars aware of the short string cache it's very ugly code :( |
|||
arVM/short_string_cache: 70ddf5b | timotimo++ | src/strings/decode_stream.c: make decodestream_get_all aware of short string cache |
|||
arVM/short_string_cache: a9517e1 | timotimo++ | src/core/instance.h: get rid of a bunch of compiler warnings |
18:12 | ||
18:13
cognominal joined
18:16
domidumont joined
|
|||
timotimo | i'm really not happy about the way the code in take_chars ended up looking | 18:16 | |
18:49
FROGGS joined
19:06
colomon joined
19:57
mtj__ joined
19:58
mtj__ joined
20:03
mtj_ joined
20:27
timotimo joined,
cognominal joined
|
|||
jnthn | nwc10: I get a very similar trace out of t/spec/S32-list/pick.t also. Will look tomorrow :) | 20:29 |