Camelia, the Perl 6 bug

IRC log for #moarvm, 2013-07-29

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

All times shown according to UTC.

Time Nick Message
00:25 dalek MoarVM/p5interop: 06449c9 | diakopter++ | src/6model/reprs. (2 files):
00:25 dalek MoarVM/p5interop: make repr_register public
00:25 dalek MoarVM/p5interop: review: https://github.com/MoarVM/MoarVM/commit/06449c9113
00:25 dalek MoarVM/p5interop: 372aaa2 | diakopter++ | / (4 files):
00:25 dalek MoarVM/p5interop: refactor the makefile dramatically to shrink size hugely.  only windows nmake for now.  needs generalized to gmake also.
00:25 dalek MoarVM/p5interop: review: https://github.com/MoarVM/MoarVM/commit/372aaa2c44
00:25 dalek MoarVM/p5interop: 6c7b79b | diakopter++ | src/6model/reprs.c:
00:25 dalek MoarVM/p5interop: just so it builds
00:25 dalek MoarVM/p5interop: review: https://github.com/MoarVM/MoarVM/commit/6c7b79b6a2
01:13 JimmyZ diakopter: ping
01:56 woosley joined #moarvm
02:23 dalek MoarVM: 9e2e61d | jimmy++ | nqp-cc/tools/build/Makefile.in:
02:23 dalek MoarVM: cross-compile QASTRegexCompilerMAST.nqp
02:23 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/9e2e61db83
03:12 diakopter JimmyZ: pong
03:18 JimmyZ diakopter: per extops.markdown, do you suggest remove BANK and reorder ops as   natural order like 1...65535? I think this should make 'my int $sum; my int $i = 0; while($i < 100000) { $sum += $i }; ' about 40% faster
03:19 diakopter why do you think it would be that much faster?
03:20 diakopter did you try it and measure it? :)
03:20 diakopter (I just suggested trying it and measuring it)
03:23 JimmyZ diakopter: It reduces about 40% cpu opcode with -O2 optimizantion
03:25 diakopter JimmyZ: could you gist a diff?
03:25 JimmyZ diakopter: anyway, it's a good advice to measuring it
03:25 JimmyZ diakopter: I do not have a diff yet
03:33 JimmyZ hmm, not that much, should be 20%
03:34 timotimo JimmyZ: that sum thing is totally an infinite loop :)
03:34 timotimo so 20% faster will still take infinitely long :D
03:34 JimmyZ s/$i </$i++ </
03:34 timotimo :)
03:34 diakopter heh.
03:34 timotimo bedtime now
03:34 diakopter o/
03:35 diakopter JimmyZ: did you see that last commit I pushed?
03:35 diakopter made the makefile like 80% smaller
03:35 diakopter on windows, anyway.
03:35 JimmyZ at least, it reduce case and *(cur_op)++, in MVM_interp_run
03:35 diakopter need to generalize it to gmake.
03:36 JimmyZ diakopter: yes, I saw
03:36 JimmyZ diakopter: I'm using nmake, du to apr doesn't supprot gmake in windows
03:36 diakopter ok
04:48 birdwindupbird joined #moarvm
05:47 JimmyZ diakopter: ping
05:48 diakopter JimmyZ: pong
05:48 JimmyZ diakopter: https://gist.github.com/zhuomingliang/6102349
05:49 JimmyZ I golfed a bug, could you help me please?
05:49 TimToady .oO(乒乓)
05:49 JimmyZ it outputs cannot box a void register
05:50 JimmyZ I chaned ' nqp::splice(@all_ins, $arg.instructions, +@all_ins, 0)
05:51 JimmyZ I changed  nqp::splice(@all_ins, $arg.instructions, +@all_ins, 0) unless $constant_operand; to  unless $constant_operand { nqp::splice(@all_ins, $arg.instructions, +@all_ins, 0) ; } , it compiles
05:51 diakopter wat
06:53 JimmyZ hmm, looks there are some bug in if/unless op definition
07:30 masak oh?
07:33 JimmyZ masak: you can help me ? :P
07:34 FROGGS joined #moarvm
07:34 masak do you have a failing test? :)
07:34 JimmyZ or FROGGS :P
07:35 JimmyZ masak: https://gist.github.com/zhuomingliang/6102349
07:36 FROGGS morning o/
07:37 JimmyZ FROGGS: morning
07:46 JimmyZ the problem is why it want splice returns MVM_reg_obj
07:49 * FROGGS reads backlog
07:52 Alpha64 joined #moarvm
07:52 Alpha64 joined #moarvm
07:53 Alpha64 left #moarvm
07:59 FROGGS JimmyZ++ \o/ # added pushcompsc, popcompsc op
07:59 FROGGS benabik++ # whitespace removal :o)
08:00 JimmyZ now block on unless compile, which I'm not good at
08:00 JimmyZ :(
08:35 FROGGS .tell diakopter: can you fix it please? I'm not so sure what to do: http://irclog.perlgeek.de/m​oarvm/2013-07-28#i_7378950  and  http://irclog.perlgeek.de/m​oarvm/2013-07-28#i_7378959
08:35 yoleaux FROGGS: What kind of a name is "diakopter:"?!
08:36 FROGGS .tell diakopter can you fix it please? I'm not so sure what to do: http://irclog.perlgeek.de/m​oarvm/2013-07-28#i_7378950  and  http://irclog.perlgeek.de/m​oarvm/2013-07-28#i_7378959
08:36 yoleaux FROGGS: I'll pass your message to diakopter.
08:36 FROGGS thanks
08:39 JimmyZ FROGGS: I think I fixed it already
08:39 FROGGS JimmyZ: this too? http://irclog.perlgeek.de/m​oarvm/2013-07-28#i_7378950
08:40 JimmyZ FROGGS: yes
08:41 JimmyZ FROGGS: https://github.com/MoarVM/Moa​rVM/commit/236e8c13f2#L2R366
08:42 FROGGS JimmyZ: but there is no &instance->clargs in line 380
08:43 JimmyZ FROGGS: I can't follow you
08:44 FROGGS and the other think diakopter mentioned implies putting clargs in another MVMROOT (of instance?), but I'm not sure about that thing
08:44 FROGGS he said: diakopter
08:44 FROGGS it should add &instance->clargs instead, after it's assigned
08:44 JimmyZ FROGGS: yes, I did it in line 378
08:51 JimmyZ FROGGS: good news: the left cross-compile files is MASTCompiler.nqp
08:52 JimmyZ and MASTTesting.nqp
08:53 FROGGS JimmyZ: I believe diakopter ment:
08:53 FROGGS -MVM_gc_root_add_permanent(tc, (MVMCollectable **)instance->clargs);
08:53 FROGGS +MVM_gc_root_add_permanent(tc, (MVMCollectable **)&instance->clargs);
08:55 JimmyZ FROGGS: oh, I lost &
08:56 JimmyZ so my english is really poor
08:57 dalek MoarVM: 4c07b18 | jimmy++ | src/io/procops.c:
08:57 dalek MoarVM: small fixes, FROGGS++
08:57 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/4c07b188f6
08:58 FROGGS .tell diakopter nvm, everything is good :o)
08:58 yoleaux FROGGS: I'll pass your message to diakopter.
08:58 FROGGS *g*
08:58 FROGGS thanks JimmyZ
08:58 JimmyZ thanks FROGGS :P
08:58 FROGGS <--- coffee
09:18 crab2313 joined #moarvm
10:20 dalek MoarVM: 4e914c7 | (Tobias Leich)++ | nqp-cc/src/QASTOperationsMAST.nqp:
10:20 dalek MoarVM: make clear that nqp::splice is void
10:20 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/4e914c7d72
10:20 FROGGS JimmyZ: ^^, this should fix your bug
10:20 FROGGS <--- off to lunch
10:26 colomon joined #moarvm
10:27 yoleaux joined #moarvm
11:16 JimmyZ FROGGS: it does, but the patch is wrong
11:17 JimmyZ FROGGS: see http://irclog.perlgeek.de/m​oarvm/2013-07-29#i_7382253
11:18 FROGGS but I thought void ops need to get third arg=0 here https://github.com/MoarVM/MoarVM/commit/4e914c7d72
11:26 JimmyZ FROGGS: not really, third arg can be 1, 2, 3 too, see https://github.com/MoarVM/MoarVM/blob/mast​er/nqp-cc/src/QASTOperationsMAST.nqp#L279
11:27 JimmyZ FROGGS: the patch did fix splice, but didn't other ops, so it's a cheat for splice
11:27 JimmyZ s/didn't/didn't fix/ :P
11:28 colomon joined #moarvm
11:30 JimmyZ it should be fixed by avoids coercion when there is no bind/assign
11:37 FROGGS yeah, I know about the other possible values, so I think the way to go is to check the op list, and pass the proper third arg for all ops
11:37 JimmyZ FROGGS: as it can be compiled by nqp/parrot, I look into nqp/parrot, bu no idea how nqp on parrot/jvm avoids it
11:38 JimmyZ FROGGS: please don't do that
11:40 JimmyZ FROGGS: pass a third arg means there will be register to be frozen
11:41 JimmyZ FROGGS: I suggest ask jnthn firstly after he is home
11:41 FROGGS k
11:41 JimmyZ FROGGS: do you have any other plans?
11:42 JimmyZ :P
11:42 FROGGS not atm
11:43 JimmyZ an easy fix is to change to 'unless $constant_operand { nqp::splice(@all_ins, $arg.instructions, +@all_ins, 0) ; }'
11:43 JimmyZ ;)
11:45 dalek MoarVM: 9a2b79c | jimmy++ | nqp-cc/src/QASTOperationsMAST.nqp:
11:45 dalek MoarVM: Revert "make clear that nqp::splice is void"
11:45 dalek MoarVM:
11:45 dalek MoarVM: This reverts commit 4e914c7d720b65484df5f5fad2551ba73f46f0cd.
11:45 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/9a2b79c6df
11:47 colomon joined #moarvm
12:10 crab2313 joined #moarvm
12:20 crab2313 joined #moarvm
12:26 crab2313 joined #moarvm
12:32 colomon joined #moarvm
12:48 yoleaux joined #moarvm
13:41 diakopter JimmyZ: hi
13:42 JimmyZ diakopter: hello
13:43 diakopter also clargs needs to be in a new MVMROOT after it's created, while it adds stuff it
13:43 diakopter *to it
13:44 diakopter er.
13:45 diakopter somehow it appeared
13:45 diakopter without a dalek notice
13:52 JimmyZ diakopter: Do you know how to fix my gist bug?
13:54 diakopter JimmyZ: I couldn't see what was wrong
13:55 JimmyZ nqp nqp-moar-cc.nqp --target=mbc --setting=NQPCOREMoar --no-regex-lib --output=QASTOperationsMAST.moarvm src\QASTOperationsMAST1.nqp
13:55 JimmyZ diakopter: just compile it
14:02 FROGGS "nqp::splice(@arr1, @arr2, 0, 0) unless 1" dies, while "unless 1 { nqp::splice(@arr1, @arr2, 0, 0) }" works
14:04 JimmyZ the wrong thing is that it can't got $*WANT
14:04 JimmyZ looks like %*WANT is lost somewhere
14:06 JimmyZ I see $*WANT is not lost in nqp on parrot/jvm
14:07 diakopter hrm
14:07 diakopter I'm still not grasping how this snippet reproduces the problem
14:08 JimmyZ diakopter: you mean you didn't see the compile error?
14:10 diakopter I've never used nqp-moar-cc.nqp
14:10 diakopter O_O
14:10 JimmyZ ...
14:10 diakopter :D
14:10 diakopter probably means I should build the cross compiler
14:22 benabik joined #moarvm
14:31 crab2313 left #moarvm
14:34 crab2313 joined #moarvm
14:35 colomon joined #moarvm
15:31 diakopter JimmyZ: did you try it with the unless in the same line?
15:32 FROGGS diakopter: I tried and it dies
15:32 diakopter why do you think the problem is with something having to do with void return
15:33 diakopter oh, because if/unless requires it
15:33 diakopter what happens if you do if !
15:33 diakopter instead of unless
15:34 diakopter well we need to decide what type/object should result from if statements like those that are void
15:35 FROGGS diakopter: since using 'if' dies too, 'if !...' would die also
15:35 diakopter ... or is want void?
15:35 diakopter oh
15:35 diakopter why does JimmyZ say $*WANT is lost
15:35 diakopter where is it last set?
15:35 JimmyZ the wrong thing is that it can't got $*WANT
15:36 FROGGS $*WANT is undefined in most cases, and that might be wrong
15:36 JimmyZ I see $*WANT is not lost in nqp on parrot/jvm
15:40 FROGGS btw, $*WANT is not defined for the "unless { nqp::splice(...) }" case too
15:41 JimmyZ FROGGS: I have compared nqp/parrot
15:41 FROGGS is it defined there in that case?
15:41 JimmyZ and I'm sure is $*WANT is not lost and $*WANT='v'
15:46 JimmyZ I aslo compared the pir and moarvmdump, to make sure $*WANT='v' there in nqp/parrot
15:48 TimToady $*WANT seems like the wrong way to do context, since you only ever want to know your immediate context, and dynamic variables propagate downward "too far"
15:48 JimmyZ diakopter: $*WANT is set in Compiler.nqp on parrot and QASTCompilerMAST.nqp
15:49 JimmyZ there is also CPS :$want args
15:49 JimmyZ sometimes it losts in continue pass
15:50 diakopter I know, I added it.. but clearly not completely
16:01 JimmyZ Good night
16:05 masak 晚安,卓明亮
16:29 FROGGS[mobile] joined #moarvm
16:48 FROGGS joined #moarvm
16:48 FROGGS[mobile] left #moarvm
17:28 colomon joined #moarvm
17:41 FROGGS joined #moarvm
18:01 benabik joined #moarvm
18:46 Alpha64 joined #moarvm
19:07 benabik joined #moarvm
20:59 benabik joined #moarvm
21:20 masak joined #moarvm
21:53 linkedinyou joined #moarvm
22:01 FROGGS joined #moarvm
22:30 benabik joined #moarvm
22:36 FROGGS joined #moarvm
22:46 colomon joined #moarvm
23:58 Tene joined #moarvm

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