github.com/moarvm/moarvm | IRC logs at colabti.org/irclogger/irclogger_logs/moarvm Set by AlexDaniel on 12 June 2018. |
|||
japhb_ | nwc10++ # Unrotting the bits | 00:19 | |
timotimo | ohai japhb | 01:10 | |
how's things? | |||
06:20
frost-lab joined
|
|||
nwc10 | good *, #moarvm | 07:20 | |
07:22
evalable6 joined
07:23
linkable6 joined
08:16
sena_kun joined
10:14
leont joined
|
|||
jnthn | good * | 10:16 | |
nine | good good! | 11:01 | |
nqp::exit really doesn't play well together with --full-cleanup. E.g. we may still have locked locks like quite ironically $the-end-locker. | 11:02 | ||
Well our profiler is at least very consistent: it doesn't free any of its memory, ever. | 11:11 | ||
11:12
squashable6 joined
|
|||
jnthn | Yup, another of those "we'll be exiting anyway, why do what the OS will do" :) | 11:17 | |
We might still have locked locks in a normal exit (e.g. all foreground threads finish) too | 11:18 | ||
nine | I worked around this by just unlocking all mutexes in gc_free if we're in global destruction already | 11:24 | |
jnthn | Hm, can you just do that? I thought wrong thread unlocking a mutex was an abort also... | 11:38 | |
MasterDuke | jnthn: extracting out the new MVMSpeshCandidatesAndArgGuards struct isn't going as easily as i'd hoped. maybe i should have started from a blank slate instead of adopting what i'd tried first. if you've a couple min to spare, does gist.github.com/MasterDuke17/fd236...07aad7722f look like it's on the right track? or am i | 11:44 | |
missing something blindingly obvious? i feel like i keep adding new conditionals that i wasn't expecting to need | |||
nine | jnthn: darn....you're right. Unlocking a foreign mutex results in either undefined behavior or an error returned | 11:49 | |
But, all hope may still not be lost. I can't do anything about someone manually locking a lock and allowing a thread to end with the lock in this state. But all well behaved code should be ok. After all full-cleanup does end all foreground and background threads gracefully | 11:51 | ||
jnthn | nine: I dunno, if I have a background worker that I don't care when gets pulled down, and it may acquire a mutex on occasion, then I don't think it's especially badly behaved | 11:55 | |
But it would be in trouble | |||
(In the full-cleanup state) | 11:56 | ||
11:57
Altai-man joined
|
|||
nine | So far to be OK with full-cleanp your background worker has to react to getting a vmnull from a queue by exiting and unlocking any mutex is holds. I guess that's reasonable to ask for? | 11:57 | |
12:00
sena_kun left
|
|||
jnthn | Yes, though of course that means that --full-cleanup changes the semantics in that a task on the threadpool now can block shutdown | 12:00 | |
Given this mode is primarily for our own leak finding, though, I don't think that's a big deal | 12:01 | ||
nine | If your worker doesn't implement this, you may end up with a hang on exit or maybe an abort when run with full-cleanup. You'd get a panic now | ||
The other use case is embedding. But there one can probably assume that either the code is more tightly controlled by the embedder anyway or additional rules can apply | |||
12:38
frost-lab left
|
|||
timotimo | could put in a timeout that panics the vm if a thread doesn't react to the shutdown request in time | 13:07 | |
also, we could inject exceptions into other threads as long as we can get them to wake up and run into a gc barrier | 13:08 | ||
nwc10 | this would be "wake up, time to die" ? | 13:11 | |
timotimo | a good day to die in glorious combat! | ||
[Coke] | Qapla'! | 13:14 | |
13:54
zakharyas joined
14:47
rypervenche joined
15:26
vrurg_ joined
15:29
vrurg left
15:59
sena_kun joined,
Altai-man left
16:00
brrt joined
|
|||
brrt | good * | 16:01 | |
nwc10 | good *, brrt | ||
16:40
patrickb joined
16:46
patrickb left
|
|||
Geth | MoarVM/asan_fixes: 4 commits pushed by (Stefan Seifert)++ | 16:50 | |
17:07
leont left
17:17
Kaiepi left
17:43
domidumont joined
18:13
Kaiepi joined
18:16
domidumont left
18:19
ggoebel joined
|
|||
ggoebel | #raku | 18:19 | |
brrt | ohai ggoebel | 18:39 | |
ggoebel | o/ | 18:40 | |
brrt | .tell nine it may be worth having a MVM_VECTOR_PARAM(x) macro that specifies the vector as a parameter, and maybe an equivalent MVM_VECTOR_ARG(x) that does the same for arguments | ||
tellable6 | brrt, I'll pass your message to nine | ||
18:49
zakharyas left
19:13
leont joined
19:47
brrt left
19:57
zakharyas joined,
Altai-man joined
20:00
sena_kun left
20:06
tobs joined
20:11
tobs left
20:14
tobs joined
20:18
tobs left
20:21
tobs joined
21:00
tobs left
21:06
tobs joined
21:09
ggoebel left
21:11
tobs left
21:15
ggoebel joined
21:16
brrt joined
21:19
tobs joined
21:22
rypervenche left
21:25
rypervenche joined
21:35
zakharyas left
|
|||
MasterDuke | interesting. i now get a bit further in the nqp build, but get a segv in MVM_str_hash_key_is_valid, and the backtrace doesn't have any code i touched | 21:52 | |
timotimo: btw, i now get a bunch of new warnings in debugserver code | 21:54 | ||
after i rebased my branch to master | |||
timotimo | i bet it's format strings again | 22:01 | |
MasterDuke | nope | 22:03 | |
gist.github.com/MasterDuke17/68a01...182379a730 | |||
timotimo | ah, those are harmless but can still be fixed easily | 22:04 | |
22:07
Altai-man left
22:30
brrt left
|