github.com/moarvm/moarvm | IRC logs at colabti.org/irclogger/irclogger_logs/moarvm
Set by AlexDaniel on 12 June 2018.
02:10 vrurg left, vrurg joined 04:56 coverable6 left, bloatable6 left, committable6 left, linkable6 left, releasable6 left, quotable6 left, notable6 left, evalable6 left, greppable6 left, unicodable6 left, nativecallable6 left, sourceable6 left, tellable6 left, squashable6 left, statisfiable6 left, bisectable6 left, shareable6 left, benchable6 left 04:57 greppable6 joined, shareable6 joined, benchable6 joined, evalable6 joined, notable6 joined, bisectable6 joined 04:58 sourceable6 joined, unicodable6 joined, quotable6 joined, coverable6 joined, tellable6 joined, releasable6 joined 04:59 squashable6 joined, linkable6 joined, nativecallable6 joined, bloatable6 joined, committable6 joined, statisfiable6 joined
nwc10 good *, #moarvm 06:10
07:12 samcv left 07:46 sena_kun joined 08:06 domidumont joined 08:09 patrickb joined 08:11 Altai-man joined 08:13 sena_kun left 08:55 zakharyas joined
MasterDuke interesting, this segv on my use_fsa_for_vmarray branch also has nqp::create and allocate() in the backtrace, same as that segv from the use statements i was just attempting to debug 09:09
jnthn MasterDuke: That's not terribly surprising, in so far as `create` is one of the most common paths into the GC (assuming the crash is in the GC) 10:32
MasterDuke huh. it's just that i haven't seen it much before. guess most of my previous experiences weren't gc-related 10:34
fwiw, i'm getting a `free(): invalid pointer` in MVM_fixed_size_safepoint when running t/spec/S32-io/io-cathandle.rakudo.moar 10:44
hm, but the FSA shouldn't be freeing something that was created by the gc, right? 11:20
doh, nm, that's how freeing at a safepoint is handled 11:21
11:29 leont joined
jnthn Any luck with valgrind/ASAN, since it's potentially a double free? 11:33
MasterDuke you know, i'd completely forgotten about the valgrind run i did gist.github.com/MasterDuke17/f1024...5acc62fd77 11:38
it goes away with GC_DEBUG=3 11:40
jnthn oh, that's interesting output
Did you try the FSA debug thing?
MasterDuke doh, again...let's give that a run... 11:41
jnthn Because it looks like it is handing pack memory inside of a page (so the initial request was small), but then freeing as if it was an oversized page
e.g. the size is being provided incorrectly at freeing time
*handing back
MasterDuke yeah
jnthn And FSA debug can detect those 11:42
Could be something like accidentally multiplying wrong at free time, or using the new size instead of the old size when doing the free because of a growth
MasterDuke hm, insta segv 11:43
jnthn Wow 11:47
MasterDuke oh, the fsa doesn't like to do anything (alloc, free, etc) with a size of 0, right
jnthn Can't remember 11:49
MasterDuke yep, github.com/MoarVM/MoarVM/pull/689/...dca5cdR107 `arr->body.ssize` was 0 11:50
jnthn Ah
MasterDuke woohoo, spectest now passes 12:03
jnthn Yay :) 12:04
MasterDuke jnthn: however `my @a; race for (^10_000_000).race(:100batch, :8degree) { @a.push($_) }; say @a.elems; say @a.tail` still segvs. i sort of thought it now *should* just give "wrong" values 12:06
jnthn Well, did the re-org happen to move the ssize and so on into the thing allocated via the FSA? 12:08
(And the start too, I guess)
MasterDuke you know, i've forgotten (haven't looked at the early commits recently). but i suspect not 12:09
i think it's just slots that are fsa now 12:10
guess that'll be the next step 12:11
12:11 sena_kun joined 12:13 Altai-man left
timotimo right, putting only the slots in the FSA is not yet enough 12:17
MasterDuke any particular suggestions for the best way to stick the other stuff in? 12:36
12:36 zakharyas left
timotimo not sure if you can automate the transformation 12:40
jnthn I guess it's 2 or 3 items and that they are pointer sized; I guess I'd try and keep the amounts of memory we ask for as powers of 2 (at least up to a certain size) 13:22
It's a bit annoying 13:23
14:06 zakharyas joined
MasterDuke i assume it'd be too simple to "just" make body a pointer and FSA alloc it? github.com/MoarVM/MoarVM/blob/mast...rray.h#L41 14:15
(with appropriate changes to how it's accessed of course) 14:16
jnthn Hm, well...maybe but then we have two allocations with the FSA and I think it's easier to reason about the safety if there's one
I mean, we want one self-describing piece of memory 14:17
nwc10 I think that you can prove the concept with two blocks of memory. But then really it should be optimised to one 14:19
it also makes the CPU cache performance better
jnthn In terms of "doesn't segfault" I think it's much harder to prove :) 14:20
MasterDuke you mean for body and slots? well, i think i was thinking of doing it all in one go and adapting the current places that (re)alloc/free slots to instead adjust the whole piece
nwc10 by prove the concept - I meant get the current spectests passing
ah OK. If you think all in one go is easer, go for that
jnthn nwc10: Ah, I see.
14:33 domidumont1 joined 14:35 domidumont left 16:11 Altai-man joined 16:13 sena_kun left 16:48 patrickz joined 16:49 MasterDuke left 16:50 patrickb left 16:52 MasterDuke joined 17:22 patrickz left 17:57 lucasb joined 18:04 domidumont1 left 18:09 patrickb joined 19:04 zakharyas left
lizmat and another Rakudo Weekly News hits the Net: rakudoweekly.blog/2020/11/23/2020-...t-release/ 19:37
20:11 sena_kun joined 20:13 Altai-man left 20:17 zakharyas joined 21:41 MasterDuke left 21:49 sena_kun left 21:56 patrickb left 21:57 zakharyas left 22:14 samcv joined 22:51 Kaeipi joined, Kaiepi left 23:08 Kaeipi left 23:11 Kaiepi joined 23:40 Kaeipi joined, Kaiepi left