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