Perl 6 - the future is here, just unevenly distributed

IRC log for #moarvm, 2015-07-18

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

All times shown according to UTC.

Time Nick Message
00:36 vendethiel joined #moarvm
01:01 colomon joined #moarvm
01:22 mtj_ joined #moarvm
02:10 leedo joined #moarvm
02:16 raiph joined #moarvm
02:53 raiph joined #moarvm
03:20 dalek MoarVM: d2621b2 | (Jimmy Zhuo)++ | / (3 files):
03:20 dalek MoarVM: small optimization
03:20 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/d2621b2eb0
04:36 vendethiel joined #moarvm
05:56 vendethiel joined #moarvm
06:24 FROGGS joined #moarvm
06:36 vendethiel joined #moarvm
06:53 nebuchadnezzar joined #moarvm
06:56 dalek joined #moarvm
07:19 rurban joined #moarvm
07:41 vendethiel joined #moarvm
09:53 vendethiel joined #moarvm
11:09 timotimo JimmyZ: when is that code actually being run, OOC?
11:11 JimmyZ timotimo: don't know, but make MASTOps.moarvm size about 8% smaller
11:13 timotimo oh. that's not so bad :)
11:13 jnthn I'm surprised you didn't have to chance the indexer to an nqp::atpos_s
11:14 JimmyZ hmmm, I  think it should change to atpos_s
11:14 jnthn *change
11:15 jnthn nqp: my $s := nqp::list_s('abc'); say($s[0]);
11:15 jnthn uh...
11:16 camelia joined #moarvm
11:16 jnthn nqp: my $s := nqp::list_s('abc'); say($s[0]);
11:17 jnthn m: say 'alive?'
11:17 jnthn Hm.
11:17 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␤Server error occurred! Closing Link: ns1.niner.name (Quit: camelia)␤Lost connect…»
11:17 camelia ..nqp-moarvm: OUTPUT«MVMArray: atpos expected string register␤   at /tmp/tmpfile:1  (<ephemeral file>:<mainline>:30)␤ from gen/moar/stage2/NQPHLL.nqp:1289  (/home/camelia/rakudo-inst-1/share/nqp/lib/NQPHLL.moarvm:eval:190)␤ from gen/moar/stage2/NQPHLL.nqp:1492  (/home/camelia/ra…»
11:17 jnthn Aha
11:17 camelia nqp-moarvm: OUTPUT«MVMArray: atpos expected string register␤   at /tmp/tmpfile:1  (<ephemeral file>:<mainline>:30)␤ from gen/moar/stage2/NQPHLL.nqp:1289  (/home/camelia/rakudo-inst-1/share/nqp/lib/NQPHLL.moarvm:eval:190)␤ from gen/moar/stage2/NQPHLL.nqp:1492  (/home/camelia/ra…»
11:17 camelia ..nqp-jvm: OUTPUT«(signal ABRT)#␤# There is insufficient memory for the Java Runtime Environment to continue.␤# pthread_getattr_np␤# An error report file with more information is saved as:␤# /tmp/jvm-9508/hs_error.log␤»
11:17 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.␤»
11:17 camelia rakudo-moar 48c0ba: OUTPUT«alive?␤»
11:18 * jnthn will nqp-m next time :P
11:20 dalek MoarVM: da6e353 | (Jimmy Zhuo)++ | lib/MAST/Nodes.nqp:
11:20 dalek MoarVM: small fix
11:20 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/da6e3531c8
12:03 timotimo i've got a few local patches to cope with box + truthnesscheck and negation + truthnesscheck a bit better in spesh
12:04 jnthn Nice
12:05 timotimo but i have no good understanding of the &?ROUTINE thing yet
12:06 timotimo did you see that pretty much every code object now has a curcode + getcodeobj + bindlex_no for &?ROUTINE now?
12:06 timotimo well, not every code object of course
12:06 timotimo only for routines
12:08 jnthn yeah
12:08 jnthn I'm aware of that one
12:08 jnthn We got &?ROUTINE horribly broken beforehand, though.
12:08 timotimo right
12:08 timotimo i'm not saying "revert that patch stat!" ;)
12:09 jnthn :)
12:09 jnthn We can also elminate some cases of it in the Rakudo-level optimizer
12:10 timotimo i expected that, but i didn't really know what to look out for to prevent the elimination
12:10 timotimo i mean, i can guess we can search for QAST::Var that refer to the name and if none are there, we throw it out?
12:11 jnthn I think we rely on it being visible through CALLER is the thing
12:11 timotimo the good thing about the rakudo-level optimizer is that it can see directly into inner scopes, whereas spesh can not
12:11 timotimo yeah, i feared thta
12:11 timotimo that*
12:11 jnthn So we can eliminate it in simple ops
12:11 timotimo i remember being interested in building a simple analysis that stores "does this subroutine seem harmless?" information
12:11 timotimo like, does it access caller, does it eval, ...
12:12 timotimo and persist that across longer distances than our optimizer currently cares about
12:17 brrt joined #moarvm
12:26 brrt \o
12:26 timotimo o/ brrt
12:29 jnthn The thing is "is it harmless" depends on the optimization
12:29 jnthn Which is why collecting facts about the code, then looking at them per transofrm we want to do, is the general approach I've been pushing it in
12:29 jnthn o/ brrt
12:30 timotimo right, it'd want some sort of flag vector
12:30 timotimo and also something that'll signal "the flags of this sub depend on the following subs that have not yet been fully analyzed:"
12:31 timotimo and then we have multi subs and other kinds of interesting things
12:50 FROGGS joined #moarvm
12:55 brrt hmm
12:55 brrt it turns out that the notion of a basic block within a tree is suspicious at best
12:56 jnthn Especially when the tree is a DAG? :)
12:56 brrt especially, as in my case, if the tree is really a DAG
12:56 brrt yes
13:00 timotimo well, there's really the execution order tree/sequence and the data dependency graph/DAG
13:01 brrt hmm
13:01 brrt actually
13:02 brrt the linear order of the moarvm bytecode is fully preserved in constructing the expression 'tree'
13:03 brrt and indeed postorder traversal generates just the same sequence
13:03 brrt except for where a node is shared
13:03 brrt as it is using the let statement
13:03 brrt hmm
13:07 brrt i'm wondering if the expr tree IR is not making me 'stuck' in a way
13:15 dalek MoarVM/even-moar-jit: 22bd3c0 | brrt++ | / (8 files):
13:15 dalek MoarVM/even-moar-jit: Fix const operands
13:15 dalek MoarVM/even-moar-jit:
13:15 dalek MoarVM/even-moar-jit: Not all literal operands are equally sized, so this patch differentiates
13:15 dalek MoarVM/even-moar-jit: between different consts. Also add a few new exprlist templates. These
13:15 dalek MoarVM/even-moar-jit: interact in known ways to make the pseudocompiler panic.
13:15 dalek MoarVM/even-moar-jit: review: https://github.com/MoarVM/MoarVM/commit/22bd3c0efa
13:17 timotimo :o
13:17 timotimo no newline at end of file
13:17 timotimo *gasp*
13:17 timotimo "interact in known ways to make the pseudocompiler panic" - that's somehow funny to me :)
13:17 brrt well... i can learn to live with it :-P
13:19 brrt well, ehm, take a look at the template for sp_p6obind_o; because the write-barrier macro 'consumes' the second operand, it's no longer available for the second operation, becuase - being a conditional block - we can't properly rely on it being produced
13:20 timotimo oh
13:20 brrt i.e. the conditional block makes the load etc. conditional, but the nonconditional block doesn't recompute it because it assumes it should be there
13:21 brrt assumption is the mother of all...
13:21 zakharyas joined #moarvm
14:00 FROGGS joined #moarvm
14:13 raiph joined #moarvm
14:39 dalek MoarVM/improve_boxing_and_not: 21d34f0 | timotimo++ | / (7 files):
14:39 dalek MoarVM/improve_boxing_and_not: WIP on removing unnecessary boxing+unboxing
14:39 dalek MoarVM/improve_boxing_and_not:
14:39 dalek MoarVM/improve_boxing_and_not: and deduplicate "not" instructions and such.
14:39 dalek MoarVM/improve_boxing_and_not: review: https://github.com/MoarVM/MoarVM/commit/21d34f0ef4
14:39 timotimo pushed my WIP, will be on the road for an hour
15:13 TimToady joined #moarvm
15:26 oetiker joined #moarvm
15:30 lizmat joined #moarvm
15:52 rurban joined #moarvm
16:02 zakharyas joined #moarvm
16:21 timotimo i've got a test workload where the bigint boxing + unboxing optimization is hit, but it's only ever hit once and that's in prefix:<!>
16:23 timotimo i'll remove the debug output and see that spec tests are still happy
16:32 JimmyZ_ joined #moarvm
17:31 timotimo # expected: "1 9 25 49 81"
17:31 timotimo #      got: " 1  9  25  49  81 "
17:31 timotimo i wonder how this happens
17:34 timotimo i know what part of my stuff causes this at least
17:43 timotimo what do i need to do so that it appears to me what's wrong ... i wonder
20:43 rurban joined #moarvm
22:29 sivoais joined #moarvm
22:35 TEttinger joined #moarvm
23:02 xiaomiao joined #moarvm
23:18 xiaomiao joined #moarvm

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