Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2013-01-16

Perl 6 | Reference Documentation | Rakudo

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

All times shown according to UTC.

Time Nick Message
00:04 bonsaikitten joined #perl6
00:33 benabik joined #perl6
01:09 Targen joined #perl6
01:12 anuby joined #perl6
01:13 hypolin joined #perl6
01:33 bluescreen10 joined #perl6
01:46 skids joined #perl6
02:28 xinming joined #perl6
02:32 slayer101_ joined #perl6
02:38 slayer101_ joined #perl6
03:20 sevin joined #perl6
03:49 dayangkun joined #perl6
04:05 stevan_ joined #perl6
04:28 preflex_ joined #perl6
04:43 thou joined #perl6
05:01 geekosaur joined #perl6
05:08 eternaleye_ joined #perl6
05:09 thou joined #perl6
05:12 kaleem joined #perl6
05:28 telex joined #perl6
05:34 sevin joined #perl6
05:43 anuby joined #perl6
05:46 anuby joined #perl6
06:04 SamuraiJack joined #perl6
06:11 kaleem joined #perl6
06:21 PacoAir joined #perl6
06:47 slayer101_ joined #perl6
06:48 slayer101_ left #perl6
06:57 For-Odin joined #perl6
07:04 For-Odin joined #perl6
07:07 FROGGS[mobile] joined #perl6
07:08 FROGGS[mobile] gmorning
07:08 tadzik hello mobile FROGGS
07:45 am0c joined #perl6
07:48 FROGGS joined #perl6
07:51 dalek specs: eb2a85b | (Konrad Borowski)++ | S02-bits.pod:
07:51 dalek specs: ?ROUTINE has & sigil, not $ sigil
07:51 dalek specs: review: https://github.com/perl6/specs/commit/eb2a85b2b9
07:52 thou joined #perl6
07:52 b1rkh0ff joined #perl6
07:57 PacoAir joined #perl6
08:04 kaleem joined #perl6
08:29 SamuraiJack joined #perl6
08:31 cedrvint hello #perl6
08:32 cedrvint rn: say("test" ~~ /. ** 0/)
08:32 p6eval niecza v24-17-gd343a2a: OUTPUT«#<match from(0) to(0) text() pos([].list) named({}.hash)>␤»
08:32 p6eval ..rakudo c3f565: OUTPUT«「test」␤␤»
08:32 cedrvint is this^ a bug in Rakudo?
08:33 sorear I would say so
08:35 * cedrvint submits a ticket
08:40 moritz nqp: my $x := ('0' ~~ /./); say('yes') if $x;
08:40 p6eval nqp: OUTPUT«yes␤»
08:47 moritz it seems to generate the right QAST::Regex node
08:47 moritz so the bug is likely in the codegen
08:48 diakopter my code probably
08:48 diakopter I did the quant iirc
08:49 moritz nqp: /a ** 5..3/
08:49 p6eval nqp:  ( no output )
08:49 moritz std: /a ** 5..3/
08:49 p6eval std 7deb9d7: OUTPUT«[31m===[0mSORRY![31m===[0m�Empty range at /tmp/t202LjNh1y line 1:�------> [32m/a ** 5..3[33m�[31m/[0m�Parse failed�FAILED 00:00 41m�»
08:49 moritz std: /a ** 0/
08:49 p6eval std 7deb9d7: OUTPUT«ok 00:00 42m␤»
08:49 bbkr r: "a" ~~ m/{ say &?ROUTINE.WHAT } a/;
08:49 p6eval rakudo c3f565: OUTPUT«[31m===[0mSORRY![31m===[0mâ�¤Undeclared name:â�¤    &?ROUTINE used at line 1â�¤â�¤Â»
08:50 diakopter er, I did the quant for NFA
08:50 diakopter not sure which is DTWT
08:51 diakopter moritz: would 0 repetitions mean *doesn't match*?
08:51 bbkr r: sub foo { say &?ROUTINE.name }; foo()
08:51 p6eval rakudo c3f565: OUTPUT«foo␤»
08:51 moritz diakopter: no, it means 'match zero characters, successfull'
08:52 diakopter k
08:52 diakopter I was mostly joking :P
08:53 diakopter (I thought it extremely unlikely the answer was yes)
08:54 bbkr is above "m/{ say &?ROUTINE.WHAT } a/" a bug? previously &?ROUTINE was available in regexp blocks and returning Nil
08:55 moritz r: say Regex ~~ Routine
08:55 p6eval rakudo c3f565: OUTPUT«True␤»
08:55 moritz should refer to the regex itself
08:55 diakopter r: say("test" ~~ /{ say 5 } ** 0/)
08:55 p6eval rakudo c3f565: OUTPUT«(timeout)5␤5␤5␤5␤5␤5␤5␤5␤5␤5␤5␤5␤5␤5␤5␤5␤5␤5␤5␤5␤5␤5␤5␤5␤5␤5␤5␤5␤5␤5␤5␤5␤5␤5␤5␤5␤5␤5␤5␤5␤5␤5␤5␤5␤5␤5␤5␤5␤5␤5␤5␤5␤5␤5␤5␤5␤5␤5␤5␤5␤5␤5␤5␤5␤5␤5␤5␤5␤5␤5␤5␤5␤5␤5␤5␤5␤5␤5␤5␤5␤5␤5␤5␤5␤5␤5␤5␤5␤5␤5␤5␤5␤5␤5␤5␤5␤5␤5␤5␤
08:56 * bbkr reports
08:56 diakopter so it's not NFA
08:56 moritz diakopter: of course not if you add {}
08:56 moritz diakopter: {} terminates LTM
08:57 diakopter that's my point; I was trying to determine whether the problem was with NFA quant.
08:57 diakopter surely that was clear by "so it's not NFA"
08:58 moritz no, wasn't clear to me
08:58 diakopter 'course, the problem could also be in the NFA quant
08:58 moritz because I thought you meant it's clear that /{ say 5 } ** 0/, but generalized it to  ** 0 in all cases
08:59 moritz * that /{ say 5 } ** 0/ was not NFA,
09:05 bbkr__ joined #perl6
09:06 diakopter I checked NFA.nqp; if min/max are zero, it hits line 255 (emits a no-op)
09:07 diakopter DTRT++
09:07 kaleem joined #perl6
09:07 sqirrel joined #perl6
09:07 moritz diakopter++
09:07 moritz # also starts with a 'd' :-)
09:24 jnthn morning o/
09:24 arnsholt chromatic is one hell of a backseat driver
09:25 arnsholt 'lo jnthn \o
09:25 * diakopter is a trunk driver
09:25 nwc10 that's so svn
09:26 diakopter jnthn: that's boot to you
09:27 jnthn Why boot me? I just arrived :P
09:31 bowtie joined #perl6
09:32 moritz we should rather boost jnthn++ :-)
09:32 diakopter STL is fine thank you
09:32 nwc10 no-one mentioned this: http://blogs.perl.org/users/hercynium/2013/01/the-jvm-could-host-a-perl-implementation---and-do-it-well.html
09:32 nwc10 There, I fixed that for you :-)
09:33 moritz I just read it :-)
09:33 moritz and it's interesting, but kinda missing a point
09:33 diakopter pray for the unsung genius hero(es) chromatic mentions
09:33 arnsholt I just read the chromatic post linked from that post (thus my backseat driver comment)
09:34 moritz afaict scala was designed to be run by the JVM
09:34 xinming joined #perl6
09:34 moritz whereas neither Perl 5 nor Perl 6 are
09:34 moritz so it's not obvious that just because scala on the JVM is faster for a particular application than native Perl 5 is, Perl-[56] on JVM will be fast
09:35 nwc10 IIRC I've read people frustrated that Scala doesn't have some things, or compramises on some things, simple because it has to, to work on the JVM
09:35 nwc10 (ie, they knew why it was done the way it was)
09:35 diakopter I need 20,000 threads _now_ ;)
09:36 moritz it's probably really easy to get a 90% subset implementation of Perl 5 to be fast on the JVM
09:36 moritz s/really/relatively/
09:36 diakopter smop == wink and a node
09:36 diakopter er, nod
09:37 moritz but the last 10% (magic, lvalue substr(), whatever), they might slow things down considerably
09:37 diakopter tieing..
09:37 nwc10 that would be consistent with what fglock said about implementing loops in Perlito. They were much faster. Much much faster. (Forget the number). But then adding continue and next, and they were slower than Perl 5
09:37 moritz and if you want to use 20 modules, even if all of them are pure perl, chances are that some of them sorely need some of the missing 10% features
09:38 arnsholt moritz: Which I think moe's more or less explicitly acknowledged, by saying right away that backwards compatibility is going to be broken
09:39 * nwc10 thinks all of this. Glad I don't need to type anything
09:40 nwc10 but this doesn't make Moe wrong. :-)
09:40 nwc10 it makes Moe interesting.
09:40 nwc10 checking the assumptions. And trying different trade offs
09:40 moritz arnsholt: right. The hard part will be figuring out which compromises to make, so that Moe feels both perlish and fast
09:41 arnsholt Yeah, that's gonna be really, really hard
09:41 isBEKaml joined #perl6
09:41 isBEKaml OHHAI, #perl6!
09:41 diakopter the >100ms startup time won't be funnest
09:41 * moritz thinks it's a good excuse/reason to start to learn scala
09:42 isBEKaml moritz: scala's always a good reason, even if it's just to learn FP on the jvm with static types. :)
09:42 Psyche^ joined #perl6
09:44 moritz isBEKaml: yes, but I usually fail at learning languages unless I have a project where I actually use it alongside
09:44 isBEKaml moritz: I have yet to find a suitable project to hack along using Scala. :-) I'm a big phel that way.
09:57 dakkar joined #perl6
10:06 * jnthn has a fix for the quant bug
10:07 cedrvint jnthn++
10:09 * moritz has a small patch that checks for empty range at parse time
10:09 moritz std: /a**5..3/
10:09 p6eval std 7deb9d7: OUTPUT«[31m===[0mSORRY![31m===[0m�Empty range at /tmp/AVQa_aK8K2 line 1:�------> [32m/a**5..3[33m�[31m/[0m�Parse failed�FAILED 00:00 41m�»
10:09 moritz like this
10:10 SmokeMachine joined #perl6
10:10 cedrvint std: /. ** -1/
10:10 p6eval std 7deb9d7: OUTPUT«[31m===[0mSORRY![31m===[0m�Unrecognized regex metacharacter * (must be quoted to match literally) at /tmp/qdfIkwa49r line 1:�------> [32m/. *[33m�[31m* -1/[0m�Unable to parse regex; couldn't find final '/' at /tmp/qdfIkwa49r line 1:�------> [32m/. ** [33m�…
10:10 cedrvint std: /.**-1/
10:10 p6eval std 7deb9d7: OUTPUT«[31m===[0mSORRY![31m===[0m�Unrecognized regex metacharacter * (must be quoted to match literally) at /tmp/6abJBmo_EH line 1:�------> [32m/.*[33m�[31m*-1/[0m�Unable to parse regex; couldn't find final '/' at /tmp/6abJBmo_EH line 1:�------> [32m/.**[33m�[31m…
10:11 cedrvint std: /.**1/
10:11 p6eval std 7deb9d7: OUTPUT«ok 00:00 42m␤»
10:11 jnthn r: say 'aa' ~~ / a ** 0/
10:11 p6eval rakudo c3f565: OUTPUT«「aa」␤␤»
10:11 jnthn r: say 'aa' ~~ / a ** 0..0/
10:11 p6eval rakudo c3f565: OUTPUT«「aa」␤␤»
10:11 jnthn Yeah, fixed those two
10:12 * jnthn spectests
10:12 * moritz guesses his and jnthn's patches are orthogonal, but waits to see
10:12 cedrvint hum, according to S05 negative ranges are allowed
10:13 moritz according to STD not
10:13 moritz I'm going with STD here :-)
10:13 jnthn moritz: oh, sorry...I didn't know you were patching too
10:13 moritz jnthn: no problem, go ahead
10:13 cedrvint n: 'test' ~~ /. ** -1/
10:13 p6eval niecza v24-17-gd343a2a: OUTPUT«[31m===[0mSORRY![31m===[0m��Unrecognized regex metacharacter * (must be quoted to match literally) at /tmp/_jC1K05nry line 1:�------> [32m'test' ~~ /. *[33m�[31m* -1/[0m��Unable to parse regex; couldn't find final '/' at /tmp/_jC1K05nry line 1:�---…
10:18 jnthn moritz: Hm, my fix breaks some of the :P5 tests...
10:19 jnthn r: say "abbbbc" ~~ rx:P5/ab{0,}bc/
10:19 p6eval rakudo c3f565: OUTPUT«「abbbbc」␤␤»
10:21 jnthn ah...looks like P5Regex actions bug.
10:23 chromis joined #perl6
10:27 Chillance joined #perl6
10:36 cognominal joined #perl6
10:43 dalek nqp: d8431d2 | jnthn++ | t/qregex/rx_quantifiers:
10:43 dalek nqp: Test for ** 0 and ** 0..0 quantifiers.
10:43 dalek nqp: review: https://github.com/perl6/nqp/commit/d8431d29d4
10:43 dalek nqp: 82793b5 | jnthn++ | src/QAST/Compiler.nqp:
10:43 dalek nqp: Fix compilation of ** 0 and ** 0..0 quantifiers.
10:43 dalek nqp: review: https://github.com/perl6/nqp/commit/82793b53de
10:43 dalek nqp: 5401c4e | jnthn++ | src/QRegex/P5Regex/Actions.nqp:
10:43 dalek nqp: Fix {1,} compilation in P5Regex.
10:43 dalek nqp: review: https://github.com/perl6/nqp/commit/5401c4e9e2
10:44 dalek rakudo/nom: efac0f1 | jnthn++ | tools/build/NQP_REVISION:
10:44 dalek rakudo/nom: Bump NQP_REVISION to get ** fix.
10:44 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/efac0f1727
10:47 dalek nqp-jvm-prep: 79ffc9d | jnthn++ | src/org/perl6/nqp/sixmodel/REPRRegistry.java:
10:47 dalek nqp-jvm-prep: Make sure REPR's id and name are set.
10:47 dalek nqp-jvm-prep: review: https://github.com/jnthn/nqp-jvm-prep/commit/79ffc9dd06
10:47 dalek nqp-jvm-prep: e81fd35 | jnthn++ | src/org/perl6/nqp/sixmodel/ (2 files):
10:47 dalek nqp-jvm-prep: Add Uninstantiable REPR.
10:47 dalek nqp-jvm-prep: review: https://github.com/jnthn/nqp-jvm-prep/commit/e81fd3516f
10:47 dalek nqp-jvm-prep: 29f8ce7 | jnthn++ | t/qast_6model.t:
10:47 dalek nqp-jvm-prep: Test for reprname and newtype.
10:47 dalek nqp-jvm-prep: review: https://github.com/jnthn/nqp-jvm-prep/commit/29f8ce7543
10:47 dalek nqp-jvm-prep: 1d7c623 | jnthn++ | / (2 files):
10:47 dalek nqp-jvm-prep: Implement reprname and newtype.
10:47 dalek nqp-jvm-prep: review: https://github.com/jnthn/nqp-jvm-prep/commit/1d7c6236bd
10:55 kaleem joined #perl6
11:03 wk joined #perl6
11:04 For-Odin joined #perl6
11:05 For-Odin left #perl6
11:05 Su-Shee_ joined #perl6
11:07 dalek nqp-jvm-prep: 49fe3ee | jnthn++ | t/qast_6model.t:
11:07 dalek nqp-jvm-prep: Fix typo'd test plan.
11:07 dalek nqp-jvm-prep: review: https://github.com/jnthn/nqp-jvm-prep/commit/49fe3ee289
11:07 dalek nqp-jvm-prep: 8e58be5 | jnthn++ | / (3 files):
11:07 dalek nqp-jvm-prep: Implement and test nqp::substr.
11:07 dalek nqp-jvm-prep: review: https://github.com/jnthn/nqp-jvm-prep/commit/8e58be51f7
11:23 vikram joined #perl6
11:31 cognominal joined #perl6
11:44 cognominal joined #perl6
12:10 sftp joined #perl6
12:12 masak good definitely afternoon already, #perl6
12:12 MikeFair__ joined #perl6
12:14 cedrvint o/ masak
12:18 masak timotimo: re https://rt.perl.org/rt3//Public/Bug/Display.html?id=77272 -- that error message is *horrible*.
12:19 masak timotimo: so, while I'm happy that it now has line and file in it, I'd like for it not to spew 28 lines of useless inventory of trait_mod:<is> candidates, none of which will help the user realize what went wrong. (typo in class name)
12:19 masak is it possible to hijack the useless error message and replace it with a useful one in this case?
12:20 dalek nqp-jvm-prep: 773a84a | jnthn++ | / (2 files):
12:20 dalek nqp-jvm-prep: Set up some of the nqp-specific ops.
12:20 dalek nqp-jvm-prep: review: https://github.com/jnthn/nqp-jvm-prep/commit/773a84aae8
12:20 dalek nqp-jvm-prep: d5691cb | jnthn++ | t/qast_core.t:
12:20 dalek nqp-jvm-prep: Tests for while and for with control exceptions.
12:20 dalek nqp-jvm-prep: review: https://github.com/jnthn/nqp-jvm-prep/commit/d5691cb190
12:20 dalek nqp-jvm-prep: 89aaf7a | jnthn++ | lib/QAST/JASTCompiler.nqp:
12:20 dalek nqp-jvm-prep: Implement control op for next/redo/last.
12:20 dalek nqp-jvm-prep: review: https://github.com/jnthn/nqp-jvm-prep/commit/89aaf7af94
12:20 dalek nqp-jvm-prep: 6c5ecc9 | jnthn++ | src/org/perl6/nqp/runtime/Ops.java:
12:20 dalek nqp-jvm-prep: Fix control exceptions crossing block boundaries.
12:20 dalek nqp-jvm-prep: review: https://github.com/jnthn/nqp-jvm-prep/commit/6c5ecc924f
12:20 masak I mean, we know that what comes after 'class A is' must be either something kinda special, like 'rw', or an already-declared class/role name.
12:20 masak if it isn't, we should be able to hijack.
12:20 jnthn Apart from the "something kinda special" is not special at all.
12:20 jnthn It's a perfectly ordinary multi-dispatch to trait_mod:<is>
12:21 arnsholt If any trait_mod:<is> fails I think we want line and file, really
12:21 jnthn Yes, you get line and file now :)
12:21 jnthn The problem is how to try and do better than listing the candidates.
12:21 masak right.
12:21 arnsholt r: class A is NoSuchType {}
12:21 p6eval rakudo efac0f: OUTPUT«[31m===[0mSORRY![31m===[0m�Cannot call 'trait_mod:<is>'; none of these signatures match:�:(Mu:U $child, Mu:U $parent)�:(Attribute:D $attr, :rw(:$rw)!)�:(Attribute:D $attr, :readonly(:$readonly)!)�:(Attribute:D $attr, :box_target(:$box_target)!)�:(Routine:D $r, …
12:21 sqirrel joined #perl6
12:22 jnthn r: multi trait_mod:<is>(Mu:U $type, *%fail) { die "No such parent" }; class A is NoSuchType {}
12:22 p6eval rakudo efac0f: OUTPUT«[31m===[0mSORRY![31m===[0m�No such parent�at /tmp/UyilwwusGR:1�------> �»
12:22 jnthn r: multi trait_mod:<is>(Mu:U $type, *%fail) { die "No such parent" }; class A is Int {}
12:22 p6eval rakudo efac0f:  ( no output )
12:22 jnthn r: multi trait_mod:<is>(Mu:U $type, *%fail) { die "No such parent" }; class A is rw {}
12:22 p6eval rakudo efac0f:  ( no output )
12:23 jnthn So that looks promising *but*...
12:23 jnthn r: multi trait_mod:<is>(Mu:U $type, *%fail) { die "No such parent" }; multi trait_mod:<is>(Mu:U $type, :omgz!) { say "ok" }; class A is omgz {}
12:23 p6eval rakudo efac0f: OUTPUT«[31m===[0mSORRY![31m===[0mâ�¤Malformed parameterâ�¤at /tmp/IS77AjXuud:1â�¤------> [32mt" }; multi trait_mod:<is>(Mu:U $type, :[33mâ��[31momgz!) { say "ok" }; class A is omgz {}[0mâ�¤    expecting any of:â�¤        pair valueâ�¤        formal parameterâ�¤        constraintâ�¤â€¦
12:24 jnthn r: multi trait_mod:<is>(Mu:U $type, *%fail) { die "No such parent" }; multi trait_mod:<is>(Mu:U $type, :$omgz!) { say "ok" }; class A is omgz {}
12:24 p6eval rakudo efac0f: OUTPUT«ok␤»
12:24 jnthn Ah, OK, it gets it right.
12:24 jnthn So maybe it can work.
12:25 jnthn But I don't wanna do something that could have ecosystem fallout the day before release :)
12:25 arnsholt How hard would it be to make it something like "Cannot call trait_mod at $file:$line"?
12:25 moritz we could also define a proto that does a re-dispatch, and catches a dispatch failure
12:25 moritz though we don't have typed exceptions for those yet
12:25 moritz so, probably not
12:26 jnthn arnsholt: The file/line is output already now
12:26 jnthn The problem is that a common mistake triggers an accurate, but unhelpful error.
12:27 jnthn A fail to apply a trait mod really *is* a multi-dispatch failure. I don't think we should be hiding that in the general case.
12:28 arnsholt There is that. But moving the line and file info to the top instead of after the pseudo-stacktrace would help a bit at least
12:29 jnthn I don't see how putting the file/line in a different place than the user is used to seeing it helps anything.
12:29 jnthn The pointy thing should be better placed, though (actually point to the trait name)
12:29 masak ooh, ++isBEKaml is doin' this month's release.
12:30 masak any volunteers for March? :)
12:30 * moritz is the eternal fallback
12:31 masak I can be a fallback too, provided nothing messes up my March schedule.
12:31 jnthn End of March is ungood for me.
12:32 masak oh, right.
12:32 masak no, I was meaning more "any of the lurkers volunteering for March?" :)
12:32 jnthn (So would be good for somebody to take the Star release also then)
12:32 jnthn I'm happy to do this month's Star release if nobody else wishes to.
12:47 FROGGS[mobile] joined #perl6
12:52 grondilu joined #perl6
12:53 grondilu You know what would be nice?  A *persistent* command-line history in the REPL.
12:53 moritz grondilu: wouldn't be too hard to do
12:53 moritz there's a history thingy that comes with readline
12:55 grondilu I actually have no idea about how the REPL works.  Is it in perl6 or is the perl6 interpreter encapsulated in Perl5 or something?
12:56 arnsholt Mostly inherited from NQP IIRC
12:56 grondilu so the readline API calls are in NQP?
12:57 FROGGS joined #perl6
12:58 moritz well, NQP calls $stdin.readline_interactive
12:58 moritz which in turn is a parrot method
12:58 moritz from src/pmc/filehandle.pmc
12:59 grondilu ok
13:01 moritz it seems it already has a call to add_history
13:01 moritz so I guess it's just a matter of setting a history file first, and later closing it
13:01 moritz or...something
13:01 grondilu yes, a convention for the file would have to be chosen.
13:02 grondilu but since we already have a ~/.perl6/ directory, it's not absurd to use a ~/.perl6/history file.
13:03 moritz correct
13:07 araujo joined #perl6
13:12 isBEKaml joined #perl6
13:13 isBEKaml good evening, #perl6!
13:14 moritz \o isBEKaml
13:15 jnthn hi isBEKaml
13:16 isBEKaml hello, jnthn, moritz
13:17 jaldhar joined #perl6
13:17 FROGGS hint: to add a deadlock to rakudo just use perl 5's ternary syntax
13:17 isBEKaml Wait, I'm doing this month's release? (I totally never got how my name came up :)
13:19 jnthn r: my $a = 1 ? 2 : 3;
13:19 p6eval rakudo efac0f: OUTPUT«[31m===[0mSORRY![31m===[0m�Unsupported use of ?: for the conditional operator; in Perl 6 please use ??!!�at /tmp/ud0vQFsD8h:1�------> [32mmy $a = 1 ?[33m�[31m 2 : 3;[0m�»
13:19 FROGGS jnthn: I added it in the internals...
13:19 isBEKaml r: my $a = 1 ?? 2 !! 3; #lemme see...
13:19 p6eval rakudo efac0f:  ( no output )
13:19 FROGGS stage parse got stuck
13:20 isBEKaml r: my $a = 1 ?? 2 !! 3; say $a; #lemme see...
13:20 p6eval rakudo efac0f: OUTPUT«2␤»
13:20 isBEKaml ...
13:21 jnthn FROGGS: Where exactly?
13:21 FROGGS in Match.pm method ACCEPTS
13:21 FROGGS Match.ACCEPTS( $thing ) is the same like $think ~~ Match, right?
13:21 cognominal joined #perl6
13:22 FROGGS or is there a difference between $think ~~ Match and Match ~~ $thing?
13:22 jnthn It's not symetric
13:23 jnthn But if you want to write a type check in the setting then the optimal way is nqp::istype($thing, Match)
13:23 masak isBEKaml: http://irclog.perlgeek.de/perl6/2012-11-11#i_6143331
13:23 isBEKaml Anyway, since I'll be doing a release in a couple of hours now, will it be okay if I do it through a series of pull requests with a final upload to rakudo.org?
13:23 FROGGS I want to change the return value of that operation
13:23 masak isBEKaml: that's how it happened. you obviously didn't expect us to survive this far :P
13:24 masak isBEKaml: it's only Wednesday. you have until tomorrow ;)
13:24 FROGGS r: say "abc" ~~ s[x] = "y"
13:24 p6eval rakudo efac0f: OUTPUT«Cannot assign to a non-container␤  in sub infix:<=> at src/gen/CORE.setting:12250␤  in block  at /tmp/BlU1VY0wtQ:1␤␤»
13:24 FROGGS ohh
13:24 isBEKaml (I'm currently going through the release guide now)
13:24 FROGGS r: my $s = "abc"; say $s ~~ s[x] = "y"
13:24 p6eval rakudo efac0f: OUTPUT«True␤»
13:24 isBEKaml r: say 42 # up, are you?
13:24 p6eval rakudo efac0f: OUTPUT«42␤»
13:24 masak isBEKaml: but yes, the release process should be doable on a clone of the rakudo/rakudo repository.
13:24 FROGGS should be false, thats what I'm trying to do
13:25 masak isBEKaml: though note that the perl6/nqp repository is involved, too.
13:26 FROGGS I think I add some print()s so I get a clue what happens
13:28 isBEKaml man, my network strength is weak... :/
13:28 moritz if you don't have commit access to perl6/nqp, I can fix that for you
13:29 moritz just shout :-)
13:29 isBEKaml moritz: aye, nqp bits please! :)
13:30 moritz isBEKaml: what's your github ID?
13:30 isBEKaml moritz: svatsan
13:30 FROGGS .oO( the moment you recognize you read to much crap... I read "bitch please" )
13:30 isBEKaml FROGGS: yeah, blame p6eval. :-)
13:30 moritz isBEKaml: done
13:31 isBEKaml masak: Well, I must have raised my hand in a moment of weakness. (I know... )
13:31 isBEKaml moritz: thank you.
13:33 masak isBEKaml: a weakness for which we will profusely thank you tomorrow.
13:33 isBEKaml masak: but no matter, I'm doing it anyway. I'm just as happy to be able to contribute something.
13:33 masak does anyone here know what "triangulating" means in the context of TDD?
13:34 FROGGS masak: I can just image that you have to triangulate the problem if the tests are too vague
13:34 dayangkun joined #perl6
13:35 masak does anyone here *know*...?
13:36 FROGGS ;o)
13:36 bowtie hi, all, I like the new colours in error messages, some info for you - data blocks in S26 don't seam to be supported in 2012-12 even though http://perl6.org/compilers/features suggest that it should now work, can you please get feature web site updated, and thanks, perl 6 is cool :)
13:36 isBEKaml masak: according to http://codemanship.co.uk/parlezuml/blog/?postid=987, triangulate apparently means running a series of tests to arrive a general solution to a problem.
13:37 cognominal joined #perl6
13:38 FROGGS bowtie: it might help if you would make an RT ticket with a short example code and the expected behaviour
13:38 FROGGS bowtie: that note here might get lost
13:38 isBEKaml masak: it's only 16th today, eh... Here's the catch, I may be offline tomorrow or worse, without a network until saturday. :|
13:38 bowtie FROGGS, will do if you kick me in correct direction of where to do the 'rt'
13:39 masak isBEKaml: re triangulate -- thanks. I searched and didn't find anything.
13:40 masak isBEKaml: may I offer to switch release dates with you?
13:40 masak isBEKaml: I can do tomorrow, if you do March.
13:40 arnsholt tadzik: You around?
13:40 tadzik arnsholt: yeah, sort of
13:40 isBEKaml masak: March eh? no no.. I totally want to pull a joke on the Mayans!
13:41 arnsholt Regarding bowtie's issue. You happen to know where data blocks are supposed to be at ATM?
13:41 tadzik bowtie? blocks?
13:41 arnsholt Being the POD-master and all =)
13:41 tadzik oh
13:41 tadzik data blocks, right
13:41 bowtie tadzik, where do I create the 'rt'
13:42 masak isBEKaml: you can still pull the joke in March if you want. I was just thinking of getting the right release date on the release.
13:42 tadzik email rakudobug@perl.org
13:42 arnsholt RT is rt.perl.org
13:42 tadzik yeah, data blocks are NYI
13:42 arnsholt (The Perl bugtracker)
13:42 tadzik probably lhf though
13:42 arnsholt Right, so it's sort of a bug in the feature matrix as well
13:42 FROGGS bowtie: here is that mail posted too, and some explanation: http://rakudo.org/tickets/
13:43 bowtie FROGGS, will do
13:43 arnsholt bowtie: Right, so that bit of POD isn't implemented yet (NYI == not yet implemented), and the feature matrix isn't entirely correct it would seem
13:43 isBEKaml masak: If I do a release tomorrow 0530 hrs IST, it'll be just past midnight UTC. :-)
13:43 masak oh, ok.
13:44 masak isBEKaml: on your head be it.
13:44 masak my offer for switching release dates still stands if you don't want to be awake that early :)
13:44 isBEKaml masak: So, if I do it, the date is still in. (On my own head) :P
13:44 isBEKaml masak: I travel tomorrow, so I guess I'll be awake. :)
13:46 masak ok.
13:46 arnsholt isBEKaml: Where in India are you, if I may ask?
13:46 isBEKaml arnsholt: Mumbai.
13:46 masak let me/us know if you need any kind of help with the release process.
13:46 arnsholt Oh, cool! I was there just before christmas
13:47 isBEKaml arnsholt: Ah, awesome. I didn't know you were here then. (I usually follow along IRC logs) Your visit was good/fruitful, I guess? (No troubles?)
13:48 arnsholt It was pretty good
13:48 isBEKaml masak: sure, I'll ask here if I need anything.
13:48 arnsholt I was at a conference at IIT-B, which was excellent (my first major conference), and then a five days in Goa for relaxation and a couple days in SoBo before going back home
13:49 isBEKaml [Release Prepping] Please update changelogs, issues or anything that goes along into this release. I'm planning to do a release around Midnight UTC.
13:49 arnsholt The traffic was insane (obviously =), but everything went smoothly for the most part
13:49 isBEKaml arnsholt: Ah... Goa's always good for relaxation.
13:49 arnsholt A couple hiccups at the conference excursion
13:49 masak isBEKaml++
13:50 rindolf joined #perl6
13:50 arnsholt Yeah, after two months of travelling almost every weekend, sun, sand and relaxation was wonderful =)
13:50 isBEKaml arnsholt: traffic snarls, it's pretty much expected anywhere in India.
13:50 arnsholt Yeah, I've been in Chennai once before and it was sort of similar
13:50 arnsholt But Mumbai is just so much bigger =)
13:51 isBEKaml (except maybe, in the rural/remote pockets but you go without water! :)
13:51 isBEKaml arnsholt: Chennai too? awesome.
13:51 arnsholt Yeah, my girlfriend did fieldwork for her master's thesis in Tamil Nadu, around Kanchipuram
13:52 arnsholt (She does religious history)
13:56 bowtie 'rt' - 116419Perl6 features out of date
13:58 bowtie arnsholt, the issue is that the feature list implies it works, not that it dose not
13:58 arnsholt Yeah, that's true
13:58 arnsholt Is there someone who's curator of the feature matrix?
13:59 tadzik everyone is
13:59 tadzik it's on github/perl6/features or so
13:59 arnsholt Right
14:02 jnthn bowtie: Where does the feature list say data blocks work, ooc?
14:03 jnthn Oh, unless it's counted as part of Pod...
14:03 arnsholt It's specced together with POD at least
14:05 bowtie data blocks are in S26 which is the reference next to Pod in features, it's just an observation
14:06 jnthn *nod*
14:08 bbkr_ r: say 1.0000000000000000000000000000001 + 1
14:08 p6eval rakudo efac0f: OUTPUT«2␤»
14:08 bbkr_ rn: say 1.0000000000000000000000000000001 + 1
14:08 p6eval rakudo efac0f, niecza v24-17-gd343a2a: OUTPUT«2␤»
14:09 renormalist joined #perl6
14:10 PacoAir joined #perl6
14:11 bbkr_ r: 1.0000000000000000000000000000001 + 1.0
14:11 p6eval rakudo efac0f:  ( no output )
14:11 bbkr_ r: say 1.0000000000000000000000000000001 + 1.0
14:11 p6eval rakudo efac0f: OUTPUT«2␤»
14:11 bbkr_ weird...
14:11 bbkr_ r: say 1.0000000000000000000000000000001
14:11 p6eval rakudo efac0f: OUTPUT«1.000000000000000000000000000000100␤»
14:12 bbkr_ those trailing 0s looks like a bug
14:12 SmokeMac_ joined #perl6
14:12 bluescreen10 joined #perl6
14:13 PacoAir_ joined #perl6
14:18 moritz r: say ( 1.0000000000000000000000000000001 + 1.0 ).WHAT
14:18 p6eval rakudo efac0f: OUTPUT«Num()␤»
14:18 moritz you are witness to Rat overflowing, and auto-casting to Num
14:19 masak it's either that or using up more processor/memory trying to juggle all the precision.
14:20 masak the BigRat rabbit hole runs pretty deep :)
14:20 masak er, FatRat
14:20 thou joined #perl6
14:23 FROGGS joined #perl6
14:25 bbkr_ what about trailing 0s in example above? bug?
14:25 [Coke] wr: say 1.0000000000000000000000000000001.WHAT
14:25 [Coke] r: say 1.0000000000000000000000000000001.WHAT
14:25 p6eval rakudo efac0f: OUTPUT«Rat()␤»
14:25 jnthn Gee, I'm rocketing thorugh getting nqp-mo compiling. That's bad 'cus it means I'm less than a day of work from the point where my blocker becomes porting the bounded serialization stuff...
14:25 jnthn ;)
14:26 [Coke] r: say 1.0000000000000000000000000000001.denominator
14:26 p6eval rakudo efac0f: OUTPUT«10000000000000000000000000000000␤»
14:26 jnthn r: say 1.0000000000000000000000000000001e1
14:26 p6eval rakudo efac0f: OUTPUT«10␤»
14:26 moritz bbkr_: if the spec says trailing zeros aren't allowed, then it's a bug
14:27 xinming_ joined #perl6
14:29 bbkr_ moritz: spec does not forbid trailing zeros. it's "common sense" type of issue.
14:33 masak I don't really see what's wrong with trailing zeroes.
14:33 masak rn: say 1.0
14:33 p6eval rakudo efac0f, niecza v24-17-gd343a2a: OUTPUT«1␤»
14:33 masak rn: say 1e1
14:33 p6eval rakudo efac0f, niecza v24-17-gd343a2a: OUTPUT«10␤»
14:33 masak rn: say 1e0
14:33 p6eval rakudo efac0f, niecza v24-17-gd343a2a: OUTPUT«1␤»
14:34 masak rn: say sprintf '<%5.2f>', 3/2
14:34 p6eval rakudo efac0f, niecza v24-17-gd343a2a: OUTPUT«< 1.50>␤»
14:35 [Coke] r: eval eval eval eval eval eval eval eval eval eval eval "squirrel"
14:35 p6eval rakudo efac0f: OUTPUT«[31m===[0mSORRY![31m===[0mâ�¤Undeclared routine:â�¤    squirrel used at line 1â�¤â�¤Â»
14:36 bbkr_ masak: IMO number should be printed in simplest form possible. and it works that way up to 1.0000000000000000001 (no trailing zeros).
14:36 bbkr_ r: say 1.0000000000000000001
14:36 p6eval rakudo efac0f: OUTPUT«1.0000000000000000001␤»
14:36 masak I'll go so far as agree that it's a bit weird that those zeroes are there.
14:37 FROGGS npr: say 1.0000000000000000000000000000001
14:38 p6eval rakudo efac0f: OUTPUT«1.000000000000000000000000000000100␤»
14:38 p6eval ..pugs: OUTPUT«1.0000000000000000000000000000001␤»
14:38 p6eval ..niecza v24-17-gd343a2a: OUTPUT«1␤»
14:40 bbkr_ this may cause problems when using in some fixed-width environment (tables, protocols using stringified value, etc)
14:41 FROGGS well, might use sprintf for that
14:41 [Coke] if you're using a fixed width, i'd argue you shoudl be using sprintf.
14:42 FROGGS npr: print 1.0000000000000000000000000000001
14:42 p6eval pugs: OUTPUT«1.0000000000000000000000000000001»
14:42 p6eval ..niecza v24-17-gd343a2a: OUTPUT«1»
14:42 p6eval ..rakudo efac0f: OUTPUT«1.000000000000000000000000000000100»
14:43 cognominal joined #perl6
14:48 FROGGS[mobile] joined #perl6
14:50 masak note though that not even sprintf guarantees a maximum width if numbers are too large.
14:50 masak formats are better for that.
14:51 FROGGS I usually have a hash table for that, field name => regex
14:51 FROGGS (before doing formatting)
14:51 FROGGS so I dont write crap to systems like SAP
15:00 isBEKaml hmmm - I got connection reset when I git pull --rebase  on nqp. :-) (after a loooong time)
15:00 isBEKaml fatal: read error: Connection reset by peer
15:00 isBEKaml fatal: protocol error: bad pack header
15:00 cognominal joined #perl6
15:00 moritz isBEKaml: probably a network problem
15:00 moritz just retry
15:01 bitbybit joined #perl6
15:02 masak any suggestion on how to convert a number to int in nqp?
15:02 masak that is, I'm after the semantic effect of rounding it down towards the closest integer.
15:03 PerlJam isn't there an nqp::floor or something?
15:03 jnthn nqp::floor_n
15:03 PerlJam yeah, that.
15:07 [Coke] r: say 200000000*0.0001 # xkcd
15:07 p6eval rakudo efac0f: OUTPUT«20000␤»
15:07 masak yay. thank ye.
15:07 benabik [Coke]: Uhg, don't remind me.
15:09 masak hm, but if there's only floor but not round, I have to be careful with those negative numbers...
15:09 masak oh, the special cases. :)
15:10 FROGGS[mobile] joined #perl6
15:12 isBEKaml network issues. BBL (release in 9-10 hrs ish)
15:15 PerlJam masak: what does "round" mean anyway?  Which rounding semantics were you expecting?  :-)
15:16 benabik n <= x < n.5 rounds to n. n.5 < x <= n+1 rounds to n+1.  x == n.5 rounds non-deterministically to n or n+1.
15:17 SunilJoshi joined #perl6
15:19 PerlJam benabik: I just *knew* there was a reason we included a random number generator!
15:19 benabik Ooh, even better!  Rounds to n|n+1
15:20 benabik _Real_ non-determinism, not this psuedo-random stuff.
15:20 benabik Oh, maybe that should be n&n+1
15:24 masak PerlJam: oh, indeed. I need to do more work than I initially thought. and more tests.
15:25 stopbit joined #perl6
15:28 orafu joined #perl6
15:35 isBEKaml joined #perl6
15:36 arlinius joined #perl6
15:36 isBEKaml Was there a parrot release this month? I see from git commits that the last parrot release was a month ago, not this past week or anything more recent.
15:37 hash_table joined #perl6
15:37 benabik isBEKaml: dukeleto is going to release Parrot 5.0 fairly soon.
15:37 diakopter r: say("test" ~~ /{ BEGIN die } ** 0/)
15:37 p6eval rakudo efac0f: OUTPUT«===SORRY!===␤␤»
15:38 diakopter r: say("test" ~~ /{ die } ** 0/)
15:38 p6eval rakudo efac0f: OUTPUT«「」␤␤»
15:38 isBEKaml benabik: hmm, the question now is, should we hold? Rakudo's convention is a release about 3-4 days after Parrot's.
15:39 diakopter r: say("test" ~~ /{ macro die { }; die } ** 0/)
15:40 p6eval rakudo efac0f: OUTPUT«「」␤␤»
15:40 isBEKaml benabik: I see you've asked this question on #parrot. :-)
15:40 diakopter r: say("test" ~~ /{ macro die { }; BEGIN die } ** 0/)
15:40 p6eval rakudo efac0f: OUTPUT«「」␤␤»
15:41 benabik isBEKaml: From the docs: "The Parrot project makes releases on the third Tuesday of each month."  So the release is scheduled for the 18th.
15:41 masak benabik: no, the 18th is a Thursday.
15:41 benabik isBEKaml: I lurk here and in #parrot.  Less asking, more osmosis.
15:41 masak er, a Friday.
15:41 benabik masak: D'oh
15:41 jnthn The third Tuesday was yesterday.
15:41 benabik My calendar app was stuck on November for some reason.
15:42 benabik isBEKaml masak:  Apologies.
15:43 isBEKaml If parrot's not released yet, I don't think I can cut a release this month. (I'll be on road and out of network most of the next couple of weeks)
15:44 masak well, nqp is still on Parrot 4.10.
15:44 masak I don't immediately see a reason to upgrade to 5.0.
15:44 isBEKaml not even on 4.11?
15:44 masak (we generally don't upgrade to the latest Parrot unless there's a reason to, methinks)
15:44 masak isBEKaml: I just checked, and it's on 4.10.
15:45 masak Rakudo, however, is on a relatively new (post-release) NQP, so you'll still need to release NQP as usual.
15:47 isBEKaml masak: Okay - If there's no problem, I'll cut a release as usual.
15:49 masak no problem as far as I can see.
15:54 isBEKaml masak: okay
15:58 timotimo r: class A is NoSuchType { }
15:58 p6eval rakudo efac0f: OUTPUT«[31m===[0mSORRY![31m===[0m�Cannot call 'trait_mod:<is>'; none of these signatures match:�:(Mu:U $child, Mu:U $parent)�:(Attribute:D $attr, :rw(:$rw)!)�:(Attribute:D $attr, :readonly(:$readonly)!)�:(Attribute:D $attr, :box_target(:$box_target)!)�:(Routine:D $r, …
15:58 timotimo i get "null pmc access" locally :|
15:59 timotimo say, masak, do you think it's reasonable to look through the lexpad/world object for all objects that are similarly named (levensthein distance?)
15:59 jnthn Works locally for me...
16:00 * timotimo builds a newer rakudo
16:01 masak timotimo: I think it's reasonable, as long as we're talking error reporting. might give Perl 6 a reputation of almost unbelievably good error messages.
16:02 Su-Shee can I have just unbelievably good messages? ;) and no errors?
16:02 Su-Shee hello everyone.
16:02 masak Su-Shee! \o/
16:02 timotimo masak: yeah, i think in that case rakudo would terminate as the next step, so it would be reasonable to do some extra work i guess.
16:03 timotimo now to implement levensthein in nqp!
16:03 timotimo i've been misspelling it *again* :~
16:03 masak oh the irony.
16:10 MikeFair joined #perl6
16:17 timotimo can't seem to figure out how to get the length of a string in nqp :|
16:20 jnthn nqp: say(nqp::chars('beer'))
16:20 p6eval nqp: OUTPUT«4␤»
16:21 timotimo thanks. should have tried that, too :|
16:24 timotimo since i'm assuming nqp doesn't offer "is memo", how do i do %memo{$key} :exists in nqp?
16:24 timotimo alternatively, where do i have to look to find all subs in the nqp:: namespace?
16:25 timotimo is that nqp/src/ops/nqp.ops?
16:25 jnthn No, src/QAST/Operations.nqp
16:25 jnthn nqp::existskey(%memo, $key)
16:25 timotimo thanks :)
16:30 timotimo there seems to be no "min" or "max" functions, is that right?
16:30 dalek rakudo-js: 35340a6 | (Paweł Murias)++ | run (2 files):
16:30 dalek rakudo-js: fix return value of to_n, pass test 33
16:30 dalek rakudo-js: review: https://github.com/pmurias/rakudo-js/commit/35340a62b1
16:30 dalek rakudo-js: c3f9577 | (Paweł Murias)++ | runtime.js:
16:30 dalek rakudo-js: deserialize doubles
16:30 dalek rakudo-js: review: https://github.com/pmurias/rakudo-js/commit/c3f95773f8
16:30 dalek rakudo-js: 529e2af | (Paweł Murias)++ | runtime.js:
16:30 dalek rakudo-js: Implement nqp::existskey.
16:30 dalek rakudo-js: review: https://github.com/pmurias/rakudo-js/commit/529e2afd96
16:30 dalek rakudo-js: b73198e | (Paweł Murias)++ | / (2 files):
16:30 dalek rakudo-js: Update to current nqp, mention that in README.
16:30 dalek rakudo-js: review: https://github.com/pmurias/rakudo-js/commit/b73198ef56
16:31 jnthn timotimo: No, we don't have those
16:32 timotimo don't really need it for only three elements anyway :)
16:33 pmurias joined #perl6
16:33 pmurias jnthn: re spurt in t/helpers.nqp the only difference to spew is the :encoding?
16:34 jnthn nqp: spew()
16:34 p6eval nqp: OUTPUT«too few positional arguments: 0 passed, 1 (or more) expected␤current instr.: 'spew' pc 734 (src/stage2/gen/NQPCORE.setting.pir:331) (src/stage2/NQPCORE.setting:388)␤»
16:34 jnthn huh, didn't even realize we had that :)
16:34 jnthn no, spurt is the spec name for spew :)
16:34 * pmurias just noticed that
16:35 pmurias jnthn: so we should rename spew into spurt in nqp?
16:35 jnthn pmurias: yeah, but maybe leave it until after the release tomorrow.
16:38 pmurias ok
16:41 timotimo http://sprunge.us/BLdj - this is my first attempt, but i'm getting a parse error (couldn't parse blockoid; unable to find "}"). i'll be afk for ~30 minutes, but if someone could point out the (probably) obvious flaw, that would be nice :)
16:42 moritz r: http://sprunge.us/BLdj
16:42 p6eval rakudo efac0f: OUTPUT«[31m===[0mSORRY![31m===[0mâ�¤Two terms in a rowâ�¤at /tmp/mH49DSaAlo:1â�¤------> [32mhttp[33mâ��[31m://sprunge.us/BLdj[0mâ�¤    expecting any of:â�¤        argument listâ�¤        postfixâ�¤        infix or meta-infixâ�¤        infix stopperâ�¤        statement endâ�¤        sta…
16:42 moritz grml
16:42 timotimo wha, how did that happen?
16:42 moritz it tried to parse the URL
16:42 timotimo hah, ok
16:42 timotimo locally i get │elements() not implemented in class 'Parcel' on line 10
16:42 moritz automagic fetching only works for gist URLs, iirc
16:43 timotimo unlike for gist, i have a super handy global alias "SPR" that adds | sprunge to any command, which i find super helpful
16:43 timotimo it even copies the url into my clipboard for me
16:43 timotimo bbl now.
16:46 moritz timotimo: wait, that's NQP code, right?
16:46 moritz and you're running it with NQP?
16:46 moritz if yes, I don't see how you can end up with a Parcel
16:48 timotimo i was running it with nqp, but to paste that error, i ran it with rakudo instead (like you tried with evalbot)
16:49 timotimo rakudo seems to parse the code just fine without any worries about missing or unreachable "}"
16:51 jnthn Try && instead of and
16:51 moritz if you write it as nqp code, you have to run it with nqp
16:51 moritz for example nqp::elems returns a Parrot integer
16:51 moritz you can't simply use that in Rakudo
16:51 moritz (needs boxing)
16:52 jnthn r: say nqp::elems(nqp::list()).WHAT
16:52 p6eval rakudo efac0f: OUTPUT«Int()␤»
16:52 jnthn Since QAST it's actually a bit smarter.
16:52 jnthn Since QAST supports per-hll configurable boxing.
16:53 jnthn But that relies on you calling something that returns a native integer (which nqp::elems does)
16:53 moritz oh wow :-)
16:53 jnthn Unboxing still needs a lot of care though, to not hit the v-table call :)
17:10 timotimo yay, turning and into && brings me into run-time-error-land \o/
17:10 SamuraiJack joined #perl6
17:11 MayDaniel joined #perl6
17:13 timotimo totally works now. thanks!
17:16 timotimo but the result is wrong. strange.
17:16 timotimo now i think i've got a correct version. still need to prettify.
17:19 sjn joined #perl6
17:26 For-Odin joined #perl6
17:28 aindilis joined #perl6
17:31 timotimo can i have an optional parameter in nqp without using something like *%adverbs?
17:31 jnthn $foo? should work
17:31 moritz yes
17:31 timotimo cool :)
17:31 timotimo and then i can do if $foo.defined { ... }?
17:32 jnthn nqp::defined($foo)
17:32 ifim joined #perl6
17:43 dalek nqp/mop-cleanup: 56d2292 | jnthn++ | src/how/NQPClassHOW.pm:
17:43 dalek nqp/mop-cleanup: Remove outdated comment.
17:43 dalek nqp/mop-cleanup: review: https://github.com/perl6/nqp/commit/56d2292899
17:43 dalek nqp/mop-cleanup: 5826673 | jnthn++ | src/QAST/Operations.nqp:
17:43 dalek nqp/mop-cleanup: Provide nqp:: ops for low-level iterator usage.
17:43 dalek nqp/mop-cleanup:
17:43 dalek nqp/mop-cleanup: NQP will continue to support the $_.key/$_.value approach for hash
17:43 dalek nqp/mop-cleanup: iteration in normal code. However, off Parrot this will be provided
17:43 dalek nqp/mop-cleanup: through the NQPCORE.setting, and thus is not available to the MOP.
17:43 dalek nqp/mop-cleanup: Essentially, these ops are to saw a circularity that we got away with
17:43 dalek nqp/mop-cleanup: up until now, but isn't really sensible to burden other backends with.
17:43 dalek nqp/mop-cleanup: review: https://github.com/perl6/nqp/commit/5826673e43
17:43 dalek nqp/mop-cleanup: 1bcaac4 | jnthn++ | src/QAST/Operations.nqp:
17:43 dalek nqp/mop-cleanup: Add ops for get/set of a coderef's name.
17:43 dalek nqp/mop-cleanup: review: https://github.com/perl6/nqp/commit/1bcaac40f8
17:43 dalek nqp/mop-cleanup: 3b7e5a3 | jnthn++ | src/stage0/ (9 files):
17:43 dalek nqp/mop-cleanup: Update bootstrap.
17:43 dalek nqp/mop-cleanup: review: https://github.com/perl6/nqp/commit/3b7e5a3999
17:43 dalek nqp/mop-cleanup: ce967e9 | jnthn++ | src/how/ (5 files):
17:43 dalek nqp/mop-cleanup: A variety of circularity-sawing MOP updates.
17:43 dalek nqp/mop-cleanup: review: https://github.com/perl6/nqp/commit/ce967e9508
17:45 zby_home_ joined #perl6
17:48 dalek nqp-jvm-prep: c148d02 | jnthn++ | / (2 files):
17:48 dalek nqp-jvm-prep: Type check and method cache related ops.
17:48 dalek nqp-jvm-prep: review: https://github.com/jnthn/nqp-jvm-prep/commit/c148d0259d
17:48 dalek nqp-jvm-prep: fc4f7e4 | jnthn++ | lib/QAST/JASTCompiler.nqp:
17:48 dalek nqp-jvm-prep: Fix copy/paste fail.
17:48 dalek nqp-jvm-prep: review: https://github.com/jnthn/nqp-jvm-prep/commit/fc4f7e4b57
17:48 dalek nqp-jvm-prep: 08c659e | jnthn++ | / (3 files):
17:48 dalek nqp-jvm-prep: Implement and test setcodename/getcodename.
17:48 dalek nqp-jvm-prep: review: https://github.com/jnthn/nqp-jvm-prep/commit/08c659e100
17:56 timotimo my "bounded levenshtein" optimisation is totally exploding in my face :(
17:57 tadzik hello #perl6 \o/
17:58 * [Coke] wonders what time friday the contest is over?
17:59 [Coke] n: say /:ignoremark ü/ ~~ "u"
17:59 p6eval niecza v24-17-gd343a2a: OUTPUT«[31m===[0mSORRY![31m===[0mâ�¤â�¤Action method mod_internal:sym<:m> not yet implemented at /tmp/_Awmp2R1VH line 1:â�¤------> [32msay /:ignoremark[33mâ��[31m ü/ ~~ "u"[0mâ�¤â�¤Unhandled exception: Check failedâ�¤â�¤  at /home/p6eval/niecza/boot/lib/CORE.setting line…
17:59 [Coke] jnthn: how big a lift is :ignoremark for rakudo?
17:59 moritz depends on how easy it is to get an NFD representation of the string
18:00 moritz then you can compile 'ü' to u\p{Mark}*   # in p5 terminolog
18:05 SamuraiJack joined #perl6
18:09 TimToady [Coke]: um, your ~~ is backwards
18:10 TimToady not that it would suddenly cause :m to be implemented the other way around...
18:12 kaare_ joined #perl6
18:18 japhb_ joined #perl6
18:21 spider-mario joined #perl6
18:21 [Coke] TimToady: whoops, aye.
18:23 kthakore lol ... TimToady  how can ~~ be backwards?
18:24 PerlJam [Coke]: R is your meta-friend :)
18:26 jnthn [Coke]: Not too easy, I suspect
18:31 TimToady kthakore: ~~ is not a symmetrical operator since about 10 years ago
18:31 TimToady unfortunately p5 copied the original symmetrical design after we'd already changed it...
18:33 PerlJam kthakore was just attempting literal humor mrthinks
18:33 PerlJam er, s/mrth/meth/
18:34 timotimo i hopeit won't be too hard to get a sensible list of candidates for the is trait operator
18:35 jnthn r: say &trait_mod:<is>.candidates
18:35 p6eval rakudo efac0f: OUTPUT«sub trait_mod:<is>(Mu:U $child, Mu:U $parent) { ... } sub trait_mod:<is>(Mu:U $type, :rw(:$rw)!) { ... } sub trait_mod:<is>(Mu:U $type, :nativesize(:$nativesize)!) { ... } sub trait_mod:<is>(Mu:U $type, :hidden(:$hidden)!) { ... } sub trait_mod:<is>(Attribute:D $at…
18:35 timotimo now get the list of all classes that one could derive from:)
18:36 jnthn Well, that's less simple... :P
18:36 timotimo hehe
18:37 timotimo it is required to improve the misspelt class error message
18:37 timotimo leaving the tram bbl
18:38 b1rkh0ff joined #perl6
18:55 FROGGS joined #perl6
18:58 dalek nqp-jvm-prep: 5e9c7c3 | jnthn++ | lib/QAST/JASTCompiler.nqp:
18:58 dalek nqp-jvm-prep: Implement defor (just desugar it for now).
18:58 dalek nqp-jvm-prep: review: https://github.com/jnthn/nqp-jvm-prep/commit/5e9c7c37d2
18:58 dalek nqp-jvm-prep: 334179b | jnthn++ | / (2 files):
18:58 dalek nqp-jvm-prep: Cheating nqp::where.
18:58 dalek nqp-jvm-prep:
18:58 dalek nqp-jvm-prep: But good enough for what we'll need it for, for a while. :-)
18:58 dalek nqp-jvm-prep: review: https://github.com/jnthn/nqp-jvm-prep/commit/334179baee
18:58 dalek nqp-jvm-prep: 18812aa | jnthn++ | lib/QAST/JASTCompiler.nqp:
18:58 dalek nqp-jvm-prep: Fix non-void while code-gen bug.
18:58 dalek nqp-jvm-prep: review: https://github.com/jnthn/nqp-jvm-prep/commit/18812aa89c
19:01 sahadev joined #perl6
19:02 jnthn Turns out the 1450 or so lines of nqp-mo.pm that we can now cross-compile boil down to about 88KB of JVM bytecode. :)
19:03 tadzik that's a big deal :)
19:03 arnsholt Cool. How much Parrot bytecode does it compile to? =)
19:03 jnthn It's not really fair to compare yet, because I haven't got all of the serialization stuff in place.
19:03 jnthn The PBC file comes out to 300 KB
19:04 arnsholt Right
19:04 jnthn And the serialization blob itself is about 14KB.
19:04 jnthn But there's some fixup code to come.
19:04 jnthn Should still end up about half the size.
19:04 wk joined #perl6
19:04 arnsholt Nice!
19:05 jnthn Which ain't bad considering I know some of the code-gen is decidedly improvable. :)
19:05 arnsholt Even better =)
19:05 nwc10 hangon. nqp-mo.pm is only 1572 lines here
19:06 jnthn nwc10: Yeah, I'm ~100 off
19:06 jnthn nwc10: About 30 are lines we really need :)
19:06 jnthn And the others are Parrot-specific (the vtable mapping stuff)
19:06 nwc10 and then what - drink beer?
19:07 jnthn I'm afraid that there's about 2 or 3 uncommentable lines worth of easy win left.
19:07 jnthn And that's one of the LHF tasks.
19:07 jnthn The rest involves porting a good chunk of the bounded serialization.
19:07 nwc10 so drink gin?
19:07 nwc10 or does it really need meths?
19:08 jnthn Well, it also needs me to get a good night's sleep so I can think clearly, which has been hard to come by this week. :(
19:08 telex joined #perl6
19:09 jnthn Time for some dinner here, bbl
19:14 arnsholt Porting bounded serialization sounds less low-hanging, yeah
19:39 japhb_ joined #perl6
19:40 snearch joined #perl6
19:42 cognominal joined #perl6
20:21 * [Coke] yawns.
20:23 benabik joined #perl6
20:26 cognominal joined #perl6
20:29 dalek perl6-roast-data: 9981643 | coke++ | / (3 files):
20:29 dalek perl6-roast-data: today (automated commit)
20:29 dalek perl6-roast-data: review: https://github.com/coke/perl6-roast-data/commit/998164324c
20:30 [Coke] sorear: S04-declarations/my.niecza aborted 75 test(s)
20:31 [Coke] I'll see if i can track that down after $dayjob
20:41 Targen joined #perl6
20:46 cognominal joined #perl6
20:53 arlinius joined #perl6
20:55 bluescreen10 joined #perl6
21:07 isBEKaml joined #perl6
21:07 isBEKaml hi
21:09 Ulti isBEKaml hi
21:13 isBEKaml hello, Ulti
21:14 cognominal joined #perl6
21:15 isBEKaml jnthn, moritz: If you're around, do we need to bump PARROT_REVISION in nqp?
21:18 * masak would guess "no", but is happy to wait for someone else to confirm this
21:19 isBEKaml hello, masak... We still have to think up a name for this release. :-) We have Sonoma.pm available (japhb++'s home base) Any objections to using it?
21:21 masak sounds good to me.
21:22 thou joined #perl6
21:22 isBEKaml I'll wait for others to chime in too. We still have about 2.5 hrs to cutting a release. :-)
21:22 timotimo is there a nicer way to get user input in nqp than my $stdin    := pir::getinterp__P().stdin_handle();
21:25 jnthn timotimo: probably not
21:25 jnthn isBEKaml: No, and if there hasn't been testing much on anything newer than what's in PARROT_REVISION, it's probably best not to
21:25 isBEKaml jnthn: Okay, I'll just bump the VERSION then.
21:38 pmurias jnthn: I have started stealing tests from nqp-jvm ;)
21:38 dalek rakudo-js: 8133272 | (Paweł Murias)++ | / (5 files):
21:38 dalek rakudo-js: steal and pass t/qast_literal.t
21:38 dalek rakudo-js: review: https://github.com/pmurias/rakudo-js/commit/8133272a63
21:39 spider-mario rust developers use the name “sigil” in their commit messages
21:39 spider-mario I find it interesting.
21:39 spider-mario (they’re actually applied to types, not variables)
21:40 spider-mario (well, they *can* be applied to variables but it’s not part of their names)
21:40 spider-mario (whereas it’s part of the type of the result of applying them to a value)
21:41 jnthn pmurias: nice :)
21:48 pmurias spider-mario: what do they do?
21:48 spider-mario they are used to make pointers
21:48 spider-mario but there are different types of pointers
21:48 spider-mario @, & and ~
21:48 spider-mario @int means “managed (or shared) pointer to int”
21:48 spider-mario & means borrowed pointer
21:48 spider-mario and ~ means unique pointer
21:49 masak I like that.
21:50 masak they are using the sigils for a distinction they want to make in a very "core" place of the syntax. that's exactly how to thing of sigils, IMO.
21:50 spider-mario appearently, the recommended term for unique pointer is rather “owned pointer”
21:50 isBEKaml damn, is make -jx a bad idea for nqp?
21:50 masak well, "owned" rhymes better with "borrowed" and "shared".
21:51 masak 'night, #perl6
21:51 masak isBEKaml: good luck with le release.
21:51 spider-mario good night
21:51 isBEKaml masak: night, masak. :)
21:51 jnthn 'night, masak
21:55 isBEKaml non-zero exit status in t/nqp/46-charspec.t. is that expected?
21:55 jnthn isBEKaml: yes, if you didn't build Parrot with ICU
21:56 isBEKaml jnthn: I don't have icu.
21:56 isBEKaml jnthn: so I'll ignore it.
22:20 rindolf jnthn: hi.
22:23 dalek nqp: f7c5f75 | isBEKaml++ | VERSION:
22:23 dalek nqp: Bump VERSION to 2013.01
22:23 dalek nqp: review: https://github.com/perl6/nqp/commit/f7c5f7589e
22:24 jnthn hi, rindolf
22:24 rindolf jnthn: what's up?
22:24 rindolf Hi all.
22:27 jnthn rindolf: Not much, just wondering why in 2013 getting printer drivers installed can take 30 minutes...to fail.
22:27 rindolf jnthn: sucks. :-(
22:27 rindolf jnthn: are you using Windows?
22:27 jnthn rindolf: On the desktop, yeah.
22:28 rindolf jnthn: ah, OK.
22:28 diakopter jnthn: usually if you hunt carefully there's a way to install just the drivers without all the accompanying software
22:29 jnthn diakopter: Yeah, the added fun is that it's a network printer...
22:29 jnthn Quite why I've ended up with a network printer *for home use*, I don't know. :)
22:30 jnthn On the upside, a bunch of boring admin work I've put off for months is now done...
22:39 leprevost joined #perl6
22:42 isBEKaml nqp release done. Where do I upload nqp tarball? It can't be github now, right?
22:45 timotimo hm. i wonder how to decide when to use levenshtein guessing for the "class A is NoSuchClass" case and when to give the regular candidate list for trait-mod "is"
22:45 timotimo maybe i should look for the place where that error message originates first
22:47 timotimo that reminds me that i have no idea how to figure stuff like that out :|
22:53 slavik1 joined #perl6
22:57 timotimo r: class A is NoSuchClass { }
22:57 p6eval rakudo efac0f: OUTPUT«[31m===[0mSORRY![31m===[0m�Cannot call 'trait_mod:<is>'; none of these signatures match:�:(Mu:U $child, Mu:U $parent)�:(Attribute:D $attr, :rw(:$rw)!)�:(Attribute:D $attr, :readonly(:$readonly)!)�:(Attribute:D $attr, :box_target(:$box_target)!)�:(Routine:D $r, …
22:58 timotimo oh, this is in c code >_<
23:05 jnthn timotimo: Earlier today I showed a possible extra trait_mod:<is> candidate to add to catch situations where things go wrong.
23:05 timotimo decommute&
23:05 jnthn timotimo: An alternative is to look in World where traits are applied
23:10 isBEKaml jnthn: I can't seem to run tools/contributors.pl. :(
23:10 isBEKaml I get this error: List form of pipe open not implemented at tools\contributors.pl line 16.
23:10 isBEKaml line 15 actually.
23:18 isBEKaml 2013.01 rakudo release draft: https://gist.github.com/4551934
23:18 isBEKaml Please proof read and let me know if anything's amiss.
23:22 jnthn The next release of Rakudo (#60), assuming the world doesn't end today, is
23:22 jnthn scheduled for February 21, 2013.
23:22 jnthn ...I think the reference to the end of the world doesn't need to be in this month's release ;)
23:23 isBEKaml jnthn: it's down below. ;)
23:24 jnthn isBEKaml: There's...another doomsday conspiracy? ;)
23:25 isBEKaml jnthn: Mayans never tire themselves out. :P
23:25 lue more critically: line 4: January 2013 release of Rakudo Perl #60 "Sonoma"
23:25 lue line 53: The next release of Rakudo (#60),
23:26 jnthn ay, good catch
23:26 jnthn lue++
23:27 isBEKaml lue++
23:27 isBEKaml jnthn++
23:27 lue Also a bit of an accuracy thing, the Mayans never predicted diddly-squat (it's the modern-day nutjobs we're laughing at)
23:28 isBEKaml updated gist
23:30 ponbiki .win 23
23:32 jnthn sleep &
23:32 isBEKaml 'night, jnthn
23:36 isBEKaml lue: Right, I have updated my gist to say "conspiracy theorists" :)
23:37 lue :)
23:39 benabik joined #perl6
23:41 hash_table joined #perl6
23:44 geekosaur what, the nutjobs haven't come up with a new prediction yet?
23:47 TimToady are you predicting that?
23:52 timotimo oh, jnthn went to bed :|
23:53 timotimo http://irclog.perlgeek.de/perl6/2013-01-16#i_6340095 - and following. so would this implementation, with a multi trait_mod:<is>(Mu:U $type, *%fail) be the best way? or should i try the levenshtein distance calculation instead?

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

Perl 6 | Reference Documentation | Rakudo