Perl 6 - the future is here, just unevenly distributed

IRC log for #moarvm, 2013-12-15

| Channels | #moarvm index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

Time Nick Message
01:48 * [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.
02:19 [Coke] looks like the daily build box is now getting a ./perl6-m that can -e 'say 3'
02:20 [Coke] (with lots of extra diag output). Hangs on spectests, though.
02:20 diakopter what.
02:21 diakopter WOW
02:21 diakopter [Coke]: thank you :)
02:36 diakopter joined #moarvm
02:41 ssutch joined #moarvm
02:50 diakopter joined #moarvm
02:56 diakopter [Coke]: ping
02:56 diakopter [Coke]: I killed all your host06 things; crazy weirdness was occurring
03:09 _ilbot joined #moarvm
03:09 Topic for #moarvm is now https://github.com/moarvm/moarvm | IRC logs at  http://irclog.perlgeek.de/moarvm/today
03:24 ssutch joined #moarvm
03:47 ssutch joined #moarvm
03:56 cognominal joined #moarvm
05:27 JimmyZ joined #moarvm
07:24 nwc10 good *, #moarvm
07:29 diakopter O/ :)
08:15 ssutch joined #moarvm
11:10 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 nwc10 This command fails:
11:10 nwc10 /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
11:11 nwc10 ctxlexpad needs an MVMContext
11:11 nwc10 so I assume that this is a bug because something is not rooted
11:12 jnthn ooh
11:12 nwc10 er, I mean, 384K
11:12 nwc10 with 256K there's a SEGV much earlier
11:13 nwc10 I assume that it should all work, albeit very slowly, with small nursery sizes
11:13 jnthn Right.
11:13 jnthn So long as it's not smaller than the lagerst object we try to allocate
11:13 jnthn *largest
11:14 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 nwc10 then they will also fail randomly in the runtime of any user code which tries to load something
11:14 jnthn Do you know it's load time?
11:15 nwc10 that question doesn't make enough sense to answer.
11:15 jnthn As in, deserialization time...
11:16 jnthn Ah, it's easier for me to reproduce it than ask. :)
11:16 * jnthn sets nursery size to 327680K
11:21 jnthn nwc10: yay, I got that same error
11:31 FROGGS \o/
13:27 tgt joined #moarvm
13:51 nwc10 jnthn: I can't offer you this, but do you have access to a *nix system? (Something capable of mmap/mprotect/munmap) ?
14:14 nwc10 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:16 nwc10 jnthn: http://paste.scsys.co.uk/285196
14:18 jnthn nwc10++ # great find!
14:18 nwc10 I'm going to mail perl6-compiler how I did it
14:19 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
14:19 nwc10 oh, far more evil than that
14:20 jnthn There's another vulnerability in there too
14:30 nwc10 OK. I'm not familiar enough with the code to spot them
14:30 nwc10 let alone know the right way to fix them
14:30 nwc10 (There's the "Cargo cult" way, but that's not helpful)
14:32 nwc10 "my" machine doesn't have a new enough gcc for -g3, let alone ASAN
14:32 nwc10 and not enough free space (yet) for me to built it locally
14:33 nwc10 oh, sorry, patches are full of tabs.
14:37 * nwc10 hopes that (eg) FROGGS will find it useful to get a handle on the handle problem
14:37 dalek MoarVM: 3149fda | jnthn++ | src/core/frame.c:
14:37 dalek MoarVM: Unbust backtraces.
14:37 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/3149fdaf0d
14:37 dalek MoarVM: 3c8127f | jnthn++ | src/6model/reprs/Lexotic.c:
14:37 dalek MoarVM: Fix two issues in Lexotic invoke found by nwc10++.
14:37 dalek MoarVM:
14:37 dalek MoarVM: Missing rooting (refactored to avoid needing it) and also an object
14:37 dalek MoarVM: was on the args stack that could move.
14:37 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/3c8127fd13
14:37 nwc10 anway, dogs don't walk themselves
14:37 nwc10 mmm, my fan club has just come up to wag at me...
14:38 jnthn nwc10++
14:38 nwc10 manual debugging is tedious. I want to make the computer do it. :-)
14:42 jnthn Hopefully the patch I just pushed helps.
14:43 moritz nwc10++
15:05 [Coke] diakopter: thanks. I had an infinite loop somewhere.
15:11 [Coke] ok. now the spec test runs and fails (nearly?) every test with a lot of diagnostic output.
15:11 [Coke] https://gist.github.com/coke/7974107
15:12 jnthn [Coke]: I'd guess it fails all of them given Test.pm doesn't build yet?
15:17 [Coke] very likely. I was just excited that I could run r-m a bit.
15:24 [Coke] jnthn++
15:43 timotimo joined #moarvm
16:18 FROGGS sad, it still explodes in m-BOOTSTRAP using -O3
16:19 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)
16:20 FROGGS but I need to do a bit more v5 today, which includes writing the advent calender post for tomorrow :/
16:22 nwc10 ah
16:52 tgt joined #moarvm
17:49 colomon joined #moarvm
18:04 colomon joined #moarvm
19:11 colomon joined #moarvm
19:14 dalek joined #moarvm
19:57 colomon joined #moarvm
20:04 timotimo nwc10: cool stuff! :)
20:09 timotimo i wonder what the error we get when trying to build Test.pm really means
20:10 jnthn timotimo: Run it with --ll-exception to find out
20:11 timotimo oh, P6opaque: no such attribute '$!filename'?
20:11 jnthn Innerestin'
20:12 timotimo it tries to access an $! in a role
20:12 timotimo in X::Comp
20:12 jnthn oh, could that just be that we're missing the attribute fix from nom?
20:12 timotimo perhaps
20:13 jnthn no, can't be
20:13 timotimo well, very likely actually
20:13 timotimo ... oops?
20:13 jnthn Otherwise, how'd we have got code that relies on it merged?
20:13 timotimo did we actually get any working X::Comp based exceptions?
20:13 jnthn Don't think so
20:14 timotimo so we never hit that, except now when i asked for a --ll-exception
20:15 * timotimo writes up an ugly hack to see how much further he gets
20:15 * jnthn gets latest builds of stuff on his laptop
20:40 jnthn timotimo: Yeah, get the same error. Hmmm.
20:43 moritz ./perl6-m --ll-exception  -e 'Path.new("/foo/")'
20:43 moritz MVMArray: atpos expected string register at src/Perl6/World.nqp:2464  (blib/Perl6/World.moarvm:frame_name_679:35)
20:44 moritz there is no atpos or [] around line 2464 :(
20:45 timotimo what's the way to dump moarvm bytecode?
20:45 timotimo can we figure out what frame_name_679:35 does?
20:46 jnthn The $!filename error is actually looking like it's 'cus the export trait failed somehow
20:47 timotimo mhm, good to know
20:47 jnthn That is, that's why it's trying to construct an exception.
20:47 timotimo i wasn't able to fix it by making it is rw and using $. access
20:47 jnthn No, it's some Real bug.
20:48 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
20:49 jnthn It's probably just out of date with something
20:56 jnthn Seems to be a generic instantiation issue.
20:56 jnthn Or something like that.
20:58 nwc10 jnthn: I broke it again. Oops. :-)
20:59 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
20:59 nwc10 but as 2047K found a bug, I wonder if it's more like 150
21:00 nwc10 however, the problem looks tractable
21:00 nwc10 we just keep whacking moles until no more show up
21:00 jnthn Unfortunately, few of the GC bugs are actually anywhere under src/gc/
21:00 nwc10 but we have a very stubbon automated whacker
21:00 jnthn They're code elsewhere breaking invariants.
21:01 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. :)
21:02 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/ :-)
21:02 jnthn Also, (automated whacking)++ :)
21:03 nwc10 moritz: I think your thought is more accurate. When Perl 5 was new, it didn't know any better
21:03 nwc10 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
21:05 nwc10 as in: A Computer's Perspective on Moore's Law - Humans are getting more expensive at an exponential rate
21:05 nwc10 from http://www.caplet.com/adages.html
21:19 colomon joined #moarvm
21:42 cognominal joined #moarvm
21:46 dalek MoarVM: 1811ddf | jonathan++ | src/gc/collect.c:
21:46 dalek MoarVM: Eliminate unreachable code.
21:46 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/1811ddf47f
21:46 dalek MoarVM: bcdcaa3 | jonathan++ | src/core/frame.h:
21:46 dalek MoarVM: Add frame ref-count inc/dec to public API.
21:46 dalek MoarVM:
21:46 dalek MoarVM: Needed by Rakudo ext-ops.
21:46 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/bcdcaa3082
21:49 jnthn nwc10++ # these bug reports are great
21:52 jnthn FROGGS: About?
21:53 FROGGS jnthn: what?
21:53 jnthn FROGGS: Rakudo sanity tests are still very sad under the debugger for me.
21:53 jnthn er
21:53 jnthn *junder the *harness*
21:53 jnthn Do you know what kind of I/O prove uses to get the results?
21:54 jnthn I get completely junk output...
21:54 jnthn (with -v)
21:55 jnthn t\01-sanity\10-say.t ...............
21:55 jnthn O   U
21:55 jnthn No subtests run
21:55 jnthn By contrast, it actually captures the error backtraces...
21:56 jnthn ah, must be something with pipes...
21:57 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
21:57 jnthn O
21:57 jnthn Does it just happen on Windows?
21:58 FROGGS I can tell you in a few minutes...
22:00 jnthn C:\consulting\rakudo-moar>perl6-m -e "$*OUT.print('omg wtf bbq')" | more
22:00 jnthn ║♥g wtf bbq
22:00 jnthn hmm...
22:03 FROGGS jnthn: is it a problem that we create the std handles that early? https://github.com/MoarVM/MoarVM/commit/357d0e9a7b3537e68e26f8900201b09e155458fe
22:04 FROGGS 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...
22:05 jnthn ooh, though, it happens before this:
22:05 jnthn /* get libuv default event loop. */
22:05 jnthn instance->default_loop = instance->main_thread->loop;
22:05 FROGGS ./perl6-m -e "say 42" | cat
22:05 FROGGS 42
22:05 colomon joined #moarvm
22:07 jnthn Moving it for good measure but don't see it making a difference.
22:16 dalek MoarVM: 2eefa66 | jonathan++ | src/ (2 files):
22:16 dalek MoarVM: Move standard handle setup to a better place.
22:16 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/2eefa66493
22:17 jnthn FROGGS: ooh...
22:17 jnthn body->u.handle->data = body;
22:18 jnthn It's that interior pointer thing...
22:18 FROGGS yeah, I am not sure I understand the approach of fixing it
22:19 FROGGS well, I am sure I did not understand the proposed fix :/
22:22 jnthn Hm, and I can't remember the proposed fix. D'oh! :)
22:24 FROGGS jnthn: you said something about hanging off the pointer we assign there another level away
22:31 jnthn Yeah, seeing if I can figure it...
22:32 jnthn Doesn't seem to help :(
22:32 FROGGS :(
22:33 dalek MoarVM: 0a28ddb | jonathan++ | src/ (2 files):
22:33 dalek MoarVM: Try to eliminate OSHandle interior pointer use.
22:33 dalek MoarVM:
22:33 dalek MoarVM: Doesn't seem to break anything, at least. Testing needed.
22:33 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/0a28ddb271
22:33 jnthn I mean, it may well help something...
22:47 jnthn bah, I found it
22:50 FROGGS O.o
22:50 dalek MoarVM: 3122e83 | jonathan++ | src/io/fileops.c:
22:50 dalek MoarVM: Enforce sync I/O when it's being assumed.
22:50 dalek MoarVM:
22:50 dalek MoarVM: Not doing so was causing the string to write to get freed before it
22:50 dalek MoarVM: ever got written. With this, running tests under prove works reliably
22:50 dalek MoarVM: for Rakudo on Moar on Windows. Just got lucky on other OSes, I guess.
22:50 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/3122e830bc
22:51 jnthn So, now I can see that we fail 6 of the sanity test files.
22:52 jnthn So we pass 23 - 6 = 17 of them.
22:52 FROGGS jnthn++ # !!
22:54 FROGGS moar: 3rdparty/libuv/src/unix/stream.c:1452: uv_stream_set_blocking: Assertion `0 && "implement me"' failed.
22:54 FROGGS a windows specifica :o)
22:54 diakopter hi
22:55 FROGGS hi diakopter
22:55 jnthn FROGGS: ugh, how'd you get that?
22:55 FROGGS jnthn: I just pulled, made install and went to my rakudo checkout and reconfigured
22:56 FROGGS froggs@TL02L-R8RXTCW-linux:~/dev/MoarVM$ cd ../rakudo-moar/
22:56 FROGGS froggs@TL02L-R8RXTCW-linux:~/dev/rakudo-moar$ perl Configure.pl --backends=moar --prefix=../nqp/install --make-install
22:56 FROGGS moar: 3rdparty/libuv/src/unix/stream.c:1452: uv_stream_set_blocking: Assertion `0 && "implement me"' failed.
22:56 FROGGS like that
22:56 jnthn ugh...
22:57 FROGGS https://github.com/joyent/libuv/blob/master/src/unix/stream.c#L1500
22:57 colomon joined #moarvm
22:57 FROGGS NYI on linux
22:57 jnthn Oh, it only works on Windows?
22:57 FROGGS I suppose so
22:57 FROGGS that is why it did not fail on my box
22:58 jnthn ok, mebbe for now I #ifdef WIN32 it.
22:58 jnthn And then we look into it further later.
22:58 FROGGS k
22:58 diakopter FUDGE
22:58 diakopter :)
22:58 jnthn TOFFEE
22:59 diakopter FROGGS: I no access the blog site
22:59 diakopter well, I didn't try this particular link
22:59 diakopter yeah, no access
23:00 dalek MoarVM: d3212c7 | jonathan++ | src/io/fileops.c:
23:00 dalek MoarVM: Unbust non-Windows build.
23:00 dalek MoarVM:
23:00 dalek MoarVM: Needs further investigation into what happens on other platforms.
23:00 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/d3212c7860
23:00 FROGGS diakopter: here https://gist.github.com/FROGGS/8ac40e7efed48409def4/raw/93acdcd3794336b04baeae75b7d60f83601c0673/slangs.html
23:05 jnthn Teaching tomorrow, so gonna take some rest
23:06 jnthn Will take a look at the nwc10++ GC bug reports and other sanity tests tomorrow...feel free to beat me to it ;)
23:06 jnthn 'night
23:07 TimToady o/
23:10 FROGGS o/
23:48 melnichuks joined #moarvm

| Channels | #moarvm index | Today | | Search | Google Search | Plain-Text | summary