00:07
colomon joined
00:20
colomon joined
01:47
ilbot3 joined
03:22
ShimmerFairy joined
03:42
lizmat_ joined
06:24
vendethiel joined
06:34
lizmat joined
06:39
FROGGS joined
07:05
virtualsue joined
07:55
kjs_ joined
07:59
virtualsue joined
08:00
_itz_ joined
08:42
kjs_ joined
08:52
zakharyas joined
08:58
Ven joined
08:59
FROGGS joined
09:08
lizmat joined
09:33
zakharyas joined
10:04
zakharyas joined
10:07
virtualsue joined
10:08
kjs_ joined
10:36
btyler_yapc joined
10:44
Ven joined
|
|||
btyler_yapc | hi folks. this is probably a more appropriate place than #perl6 to chat about a MVM segfault: gist.github.com/kanatohodets/66427...7c2616f6f2 (updated with some digging I did). it reproduces very nearly every time, but a sleep solves it, so I think it's a race between closing/freeing the handle and writing to it | 10:45 | |
(will backlog, leaving venue for a bit) | 10:53 | ||
11:35
colomon joined
11:38
kjs_ joined
12:13
Ven joined
12:35
JimmyZ joined
12:38
btyler_yapc joined
|
|||
dalek | arVM: d78c018 | (Jimmy Zhuo)++ | src/core/threads.c: remove a needless MVMROOT |
12:48 | |
arVM: ff26781 | paultcochrane++ | src/core/nativecall_dyncall.c: Add missing break statement to callback_handler switch cascade It seems that a break statement is missing in the MVM_NATIVECALL_ARG_* cascade of case statements. This adds the missing break. The NQP tests pass. |
12:50 | ||
arVM: e6d1074 | (Jimmy Zhuo)++ | src/core/nativecall_dyncall.c: Merge pull request #249 from paultcochrane/pr/add-missing-break-statement Add missing break statement to callback_handler switch cascade |
|||
13:10
btyler_yapc joined
13:41
Ven_ joined
14:12
Ven_ joined
|
|||
btyler_yapc | I think this: github.com/MoarVM/MoarVM/pull/255 resolves the segfault I mentioned earlier. Unfortunately you can still make things explode by doing $sock.close and $sock.print("stuff"), but I'll poke at that next :) | 14:15 | |
timotimo | btyler_yapc: oh, is your github user kanatohodets? | 14:22 | |
btyler_yapc | yep, that's me | 14:23 | |
timotimo | i totally didn't know that | 14:24 | |
14:25
lizmat joined
14:26
kjs_ joined
14:29
FROGGS joined
14:45
kjs_ joined
14:59
Ven_ joined
|
|||
hoelzro | proc async has some race conditiony stuff in it; I wouldn't be surprised if async socket did too | 15:07 | |
lizmat | hoelzro: me neither :-) | 15:08 | |
hoelzro | as long as I'm here...I've been working on updating nqp-js' deserializer to work with MoarVM serialization format 15, but the final solution seems to be eluding me. Is there a way to get --dump to tell me how many objects/stables/etc are in an SC, and where in the SC they are sleeping? | 15:09 | |
15:10
zakharyas joined
15:11
njmurphy joined
|
|||
hoelzro | btyler_: does $sock.close work instantly on the socket? or does it get scheduled in the async queue? | 15:12 | |
it should probably do the latter | |||
timotimo | if it's an async socket, then yeah, totally should | 15:19 | |
15:41
rarara joined
|
|||
JimmyZ | jnthn: it would be nice to take a quick review to PR 255 :) | 15:46 | |
jnthn | I think that "if" becomes kinda redundant if we remove the NULLing, but we probably also remove a race by pushing things off to the event loop thread to deal with | 15:52 | |
Hm, actually there probably ain't a race. | 15:53 | ||
But yeah, the if check is redundant | |||
(if the NULL-ing goes away) | |||
And it probably does have to go away. | |||
JimmyZ | so we can merge it and remove the if check | 15:55 | |
jnthn | I think I'm good with that | 15:57 | |
dalek | arVM: afbc27a | (Ben Tyler)++ | src/io/asyncsocket.c: Fix write to null handle on async socket. This NULL-ing in close_socket was premature, since MVM_free catches this same handle when the task is processed by the event loop in 38d153d | (Jimmy Zhuo)++ | src/io/asyncsocket.c: remove redundant if check |
16:03 | |
16:04
dalek joined
|
|||
16:09
btyler_yapc joined
|
|||
btyler_yapc | hi -- saw the backlog. the close already is scheduled on the event loop | 16:10 | |
thanks for taking a look! | 16:11 | ||
it isn't obvious that it's an async close at first glance, because nqp::closefh eventually winds up in MVM_io_close, which wraps different kinds of closing for different things; async sockets implement that API with a uv scheduled close (at least, this is my understanding) | 16:12 | ||
JimmyZ | jnthn: btw: I think I found a bug which is in fixed allocation . FYI. | 16:18 | |
jnthn: issues/234, that's it | 16:19 | ||
jnthn | Possibly, but it's equally likely that the different memory layout achieved by turning on FSA_DEBUG just hides the issue | 16:21 | |
It should make the issue more ASAN-able though | |||
JimmyZ | yeah. | 16:22 | |
FAS_DEBUG looks like always malloc() | 16:24 | ||
timotimo | jnthn: can you help me figure out why our code-gen would produce a lexicalref-decl'd var for things like "my int $foo; while $foo < 10 { $foo++ }"? | ||
jnthn | Uh...well, the ++ operator will have one. | 16:25 | |
timotimo | i can see why it'd want to use a lexicalref scoped mention of it later on, but why is that in the declaration? | ||
oh, my example code doesn't actually ++, it just says the value | |||
and i don't entirely understand why the lexicalref decl'd var actuallly works, as there's no lexical it can refer to :| | 16:26 | ||
in "my int $foo" the code we generate is basically assign_i(my lexicalref int $foo, 0) | 16:27 | ||
BBIAB | 16:28 | ||
last time i looked at the code, it looked like it was supposed to never set lexicalref when it created the QAST::Var when $*IN_DECL was set to something specific | 17:49 | ||
timotimo looks again | |||
ah, yes, $*IN_DECL ne 'variable' | 17:50 | ||
that surprised me quite a bit, as it was actually a variable declaration that was resulting in a lexicalref var | 17:52 | ||
and even then it'd only set it if the lexical is marked ro | |||
this may actually be the wrong piece of code i'm looking at, but there's not many other places that set lexicalref | 18:05 | ||
18:13
pyrimidine joined,
dalek joined
19:21
colomon joined
|
|||
dalek | arVM: fe40cbf | FROGGS++ | / (9 files): re-apply patch to add C++/NativeCall support |
19:35 | |
timotimo | oh, huh, we just always set the scope to lexicalref if we have a non-object, huh? | 20:12 | |
that doesn't unify with how i understand lexicalref'd vars are code-gen'd | 20:14 | ||
20:15
diakopte1 joined
21:03
Ven joined
21:08
ShimmerFairy joined
21:10
ashleydev joined
21:11
diakopter joined
21:16
lizmat joined,
lizmat_ joined
21:55
Ven joined
23:02
japhb joined
23:07
japhb joined
|