github.com/moarvm/moarvm | IRC logs at colabti.org/irclogger/irclogger_logs/moarvm Set by AlexDaniel on 12 June 2018. |
|||
01:07
AlexDani` joined
01:08
AlexDaniel left
02:20
elcaro_ is now known as elcaro
03:11
MasterDuke left
03:55
[Coke]_ joined,
[Coke]_ left,
[Coke]_ joined
03:57
Geth left,
Geth joined
03:58
[Coke] left
04:26
[Coke]_ left
04:35
[Coke] joined,
[Coke] left,
[Coke] joined
05:28
squashable6 left
05:31
squashable6 joined
|
|||
nwc10 | good *, #moarvm | 06:18 | |
06:44
domidumont joined
06:53
Altai-man joined
07:19
sena_kun joined
07:21
Altai-man left
08:02
zakharyas joined
08:12
domidumont left
08:16
domidumont joined
|
|||
jnthn | o/ | 09:52 | |
nwc10 | \o | 10:02 | |
10:07
Kaiepi left
10:09
Kaiepi joined
11:18
Kaiepi left,
Altai-man joined
11:21
sena_kun left
11:26
Kaiepi joined
11:31
zakharyas left
11:37
Kaiepi left
11:39
leont joined
12:32
zakharyas joined
12:48
dogbert17 left
13:10
brrt joined
13:41
mst joined,
ChanServ sets mode: +o mst
15:19
sena_kun joined
15:21
Altai-man left
15:56
Kaiepi joined
16:04
Kaiepi left
17:03
MasterDuke joined
17:14
brrt left
17:42
zakharyas left
18:30
Kaiepi joined
|
|||
MasterDuke | ok. anyone up for helping me (fair warning it's gonna be a heavy lift on your end) figure out what to MVM_ASSIGN_REF to get github.com/MoarVM/MoarVM/pull/1344 not segfaulting when building nqp? | 19:18 | |
19:18
Altai-man joined
19:21
sena_kun left
19:25
Altai-man left
|
|||
MasterDuke | heh. i have an MVM_ASSIGN_REF expression that compiles, but same segv when building nqp | 19:42 | |
oh, now i have something that gets farther in the nqp build | 19:44 | ||
an actual `Try to enter NULL jitcode` exception instead of a segv | 19:45 | ||
the moarvm backtrace is not helpful | 19:46 | ||
does this look close? `for (MVMuint32 i = 0; i < spesh->body.num_spesh_candidates; i++) MVM_ASSIGN_REF(tc, &(spesh->common.header), spesh->body.spesh_candidates[i], new_candidate_list[i]);` | 20:18 | ||
jnthn | Is it the correct way around? | 20:19 | |
I'd have thought you'd be assigning into the new candidate list? | |||
But if this is just copying the existing candidates into the new candidate list then it's not needed at all, I think, since those were already pointed to by the spesh holding object | 20:20 | ||
MasterDuke | dunno, that's my interpretation of colabti.org/irclogger/irclogger_lo...09-08#l144 | ||
jnthn | You'll need to do it with the new candidate, just not the existing ones | 20:21 | |
Is the PR up to date? I can glance it | |||
timotimo | i thought it was necessary so that the pointers in the array also get updated if necessary | ||
nine | MasterDuke: frames have a spesh_cand pointer. Where is that put onto the GC's worklist? | ||
MasterDuke | it doesn't have the MVM_ASSIGN_REF i was just experimenting wiht | 20:22 | |
up to date otherwise | |||
nine: i don't think it is... | 20:23 | ||
there's this github.com/MoarVM/MoarVM/pull/1344...89ff1d2R33 | 20:24 | ||
nine | Have a look at MVM_gc_root_add_frame_roots_to_worklist | 20:25 | |
jnthn | MasterDuke: This line: | ||
new_candidate_list[spesh->body.num_spesh_candidates] = candidate; | |||
Is the one that needs the MVM_ASSIGN_REF | 20:26 | ||
MasterDuke | i just changed to only having this: `MVM_ASSIGN_REF(tc, &(spesh->common.header), spesh->body.spesh_candidates[spesh->body.num_spesh_candidates], new_candidate_list[spesh->body.num_spesh_candidates]);` | ||
same segv | |||
but looking at MVM_gc_root_add_frame_roots_to_worklist now | 20:27 | ||
adding `MVM_gc_worklist_add(tc, worklist, &cur_frame->spesh_cand);` here github.com/MoarVM/MoarVM/blob/mast...ots.c#L419 didn't change anything | 20:29 | ||
jnthn | MVM_ASSIGN_REF(tc, &(spesh->common.header), new_candidate_list[spesh->body.num_spesh_candidates], candidate); | 20:30 | |
Is probably fine | |||
MasterDuke | ah. the addition to MVM_gc_root_add_frame_roots_to_worklist plus that change to the MVM_ASSIGN_REF gets farther | 20:32 | |
MoarVM panic: Internal error: zeroed target thread ID in work pas | |||
20:32
domidumont left
20:33
brrt joined,
domidumont joined,
domidumont left
|
|||
jnthn | Do you have the MVM_GC_DEBUG turned on? | 20:34 | |
MasterDuke | oh! it actually finishes if i remove the '-j12' from my make call | ||
timotimo | nqp can't be compiled with that many things in parallel :D | 20:35 | |
MasterDuke | which i've never had to do before | ||
jnthn | 'cus often it catches those zeroed target corruptions earlier - at the point something adds to the worilist | ||
haha...worklist :) | |||
Though we are woried about it :P | |||
MasterDuke | jnthn: no, it's currently 0, i'll try again with it set to 1 | ||
jnthn | OK. With luck it'll panic at the point where the thing is added, which could be informative | ||
MasterDuke | i am building moarvm with `--debug=3 --optimize=0` | 20:36 | |
jnthn | Good; that means you'll get a useful stack trace out of gdb when (if) it panics :) | 20:37 | |
afk for a bit | |||
MasterDuke | of course now nqp builds even with -j12... | 20:38 | |
but rakudo panics | 20:41 | ||
at github.com/MoarVM/MoarVM/pull/1344...43a02d7R45 `for (i = 0; i < candidate->num_spesh_slots; i++) { MVM_gc_worklist_add(tc, worklist, &(candidate->spesh_slots[i])); }` | 20:42 | ||
hm. `num_spesh_slots = 4152756840` | 20:44 | ||
timotimo | is that fefefefefe? | 20:46 | |
20:47
AlexDani` left
|
|||
MasterDuke | m: say 0xfefefefefe | 20:48 | |
camelia | 1095199817470 | ||
MasterDuke | m: say 0xfefefefe | ||
camelia | 4278124286 | ||
timotimo | m: say 0xfe, 0xfefe, 0xfefefe, 0xfefefefe, 0xfefefefefe | ||
camelia | 254652781671142242781242861095199817470 | ||
timotimo | m: say (0xfe, 0xfefe, 0xfefefe, 0xfefefefe, 0xfefefefefe).join(", ") | ||
camelia | 254, 65278, 16711422, 4278124286, 1095199817470 | ||
timotimo | ok, not quite, but almost | ||
m: say 4152756840.base(16) | |||
camelia | F7860A68 | ||
timotimo | certainly not a correct value for the amount of spesh slots | 20:49 | |
MasterDuke | seems one, maybe two more than expected, yeah | 20:50 | |
brrt | timotimo: what's the significance of fefefefe | 20:52 | |
timotimo | in one of the gc debug modes we overwrite the old nursery with that using memset | 20:53 | |
and maybe other things we free? | |||
brrt | that makes sense | 20:55 | |
20:58
MasterDuke left
21:13
MasterDuke joined
|
|||
MasterDuke | PR updated with current state. it builds nqp, but panics when building rakudo | 21:17 | |
21:26
mst left
22:01
[Coke] left
22:04
[Coke] joined,
[Coke] left,
[Coke] joined
22:29
brrt left
23:43
colomon__ left
23:45
colomon joined
23:46
colomon left
23:57
mst joined,
ChanServ sets mode: +o mst
|