| timotimo | it seems like IO::Socket::Async explodes violently when you try to send data on an unopened socket | 00:05 | |
| i'm trying to put in a check at the C level rather than introduce a $!closed or something | 00:06 | ||
| and i'm not quite getting it ... | |||
| hum ... | 00:08 | ||
| it's crashing, but it doesn't seem to happen the same way | |||
| and i can't find anything that'd be obvious to look at | 00:09 | ||
| my debuginfo packages all seem to be broken :\ | 00:12 | ||
| not matching what i have installed any more | |||
|
04:03
FROGGS_ joined
04:32
vendethiel joined
04:58
ShimmerFairy joined
05:52
vendethiel joined
06:44
vendethiel joined
07:18
vendethiel joined
08:16
vendethiel joined
09:15
vendethiel joined
|
|||
| jnthn | hah, DST...that's why I thought I slept unusually long :) | 10:25 | |
| timotimo: The idle handler is looking for new work. There should be a better way to handle this. | |||
|
10:28
JimmyZ joined
10:30
JimmyZ joined
|
|||
| dalek | arVM: 788d64f | jnthn++ | src/6model/sc.c: Improve "No foo at index 123" errors. Indicate the compilation unit that was involved in the version skew. |
10:49 | |
|
11:50
vendethiel joined
12:47
vendethiel joined
13:00
colomon joined
13:53
zakharyas joined
14:09
colomon joined,
rurban_ joined
|
|||
| FROGGS | Probable version skew in pre-compiled '/home/froggs/dev/panda/ext/File__Find/lib/File/Find.pm' (cause: no object at index 296) | 14:09 | |
| gist.github.com/FROGGS/60d3852e84a16f496955 | 14:10 | ||
|
14:11
brrt joined
14:17
kjs_ joined
|
|||
| jnthn | FROGGS: Yes, that's the improved reporting :) | 14:26 | |
| FROGGS | yeah, though I don't have a clue what goes wrong offhand :o) | 14:27 | |
| the only thing that looks weird is that it talks about a precomp thing and reports Find.pm | |||
| and not Find.pm.moarvm | 14:28 | ||
| jnthn | It pulls the description out of the SC | 14:29 | |
| Which is the source file name | |||
| This could maybe happen if you pre-compile the Shell::Command module against a pre-comp'd File::Find | |||
| But then come load time it fails to find the pre-comp'd File::Find and goes for the source one instead and thus re-compiles it | 14:30 | ||
| FROGGS | hmmm | 14:31 | |
| jnthn | Dunno if the env var you can set to debug module loads helps here. | ||
| FROGGS | RAKUDO_MODULE_DEBUG | 14:34 | |
| jnthn: btw, I cannot reproduce your panda/panda-m issue on windows... | 14:35 | ||
| jnthn | Aww | ||
| OK, I'll toss my install dir again on latest, later on | |||
| FROGGS | or was that just about passing --ver before gen-meta? | 14:36 | |
| jnthn | No, panda vs panda-m was the issue | ||
| FROGGS | hmmm | ||
| weee-uhd | |||
| jnthn | Were any of the PRs you sent for provides sections on my modules? :) | ||
| jnthn sees no emails and guesses not | |||
| FROGGS | github.com/jnthn/grammar-debugger | ||
| jnthn | hmm | ||
| github, y u no email me | 14:37 | ||
| Merged that one, anyways.. | 14:38 | ||
| FROGGS | k | ||
| :o) | |||
| jnthn | I'm going to go through mine for what needs "use nqp" also :) | ||
| but, later :) & | 14:40 | ||
| FROGGS | ahh grrr, I know why | 14:41 | |
| the File/Find.moarvm is installed as the first file, so it is just called '0'... which is falseish -.- | 14:42 | ||
| FROGGS facepalms | |||
|
14:50
dalek joined
|
|||
| FROGGS | no, it might not be that simple :/ | 14:55 | |
|
15:04
colomon joined
15:07
colomon joined
15:15
vendethiel joined
15:18
colomon joined
15:24
brrt joined
|
|||
| FROGGS | okay, I know what heppens | 15:24 | |
| happens, even | |||
|
15:46
colomon joined
16:07
brrt joined
16:56
mj41 joined
17:20
colomon joined
17:33
vendethiel joined
17:36
colomon joined
17:50
colomon joined
18:06
colomon joined
18:20
colomon joined
18:23
colomon joined
18:39
colomon joined
18:59
colomon joined
19:06
kjs_ joined
19:18
kjs_ joined
19:39
zakharyas joined
20:01
psch joined
|
|||
| psch | \o | 20:01 | |
| jnthn | o/ | 20:02 | |
| psch | jnthn: both calls to MVM_string_decode have MVM_encoding_type_utf8 | ||
| i think default Configure.pl builds with linenoise and not readline? | |||
| jnthn | Yes, default is linenoise | 20:03 | |
| I was more curious about the other argument, as in what does linenoise give back in the ^D case? | |||
| psch | hm, setting a bp in fileops.c:352 still straight SEGVs | 20:07 | |
| i might be doing it wrong :) | |||
| well, neither MVM_file_readline_interactive_fh nor fileops.c:352 as breakpoint let me look at the return value of linenoise - both rather just SEGV | 20:12 | ||
| i don't think i can easily put my usual debug-prints there... | |||
| not to mention those usually are a bit less meaningful in C code | |||
| FROGGS | jnthn: I try to make `num32 is rw` in signatures work... but the variable in P6 does not get updated... | 20:13 | |
| gist.github.com/FROGGS/7a95f8fd17b...-diff-L108 | |||
| jnthn | MVM_repr_set_num is surely wrong | ||
| FROGGS | I correctly get the value back after the all, but set_num does ... | ||
| ohh | |||
| jnthn | In fact, you should probably never call that ever :) | ||
| It's changing the boxed value in a presumably immutable Int | |||
| FROGGS | hmm, it felt sane :o) | ||
| ups | |||
| jnthn | For "is rw" we need to deal with the native ref stuff | 20:14 | |
| psch: I wonder a bit if linenoise gives us back a NULL in the ^D case, and then we mis-handle that... | |||
| FROGGS | hmm, I have no idea (yet) what exactly that means | ||
| jnthn | FROGGS: Unfortunately, there's another problem... :( | ||
| FROGGS: When we code-gen native calls, we go and de-containerize all the arguments at the moment | 20:15 | ||
| FROGGS: Meaning the native ref never makes it to us | |||
| FROGGS | hmmm | ||
| jnthn | FROGGS: Well, it means you're wanting to do something like the assign_n op does. | ||
| But unfortunately, the other problem is going to block this bit. | 20:16 | ||
| + void **free_rws = NULL; | 20:17 | ||
| That part of your approach is exactly what I'd have done, fwiw :) | |||
| FROGGS | \o/ | ||
| jnthn | MVM_6model_container_assign_n is more like what you're looking for, anyways. | ||
| FROGGS | yeah, as you said the assign_n results in 'Cannot assign to an immutable value' | 20:18 | |
| jnthn | Yeah, 'cus we strip :( | ||
| FROGGS | but... just getting rid of the decontainerizing in nqp is also not enough, right? | ||
| jnthn | Well, then we'd get a different problem | 20:19 | |
| FROGGS | do we have to conditionally decontainerize? | ||
| jnthn | (Scalar containers around stuff) | ||
| psch | "if (count == -1) return NULL;" says linenoise.c:405 | ||
| and we init return_str = NULL | |||
| FROGGS | (if that would be easily possible, which I think is not true) | ||
| psch | and if(line) { ... } else { data->eof } ... return return_str; | 20:20 | |
| jnthn: i think those might should mean you're right. we're getting NULL from linenoise and return our initialization NULL | |||
| jnthn | Yeah...that bit should be OKish | ||
| psch | s/those/those bits/ | ||
| (and minus one of should | might) | 20:21 | ||
| jnthn | psch: Anyway, it seems like concatenate isn't being sufficiently careful about NULL inputs | 20:24 | |
| psch | jnthn: neither is say. concatenate is where i found it because i concat for moreinput, but my golf SEGVs in say | 20:25 | |
| jnthn | *nod* | 20:26 | |
| Yeah, looks like not much is. | |||
| Question is why we got away with this before now... | |||
| FROGGS | ohh, we already had NULLs in concat | ||
| but we usually solved what put the NULLs in there :o) | |||
| psch | yeah, that's what i'm wondering | 20:27 | |
| FROGGS | making it more robust would "solve" a spesh bug Tux was hitting in Text::CSV | ||
| psch | i mean, whether it's more sensible to not let any NULLs in or take care everything can deal if they come from somewhere even though they probably shouldn't anyway | ||
| jnthn | my $newcode := nqp::readlineintfh($stdin, ~$prompt); | 20:28 | |
| if nqp::isnull($newcode) || !nqp::defined($newcode) { | |||
| That's the code from HLL::Compiler | |||
| psch | mostly from an tuit-efficiency perspective | ||
| jnthn | psch: Well, I'd rather put guards for them into string ops.c tbh | ||
| nqp-m: my $x := nqp::null_s(); say(nqp::isnull($x)) | 20:29 | ||
| camelia | nqp-moarvm: OUTPUTĀ«0ā¤Ā» | ||
| jnthn | nqp-m: my $x := nqp::null_s(); say(nqp::defined($x)) | ||
| camelia | nqp-moarvm: OUTPUTĀ«1ā¤Ā» | ||
| jnthn | There the null string is boxed | ||
| And we test the box, which will never be null and always be defined | 20:30 | ||
| psch | so readlineintfh should return a boxed NULL on EOF? | 20:31 | |
| jnthn | No | 20:32 | |
| Ops that have native things to hand back never box stuff, by design | |||
| It's for the compiler to emit a "box this" op | |||
| The question is what we should do if asked to box a NULL string | 20:33 | ||
| We could return a null object (tc->instance->VMNull) | 20:35 | ||
| Which would make the code in HLL::Compiler actually work | |||
|
20:45
brrt joined
|
|||
| psch | jnthn: i don't get it. my golf dies in MVM_string_say in < if (!IS_CONCRETE((MVMObject *)a)) >, with a = 0x0 | 20:59 | |
| jnthn: i assume that means that whatever came from readlineintfh is NULL | |||
| jnthn: the golf itself doesn't box | |||
| jnthn | psch: Yes, the problem is there's no !a || at the start of that if | 21:05 | |
| IS_CONCRETE isn't a NULL check, it's a concreteness check assuming we have an object | 21:06 | ||
| psch | ah, okay. that's one of the spots that should be guarded then | ||
| similarly for concatenate i guess | |||
| jnthn | yeah | ||
| I'm still pondering on the box null string question, though | |||
| We could just throw | |||
|
21:10
kjs_ joined
|
|||
| psch | i think readlineintfh shouldn't return NULL, actually. guarding in the say if throws on ^D, which isn't really useful behavior | 21:11 | |
| jnthn | Well, what should it return? | 21:13 | |
| psch | ...right. a str is what's in memory, isn't it | 21:14 | |
| jnthn | ? | ||
| An MVMString * goes in an s register | |||
| That's the "str" type in Perl 6. | 21:15 | ||
| (And NQP) | |||
| I think the NULL is reasonable enough, it's just that boxing it into an object giving an object containing a NULL MVMString on it kicks the problem a long way too far down the road. | 21:16 | ||
| For now, I'd my str $newcode := ... in HLL::Compiler, and nqp::isnull_s | 21:17 | ||
| (and toss the !nqp::defined bit) | |||
| That'll work whichever option we pick for sanifying the "box a NULL" | |||
| And is probably what was intended anyway | |||
| psch | i'm not seeing any trouble in HLL::Compiler, i found the SEGV in the moreinput branch with: | 21:18 | |
| $more := nqp::readlineintfh(nqp::getstdin, '* '); | |||
| $cursor."!APPEND_TO_ORIG"($more); | |||
| but the same advice probably fits there as well | |||
| jnthn | Yes, make $more a str | 21:19 | |
| And do the check | |||
| Think I'll sleep on whether to throw or magically produce a null object | |||
| The fact I used "magically" to describe it probably means it's a bad idea :) | |||
| psch | i'll sleep too, i think | 21:20 | |
| understanding seems a bit hard right now | |||
| g'night \o | 21:21 | ||
| jnthn | 'night o/ | 21:22 | |
|
21:33
rudi_s joined
21:34
kjs_ joined
22:26
colomon joined
22:36
colomon joined
23:01
colomon joined
|
|||