Perl 6 - the future is here, just unevenly distributed

IRC log for #moarvm, 2014-01-03

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

All times shown according to UTC.

Time Nick Message
01:35 colomon joined #moarvm
02:04 chipdude joined #moarvm
03:58 lue joined #moarvm
04:11 jnap joined #moarvm
04:51 [Coke] moar at 63.36% of jvm
05:26 jnap joined #moarvm
06:26 jnap joined #moarvm
08:28 jnap joined #moarvm
08:37 odc joined #moarvm
09:29 jnap joined #moarvm
09:52 masak [Coke]: is that Rakudo on Moar?
10:29 jnap joined #moarvm
11:30 jnap joined #moarvm
12:31 jnap joined #moarvm
12:31 jnthn masak: Yes, it will be. :)
12:40 timotimo i'm interested in trying to compile moarvm with emscripten to ASM.js :P
12:41 jnthn Good luck :P
12:41 timotimo %)
12:41 jnthn I suspect compiling Moar ain't too bad but not sure how libuv will work out with that :)
12:42 timotimo oh. right.
12:42 timotimo the last time i tried to do emscripten i failed horribly for some entirely different reason
12:43 timotimo i'll give it some more time before i do the attempt
12:43 diakopter :D
13:03 timotimo jnthn: an idea why stage mast is only a tiny bit faster than stage parse?
13:03 timotimo 1 1 3 4 5 7 8 9
13:03 timotimo now *that* is what i call sorted!
13:05 jnthn timotimo: Didn't dig into it yet
13:05 jnthn timotimo: oooh! That looks good.
13:06 timotimo i've written a version to use _i variants of *pos now
13:06 timotimo if it works, i'll commit
13:07 jnthn uh, you did switch to using a list_i everywhere, I assume?
13:07 timotimo yes
13:07 jnthn ok
13:07 jnthn anyway, looks like we get sort :)
13:07 timotimo i've changed the clone to a for loop, too
13:07 timotimo i'm thinking unboxing once at the beginning and boxing once at the end should be better than doing n log n boxings + unboxings or something like that
13:08 jnthn Well, I want to review the whole way we do sort at some point, 'cus I think we've got some potential other gains to be had there...
13:15 timotimo sounds good to me
13:28 timotimo it emits some warnings, but passes the sort test.
13:30 timotimo and i've committed it
13:30 jnthn \o/
13:31 timotimo \o/
13:31 timotimo another LHF for me? :)
13:31 timotimo please don't say continuation passing transform :P
13:31 jnthn :P
13:31 jnthn No, though I am looking into the weird match issue at the moment...
13:32 jnap joined #moarvm
13:32 jnthn I think I might have mentioned one yesterday, but forget what it was...
13:32 jnthn Oh...one possible thing to do is port the arity_fail stuff in the binder
13:32 jnthn (It's error message generation)
13:33 timotimo can moarvm get something like the getattr/setattr thing where we precalculate the "hint" at compile-time if we can?
13:33 jnthn Yeah
13:33 timotimo i bet stage mast can benefit a bit from that
13:33 timotimo i'll have a look at the binder thing
13:37 timotimo not actually sure where that lives :|
13:37 nwc10 timotimo: you didn't comment, so not sure if you saw it in scrollback. The author of the Perl 5 sort code thinks it probable that it is slightly more efficient than timsort
13:37 nwc10 but it's not called tim :-(
13:37 timotimo right
13:37 timotimo it seemed pretty daunting to implement anyway
13:37 timotimo i'll stay with the mergesort variant for now.
13:37 benabik joined #moarvm
13:38 jnthn timotimo: BOOTSTRAP.nqp
13:38 nwc10 that feels sane to me - do something that is good enough, but a lot easier to debug
13:38 timotimo ah, i was looking at nqp
13:38 timotimo and in the vm/moar/ folder
13:43 timotimo jnthn: is there a stub in the binder for that error already? i didn't see it on my first glance, but i also don't know what exactly to look for :P
13:44 timotimo a failing piece of code that triggers the poor error would be fantastic
13:47 FROGGS timotimo: src/Perl6/Metamodel/BOOTSTRAP.nqp:121:        nqp::die('arity_fail NYI');
13:47 timotimo thank you :)
13:48 timotimo er, that looks to simple to be what i think it is :P
13:50 FROGGS I just wonder why it is not fudged for moar
13:50 [Coke] nothing's fudged yet.
13:51 FROGGS [Coke]: I am talking about rakudo's source, not tests
13:51 [Coke] oh.
13:51 FROGGS so the question is, where to steal from?
13:52 jnthn Either the JVM or Parrot impl
13:54 FROGGS ahh
13:54 FROGGS src/vm/parrot/guts/bind.c:195:Rakudo_binding_arity_fail(
13:54 FROGGS found itz
13:54 FROGGS -z
13:54 timotimo i've already found that part :)
13:54 timotimo that was easier now that i saw it's a separate sub
13:55 nwc10 jnthn: is the answer "dunno, take a look?" to "what would it take to get that assertion fail on setting compilation on not-Win32 fixed?"
13:56 FROGGS nwc10: I captured a bt today: https://gist.github.com/FROGGS/cbdcd4054a450d0faa22#file-write_callbacks-sh
13:56 jnthn nwc10: Is it the uv one?
13:57 nwc10 yes, IIRC
13:57 nwc10 but I'm a bit confused - sometimes there is an assertion failure (I thought), sometimes a SEGV because ...handle is a bad pointer.
13:57 nwc10 the latter being because one thread frees something before another thread is done with it
13:57 * nwc10 somewhat destressing
13:57 nwc10 at the babysitting service
13:58 nwc10 now have 10 copies of Robot Turtles (after visting post.at/BMZ and paying tax)
13:58 FROGGS I've got one, and it is awesome :o)
13:58 nwc10 my birth certificate has arrived and is being translated
13:58 jnthn nwc10: I think that the issue is that something we expect to happen sync is happening async...
13:58 nwc10 and there's something else but I forgot what that is somewhat under control
13:59 nwc10 I do have to figure out contact details for the other 9 people, and how to get 2 to Salzburg
13:59 nwc10 well, about 5 of the 9 others
14:01 jnthn Busy times :)
14:02 * timotimo has a preliminary implementation of arity_fail
14:02 nwc10 other small things are under control - eg coffee beans exist to refil the coffee machine
14:05 timotimo Missing or wrong version of dependency 'src/gen/m-BOOTSTRAP.nqp'
14:05 timotimo er what?
14:05 jnthn wat
14:05 * timotimo makes m-clean m-install :\
14:05 nwc10 jnthn: NQP HEAD builds with all my torture code
14:05 nwc10 starting on Rakudo
14:06 timotimo F YEAH! :)
14:06 jnthn \o/
14:06 jnthn nwc10: 3122e830b is the commit that fixed things on Windows, I think.
14:07 jnthn nwc10: That then got backend out to only do those things on Windows.
14:10 jnthn Trouble is, the header file claims it's implemented on Windows and Unix, and yet the unix implementation is assert(0 && "implement me");
14:11 timotimo wow, good job
14:11 jnthn It's that way in latest too.
14:15 timotimo Not enough positional parameters passed; got 2 but expected 3
14:15 timotimo \o/
14:15 FROGGS is that what you wanted?
14:15 timotimo it is
14:15 jnthn Yes, if you're impletmning arity_fial :)
14:15 FROGGS \o/ then
14:16 timotimo arity_fijal? what is the pypy dude doing here? :)
14:16 jnthn :P
14:16 jnap joined #moarvm
14:44 benabik joined #moarvm
14:44 timotimo i'm getting the bootstrap version problem more often now o_O
14:53 dalek MoarVM/try-fix-io: 66622a1 | jonathan++ | src/io/fileops.c:
14:53 dalek MoarVM/try-fix-io: Another try at fixing pipe writes.
14:53 dalek MoarVM/try-fix-io:
14:53 dalek MoarVM/try-fix-io: Removes Win32-specific things, and takes another approach that makes
14:53 dalek MoarVM/try-fix-io: things work fine still on Windows. Needs testing elsewhere.
14:53 dalek MoarVM/try-fix-io: review: https://github.com/MoarVM/MoarVM/commit/66622a1c46
14:55 jnthn FROGGS, nwc10: The above may help with the exit segfaults etc.
14:55 jnthn Feel free to give it a try and see if it's any improvement.
15:31 diakopter hi moat denoaems
15:31 diakopter her moar denizens
15:32 diakopter er moar denizens
15:56 * masak kinda liked "moat daemons" :P
16:01 jnap joined #moarvm
16:07 nwc10 ./perl6-m --target=mbc --output=lib/Test.moarvm lib/Test.pm
16:07 nwc10 Unhandled exception: While looking for 'ModuleLoader.moarvm': no such file or directory
16:07 nwc10 at <unknown>:1  (/home/nicholas/Perl/rakudo-moar/perl6.moarvm:frame_name_16:6)
16:08 nwc10 which seems to be blib/Perl6/ModuleLoader.moarvm
16:08 nwc10 but not found
16:09 jnthn Oddness...
16:10 nwc10 yes
16:10 jnthn I've never had that one happen here. I have heard it reported...
16:10 jnthn But was under the impression it boiled down to some oddity with something being out of date...
16:10 nwc10 strace shows it looking for ./ModuleLoader.moarvm and then twice for ModuleLoader.moarvm
16:11 jnthn Odd...should be looking for it under libpath iirc
16:11 nwc10 OK, clean, rebase and try again...
16:11 jnthn What does your perl6-m look like?
16:11 nwc10 setting did compile with all the current torture
16:11 nwc10 um, it just got wiped.
16:11 nwc10 sorry, will answer that if I can recreate
16:12 jnthn I just found and fixed a nasty segfault.
16:12 jnthn May have been to blame for various test fails.
16:13 dalek MoarVM: 7cd9221 | jonathan++ | src/6model/reprs/P6opaque.c:
16:13 dalek MoarVM: Fix multiple thinkos in P6opaque.
16:13 dalek MoarVM:
16:13 dalek MoarVM: These could cause box allocation with incorrent STable, or problems
16:13 dalek MoarVM: when doing attribute auto-viv on mixed-into objects.
16:13 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/7cd92217cd
16:13 jnthn Fixes t\spec\integration\rule-in-class-Str.t at least.
16:14 jnthn But I can see that fix helpling a lot more generally too
16:22 jnthn For anybody wanting another thing to investigate: working out why S16-io/basic-open.t hangs may in turn open up various other IO tests
16:37 FROGGS jnthn: that try-fix-io branch made my test hand that segfaulted before...
16:38 FROGGS or do I have to rebuild nqp/rakudo too?
16:39 jnthn FROGGS: No, should just be a MoarVM change.
16:39 jnthn :/
16:39 jnthn OK, then apparently that's not the way to fix it then. :/
16:39 FROGGS :(
16:39 FROGGS I'll play with it in a bit
16:39 jnthn libuv basically doesn't provide a way to do a synchronous pipe write.
16:40 jnthn Well, not a portable one.
16:41 nwc10 synchronous? ENOTTRENDY :-(
16:42 jnthn yeah :/
16:42 jnthn Trouble is, it's the "odd one out"...
16:42 jnthn For file handles and TTYs it seems you can force sync
16:42 jnthn (and we do)
16:46 colomon joined #moarvm
16:49 dalek MoarVM: db68b8f | jonathan++ | src/core/interp.c:
16:49 dalek MoarVM: Add missing type-object checks.
16:49 dalek MoarVM:
16:49 dalek MoarVM: Turns various ways to segfault into an appropriate exception.
16:49 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/db68b8f3ca
16:55 jnthn bbl
17:22 [Coke] I may manually run the moar run again after the slow java run to pick up a few more commits.
17:22 [Coke] (and then pretend it was the only run)
17:22 FROGGS hehe
17:23 FROGGS [Coke]++
17:23 jnap joined #moarvm
17:23 [Coke] today's moar run up to S05. I'll shove a copy on feather when it finishes.
17:24 [Coke] looks like it's running with 7f8a180
17:32 [Coke] Error while compiling op p6getouterctx: No registered operation handler for 'p6getouterctx' - seeing a bit of that.
17:35 timotimo did you make sure to build all things on master (or on moar-support)?
17:37 [Coke] timotimo: https://github.com/coke/perl6-roast-data/blob/master/bin/rakudo.moar.sh
17:37 [Coke] (yup)
17:38 timotimo strange
17:39 timotimo i thought i saw something mentioning that op, but apparently not.
17:40 [Coke] Might be a few builds behind.
17:40 timotimo i'll run a full spectest run now, too :3
17:40 [Coke] it was master -at the time the run started-, and I'm not sure rakudo is updating it's dep on nqp or nqp is updating it's dep on moar.
17:40 timotimo good point.
17:41 benabik [Coke]: Might I suggest `git clone -b moat-support $URL rakudo.moar` instead of separate clone and checkout operations?  Saves some I/O time.
17:41 benabik *moar-support, obv
17:42 [Coke] benabik: sure, though time is swamped by "run jvm tests".
17:42 timotimo if you rm-rf it all the time anyway, why not --shallow=1 or what that argument was?
17:42 benabik [Coke]: Fair enough.
17:42 [Coke] I'm eventually going to do it as japh did in bench, where I have -a- local copy of rakudo and then clone the local copy for builds.
17:43 timotimo right
17:43 timotimo shallow cloning helps most in nqp, because of the huge stage0 files
17:45 timotimo and with half blocks you can use background and foreground to have two colors above each other for every character in your terminal
17:45 timotimo and these colors will be in mostly square blocks, rather than horribly stretched rectangles
17:48 [Coke] timotimo: ?
17:49 timotimo ww
17:49 timotimo i wonder how much work it would be to make the junction autothreader be called properly after the binder decides it needs to happen
17:52 timotimo S03 \o/
17:54 timotimo 358 tests more than planned were run
17:54 timotimo huh.
17:55 benabik Bad fudging?
17:56 timotimo there's loops in there that may be wrong
17:56 timotimo weird, there is no plan in that file
17:56 timotimo i'm confuse.
18:05 timotimo S05 \o/
18:12 timotimo S06 ...
18:12 FROGGS timotimo: it is unsafe, but there is no need for a plan
18:12 timotimo how does it measure "more than planned" then?
18:12 timotimo ah, because it skipped the "done"?
18:13 FROGGS if it dies before it can print it, yes
18:13 timotimo that explains it
18:13 FROGGS it will print the tests run due to an END block in Test.pm
18:13 [Coke] http://feather.perl6.nl/~coke/moar.out - first pass today.
18:14 [Coke] 20866 passing.
18:14 [Coke] jvm yesterday passed 28453
18:14 timotimo wow, that's pretty cool!
18:15 timotimo p: say (20866 / 284.53)
18:15 camelia rakudo-parrot dc1544: OUTPUT«73.334973␤»
18:15 tadzik nice!
18:16 timotimo S11
18:16 [Coke] biggest failure still in S05; S32 seems to be much healthier.
18:17 timotimo the S05 fails may be what jnthn fixed when he made froggs strange test case work (gather/take f-ups)
18:17 [Coke] I'll rerun in a few hours when parrot & jvm are done.
18:18 timotimo oh, it's mostly properties
18:18 timotimo i don't know about that.
18:20 [Coke] 211 segfaults; 8 killed by memory/timeouts
18:20 timotimo S16 already
18:31 timotimo we may have to increase the time limit a tiny bit
18:31 timotimo the rat tests pass when run without an ulimit.
18:31 timotimo and i think if you put a "don't dump a core" ulimit in there as well, it'll all be faster
18:31 [Coke] it's the same limit parrot has. :P
18:31 timotimo hm
18:32 timotimo i wonder what the cause of those .^ errors may be
18:32 timotimo AFK
18:32 [Coke] ulimit -c 0, looks like.
18:33 timotimo should be, yes
18:34 [Coke] oh, I lied, parrot isn't ulimited, looks like. *boggle*
18:53 timotimo Leading 0 does not indicate octal in Perl 6; please use 0o3 if you mean thattee: write error
18:53 timotimo sh full_spectest_moar.sh  3099,23s user 71,67s system 94% cpu 56:05,38 total
18:53 timotimo ... wat
18:54 timotimo "total",     20967,  7317,   402,   975, 29162, 28494
18:54 timotimo so barely any change from your previous run
18:54 timotimo like 1%
19:39 jnap joined #moarvm
20:08 * nwc10 finds a bug in the torture code. = should have been --
20:08 nwc10 er, ==
20:08 * nwc10 re-tortures, properly
20:14 timotimo oops
20:14 FROGGS to your defence, = looks almost the same as --
20:15 FROGGS ==, even
20:16 timotimo :)
20:20 timotimo it seems like the hottest function in all of compiling the core setting is at_pos
20:23 japhb_ That ... really doesn't surprise me.  :-)
20:23 japhb_ nwc10, I haven't been backlogging here for a while -- what is your torture code?  What kind of torture does it perform?
20:23 timotimo yeah
20:24 timotimo maybe there's more opportunity to use atpos_i and friends
20:25 nwc10 usign mmap to make fromspace unreadable
20:25 nwc10 and trying to force a lot of GC runs and move things around a lot
20:25 nwc10 to increase the chances of a GC run happening and exposing a pointer to fromspace
20:40 jnap joined #moarvm
21:10 japhb_ nwc10, So how is the current torture run going?  Still producing new bugs?
22:25 dalek MoarVM/try-fix-io: 67d6ba5 | (Tobias Leich)++ | src/io/fileops.c:
22:25 dalek MoarVM/try-fix-io: make streams blocking on unixes too, and unref write req
22:25 dalek MoarVM/try-fix-io:
22:25 dalek MoarVM/try-fix-io: In theory we are unreferencing the write request twice after a successful
22:25 dalek MoarVM/try-fix-io: write, but only doing so makes the uv__delete assertion go away.
22:25 dalek MoarVM/try-fix-io: review: https://github.com/MoarVM/MoarVM/commit/67d6ba5ec2
22:25 FROGGS please please test that
22:34 colomon joined #moarvm
22:35 FROGGS dev/rakudo-moar$ perl6-m -e 'say nqp::backendconfig<config>'
22:35 FROGGS --prefix=../nqp/install --optimize=3
22:35 FROGGS ---------------------^
22:35 FROGGS do you guys see that?
22:38 timotimo --prefix=../../install
22:39 FROGGS no, not the prefix, the --optimize=3
22:39 timotimo don't have that
22:40 FROGGS that is MoarVM's config string... I am now able to compile rakudo with MoarVM @ -O3
22:40 timotimo oh!
22:40 FROGGS and I don't have segfaults anymore
22:40 timotimo YEAH! :D
22:40 timotimo how much faster is it?
22:40 FROGGS about 5s for stage parse
22:41 FROGGS but the timings are not measured correctly, mind
22:41 timotimo aaw, in the first split second i thought your stage parse now only takes 5s ;)
22:41 FROGGS nah
22:41 FROGGS it will take a few months to get there :o)
22:44 FROGGS I really hope that fixes the uv__delete assertions for all of us... including they guys++ with a fruit on their lid
22:48 diakopter SO FRUIT
22:48 * jnthn back
22:49 japhb_ Welcome back!
22:49 FROGGS jnthn: can you test my patch on your box?
22:49 FROGGS maybe we need to tweak it for windows
22:50 jnthn FROGGS: In try-fix-io?
22:50 FROGGS yes
22:50 jnthn Trying it.
22:54 woolfy joined #moarvm
23:01 [Coke] that sounds like a HP spell.
23:02 jnthn FROGGS: I have a debug build that seemed to do OK
23:02 jnthn I should try an opt one I guess.
23:02 FROGGS so far so good
23:15 jnthn Well, the NQP build done with that branch optimized passes tests. Well into the Rakudo one now.
23:16 jnthn FROGGS: This helps on Linux and gets rid of the assertion fails?
23:16 FROGGS jnthn: at least for me, yes
23:17 FROGGS I have an -O3 optimized Moar build or rakudo, and I've not seen any of the assertions
23:17 jnthn :D
23:17 FROGGS and before my patch I had them at least in 20% of the cases
23:21 jnthn FROGGS: Yeah, it seems good.
23:21 jnthn Feel free to merge
23:25 dalek MoarVM: 66622a1 | jonathan++ | src/io/fileops.c:
23:25 dalek MoarVM: Another try at fixing pipe writes.
23:25 dalek MoarVM:
23:25 dalek MoarVM: Removes Win32-specific things, and takes another approach that makes
23:25 dalek MoarVM: things work fine still on Windows. Needs testing elsewhere.
23:25 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/66622a1c46
23:25 dalek MoarVM: 67d6ba5 | (Tobias Leich)++ | src/io/fileops.c:
23:25 dalek MoarVM: make streams blocking on unixes too, and unref write req
23:25 dalek MoarVM:
23:25 dalek MoarVM: In theory we are unreferencing the write request twice after a successful
23:25 dalek MoarVM: write, but only doing so makes the uv__delete assertion go away.
23:25 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/67d6ba5ec2

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