benabik Blarg. OS X build failure (likely all *BSDs as well): "src/io/fileops.c:297:48: error: too few arguments to function call, expected 3, have 1 waitpid(handle->body.u.process->pid);" Leaving this here in case somebody gets time before I do. 19:16
FROGGS benabik: known 19:27
hoelzro++ was working on a fix but is afk for the week I think 19:28
benabik FROGGS: :,( 19:33
*blink* waitpid seems to have 3 arguments on Linux too. 19:35
FROGGS huh
how on... <add favourite planet here> 19:36
that would be an easy fix then^^
benabik ... I'm wondering if it doesn't #include <sys/wait.h>, so C is assuming it's an int(int)
benabik hates that "feature" 19:37
FROGGS yeah
doing wrong things because of being lax is one of the worst things out there
jnthn ugh 19:38
All the waitpid docs I see need 3 args. 19:39
FROGGS >.<
benabik: are you about to push a fix like waitpid(mumble, NULL, 0) (and the include), or shall I? 19:40
benabik FROGGS: I'm alternating between schoolwork and this. Hadn't yet gotten to it. We might want to add the include when needed though... 19:41
jnthn How does the call ever work out if it's missing two args?
benabik Top of stack is first argument. 19:43
So it's using whatever variables happen to be on top of stack as arg 2 & 3.
Oh on x64 it's probably using registers. So whatever happens to be in RSI/RDX. 19:44
We might have lucked out and those values tend to be zero. 19:46
jnthn Naming a register RSI is...ouch :P 19:47
benabik :-D
FROGGS does this look good? gist.github.com/FROGGS/601af1d005a0c1b13df5 19:48
benabik FROGGS: Looks good to me. sys/wait.h is on both Linux and OS X, so probably is general enough. :-) 19:50
FROGGS good :o)
dalek arVM: 29b1208 | (Tobias Leich)++ | src/ (2 files):
fix use of waitpid
19:51
benabik And it compiles. Bonus. 19:52
FROGGS cool! 19:53
FROGGS nqp: 72057594037927936 20:02
camelia ( no output ) 20:03
FROGGS nqp: gist.github.com/FROGGS/64c224637a10fff02e33 20:07
camelia nqp-parrot: OUTPUT«Error while compiling op list (source text: ","): Cannot infer type from '72057594037927936'␤current instr.: '' pc 57008 (gen/parrot/stage2/QAST.pir:21035) (gen/parrot/stage2/QAST.nqp:3629)␤»
..nqp-moarvm: OUTPUT«(signal SEGV)Object does not exist in serialization context␤ at /tmp/tmpfile:34 (<ephemeral file>::74)␤ from /tmp/tmpfile:24 (<ephemeral file>::58)␤ from /tmp/tmpfile:14 (<ephemeral file>::47)␤ from gen/moar/stage2/NQPHLL.nqp:1090 (/home/p6eval/rakud…»
..nqp-jvm: OUTPUT«1..1␤Missing serialize function for REPR P6bigint␤ in (/tmp/tmpfile:34)␤ in (/tmp/tmpfile:24)␤ in (/tmp/tmpfile:14)␤ in (gen/jvm/stage2/NQPHLL.nqp:1099)␤ in eval (gen/jvm/stage2/NQPHLL.nqp:1085)␤ in evalfiles (gen/jvm/stage2/NQPHLL.nqp:1291)…»
FROGGS :o( 20:08
nqp: gist.github.com/FROGGS/64c224637a10fff02e33 20:27
camelia nqp-parrot: OUTPUT«1..275␤ok 1 - serialized P6bigint instance has correct value␤ok 2 - serialized P6bigint instance has correct value␤ok 3 - serialized P6bigint instance has correct value␤ok 4 - serialized P6bigint instance has correct value␤ok 5 - serialized P6bigint inst…»
..nqp-jvm: OUTPUT«1..275␤Missing serialize function for REPR P6bigint␤ in (/tmp/tmpfile:51)␤ in (/tmp/tmpfile:41)␤ in (/tmp/tmpfile:14)␤ in (gen/jvm/stage2/NQPHLL.nqp:1099)␤ in eval (gen/jvm/stage2/NQPHLL.nqp:1085)␤ in evalfiles (gen/jvm/stage2/NQPHLL.nqp:1291)…»
..nqp-moarvm: OUTPUT«(signal SEGV)»
FROGGS this passes on nqp-m using the maybe-varint branch 20:28
jnthn yay
FROGGS jnthn: it the nqp-j behaviour expected?
is*
jnthn FROGGS: It's odd, given that it must be able to serialize it for Rakudo 20:31
FROGGS: But I think there's a separate code-path for inlined serialization
FROGGS ahh
jnthn: a keyword I could grep for? 20:32
then I'd adjust the test to do the same
jnthn FROGGS: Well, if you look in the bigint test file, you can see it creating a P6opaque with a bigint inside of it 20:34
FROGGS ahh, kthxbai :o)
jnthn puts aside $dayjob to look at Perl 6 things a bit 20:36
FROGGS :o)
jnthn First task is looking at RT#121213 20:37
FROGGS RT #121213 20:38
where is that bot?
found it :o)
nqp: gist.github.com/FROGGS/5b8f6ffd8bab253a5999 20:47
camelia nqp-moarvm, nqp-jvm, nqp-parrot: OUTPUT«1..275␤ok 1␤ok 2␤ok 3␤ok 4␤ok 5␤ok 6␤ok 7␤ok 8␤ok 9␤ok 10␤ok 11␤ok 12␤ok 13␤ok 14␤ok 15␤ok 16␤ok 17␤ok 18␤ok 19␤ok 20␤ok 21␤ok 22␤ok 23␤ok 24␤ok 25␤ok 26␤ok 27␤ok 28␤ok 29␤ok 30␤ok …»
FROGGS so why does that work on moar too?
jnthn dunno... 20:51
Was it meant to trigger the same bug?
Does it somehow come out as big? 20:52
FROGGS it was meant to trigger the bug, yes 20:53
it must come out as big or the test would fail, no? 20:54
maybe the varint stuff is not used for inlined serialization?
there are no different code paths for that on moar, right?
jnthn No, same code path on moar 20:55
Maybe it's coming out big when it needn't?
FROGGS :/
how do I even check that?
jnthn With difficulty given you're not meant to care from the outside... Breakpoint in serialize? 20:56
Or printf :P
FROGGS damn, I am tired... I'll leave you doing moar fun stuff now :o)
I'll care about that tomorrow 20:57
jnthn kk
I think I've got a patch for that RT
timotimo what did i do wrong again? :) 21:06
dalek arVM: eff1178 | jnthn++ | src/core/frame. (2 files):
Provide mechanism for special action on unwind.

To go with the special return mechanism. Will enable various memory leak fixes as well as fixing an active handler sync bug.
21:08
arVM: ef82378 | jnthn++ | src/core/exceptions.c:
Properly clean up active handlers on unwind.

Fixes Rakudo's RT#121213.
jnthn timotimo: Probably nothing this time :)
timotimo phew 21:09
hoelzro FROGGS: I had some insight into the waitpid thing 23:37
my solution was to busy wait on uv_run 23:38
but I think since we're waiting for a signal from the child process, we can call pause
it's probably not portable, though
hoelzro gos back to vacation
jnthn sleep; 'night o/ 23:47