MasterDuke | back while pork chops bake. so think this is worth PRing after i clean it up (remove debugging, squash commits, etc.)? | 00:07 | |
jnthn | github.com/MoarVM/MoarVM/compare/m...dbc21b3R84 # should it not set ssize here also so it knows the size to free? | 00:37 | |
MasterDuke: Overall, I think it's worth it. | 00:41 | ||
MasterDuke | jnthn: cool, then i'll work on cleaning it up | 00:54 | |
jnthn | MasterDuke++ | 00:57 | |
'night | |||
timotimo | MasterDuke: i assume all these $_ ~ rand.Str strings end up being strands-based? it'd probably be interesting to give jnthn's suggestion a shot to use fsa for the strands arrays | 00:58 | |
MasterDuke | timotimo: i think i do that in my branch already? github.com/MoarVM/MoarVM/compare/m...9bb347cR47 | 00:59 | |
timotimo | oh, ok! | 01:00 | |
02:56
ilbot3 joined
07:02
domidumont joined
07:07
domidumont joined
07:17
geospeck joined
07:53
brrt joined
08:07
brrt joined
|
|||
nwc10 | good *, #moarvm | 08:17 | |
09:04
brrt joined
|
|||
brrt | good * #moarvm | 09:05 | |
09:07
domidumont joined
09:57
zakharyas joined
10:02
zakharyas joined
10:06
lizmat joined
11:09
AlexDaniel joined
|
|||
MasterDuke | ugh, my branch builds nqp and passes its `make m-test`, and builds rakudo and passes its `make m-test`, but i get a bunch of 'realloc: invalid pointer' and 'free: invalid pointer' during `make m-spectest` | 11:18 | |
11:24
brrt joined
|
|||
MasterDuke | oh, i think it's because i originally branched this from my branch that uses the FSA in VMArray | 11:37 | |
but i've now rebased it to master | |||
hm, the MVMROOT* macros can be annoying, valgrind points to a line with MVMROOT3, but i assume it's actually something inside | 13:44 | ||
jnthn | Try building with --debug=3 | ||
If you didn't already | |||
MasterDuke | i have --debug=3 and --valgrind | ||
jnthn | Ah | ||
Then, I guess a smarter C compiler is wanted :P | 13:45 | ||
MasterDuke | gcc (Ubuntu 7.2.0-8ubuntu3) 7.2.0 | ||
jnthn | I've actually no idea what different versions do in this regard, tbh | 13:46 | |
I've certainly seen this issue | |||
Oh, it's valgrind doing the pointing | |||
And I guess it's in gdb where --debug=3 helps | |||
I think there's a way to do the valgrind run under gdb and breakpoint its reporting, though | 13:47 | ||
MasterDuke | i guess if i had to i could also convert to manual push/pop for debugging, but i'd really rather not | 13:49 | |
timotimo | i think c compilers say "macro expansions being considered a single line is a feature!" | 13:51 | |
MasterDuke | oh, btw, have you had a chance to look at github.com/MoarVM/MoarVM/pull/689 ? (but don't let me distract you from segv hunting) | ||
timotimo | so, uhm, time for a perl6 script that rewrites MVMROOT macros for us :) | ||
14:02
zakharyas joined
14:03
zakharyas joined
14:05
zakharyas1 joined
|
|||
MasterDuke | ah, i'm trying to fixed_size_free a string with 0 num_graphs or num_strands | 14:11 | |
timotimo | ah, i know that problem from somewhere | 14:12 | |
MasterDuke | fwiw it's num_graphs in this instance | 14:13 | |
the line is: MVM_fixed_size_free(tc, tc->instance->fsa, (str->body.storage_type == MVM_STRING_STRAND ? str->body.num_strands : str->body.num_graphs) * type , str->body.storage.any); | 14:15 | ||
timotimo | i wonder how often we generate "the empty string" | 14:16 | |
because why else would it try to free something like that? unless we created an empty string somewhere that turned into garbage | |||
MasterDuke | it's happening during in/because of MVM_string_split | 14:17 | |
hm, changing the 0 to a 1 doesn't fix anything. how does one MVM_fixed_size_free a 0 sized thing? | 14:23 | ||
jnthn | You don't | ||
You can't allocate on in the first place | |||
*one | |||
iirc, anyway | |||
MasterDuke | "can't" == don't do that, or "can't" == shouldn't be possible ? | 14:24 | |
timotimo | malloc has some secret sauce for zero-sized allocations that allows you to free them | ||
jnthn | "Don't do that" | 14:26 | |
Though when MVM_FSA_DEBUG is set to 1, we could put in sanity checks for that | |||
MasterDuke | yep, a couple requests for 0 bytes showed up in MVM_fixed_size_alloc | 14:30 | |
ok, at least one is from MVM_string_flip | 14:33 | ||
rbuffer = MVM_fixed_size_alloc(tc, tc->instance->fsa, sizeof(MVMGrapheme32) * sgraphs); | |||
what's the right behavior? just do `res = (MVMString *)MVM_repr_alloc_init(tc, tc->instance->VMString);`, but don't set any of its fields (e.g., don't do `res->body.storage.blob_32 = rbuffer;`)? | 14:38 | ||
ilmari | timotimo: some mallocs do, but malloc(0) is also allowed to return NULL (and free(NULL) is allowed as well) | 14:41 | |
jnthn | MasterDuke: That or just detect the case and use the empty_string constant hanging off tc->instance | 14:42 | |
MasterDuke | ah ha, i thought there was something like that but couldn't come up with the right name | 14:43 | |
14:48
lizmat joined
|
|||
MasterDuke | ugh, now i'm not seeing any 0 byte requests in MVM_fixed_size_alloc, but still getting the 0 bytes free | 14:50 | |
none in fixed_size_realloc either... | 15:00 | ||
oh, it's not just 0 bytes to free, to_free is NULL also | 15:03 | ||
heh, running under valgrind with --debug=3 and --optimize=0 is not fast | 15:36 | ||
15:42
zakharyas joined
15:56
geospeck joined
18:05
domidumont joined
18:06
brrt joined
18:29
lizmat joined
18:42
committable6 joined
18:44
brrt joined
19:49
quotable6 joined,
coverable6 joined,
greppable6 joined,
bloatable6 joined,
nativecallable6 joined,
tangible6 joined,
benchable6 joined,
statisfiable6 joined
|
|||
dogbert17 | hmm, quite silent in here | 20:47 | |
nwc10 | good *, dogbert17! | 20:49 | |
dogbert17 | any deadlock experts around? Does the last comment in github.com/rakudo/rakudo/issues/1202 give any clues as what might be going on? | ||
nwc10 | sorry, I'm not a deadlock expert | ||
(and I don't know how to flush one out) | |||
dogbert17 | good evening nwc10, found any ASAN problems recently? | ||
nwc10 | evening! heresey! | ||
(and quite accurate, as I'm likely to go to bed soon) | 20:50 | ||
no, sadly/usefully not | |||
code quality is too good | |||
the right sort of problem to have | |||
dogbert17 | yes indeed | ||
finding bugs in MoarVM is getting way to hard | 20:51 | ||
21:10
zakharyas joined
21:18
lizmat joined
|
|||
Geth | MoarVM/jit-expr-optimizer: 11 commits pushed by (Bart Wiegmans)++ review: github.com/MoarVM/MoarVM/compare/a...60e747882a |
23:00 | |
23:25
evalable6 joined
|