Perl 6 - the future is here, just unevenly distributed

IRC log for #moarvm, 2015-03-11

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

All times shown according to UTC.

Time Nick Message
00:00 timotimo oh
00:00 timotimo i misread
00:03 timotimo the previously existing block 2 got kicked out, but the predeccessor didn't get kicked out of the list of then-3-now-2
00:07 colomon joined #moarvm
00:08 lizmat joined #moarvm
00:12 dalek MoarVM: b5b5435 | timotimo++ | src/spesh/optimize.c:
00:12 dalek MoarVM: reinstate set removal as a further pass for spesh
00:12 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/b5b54351c6
00:52 timotimo huh, i wonder why we don't cache PHI op infos
00:56 timotimo i think i'll put a cache on the spesh graph
00:58 timotimo that'll be worth it.
01:09 timotimo whoa, what ...      35 PHI in 0x9626b0's 0x36feaf0 for 111 args (32)
01:13 timotimo now that i think about it, maybe it'd be better to hang the cache off of the tc
01:19 timotimo during the nqp build, we allocate PHI nodes with this many arguments that often: https://gist.github.com/timo/3c69bbced88045475dee
01:20 timotimo there's a potential saving of 32 byte for every single allocation, though these used to happen inside spesh alloc blocks
01:20 timotimo so all that can happen is they contribute to "tipping the scales" toward fewer spesh blocks allocated
01:21 timotimo and they'd only count for maxrss for extreme situations or for spesh graphs that live until the end of the program
01:24 timotimo (the gist now also contains the same stats but for the whole rakudo build)
01:47 timotimo oh
01:47 timotimo hmm, the addresses of the PHI ops should probably not move during a spesh run, that'd be pretty ... not good to say the least
01:48 timotimo so realloc isn't a good idea
01:49 timotimo still, having like 4kb of space "wasted" on phi node data doesn't sound like a big deal, compared to allocating 4kb of memory inside a spesh mem block for just 2-arg phi nodes
01:50 timotimo and when i blow the cache ... no big deal, i'll just spesh_alloc it
01:54 * timotimo is pleased
02:47 ilbot3 joined #moarvm
02:47 Topic for #moarvm is now https://github.com/moarvm/moarvm | IRC logs at  http://irclog.perlgeek.de/moarvm/today
03:17 vendethiel joined #moarvm
03:26 rurban joined #moarvm
03:35 colomon joined #moarvm
04:02 FROGGS_ joined #moarvm
08:12 rurban joined #moarvm
08:30 vendethiel joined #moarvm
08:36 virtualsue joined #moarvm
09:09 brrt joined #moarvm
09:11 zakharyas joined #moarvm
09:56 donaldh joined #moarvm
10:16 virtualsue joined #moarvm
10:17 dalek joined #moarvm
10:38 Ven joined #moarvm
10:42 Ven_ joined #moarvm
11:03 kjs_ joined #moarvm
11:09 tadzik joined #moarvm
11:49 nwc10 [Coke]: do you know if anyone is actually testing the MoarVM macport on PPC?
12:24 Ven joined #moarvm
12:42 FROGGS_ the PR's of cygx look very good I think
12:48 kjs_ joined #moarvm
13:15 Ven joined #moarvm
13:30 [Coke] nwc10: moarvm has no tests, so ... not really?
13:30 [Coke] I think macports has a buildfarm, though.
13:31 nwc10 Well, "testing that it builds"
13:31 [Coke] one sec.
13:33 [Coke] if we got universal support working, we'd have a better idea. See the moarvm ticket for respecting cflags, ldflags from ENV.
13:40 [Coke] 09:40 < neverpanic> [Coke]: we have buildbots down to 10.6, see https://build.macports.org/waterfall
13:40 [Coke] 09:40 < neverpanic> none for PPC machines, though.
13:41 [Coke] nwc10: you could ask kid51 to test it.
13:43 FROGGS_ [Coke]: can you try to get an answer for https://github.com/MoarVM/MoarVM/issues/182 ?
13:44 Ven joined #moarvm
14:11 zakharyas1 joined #moarvm
14:45 [Coke] I had assumed it was CFLAGS and LDFLAGS. :)
14:45 [Coke] checking.
14:46 nwc10 [Coke]: I don't have time to actively fix problems, so if it's not actually hurting any existing users, I don't feel that it's worth finding more work that needs doing
14:47 [Coke] nwc10: quite fair.
14:48 [Coke] FROGGS_: looking at https://guide.macports.org/chunked/reference.phases.html, I think it's those literal flags.
14:48 FROGGS_ nwc10: that's what I thought about the libffi ticket...
14:49 nwc10 FROGGS_: do you have the URL for that handy? I've forgotten which it is
14:50 FROGGS_ nwc10: https://github.com/MoarVM/MoarVM/issues/183
14:51 nwc10 aha that one
14:51 nwc10 I think that that ticket's reasonable to leave open as a wishlist
14:53 Ven joined #moarvm
14:54 FROGGS_ aye
15:01 [Coke] FROGGS_: Ionic++ from #macports chimed in.
15:01 [Coke] #182 is blocking us building with +universal support, which would get us a 32 bit build in addition to the 64bit one.
15:02 FROGGS_ I see
15:03 [Coke] (it would theoretically get us a powerpc build on older OS Xes)
15:06 Ven joined #moarvm
15:07 dalek MoarVM: 0939358 | FROGGS++ | Configure.pl:
15:07 dalek MoarVM: use env's CFLAGS and LDFLAGS if set, fixes #182
15:07 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/09393586b6
15:10 FROGGS_ LDFLAGS=-lfoo CFLAGS="-Dfoo -Ubar" perl Configure.pl --prefix=/home/froggs/dev/nqp/install --optimize --debug=3
15:10 FROGGS_ linking libmoar.so
15:10 FROGGS_ /usr/bin/ld: cannot find -lfoo
15:25 [Coke] Seems legit.
15:25 [Coke] asking if the macports people can test without an official release to shove in a portfile.
15:40 FROGGS joined #moarvm
16:14 dalek joined #moarvm
16:42 [Coke] wow, ionic took your commit, made a patch of it, and applied it to the existing macport.
16:43 [Coke] so now the macport for the last release can build universal.
16:43 FROGGS [Coke]: yes, packagers are used to do that :o)
16:43 FROGGS [Coke]: is there a page where one could see the build stats?
16:53 [Coke] https://build.macports.org/waterfall is the only page I know of.
17:02 * jnthn the whole course and can now go home :)
17:04 jnthn https://github.com/MoarVM/MoarVM/pull/185 looks good overall, I think, but probably main.c wants updating to use the new functions
17:06 jnthn The warnings one...urgh, I have myblah as a naming scheme. :P
17:06 jnthn But yeah, it's fine overall.
17:10 timotimo jnthn: +1/-1 on caching the MVMOpInfo for PHI nodes?
17:10 jnthn uh, I don't understand what there is to cache?
17:11 timotimo 32 bytes that used to be allocated up to hundreds of times per spesh graph
17:12 jnthn Ah, for each phi?
17:12 timotimo yes
17:12 jnthn hm
17:12 timotimo i got that idea when i wanted to reduce the number of arguments to a specific phi node and noticed i'd've had to allocate a fresh MVMOpInfo for that
17:12 jnthn ah, yeah
17:12 jnthn That's not such a common thing to want to do... :)
17:15 timotimo in the "eliminate iffy" optimization i wanted to directly kick out bb's that were made unreachable
17:15 timotimo and by reducing the incoming arguments to a phi, i thought i could probably get better facts (when a phi turns into basically a set)
17:17 timotimo like in https://gist.github.com/timo/bc2b12f65bbced5a7d8a we're checking a p6box_i'd int if it is concrete
17:55 nebuchadnezzar joined #moarvm
18:35 timotimo well, with my changes, that spesh log looks a bit better
18:43 timotimo oh interesting, that constant 1 is there because logging has found out that the majority of STORE_AT_KEY calls are made with a hash that has a defined $!storage
18:43 timotimo things like that are nice to see
18:48 dalek joined #moarvm
18:55 timotimo i'd love to know more about how to get our code-gen from spitting out p6box_i for lots of nqp::blah conditionals like defined
18:56 timotimo in this case it seems like it was the || operator to have an "unless" type of deal
18:56 timotimo but that also tries to sink the integer >_
18:56 timotimo >_
18:56 timotimo >_<
19:14 FROGGS [Coke]: build.macports.org page is very confusing :o)
19:17 virtualsue joined #moarvm
19:48 [Coke] yup. :)
19:48 [Coke] I think it's rganized by commit, but each commit test only runs the things that changed.
19:48 [Coke] so if you're looking for a -portfile-, good luck.
19:59 dalek MoarVM: eb60fa6 | timotimo++ | src/ (4 files):
19:59 dalek MoarVM: reduce pressure on spesh_alloc from PHI op info
19:59 dalek MoarVM:
19:59 dalek MoarVM: by hanging a cache off of the ThreadContext.
19:59 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/eb60fa6d24
19:59 dalek MoarVM: af415de | timotimo++ | src/spesh/ (2 files):
19:59 dalek MoarVM: when killing off a BB, have fun with facts and PHIs
19:59 dalek MoarVM:
19:59 dalek MoarVM: we reduce usage counts of all registers read in our bb
19:59 dalek MoarVM: and we mark all written-to registers as "written from a
19:59 dalek MoarVM: dead bb" and when a PHI is seen with arguments that are
19:59 dalek MoarVM: from a dead bb, we can cut the register out of the PHI.
19:59 dalek MoarVM: If the phi turns too short, we can ignore it completely
19:59 dalek MoarVM: and just copy all facts.
19:59 dalek MoarVM/spesh_tune_alloc: 8631951 | timotimo++ | src/ (4 files):
19:59 dalek MoarVM/spesh_tune_alloc: reduce pressure on spesh_alloc from PHI op info
19:59 dalek MoarVM/spesh_tune_alloc:
19:59 dalek MoarVM/spesh_tune_alloc: by hanging a cache off of the ThreadContext.
19:59 dalek MoarVM/spesh_tune_alloc: review: https://github.com/MoarVM/MoarVM/commit/8631951a1d
19:59 timotimo does somebody want to try out the spesh_tune_alloc branch? :)
19:59 timotimo it might give a bit of memory savings
19:59 timotimo then again, maybe not.
20:00 timotimo now i notice i should perhaps spectest ...
20:00 dalek joined #moarvm
20:14 jnthn timotimo: tbh, I'd have hung a cache for them off the spesh graph
20:15 jnthn It's less re-use, sure, but looser coupling. I already dislike how much stuff is in ThreadContext, this doesn't cut it for deserving to be in there for me.
20:18 timotimo understood
20:18 timotimo i can make that change
20:19 jnthn cool
20:19 jnthn timotimo++
20:24 timotimo i'll allocate that cache in the spesh alloc blocks in that case
20:25 timotimo do you have an idea how to connect guards, deopts and registers that have had their usage counts bumped up through them?
20:26 jnthn Not right off hand.
20:26 timotimo damn, now i do get segfaults :\
20:26 jnthn It's probably worth doing though.
20:27 jnthn I think the guards must have some state, 'cus we track if we make use of them...
20:27 timotimo we have a "from_guard" flag on our facts, iirc
20:27 timotimo and a "guard" member that points to the guard?
20:28 jnthn ah, could be
20:33 timotimo https://gist.github.com/timo/d1d710c3141ee41ec88e how did i make this happen :(
20:34 colomon joined #moarvm
20:34 timotimo am i making bad code-gen?
20:35 jnthn Very possibly
20:35 jnthn Or breaking deopt
20:49 nwc10 timotimo: I got through an ASAN build of the (current) origin/spesh_tune_alloc
20:49 nwc10 spectest seemed to fail only the same things as failed on Moar master
20:50 nwc10 (naughty #perl6, leaving the spectest in a state of fail)
20:51 nwc10 & # bedtime
20:56 timotimo oh?
20:57 timotimo t/spec/S02-types/deprecations.t and t/spec/S02-types/isDEPRECATED.rakudo.moar segv for me inside the GC
20:57 timotimo er, not inside the gc
20:57 timotimo that was with an earlier build
20:57 timotimo both in iscont_i, interestingly
21:02 agentzh joined #moarvm
21:02 agentzh joined #moarvm
21:08 timotimo oh, perhaps in treat_perhaps_unreachable_bb i have to make sure to bail out if there are annotations or something like that
21:10 virtualsue joined #moarvm
21:12 jnthn You need to be really careful about handler annotations
21:13 timotimo i don't really understand why we have to skip inlined BBs for dead bb elimination
21:18 jnthn Probably because we don't do a good enough job of incorportating them into the overall graph.
21:27 jnthn I get segfaults in spectest with latest MoarVM/NQP/Rakudo :/
21:28 FROGGS :o(
21:29 timotimo yes, gimme a bit
21:29 timotimo i just nommed a tasty nom
21:30 jnthn MVM_SPESH_DISABLE fixes them.
21:30 jnthn Why did a commit to spesh that breaks spectest make it into master?
21:30 jnthn That's *the* test suite we should try any non-boring spesh change against.
21:31 jnthn At a minimum.
21:31 timotimo yes, very. my bad!
21:31 jnthn Is there a commit I can revert locally?
21:31 FROGGS eb60fa6 and af415de I guess
21:31 jnthn I wouldn't mind spectesting the patch I have here to catch attributes usages in regexes at compile time and complain about 'em.
21:31 timotimo most probably af415de
21:32 timotimo eb06 ought to be harmless
21:34 colomon joined #moarvm
21:34 jnthn Yes, that helps
21:40 kjs_ joined #moarvm
21:42 timotimo has_handler_anns doesn't seem to help things here
21:46 timotimo i added another check - for "inlined" - and if that doesn't help, i'll revert it globally
21:48 timotimo yup. has to go for now :(
21:49 FROGGS move it to a branch first
21:49 timotimo the time traveling nature of git allows me to do it after the revert
21:49 FROGGS true :o)
21:50 timotimo sad, because it makes some code a little better
21:54 japhb .oO( Git users do it ... in a branch. )
22:39 donaldh joined #moarvm
22:40 donaldh nqp: QAST::WVal.new[0] # jvm gives java.lang.RuntimeException: This type does not support positional operations
22:40 donaldh sorry camelia
22:41 vendethiel joined #moarvm
22:42 camelia joined #moarvm
22:43 camelia nqp-parrot: OUTPUT«Can't exec "./rakudo-inst/bin/nqp-p": No such file or directory at lib/EvalbotExecuter.pm line 188.␤exec (./rakudo-inst/bin/nqp-p /tmp/tmpfile) failed: No such file or directory␤Lost connection to server irc.freenode.org.␤»
22:43 camelia ..nqp-jvm: OUTPUT«Can't exec "./rakudo-inst/bin/nqp-j": No such file or directory at lib/EvalbotExecuter.pm line 188.␤exec (./rakudo-inst/bin/nqp-j /tmp/tmpfile) failed: No such file or directory␤Server error occurred! Closing Link: ns1.niner.name (Quit: camelia)␤Lost connection…»
22:43 camelia ..nqp-moarvm: ( no output )
22:57 dalek MoarVM: 0988f1b | timotimo++ | src/spesh/ (2 files):
22:57 dalek MoarVM: Revert "when killing off a BB, have fun with facts and PHIs"
22:57 dalek MoarVM:
22:57 dalek MoarVM: This reverts commit af415decf100febfc42ee56f10b6d48c5c20d5e4.
22:57 dalek MoarVM:
22:57 dalek MoarVM: Causes segfaults in the spec tests
22:57 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/0988f1b2e0
22:57 dalek MoarVM: ab259ba | timotimo++ | src/ (4 files):
22:57 dalek MoarVM: move Phi cache from TC to SpeshGraph
22:57 dalek MoarVM:
22:57 dalek MoarVM: Conflicts:
22:57 dalek MoarVM: src/spesh/graph.c
22:58 timotimo this makes things no longer segfault

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