Camelia, the Perl 6 bug

IRC log for #perl6, 2014-01-25

Perl 6 | Reference Documentation | Rakudo | Niecza | Specs

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

All times shown according to UTC.

Time Nick Message
00:00 FROGGS Perl5::Terms make use of rakudo's Test.pm, commenting that so that Perl5::Terms has no deps
00:01 FROGGS this seems to do the trick
00:01 FROGGS m: sub fail($a?) is export { use Test; ::('&flunk')( $a // '' ) }
00:01 camelia rakudo-moar fd8316: ( no output )
00:03 jnthn Right, it was the pre-compiled Test.pm that was making an issue in JSON::Tiny too
00:03 FROGGS hmmm
00:05 FROGGS okay, I can reproduce it
00:05 FROGGS I put "sub fail($a?) is export { use Test }" in a file called flunk.pm and compiled it to mbc
00:06 FROGGS and then used it from -e and get the same error
00:07 timotimo is JSON::Tiny only failing due to a test.pm problem?
00:07 skids joined #perl6
00:07 jnthn FROGGS: Like this: https://gist.github.com/jnthn/8609496
00:07 jnthn timotimo: Well, I got it working for me...
00:08 jnthn timotimo: Now trying to work out why FROGGS has bugs I don't..
00:10 FROGGS jnthn: I copy+pasted your commands, and it fails for me
00:10 FROGGS I did a git diff in all repos, and only rakudo has changes (in the grammar, as expected)
00:10 dalek rakudo/nom: 9e00a88 | jnthn++ | src/Perl6/Metamodel/BOOTSTRAP.nqp:
00:11 dalek rakudo/nom: Install method not found handler.
00:11 dalek rakudo/nom:
00:11 dalek rakudo/nom: Actually receives the invocant object, ready for an improved exception
00:11 dalek rakudo/nom: object. Can also add this mechanism to JVM backend, most likely.
00:11 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/9e00a881df
00:11 jnthn FROGGS: git show 8004501e # you do have this one, yes?
00:11 jnthn FROGGS: And 080ce0bf2 in NQP?
00:13 FROGGS_ joined #perl6
00:13 FROGGS_ nqp-m --version
00:13 FROGGS_ This is nqp version 2014.01-3-g080ce0b built on MoarVM version 2014.01-2-g8286436
00:14 FROGGS_ perl6-m --version
00:14 FROGGS_ This is perl6 version 2014.01-25-gfd8316f built on MoarVM version 2014.01-2-g8286436
00:14 FROGGS_ git show 8004501e
00:14 FROGGS_ commit 8004501ef1a7f593def75a71c646727e6f8f0098
00:14 FROGGS_ Author: jnthn <jnthn@jnthn.net>
00:14 FROGGS_ yes
00:16 FROGGS_ compiling on windows now
00:17 airdisa joined #perl6
00:25 BenGoldberg joined #perl6
00:32 FROGGS_ gnight
00:33 jnthn 'night, FROGGS_
00:33 diakopter o/
00:35 timotimo gnight
00:35 hoelzro alright! dir() bug fixed on moar!
00:35 hoelzro just gotta test on parrot and jvm...
00:38 dalek roast: fd53e7a | jnthn++ | S02-magicals/UsedEnv.pm6:
00:38 dalek roast: Make a test Windows-friendly.
00:38 dalek roast: review: https://github.com/perl6/roast/commit/fd53e7a5f3
00:38 jnthn hoelzro: Cool...I did a small dir on Moar Windows patch earlier, but that just got it to only fail the dir.t tests that we do on other platforms, I think.
00:50 mavcunha joined #perl6
00:57 jeffreykegler joined #perl6
01:00 telex joined #perl6
01:03 stevan_ joined #perl6
01:03 btyler joined #perl6
01:04 mavcunha joined #perl6
01:11 grondilu p6: role Foo {}; multi infix:<+>(Foo $, Foo $) { "Foo!" }; say (4 but Foo) + (5 but Foo);'
01:12 camelia niecza v24-109-g48a8de3: OUTPUT«[31m===[0mSORRY![31m===[0m��Bogus statement at /tmp/tmpfile line 1:�------> [32m"Foo!" }; say (4 but Foo) + (5 but Foo);[33m�[31m'[0m��Parse failed��»
01:12 camelia ..rakudo-parrot fd8316, rakudo-jvm fd8316, rakudo-moar fd8316: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/tmpfile�Unable to parse expression in single quotes; couldn't find final "'" �at /tmp/tmpfile:1�------> [32mFoo!" }; say (4 but Foo) + (5 but Foo);'[…»
01:12 diakopter wut
01:12 diakopter oh
01:12 grondilu p6: role Foo {}; multi prefix:<+>(Foo $x) { $x }; say +(4 but Foo);
01:12 camelia rakudo-parrot fd8316, rakudo-jvm fd8316, rakudo-moar fd8316, niecza v24-109-g48a8de3: OUTPUT«4␤»
01:13 grondilu I don't see why it works with the prefix and not the infix  :/
01:13 grondilu oh hang on
01:13 grondilu p6: role Foo {}; multi infix:<+>(Foo $, Foo $) { "Foo!" }; say (4 but Foo) + (5 but Foo);
01:14 camelia niecza v24-109-g48a8de3: OUTPUT«Foo!␤»
01:14 camelia ..rakudo-jvm fd8316: OUTPUT«Ambiguous call to 'infix:<+>'; these signatures all match:␤:(Int:D \a, Int:D \b --> Int)␤:(Foo, Foo)␤  in any  at gen/jvm/BOOTSTRAP.nqp:1225␤  in any  at gen/jvm/BOOTSTRAP.nqp:1218␤  in any  at gen/jvm/BOOTSTRAP.nqp:1202␤  in sub infix:<+> at ge…»
01:14 camelia ..rakudo-moar fd8316: OUTPUT«Ambiguous call to 'infix:<+>'; these signatures all match:␤:(Int:D \a, Int:D \b --> Int)␤:(Foo, Foo)␤  in sub infix:<+> at src/gen/m-CORE.setting:3992␤  in block  at /tmp/tmpfile:1␤␤»
01:14 camelia ..rakudo-parrot fd8316: OUTPUT«Ambiguous call to 'infix:<+>'; these signatures all match:␤:(Int:D \a, Int:D \b --> Int)␤:(Foo, Foo)␤  in any  at gen/parrot/BOOTSTRAP.nqp:1233␤  in any  at gen/parrot/BOOTSTRAP.nqp:1225␤  in any  at gen/parrot/BOOTSTRAP.nqp:1210␤  in sub inf…»
01:14 grondilu there you go
01:15 grondilu the candidate using the roles should prevail, shouldn't it?
01:17 airdisa joined #perl6
01:21 lue p: role Foo {}; my $a = 42 but Foo; say $a ~~ Foo; say $a ~~ Int;
01:21 camelia rakudo-parrot fd8316: OUTPUT«True␤True␤»
01:33 varna joined #perl6
01:38 mcglk joined #perl6
01:41 Exodist joined #perl6
01:43 jnap joined #perl6
01:50 stevan_ joined #perl6
02:02 grondilu well, maybe not.  I need to read S12 again, one of these days.
02:18 airdisa joined #perl6
02:44 jnap joined #perl6
02:59 jnap joined #perl6
03:19 airdisa joined #perl6
03:20 jeffreykegler left #perl6
03:21 [Coke] (bug coke) you can also bug pmichaud++
03:44 lue good to know :)
04:05 regreg joined #perl6
04:16 molaf joined #perl6
04:19 airdisa joined #perl6
04:35 jnap joined #perl6
04:42 Exodist joined #perl6
04:44 FROGGS joined #perl6
04:46 Alula joined #perl6
05:08 raydiak Str is 3x faster than str under perl6-m in a simple concat test?
05:08 yoleaux 24 Jan 2014 17:00Z <japhb> raydiak: re: http://irclog.perlgeek.de/​perl6/2014-01-21#i_8152416 , yes I've done a bit of work on the vector lib, just getting vector-vector and vector-scalar operations in place.  The code for similar operators is generated from template to avoid repetition and obscure copy-pasta errors affecting only one variation of one op somewhere.
05:08 yoleaux 24 Jan 2014 17:03Z <japhb> raydiak: The code needs some massaging to make it sane to work on together, but if you're up for it, I can find some tuits to throw at that.
05:11 SamuraiJack joined #perl6
05:13 Alula joined #perl6
05:20 airdisa joined #perl6
05:36 jnap joined #perl6
06:08 darutoko joined #perl6
06:21 airdisa joined #perl6
06:34 zby_home_ joined #perl6
06:37 jnap joined #perl6
06:40 dalek Net--IRC/concurrency: 06a4f24 | (Geoffrey Broadwell)++ | lib/Net/IRC/SocketConnection.pm:
06:40 dalek Net--IRC/concurrency: Don't hardcode the line separator when sending lines
06:40 dalek Net--IRC/concurrency: review: https://github.com/TiMBuS/​Net--IRC/commit/06a4f24407
06:40 dalek Net--IRC/concurrency: 2ed14a0 | (Geoffrey Broadwell)++ | lib/Net/IRC/Logger.pm:
06:40 dalek Net--IRC/concurrency: Support logging to an already-opened handle, as well as to a logfile path
06:40 dalek Net--IRC/concurrency: review: https://github.com/TiMBuS/​Net--IRC/commit/2ed14a0031
06:40 dalek Net--IRC/concurrency: 3516c39 | (Geoffrey Broadwell)++ | lib/Net/IRC/Bot.pm:
06:40 dalek Net--IRC/concurrency: Convert Net::IRC::Bot core to use concurrency and new logging system
06:40 dalek Net--IRC/concurrency: review: https://github.com/TiMBuS/​Net--IRC/commit/3516c39d52
06:40 dalek Net--IRC/concurrency: 74f77ca | (Geoffrey Broadwell)++ | / (3 files):
06:40 dalek Net--IRC/concurrency: Switch sample bot and modules that used to 'say' debug messages to use new logging system instead
06:41 dalek Net--IRC/concurrency: review: https://github.com/TiMBuS/​Net--IRC/commit/74f77ca0d8
06:54 Alina-malina joined #perl6
07:22 airdisa joined #perl6
07:29 atroxaper joined #perl6
07:37 jnap joined #perl6
08:08 atroxape_ joined #perl6
08:22 airdisa joined #perl6
08:25 felher Why was Order::Inc/Dec changed to Order::More/Less?
08:29 FROGGS joined #perl6
08:31 FROGGS morning
08:31 felher o/ froggs
08:31 FROGGS hi felher :o)
08:36 moritz good morning
08:37 moritz felher: because it was pretty ambiguous. $a cmp $b => Inc. Do you need to increase $a to get $b? or is $b an increased version of $a?
08:37 moritz felher: also, Inc < 0 was pretty unintuitive
08:38 moritz whereas $a <=> $b  => Less  it's pretty clear that $a is less than $b, and Less < 0 is also pretty intuitive
08:38 jnap joined #perl6
08:38 felher moritz: Ah, IC... okay. I just thought more/less is kindy ambigous. a < b < c is increasing, though you have a lot of less-than-signs in between them. :)
08:38 felher moritz: but yeah, I see your point.
08:38 felher thanks. :)
08:39 moritz on a completly unrelated note, I now know why I don't like info pages
08:39 felher Why's that?
08:39 moritz it's because when the man page doesn't contain enough information, and I follow the 'For more information, please read "info $prog"'
08:40 moritz and then I often get exactly the same text as the man page, and I'm disappointed
08:40 felher yeah, true.
08:40 moritz and the few times that I haven't gotten the same text, it usually wasn't much more helpful
08:40 moritz I think I can recall only one occurrence when the info page actually contained something useful for me that the man page didn't contain
08:42 moritz m: say 'what revision am I on?'
08:42 camelia rakudo-moar 9e00a8: OUTPUT«what revision am I on?␤»
08:42 moritz HEAD, great
08:42 Mouq p6: sub &*dynamical {}
08:42 camelia rakudo-parrot 9e00a8, rakudo-jvm 9e00a8, rakudo-moar 9e00a8: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/tmpfileâ�¤Missing blockâ�¤at /tmp/tmpfile:1â�¤------> [32msub [33mâ��[31m&*dynamical {}[0mâ�¤    expecting any of:â�¤        statement listâ�¤        pre…»
08:42 camelia ..niecza v24-109-g48a8de3: OUTPUT«Potential difficulties:â�¤  &dynamical is declared but not used at /tmp/tmpfile line 1:â�¤------> [32msub &*dynamical [33mâ��[31m{}[0mâ�¤â�¤Â»
08:43 daniel-s__ joined #perl6
08:43 * moritz -> afk
08:46 FROGGS joined #perl6
08:47 _daniel-s__ joined #perl6
08:48 FROGGS jnthn: I commented here https://gist.github.com/jnthn/8609496
08:48 FROGGS jnthn: is it expected to differ in file size?
08:53 Rotwang joined #perl6
09:00 _daniel-s__ joined #perl6
09:01 dalek rakudo/nom: 396a2d3 | Mouq++ | src/Perl6/Grammar.nqp:
09:01 dalek rakudo/nom: Fix parsing of `sub { 42 }()` and `sub{ 42 }()`
09:01 dalek rakudo/nom:
09:01 dalek rakudo/nom: Fixes two tests in S02-lexical-conventions/sub-block-parsing.t
09:01 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/396a2d3db4
09:02 Mouq p6: say sub{4}() #works now
09:02 camelia niecza v24-109-g48a8de3: OUTPUT«4␤»
09:02 camelia ..rakudo-parrot 9e00a8, rakudo-jvm 9e00a8, rakudo-moar 9e00a8: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/tmpfileâ�¤Two terms in a rowâ�¤at /tmp/tmpfile:1â�¤------> [32msay sub{4}[33mâ��[31m() #works now[0mâ�¤    expecting any of:â�¤        postfixâ�¤        â€¦Â»
09:02 FROGGS Mouq++
09:03 Mouq I can un-skip those tests, right?
09:04 crab2313 joined #perl6
09:04 FROGGS sure
09:04 FROGGS that is the point :o)
09:06 Mouq K :)
09:06 dalek roast: 94420d5 | Mouq++ | S02-lexical-conventions/sub-block-parsing.t:
09:06 dalek roast: Unskip postcircumfix on sub declaration tests
09:06 dalek roast: review: https://github.com/perl6/roast/commit/94420d5798
09:12 FROGGS you did a spectest run?
09:14 FROGGS nvm, I am doing one anyway
09:21 Mouq FROGGS: Yeah, but in hindsight I probably would have had a better chance of seeing any problems that the commit may have caused if I'd have used the Parrot or JVM backend :p :/
09:23 airdisa joined #perl6
09:25 FROGGS true
09:25 FROGGS p-spectest should pass, jvm has a handful which can be seen in the perl6_pass_rates repo
09:26 FROGGS err, this https://github.com/coke/perl​6-roast-data/tree/master/log
09:26 FROGGS m-spectest is harder to compare atm
09:27 Mouq FROGGS: Yeah, thanks. I'm going to start building JVM again alongside Moar
09:33 xinming_ joined #perl6
09:38 xinming joined #perl6
09:41 odoacre_ joined #perl6
09:47 regreg joined #perl6
09:48 zacts joined #perl6
09:49 Mouq Or... I would but perl6-m seems to be overwriting perl6-j? :/
09:50 dmol joined #perl6
09:51 moritz it shouldn't
09:51 moritz and it doesn't, usually :-)
09:56 Mouq moritz: I know :) but it is.. it had done it a week or so ago, actually, but I had been configuring my perl6-j so I figured it was my fault. I hadn't built it since
09:56 denis_boyun joined #perl6
09:56 bjz joined #perl6
10:03 Mouq r: say (-1) ** 10 ** $_ for 1..10
10:03 camelia rakudo-jvm 396a2d: OUTPUT«1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤»
10:03 camelia ..rakudo-parrot 396a2d: OUTPUT«1␤1␤1␤1␤1␤1␤1␤1␤1␤-Inf␤»
10:03 camelia ..rakudo-moar 396a2d: OUTPUT«1␤1␤1␤1␤1␤1␤1␤1␤1␤0␤»
10:03 Mouq jvm++
10:07 Mouq Hm, perl6-j only gets overwritten with --backends=moar,jvm. --backends=jvm,moar works fine, though I still get a 'make: write error' at the end of 'make install'
10:10 hoelzro morning #perl6
10:18 moritz Mouq: that should only overwrite perl6, not perl6-j
10:20 hoelzro would someone mind taking a look at my PR from early this morning? https://github.com/rakudo/rakudo/pull/247
10:20 moritz if it does overwrite perl6-j with perl6-m, please paste your Makefile and a transcript from the build
10:24 airdisa joined #perl6
10:30 hoelzro rakudo.org is a WP install, right? I'd like to make a change to the "how to help" page
10:31 hoelzro I was also hoping that since I've written a few patches now, I could look at the CLA and get a commit bit
10:31 moritz hoelzro: /msg me your email address
10:33 Mouq joined #perl6
10:35 * moritz changes his rakudo.org password, since he doesn't remember if was the same as his blogs.perl.org password
10:38 denis_boyun joined #perl6
10:38 Alina-malina joined #perl6
10:39 hoelzro does anyone know if there's a way to stage changes so that others can review them without making them public?
10:40 jnap joined #perl6
10:42 hoelzro updated http://rakudo.org/how-to-help/
10:43 hoelzro I added a paragraph to the "wanting to help without learning Parrot" section
10:43 denis_boyun joined #perl6
10:48 spider-mario joined #perl6
10:50 masak good almost-noon, #perl6
10:50 colomon o/
10:50 moritz \o masak, colomon
10:50 moritz hoelzro++
10:50 hoelzro hey masak
10:51 masak hey hey hey
10:53 moritz ho ho ho
10:59 corecatcher heyas
11:02 hoelzro hello
11:02 masak corecatcher: ooh, a new presence on #perl6? if so, welcome.
11:04 corecatcher masak: more or less, yes - beein idling around for quite some time
11:05 FROGGS time to get active then  :o)
11:06 masak yeah, idling doesn't count.
11:06 masak I did a fair bit of that back in 2005.
11:06 corecatcher thats the plan, done the frankfurt tutorials on nqp sql grammars, thats where I ended weeks ago
11:06 masak wow \o/
11:06 masak jnthn++
11:08 corecatcher so basically in search for time and lhf
11:08 FROGGS I always recommend RT for newcomers
11:08 masak well, re lhf, the two easiest ways to find it is (a) trawl RT for it, or (b) do stuff you enjoy and stumble over lhf.
11:10 FROGGS right, either look at an interesting fixable thing in RT, or try to fix bugs you hit while experimenting
11:12 hoelzro I rather like the latter myself
11:12 hoelzro then you're invested in it
11:12 hoelzro that being said, I think I've fixed 2-3 bugs that I've found
11:13 hoelzro tbf, someone usually beats me to it =)
11:13 jnthn afternoon, #perl6
11:13 FROGGS hi jnthn!
11:14 hoelzro greetings jnthn
11:15 masak jnthn! \o/
11:15 dalek rakudo/nom: 74172bf | (Tobias Leich)++ | src/Perl6/Optimizer.nqp:
11:15 dalek rakudo/nom: fix NPMCA
11:15 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/74172bf031
11:18 jnthn FROGGS: The commit message and code don't seem to match up... nqp::defined isn't the way to look for null, that's !nqp::isnull($meth). Or is it more subtle?
11:19 FROGGS hmmm, it fixed the issue though... but yeah, nqp::isnull is saner
11:20 jnthn Well, I'm curious how it fixed it is all :)
11:20 FROGGS I always thought nqp::defined on parrot takes care of nulls
11:20 moritz nqp-p: say(nqp::defined(nqp::null()))
11:20 camelia nqp-parrot: OUTPUT«0␤»
11:21 moritz nqp: say(nqp::defined(nqp::null()))
11:21 camelia nqp-moarvm, nqp-jvm, nqp-parrot: OUTPUT«0␤»
11:21 jnthn oh :)
11:21 FROGGS nqp: say(nqp::null())
11:21 jnthn OK, carry right on :)
11:21 camelia nqp-parrot: OUTPUT«Null PMC access in get_string()␤current instr.: '' pc 704 (gen/parrot/stage2/NQPCORE.setting.pir:335) (gen/parrot/stage2/NQPCORE.setting:667)␤»
11:21 camelia ..nqp-jvm: OUTPUT«java.lang.NullPointerException␤  in  (gen/jvm/stage2/NQPCORE.setting:674)␤  in print (gen/jvm/stage2/NQPCORE.setting:673)␤  in say (gen/jvm/stage2/NQPCORE.setting:680)␤  in  (/tmp/tmpfile:1)␤  in  (gen/jvm/stage2/NQPHLL.nqp:1099)␤  in eval (gen/jvm/stage2…»
11:21 camelia ..nqp-moarvm: OUTPUT«␤»
11:21 FROGGS k
11:22 jnthn Is anybody already testing hoelzro's PR?
11:23 * jnthn pulls it
11:24 FROGGS not seen it, no
11:25 FROGGS ahh dir(), nice
11:25 airdisa joined #perl6
11:25 jnthn Well, dir.t passes in full with it on Windows now
11:26 * jnthn spectests, even though he doubts there can be any fallout
11:32 dalek rakudo/nom: d6ffdb4 | (Rob Hoelz)++ | src/core/IO.pm:
11:32 dalek rakudo/nom: Fix dir() on MoarVM
11:32 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/d6ffdb409c
11:32 dalek rakudo/nom: 477cbf8 | jnthn++ | src/core/IO.pm:
11:32 dalek rakudo/nom: Merge branch 'nom' of github.com:hoelzro/rakudo into nom
11:32 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/477cbf8d85
11:40 jnap joined #perl6
11:45 tadzik :o
11:45 tadzik r: my Num $a = 0.0
11:45 camelia rakudo-moar 396a2d: OUTPUT«Type check failed in assignment␤  in block  at /tmp/tmpfile:1␤␤»
11:45 camelia ..rakudo-parrot 396a2d, rakudo-jvm 396a2d: OUTPUT«Type check failed in assignment to '$a'; expected 'Num' but got 'Rat'␤  in block  at /tmp/tmpfile:1␤␤»
11:49 hoelzro I spectested on perl6-{j,m,p}
11:51 jnthn hoelzro: Nice. It's in, anyways :)
11:51 hoelzro \o/
11:54 hoelzro whom do I talk to about the CLA?
11:55 Mouq hoelzro: I emailed Karen Pauley (karen@perlfoundation.org) with a scan of my CLA, and she passed it on to whomever it needed to go to
11:56 hoelzro Mouq: where is the CLA itself located?
11:56 Mouq Oh, sorry. Here: http://www.perlfoundation.org/legal
11:57 kurahaupo_mobile joined #perl6
11:57 Mouq moritz: oop, sorry, I missed http://irclog.perlgeek.de/​perl6/2014-01-25#i_8173738
11:58 Mouq moritz: let me try again and I shall
11:59 hoelzro Mouq: thanks!
11:59 hoelzro hmm...linguist is failing tests because it thinks S02-lexical-conventions/unicode-whitespace.t is binary =/
12:02 jnthn haha
12:02 jnthn What on earth is its heuristic? :)
12:02 * jnthn guesses "looks like ascii"...
12:02 hoelzro it uses the charlock holmes ruby library, I guess?
12:03 * jnthn groans at the name
12:03 hoelzro I figured I'd investigate deeper later; if one file in roast is flagged as binary, it's not the end of the world
12:05 jnthn aye
12:08 FROGGS joined #perl6
12:09 sjn joined #perl6
12:10 Mouq moritz: https://gist.github.com/Mouq/8615410
12:15 avar joined #perl6
12:15 avar joined #perl6
12:25 airdisa joined #perl6
12:32 dalek nqp: eaf891d | jnthn++ | tools/build/MOAR_REVISION:
12:32 dalek nqp: Get various Moar error handling improvements.
12:32 dalek nqp: review: https://github.com/perl6/nqp/commit/eaf891d970
12:33 daniel-s_ joined #perl6
12:34 dalek rakudo/nom: 5b57b80 | jnthn++ | src/vm/moar/ops/perl6_ops.c:
12:34 dalek rakudo/nom: Throw typed exception for dispatcher not found.
12:34 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/5b57b8088f
12:35 dalek rakudo/nom: 4e84d87 | jnthn++ | tools/build/NQP_REVISION:
12:35 dalek rakudo/nom: Oops, last commit needed NQP_REVISION bump also.
12:35 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/4e84d87ddd
12:37 dalek zavolaj: 9e5af01 | tadzik++ | lib/NativeCall.pm6:
12:37 dalek zavolaj: Drastically reduce nativecalling overhead
12:37 dalek zavolaj: review: https://github.com/jnthn/zavolaj/commit/9e5af01803
12:37 dalek zavolaj: bafb1d0 | tadzik++ | lib/NativeCall.pm6:
12:37 dalek zavolaj: Micro-optimize map_return_type even further :)
12:37 dalek zavolaj: review: https://github.com/jnthn/zavolaj/commit/bafb1d0ff2
12:38 jnthn \o/
12:39 tadzik I figured that before I merge it, no one will test it :P
12:39 tadzik I'm the one rolling out the Star release, so I'll have a chance to last-minute-test it
12:41 jnap joined #perl6
12:42 masak tadzik++
12:43 FROGGS jnthn: have you seen my comments here? https://gist.github.com/jnthn/8609496
12:43 tadzik my sdl game can now run at 100FPS :P
12:43 FROGGS *g*
12:44 tadzik I didn't check if it was possible before the patch though :D
12:44 tadzik maybe it was
12:44 jnthn FROGGS: Yeah; the smaller file size is due to not hitting SC barriers...
12:45 jnthn FROGGS: And so no re-serializing stuff
12:45 FROGGS mhm
12:45 masak tadzik: if only there was some way to get back the state before a certain commit was made, maybe through some ingenious "check out" system.
12:45 FROGGS jnthn: so you actually believe me? :o)
12:45 tadzik masak: fortunately, I have my daily backups of all github repos! :P
12:45 masak oh yes, always backup your git stuff.
12:46 masak otherwise it's a big hassle to undo all your changes, should you need it.
12:46 tadzik yeah
12:46 masak in fact, you should probably check out all branches and do a backup of each individual one. just in case.
12:46 jnthn FROGGS: Well, I don't see what I can do besides try a build on Linux of it myself, but it makes no sense really...
12:47 tadzik naah, that'd be a waste of space
12:48 Mouq joined #perl6
12:48 atroxaper joined #perl6
12:49 FROGGS is github down?
12:49 tadzik seems to work here
12:49 tadzik and on https://status.github.com/
12:50 jnthn tadzik: Are you sure you're not just using your backups? :P
12:50 tadzik hehe
12:50 tadzik I put it in the cloud so I don't have to store it
12:53 * jnthn suddenly wishes he had https://chrome.google.com/webstore/detail/cloud-to​-butt-plus/apmlngnhgbnjpajelfkmabhkfapgnoai?hl=en in IRC
12:54 jnthn err&
12:55 Rotwang jnthn: haha, so true
12:57 tadzik we could write such bot...
12:57 tadzik wait. What what?
12:58 timotimo in the cloud.
12:58 tadzik :D
13:00 moritz .ask Mouq is there a perl6-j symlink in your $PATH?
13:00 yoleaux moritz: I'll pass your message to Mouq.
13:03 arnsholt tadzik++ # merging zavolaj optimizations
13:20 dalek rakudo/nom: 974afff | moritz++ | tools/build/Makefile-JVM.in:
13:20 dalek rakudo/nom: Makefile: RUNNER -> J_RUNNER
13:20 dalek rakudo/nom:
13:20 dalek rakudo/nom: just to avoid possible future conflicts
13:20 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/974afff624
13:21 smls joined #perl6
13:26 airdisa joined #perl6
13:28 * jnthn back
13:31 FROGGS moritz: I had a similar problem... I had the feeling as if the default does not get overwritten if it exists
13:33 grondilu joined #perl6
13:33 FROGGS so my ./perl6 was a perl6-m, even after a reconfigure/rebuild with --backends=parrot,jvm,moar
13:39 moritz FROGGS: that's not quite the same as perl6-j being a perl6-m
13:41 moritz but yes, 'clean' doesn't clean out the current perl6 default runner
13:41 moritz so the next build doesn't kill it
13:42 jnap joined #perl6
13:44 * moritz tests a fix
13:44 FROGGS ahh
13:46 SamuraiJack joined #perl6
13:50 dalek rakudo/nom: 19473e7 | moritz++ | Configure.pl:
13:50 dalek rakudo/nom: [Build] clean perl6 runner
13:50 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/19473e7e9d
13:51 FROGGS cool! moritz++
13:54 tadzik https://github.com/tadzik/p6steroids sort of working asteroids running on rakudo-parrot
13:54 tadzik at about 50-ish FPS
13:54 moritz \o/
13:54 tadzik with a bug that makes you practically invincible :P
13:54 FROGGS yay!
13:56 tadzik haha, HTTP2 is to feature a GTFO frame: General Termination of Future Operations
13:57 timotimo %)
13:57 timotimo i like that
13:58 FROGGS p/j/m-spectest of nqp-2014.01-4-geaf891d rakudo-2014.01-32-g4e84d87
13:58 FROGGS well, the summary
13:58 jnthn tadzik: Nice!!
13:58 krunen joined #perl6
14:01 FROGGS tadzik: can you commit an in game screenshot?
14:01 FROGGS I have no time to try it now :o(
14:03 FROGGS that is mine (in P5, three years ago) https://github.com/FROGGS/Games-As​teroids/blob/master/screenshot.png
14:09 Alina-malina joined #perl6
14:15 tadzik FROGGS[mobile]: http://i.imgur.com/cfirruV.png
14:18 * colomon must not stop $work to start playing with p6 asteroids…. must not....
14:18 tadzik wait until they match the reference C version
14:18 tadzik which has text and sounds
14:19 * colomon must not stop $work to start playing with p6 asteroids…. must not….
14:19 tadzik heh
14:20 FROGGS joined #perl6
14:21 dalek rakudo/nom: 4ac10e5 | jnthn++ | src/vm/moar/ops/ (2 files):
14:21 dalek rakudo/nom: Typed exception for assignment type check fail.
14:21 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/4ac10e5243
14:22 denis_boyun joined #perl6
14:22 jnthn .tell Mouq I think you had some work on some of the other missing typed exceptions, besides the couple I just did? Would get a few more passes... :)
14:22 yoleaux jnthn: I'll pass your message to Mouq.
14:25 jnthn perl6: sub { $^foo }
14:25 camelia rakudo-jvm 4e84d8: OUTPUT«(timeout)»
14:25 camelia ..rakudo-parrot 4e84d8, rakudo-moar 4e84d8, niecza v24-109-g48a8de3: ( no output )
14:26 jnthn perl6: sub () { $^foo }
14:26 camelia niecza v24-109-g48a8de3: OUTPUT«[31m===[0mSORRY![3​1m===[0mâ�¤â�¤Placeholder variable $^foo cannot override existing signature () at /tmp/tmpfile line 1:â�¤------> [32msub () { [33mâ��[31m$^foo }[0mâ�¤â�¤Unhandled exception: Check failedâ�¤â�¤  at /home/p6eval/niecza/boot/lib…»
14:26 camelia ..rakudo-parrot 4e84d8, rakudo-jvm 4e84d8, rakudo-moar 4e84d8: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/tmpfileâ�¤Placeholder variable '$^foo' cannot override existing signatureâ�¤at /tmp/tmpfile:1â�¤------> [32msub () { $^foo }[33mâ��[31m<EOL>[0mâ�¤    exp…»
14:26 jnthn std: sub () { $^foo }
14:26 camelia std 09dda5b: OUTPUT«[31m===[0mSORRY![31m===[0m�Placeholder variable $^foo cannot override existing signature () at /tmp/vydJebWznl line 1:�------> [32msub () { [33m�[31m$^foo }[0m�Check failed�FAILED 00:01 125m�»
14:26 jnthn std: sub { $^foo }
14:26 camelia std 09dda5b: OUTPUT«ok 00:01 123m␤»
14:27 spider-mario joined #perl6
14:28 dalek roast: 6dfb602 | jnthn++ | S04-declarations/implicit-parameter.t:
14:28 dalek roast: Bring a test in line with spec/STD.
14:28 dalek roast: review: https://github.com/perl6/roast/commit/6dfb602945
14:29 atroxaper joined #perl6
14:43 jnap joined #perl6
14:50 airdisa joined #perl6
14:51 treehug88 joined #perl6
14:56 cosimo joined #perl6
15:00 treehug88 joined #perl6
15:02 DanielG joined #perl6
15:07 Alina-malina joined #perl6
15:20 mavcunha joined #perl6
15:44 denis_boyun joined #perl6
15:54 airdisa joined #perl6
15:55 zakharyas joined #perl6
15:58 Psyche^ joined #perl6
16:21 skids yoleaux: tell japhb Sum is at https://github.com/skids/perl6sum/ (or panda install Sum)
16:22 hoelzro does anything forsee the use of 'perl6-m' and others in the shebang line of a Perl 6 program?
16:29 krunen joined #perl6
16:33 raydiak maybe if someone wanted write a project in part perl 6, part java, they'd want to require perl6-j (for example)?
16:35 timotimo yeah
16:36 dalek rakudo-star-daily: dd9e868 | coke++ | log/ (5 files):
16:36 dalek rakudo-star-daily: today (automated commit)
16:36 dalek rakudo-star-daily: review: https://github.com/coke/rakudo​-star-daily/commit/dd9e868681
16:36 Alina-malina joined #perl6
16:37 cosimo joined #perl6
16:37 [Coke] whoops. daily run will be delayed today, starting it now.
16:43 jeffreykegler joined #perl6
16:44 jnthn [Coke]: yay, that means my today patches sneaked in ;)
16:44 jnap joined #perl6
16:45 denis_boyun joined #perl6
16:46 hoelzro raydiak: good point
16:48 ajr joined #perl6
16:50 airdisa joined #perl6
17:13 japhb raydiak, hoelzro: Also useful in the short term, while the basic features vary -- right now I use perl6-p in shebangs for general code that should start reasonably quickly (can't wait to convert to perl6-m for most of these; IIRC I'm waiting on some I/O improvements), and perl6-j for anything that requires concurrency.
17:13 japhb tadzik++ # twitch game in Perl 6
17:13 hoelzro alright, thanks for the input japhb
17:13 araujo joined #perl6
17:13 araujo joined #perl6
17:13 raydiak japhb: was just telling yoleaux to tell you this: I'm up for it :) Pray concurrency branch is on the backburner until bufs/compact arrays are mutable - atm, trying to buffer the output in many cases slows it down more than the concurrency speeds it up
17:14 japhb nodnod
17:14 raydiak so properly conceived hot bits like vectors and matrices sounds like a good next step
17:15 japhb OK, give me a little bit to collect my code snippets into something we can work on together (won't be useful to anyone yet, but at least we can code).
17:16 raydiak sure thing, no pressure
17:23 rindolf joined #perl6
17:25 beastd joined #perl6
17:29 FROGGS_ joined #perl6
17:33 Alina-malina joined #perl6
17:36 ggoebel1113 joined #perl6
17:36 FROGGS perl6-m -I. -e 'use flunk'
17:36 FROGGS ===SORRY!===
17:36 FROGGS Bytecode stream shorter than header
17:36 FROGGS uhh
17:37 FROGGS jnthn: this is new^^
17:43 diakopter heh
17:43 diakopter m: use u
17:43 camelia rakudo-moar 4ac10e: OUTPUT«===SORRY!===␤Could not find u in any of: /home/p6eval/rakudo-inst-1​/languages/perl6/site/lib, /home/p6eval/rakudo-inst-1/​languages/perl6/vendor/lib, /home/p6eval/rakudo-inst-1/languages/perl6/lib, /home/p6eval/.perl6/2014.01-35-g4ac10e5/lib␤»
17:45 jnap joined #perl6
17:45 timotimo m: use Test
17:45 camelia rakudo-moar 4ac10e: ( no output )
17:46 FROGGS Bytecode stream shorter than header (4 < 92)
17:46 diakopter m: use Test; use Test;
17:46 camelia rakudo-moar 4ac10e: ( no output )
17:47 grondilu TimToady: just in case you wonder, I won't try to solve the Brace Expension task on RC.  Ideally this should be done with a grammer, and I'm not very good at these stuff.
17:49 dalek Math--ThreeD: df3e603 | (Geoffrey Broadwell)++ | .gitignore:
17:49 dalek Math--ThreeD: Add trivial .gitignore
17:49 dalek Math--ThreeD: review: https://github.com/japhb/Mat​h--ThreeD/commit/df3e6032e0
17:49 TimToady grondilu: I just wrote the grammar, and it worked the first time on all four test cases.  Wheee!
17:49 japhb raydiak: OK, that's at least enough pulled together that you can see where I was going.
17:50 TimToady now I just have to X everything
17:50 japhb raydiak: The general idea is that there will be a BUILD file that will generate most of the code when panda is doing its install, so that all the variants of all the operations are there and hopefully correct.
17:50 TimToady well X~
17:51 japhb (And that it's less of a pain to write the efficient forms of everything)
17:52 japhb breakfast &
17:54 raiph joined #perl6
17:54 raydiak japhb: reading
17:57 TimToady walk &
18:01 grondilu TimToady: talking about grammars, if you have time, please consider writing a grammar for FASTA in order to improve http://rosettacode.org/wiki/FASTA_format#Perl_6
18:03 grondilu having to parse FASTA is typically the kind of things that discourage me from keeping on solving problems on rosalind :/
18:07 hoelzro preflex: seen Mouq
18:11 hoelzro hmm
18:12 hoelzro does the CLA have to be sent via snail mail?
18:12 diakopter no; can be scanned
18:14 hoelzro ok, then I have to wait until Monday anyway =/
18:16 diakopter or photo'd, probably :)
18:17 hoelzro well, I lack a printer *and* a scanner =(
18:17 hoelzro I can wait a few days =)
18:20 raydiak japhb: would it be better to run the generator script once for a release and include the end result in the distribution/package/whatever you call it?
18:29 mavcunha joined #perl6
18:30 diakopter r: my $a = nqp::time_n; sleep(1); say(nqp::time_n() - $a)
18:30 camelia rakudo-jvm 4ac10e: OUTPUT«1.0159997940063477␤»
18:30 camelia ..rakudo-moar 4ac10e: OUTPUT«1.00160980224609␤»
18:30 camelia ..rakudo-parrot 4ac10e: OUTPUT«1.00365710258484␤»
18:31 diakopter ftw
18:31 diakopter ftw
18:31 diakopter r: my $a = nqp::time_n; sleep(1); say(nqp::time_n() - $a)
18:31 timotimo not bad :)
18:31 camelia rakudo-moar 4ac10e: OUTPUT«1.00170040130615␤»
18:31 camelia ..rakudo-parrot 4ac10e: OUTPUT«1.00394797325134␤»
18:31 camelia ..rakudo-jvm 4ac10e: OUTPUT«1.003999948501587␤»
18:34 diakopter nqp: my $a := nqp::time_n; sleep(1); say(nqp::time_n() - $a)
18:34 camelia nqp-parrot: OUTPUT«Could not find sub &sleep␤current instr.: '' pc 54 ((file unknown):43) (/tmp/tmpfile:1)␤»
18:34 camelia ..nqp-jvm: OUTPUT«java.lang.NullPointerException␤  in  (/tmp/tmpfile:1)␤  in  (gen/jvm/stage2/NQPHLL.nqp:1099)␤  in eval (gen/jvm/stage2/NQPHLL.nqp:1085)␤  in evalfiles (gen/jvm/stage2/NQPHLL.nqp:1291)␤  in command_eval (gen/jvm/stage2/NQPHLL.nqp:1195)␤  in command_line (g…»
18:34 camelia ..nqp-moarvm: OUTPUT«Cannot invoke null object␤   at /tmp/tmpfile:1  (<ephemeral file>::29)␤ from gen/moar/stage2/NQPHLL.nqp:1090  (/home/p6eval/rakudo-inst-1/langu​ages/nqp/lib/NQPHLL.moarvm::96)␤ from gen/moar/stage2/NQPHLL.nqp:1076  (/home/p6eval/rakudo-inst-1/languages/nqp/li…»
18:34 jeffreykegler left #perl6
18:36 diakopter nqp: my $a := nqp::time_n; nqp::sleep(1); say(nqp::time_n() - $a)
18:36 camelia nqp-jvm: OUTPUT«1␤»
18:36 camelia ..nqp-parrot: OUTPUT«1.00018692016602␤»
18:36 camelia ..nqp-moarvm: OUTPUT«1.00013113021851␤»
18:37 diakopter nqp: my $a := nqp::time_n; nqp::sleep(1); say(nqp::time_n() - $a)
18:37 camelia nqp-parrot: OUTPUT«1.00029611587524␤»
18:37 camelia ..nqp-jvm: OUTPUT«1␤»
18:37 camelia ..nqp-moarvm: OUTPUT«1.0001494884491␤»
18:37 diakopter o_O
18:37 timotimo wow.
18:38 diakopter rakudo overhead over nqp for invoking sleep an say
18:38 diakopter er, not say
18:38 diakopter just sleep.
18:39 diakopter r: my $a = nqp::time_n; nqp::sleep(1); say(nqp::time_n() - $a)
18:39 camelia rakudo-parrot 4ac10e: OUTPUT«1.00023412704468␤»
18:39 camelia ..rakudo-jvm 4ac10e: OUTPUT«This representation can not unbox to a native num␤  in block  at /tmp/tmpfile:1␤␤»
18:39 camelia ..rakudo-moar 4ac10e: OUTPUT«This type cannot unbox to a native number␤  in block  at /tmp/tmpfile:1␤␤»
18:39 diakopter interesting
18:40 diakopter r: my $a = nqp::time_n; nqp::sleep(1.0); say(nqp::time_n() - $a)
18:40 camelia rakudo-parrot 4ac10e: OUTPUT«1.00042605400085␤»
18:40 camelia ..rakudo-jvm 4ac10e: OUTPUT«This representation can not unbox to a native num␤  in block  at /tmp/tmpfile:1␤␤»
18:40 camelia ..rakudo-moar 4ac10e: OUTPUT«This type cannot unbox to a native number␤  in block  at /tmp/tmpfile:1␤␤»
18:41 diakopter r: my $a = nqp::time_n; nqp::sleep("1"); say(nqp::time_n() - $a)
18:41 camelia rakudo-jvm 4ac10e: OUTPUT«This representation can not unbox to a native num␤  in block  at /tmp/tmpfile:1␤␤»
18:41 camelia ..rakudo-moar 4ac10e: OUTPUT«This type cannot unbox to a native number␤  in block  at /tmp/tmpfile:1␤␤»
18:41 camelia ..rakudo-parrot 4ac10e: OUTPUT«1.00059103965759␤»
18:41 diakopter heh
18:43 krunen joined #perl6
18:44 treehug88 joined #perl6
18:44 raydiak wonder why it works on my local perl6-m (perl6-j still fails though)
18:45 diakopter what does
18:45 raydiak erm...split-window messing up copy/paste...but the things you were just trying
18:46 jnap joined #perl6
18:46 diakopter hm
18:46 raydiak perl6-m -e 'my $a = nqp::time_n; nqp::sleep(1); say(nqp::time_n() - $a)'
18:48 raydiak not sure where to put num or a := or something to make jvm work, but I think it has to do with the subtraction instead of the sleep
18:53 ingy what does . mean in <.rule> ?
18:55 FROGGS[mobile] it does not capture
18:55 arnsholt Don't save the match object for the subrule in $/
18:55 ingy thanks
18:56 ingy how abotu || vs | ?
18:57 arnsholt || is sequential OR, like Perl 5 |
18:57 arnsholt | in Perl 6 is LTM
18:57 arnsholt So /foo|foobar/ will actually match foobar if possible (unlike P5)
18:57 ingy got it
18:58 ingy are the alternations checked in parallel?
18:58 raydiak r: my $a = nqp::time_n; nqp::sleep(my int $ = 1); say(nqp::time_n() - $a) # it was the sleep after all
18:59 arnsholt No, it's a compile-time thing
18:59 camelia rakudo-moar 4ac10e: OUTPUT«1.00017428398132␤»
18:59 camelia ..rakudo-jvm 4ac10e: OUTPUT«1␤»
18:59 camelia ..rakudo-parrot 4ac10e: OUTPUT«1.00023102760315␤»
18:59 ingy ie why not write /foobar|foo/ ?
18:59 araujo joined #perl6
18:59 araujo joined #perl6
18:59 arnsholt Well, you can. But LTM involves subrules as well, where you can't always a priori predict the best ordering
19:00 ingy ie I've always wondered what the real world use cases where LTM is so important
19:00 FROGGS[mobile] the LTM engine just eleminates paths that wont work, and it returns a fate order that will be used then
19:01 ingy so it is just a optimizing convenience thing?
19:02 FROGGS[mobile] that is one reason
19:02 FROGGS[mobile] but in a parser you are really interested in the longest possible token
19:02 arnsholt When you're only matching literals in the alternation, LTM is mostly a convenience feature
19:02 ingy can you point to a grammar where it's a big win?
19:02 ingy I'm not trolling btw. really want to gro this
19:03 ingy grok
19:03 arnsholt It's what makes us parse "name-with-dash" as a single identifier
19:03 lue ingy: Perhaps the Perl 6 grammar is an example :)
19:03 ingy lue: I mean a rule in the grammar
19:04 ingy url plz
19:04 Alina-malina joined #perl6
19:04 arnsholt It's also how regex multis (like token foo:sym<bar>) are dispatched to the most specific one when there are multiple candidates
19:06 colomon right, off the top of my (possibly very wrong) head I'd say regex multis are the most important reason for LTM
19:06 ingy ok I think I'm getting it. LTM is done during a compiler optimization phase, not a runtime match phase
19:06 timotimo er ... not quite
19:07 lue ingy: here's that URL :) https://github.com/perl6/std/blob/master/STD.pm6
19:07 FROGGS ingy: look at https://github.com/rakudo/rakudo/bl​ob/nom/src/Perl6/Grammar.nqp#L1794
19:07 FROGGS if you would replace the | by ||s, it would fail
19:07 ingy thanks FROGGS
19:07 FROGGS ingy: because it would match the <sigil> rule in line 1807
19:08 FROGGS and would not consider any other branch that starts with <sigil>
19:08 ingy but the regex compiler figures that out
19:08 FROGGS p: say "foobar" ~~ /foo||foobar/
19:08 ingy yeah?
19:08 camelia rakudo-parrot 4ac10e: OUTPUT«「foo」␤␤»
19:08 FROGGS p: say "foobar" ~~ /foo|foobar/
19:08 camelia rakudo-parrot 4ac10e: OUTPUT«「foobar」␤␤»
19:08 FROGGS see?
19:08 FROGGS sequential matching is happy after it hit something
19:09 ingy FROGGS: I understand the behavior
19:09 FROGGS LTM tries to Do The Right Thing, like a human would
19:09 spider-mario joined #perl6
19:09 ingy but that's a contrived example
19:09 timotimo LTM is a both compile-time and run-time thing
19:09 lue ingy: In an HTML grammar, you wouldn't want a failure because the parser though <blockquote> was a <b> tag, and then couldn't find the right angle bracket.
19:10 timotimo at compile-time, the regex compiler creates a nondeterministic finite automaton from the rules
19:10 lue *thought
19:10 timotimo at run time, the rules are then tried "in parallel" more or less.
19:10 timotimo the rule that had the longest initial "declarative" prefix so far will be tried first
19:11 timotimo that's also why you sometimes see {} appear randomly in rules; it's to terminate the declarative prefix
19:11 ingy timotimo: that's most helpful. thanks
19:11 timotimo YW :)
19:12 ingy I'm trying to figure out what parts if any I could support LTM in Pegex. I can do the compile time but not the runtime.
19:12 ingy though in my grammars to date I've needed neither
19:13 ingy but I already have optimization phases and that's yet another strategy
19:13 ingy but may require syntax
19:14 FROGGS p: grammar HTML { token s {'s'}; token span {'span'}; token TOP { '<' ~ '>' [ <s> || <span> ] } }; say HTML.parse("<span>")
19:14 ingy thought I wonder where || is really needed now
19:14 camelia rakudo-parrot 4ac10e: OUTPUT«Unable to parse expression in TOP; couldn't find final '>' ␤  in any FAILGOAL at gen/parrot/stage2/QRegex.nqp:1108␤  in regex TOP at /tmp/HvRYagnKWm:1␤  in method parse at gen/parrot/CORE.setting:12552␤  in block  at /tmp/HvRYagnKWm:1␤␤»
19:14 FROGGS p: grammar HTML { token s {'s'}; token span {'span'}; token TOP { '<' ~ '>' [ <s> | <span> ] } }; say HTML.parse("<span>")
19:14 camelia rakudo-parrot 4ac10e: OUTPUT«「<span>」␤ span => 「span」␤␤»
19:14 FROGGS ingy: not a contrived example
19:14 FROGGS that is exactly what happens
19:14 lue ingy: || is needed when you know what order alternates have to be evaluated in.
19:15 ingy FROGGS: I meant that /foo|foobar/ was contrived.
19:15 FROGGS like checking to match something first, but as the last alternative fail via ||
19:15 ingy lue: yes I see in FROGGS <s> || <span>
19:15 FROGGS sure
19:16 FROGGS and with fail I mean to throw an exception or so
19:16 araujo_ joined #perl6
19:17 ingy has anyone written an indentation-scoping grammar?
19:17 FROGGS no
19:17 ingy been looking at http://pynie.googlecode.com/​svn/trunk/Grammar/Grammar.pg
19:18 ingy python grammar by pmichaud
19:18 arnsholt I've a sketch of a Python grammar in a more modern grammar dialect
19:19 araujo_ joined #perl6
19:19 arnsholt https://github.com/arnsholt/snake/​blob/master/src/Snake/Grammar.nqp There be dragons and bugs though
19:19 ingy :)
19:19 ingy *click*
19:20 itz_ Object conflict detected during deserialization.
19:20 itz_ (Probable attempt to load two modules that cannot be loaded together).
19:20 itz_ I assume this is known about (on moar)
19:20 colomon itz_: yes
19:21 kurahaupo_mobile joined #perl6
19:21 FROGGS itz_: I get that too, and try to get some more information about it right now
19:22 ingy arnsholt: this fairly interesting. I'm most interested that check-indent is only referenced once.
19:23 araujo joined #perl6
19:23 ingy poking at a YAML grammar and worried about too much check-indent
19:24 ingy but now I realize that Python is likely a simpler case.
19:25 ingy also interesting to note that INDENT/DEDENT are code based
19:25 ingy which I have suspected is needed
19:29 Sqirrel joined #perl6
19:41 japhb raydiak: Yes, we could build it ahead of time, but that risks getting the generator and the generated code out of sync accidentally (or forgetting to rerun the generator before pushing to github and having panda -- which uses github rather than tarballs -- getting the old generated code)
19:42 japhb Besides, the generation doesn't take long.
19:42 japhb Well, so far, at least.  :-)
19:43 Mouq joined #perl6
19:46 rindolf joined #perl6
19:54 ingy is the only diff between token and rule, the backtracking semantics?
19:55 Mouq ingy: nope
19:55 yoleaux 13:00Z <moritz> Mouq: is there a perl6-j symlink in your $PATH?
19:55 yoleaux 14:22Z <jnthn> Mouq: I think you had some work on some of the other missing typed exceptions, besides the couple I just did? Would get a few more passes... :)
19:55 Mouq ingy: token and rule and neither do backtracking
19:55 Mouq ingy: If you want backtracking, regex is what you're looking for
19:56 ingy thanks
19:56 ingy I am looking at S05 btw :)
19:58 FROGGS p: say "foo bar" ~~ (my rule { 'foo' 'bar' })
19:58 camelia rakudo-parrot 4ac10e: OUTPUT«「foo bar」␤␤»
19:58 FROGGS p: say "foo bar" ~~ (my token { 'foo' 'bar' })
19:58 camelia rakudo-parrot 4ac10e: OUTPUT«Nil␤»
19:58 FROGGS p: say "foobar" ~~ (my token { 'foo' 'bar' })
19:58 camelia rakudo-parrot 4ac10e: OUTPUT«「foobar」␤␤»
19:58 FROGGS p: say "foobar" ~~ (my rule { 'foo' 'bar' })
19:58 camelia rakudo-parrot 4ac10e: OUTPUT«Nil␤»
19:58 FROGGS huh
19:58 Mouq FROGGS: Thanks, I was trying to construct an example, but I was messing up
19:59 FROGGS p: say "foo        bar" ~~ (my rule { 'foo' 'bar' })
19:59 camelia rakudo-parrot 4ac10e: OUTPUT«「foo        bar」␤␤»
19:59 Mouq p: say "foo{}bar" ~~ (my rule { 'foo{' '}bar' })
19:59 camelia rakudo-parrot 4ac10e: OUTPUT«Nil␤»
19:59 Mouq Nil?
19:59 FROGGS n: say "foobar" ~~ (my rule { 'foo' 'bar' })
19:59 colomon it's not a math
19:59 camelia niecza v24-109-g48a8de3: OUTPUT«[31m===[0mSORRY![31m===[0mâ�¤â�¤Scope my requires a name at /tmp/7L1to_1G5a line 1:â�¤------> [32msay "foobar" ~~ (my rule [33mâ��[31m{ 'foo' 'bar' })[0mâ�¤â�¤Unhandled exception: Check failedâ�¤â�¤  at /home/p6eval/niecza/boot/lib/CORE.settin…»
19:59 Mouq p: say "foo{ }bar" ~~ (my rule { 'foo{' '}bar' })
19:59 colomon match
19:59 camelia rakudo-parrot 4ac10e: OUTPUT«Nil␤»
20:00 FROGGS n: say "foobar" ~~ (my rule Hurz { 'foo' 'bar' })
20:00 camelia niecza v24-109-g48a8de3: OUTPUT«Potential difficulties:â�¤  &Hurz is declared but not used at /tmp/oyPX6vrHex line 1:â�¤------> [32msay "foobar" ~~ (my rule Hurz [33mâ��[31m{ 'foo' 'bar' })[0mâ�¤â�¤Nilâ�¤Â»
20:00 Mouq Oh, no I realize what the problem was
20:00 FROGGS it is more like <.ws>+, right?
20:00 Mouq p: say 'foo{}bar' ~~ (my rule { 'foo{' '}bar' }) # {} got interpolated
20:00 camelia rakudo-parrot 4ac10e: OUTPUT«「foo{}bar」␤␤»
20:00 * Mouq &
20:01 FROGGS p: say 'foo{ }bar' ~~ (my rule { 'foo{' '}bar' }) # {} got interpolated
20:01 camelia rakudo-parrot 4ac10e: OUTPUT«「foo{ }bar」␤␤»
20:01 FROGGS hmmm
20:01 colomon FROGGS: doesn't <ws> already have the + build it?
20:01 FROGGS but then Mouq's last line would not work
20:02 * Mouq back
20:02 colomon p: say "foo  bar" ~~ (my rule { 'foo' 'bar' })
20:02 camelia rakudo-parrot 4ac10e: OUTPUT«「foo  bar」␤␤»
20:02 colomon p: say "foo  bar" ~~ (my regex { 'foo' <ws> 'bar' })
20:02 Mouq FROGGS: <ws> gets any number of whitespacey characters, and also matches at word boundaries
20:02 camelia rakudo-parrot 4ac10e: OUTPUT«「foo  bar」␤ ws => 「  」␤␤»
20:02 FROGGS ahh, <ws> has some sort of \b in it?
20:03 FROGGS Mouq++ # thanks
20:03 Mouq FROGGS: Yeah, or « in 6-speak
20:03 Mouq p: say 'foo|bar' ~~ (my rule { 'foo' \S 'bar' })
20:03 camelia rakudo-parrot 4ac10e: OUTPUT«「foo|bar」␤␤»
20:03 Mouq p: say 'foodbar' ~~ (my rule { 'foo' \S 'bar' })
20:03 camelia rakudo-parrot 4ac10e: OUTPUT«Nil␤»
20:03 Mouq p: say 'foo d bar' ~~ (my rule { 'foo' \S 'bar' })
20:03 camelia rakudo-parrot 4ac10e: OUTPUT«「foo d bar」␤␤»
20:03 FROGGS yeah
20:03 FROGGS I see
20:04 Mouq moritz: I'm rebuilding to see if what you did fixed it, I just have to rebuild everything, so give me a bit :)
20:06 Mouq jnthn: I tried to do work on errors in 6model.c, but couldn't figure it out
20:07 Mouq jnthn: But I can look at what you did and see if I can replicate it where it needs to be
20:07 dalek rakudo/nom: e51b6c0 | (Geoffrey Broadwell)++ | src/core/IO/Socket.pm:
20:07 dalek rakudo/nom: Increase IO::Socket.recv size on non-Parrot from 512 to 65536 so it can always receive a maximum-sized IP datagram in one try.
20:07 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/e51b6c0eb3
20:14 Mouq Oh! FROGGS, I'm sure you understand fine, but just pointing out too:
20:14 Mouq p: say 'foo d bart' ~~ (my rule { 'foo' \S 'bar' })
20:14 camelia rakudo-parrot 4ac10e: OUTPUT«Nil␤»
20:14 Mouq Cause of the » at the end
20:15 FROGGS yeah
20:15 FROGGS I see
20:15 Mouq Yupperrrrrrrs :P
20:16 FROGGS :o)
20:19 kaare__ joined #perl6
20:21 ME joined #perl6
20:22 Mouq jnthn: Oh, wait you already did. I need to read more closely
20:22 Mouq r: try {1.foo}; say $!.WHAT # jnthn++
20:22 camelia rakudo-parrot 4ac10e, rakudo-jvm 4ac10e, rakudo-moar 4ac10e: OUTPUT«(X::Method::NotFound)␤»
20:27 Mouq moritz: Alas, it wasn't fixed
20:28 timotimo 10/43 benchmarks into nqp-jvm right now
20:29 timotimo iirc the order was nqp-p, nqp-jvm, nqp-m, perl5
20:32 Mouq moritz: Nerm, so it was indeed my fault
20:33 Mouq :/ sorry, and thank you, moritz++. I rm'd the $(which perl6)'s that were giving me grief and they were fixed after some *-runner-default-install's
20:34 Mouq So I must have gotten perl6 symlinked to perl6-j somehow :/
20:37 krunen joined #perl6
20:37 raydiak japhb: that makes sense; I'll do a little expanding and organizing to it some time today, unless you're planning the same or already started
20:38 sivoais joined #perl6
20:42 moritz Mouq: glad the issue is resolved
20:43 timotimo japhb: do you recall something about most tests being skipped on the nqps?
20:47 jnap joined #perl6
20:51 japhb raydiak: There was some intent to the order in which the output appears, but I'm not wedded to it.  The expanding is going to be the big thing -- adding matrix math (with all variants of scalars, vectors, and matrices for each op), doing Vec4 and Mat4x4 for homogenous coordinates and conversions back and forth from the *3 versions, adding Quaternions, adding very basic physics of motion and optics, etc.
20:52 japhb Eventually I feel like you ought to be able to 'use Math::ThreeD;' and just be able to assume that all the math you'd see in a decent graphics or game engine book would Just Be There.
20:54 japhb timotimo: Yes, NQP lacks a number of the constructs that make sense in full Perl 6, so I skip those tests rather than having an NQP translation that wouldn't be apples-to-apples.
20:55 treehug88 joined #perl6
20:56 japhb Is there any DB support for r-j right now?
20:56 * japhb is thinking of making a concurrency-safe backing store for Net--IRC
20:56 raiph joined #perl6
20:57 hoelzro just built the docs in 8 minutes using 600MB RAM \o/
20:58 japhb w00t!
20:59 colomon japhb I just read the README.  Is it ready yet?
20:59 japhb LOL
20:59 colomon ;)
21:00 flussence joined #perl6
21:00 timotimo japhb: oh, okay
21:00 timotimo i've got all them benchmarks now
21:00 timotimo time to compare! :)
21:01 japhb Perl 5 has some of the same issues (things that don't make sense in Perl 5), but there are fewer of them than with NQP IIRC
21:01 japhb Awww yeah.
21:03 btyler joined #perl6
21:03 raydiak japhb: sounds like we're pretty much on the same page, though for today I planned to start by refining the build/template script itself...support multiple files for in and out, stuff like that
21:04 colomon japhb: not clear to me why Vec3 is an Array?
21:04 japhb raydiak: Oh, fair enough.  And maybe put the right things in place for panda to recognize it?
21:05 japhb colomon: Erm ... it isa because it *is*?
21:05 Sqirrel_ joined #perl6
21:05 timotimo i didn't get any data points for perl5 o_O
21:05 raydiak (mainly just because my feeble mind doesn't do well with long files of long strings occasionally punctuated by heredocs :) it works now, but once we add some meat, it'll be beyond me)
21:05 Sqirrel joined #perl6
21:06 japhb But the idea was that I could replace 'Array' with 'Array[3] of num' someday and get the speed and space savings with just one change.
21:06 raydiak japhb: yeah, I'll read whatever that requires before I get much into it
21:06 timotimo ah, doh
21:06 timotimo he configure script says OMG THIS IS A DEVELOPMENT BUILD
21:06 timotimo DO YOU KNOW WHAT THAT MEANS?!!?!
21:06 timotimo and perl6-bench is like
21:06 colomon japhb: 1) isn't that a whooping Liskov violation?  2) surely having three num attributes instead would be more efficient in both time and space?
21:06 timotimo ^D
21:06 timotimo and configure is like "yeah, didn't think so, punk!"
21:09 japhb colomon: 1) Regardless of whether it is (and it's not clear to me that's so), I think of Liskov as a rule of thumb, not a law.  2) What about a 4x4 matrix?  That would have 16 attributes.
21:09 japhb timotimo: heh
21:09 colomon is Vec3 meant to be a 4x4 matrix type?
21:09 japhb colomon: No, but Mat4x4 will be.  :-)
21:10 japhb Also, I want .x, .y, and .z to be accessors, not the internal design.
21:10 japhb Because eventually I'd like to be able to have a 300,000 element array of nums, which contains 100,000 tightly packed Vec3's.
21:11 japhb And I want to be thinking in terms of array elements, not in terms of axes.
21:11 japhb Plus, is a Vec3 any less a Vec3 because it represents an RGB triple instead of XYZ?
21:12 colomon in your version, a Vec3 is just as much a Vec3 if it has 2 coordinates or 2 million.
21:12 japhb colomon: Why do you say that?  The only reason it's not sized is because Rakudo doesn't support that.
21:13 japhb And if RGB and XYZ are both valid Vec3's, which one gets named attributes, if I'm thinking that way?
21:13 colomon so it's really supposed to be an Array[3] of num  (or however you write that when it's finally implemented)?
21:14 japhb 13:06 < japhb> But the idea was that I could replace 'Array' with 'Array[3] of num' someday and get the speed and space savings with just one change.
21:14 japhb ... and I would also add, the correctness.
21:15 colomon the correctness is kind of more important (and more plausible) than the speed
21:15 timotimo perl5 benchmarks are starting now
21:15 japhb What makes you say that?  Attribute lookup is really array access underneath.
21:16 japhb And are you worried that people are going to .push onto it or .pop from it?
21:16 timotimo japhb: well, our private attribute accesses are actually turned into "array" accesses underneath with the offset into the data computed at compile-time if possible
21:16 colomon presumably push and pop won't work when it's an Array[3]
21:16 japhb timotimo: yes, I know that.  :0(
21:16 japhb er, :-)
21:16 timotimo on the other hand, you first need to find the array itself for an array and then access into it
21:17 timotimo well, at least our postcircumfix methods are now really subs that could compile-time inline
21:17 japhb timotimo: You are thinking in the current implementation, not in the optimized future.
21:17 timotimo oh, yes
21:17 japhb If we don't (eventually) optimize access to native arrays, we're missing out.
21:17 timotimo in the future, those methods would be equally fast
21:17 japhb right.
21:17 timotimo far future :)
21:17 japhb I dunno about that.
21:18 timotimo we'll see
21:18 timotimo perhaps our new shiny backend will attract more developers to the cabal
21:18 timotimo i'm certainly excited :3
21:18 colomon japhb: as I think timotimo was getting at there, I would certainly hope that when optimized, lookup for attributes would be faster than general Array lookup
21:19 japhb But these aren't general array lookups -- they're lookups *with constant subscripts*
21:19 timotimo colomon: well, when optimized, the lookup to an attribute that's an array would bypass the array completely
21:20 japhb And a native array implementation is free to pack the array contents directly into the object body -- which is to say, at fixed (attribute-like) positions.
21:20 _sri wait, you're benchmarking perl5 against perl6 on moarvm? :)
21:21 japhb _sri: Why not?  :-)
21:21 timotimo yes, i am that hopeful
21:21 _sri oh, i totally want to see those :)
21:21 timotimo i won't keep the results from you :P
21:21 _sri \o/
21:22 japhb _sri: Remember, rakudo-moar has had about half a week of actual optimization work on it total, so don't get your hopes up too high yet.  :-)
21:22 _sri i have no expectations
21:23 colomon japhb: I guess if you assume away all the difficulties via improvements to rakudo, I see nothing terribly wrong about class Vec3 is Array
21:24 colomon if we're lucky, you'll encourage p6ers to make then needed improvements.  ;)
21:24 * moritz thinks that Vec3 inheriting from Array is a terrible idea
21:25 moritz if you inherit, you should never remove functionality
21:25 japhb moritz: What would your design be?
21:25 colomon moritz: Array[3] of num
21:26 timotimo japhb: could you add something to the perl5 build script to install Data::Alias so that I can effortlessly test the bind-related benchmarks?
21:26 moritz but a Vec3 shouldn't allow an arbitrary number of elements, I suppose :-)
21:26 timotimo it could implement Positional
21:26 timotimo but no need to make it inherit from Array
21:26 raydiak I was about ask if it should be a List or something
21:26 TimToady it's rather more like a parcel or tuple
21:26 timotimo that's true
21:27 japhb timotimo: At one point I tried to do that, and had trouble for some reason that I cannot remember.  perl5-version incompatibilites maybe?
21:27 colomon …. wait, is Array[3] always exactly 3, or is it at most 3?
21:27 timotimo japhb: oh :(
21:27 TimToady exactly
21:27 moritz well, Parcel isn't type-specialized
21:27 timotimo well, that'll only get really interesting once we get close to 1/2 as fast as perl5
21:27 moritz so either it should have an array, or three separate attributes
21:28 moritz it really depends on what operations it supports, and if you generally want to unroll your loops by hand
21:29 japhb moritz: I do.  Because the performance shouldn't suck right *now*, even if it will hopefully get much better in the future.
21:29 japhb I'm trying to design something that is useable now, and yet can take advantage of future implementation improvements
21:30 moritz then just say class Vec3 does Positional { has num $.x; has num $.y; has num $.z; }
21:30 japhb moritz: but a Vec3 could also be e.g. an RGB triplet.
21:30 moritz japhb: does cross product make sense on RGP triplets?
21:30 japhb ... or a dx, dy, dz trioplet
21:31 * japhb takes a breath in order to turn down incipient snark
21:32 moritz well, you can store RGP colors in nums too
21:32 moritz or have I misunderstood your objection?
21:32 japhb OK.  I get that you're going for ultimate type safety.  But 1) I tried to say about a bazillion times this was a first sketch WIP, and 2) can everyone please give me the benefit of the doubt that I'm not a horrible designer?
21:33 * japhb is very much regretting "release early, release often"
21:33 japhb I am not ready to paint the bikeshed.  I have not finished laying the slab yet for it to sit on.
21:33 moritz japhb: sorry, I don't understand. You asked me what my design would be, and now you complain about my answer?
21:34 moritz was it too specific? or did it not answer your actual question?
21:34 moritz I haven't read all the backlog yet
21:34 timotimo the graphs are now pretty crowded
21:35 japhb 13:30 < moritz> japhb: does cross product make sense on RGP triplets?  <--- You're asking a question with an obvious answer to point out a flaw in my thinking.  But I know the answer.  I just haven't addressed that yet.
21:35 Mouq japhb: No one thinks you're a horrible designer :)
21:36 moritz japhb: I don't know enough about color spaces to know the answer. Sorry if it's obvious for you
21:37 lue japhb: If you plan on having a lot of different Vec3-like types in the future, perhaps a more generic Tuplet class would be a good thing in the future? Then you could having things like  class Coord3D is Tuplet[3]
21:37 moritz japhb: and fwiw I also don't think it's the type system's job to forbid everything that doesn't make sense in the real world; I was just wondering if putting RGB into a Vec3 isn't an abuse of the Vec3 concept
21:37 moritz not all collections of n values is a vector; it's only a vector if it transforms like a vector
21:37 raydiak I think the intention was to to keep XYZ out, not put RGB in
21:38 timotimo ah well. we're not beating perl5 any time soon :P
21:38 moritz anyway, time for sleep here
21:38 colomon japhb: a lot of your objections seem to be that giving the three quantities in the Vec3 a specific name limits what they can do.  They could just as easily be { has num $.v1; has num $.v2; has num $.v3; }
21:38 raydiak \o g'night moritz
21:39 timotimo gnite moritz!
21:39 japhb moritz: Well, there are a lot of operations that make sense for a Vec3 in the general sense that make more sense for one or the other.  For example, in the space of multiplication, dot/inner product makes sense for both color spaces and positional spaces.  element-wise product makes more sense for color spaces.  cross product makes more sense for positional spaces.
21:39 colomon that said, I can certainly see good reasons why Vec3 is Array[3] of num
21:39 * moritz doesn't
21:39 moritz Array contains *containers*
21:39 moritz why wouldn't it be List[3] of num?
21:40 timotimo i really wonder what makes the rakudos so much slower than the nqps at doing empty loops
21:40 * moritz -> really sleep
21:40 btyler timotimo: I'd be shocked and pleased if perl6 on any backend came within an order of magnitude for any of the tests; just tooling around with nqp (let alone rakudo) shows its still rather slower than ruby (which is typically rather slower than p5)
21:40 japhb moritz: because a fundamental part of the design is to allow mutable vectors to avoid GC churn.
21:40 timotimo btyler: oh, did you make any actual measurements?
21:40 btyler timotimo: nothing scientific, as I said just tooling around with some loops or basic operations
21:40 timotimo fair enough
21:41 japhb colomon: Is your reasoning for '{ has num $.v1; has num $.v2; has num $.v3; }' simply one of (current implementation) efficiency?
21:41 timotimo at some of the (almost completely meaningless) microbenchmarks, nqp-jvm eventually beats perl5
21:43 colomon japhb: well, yes.  I'd be shocked if Array[3] of num caught up in efficiency with that for the foreseeable future.
21:45 timotimo japhb: can we get the "mumble times slower than fastest" to either only compare on the same x-position or add a second number displaying the comparison to the fastest at the current x position?
21:45 timotimo especially for tests with non-linear growth that'd make a big difference
21:45 smls joined #perl6
21:46 japhb timotimo: Yep, I agree.  I'd thought of that a while back (and I think even made progress on making sure the data was all there to make it easy to implement), but just never finished that bit.
21:46 timotimo good to know
21:47 japhb If you've got a hankering, go ahead.  :-)
21:47 timotimo can we put a factor (or summand) for "enough-time" into individual benchmarks?
21:47 japhb What do you mean?
21:47 timotimo i'd like to extend the time of rc-forest-fire and parse-json for all backends by at least a factor of 2 for every run, but not have to do it manually
21:48 japhb Oh, I see.
21:48 timotimo or perhaps the framework could increase the task size by 1.5 after the "enough time" has been reached
21:48 timotimo so that we will always have at least 2 data points
21:48 japhb You know, you can do separate runs of different benchmarks and then use compare in merge-to-json mode to combine them into one set of test results.
21:48 jnap joined #perl6
21:48 timotimo http://feather.perl6.nl/~raiph/25jan​2014-benchmark-p5-nqps-rakudos.html ← _sri
21:49 japhb timotimo: That's an interesting idea.
21:50 timotimo hm. how would i get some perl5ers attention for porting the richards benchmark to perl5?
21:50 timotimo i *think* it's working as intended at least in one version
21:51 timotimo ah. there is only the nqp version so far
21:51 timotimo interesting, nqp-moarvm is currently set to just skip forest fire and parse json
21:51 * timotimo fixes and tests
21:52 _sri join #p5p and taunt them a little :)
21:53 mtj_ joined #perl6
21:53 timotimo er, actually, it skips parse json and man or boy test.
21:53 timotimo it does run parse-json
21:53 timotimo (and quite a bit better than parrot does)
21:54 timotimo i wonder. i kind of thought i had an account on feather
21:55 japhb timotimo++ # Benchmarking!
21:56 timotimo Use of undeclared variable '$B' at line 6, near ", $x1, $x2"  ← that's how nqp-moar dies on the man-or-boy test
21:57 timotimo the line number seems to be off-by-one and it's apparently about the inner reference to $B that's on the rhs of the assignment & creation of $B itself
21:59 timotimo nqp-moarvm runs rc-forest-fire a bit faster than parrot and faster than nqp-jvm up until 128 iterations, where jvm takes over the 2nd spot (and on 2048, it overtakes perl5)
22:00 colomon japhb: I guess part of what makes me look somewhat askance at your "class Vec3 is Array[3] of num" is it feels like a really odd combination of what seems like very early optimization (thus, for instance, is Array[3] instead of has Array[3]) with stuff that seems likely to be quite inefficient today.  I can certainly see that if your imagined optimizations come about, then your solution is a pretty sensible one.
22:02 colomon japhb: and now I'm wondering if Vec3 shouldn't be a role, and going completely into the bikeshedding abyss.
22:03 japhb colomon: OK, fair enough.  So implement it the way you think it should be, and let's compare.  :-)
22:03 gcole joined #perl6
22:03 colomon japhb: fair enough
22:04 japhb At the very least we'll put some numbers to the gut feelings, and maybe even find a serious performance issue that we can correct.
22:05 colomon it has been forked.  ;)
22:06 timotimo japhb: is there some major problem to trying the 1.5x thing or can i just go ahead and plop it in?
22:07 japhb No, but perhaps it's even better to make a minimum-results value.
22:07 japhb "I want at least three data points"
22:07 japhb colomon: heh
22:07 timotimo that does sound better.
22:08 itz_ must not buy HP16C online
22:11 raiph bug in perl6-bench? mouse over first dot of top line (nqp/moarvm) in while_empty_native
22:11 raiph says "151x slower than fastest"
22:13 raiph ooooh. my bad. slower than fastest ever (which will often be jvm).
22:13 gcole joined #perl6
22:14 japhb raiph: That's one of things timotimo was talking about above -- he'd like to both have comparison to fastest ever, and to fastest for that particular test scale (vertical comparison, in other words)
22:15 ivanshmakov joined #perl6
22:16 raiph ah, i haven't fully clogged yet, was just confused
22:16 * corecatcher pets timotimo
22:16 timotimo hey there
22:18 corecatcher \o
22:23 * perigrin watches Util talk
22:24 japhb perigrin: What is Util speaking about?
22:25 perigrin some programming language
22:25 perigrin Perl6? I've never heard of it
22:26 japhb Ah cool.  Where are you?
22:26 perigrin Perl Oasis workshop
22:26 japhb Ah, cool.
22:26 perigrin :)
22:26 japhb How is it going?  Well received so far?
22:27 perigrin he just started really
22:27 japhb ah, gotcah
22:27 japhb er gotcha
22:27 perigrin this is ... not a normal Perl crowd
22:27 japhb ?
22:27 perigrin mostly the local SLUG group
22:28 * colomon is trying to remember why he is recompiling rakudo on OS X.  :\
22:28 perigrin so it'll be interesting to see how things have changed
22:28 perigrin colomon: you're a masochist?
22:29 colomon perigrin: evidence says yes in general, but not in this particular case?  It's going smoothly if slowly.
22:30 perigrin :)
22:40 colomon Command failed (status 11): make
22:40 colomon Command failed (status 65280): /Users/colomon/perl5/perlbre​w/perls/perl-5.18.0/bin/perl Configure.pl --prefix=/Users/colomon/tools/rakudo/install --backends=moar,jvm,parrot --make-install --gen-moar
22:41 colomon okay, that's embarrassing.  Just figured out I actually went to that directory to look at the rakudo source.
22:45 kurahaupo_mobile joined #perl6
22:47 dalek perl6-bench/minimum_number_runs: 3bf2475 | (Timo Paulssen)++ | minibenchmarks.pl:
22:47 dalek perl6-bench/minimum_number_runs: no longer need to skip rc-forest-fire on nqp-moar.
22:47 dalek perl6-bench/minimum_number_runs: review: https://github.com/japhb/pe​rl6-bench/commit/3bf247525a
22:47 dalek perl6-bench/minimum_number_runs: 0c6dde4 | (Timo Paulssen)++ | timeall:
22:47 dalek perl6-bench/minimum_number_runs: try to get at least 3 datapoints
22:47 dalek perl6-bench/minimum_number_runs: review: https://github.com/japhb/pe​rl6-bench/commit/0c6dde4aa0
22:48 dalek perl6-bench: 3bf2475 | (Timo Paulssen)++ | minibenchmarks.pl:
22:48 dalek perl6-bench: no longer need to skip rc-forest-fire on nqp-moar.
22:48 dalek perl6-bench: review: https://github.com/japhb/pe​rl6-bench/commit/3bf247525a
22:49 jnap joined #perl6
22:55 psch joined #perl6
22:56 psch hi #perl6
22:56 psch for <testneeded> tagged RT tickets i just push a test to roast and comment on the ticket, right?
22:57 psch because many of those tests seem writeable for me... :)
22:57 psch well, rather "a few" than many
22:58 jnthn psch: Yes, that's right
22:58 corecatcher p: use lib $?FILE.path.directory ~ '/lib';
22:58 camelia rakudo-parrot e51b6c: ( no output )
22:58 corecatcher p: use lib "{$?FILE.path.directory}/lib";
22:58 camelia rakudo-parrot e51b6c: OUTPUT«===SORRY!===␤Null PMC access in get_bool()␤»
23:01 corecatcher r: use lib "{$?FILE.path.directory}/lib";
23:01 jnthn Mouq: Yes, it was the bind failure and return type check failure ones I thought you had patches towards. :)
23:01 camelia rakudo-jvm e51b6c, rakudo-moar e51b6c: ( no output )
23:01 camelia ..rakudo-parrot e51b6c: OUTPUT«===SORRY!===␤Null PMC access in get_bool()␤»
23:01 psch RT #79002 seems redundant though, unless there's something specific about this case that warrants another test for X::Syntax::Confused 'two terms in a row'
23:01 synopsebot Link: https://rt.perl.org/rt3//Publ​ic/Bug/Display.html?id=79002
23:02 psch line 352 in S32-exceptions/misc.t covers a similar case
23:02 psch but then, i have it written and might as well commit the exact example as it exists in the ticket...
23:03 Mouq jnthn: I did realize: X::Assignment::RO still has to be thrown if an object has no STORE method still, in Ops.nqp's p6store
23:03 Mouq jnthn: Even if I could get what I have to work, I don't think it'd be effecient (especially for something that's going to get hit for every assignment made)
23:04 Mouq jnthn: So it's probably best if you did it :P sorry
23:04 gcole joined #perl6
23:04 telex joined #perl6
23:04 Mouq jnthn: Or at least, someone who knows what he is doing
23:05 timotimo corecatcher: i can't answer your query, because i'm not authenticated with nickserv on this server
23:06 jnthn Mouq: OK, np
23:06 corecatcher timotimo: hackint then?
23:06 jnthn Mouq: Yes, that does need a little care given it's very common
23:06 timotimo "no such nick corecatcher" :)
23:06 timotimo i'm timo there
23:12 jeffreykegler joined #perl6
23:17 bjz joined #perl6
23:21 timotimo nqp: my $foo := sub ($a) { $a > 0 ?? $foo($a - 1) + 1 !! 1 };
23:21 camelia nqp-parrot: OUTPUT«Use of undeclared variable '$foo' at line 2, near "($a - 1) +"␤current instr.: 'panic' pc 15952 (gen/parrot/stage2/NQPHLL.pir:5947) (gen/parrot/stage2/NQPHLL.nqp:425)␤»
23:21 camelia ..nqp-moarvm: OUTPUT«Use of undeclared variable '$foo' at line 2, near "($a - 1) +"␤   at gen/moar/stage2/NQPHLL.nqp:369  (/home/p6eval/rakudo-inst-1/language​s/nqp/lib/NQPHLL.moarvm:panic:120)␤ from gen/moar/stage2/NQP.nqp:2371  (/home/p6eval/rakudo-inst-1​/languages/nqp/lib/nqp.mo…»
23:21 camelia ..nqp-jvm: OUTPUT«Use of undeclared variable '$foo' at line 2, near "($a - 1) +"␤  in panic (gen/jvm/stage2/NQPHLL.nqp:378)␤  in  (gen/jvm/stage2/NQP.nqp:2376)␤  in  (gen/jvm/stage2/NQP.nqp:2367)␤  in variable (gen/jvm/stage2/NQP.nqp:2298)␤  in !reduce (gen/jvm/stage2/QRegex…»
23:21 timotimo oh?
23:24 jnthn timotimo: Let's call that one a bug...
23:25 timotimo rc-man-or-boy-test in nqp/ of perl6-bench has this line: my $B := sub () { A(--$k, $B, $x1, $x2, $x3, $x4) };
23:25 timotimo and it worked on other nqps :\
23:26 timotimo japhb: even with 3 * 3 it won't work any better o_O
23:26 tadzik damn it's cold :|
23:27 tadzik o/' I'm much too young to feel this damn cold o/'
23:27 kurahaupo_mobile joined #perl6
23:27 timotimo jnthn: if i were bored on a sunday afternoon soon-ish, what optimization would i look at first to start a peephole optimizer for moar? and what kind of code would produce sufficiently optimizable code?
23:28 dalek roast: b2af5d7 | (Pepe Schwarz)++ | S32-exceptions/misc.t:
23:28 dalek roast: Added test for RT #79002
23:28 dalek roast: review: https://github.com/perl6/roast/commit/b2af5d7dae
23:28 dalek roast: 1b0f074 | (Pepe Schwarz)++ | S32-exceptions/misc.t:
23:28 dalek roast: Added test for RT #115964
23:28 synopsebot Link: https://rt.perl.org/rt3//Publ​ic/Bug/Display.html?id=79002
23:28 synopsebot Link: https://rt.perl.org/rt3//Publ​ic/Bug/Display.html?id=115964
23:28 dalek roast: review: https://github.com/perl6/roast/commit/1b0f074256
23:28 dalek roast: a984324 | (Pepe Schwarz)++ | S32-exceptions/misc.t:
23:28 dalek roast: Added test for RT #77270
23:28 synopsebot Link: https://rt.perl.org/rt3//Publ​ic/Bug/Display.html?id=77270
23:28 dalek roast: review: https://github.com/perl6/roast/commit/a984324d28
23:32 * psch thinks he should maybe group commits or at least not trigger synopsebot...
23:32 timotimo i disagree
23:32 jnthn timotimo: Well, dunno how measurable it'd be, but simple strength reduction on native integer ops is one example. For example, turning a multiply by a power of 2 into a bit-shift
23:33 timotimo i clicked on all those synopsebot links to see what you've been fixing :)
23:33 psch i haven't been fixing anything, just adding tests... :)
23:33 timotimo that's a fix in my books :)
23:33 psch and they were all pretty much copy&paste
23:33 psch oh alright :P
23:33 tadzik psch++
23:34 jnthn psch: I think you did it fine. :)
23:34 timotimo jnthn: what do i have to look for to see if a register has a natively typed int in it?
23:34 psch there's a few where i have questions though, like for example rt #76444
23:34 synopsebot Link: https://rt.perl.org/rt3//Publ​ic/Bug/Display.html?id=76444
23:34 psch the behavior i'm seeing here isn't the same as in the ticket
23:34 jnthn timotimo: Well, if you've an add_i you can be quite sure :)
23:34 tadzik coooold
23:34 jnthn timotimo: Instructions on natives are not polymorphic in Moar.
23:35 psch where "here" is a fresh build of -j and -m from about half an hour ago
23:35 timotimo ah, that's fair :)
23:35 bjz joined #perl6
23:35 Mouq p6: say (my $a) = 1,2,3; $a
23:35 camelia rakudo-parrot e51b6c, rakudo-jvm e51b6c, rakudo-moar e51b6c, niecza v24-109-g48a8de3: OUTPUT«1 2 3␤»
23:36 psch Mouq: my concern was the last example
23:36 psch r: (say (my $a)) = 1,2,3;
23:36 camelia rakudo-moar e51b6c: OUTPUT«(Any)␤No such method 'STORE' for invocant of type 'Bool'␤  in block  at /tmp/tmpfile:1␤␤»
23:36 camelia ..rakudo-parrot e51b6c, rakudo-jvm e51b6c: OUTPUT«(Any)␤Cannot modify an immutable value␤  in block  at /tmp/tmpfile:1␤␤»
23:36 psch i guess that makes more sense than what is in the ticket, as the return value of say is immutable
23:36 jnthn timotimo: If you want to go for a very noticable improvement, though, digging into the Int optimizations we talked about on #moarvm will likely be more noticable
23:37 psch ...i was mostly just curious
23:37 timotimo is the whole callsite business what we'll be using to stash runtime information about likely invocation targets of methods close by or something?
23:37 Mouq psch: Do you mean the 'Cannot assign to a non-container'?
23:37 timotimo jnthn: i'll see if i can find the time and inspiration ;)
23:38 psch Mouq: yeah, i wasn't seen that locally as it is in the ticket
23:38 psch *seeing
23:38 psch and here neither.. :)
23:38 jnthn timotimo: Well, the callsites will be keys into specialized things, for sure. That's why I want to move stuff like names into them.
23:39 xinming_ joined #perl6
23:39 Mouq psch: Ah, k, I agree with you
23:44 dalek nqp: 50185fc | jnthn++ | src/ (2 files):
23:44 dalek nqp: Avoid lots of allocation/boxing with cursors.
23:44 dalek nqp:
23:44 dalek nqp: Only changed on Moar here, but can do similar thing on other backends.
23:44 dalek nqp: review: https://github.com/perl6/nqp/commit/50185fc046
23:44 dalek nqp: 3cccf18 | jnthn++ | src/ (4 files):
23:44 dalek nqp: Improve regex prelude when we can know cursor type
23:44 dalek nqp:
23:44 dalek nqp: Means we can emit some more things as hinted lookups.
23:44 dalek nqp: review: https://github.com/perl6/nqp/commit/3cccf18356
23:44 dalek nqp: aa42129 | jnthn++ | src/vm/moar/QAST/QASTRegexCompilerMAST.nqp:
23:44 dalek nqp: A few more Cursor access code-gen improvements.
23:46 flussence joined #perl6
23:46 Mouq p6: my rule thr ($i) {<$i>**3}; say 'xxxxxxxxxx' ~~ /<thr <thr x> >/
23:46 camelia niecza v24-109-g48a8de3: OUTPUT«「xxxxxxxxx」␤ thr => 「xxxxxxxxx」␤␤»
23:46 camelia ..rakudo-parrot e51b6c, rakudo-jvm e51b6c, rakudo-moar e51b6c: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/tmpfile�Variable '$i' is not declared�at /tmp/tmpfile:1�------> [32mmy rule thr ($i) {<$i>**3}[33m�[31m; say 'xxxxxxxxxx' ~~ /<thr <thr x> >/[0m…»
23:48 psch is S06-other/misc.t an ok place for #76444?
23:48 synopsebot Link: https://rt.perl.org/rt3//Publ​ic/Bug/Display.html?id=76444
23:49 Mouq nqp: grammar three { token TOP { <thr <thr x> > }; token thr ($i) {<$i>**3} }; say(three.parse('xxxxxxxxxx')) # And yet NQP does it correctly
23:49 camelia nqp-moarvm, nqp-jvm, nqp-parrot: OUTPUT«xxxxxxxxx␤»
23:50 jnap joined #perl6
23:51 jnthn psch: S03-operators/assign.t may be better
23:51 Mouq psch: I'd almost say that should go in S03-* because it has to do with precedence
23:51 psch okay
23:51 * Mouq is too slow
23:51 * Mouq goes back to minding his own business
23:52 psch i looked at S03-operators, but thought "well say isn't really an operator, is it now"... :)
23:53 jnthn Mouq: I got no guesses on why Rakudo gets that one you just eval'd wrong...
23:53 jnthn Mouq: Should work.
23:54 timotimo jnthn: do we already get compile-time hints for the cursors now?
23:54 dalek roast: e951886 | (Pepe Schwarz)++ | S03-operators/assign.t:
23:54 dalek roast: Added test for RT #76444
23:54 synopsebot Link: https://rt.perl.org/rt3//Publ​ic/Bug/Display.html?id=76444
23:54 dalek roast: review: https://github.com/perl6/roast/commit/e951886a5f
23:55 psch should the failing examples go somewhere as well?
23:55 psch unless there's similar cases already...
23:55 * psch goes and reads more roast
23:57 jnthn timotimo: The code we emit for grammar rules shouldnow have them.
23:57 jnthn *should
23:58 jnthn timotimo: Well, not taught grammars in Rakudo about it yet...
23:58 jnthn timotimo: But that'll be easy enough.
23:58 Mouq psch++ # bug tests :)
23:58 timotimo aye
23:59 timotimo i'll spend some sleepytime for now, tomorrow i'll have a train ride that may or may not end up being productive :)

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

Perl 6 | Reference Documentation | Rakudo | Niecza | Specs