[Coke] tries a fresh run of rakudo.moar daily testing. 01:48
[Coke] ponders setting up a bench-style intermediate clone so doing the next daily run is that much quicker.
looks like the daily build box is now getting a ./perl6-m that can -e 'say 3' 02:19
(with lots of extra diag output). Hangs on spectests, though. 02:20
diakopter what.
WOW 02:21
[Coke]: thank you :)
02:36 diakopter joined 02:41 ssutch joined 02:50 diakopter joined
diakopter [Coke]: ping 02:56
[Coke]: I killed all your host06 things; crazy weirdness was occurring
03:09 _ilbot joined 03:24 ssutch joined 03:47 ssutch joined 03:56 cognominal joined 05:27 JimmyZ joined
nwc10 good *, #moarvm 07:24
diakopter O/ :) 07:29
08:15 ssutch joined
nwc10 jnthn: On a 64 bit linux system, I can't build NQP if I set the MoarVM nursery size to 320K. 348K is fine. 11:10
This command fails:
/home/nicholas/Sandpit/moar-g/bin/moar --libpath=src/vm/moar/stage0 src/vm/moar/stage0/nqp.moarvm --bootstrap --module-path=gen/moar/stage1 --setting-path=gen/moar/stage1 --setting=NQPCORE --target=mbc --no-regex-lib --output=gen/moar/stage1/nqp.moarvm gen/moar/stage1/NQP.nqp
ctxlexpad needs an MVMContext 11:11
so I assume that this is a bug because something is not rooted
jnthn ooh 11:12
nwc10 er, I mean, 384K
with 256K there's a SEGV much earlier
I assume that it should all work, albeit very slowly, with small nursery sizes 11:13
jnthn Right.
So long as it's not smaller than the lagerst object we try to allocate
*largest
nwc10 and that bugs matter, because if things like deserialisation fail in NQP bootstrap because something in the deserialisation code fails to root 11:14
then they will also fail randomly in the runtime of any user code which tries to load something
jnthn Do you know it's load time?
nwc10 that question doesn't make enough sense to answer. 11:15
jnthn As in, deserialization time...
Ah, it's easier for me to reproduce it than ask. :) 11:16
jnthn sets nursery size to 327680K
nwc10: yay, I got that same error 11:21
FROGGS \o/ 11:31
13:27 tgt joined
nwc10 jnthn: I can't offer you this, but do you have access to a *nix system? (Something capable of mmap/mprotect/munmap) ? 13:51
jnthn: when building NQP, I believe that at line 16 of Lexotic.c, invokee is not rooted, and hence has ended up in fromspace 14:14
jnthn: paste.scsys.co.uk/285196 14:16
jnthn nwc10++ # great find! 14:18
nwc10 I'm going to mail perl6-compiler how I did it
jnthn
.oO( Not using the macro in src/gc/debug.h :) )
14:19
nwc10 because, this won't be the last one. And I didn't even drop the nursery size
oh, far more evil than that
jnthn There's another vulnerability in there too 14:20
nwc10 OK. I'm not familiar enough with the code to spot them 14:30
let alone know the right way to fix them
(There's the "Cargo cult" way, but that's not helpful)
"my" machine doesn't have a new enough gcc for -g3, let alone ASAN 14:32
and not enough free space (yet) for me to built it locally
oh, sorry, patches are full of tabs. 14:33
nwc10 hopes that (eg) FROGGS will find it useful to get a handle on the handle problem 14:37
dalek arVM: 3149fda | jnthn++ | src/core/frame.c:
Unbust backtraces.
arVM: 3c8127f | jnthn++ | src/6model/reprs/Lexotic.c:
Fix two issues in Lexotic invoke found by nwc10++.

Missing rooting (refactored to avoid needing it) and also an object was on the args stack that could move.
nwc10 anway, dogs don't walk themselves
mmm, my fan club has just come up to wag at me...
jnthn nwc10++ 14:38
nwc10 manual debugging is tedious. I want to make the computer do it. :-)
jnthn Hopefully the patch I just pushed helps. 14:42
moritz nwc10++ 14:43
[Coke] diakopter: thanks. I had an infinite loop somewhere. 15:05
ok. now the spec test runs and fails (nearly?) every test with a lot of diagnostic output. 15:11
gist.github.com/coke/7974107
jnthn [Coke]: I'd guess it fails all of them given Test.pm doesn't build yet? 15:12
[Coke] very likely. I was just excited that I could run r-m a bit. 15:17
jnthn++ 15:24
15:43 timotimo joined
FROGGS sad, it still explodes in m-BOOTSTRAP using -O3 16:18
nwc10 FROGGS: if you can whack the moles that I indentify (or use the thing I sent to the list to whack moles locally) we might get there 16:19
FROGGS nwc10: I already saved your patches :o)
but I need to do a bit more v5 today, which includes writing the advent calender post for tomorrow :/ 16:20
nwc10 ah 16:22
16:52 tgt joined 17:49 colomon joined 18:04 colomon joined 19:11 colomon joined 19:14 dalek joined 19:57 colomon joined
timotimo nwc10: cool stuff! :) 20:04
i wonder what the error we get when trying to build Test.pm really means 20:09
jnthn timotimo: Run it with --ll-exception to find out 20:10
timotimo oh, P6opaque: no such attribute '$!filename'? 20:11
jnthn Innerestin'
timotimo it tries to access an $! in a role 20:12
in X::Comp
jnthn oh, could that just be that we're missing the attribute fix from nom?
timotimo perhaps
jnthn no, can't be 20:13
timotimo well, very likely actually
... oops?
jnthn Otherwise, how'd we have got code that relies on it merged?
timotimo did we actually get any working X::Comp based exceptions?
jnthn Don't think so
timotimo so we never hit that, except now when i asked for a --ll-exception 20:14
timotimo writes up an ugly hack to see how much further he gets 20:15
jnthn gets latest builds of stuff on his laptop
timotimo: Yeah, get the same error. Hmmm. 20:40
moritz ./perl6-m --ll-exception -e 'Path.new("/foo/")' 20:43
MVMArray: atpos expected string register at src/Perl6/World.nqp:2464 (blib/Perl6/World.moarvm:frame_name_679:35)
there is no atpos or [] around line 2464 :( 20:44
timotimo what's the way to dump moarvm bytecode? 20:45
can we figure out what frame_name_679:35 does?
jnthn The $!filename error is actually looking like it's 'cus the export trait failed somehow 20:46
timotimo mhm, good to know 20:47
jnthn That is, that's why it's trying to construct an exception.
timotimo i wasn't able to fix it by making it is rw and using $. access
jnthn No, it's some Real bug.
FROGGS timotimo: there is moar --dump perl6.moarvm ..., but that last time I tried it just exploded 20:48
jnthn I don't imagine the reason --dump explodes is very deep
It's probably just out of date with something 20:49
Seems to be a generic instantiation issue. 20:56
Or something like that.
nwc10 jnthn: I broke it again. Oops. :-) 20:58
jnthn nwc10: If your "how I broke it" report is as accurate as last time, I'm happy :) 20:59
nwc10 I had guessed at maybe 15 GC bugs lurking
but as 2047K found a bug, I wonder if it's more like 150
however, the problem looks tractable 21:00
we just keep whacking moles until no more show up
jnthn Unfortunately, few of the GC bugs are actually anywhere under src/gc/
nwc10 but we have a very stubbon automated whacker
jnthn They're code elsewhere breaking invariants.
nwc10 yes. 21:01
jnthn I can only say, thank heavens the tricky stuff (parser, MOP, compiler, etc) is written in something running *on* the VM, not inside the VM. :)
nwc10 yes. If you wanted Perl 5, you know where to find it :-) 21:02
moritz thought the same, but with s/Perl 5/Parrot/ :-)
jnthn Also, (automated whacking)++ :)
nwc10 moritz: I think your thought is more accurate. When Perl 5 was new, it didn't know any better 21:03
and I think it's partly down to Moore's Law that we can write stuff in high level code and not have to wait forever for it to run
as in: A Computer's Perspective on Moore's Law - Humans are getting more expensive at an exponential rate 21:05
from www.caplet.com/adages.html
21:19 colomon joined 21:42 cognominal joined
dalek arVM: 1811ddf | jonathan++ | src/gc/collect.c:
Eliminate unreachable code.
21:46
arVM: bcdcaa3 | jonathan++ | src/core/frame.h:
Add frame ref-count inc/dec to public API.

Needed by Rakudo ext-ops.
jnthn nwc10++ # these bug reports are great 21:49
FROGGS: About? 21:52
FROGGS jnthn: what? 21:53
jnthn FROGGS: Rakudo sanity tests are still very sad under the debugger for me.
er
*junder the *harness*
Do you know what kind of I/O prove uses to get the results?
I get completely junk output... 21:54
(with -v)
t\01-sanity\10-say.t ............... 21:55
O U
No subtests run
By contrast, it actually captures the error backtraces...
ah, must be something with pipes... 21:56
FROGGS yeah, but I found nothing helpful when skimming through Test::Harness 21:57
jnthn C:\consulting\rakudo-moar>perl6-m -e "say 42" | more
O
Does it just happen on Windows?
FROGGS I can tell you in a few minutes... 21:58
jnthn C:\consulting\rakudo-moar>perl6-m -e "$*OUT.print('omg wtf bbq')" | more 22:00
ā•‘ā™„g wtf bbq
hmm...
FROGGS jnthn: is it a problem that we create the std handles that early? github.com/MoarVM/MoarVM/commit/35...9e155458fe 22:03
like, does it guess the stdout type at compile time of moarvm? 22:04
jnthn Well, I'd have rather we put that code outside of the 6model bootstrap, but it's happening in the right place, I think...
ooh, though, it happens before this: 22:05
/* get libuv default event loop. */
instance->default_loop = instance->main_thread->loop;
FROGGS ./perl6-m -e "say 42" | cat
42
22:05 colomon joined
jnthn Moving it for good measure but don't see it making a difference. 22:07
dalek arVM: 2eefa66 | jonathan++ | src/ (2 files):
Move standard handle setup to a better place.
22:16
jnthn FROGGS: ooh... 22:17
body->u.handle->data = body;
It's that interior pointer thing... 22:18
FROGGS yeah, I am not sure I understand the approach of fixing it
well, I am sure I did not understand the proposed fix :/ 22:19
jnthn Hm, and I can't remember the proposed fix. D'oh! :) 22:22
FROGGS jnthn: you said something about hanging off the pointer we assign there another level away 22:24
jnthn Yeah, seeing if I can figure it... 22:31
Doesn't seem to help :( 22:32
FROGGS :(
dalek arVM: 0a28ddb | jonathan++ | src/ (2 files):
Try to eliminate OSHandle interior pointer use.

Doesn't seem to break anything, at least. Testing needed.
22:33
jnthn I mean, it may well help something...
bah, I found it 22:47
FROGGS O.o 22:50
dalek arVM: 3122e83 | jonathan++ | src/io/fileops.c:
Enforce sync I/O when it's being assumed.

Not doing so was causing the string to write to get freed before it ever got written. With this, running tests under prove works reliably for Rakudo on Moar on Windows. Just got lucky on other OSes, I guess.
jnthn So, now I can see that we fail 6 of the sanity test files. 22:51
So we pass 23 - 6 = 17 of them. 22:52
FROGGS jnthn++ # !!
moar: 3rdparty/libuv/src/unix/stream.c:1452: uv_stream_set_blocking: Assertion `0 && "implement me"' failed. 22:54
a windows specifica :o)
diakopter hi
FROGGS hi diakopter 22:55
jnthn FROGGS: ugh, how'd you get that?
FROGGS jnthn: I just pulled, made install and went to my rakudo checkout and reconfigured
froggs@TL02L-R8RXTCW-linux:~/dev/MoarVM$ cd ../rakudo-moar/ 22:56
froggs@TL02L-R8RXTCW-linux:~/dev/rakudo-moar$ perl Configure.pl --backends=moar --prefix=../nqp/install --make-install
moar: 3rdparty/libuv/src/unix/stream.c:1452: uv_stream_set_blocking: Assertion `0 && "implement me"' failed.
like that
jnthn ugh...
FROGGS github.com/joyent/libuv/blob/maste...am.c#L1500 22:57
22:57 colomon joined
FROGGS NYI on linux 22:57
jnthn Oh, it only works on Windows?
FROGGS I suppose so
that is why it did not fail on my box
jnthn ok, mebbe for now I #ifdef WIN32 it. 22:58
And then we look into it further later.
FROGGS k
diakopter FUDGE
:)
jnthn TOFFEE
diakopter FROGGS: I no access the blog site 22:59
well, I didn't try this particular link
yeah, no access
dalek arVM: d3212c7 | jonathan++ | src/io/fileops.c:
Unbust non-Windows build.

Needs further investigation into what happens on other platforms.
23:00
FROGGS diakopter: here gist.github.com/FROGGS/8ac40e7efed...langs.html
jnthn Teaching tomorrow, so gonna take some rest 23:05
Will take a look at the nwc10++ GC bug reports and other sanity tests tomorrow...feel free to beat me to it ;) 23:06
'night
TimToady o/ 23:07
FROGGS o/ 23:10
23:48 melnichuks joined