Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2009-06-26

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:38 lichtkind is anybody here who have the mercy to check my next p6 blogpost?
00:38 lichtkind s/is/has/
00:38 lichtkind grrr
00:38 lichtkind its late here
00:40 ingy hi
00:40 phenny ingy: 24 Jun 21:12Z <masak> tell ingy looking forward to pairing up and working on that YAML port.
00:40 lichtkind ingy: hi good to see you again since so long :)
00:41 ingy phenny: tell masak I wanted help on a TestML port. First anyway.
00:41 phenny ingy: I'll pass that on when masak is around.
00:41 ingy hi lichtkind
00:41 ingy lichtkind: you know how to best install rakudo on a mac?
00:41 lichtkind ingy: im still taking care of perl6::Doc
00:41 [bjoern] left #perl6
00:42 ingy ok, where's the install doc? :)
00:42 lichtkind ingy: nope sir never did such madness and never had a mac
00:42 lichtkind not yet :)
00:42 last ingy: you can normally just get Rakudo from git and build it following the instructions there.
00:43 buubot joined #perl6
00:43 ingy last: ok, I'm starting to remember now :)
00:43 lichtkind ingy: yes its pretty detailed, win folcs can be lazy since there are precompiled binaries
00:44 last ingy: Last I checked (this morning, I think) it failed "make test", but I got it working today by updating the parrot it gets by hand and then finishing the build like now.
00:44 ingy I seem to have a git clone of rakudo....
00:44 ingy last: patch?
00:44 ingy oh I see
00:44 wayland76 joined #perl6
00:45 last ingy: I just cd'ed to the parrot directory and did "svn update" and "make"
00:45 ingy ok
00:46 ingy :)
00:46 ingy trying now.
00:46 ingy last: this wasn't on a mac, was it?
00:46 wayland76 lichtkind: I can have mercy on you and check your blog post, but I should warn that I'm no big Perl 6 expert :)
00:47 last ingy: it was on a mac
00:48 ingy yay!
00:48 last ingy: I can walk you through it if need be.
00:48 ingy while this is building... what's the best way to learn perl6? :)
00:48 ingy I want to port some stuff from p5
00:49 lichtkind wayland76: thank you , you don't have to
00:49 ingy hopefully moritz_ json parser works
00:49 lichtkind wayland76: didn't see my provate msg?
00:49 lichtkind ingy: still in json buisness? .)
00:49 ingy ?
00:50 wayland76 lichtkind: Yes, I saw it, but my response time is sometimes a bit delayed due to doing other things
00:50 last ingy:  I've just been playing with Perl 6, writing scripts in my spare time, checking the specs a lot, following people's blogs, and asking questions here when needed.
00:50 ingy I have a grammar encoded in json that I need to load into p6
00:50 lichtkind ingy: dont listen im sleepy and speaking nonesense, its almost 3am here
00:50 ingy :)
00:51 lichtkind :)
00:51 ingy lichtkind: where is here?
00:51 lichtkind ingy: center germany
00:51 ingy nod
00:51 lichtkind :)
00:51 ingy GMT+1?
00:51 lichtkind true
00:52 ingy config worked. running make now.
00:57 ingy make worked. now make test.
00:57 ingy All tests successful.
00:57 last :)
00:57 ingy I thought rakudo had more than 236 tests. :P
00:59 last It does -- definitely more than a thousand tests now.
00:59 last "make test" doesn't do them all (obviously).
01:00 ingy > ./perl6 Configure.pl
01:00 ingy Can't find ./strict in @*INC
01:00 ingy in Main (src/gen_setting.pm:445)
01:00 lambdabot <no location info>: parse error on input `./'
01:00 ingy ;)
01:04 buu INGY
01:08 ingy hi buu
01:13 ingy where do perl6 modules live?
01:15 lichtkind ingy: a recent debate tries to decide that
01:17 ingy lichtkind: are there any core modules?
01:17 lichtkind ingy: i dont know of any, the only 2 module i know of have their own githup repo
01:18 ingy lichtkind: which ones?
01:19 ingy I just cloned moritz/json
01:19 lichtkind ingy: web.pm and HTML::Template
01:20 wayland76 Wow!  Can you clone jnthn and pmichaud too?  We could get Perl 6 done really quickly :)
01:20 ingy git clone git://github.com/moritz/json.git # :P
01:20 jaldhar joined #perl6
01:21 wayland76 ingy: Perl 6 is trying to have no core modules except what appears in the spec.  There are a few of these, and some of them appear in Rakudo
01:21 ingy makes sense
01:22 wayland76 sub where-do-modules-live { return Undefined; }
01:23 ingy I see a Safe.pm
01:26 ingy I see stuff in src/setting
01:26 ingy but perl6 only has './' in @*INC
01:26 ingy I need masak!
01:27 wayland76 Or moritz_ :)
01:27 wayland76 Or pmichaud or jnthn or someone
01:27 ingy moritz_: help!
01:27 ingy TimToady might know some stuff :)
01:27 ingy he should be here at yapc
01:29 ingy is there a PERL6LIB variable support?
01:30 lichtkind ingy: he is at YAPC
01:30 ingy one could argue that @*INC should only honor that...
01:30 ingy TimToady: you here at YAPC??
01:30 ingy show thyself
01:31 wayland76 @seen TimToady
01:31 lambdabot TimToady is in #perl6. I last heard TimToady speak 3h 25m 9s ago.
01:32 ingy oh wow
01:32 * TimToady stirs from his grave
01:32 ingy > PERL6LIB='.:fooooo' perl6 -e 'say @*INC.perl'
01:32 ingy [".", "fooooo", "."]
01:32 lambdabot <no location info>: parse error on input `='
01:33 ingy that's all I need :)
01:33 TimToady I don't know much of anything about rakudo
01:33 ingy I'll even put PERL6LIB 'make install' support into my modules
01:34 * ingy is in da Perl6 haus, yo
01:35 ingy TimToady: what do you think of the idea that perl6 only gets @*INC from PERL6LIB? :)
01:36 ingy it's very purist :)
01:38 TimToady I think @*INC should only represent the user's private dirs, not the library's dirs
01:39 TimToady the official library should act more like a database query
01:42 wayland76 Hmm.  What if there were one base path for the global libraries, and one for the individual user, and Perl6 does it's query stuff relative to that base path?
01:43 TimToady there should be a placeholder for the official libarary, I suppose
01:47 wayland76 TimToady: I guess I'm also wondering if the user path should be queryable in a database-like fashion too :)
01:57 TimToady I have also wondered that, but we can burn that bridge when we get to it
01:57 cotto joined #perl6
01:59 wayland76 Ok, just pre-emptively taking prisoners or something :)
02:00 molaf_xx joined #perl6
02:02 agentzh joined #perl6
02:12 sjohnson TimToady: words to live by ;P
02:13 alester joined #perl6
02:16 xinming_ joined #perl6
02:21 azawawi joined #perl6
02:22 azawawi good morning # +2gmt zone
02:22 xinming__ joined #perl6
02:26 sjohnson hi
02:35 xinming joined #perl6
02:43 xinming_ joined #perl6
02:46 pugs_svn r27244 | azawawi++ | [S:H:P6] A bit of class/methods/subs scoping.
02:51 pugs_svn r27245 | azawawi++ | [S:H:P6] A variable is now detected.
02:53 pugs_svn r27246 | azawawi++ | [S:H:P6] viv.pl -> emit_tokens_viv.pl
02:53 pmichaud rakudo: say "\c[NEGATED DOUBLE VERTICAL BAR DOUBLE RIGHT TURNSTILE]";
02:53 p6eval rakudo 6c43f9: OUTPUT«⊯␤»
03:08 amoc joined #perl6
03:13 wayland76 Can someone give me some git advice?  I'd like to get a diff of all the changes made to the "ins" branch of Rakudo
03:14 wayland76 I'm suspecting that rather than doing it through github, I might need to check it out and then do the diff.  If that's so, I need to know how to check out the branch instead of the HEAD
03:15 pugs_svn r27247 | azawawi++ | [S:H:P6] cleanup...
03:15 azawawi wayland76: hi! and sorry; im not a git user...
03:16 azawawi wayland76: what are you working on these days?
03:20 meppuru joined #perl6
03:21 wayland76 Well, at the moment, I'm still working on improving the Rakudo RPM.  Some parts work, and some parts don't
03:21 wayland76 It seems (both in Parrot and Rakudo) that some work is finally being put into making the install process work.
03:22 justatheory joined #perl6
03:30 azawawi wayland76: nice
03:32 azawawi wayland76: this is what i have been working on for refactoring support and better syntax highlighting. http://gist.github.com/136289
03:33 frew joined #perl6
03:35 wayland76 That looks useful-ish :)
03:36 azawawi wayland76: sort of PPI for Perl 6
03:38 wayland76 I never really got the hang of most of the Perl 5 debugging stuff; I use print and Data::Dumper :)
03:38 wayland76 But I should change that :)
03:39 azawawi wayland76: me too :)
03:39 skids print STDERR "me 3"
03:41 wayland76 Ooh, STDERR.  Must be fancy :)
03:46 sjohnson i can finally see how useful p6's pick method is going to be
03:46 sjohnson im trying to write yet another Japanese quiz in p5
03:46 sjohnson and frothing at the mouth in excitement for p6
03:47 * sjohnson yells loudly from his parents basement
04:07 KyleHa joined #perl6
04:12 KyleHa The last test in S03-operators/misc.t looks wrong to me.  With that 'join' there, I'd expect the pipe to show up in the result.
04:14 KyleHa perl6: my @a=1,2,3,4; my @b=9,8,7,1; say (@a minmax @b).perl
04:15 p6eval pugs: OUTPUT«*** No such subroutine: "&infix:minmax"␤    at /tmp/n419zXarWG line 1, column 36-48␤»
04:15 p6eval ..rakudo 6c43f9: OUTPUT«Statement not terminated properly at line 2, near "minmax @b)"␤in Main (src/gen_setting.pm:3225)␤»
04:15 p6eval ..elf 27247: OUTPUT«Undefined subroutine &GLOBAL::infix_minmax called at (eval 124) line 5.␤ at ./elf_h line 5881␤»
04:16 TimToady KyleHa: I agree, it looks bogus
04:18 pugs_svn r27248 | kyle++ | [t/spec] Fix a wrong test
04:20 KyleHa Should this work?:  my @a=1,2,3,4; my @b=9,8,7,1; say (@a minmax @b).perl
04:20 KyleHa Pm says in email that minmax is constrained to have two elements on either side, so it wouldn't.
04:21 TimToady we could, I suppose, change it to be an even number, and take it as min,max,min,max...
04:22 KyleHa I think I don't get what the operator does anyway.
04:23 KyleHa If it gave the min and max from some arbitrary list, that would make sense.
04:23 TimToady the point is to be able to do $a1 min $b1, $a2 max $b2 in parallel
04:25 xinming joined #perl6
04:33 frew joined #perl6
04:37 KyleHa So, if I were writing tests for it, it should accept "@a minmax @b" only if @a and @b have exactly two elements each?
04:38 KyleHa Or it takes "(1,2) minmax (1,2)".
04:40 TimToady it's list infix, so 1,2 minmax 1,2 works
04:41 KyleHa ...and it won't work between arrays of any size?
04:41 TimToady so far it's just intended for two values on each side, but as I already said above, we could generalize it a bit maybe
04:41 KyleHa Maybe I'm too tired to get this now.  It doesn't seem as if it ought to be as hard as I'm making it.
04:43 wayland76 TimToady says that, at the moment, it's only specified for lists of two elements, but that we could CHANGE THE SPEC to make it work for any array with an even number of elements
04:44 justatheory joined #perl6
04:49 jlmoko left #perl6
04:55 xinming_ joined #perl6
05:07 xinming__ joined #perl6
05:09 eternaleye PerlJam: About giving blood, maybe it was mmhg - your blood pressure. Millimeters mercury.
05:09 eternaleye THe metric equivalent(ish) of inches mercury
05:15 synth joined #perl6
05:16 xinming joined #perl6
05:17 azawawi joined #perl6
05:18 pugs_svn r27249 | azawawi++ | [S:H:P6] preserve old unit..
05:21 dalek grok: 8c143b6 | (Hinrik Örn Sigurðsson)++ | MANIFEST:
05:21 dalek grok: Fix the MANIFEST
05:21 dalek grok: * Add Module::Install::Share
05:21 dalek grok: * Remove a directory I accidentally added
05:21 dalek grok: review: http://github.com/hinrik/grok/commit/8c143b67733f716e3838676710652e9f0f8bdf87
05:21 xinming_ joined #perl6
05:22 dalek joined #perl6
05:26 pugs_svn r27250 | azawawi++ | [S:H:P6] Simplify :: in Scope to :
05:28 pugs_svn r27251 | lwall++ | [STD etc.] implement setting compilation to produce CORE.yml from CORE.pm
05:28 DemoFreak joined #perl6
05:29 Sexygirl joined #perl6
05:29 Sexygirl can anyone help me with a script?
05:29 Sexygirl i need to understand wheter it right or wrong its called everyauction?
05:32 TimToady std: 1
05:32 p6eval std 27249: OUTPUT«ok 00:02 37m␤»
05:32 Tene std: 2
05:32 p6eval std 27249: OUTPUT«ok 00:02 35m␤»
05:32 Tene std: 3
05:32 p6eval std 27249: OUTPUT«ok 00:02 35m␤»
05:32 Sexygirl # SUB: Send E-mail
05:32 Sexygirl # This is a real quick-and-dirty mailer that
05:32 Sexygirl # should work on any platform.  It is my first
05:32 Sexygirl # attempt to work with sockets, so if anyone
05:32 Sexygirl # has any suggestions, let me know!
05:32 Sexygirl #
05:32 Sexygirl # Takes:
05:32 Sexygirl # (To, Subject, From, Message)
05:32 Sexygirl sub sendemail {
05:32 Sexygirl my ($to,$from,$subject,$message) = @_;
05:32 Sexygirl my $trash;
05:32 Sexygirl if ($config{'mailhost'}) {
05:33 Tene Sexygirl: Please don't paste large amounts of content into the channel.
05:33 Sexygirl print $remote "RCPT To:<$to>\r\n";
05:33 Sexygirl $trash = <$remote>;
05:33 Sexygirl print $remote "QUIT\r\n";
05:33 Sexygirl }
05:33 Sexygirl else {
05:33 Sexygirl open MAIL, "|$config{'mailprog'}";
05:33 Sexygirl print MAIL "To: $to\r\nFrom: $from\r\nSubject: $subject\r\n\r\n$message\r\n\r\n";
05:33 Tene Ack!  Why won't it stop?!
05:33 Sexygirl close MAIL;
05:33 Sexygirl }
05:33 was kicked by Tene: Tene
05:35 TimToady obviously you are a mysogynist :)
05:35 TimToady std: 42
05:35 p6eval std 27249: OUTPUT«ok 00:02 35m␤»
05:35 Tene Obviously.
05:36 Sexygirl joined #perl6
05:38 TimToady std: 51
05:39 p6eval std 27249: OUTPUT«ok 00:02 35m␤»
05:39 Tene std: 19
05:39 TimToady hmm, maybe I broke it
05:39 p6eval std 27249: OUTPUT«ok 00:02 35m␤»
05:41 TimToady moritz_: if it doesn't update you might have to glare at it a bit.  could just be running out of time compiling the setting additionally, I suppose
05:42 Tene std: 1e17
05:42 p6eval std 27251: OUTPUT«ok 00:02 37m␤»
05:42 TimToady aha
05:42 TimToady moritz_: nm
05:42 TimToady now running with the new CORE.pm
05:42 TimToady (probably)
05:45 Tene std: 76
05:45 TimToady or rather, the new CORE.setting
05:46 p6eval std 27251: OUTPUT«ok 00:02 35m␤»
05:53 dalek grok: 753b231 | (Hinrik Örn Sigurðsson)++ |  (2 files):
05:53 dalek grok: Fix sharedir path
05:53 dalek grok: 'App-Grok' -> 'grok' since that's the name of this distribution
05:53 dalek grok: review: http://github.com/hinrik/grok/commit/753b231db4cdf195ae1091f5cdf8779652b968b9
05:53 dalek grok: 8ae3d00 | (Hinrik Örn Sigurðsson)++ |  (4 files):
05:53 dalek grok: Bump version to 0.05
05:53 dalek grok: review: http://github.com/hinrik/grok/commit/8ae3d007072b864069e2a0b39ff0ddd845db4b4c
06:00 literal hm
06:00 literal is dalek's source in the pugs repo?
06:01 xinming joined #perl6
06:02 pugs_svn r27252 | lwall++ | [STD] missing a filename indirection
06:02 TimToady std: class DEBUG::EXPR {}
06:02 p6eval std 27251: OUTPUT«Use of uninitialized value in string eq at STD.pm line 604.␤Argument "CORE.pad" isn't numeric in numeric ne (!=) at STD.pm line 617.␤##### PARSE FAILED #####␤Illegal redeclaration of package symbol EXPR (from CORE.pad line 25) at /tmp/owjngEIF41 line 1:␤------> [32mclass
06:02 p6eval ..DEBUG::EX…
06:07 xinming__ joined #perl6
06:22 xinming_ joined #perl6
06:23 pugs_svn r27253 | lwall++ | [CORE.pad] didn't update old pad's filenames to new structure
06:23 pugs_svn r27253 | lwall++ | [STD] undef warning suppression
06:24 TimToady std: class DEBUG::EXPR {}
06:24 p6eval std 27252: OUTPUT«Use of uninitialized value in string eq at STD.pm line 605.␤Argument "CORE.pad" isn't numeric in numeric ne (!=) at STD.pm line 618.␤Can't use string ("CORE.pad") as a HASH ref while "strict refs" in use at STD.pm line 619.␤FAILED 00:02 37m␤»
06:27 sparc joined #perl6
06:28 TimToady std: 1
06:28 p6eval std 27252: OUTPUT«ok 00:02 35m␤»
06:29 moritz_ std: DEBUG::EXPR {}
06:29 p6eval std 27253: OUTPUT«##### PARSE FAILED #####␤Unexpected block in infix position (two terms in a row, or previous statement missing semicolon?) at /tmp/AE5RLOQp9x line 1:␤------> [32mDEBUG::EXPR [31m{}[0m␤    expecting any of:␤    infix or meta-infix␤      infix stopper␤    standard stopper␤
06:29 p6eval ..terminator␤FAILED …
06:30 agentzh joined #perl6
06:31 TimToady std: class DEBUG::EXPR {}
06:31 p6eval std 27253: OUTPUT«##### PARSE FAILED #####␤Illegal redeclaration of package symbol EXPR (from CORE.pad line 26) at /tmp/lUToJTZFEc line 1:␤------> [32mclass DEBUG::EXPR[31m {}[0m␤FAILED 00:02 35m␤»
06:31 TimToady still not getting the yml file, hang on
06:32 pugs_svn r27254 | lwall++ | [STD/Makefile] copy CORE.yml into snap too
06:33 TimToady now it should report file as CORE.setting rather than CORE.pad
06:33 eternaleye phenny: tell moritz_ I have a patch to apply over your infix:<...> patch to add slurpy handling (RT #66826) - http://dpaste.com/59930/
06:33 phenny eternaleye: I'll pass that on when moritz_ is around.
06:34 TimToady std: 54
06:34 p6eval std 27253: OUTPUT«ok 00:02 35m␤»
06:34 moritz_ eternaleye: thanks
06:34 phenny moritz_: 06:33Z <eternaleye> tell moritz_ I have a patch to apply over your infix:<...> patch to add slurpy handling (RT #66826) - http://dpaste.com/59930/
06:35 eternaleye moritz_: No problem. infix:<...> is my favorite bit of Perl 6!
06:36 moritz_ eternaleye: could you please 'git pull --rebase' and generate the patch again?
06:36 TimToady all list infixes are going to have the same signature problem
06:36 eternaleye Ack, I knew I forgot something!
06:37 TimToady shouldn't be done with slurpies, but with captures, really
06:37 xinming joined #perl6
06:37 moritz_ eternaleye: the series patch is applied, but a bit modified, so your patch won't apply cleanly, and git-am is a bitch
06:37 TimToady std: 54
06:37 p6eval std 27253: OUTPUT«ok 00:02 35m␤»
06:37 moritz_ TimToady:
06:37 moritz_ mv lex snap.new
06:37 moritz_ mv: cannot stat `lex': No such file or directory
06:37 moritz_ make: *** [snap] Error 1
06:38 moritz_ from 'make snap'
06:38 eternaleye moritz_: Holy crap, pmichaud++ fixed it! e0a9d869
06:38 moritz_ maybe two concurrrent build processes?
06:39 TimToady how can it not have a lex when it depends on lex/STD/termish?
06:40 TimToady yeah, maybe
06:41 eternaleye TimToady: so multi sub infix:<...>( |$lhs, Code $generator ) {...} ?
06:42 TimToady something like that
06:43 nsh joined #perl6
06:44 TimToady std: 54
06:44 p6eval std 27254: OUTPUT«ok 00:02 35m␤»
06:44 TimToady std: class DEBUG::EXPR {}
06:44 p6eval std 27254: OUTPUT«##### PARSE FAILED #####␤Illegal redeclaration of package symbol EXPR (from CORE.setting line 376) at /tmp/BS4HLuAUgB line 1:␤------> [32mclass DEBUG::EXPR[31m {}[0m␤FAILED 00:02 35m␤»
06:44 TimToady yay
06:45 TimToady STD's setting is now a real Perl 6 program
06:45 TimToady well, at least the skeleton of one
06:45 TimToady eesh, 2:45 am
06:46 TimToady maybe I'm working my way back toward pacific time :)
06:46 TimToady it's only 23:45 at home
06:47 TimToady .zZ(...)
06:48 dalek grok: 8b83721 | (Hinrik Örn Sigurðsson)++ |  (3 files):
06:48 dalek grok: Add option to print the path to the target file
06:48 dalek grok: review: http://github.com/hinrik/grok/commit/8b83721c1ec584b78ae3954a13f74b487c0f9ab8
06:48 dalek grok: b8799f2 | (Hinrik Örn Sigurðsson)++ |  (2 files):
06:48 dalek grok: Bail out with an error message when target is unknown
06:48 dalek grok: review: http://github.com/hinrik/grok/commit/b8799f25e2a969404d16c9d22be50a9160b47b56
06:48 eternaleye moritz_: http://dpaste.com/59932/
06:48 eternaleye The trailing whitespace was still there, so I could almost leave the commit message unchanged ;D
06:49 eternaleye Oh wait, I forgot the blank line!
06:49 eternaleye (in the commit message)
06:49 eternaleye nevermind, I seem to be going senile a day before my 19th birthday.
06:50 last joined #perl6
06:53 Matt-W eternaleye: it happens to all of us eventually...
06:53 eMaX joined #perl6
06:57 finanalyst joined #perl6
06:59 moritz_ eternaleye: your patch makes rakudo die on t/spec/S03-operators/series.t
06:59 moritz_ ok 2 - gcd with infix:<...> (1)
06:59 moritz_ too many arguments passed (3) - 2 params expected
06:59 moritz_ in sub infix:... (t/spec/S03-operators/series.rakudo:20)
07:00 pugs_svn r27255 | azawawi++ | [S:H:P6] pointy blocks are now scoped..
07:00 iblechbot joined #perl6
07:01 azawawi joined #perl6
07:01 eternaleye Strange, one sec...
07:01 eternaleye waiting for Rakudo to build
07:02 viklund joined #perl6
07:02 azawawi TimToady: hi; is there any online slides and/or recording for your 'STD errors reporting' talk at YAPC?
07:02 eternaleye (I have my laptop clocked down to 800MHz since the heatsink barely works)
07:06 moritz_ afk
07:11 c1sung joined #perl6
07:15 ejs joined #perl6
07:22 dakkar joined #perl6
07:28 jlaire joined #perl6
07:31 rfordinal joined #perl6
07:38 Su-Shee joined #perl6
07:38 Su-Shee good morning.
07:39 moritz_ hi
07:40 eternaleye moritz_: moritz_ Oh geez. .params is an Array of Pair, not a Hash. Therefore, string keys don't work the way I thought
07:40 moritz_ rakudo: (-> $a, *@b { }).params.perl.say
07:40 p6eval rakudo 6c43f9: OUTPUT«Method 'params' not found for invocant of class 'Block'␤»
07:41 moritz_ rakudo: (-> $a, *@b { }).signature.params.perl.say
07:41 p6eval rakudo 6c43f9: OUTPUT«["name" => "\$a", "multi_invocant" => 1, "nom_type" => Object, "type" => Object, "cons_type" => undef, "named" => 0, "slurpy" => 1, "name" => "\@b", "multi_invocant" => 1, "nom_type" => Object, "type" => Object, "cons_type" => undef]␤»
07:41 moritz_ nom_type - that was jnthn, no? :-)
07:42 moritz_ looks like it actually should be a list of hashes
07:45 ejs joined #perl6
07:47 eternaleye So if it was a list of hashes, it would be'if &foo.signature.params.grep( { $_.<slurpy> !~~ undef } )'
07:50 azawawi moritz_: good morning; nearly there http://gist.github.com/136358 :)
07:53 moritz_ rakudo: (-> *$a { }).signature.params.perl.say
07:53 p6eval rakudo 6c43f9: OUTPUT«["named" => 0, "name" => "\$a", "multi_invocant" => 1, "nom_type" => Object, "type" => Object, "cons_type" => undef]␤»
07:54 moritz_ eternaleye: or $_.exists('slurpy') or so
07:54 eternaleye moritz_: That's nicer
07:54 moritz_ wait
07:54 moritz_ or $_.key eq 'slurpy'
07:54 last joined #perl6
07:54 moritz_ (or .key eq 'slurpy')
07:55 eternaleye Wouldn't that be $_.keys >>eq 'slurpy', for List of Hash?
07:55 eternaleye As opposed to List of Pair
07:57 eternaleye $_.key eq 'slurpy' works for what is there now, but if it's _supposed_ to be LoH, then implementing something based on how it is would require reactive fixes later
07:57 moritz_ eternaleye: I was just idly musing about LoH
07:58 moritz_ eternaleye: I don't think there's a documented API yet, so we'll just make it work with whatever is there now
07:58 eternaleye LoH would make much more sense - List indexed by position in the declaration, Hash keyed by property
07:58 moritz_ and don't care about possible future changes
07:58 moritz_ or maybe list of Parameter objct, if we define such a thing
08:00 eternaleye moritz_: building and testing now
08:06 zulon joined #perl6
08:06 zulon hello!
08:06 moritz_ hi
08:07 zulon I have one question about sigils:
08:07 zulon basically, sigils say "this objects does this role", right?
08:07 zulon so, would it be possible to declare new kinds of sigils, saying "this sigil defines this role"?
08:08 zulon and defining a "default" class for new variables using this sigils (just like $vars are Scalar by default)
08:08 moritz_ scalars are Object by default
08:08 zulon (and btw, I'd like to say that I find your work on Perl 6 and Rakudo and everything else just awesome)
08:08 moritz_ but yes, in principle that's possible
08:09 zulon how would this be done?
08:09 zulon by altering the current language?
08:09 moritz_ aye
08:09 zulon ok
08:09 moritz_ it's not implemented anywhere, so I can only speculate
08:10 moritz_ the easiest might be a macro
08:10 zulon a macro?
08:10 zulon they can be something else than a sub-like call?
08:11 azawawi std: class A is B { };
08:11 moritz_ yes, they can interpolate directly into the AST
08:11 p6eval std 27255: OUTPUT«ok 00:02 36m␤»
08:11 zulon (I don't feel I explain myself well, sorry)
08:11 azawawi std: class A is B{ };
08:11 p6eval std 27255: OUTPUT«ok 00:02 36m␤»
08:11 moritz_ or you could try to change the grammar in a more straight-forward way
08:12 eternaleye rakudo: say { $_ >= 3 ?? () !! $_ + 1 }.signature.params.perl
08:12 p6eval rakudo 6c43f9: OUTPUT«["optional" => 1, "name" => "\$_", "multi_invocant" => 1, "nom_type" => Object, "type" => Object, "cons_type" => undef]␤»
08:12 zulon moritz_: by altering the slang (~ twigil)?
08:13 zulon I don't really understand how this works
08:13 moritz_ augment slang Main { token sigil:sym<^> {  <sym> } }
08:13 eternaleye Hm, somthing's odd with my rakudo. It gives "Method 'perl' not found for invocant of class 'ResizablePMCArray'"
08:13 zulon hm
08:13 zulon this would declare a ^ sigil ?
08:13 moritz_ zulon: but I don't know yet how to get the semantics in
08:13 moritz_ yes
08:13 zulon ok
08:14 zulon thanks for the answers :)
08:14 azawawi moritz_: what category does 'self' go into in Perl 6?
08:14 azawawi moritz_: predefined special variable?
08:14 moritz_ azawawi: it's not a variable, I think...
08:15 moritz_ it might be a nullary sub call, like rand
08:15 * azawawi takes a look at STD
08:15 eternaleye moritz_: could you try http://dpaste.com/59955/ ? compiling takes forever here and it seems my rakudo is being uncooperative
08:16 moritz_ eternaleye: sure
08:16 dalek grok: 43447a6 | (Hinrik Örn Sigurðsson)++ | script/grok:
08:16 dalek grok: Fix doc typo
08:16 dalek grok: review: http://github.com/hinrik/grok/commit/43447a62b914c5267edcc5e70b9e91b40f23d6d9
08:19 mvuets joined #perl6
08:19 moritz_ eternaleye: too many arguments passed (2) - 1 params expected
08:19 moritz_ in sub Test::plan (Test.pm:40)
08:19 moritz_ called from Main (t/spec/S03-operators/series.rakudo:6)
08:19 moritz_ now that's just weird.
08:20 eternaleye The method 'perl' not found thing?
08:20 moritz_ no, "too many arguments passed"
08:20 moritz_ but why the bloody hell in sub Test::plan?
08:21 eternaleye moritz_: try running ` say { $_ >= 3 ?? () !! $_ + 1 }.signature.params.perl` - if it jives that error, it's some crazy spooky action at a distance
08:21 eternaleye *gives
08:22 moritz_ Method 'perl' not found for invocant of class 'ResizablePMCArray'
08:22 dalek grok: 1b75748 | (Hinrik Örn Sigurðsson)++ |  (4 files):
08:22 dalek grok: Specify Pod encoding
08:22 dalek grok: review: http://github.com/hinrik/grok/commit/1b75748b606c712a36ac7f4e3db896af78da1da5
08:22 dalek grok: bff6a3a | (Hinrik Örn Sigurðsson)++ |  (4 files):
08:22 dalek grok: Bump version to 0.06
08:22 dalek grok: review: http://github.com/hinrik/grok/commit/bff6a3a8c19f4d193da87e13fab677b9f535fa92
08:22 mberends joined #perl6
08:22 icwiener joined #perl6
08:23 mberends is it humanly possible to catch up 7.5 days of backlog?
08:23 eternaleye moritz_: Well, I have no idea what's going on there
08:24 eternaleye mberends: Possible, yes. Advisable, probably not
08:24 mberends ok, will heed that advice ;)
08:25 moritz_ eternaleye: it uses an interal parrot array that's not properly typemapped to a Rakudo array
08:26 moritz_ s/Rakudo/Perl 6/
08:26 pugs_svn r27256 | azawawi++ | [S:H:P6] more p5 emitter code cleanup
08:26 pugs_svn r27256 | azawawi++ | [S:H:P6] support 'has' and 'self'
08:26 pugs_svn r27256 | azawawi++ | [S:H:P6] no more printing of $r as viv
08:27 moritz_ but I don't understand why the error is reported that way.
08:28 moritz_ eternaleye: ah, there's a syntax error in the setting, you forgot the closing quote for 'slurpy'
08:29 eternaleye Urk
08:31 moritz_ the next problem is .grep: {closure } > 0
08:31 eternaleye ... And all for the want of a quote
08:31 moritz_ being parse as .grep: ({closure } > 0)
08:31 eternaleye Ah, precedence
08:33 moritz_ when I fix that
08:33 moritz_ get_string_keyed() not implemented in class 'Perl6Pair'
08:33 moritz_ in sub infix:... (t/spec/S03-operators/series.rakudo:21)
08:34 eternaleye "For want of a quote the setting was lost, for want of a setting the plan was lost, for want of a plan the test was lost, for want of a test the suite was lost, for want of a suite the Perl was lost, and all for the want of a quote" ;D
08:34 moritz_ :-)
08:36 huf and my best christmas was also lost
08:41 pjcj joined #perl6
08:42 eternaleye Well, it's 1:40 here, so I'm gonna sleep a bit
08:50 rafl joined #perl6
08:55 ejs joined #perl6
08:58 beggars joined #perl6
09:06 ejs1 joined #perl6
09:12 donaldh joined #perl6
09:17 zulon joined #perl6
09:17 zulon left #perl6
09:25 pugs_svn r27257 | azawawi++ | [S:H:P6] Implemented experimental --find-declaration=variable_name,line :)
09:27 nsh joined #perl6
09:28 sbp joined #perl6
09:29 nsh_ joined #perl6
09:43 pugs_svn r27258 | azawawi++ | [S:H:P6] cleanup and show the line where variable is declared and then used.
09:46 amoc rakudo: subset Even of Int where {$_%2==0}; Code.isa(Even).say
09:46 p6eval rakudo 6c43f9: OUTPUT«sh: ./perl6: No such file or directory␤»
09:53 pugs_svn r27259 | azawawi++ | [S:H:P6] Initial stub implementation of --rename-var=OldName,Line,NewName
09:53 mjk joined #perl6
09:57 buubot joined #perl6
09:58 amoc rakudo: say 'it works'
09:58 p6eval rakudo 6c43f9: OUTPUT«it works␤»
10:04 pugs_svn r27260 | azawawi++ | [S:H:P6] Added A couple of todos and some documentation...
10:05 Mips128 joined #perl6
10:05 Mips128 hi
10:06 mberends Mips128: hi
10:06 Mips128 hi mberends
10:06 finanalyst left #perl6
10:10 jferrero joined #perl6
10:10 Su-Shee left #perl6
10:12 pugs_svn r27261 | azawawi++ | [S:H:P6] refactored code into 'find_variable_declaration'
10:25 mvuets left #perl6
10:25 wayland76 'night all
10:29 pugs_svn r27262 | azawawi++ | [S:H:P6] more refactoring to support rename variable
10:33 mvuets joined #perl6
11:20 donaldh joined #perl6
11:24 riffraff joined #perl6
11:38 payload joined #perl6
11:43 payload joined #perl6
12:05 azawawi joined #perl6
12:05 pugs_svn r27263 | azawawi++ | [S:H:P6] Perl 6 rename lexical variable for all occurrences is online :) Some bugs still exist in some cases.
12:05 pugs_svn r27263 | azawawi++ | [S:H:P6] So be warned. This is an experimental viv STD-based refactoring tool.
12:06 azawawi Sample run of experimental refactoring tool: http://gist.github.com/136440
12:09 eMaX joined #perl6
12:11 masak joined #perl6
12:12 moritz_ nice
12:15 masak ahoj, Friday-camels!
12:15 phenny masak: 00:41Z <ingy> tell masak I wanted help on a TestML port. First anyway.
12:16 masak phenny: tell ingy I'd be happy to help. where do I sign up?
12:16 phenny masak: I'll pass that on when ingy is around.
12:16 masak seems ingy and I only talk through bots nowadays.
12:16 masak not that I mind. :)
12:16 * TimToady feels more like a Friday camel-patty
12:17 mvuets left #perl6
12:18 TimToady nothing about 4 gallons of coffee won't cure
12:18 amoc +« $◎ while 1; #[The Onion is still getting larger!]
12:18 TimToady std: +« $◎ while 1; #[The Onion is still getting larger!]
12:18 p6eval std 27262: OUTPUT«##### PARSE FAILED #####␤Anonymous variable requires declarator at /tmp/ELPgcabqSe line 1:␤------> [32m+« $[31mâ—Ž while 1; #[The Onion is still getting [0m␤    expecting twigil␤FAILED 00:02 38m␤»
12:19 TimToady it doesn't think it's alpha, probably
12:19 * azawawi shouts "Perl 6 Find variable declaration and Rename variable is online" :)
12:20 moritz_ azawawi: now make that a web service... :-)
12:20 mvuets joined #perl6
12:20 azawawi moritz_:sure; once  i refactor the refactoring tool :)
12:20 amoc std: my $◎=1,2,3; +« $◎; say ~$◎; #test?
12:21 p6eval std 27263: OUTPUT«##### PARSE FAILED #####␤Syntax error (two terms in a row?) at /tmp/xJ7OIfiFYC line 1:␤------> [32mmy $[31mâ—Ž=1,2,3; +« $â—Ž; say ~$â—Ž; #test?[0m␤    expecting any of:␤     POST␤   infix or meta-infix␤        infix stopper␤  postfix␤  postfix_prefix_meta_operator␤       shape
12:21 p6eval ..definition␤       standard stoppe…
12:21 masak not a very precise error...
12:21 amoc std: my $â—Ž=1,2,3; $â—Ž >>+>> 1; say ~$â—Ž; #may i test again
12:21 p6eval std 27263: OUTPUT«##### PARSE FAILED #####␤Syntax error (two terms in a row?) at /tmp/HDZOakuXN6 line 1:␤------> [32mmy $[31mâ—Ž=1,2,3; $â—Ž >>+>> 1; say ~$â—Ž; #may i tes[0m␤    expecting any of:␤   POST␤   infix or meta-infix␤        infix stopper␤  postfix␤  postfix_prefix_meta_operator␤
12:21 p6eval ..shape definition␤       standa…
12:21 masak amoc: the syntax error is already in the declaration.
12:23 amoc er...
12:23 TimToady std: my $ 42
12:23 p6eval std 27263: OUTPUT«##### PARSE FAILED #####␤Syntax error (two terms in a row?) at /tmp/bJvlhxqzGM line 1:␤------> [32mmy $ [31m42[0m␤    expecting any of:␤  infix or meta-infix␤      infix stopper␤    standard stopper␤ statement modifier loop␤  terminator␤     trait␤FAILED 00:02 36m␤»
12:23 TimToady same error
12:24 TimToady std: my $ = 42;
12:24 p6eval std 27263: OUTPUT«ok 00:02 36m␤»
12:24 TimToady std: my $; 42
12:24 amoc std: my $onion=1,2,3; $onion >>+>> 1; say ~$onion; #aha
12:24 p6eval std 27263: OUTPUT«##### PARSE FAILED #####␤Obsolete use of $; variable; in Perl 6 please use real multidimensional hashes instead at /tmp/TOLqKURPmQ line 1:␤------> [32mmy $;[31m 42[0m␤FAILED 00:02 36m␤»
12:24 p6eval std 27263: OUTPUT«ok 00:03 40m␤»
12:24 TimToady you win
12:25 masak the onion takes the game!
12:25 amoc i win! thanks!
12:26 TimToady std: constant term:<â—Ž> = 1,2,3; say ~â—Ž;
12:26 p6eval std 27263: OUTPUT«##### PARSE FAILED #####␤Can't understand next input--giving up at /tmp/XcjLybtzmI line 1:␤------> [32mconstant term:<â—Ž> = 1,2,3; say ~[31mâ—Ž;[0m␤    expecting any of:␤       noun␤   prefix or meta-prefix␤      prefix or noun␤   prefix_postfix_meta_operator␤
12:26 p6eval ..whitespace␤FAILED 00:03 39m␤»
12:26 TimToady std: constant term:<â—Ž> = 1,2,3; say ~term:<â—Ž>;
12:26 p6eval std 27263: OUTPUT«ok 00:03 39m␤»
12:27 TimToady well, term doesn't macroize correctly yet
12:27 TimToady not way up there on my list of priorities :)
12:28 TimToady esp pre coffee
12:28 TimToady shower &
12:28 masak someone should start a Perl 6 implementation which focused on exploring the macro aspects of Perl 6.
12:29 sbp masak: how do you mean?
12:30 masak sbp: I don't know exactly, but even with very few other features, it'd be interesting to explore how defining and using macros will work in practice.
12:30 lichtkind joined #perl6
12:30 masak my feeling is that (just like with other parts of the spec so far) an implementation will drive the spec forward in this case.
12:30 sbp yeah, I don't even know how the rest of the spec will work together yet
12:31 moritz_ masak: that's a good idea actually....
12:31 lichtkind masak: you don't even in #now? :)
12:32 masak lichtkind: I'm sorry, could you try and rephrase that?
12:32 masak (it seems there's a verb missing before 'in'.)
12:32 lichtkind masak: i mean the november channel but today i have good excuse having patch on my finger
12:33 masak I'm actually more confused by that explanation.
12:33 sbp I suppose he meant #nov[ember]?
12:34 sbp but typed now due to a plaster on his finger
12:34 lichtkind sbp: yes
12:34 lichtkind sbp is smart
12:35 masak sbp: I bow to your superior reading-between-the-lines capabilities.
12:36 sbp \ã‹¡/
12:36 azawawi TimToady: can viv output pod_comments? It does not seem to do that right now.
12:38 sbp macro circumfix:«<!-- -->» ($text) is parsed / .*? / { "" }
12:38 sbp how does this commentify the input?
12:38 sbp I don't see where the commentisation enters
12:38 skids joined #perl6
12:38 sbp oh wait, now I do...
12:39 sbp all it's saying is: when you see <!-- ... -->, change that to ""
12:39 moritz_ it takes care that it returns an empty syntax tree
12:39 sbp yeah
12:39 sbp so are regular comments really empty in the syntax tree?
12:40 moritz_ in the AST at least
12:41 masak what if I actually wanted to harvest information out of a comment?
12:43 sbp I made a programming langauge once that had throwaway comments, and comments which you could harvest. I think that might have been based on the two different types of comments in XQuery; or possibly on Masahide Kanzaki's XSLT documentation tools
12:45 kane_ joined #perl6
12:45 moritz_ masak: dunno, tell it to match with the :keepall modifier?
12:47 masak that might work.
12:48 moritz_ the problem right now is that comments are matched by implicit <.ws> rules, so they don't capture by defintion
12:48 mkfort why is it that I always see boxes in p6eval output. I've set up unicode rxvt, utf-8 screen , utf-8 irssi, the best fonts I can find. It's frustrating
12:48 moritz_ so another thing you could do is override the default ws method to conditionally capture things in contexxt variables, or so
12:49 moritz_ mkfort: does your browser display it correctly on http://irclog.perlgeek.de/perl6/today ?
12:49 moritz_ mkfort: it's a N/L character indicating a newline
12:50 moritz_ U+2424 SYMBOL FOR NEWLINE
12:50 mkfort ah
12:50 TimToady :keepall is probably going away
12:51 mkfort I guess terminus and dina don't have that char? at lest I know what it is now
12:51 moritz_ TimToady: so comments should be extracted from .chunks, or so?
12:51 TimToady you can always get the comments the way viv -6 does
12:52 TimToady if you have the original string, and know the positions of the ends, you can always substr
12:52 TimToady well, maybe that gets more complicated with textual macros though...
12:53 sbp TimToady: viv -6?
12:53 TimToady spits back out the original Perl 6
12:53 TimToady and viv -5 is a start on spittout out Perl 5 so we can replace gimme5
12:53 TimToady *spitting
12:53 * masak is excited by that
12:54 masak I should take those switches for a test run.
12:54 sbp ah, I see it. thanks
12:55 azawawi TimToady: i used emit_p5 and removed fixpod...
12:55 azawawi TimToady: i guess this voids the warranty :)
12:55 TimToady I am a raging bull, and trample anything in my path :)
12:56 TimToady especially since I still haven't had my coffee...
12:56 TimToady biab &
13:02 Rembane joined #perl6
13:04 gbacon joined #perl6
13:05 azawawi literal: ping
13:20 * Matt-W hates to think what TimToady is like when he has had his coffee
13:22 * TimToady hates to think
13:22 pmurias joined #perl6
13:22 TimToady with or without coffee
13:22 Matt-W Could've fooled me
13:22 Matt-W You still manage to do plenty of it
13:22 TimToady it's an accident
13:23 Matt-W So this is why you wanted to get the community into the Perl 6 design process then - so you wouldn't have to think about it so much
13:23 TimToady you're catching on
13:24 FurnaceBoy joined #perl6
13:25 Matt-W Glad to know all this C++ hasn't completely rotted my brain then
13:26 TimToady std: my $x = new Cat('cable');
13:26 p6eval std 27263: OUTPUT«##### PARSE FAILED #####␤Obsolete use of C++ constructor syntax; in Perl 6 please use method call syntax instead at /tmp/JEVYO6jlwd line 1:␤------> [32mmy $x = new Cat[31m('cable');[0m␤FAILED 00:02 36m␤»
13:26 Matt-W I like the way it says 'obsolete'
13:26 Matt-W It makes me feel so much better about my day job
13:26 Matt-W 'I don't mind that this code is awful, because it's written in an obsolete language anyway'
13:27 Matt-W (right know I really am feeling the lack of regexps, and would much rather be trying to do more improbable things with mixins)
13:29 mizioumt joined #perl6
13:40 alester joined #perl6
13:42 [bjoern] joined #perl6
13:42 [bjoern] lisppaste3: url?
13:42 lisppaste3 To use the lisppaste bot, visit http://paste.lisp.org/new/perl6 and enter your paste.
13:43 lisppaste3 [bjoern] pasted "Quick and dirty Perl6 grammar for ABNF (auto-generated)" at http://paste.lisp.org/display/82550
13:45 PerlJam [bjoern]: don't you really want most of those () to be [] ?
13:45 [bjoern] If it's not "all" then there is a problem with making that decision in the generator
13:46 PerlJam Well, I was going to say "all", but I haven't looked at the grammar close enough to be sure.
13:46 TimToady and you can simplify most of the quantifiers to ?, *, or +
13:47 [bjoern] conditionals for that are very verbose in XSLT 1.0 syntax, unfortunately...
13:48 [bjoern] (it's generated via an XSLT transformation)
13:48 TimToady this is #perl6, so we won't provide much sympathy :P
13:48 PerlJam [bjoern]: while the auto-generated ABNF grammar is neat, a hand-tooled one would be neater (and probably simpler and easier for humans to read)
13:49 synth joined #perl6
13:50 [bjoern] My purpose is learning Rules, this is just a by-product...
13:50 TimToady given there are no $0 or $1, () to [] seems safe
13:50 TimToady unless you want them externaly, of course
13:51 [bjoern] Well for, say,
13:51 [bjoern] regex defined_as {
13:51 [bjoern] ((<c_wsp>) ** 0..*('=' | '=/')(<c_wsp>) ** 0..*)
13:51 [bjoern] };
13:51 [bjoern] the distinction between = and =/ is important
13:51 TimToady well, volleyball principle then: better too many than too few (going for the ball)
13:52 sbp is there an ABNF test suite?
13:52 PerlJam all those parens make my eyes twitch a little  :)
13:52 sbp have you run the grammar against any test suite?
13:52 TimToady but '** 0..*' ==> '*' is a no-brainer, even if you have to do it with a s/// postprocessor
13:53 [bjoern] I'm hoping someone's gonna write a grammar pretty printer :-)
13:53 TimToady as I mentioned, it would be an easy variant of viv -6
13:53 [bjoern] I don't know of an ABNF test suite
13:53 TimToady just tweak the whitespace as it's coming out
13:53 sbp you mean to say the IETF published a language specification with no test suite?
13:53 sbp presumably the IETF would not do such a thing
13:54 TimToady they've only proven it correct
13:54 sbp you cast slanders, sir. slanders
13:54 sbp heh, heh
13:54 sbp (the concorde principle)
13:54 [bjoern] By test suite I meant something easily automatable
13:55 [bjoern] Clearly the RFC series has many sample grammars...
13:55 sbp what about DanC's Javascript thing?
13:55 sbp usually he writes test suites for everything
13:55 sbp that guy probably writes a test suite for blowing his nose
13:56 [bjoern] Principle of Staying Away from DanC's Scribblings.
13:57 sbp hehe
13:57 sbp I can't even find it. it was supposedly here;
13:57 sbp http:// homer.w3.org/~connolly/projects/urlp/raw-file/tip/tinker.html
13:57 sbp s/;/:/
13:57 amoc i dont see about 'operator precedences' for user-defined operators in the Synopsis.
13:58 moritz_ amoc: grep for 'is tighter'
13:58 PerlJam amoc: there's not something that talks about "is tighter" or "is looser" ?
13:58 amoc moritz_: thank you so much!
13:58 amoc PerlJam: thanks!
13:59 sbp is you specify a discontinuous range of tightness, is that an error or passed over in silence?
13:59 moritz_ range of tightness?
13:59 moritz_ what are you talking about?
13:59 sbp tighter than X, looser than Y, where Y is looser than X
13:59 moritz_ you only specify one
14:00 [bjoern] s/is/if/
14:00 sbp ah
14:00 sbp no, wait, you're wrong
14:00 sbp "Both C<tighter> and C<looser> may be specified"
14:00 PerlJam you can still do A is tighter than B is tigher than C is looser than A loops
14:00 moritz_ one(<tighter looser equiv>)
14:00 moritz_ hm.
14:00 sbp S06:1679
14:00 moritz_ I don't see much sense in that.
14:01 PerlJam right.
14:01 PerlJam perl allows it though
14:01 PerlJam (at least AFAIK)
14:01 sbp I suppose it doesn't matter too much
14:01 sbp people can do things like:
14:01 sbp if (a < 0) and (a > 10)
14:02 sbp but with integers it's clear. with operator tightness...
14:02 PerlJam sbp: it's one of those "doctor it hurts when I do this" scenarios.  Maybe Perl should warn if it can.
14:03 PerlJam And Perl shoudl be able to warn, so forget that I said maybe :)
14:04 pmichaud on my way to cmu for a tour, then to vacation for a few days.  I'll be around off-and-on for the weekend
14:04 sbp enjoy, pmichaud
14:04 moritz_ pmichaud: have the appropriate amount of fun :-)
14:04 pmichaud PerlJam: got a moment?
14:04 PerlJam pmichaud: Have more than an appropriate amount of fun  :)
14:05 PerlJam pmichaud: sure.
14:05 snarkyboojum joined #perl6
14:07 masak perl6: sub foo($a) { say $a }; foo  ("OH HAI")
14:07 p6eval elf 27263, pugs, rakudo 6c43f9: OUTPUT«OH HAI␤»
14:09 amoc perl6: sub foo { .say; }; foo; foo(); foo('hi')
14:09 p6eval elf 27263: OUTPUT«Use of uninitialized value in concatenation (.) or string at ./elf_h line 5105.␤syntax error at (eval 127) line 5, near "{->say"␤ at ./elf_h line 5881␤»
14:09 p6eval ..rakudo 6c43f9: OUTPUT«Use of uninitialized value␤␤Use of uninitialized value␤␤Use of uninitialized value␤␤»
14:09 p6eval ..pugs: OUTPUT«␤␤␤»
14:09 moritz_ mildew: sub foo($a) { say $a }; foo  ("OH HAI")
14:09 sbp rakudo: {{{{{say $^h}($^e)}($^l)}($^l)}($^o)}("hello")
14:09 p6eval mildew: OUTPUT«OH HAI␤»
14:09 p6eval rakudo 6c43f9: OUTPUT«hello␤»
14:10 TimToady perl6: sub foo($a) { say ~$a }; foo "OH", "HAI"
14:11 p6eval rakudo 6c43f9: OUTPUT«too many arguments passed (2) - 1 params expected␤in sub foo (/tmp/lM03uW1UGk:1)␤called from Main (/tmp/lM03uW1UGk:2)␤»
14:11 p6eval ..elf 27263, pugs: OUTPUT«OH␤»
14:11 TimToady good, S06 is wrong, but rakudo is right
14:11 masak specbug!
14:12 PerlJam rakudo++
14:12 TimToady perl6: sub foo($a) { '' }; say ~(foo "OH", "HAI")
14:12 p6eval rakudo 6c43f9: OUTPUT«too many arguments passed (2) - 1 params expected␤in sub foo (/tmp/Fwup2HT1ON:1)␤called from Main (/tmp/Fwup2HT1ON:2)␤»
14:12 p6eval ..pugs: OUTPUT« HAI␤»
14:12 p6eval ..elf 27263: OUTPUT«␤»
14:12 masak o_O
14:13 pmichaud yay, rakudo!
14:13 TimToady unfortunately, pugs is following the spec :/
14:13 masak nay, Pugs!
14:13 masak don't follow the spec! :)
14:13 amoc o_o...
14:14 * sbp would ask which bit of S06, but expects the answer to be reported shortly by pugs_svn anyway...
14:15 pmichaud afk for a while (driving)
14:16 moritz_ TimToady: uhm, weren't prototypes abolished?
14:17 justatheory joined #perl6
14:17 meppl joined #perl6
14:22 Su-Shee joined #perl6
14:25 ejs0 joined #perl6
14:26 snarkyboojum joined #perl6
14:27 sbp rakudo: say &infix:<+>.assuming(1)(2)
14:27 p6eval rakudo 6c43f9: OUTPUT«Method 'assuming' not found for invocant of class 'MultiSub'␤»
14:27 sbp I thought this bug had been reported, recently
14:27 sbp but I can't find it here: http://rt.perl.org/rt3/Public/Search/Simple.html?q=assuming
14:27 sbp any pointers?
14:29 moritz_ I can't find it either
14:29 moritz_ so I guess it's not reported yet
14:30 moritz_ is .assuming defined on multis?
14:31 [bjoern] "Every Callable object has a .assuming method."
14:31 moritz_ ok
14:33 m-i-l-a-1 joined #perl6
14:35 masak rakudo: my $a = :x[]
14:35 p6eval rakudo 6c43f9: OUTPUT«Null PMC access in find_method()␤in Main (/tmp/NI6qQ2mYNL:2)␤»
14:35 * masak submits rakuodbug
14:36 eMaX joined #perl6
14:37 pugs_svn r27264 | lwall++ | [S06] only prefix:<foo> makes named unary, not sub foo ($)
14:38 m-i-l-a-2 joined #perl6
14:38 PerlJam weird.   I thought that had made it into the spec long ago.
14:38 * moritz_ too
14:38 TimToady maybe it has it right somewhere else in the spec
14:39 TimToady the synopses contain lots of misplaced advice :)
14:41 TimToady &foo represents a single object even when there are multiple candidates, so basically .assuming just has to grep the candidate list hidden inside &foo
14:42 sbp → http://dev.pugscode.org/changeset/27264
14:46 masak rakudo: :x[]
14:46 p6eval rakudo 6c43f9: OUTPUT«sh: ./perl6: No such file or directory␤»
14:51 masak rakudo: :x[]
14:51 p6eval rakudo 6c43f9: OUTPUT«Null PMC access in find_method()␤in Main (/tmp/6lXbTh3ks4:2)␤»
14:52 huf what's PMC?
14:52 sbp should &infix:<+>.assuming(1, 2) work too?
14:52 sbp doesn't make much sense to assume all args, but...
14:52 mvuets left #perl6
14:52 jlaire huf: Parrot Magic Cookie
14:52 masak huf: a PMC is a thing inside Parrot that breaks when we do naughty things with Rakudo.
14:53 masak a Null PMC access means I get to submit an RT ticket for free! \o/
14:54 huf where can i read about this? parrot docs?
14:55 masak huf: yeah.
14:56 PerlJam huf:  parrot/docs/pdds/pdd17_pmc.pod
14:58 huf thanks
14:59 sbp hmm. ./src/pmc/perl6multisub.pmc lines 1009-1030
14:59 sbp looks like you get the candidate to invoke
14:59 sbp but have to copy a tonne of attributes to it that might have gone walkies
15:00 sbp rakudo: say &infix:<+>.perl;
15:00 p6eval rakudo 6c43f9: OUTPUT«{ ... }␤»
15:01 sbp .gc wobload
15:01 phenny wobload: 4
15:02 * sbp finds the assuming definition at ./src/classes/Code.pir lines 100-121
15:03 sbp rakudo: sub plus($a, $b) { return $a + $b }; say assuming(&plus, 1)(2);
15:03 p6eval rakudo 6c43f9: OUTPUT«Could not find non-existent sub assuming␤»
15:05 eMaX joined #perl6
15:05 sbp --
15:05 sbp This file sets up the Perl 6 C<Code> class, the base class
15:05 sbp for executable objects.
15:05 sbp --
15:06 sbp so I guess MultiSub is something more primitive, dispatches to the right Code to invoke...
15:06 moritz_ s/more primitive/different/ ;-)
15:12 sbp rakudo: say &infix:<+>.invoke;
15:12 p6eval rakudo 6c43f9: OUTPUT«Method 'invoke' not found for invocant of class 'MultiSub'␤»
15:14 moritz_ rakudo: say &infix:<+>(2, 3)
15:14 p6eval rakudo 6c43f9: OUTPUT«5␤»
15:15 moritz_ invoke is just the name of the parrot vtable method, ie an implementation detail that should not be exposed
15:16 sbp yeah, just trying to figure out how this works
15:16 sbp I mean, there's a Code.assume
15:16 sbp but then TimToady said: 15:40  <TimToady> &foo represents a single object even when there are multiple candidates, so basically .assuming just has to grep the candidate list hidden inside &foo
15:17 sbp which I don't get, because I figure that MultiSub should just be minimally wrapping, and handing back a Code object that represents what we actually wanted to refer to
15:17 sbp so obviously I don't understand something (many things)
15:18 sbp I was trying to work out why .perl works but .assuming doesn't
15:19 sbp I presume .perl comes from MultiSub, or its superclasses, which is in parrot rather than rakudo
15:20 lichtkind whats the difference between m// and rx//, the one performs regex, second just creates it?
15:20 moritz_ sounds reasonable
15:20 sbp but of course, that .perl works and .invoke doesn't means it's not just the C-level methods that are being exposed in rakudo's perl6
15:20 donaldh joined #perl6
15:20 moritz_ but in rakudo/parrot things don't need reasons not to work
15:21 moritz_ lichtkind: aye
15:21 lichtkind moritz_: thanks
15:21 * sbp takes that point on board... :-)
15:21 lichtkind moritz_: but s/// can do both?
15:22 masak lichtkind: no.
15:22 masak lichtkind: it always executes a substitution.
15:22 moritz_ right
15:23 justatheory joined #perl6
15:23 lichtkind so i store a subst regex also with rx ?
15:23 moritz_ a "subst regex" is just a normal regex
15:24 moritz_ and you can say $str.subst($regex, { substittuion closure })
15:24 lichtkind moritz_: true, cool now im crealrer on that
15:24 lichtkind clearer
15:25 lichtkind hej p6 is cool
15:25 lichtkind it makes actually sense
15:25 moritz_ that's what I thought at first, too ;-)
15:28 sbp rakudo: say &infix:<+>.WHAT;
15:28 p6eval rakudo 6c43f9: OUTPUT«Null PMC access in find_method()␤in Main (/tmp/QQl1FMW8om:2)␤»
15:28 sbp rakudo: say &infix:<+>.HOW;
15:29 p6eval rakudo 6c43f9: OUTPUT«Null PMC access in isa()␤in Main (/tmp/98iXfEMUj0:2)␤»
15:29 moritz_ rakudo: &infix:<+>.PARROT
15:29 p6eval rakudo 6c43f9:  ( no output )
15:29 moritz_ rakudo: say &infix:<+>.PARROT
15:29 p6eval rakudo 6c43f9: OUTPUT«MultiSub␤»
15:35 * sbp reads parrot/docs/book/ch03_pir.pod
15:38 * masak misses jnthn
15:38 pugs_svn r27265 | lwall++ | [Spec] treat all authors equally
15:38 pugs_svn r27265 | lwall++ | [Spec] make whitespace unugly
15:38 pugs_svn r27265 | lwall++ | [Spec] rename Date to Created
15:38 pugs_svn r27265 | lwall++ | [Spec] separate header things you edit from Created
15:41 sbp rakudo: say 'a' + { ... };
15:41 p6eval rakudo 6c43f9: OUTPUT«get_number() not implemented in class 'Sub'␤in Main (/tmp/5VfX5dvDGM:2)␤»
15:41 sbp funny
15:42 moritz_ aye, it should be Block, not Sub ;-)
15:42 sbp and I was hoping for it to blow up around +, not { ... } casting... :-)
15:42 moritz_ uhm, how so?
15:43 moritz_ rakudo: say 'a' + { 1 };
15:43 p6eval rakudo 6c43f9: OUTPUT«get_number() not implemented in class 'Sub'␤in Main (/tmp/2k1SXY3Ze2:2)␤»
15:43 moritz_ + as an (Any, Any) variant
15:43 sbp I was hoping to get information about where + is defined
15:43 moritz_ + has an (Any, Any) variant
15:43 sbp right. didn't know there'd be an (Any, Any)
15:43 moritz_ which tries to numify its operands
15:43 sbp aye
15:46 masak rakudo: sub infix:<wtf>($a, $b) { $a ~ "WTF" ~ $b }; say [wtf] <OMG BBQ PONIES>;
15:46 p6eval rakudo 6c43f9: OUTPUT«sh: ./perl6: No such file or directory␤»
15:46 masak g'ah!
15:47 PerlJam masak: OMGWTFBBQWTFPONIES
15:48 * PerlJam takes off his perl6 interpreter hat.
15:48 masak PerlJam: yep. I just felt like hearing p6eval say it. but thanks. :)
15:48 masak rakudo: sub infix:<wtf>($a, $b) { $a ~ "WTF" ~ $b }; say [wtf] <OMG BBQ PONIES>;
15:48 p6eval rakudo 6c43f9: OUTPUT«OMGWTFBBQWTFPONIES␤»
15:48 masak :D
15:49 masak rakudo++
15:50 PerlJam random thought:  you know how rules have significant whitespace ... I wonder how useful it would be to have a construct that's like that but in reverse.  An implied join(" ")
15:50 PerlJam I guess I could always define one of those myself.
15:51 PerlJam But often @array.join(",")  is really written (poorly) as a loop in other languages and  then  they remove the extra , that got tacked on the end.
15:52 sbp hmm: ./src/builtins/op.pir:.sub 'infix:+' :multi(_,_)
15:52 sbp this is very simple, so I guess the get_number stuff happens in parrot
15:52 PerlJam anyway, we already have many adequate ways to do this.  for some reason I wanted some implied-spaces syntax when I say masak's OMG WTF
15:53 PerlJam s/say/saw/
15:53 masak PerlJam: <some-rule> ** ','
15:53 PerlJam masak: not the pattern matching, but the generating stuff with spaces in between.
15:53 moritz_ like array stringification?
15:53 masak how would that be different from .join?
15:53 PerlJam or s/spaces/some arbitrary characters/
15:54 moritz_ rakudo: say ~<a b c>
15:54 p6eval rakudo 6c43f9: OUTPUT«a b c␤»
15:54 PerlJam masak: it's not.  I'm just ruminating on yet another way.
15:54 moritz_ rakudo: say <a b c>.join
15:54 p6eval rakudo 6c43f9: OUTPUT«abc␤»
15:54 PerlJam er, moritz_
15:54 PerlJam too
15:54 amoc rakudo: sub infix:<wtf>($a, $b) { $a, "WTF", $b }; say ~( [wtf] <OMG BBQ PONIES> );
15:54 p6eval rakudo 6c43f9: OUTPUT«OMG WTF BBQ WTF PONIES␤»
15:54 sbp hmm, I see
15:54 PerlJam amoc++
15:54 sbp Code is defined at the perl6 level
15:54 amoc yey
15:54 sbp but Sub is defined at the parrot level
15:55 sbp so if you want .assuming on all callables, that's not something that you can go to any one place to fix
15:55 PerlJam sbp: until you refactor the code such that that's possible.  :)
15:55 sbp well, quite...
15:55 moritz_ rakudo: say Sub ~~ Callable
15:56 p6eval rakudo 6c43f9: OUTPUT«1␤»
15:56 moritz_ rakudo: say Code ~~ Callable
15:56 p6eval rakudo 6c43f9: OUTPUT«1␤»
15:56 moritz_ rakudo: say Sub ~~ Code
15:56 p6eval rakudo 6c43f9: OUTPUT«1␤»
15:56 moritz_ rakudo: say { $^a + $^b}.assuming(1).(3)
15:56 p6eval rakudo 6c43f9: OUTPUT«4␤»
15:58 PerlJam I think the real problem is here ...
15:58 PerlJam rakudo: say &infix:<+>.WHAT
15:58 p6eval rakudo 6c43f9: OUTPUT«Null PMC access in find_method()␤in Main (/tmp/UexpI5KPaU:2)␤»
16:00 PerlJam rakudo: multi sub foo($a) { say "ONE"; } ; multi sub foo ($a,$b) { say "TWO"; }; &foo.assuming(1,2).();
16:00 moritz_ the problem is that from Perl 6 the built-in operators don't look like normal objects
16:00 p6eval rakudo 6c43f9: OUTPUT«TWO␤»
16:00 PerlJam right
16:00 sbp rakudo: MultiSub
16:00 p6eval rakudo 6c43f9: OUTPUT«Could not find non-existent sub MultiSub␤»
16:01 PerlJam rakudo: multi sub foo($a) { say "ONE"; } ; multi sub foo ($a,$b) { say "TWO"; }; say &foo.WHAT;
16:01 p6eval rakudo 6c43f9: OUTPUT«Multi()␤»
16:01 sbp ah!
16:01 sbp so &infix:<+> should be a Multi instance
16:02 sbp but actually it's a parrot:MultiSub instance?
16:02 PerlJam something like that.
16:03 amoc rakudo: 4.does(Int).say; 4.isa(Int).say; # out-topic
16:03 lichtkind mberends: howdy
16:03 p6eval rakudo 6c43f9: OUTPUT«1␤1␤»
16:03 amoc rakudo: subset Even is Int where { $_ % 2 == 0}; 3.does(Even).say
16:03 p6eval rakudo 6c43f9: OUTPUT«Statement not terminated properly at line 2, near "is Int whe"␤in Main (src/gen_setting.pm:3225)␤»
16:04 amoc s/out-topic/off-topic/;
16:04 masak amoc: 'of'.
16:04 viklund_ joined #perl6
16:04 moritz_ perl 6 is not of-topic here ;-)
16:05 moritz_ *off
16:05 amoc i see! >_<
16:05 mizioumt1 joined #perl6
16:06 moritz_ rakudo: class NotAny is Object { }; sub a($x) { say "alive" }; a(NotAny.new)
16:06 p6eval rakudo 6c43f9: OUTPUT«Could not build C3 linearization: ambiguous hierarchy␤in Main (/tmp/bYubaR8GCk:2)␤»
16:06 moritz_ bug!
16:07 moritz_ rakudo: class NotAny is Object { };
16:07 p6eval rakudo 6c43f9: OUTPUT«Could not build C3 linearization: ambiguous hierarchy␤in Main (/tmp/dXMaaubcDg:2)␤»
16:08 PerlJam that's a parrot bug even
16:08 PerlJam (maybe)
16:12 * masak submits
16:13 moritz_ masak: I did alredy
16:13 masak oh, ok.
16:14 moritz_ (sorry to meddle with your realm ;)
16:14 masak no problem; but please indicate in-channel next time. :)
16:14 moritz_ ok, will do.
16:16 jan_ joined #perl6
16:18 justatheory joined #perl6
16:33 pnu joined #perl6
16:34 meteorjay joined #perl6
16:35 jlmoko joined #perl6
16:41 eMaX joined #perl6
16:45 Psyche^ joined #perl6
16:46 finanalyst joined #perl6
16:50 Chillance joined #perl6
17:04 icwiener_ joined #perl6
17:07 pmichaud_ joined #perl6
17:07 Gruber joined #perl6
17:07 jrockway_ joined #perl6
17:24 viklund joined #perl6
17:32 jferrero joined #perl6
17:33 japhb joined #perl6
17:33 awwaiid joined #perl6
17:33 viklund joined #perl6
17:38 simcop2387 joined #perl6
17:44 araujo joined #perl6
17:48 last joined #perl6
17:56 finanalyst left #perl6
18:11 eMaX joined #perl6
18:37 mberends joined #perl6
18:41 athomason joined #perl6
18:50 icwiener joined #perl6
18:51 cotto joined #perl6
18:51 nihiliad joined #perl6
19:00 nihiliad joined #perl6
19:01 ispy_ joined #perl6
19:16 kozuscek joined #perl6
19:28 kolibrie TimToady: using Cursor.pmc's parse, how can I specify that I want to match the first occurrance of a token after some position? (match at some unknown point not at the beginning of the string)
19:31 fridim joined #perl6
19:32 kolibrie TimToady: I also noticed that gimme5 translates 'grammar Hello' nicely, but not 'grammar Hello::World' (it does not turn into 'package Hello::World', and the 'use YAML::Syck' line is not added)
19:37 TimToady <?{ self.pos > 42 }>
19:37 TimToady er
19:37 TimToady make that <?{ $¢.pos > 42 }>
19:38 TimToady current continuation, not the self at the top of the rule...
19:38 Su-Shee left #perl6
19:38 TimToady (immutable semantics says those are probably not the same object)
19:38 TimToady ((if you've already matched something))
19:40 kolibrie TimToady: where do I put that?  in my rule?
19:42 TimToady yes, it's just an assertion that runs code
19:43 TimToady ^ is equivalent to <?{ $¢.pod == 0 }>
19:43 TimToady .pos rather
19:43 TimToady have a fix for the other, checking
19:43 amoc er...
19:44 kolibrie TimToady: and if I match, and want to continue where I left off, where is my current pos stored?
19:44 amoc rakudo: my @list = 5,2,"9",True; say @list.sort: { $^a cmp $^b };
19:44 p6eval rakudo 6c43f9: OUTPUT«1259␤»
19:45 amoc rakudo: Code cmp 4;
19:45 p6eval rakudo 6c43f9: OUTPUT«Multiple Dispatch: No suitable candidate found for 'cmp', with signature 'PP->I'␤in Main (/tmp/pXqBGHdfLN:2)␤»
19:45 amoc rakudo: my @list = 1,2,Code; say @list.sort: { $^a cmp $^b };
19:45 p6eval rakudo 6c43f9: OUTPUT«sh: ./perl6: No such file or directory␤»
19:45 TimToady whatever you've just captured, $<foo>.pos
19:46 TimToady or { $somevar = $¢.pos }
19:46 amoc the last code emits sth like: *** glibc detected *** rakudo-current: corrupted double-linked list: 0x093ffb30 ***
19:46 TimToady where top of rule has :my $somevar; perhaps
19:47 * amoc submits rakudobug anyway =
19:47 kolibrie TimToady: something like this?  rule TOP { <?{ $?.pos >= $<TOP>.pos }> }
19:48 pugs_svn r27266 | lwall++ | [gimme5] allow grammar Foo::Bar
19:48 TimToady I think you're not seeing my cent sign
19:48 TimToady it's not a ?
19:48 kolibrie no cent sign here
19:49 TimToady when I say ¢, it should be a cent sign
19:49 * kolibrie normally sees utf8 just fine
19:49 TimToady you can't ref $<TOP> from inside $<TOP>
19:49 TimToady er, inside TOP
19:50 TimToady it's not bound to $<TOP> till someone calls <TOP>
19:51 kolibrie I was thinking that.  Really I just want :continue (outside my grammar)
19:51 * kolibrie pulls r27266
19:53 TimToady then you can feed the previous $result in as long as it's still a Cursor and call $result.TOP to continue
19:55 TimToady which is basically what the whole grammar is doing to itself all the time
19:55 kolibrie so I take the result from my previous match, and call the TOP (or whatever token I want) on that, instead of calling 'parse' again?
19:59 TimToady yes
20:00 TimToady the result of a match is simultaneously a Match object, a Cursor object, and a grammar object representing the current language
20:01 kolibrie and to make it skip over non-matching stuff until it gets to the next match, I need to add that line to my rule
20:01 TimToady yes
20:01 TimToady whichever rule you call, doesn't have to be TOP
20:02 kolibrie rule TOP { <?{ $¢.pos >= 0 }> }
20:02 pugs_svn r27267 | kyle++ | [t/spec] Test for RT 54804
20:03 kolibrie but in real Perl 6, I should be able to specify that behavior outside my rule by how I call it
20:03 TimToady yes
20:04 PerlJam "real Perl 6"?
20:05 kolibrie PerlJam: I'm using gimme5 right now
20:06 kolibrie TimToady++ # r27266
20:08 kolibrie TimToady: unfortunately, when I put in that .pos >= 0, I get these kinds of errors: "my" variable $self masks earlier declaration in same scope at ...
20:09 TimToady that usually means you have a missing }
20:09 TimToady look for and error message with an earlier line number
20:09 TimToady *an
20:09 TimToady or look at what you just changed :)
20:11 kolibrie TimToady: here it is: 'Can't modify anonymous list ([]) in list assignment at ..., near "}"'
20:12 kolibrie and that line is translated weirdly: scalar(do { [qw(?{ $¢.pos )]= 0 }, $C);
20:14 kolibrie TimToady: nevermind - I had pasted the whole 'rule ...' inside the rule
20:18 kolibrie the match comes back instantly and is not successful, but when I put the string to match at pos 0, then it matches
20:26 Tene TimToady: got a minute to talk about parsing issues?
20:26 TimToady well, the minutes all come out of the same bag in the long run
20:27 Tene TimToady: The Perl 6 grammar is ambiguous about type names vs. function calls, or something, yes?  Rakudo, for example, registers class and module names when it parses them and uses those registrations when trying to decide how to parse other things.
20:28 kolibrie TimToady: now I am calling $result->TOP, in a while loop, and it seems to be working
20:29 Tene "Foo::Bar" is parsed differently depending on whether there had been a previous "module Foo::Bar {}" or not, yes?
20:31 TimToady correct
20:31 TimToady typenames are treated as standalone terms
20:31 TimToady we fudge the symbol table to not care which way Foo::Bar() is parsed, however
20:32 TimToady we don't bother to fudge constants however, so pi() is not going to find the constant
20:32 TimToady likewise enums
20:32 Tene So, if I dynamically define a namespace at runtime, like with "Foo{$name} := Bar;" or something vaguely like that, should I then be able to call Foo::Bar.new(), or does that need to be ::Foo::Bar.new()?
20:33 TimToady has to be ::Foo::Bar if it's not known
20:33 Tene Okay.
20:33 TimToady but if it's not known, how do you know to write Foo::Bar ;)
20:34 TimToady (yes, I know, generic code might be written beforehand...)
20:34 Tene What if the former happened at compile time, before Foo::Bar was parsed?
20:34 Tene Is it okay for a Perl 6 to allow that?
20:35 TimToady you can always say class Foo::Bar {...} to stub it first also
20:35 TimToady well, in theory
20:35 TimToady the former?
20:35 TimToady note however that ::Foo means something different within a signature
20:35 TimToady it means capture the type from the argument
20:36 TimToady so you have to do the stub declaration if you want to forward reference Foo in a sig
20:37 kolibrie TimToady: hmm, well, it works so long as the string to match is only preceeded by whitespace.  As soon as I put any non-space character before it in the string, the match is never successful
20:38 kolibrie actually, when there is only whitespace in front, it still works without that extra line, so that means that 'rule' is working correctly with whitespace
20:38 kolibrie but the .pos line is not helping
20:40 TimToady sorry, completely borked STD on my system, so I'm a bit distracted :)
20:41 kolibrie no problem - a borked STD needs fixing, definitely
20:48 alester I'm looking for some input, please
20:48 alester http://nopaste.com/p/aChIBPMr7
20:48 phenny alester: 25 Jun 12:04Z <moritz_> ask alester could you please give me enough privileges to delete spam comments on rakudo.org? (or clean it up yourself, if you have too much time ;-)
20:48 alester I'm about to run that on Perlbuz
20:48 alester moritz_: Example of spam comments?
20:50 PerlJam alester: that's funny because I already tend to do that these days.  So ++
20:50 alester any enhancements to the text?
20:50 frew joined #perl6
20:51 PerlJam alester: no.  It reads well.
20:51 alester thanks
20:51 TimToady for the last 9 years, when I say "Perl", I mean both :)
20:51 alester that's just you
20:51 alester You're kinda special.
20:52 TimToady Perl and the Art of Motorcycle Destruction
20:52 PerlJam These days when I say "Perl" I'm usually talking about Perl 6, but occasionally I'll mean both (especially when I'm talking about unchanged principles :)
20:52 PerlJam But ambiguity is nice :)
20:53 japhb alester: Agreed with PerlJam.  I've been doing that for months, not for just keeping Perl 6 in people's brains, but because I talk about both so often that if I don't say "Perl 6" and "Perl 5" (especially >= 5.10) I will hopelessly confuse people.  :-)
20:53 moritz_ alester: http://rakudo.org/node/45#comments
20:53 literal alester: I'm wondering why you picked the year 2002 there
20:53 moritz_ alester: http://rakudo.org/node/44#comments
20:54 ejs joined #perl6
20:54 literal I thought the Perl 6 design process began in 2000, and implementation (pugs) in 2005
20:55 PerlJam literal: depends on what you really mean by "in development".  Designing is not developing to some but to others it is.
20:55 literal yeah, but something must have caused him to pick 2002, and I'm curious :)
20:55 PerlJam literal: and you could say that Perl 6 is the entire reason that parrot even exists.
20:55 alester perl FAQ says 2002 is when imp started.
20:56 PerlJam literal: when did parrot start again?  :)
20:57 PerlJam and there was an early perl5->perl6 translator someone did in perl 5 back then that fell to the wayside.   I wonder when that one was started?
20:58 alester so I should say 2000?
20:58 literal the design has definitely been ongoing since then (the RFCs, etc), don't know about development...
20:58 alester spam deleted.
20:59 moritz_ alester: thanks
21:00 alester ok gonna publish, with the headline "Let's start saying "Perl 5" to help promote Perl 6."
21:00 * kolibrie goes camping &
21:05 [particle]1 joined #perl6
21:10 alester wjat's the % of tests passing these days?
21:10 moritz_ % of what? existing tests?
21:10 alester yeah, the spec test
21:10 [bjoern] In a grammar, is there a way to say for a regex, never capture this, as opposed to making all the <refs> to it non-capturing?
21:10 moritz_ alester: 68%
21:11 moritz_ 11548/16909
21:11 [bjoern] (for example, you may allow comments in many places but always want to have them ignored)
21:12 iblechbot joined #perl6
21:12 moritz_ [bjoern]: not that I know
21:13 pugs_svn r27268 | moritz++ | [t/spec] move eqv.t to S03-operators/ where I'd expect it
21:13 [bjoern] okay
21:14 wknight8111 joined #perl6
21:15 PerlJam [bjoern]: though that does seem like a useful addition.
21:16 moritz_ it requires knowlege of the callee side when you look at the caller
21:23 Limbic_Region joined #perl6
21:27 pugs_svn r27269 | moritz++ | [t/spec] tests for LTM and action methods
21:31 eternaleye TimToady: In talking with moritz_++, we came across that the .params method on a Signature returns an Array of Pair. The problem with this is that it's not exactly clear which elements/properties belong to which parameters. I think waht would make the most sense would probably be a List (indexed by position in the declaration, cf S06:767) of Hash (keyed by property, eg slurpy, positional, named, etc). This would allow an easy
21:31 eternaleye check for slurpies in, say, infix:<...> by using 'if +&generator.signature.params.grep( *.<slurpy> )'
21:32 eternaleye It's also decidedly clumsy to pull keyed info out of an Array of Pair
21:34 eternaleye (potentially s/List/Capture/)
21:34 lisppaste3 [bjoern] annotated #82550 "Slightly cleaned up version of ABNF grammar" at http://paste.lisp.org/display/82550#1
21:46 eternaleye [bjoern]: you can make a subrule not capture with a leading dot. For instance, <foo> capures but <.foo> does not
21:47 eternaleye The canonical example is implicit whitespace in 'rule', which is specced as non-capturing and is expressed as <.ws>
21:48 eternaleye [bjoern]: Never mind, I misunderstood you
21:48 [bjoern] :-)
21:48 eternaleye you want something like rule foo :nevercapture { ... } ?
21:50 [bjoern] Well, I was wondering if using <.comment> all over instead of plain <comment> is the best way to do this; if there was a :nevercapture, then using that might be better in some cases.
21:50 [bjoern] I see no particular reason why there should be a :nevercapture, so it's not something that I /want/ to have.
21:51 eternaleye Ah
21:52 justatheory joined #perl6
21:53 kozuscek left #perl6
21:53 [particle] joined #perl6
21:55 snarkyboojum joined #perl6
22:21 sri_kraih_ joined #perl6
22:46 pugs_svn r27270 | kyle++ | [t/spec] Fix the plan I broke in optional.t
22:47 lichtkind_ joined #perl6
23:11 pugs_svn r27271 | lwall++ | [STD] fix bad OUTER link, s/$?TYPE/$?STAB/
23:11 pugs_svn r27271 | lwall++ | [CORE] remove dups
23:11 pugs_svn r27271 | lwall++ | [NULL.pad] add missing links for compiling CORE.setting without warnings
23:14 TimToady [bjoern]: you could do it by defining a macro that looks like an assertion, I suppose
23:16 TimToady some kind of metachar:«<foo>» rule that beats out < under LTM
23:19 TimToady std: 71
23:19 p6eval std 27270: OUTPUT«ok 00:02 35m␤»
23:20 AzureStone_ joined #perl6
23:21 nErVe joined #perl6
23:28 skids joined #perl6
23:43 payload joined #perl6
23:44 sri_kraih joined #perl6
23:46 TimToady std: 71
23:46 p6eval std 27271: OUTPUT«ok 00:02 35m␤»

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

Perl 6 | Reference Documentation | Rakudo