Perl 6 - the future is here, just unevenly distributed

IRC log for #moarvm, 2014-08-20

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

All times shown according to UTC.

Time Nick Message
00:00 japhb The work function for rat_harmonic needs to be fixed, methinks.
00:00 japhb Same with rc-9-billion-names
00:02 timotimo performance
00:02 japhb timotimo: I think he's saying what test/functionality did we regress on?
00:03 japhb But I may be misreading his question.
00:04 jnthn Yeah. You can kinda read a very minor regression into while_int2str_concat_native
00:04 timotimo oh
00:04 timotimo that exact one, aye
00:05 jnthn Curious. I notice the one above it kinda converges again...
00:06 timotimo i was only guessing from memory
00:07 dalek MoarVM/split_iter_boolification: 125e656 | (Timo Paulssen)++ | src/spesh/facts.h:
00:07 dalek MoarVM/split_iter_boolification: waste one less bit in facts bitfield
00:07 dalek MoarVM/split_iter_boolification: review: https://github.com/MoarVM/MoarVM/commit/125e656194
00:07 dalek MoarVM/split_iter_boolification: 5b71b8a | (Timo Paulssen)++ | src/jit/ (2 files):
00:07 dalek MoarVM/split_iter_boolification: boolify_iter_hash and _arr in the jit, too.
00:07 dalek MoarVM/split_iter_boolification: review: https://github.com/MoarVM/MoarVM/commit/5b71b8a967
00:17 timotimo i'll leave it in this branch for someone else to merge if they feel it's all right
00:18 timotimo still about 48 hours until release, i believe?
00:18 jnthn Something like that.
00:18 timotimo sounds like ample time to get this little feature tested
00:19 timotimo how long do i have to do benchmarks before you want your slides to be finalized?
00:20 timotimo the benchmarks i gave to you don't include any of TimToady's listy improvements
00:24 jnthn timotimo: I think I'm probably done with them by now
00:24 jnthn timotimo: I've selected a range that illustrate good, bad, and ugly. :)
00:24 jnthn Oh, and great. :)
00:24 timotimo but i should still benchmark what the very recent changes did, no?
00:25 jnthn Oh, please do.
00:25 jnthn Just don't do it on the expectation I'm looking for more things to put in my slides. They're already packed full of things. :)
00:25 timotimo surely will
00:25 timotimo hm, fair enough.
00:30 timotimo i think the split_iter_boolification branch is mergable now
00:59 jnthn Cool
00:59 jnthn Im gonna rest now
00:59 jnthn But yay, my Friday talk is completed. :)
01:00 jnthn (Which was the one where I had nothing I could steal from previous talks. :))
01:03 japhb How many talks do you have?
01:03 japhb Ah, rest.  Good night, then.  :-)
01:04 jnthn japhb: 2
01:04 jnthn japhb: The other one is on the Sunday :)
01:04 jnthn And on async stuff, which I've talked about quite a lot at workshops
01:05 jnthn I do have a new app that I'm working on that I'd like to be able to show off during it, though... :)
01:06 TimToady .oO(irc bot)
01:10 jnthn 'fraid not :P
01:12 timotimo .o( multithread-compatible perl6 debugger )
01:17 * japhb can't wait to see the slides+video for both.  :-)
01:21 jnthn :)
01:21 jnthn Really afk &
01:30 FROGGS_ joined #moarvm
01:33 jnap joined #moarvm
02:25 japhb Report from the trenches: I tried switching the Rakudo variant I was using for my heavy-threading/spawning script from r-j to r-m, and had lots of threading programs.  In 6 runs, I had 4 different failure modes, from immediate crash and dump, to strange errors, to just getting incomplete results.  On the flip side, r-j has been rock solid threading wise lately, but of course much slower and missing some language-level fixes that r-m has.
02:25 japhb *threading problems
05:49 cognome joined #moarvm
06:18 brrt joined #moarvm
06:19 brrt timotimo: can't build moarvm with the split_iter_boolify branch, and spectests crash and burn
06:19 brrt and, you're right about the iter hash facts
06:19 brrt they do have to be different
06:20 brrt because sometimes you just don't know :-)
06:21 brrt hmm
06:22 * brrt afk
06:22 brrt left #moarvm
06:47 sergot morning o/
06:59 klaas-janstol joined #moarvm
07:24 zakharyas joined #moarvm
07:26 klaas-janstol joined #moarvm
07:58 brrt joined #moarvm
08:04 brrt \o
08:04 nwc10 o/
08:12 brrt nwc10: have you tried the split_iter_boolify branch?
08:13 nwc10 not yet
08:13 brrt hmm
08:13 nwc10 er, where is it?
08:13 brrt it burns, but i don't know why
08:13 brrt lemmesee what it is really called
08:14 brrt split_iter_boolification
08:14 brrt we might want to keep the old 'sp_boolify_iter' which is dynamic arround after all
08:31 klaas-janstol joined #moarvm
08:36 * jnthn will probably do this month's MoarVM release this evening, given Thursday will be taken up with travel to YAPC.
08:37 jnthn (So keep anything risky/uncertain out of master.)
08:38 brrt understood :-)
08:53 nwc10 brrt: t/spec/S32-str/sprintf.rakudo.moar and t/spec/S32-num/rat.rakudo.moar fail (in addition to the 2 usual sinners)
08:53 brrt yeah, i've seenthose
08:53 brrt seen those
08:53 brrt i'll be pushing a few things in a minute
08:54 nwc10 other than that, it seemed happy
08:55 brrt i get more breakage than that, but allright
08:59 dalek MoarVM/split_iter_boolification: 7a1b003 | (Bart Wiegmans)++ | / (9 files):
08:59 dalek MoarVM/split_iter_boolification: Neither iterating over a hash or an array is certain
08:59 dalek MoarVM/split_iter_boolification:
08:59 dalek MoarVM/split_iter_boolification: In other words, I was wrong about the two being mutually
08:59 dalek MoarVM/split_iter_boolification: exclusive, since neither of them may actually be set.
08:59 dalek MoarVM/split_iter_boolification: This still fails a few spectests, though.
08:59 dalek MoarVM/split_iter_boolification: review: https://github.com/MoarVM/MoarVM/commit/7a1b003678
09:05 klaas-janstol joined #moarvm
09:05 klaas-janstol joined #moarvm
09:06 brrt this is /not/ a perfect commit just yet
09:11 * brrt afk for... long :-)
09:11 brrt left #moarvm
09:37 cono left #moarvm
10:37 Ven joined #moarvm
10:40 woolfy left #moarvm
11:09 Ven joined #moarvm
11:25 klaas-janstol joined #moarvm
11:25 cognome joined #moarvm
11:30 zakharyas joined #moarvm
11:56 klaas-janstol joined #moarvm
12:14 jnap joined #moarvm
12:22 klaas-janstol joined #moarvm
12:35 timotimo building nqp and rakudo works just fine on my end >_<
13:03 dalek MoarVM: c00d549 | jnthn++ | docs/ChangeLog:
13:03 dalek MoarVM: ChangeLog for 2014.08.
13:03 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/c00d5498fc
13:03 jnthn So work!
13:05 jnthn The fun thing about doing ChangeLog is realizing how much got done in a month :)
13:05 timotimo https://gist.github.com/timo/13e37608782ee2adf75b - this is what my spec test results look like; lock and asyncare known to flap, uniq.t is known to segfault for a long-ish time, rat.rakudo.moar and sprintf.rakudo.moar seem to be caused by the bigint is_big change that recently landed
13:05 jnthn Gotta head out for a bit. More releaseeng later.
13:06 timotimo oh wow, a full page of changelog
13:06 jnthn timotimo: Did you try reverting the bigint change?
13:06 nwc10 churn is inevitable, progress is not :-) ?
13:06 timotimo i should probably do that.
13:06 jnthn (To see if it unbusts them)
13:07 jnthn If it is guilty, then just mark the commit with a branch name, push the revert, and we deal with that in the 2014.09. :)
13:07 timotimo fixes both of these spec tests
13:07 timotimo will do.
13:07 jnthn Unless you feel like trying to fix it... :)
13:08 jnthn It didn't bust those things on Windows, fwiw. And it *did* fix the ugly drop-off bug
13:08 jnthn Anyway, gotta drop by the office...bbl
13:09 timotimo o/
13:10 dalek MoarVM: 00cfece | (Timo Paulssen)++ | src/math/bigintops.c:
13:10 dalek MoarVM: Revert "Fix nqp::isbig_I to not consider so much big."
13:10 dalek MoarVM:
13:10 dalek MoarVM: This reverts commit d27d560270cdfd6ec4dc3572bcf73a7281d74400.
13:10 dalek MoarVM:
13:10 dalek MoarVM: caused two tests in all of the spectest suite to fail.
13:10 dalek MoarVM: one in rat.rakudo.moar and one in sprintf.rakudo.moar.
13:10 dalek MoarVM:
13:10 dalek MoarVM: Needs more investigation after the release.
13:10 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/00cfeced39
13:13 ggoebel11111114 joined #moarvm
13:14 dalek MoarVM: 6fdc15e | (Timo Paulssen)++ | docs/ChangeLog:
13:14 dalek MoarVM: minor cosmetic changes to the changelog
13:14 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/6fdc15eadf
15:22 Ven joined #moarvm
16:28 Ven joined #moarvm
17:00 woolfy joined #moarvm
17:16 zakharyas joined #moarvm
17:51 tgt joined #moarvm
18:24 timotimo i just got a mail from gsoc asking us to finish the evaluation for brrt
18:24 timotimo that's probably taken care of properly, aye?
18:26 jnthn timotimo: It's in a 70% done state on a browser tab here :)
18:26 lizmat now that he's not here: how would that evaluation work out?  positively?
18:26 lizmat :-)
18:26 jnthn lizmat: Oh, the "yes he passed" field was the *easy* part :P
18:26 lizmat hehe... :-)  good to hear
18:29 timotimo OK
18:29 timotimo i have my doubts. after all, the halting problem wasn't sufficiently solved by the jit
18:31 TimToady "This GSOC project makes all the other GSOC projects look wimpy, so we should not allow it."
18:32 TimToady "This project's rating was so high that it overflowed and flipped the sign bit."
18:33 TimToady you'll just have to give brrt++ the usual evaluation for this sort of thing: "Walks on water, needs to learn to walk on air."
18:35 jnthn :)
18:35 * jnthn is *very* happy with how the project worked out
18:38 FROGGS yeah, has been a very good GSoC this year :o)
18:38 nwc10 me too. I'd've been happy with just "useful maintainable code, good enough to merge, did yet merge"
18:38 nwc10 it's way way better than that
18:43 timotimo agreed
18:43 timotimo and we also have a somewhat high bus factor for pieces of the puzzle
18:56 * jnthn is very relieved that spesh has a bus number > 1 :)
18:56 * timotimo is a bit worried he's part of the contributors to that bus number
18:57 timotimo i want to build a gui tool that allows you to introspect lods and loads of things in a givn moarvm instance
18:57 timotimo i want to call it InspectoarGadget
18:58 TimToady that's...hoarible
18:59 TimToady oar something like that
18:59 TimToady obviously our extension should've been .oar
19:00 TimToady since the metaobjects are supposed to be invisible most of the time
19:17 cognome joined #moarvm
19:17 brrt joined #moarvm
19:18 brrt \o
19:18 brrt i need some advice on the modern world of hotel booking
19:18 brrt (yes, i still need to book my hotel. i'm an idiot. it's on record)
19:19 zakharyas joined #moarvm
19:19 brrt on booking.com i need to enter a credit card to guarantee my reservation
19:19 timotimo brrt: i wasn't able to get any other person to reproduce crashing and burning with my branch
19:20 timotimo so i'll probably just merge the branch
19:20 brrt problem: i only have a debit card, which has no money, and which importantly i don't have with me
19:20 brrt but spectest!
19:20 brrt and printf
19:20 brrt and moarvm release
19:20 timotimo printf was something else
19:20 timotimo as was rat.t
19:20 timotimo those issus were brought to light by a change to bigint thingies
19:21 brrt oooh.. ok
19:21 brrt was the guard_concrete thingy still necessary btw?
19:21 timotimo it sounded like you weren't able to build moarvm, too?
19:21 brrt oh yes, moarvm i could build
19:21 timotimo i haven't tested without
19:22 brrt anyway, it turns out i can buy a voucher for a virtual credit card
19:22 [Coke] brrt: Perhaps call the hotel and speak to a human?
19:22 brrt if jnthn agrees, i think merging is ok
19:22 [Coke] ah, that works.
19:22 brrt uhm
19:23 brrt that's actually a pretty good idea
19:23 jnthn timotimo: Maybe merge just after the release now; I'd rather we don't sneak anything besides fixes in beforehand...
19:23 timotimo aaw
19:25 brrt [Coke]++ for great advice
19:36 brrt ok /me is managing
19:41 timotimo brrt: do you know of a good example where we'd have the iterator boolification thing?
19:42 brrt pretty much all for @foo -> $bar { } loops
19:42 brrt as in, inserting printf in these things make 'm very frequent
19:43 timotimo how much stuff ends up getting generated around that on perl6 rather than nqp code?
19:53 brrt i don't know really :-)
19:54 jnthn At least all hash iteration in Perl 6 happens through the nqp::iterator API
20:02 zakharyas1 joined #moarvm
20:15 Ven joined #moarvm
20:27 klaas-janstol joined #moarvm
20:35 colomon joined #moarvm
20:38 timotimo that sounds good at least
20:38 timotimo my keyboard is deciding to randomly send keypresses that switch buffers in weechat when i type ...
20:45 jnthn New keyboard time? :)
20:47 moritz speaking of keyboards, I've recently discovered that the shift key is implemented purly in software
20:47 jnthn o.O
20:47 jnthn Caps lock too, then?
20:47 moritz when I attach two USB keyboards, and I can press shift on one keyboard, and an alphabetic key on the other
20:47 moritz and it comes out in upper case
20:47 moritz jnthn: haven't tried that
20:47 jnthn !!
20:48 jnthn TIL...
21:01 timotimo i just bought this keyboard a month ago!
21:03 jnthn I dunno...play it more gently? :)
21:03 timotimo probably
21:08 jnthn My side of the brrt++ evaluation is now submitted.
21:10 timotimo \o/
21:10 timotimo and "my side" doesn't exist
21:11 jnthn I think brrt did his bit.
21:11 jnthn So, we seem to be good. \o/
21:11 jnthn brrt++, timotimo++, Google++
21:11 TimToady Quick, break all the bits!
21:12 jnthn Noooo...let me tag the release first. :P
21:12 jnthn I gotta get up for my YAPC flight in 7 hours or so. :P
21:13 jnthn So I'd like this to go smoothly :)
21:15 [Coke] 2 failing tests, with or without jit:
21:15 [Coke] S32-io/IO-Socket-Async.rakudo.moar aborted 1 test(s)
21:15 [Coke] S32-list/uniq.t aborted 7 test(s)
21:17 jnthn When I looked at S32-io/IO-Socket-Async.t last I couldn't tell if it was mis-fudged or an oddly reliable heisenbug..
21:19 jnthn As for S32-list/uniq.t, it seems to pass not under the harness, and fails to blow up with ASAN, which makes it rather frustrating. I suspect we may have to fudge that for release.
21:21 timotimo https://gist.github.com/timo/07f9bed3358139944afd ← jnthn, how the F did this happen? o_O
21:31 jnthn timotimo: Easily? :)
21:32 jnthn timotimo: The first BB is actually a kind of "pseudo"-BB that points to all the exceptional entry points.
21:32 timotimo it does not make sense to me, is all
21:32 timotimo oh
21:32 jnthn 'cus we might only end up in them through non-local control flow
21:32 timotimo that makes sense
21:32 jnthn And if they don't hang off something, then we'd kill them in dead BB analysis.
21:33 jnthn OK, tagging the release.
21:36 donaldh joined #moarvm
21:37 colomon joined #moarvm
21:39 dalek MoarVM: fd34f00 | jnthn++ | VERSION:
21:39 dalek MoarVM: Bump VERSION.
21:39 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/fd34f00205
21:41 donaldh joined #moarvm
21:42 jnthn Darn it. The release tarball...doesn't work.
21:43 FROGGS :o(
21:45 tadzik ow
21:45 FROGGS must be the MANIFEST, no?
21:46 FROGGS ... or the thing that creates it
21:46 FROGGS I'd guess that the new JIT source files might not be in there
21:46 timotimo well ... fuck
21:47 timotimo right. and even without --enable-jit, you still have to have the emit_dummy.c an demit.h
21:55 jnap1 joined #moarvm
21:55 dalek MoarVM: 45a543f | jnthn++ | tools/release.sh:
21:55 dalek MoarVM: Include dynasm submodule in release.
21:55 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/45a543fac2
21:56 jnthn That does it.
21:58 jnthn http://www.moarvm.org/releases/MoarVM-2014.08.tar.gz
21:58 timotimo oh, ah
21:59 jnthn Given I've got an earlyish flight, I'll update the website from an airport somewhere tomorrow.
21:59 jnthn Either in Copenhagen or the white city :)
22:00 jnthn .oO( I came to Serbia for the first time and all I got was this lousy layover... )
22:00 timotimo jnthn: any reason you changed lcm_I, but not gcd_I?
22:00 jnthn ummm
22:00 timotimo to put the allocation into the function it implements so that it can be jitted?
22:00 timotimo i can just do the same transformation right now if you'd like
22:01 jnthn I *think* 'cus lcm somehow used a macro form and I transofrmed the generating macro
22:01 jnthn But gcd didn't
22:01 jnthn I forget exactly
22:01 timotimo ah
22:01 timotimo i'll have a look-see
22:01 jnthn I did the bigint ops that I immediately needed for bits of perl6-bench and that were LHF.
22:01 jnthn We'll have to revisit bigint JIT in the future...
22:01 jnthn At least for the common ops
22:02 timotimo OK
22:02 timotimo well, gcd is probably something that'd appear in pretty much every piece of rat-using code, eh?
22:02 jnthn Yes :)
22:02 jnthn So we should JIT it :)
22:04 Ven joined #moarvm
22:07 jnthn OK, what's left on my pre-sleep todo list... :)
22:11 woolfy left #moarvm
22:21 timotimo it should be easy to jit curcode ...
22:21 timotimo and then i can probably just jit callercode, too.
22:21 timotimo just a teeny tiny branch in there
22:26 dalek MoarVM: ca7615e | (Timo Paulssen)++ | / (9 files):
22:26 dalek MoarVM: split boolify_iter into two ops, for hash and array.
22:26 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/ca7615ee52
22:26 dalek MoarVM: 125e656 | (Timo Paulssen)++ | src/spesh/facts.h:
22:26 dalek MoarVM: waste one less bit in facts bitfield
22:26 dalek joined #moarvm
22:28 timotimo (we already have callercode)
22:28 timotimo (it was me who implemented that)
22:38 timotimo bool_I seems hot, too
22:38 timotimo (in the code i tested)
22:47 timotimo this code spends a quarter of its time in add_frame_roots_to_worklist
22:48 timotimo ah, now getcodeobj has taken its place
22:49 timotimo jnthn: should i move the "getcodeobj needs a code ref" into the frame_get_code_object, or should the jitted code skip that check?
22:49 timotimo ... or maybe throwing an exception isn't that hard?
22:50 jnthn If you know it's BOOTCode you can elide the check
22:50 jnthn But it's not really hot code...
22:50 jnthn So I'd just put it in a function and call it
22:50 timotimo i have 38 bails on it in this piece of programming
22:50 timotimo "in a" or "into the"?
22:51 jnthn Possibly into the
22:51 timotimo OK
22:51 jnthn If the interp is the only place that calls it
22:51 timotimo i'll check how many callers it has
22:51 jnthn If it's called from elsewhere then those places don't need the check, so more efficient to put it in another function
22:51 timotimo aye, interp is the only place that calls it
22:51 jnthn ok
23:01 klaas-janstol joined #moarvm
23:02 timotimo implementing getcodeobj causes my program to segfault ... pretty much immediately after it compiles a frame that has it
23:03 timotimo oh, actually
23:03 timotimo many more frames with getcodeobj get jitted already
23:04 timotimo oh
23:04 timotimo maybe because it's not marked throwish
23:05 timotimo nope, still segfaults ...
23:12 timotimo why is use of MVMint32 and MVMint16 so inconsistent throughout graph.c to refer to a .reg.orig?
23:13 timotimo at least 16 seems to be right in all cases
23:15 timotimo i now remember that i don't have to mark things throwish that just do an adhoc exception
23:16 timotimo bleeehhhh why does this segfault
23:16 timotimo it passes a totally bogus pointer as the argument to getcodeobj
23:18 timotimo why TF does it do that
23:19 dalek MoarVM: 3606bbb | (Timo Paulssen)++ | src/jit/ (2 files):
23:19 dalek MoarVM: can jit curcode.
23:19 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/3606bbba23
23:19 dalek MoarVM: d6a1ce2 | (Timo Paulssen)++ | src/jit/graph.c:
23:19 dalek MoarVM: jit bool_I
23:19 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/d6a1ce2ad6
23:19 timotimo at least this is sane stuff
23:20 dalek MoarVM/jit_getcodeobj: 16ff4bd | (Timo Paulssen)++ | src/ (3 files):
23:20 dalek MoarVM/jit_getcodeobj: try to jit getcodeobj, but this segfaults :(
23:20 dalek MoarVM/jit_getcodeobj: review: https://github.com/MoarVM/MoarVM/commit/16ff4bdb82
23:20 timotimo if someone could check that out, that'd be fantastic
23:25 timotimo AFK

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