Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2010-05-10

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:11 yinyin joined #perl6
00:21 sorear jnthn: Hi!
01:06 lue o hello!
01:20 BrowserUk joined #perl6
01:20 BrowserUk left #perl6
01:28 justatheory joined #perl6
01:40 alester joined #perl6
01:40 snarkyboojum joined #perl6
01:40 lue hello?
01:41 * colomon hears nothing but silence....
01:41 snarkyboojum hilue
01:42 lue I don't hear TimToady's cricket
01:42 sorear I don't hear jnthn either
01:43 * snarkyboojum hears the gentle rumble of snoring
01:44 colomon actually it's the gentle rumble of purring here.
01:44 * lue hates the fact that it's always dead when he can get online :/
01:45 snarkyboojum we need a 'per6 irc log with playback; feature :P
01:46 Targhan joined #perl6
01:46 snarkyboojum how's binding looking lue?
01:46 lue P6DVR...
01:46 lue binding?
01:46 lue oh!
01:46 lue Still researching :/
01:47 Targhan Is rakudo supposed to be compilable on a windows platform, and pass a majority of the tests that it does on Linux?
01:47 snarkyboojum ah v. good - read your blog post
01:47 snarkyboojum Targhan: I think so, one of the primary devs works on windows (someone correct me if I'm wrong)
01:48 Targhan I've been interested in getting into perl 6 dev stuff and have decided I don't want to setup a linux machine at home
01:48 Targhan but the instructions are a bit spartan.  happen to know who does dev on windows?
01:48 lue you wouldn't believe how hard it is to find where variables are initialized (then again, when I was told there was no API...)
01:49 snarkyboojum Targhan: jnthn - one the main men :)
01:49 Targhan Hmmm http://sourceforge.net/projects/parrotwin32/files/ seems to have some information
01:49 Targhan Thanks the tip
01:49 snarkyboojum there's a binary distribution for win too I think
01:49 sorear lue: I know right now exactly how to implement binding in Rakudo
01:49 colomon I think jnthn develops on Windows, but I think he's on a plane at the moment.
01:49 Targhan Hmmm nevermind, that page is just binaries
01:49 lue how?
01:49 sorear lue: Wake up TimToady so I can ask him one question
01:50 sorear lue: Once you've done that, I'll add binding to one of my rakudo forks
01:50 Targhan I'm looking for the checklist of things to install to actually build on windows
01:50 Targhan like I installed msysgit, which in turn wants svn installed so it can load the pugs unit tests.
01:50 snarkyboojum Targhan: where are you looking?
01:50 Targhan and I highly doubt windows comes with a C compiler standard so I know I'll need that too
01:50 snarkyboojum Targhan: yep - you will :)
01:50 Targhan well I did a git clone on the repository and looked at the README
01:50 * lue swipes TimToady's cricket
01:51 sorear snarkyboojum: jnthn is on Windows
01:51 Targhan interestingly msysgit comes with perl 5.8.8
01:51 snarkyboojum sorear: aye - thought so ^^
01:51 Targhan anyway I'll hack around some more on my own.  In theory I shouldn't need handholding for this part.
01:51 molaf joined #perl6
01:55 snarkyboojum Targhan: should just be a matter of building parrot and then rakudo. Having said that I've never done either on windows, but have fun!
01:56 Targhan well the issue is more that windows comes with far fewer programming tools than linux, and the build process can take a lot of them for granted
01:56 Targhan like the readme says you need unicode libraries installed, which I assume linux has for free and is non-standard on linux
01:57 snarkyboojum Targhan: aye. I remember reading about people building rakudo with mingw on one of the mailing lists
01:57 lue .oO(wow! this is in Actions.pm: my $name  := $sigil ~ $twigil ~ $desigilname;)
01:57 lue .oO( := )
01:57 snarkyboojum Targhan: the unicode libraries (ICU) are optional, but some features mightn't work fully without them
01:58 PerlJam lue: nqp doesn't do assignment.
01:58 colomon lue: nqp uses := everywhere.
01:58 lue oh yeah. I forgot the part where nqp parses all the p6 :P
01:59 snarkyboojum nqp only does binding right?
01:59 snarkyboojum ah - colomon's statement :)
02:00 Psyche^ joined #perl6
02:00 * lue wonders if there's a unicode glyph for face in hands, or pulling hair
02:00 sorear Targhan: You're only like the fifteenth person who has read our README and concluded ICU was required
02:00 sorear Targhan: What sentence do we need to fix?
02:00 sorear There's obviously a bug in it.
02:01 sorear lue: shouldn't be.
02:01 diakopter m( <--- facepalm
02:03 lue Let ye who live without Unicode, suffer. Seriously, unicode plays an important role in P6. At some point, it ought to be required.
02:05 sorear Unicode is required.  ICU isn't
02:06 lue hm, apparently, some forms of := call a BIND function...
02:06 sorear (insofar as the standard library is full of French quotes, and you'll need to build that)
02:06 sorear lue: cite?
02:08 lue in core/operators.pm
02:08 lue !BIND is in builtins/Signature.pir
02:09 sorear rakudo sources are never to be considered normative
02:10 lue that's where I got it. It's for Signatures, apparently :/
02:11 sorear the binder is *scary*
02:13 lue and it wouldn't work for two Mu's anyway.
02:13 snarkyboojum how did it work in alpha?
02:14 lue rakudo: my $a = 3; my $b := $a; $b = 6; say $a;
02:14 p6eval rakudo 27e05a: OUTPUT«:= binding of variables not yet implemented␤current instr.: '&die' pc 17905 (src/builtins/Junction.pir:393)␤»
02:14 lue alpha: my $a = 3; my $b := $a; $b = 6; say $a;
02:14 p6eval alpha 30e0ed: OUTPUT«6␤»
02:15 * lue dashes to alpha source
02:21 lue first of all, it's PIR code, and it's in [alpha's] builtins/assign.pir
02:21 lue no guarantees it would work though. Can't be that easy...
02:21 JimmyZ joined #perl6
02:21 sorear keep in mind that alpha and ng are ~unrelated
02:22 colomon rakudo: my @array = 'a'..'f'; my %hash = @array »=>» 1; say %hash.perl
02:22 p6eval rakudo 27e05a: OUTPUT«{"c" => 1, "d" => 1, "e" => 1, "f" => 1, "a" => 1, "b" => 1}␤»
02:22 mtnviewmark joined #perl6
02:23 lue of course. seems a bit suspicious. Do we have Perl6Scalar in master?
02:25 sorear alpha doesn't have := in assign.pir
02:25 sorear you're looking at the implementation of =
02:25 sorear := is somewhere else entirely
02:25 sorear and it IS that easy, but you just won't listen to me
02:25 lue I could swear that was := at the beginning... oh well.
02:26 sorear infix:=  means "infix" : "="
02:26 sorear see also infix:~~, infix:+, etc
02:26 lue sorear: I don't recall you saying anything about the difficulty of binding (quick backlogging)
02:26 sorear the implementation of := appears to be at line 143 of src/parser/grammar-oper.pg
02:27 lue thank you (looking)
02:36 lue .oO(if only I knew where in the guts variables are being created. Either there's a perception filter or I'm just thick :D)
02:39 agentzh joined #perl6
02:39 sorear whee, record rakudobuild speed
02:40 sorear 10m15s real
02:41 lue ooh.
02:49 snarkyboojum joined #perl6
02:49 Tene oh, right, I need to try building rakudo on my new laptop.
02:50 snarkyboojum rakudo builds quickly on my new i7 (macbook pro) :)
02:50 molaf joined #perl6
02:51 JimmyZ new++
02:59 lue sb: :O
02:59 lue me wants macbook pro D:
03:04 lue afk
03:08 justatheory joined #perl6
03:22 jaldhar_ joined #perl6
03:26 * snarkyboojum just discovered --makefile-timing
03:26 snarkyboojum :)
03:36 gfx joined #perl6
03:47 suz joined #perl6
03:50 am0c joined #perl6
03:51 snarkyboojum joined #perl6
03:52 Tene real3m35.708s
03:52 Tene user4m27.422s
03:52 Tene sys0m3.278s
03:55 snarkyboojum I break the 3min mark on my new lappy
03:55 * snarkyboojum shuts up about the new laptop :)
03:56 skangas joined #perl6
03:59 diakopter I bloggeth'd: http://diakopter.blogspot.com/2010/05/jsmeta-became-csmeta.html
04:03 dalek rakudo: 3d3893a | (Martin Berends)++ | tools/test_summary.pl:
04:03 dalek rakudo: tools/test_summary.pl now logs Parrot and Rakudo versions, and has a much better report example
04:03 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/3d3893a4cd8039d0ac55cfcac289c607125086a2
04:05 snarkyboojum diakopter: v. cool post
04:09 diakopter thanks
04:10 snarkyboojum that Callable sytnax really isn't pleasant on the eyes eh (not that I understand it - which could be part of the problem perhaps)
04:11 diakopter Callable[:(ParamType0, ParamType1, ParamType2 --> ReturnType)]
04:11 diakopter I think the :() is a filter of some sort
04:11 diakopter actually it's not all that different from C#'s
04:12 diakopter Func<ParamType0, ParamType1, ParamTypee, ReturnType>
04:30 finanalyst joined #perl6
04:35 LionMadeOfLions joined #perl6
04:38 snarkyboojum in hindsight, I'm unqualified to comment :)
04:40 Targhan joined #perl6
04:42 alester joined #perl6
04:46 plobsing diakopter: have you considered the cheney/mta method as an alternative to trampolining?
05:01 sorear Tene: is that on master or codestring?
05:02 sorear er, trunk or codestring
05:04 * sorear wants to add better instrumentation to PCT
05:06 finanalyst good localtime. Any one here know what's happening to regex on rakudo recently
05:17 sorear Please elaborate.
05:17 sorear What are the symptoms?
05:18 finanalyst i have been trying to get regex to work.
05:18 finanalyst rakudo: my $x='qw=345 er=12'; $x ~~ m/ (<digit>+) /; .say for @($/)
05:18 p6eval rakudo 3d3893: OUTPUT«Method 'say' not found for invocant of class 'Regex;Match'␤current instr.: '_block68' pc 889 (EVAL_1:293)␤»
05:18 sorear don't use .say
05:18 sorear use say $_
05:18 sorear .say only works on Perl6 objects
05:19 finanalyst rakudo: my $x='qw=345 er=12'; $x ~~ m/ (<digit>+) /;  for @($/) { say $_}
05:19 p6eval rakudo 3d3893: OUTPUT«345␤»
05:19 sorear the rakudo regex engine is a foreign call and returns foreign objects
05:19 sorear (masak plan to fix that eventually)
05:19 kaare joined #perl6
05:19 finanalyst rakudo: my $x='qw=345 er=12'; $x ~~ m/ (<digit>+) + /;  for @($/) { say $_}
05:19 p6eval rakudo 3d3893: OUTPUT«345␤»
05:20 sorear This is a very important principle of regex.  It only matches things that are in the pattern.
05:20 finanalyst rakudo: my $x='qw=345 er=12'; $x ~~ m:g / (<digit>+) /;  for @($/) { say $_}
05:20 p6eval rakudo 3d3893: OUTPUT«Could not find sub &m:g␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
05:20 sorear You told it to match contiguous sequences of digits.  You can't have " er=" in a contiguous sequence of digits.
05:21 finanalyst so how do i parse the whole sequence?
05:21 finanalyst and then extract the digit bits
05:22 finanalyst i thought i had it figured out for alpha and wrote working code, but the code doesnt work any moe
05:22 sorear rakudo: 'qw=345 er=12' ~~ m/ [(<digit>+) .*?]* /; for @() { say $_ }
05:22 p6eval rakudo 3d3893:  ( no output )
05:22 sorear not sure if that'll work
05:22 sorear ok
05:22 sorear rakudo: 'qw=345 er=12' ~~ m/ [(<digit>+) .*?]* /; for @($/) { say $_ }
05:22 p6eval rakudo 3d3893: OUTPUT«␤»
05:24 finanalyst rakudo: 'qw=345 er=12' ~~ m/ (<!digit>+ <digit>+)+ /; for @($/) { say $_ }
05:24 p6eval rakudo 3d3893:  ( no output )
05:26 finanalyst rakudo: '123456' ~~ m/(<digit>)+/; for @($/) { say $_ }
05:26 p6eval rakudo 3d3893: OUTPUT«123456␤»
05:26 sorear rakudo: say 'qw=345 er=12'.comb(/(<digit>)+/).eager.perl
05:26 p6eval rakudo 3d3893: OUTPUT«("345", "12")␤»
05:26 sorear rakudo: say 'qw=345 er=12'.comb(/\d+/).eager.perl
05:26 finanalyst ahhhhh light dawns
05:27 p6eval rakudo 3d3893: OUTPUT«("345", "12")␤»
05:27 finanalyst thank you
05:28 sorear could also do
05:29 finanalyst rakudo say 'dw=345 er=12'.comb(/.*?\=<digit>+/).eager.perl
05:30 sorear rakudo: grammar Pairs { rule pair { (\w+) "=" (\d+) { make($0 => $1) } }; rule TOP { <pair>* { my %h = $<pair>».ast; make %h } }; }; Pairs.parse('qw=345 er=12').ast.perl.say
05:30 p6eval rakudo 3d3893: OUTPUT«Method 'list' not found for invocant of class 'ResizablePMCArray'␤current instr.: '!dispatch_method_parallel' pc 357 (src/glue/dispatch.pir:71)␤»
05:31 sorear or not
05:31 finanalyst rakudo:  say 'dw=345 er=12'.comb(/.*?\=<digit>+/).eager.perl
05:31 p6eval rakudo 3d3893: OUTPUT«("dw=345", " er=12")␤»
05:32 finanalyst rakudo:  say 'dw=345 er=12'.comb(/(\w+) "=" (\d+)/).eager.perl
05:32 p6eval rakudo 3d3893: OUTPUT«("dw=345", "er=12")␤»
05:41 Heame joined #perl6
05:41 Heame left #perl6
05:44 bakedb__ joined #perl6
05:51 finanalyst rakudo: my rule pair { (\w+) "=" (\d+) { make($0 => $1) } }; 'qw=12 er=34' ~~ m/<pair>*/
05:51 p6eval rakudo 3d3893: OUTPUT«Method 'pair' not found for invocant of class 'Regex;Cursor'␤current instr.: '_block96' pc 1364 (EVAL_1:439)␤»
05:52 finanalyst std: my rule pair { (\w+) "=" (\d+) { make($0 => $1) } }; 'qw=12 er=34' ~~ m/<pair>*/
05:52 p6eval std 30610: OUTPUT«ok 00:01 115m␤»
05:52 finanalyst sorear: rakudo not accepting named rules/regexen
05:53 finanalyst can this be true?
05:54 sorear finanalyst: we're still failing over 8,000 tests
05:54 uniejo joined #perl6
06:05 finanalyst sorear: ok, i understand. its just that matching and grammars are such an important part of perl6, I thought it would be one of the first things to be de-bugged
06:06 sorear matching and grammars are one of the most complicated parts of perl6
06:06 sorear we don't currently implement /any/ of it
06:08 sorear "grammar" and // in Rakudo is just a foreign call to Regex::Cursor:from<parrot>
06:08 sorear it's the same PEG engine which runs Perl6::Grammar
06:08 sorear since it's just a bootstrap engine, it's quite limited
06:09 sorear also, it returns :from<parrot> objects, which do not inherit from Mu and do not support methods like .say
06:11 sorear phenny: tell jnthn that I hear you're an expert on YOU_ARE_HERE.  Would you review topic/lexical-persistence on my rakudo github fork?  It implements proper "my" handling in the REPL
06:11 phenny sorear: I'll pass that on when jnthn is around.
06:22 finanalyst sorear: thank you for the explanation.
06:25 sorear on the silver lining side, this means that you can just take a Rakudo m// object and monkeypatch it into the Perl6::Grammar symbol table and it *just works*
06:25 sorear macros would have been at least 10x harder if we weren't relying on the bootstrap regex engine for user code
06:28 JimmyZ joined #perl6
06:40 pugssvn r30611 | moritz++ | [t/spec] be more liberal with expected error in rx.t
06:49 moritz_ diakopter++ # some seriously cool blogging
06:50 finanalyst sorear: could you give an example of how to monkeypatch m// into Perl6::Grammar symbol table
06:53 sorear macro term:<tomorrow> { "now + 86400" }
06:57 moritz_ rakudo: multi sub a($, $) { }
06:57 p6eval rakudo 3d3893:  ( no output )
06:58 moritz_ still uses the old parrot
07:04 moritz_ rakudo: my @a = <a b c>; my %h = @a Z 1 xx *
07:05 p6eval rakudo 3d3893:  ( no output )
07:05 moritz_ rakudo: my @a = <a b c>; my %h = @a Z 1 xx *; say %h.perl
07:05 p6eval rakudo 3d3893:  ( no output )
07:06 Su-Shee joined #perl6
07:17 dalek nqp-rx: 9d4c8a9 | sorear++ | src/NQP/Compiler.pir:
07:17 dalek nqp-rx: Add to command options, not overwrite them
07:17 dalek nqp-rx: The PCT --stagestats option is now usable with NQP-rx (previously it was not
07:17 dalek nqp-rx: accessible because the "larger" list of command options we used didn't include
07:17 dalek nqp-rx: it).
07:17 dalek nqp-rx: review: http://github.com/perl6/nqp-rx/commit/9d4c8a91d441c65fa11476ed583257d8eb7ebec7
07:20 Tene sorear: master
07:21 Tene sorear: I'm way out of touch.  I don't know what any of the branches are anymore.
07:22 sorear Tene: the "codestring" parrot branch speeds up rakudobuilds by about 20% (if you apply a NQP-rx patch in topic/no-codestring-target)
07:24 sorear 124 seconds to parse (and run action methods for) the setting
07:24 sorear 53 seconds in PAST::Compiler
07:27 sorear 185 seconds in POST::Compiler
07:27 sorear peak memory usage 300M
07:29 sorear for Test.pm, the breakdown is 5.6/1.7/1.1
07:32 viklund joined #perl6
07:32 sorear moritz_: Could you look over topic/stagestats?  13 lines had to be changed to get those numbers
07:33 meppl joined #perl6
07:42 moritz_ sorear: sorry, have to run now, will try to look later
07:44 quester_ joined #perl6
07:46 [mark] joined #perl6
07:52 Maddingue joined #perl6
07:54 sorear moritz_: Is there a better way to get patches looked at?  (should I be sending them to RT?)
08:06 agentzh joined #perl6
08:09 JimmyZ I think the better way is to send a CLA
08:12 moritz_ sorear: yes, RT is canonical
08:13 moritz_ sorear: currently the situation for patches is rather bad, with pmichaud not having really returned yet, and jnthn being stuck in Iceland
08:16 moritz_ sorear: anyway, persistent REPL and macros are so cool, we'll surely bother either of them until they've reviewed the patches
08:18 moritz_ sorear: another thing... rakudo needs to implement the \e escape in regexes; I've tried adding it to Perl6::Grammar and it seemed not to havy any effect... do you know why?
08:18 moritz_ does regex parsing recurse into the nqp-rx grammar, maybe?
08:21 moritz_ diakopter: can you somehow tag your Perl 6 relateed blog posts, so that we can assemble them with planetsix?
08:21 dakkar joined #perl6
08:21 JimmyZ where is it?
08:22 moritz_ http://diakopter.blogspot.com/
08:25 JimmyZ thanks.
08:31 quester_ left #perl6
08:34 masak joined #perl6
08:35 masak oh hai, #perl6
08:35 moritz_ \o/ it's masak
08:35 masak \o/
08:41 agentzh joined #perl6
08:44 masak diakopter++ # http://diakopter.blogspot.com/2010/05/jsmeta-became-csmeta.html
08:45 masak it is informative to have things presented in the blog post format like this.
08:46 masak is 'middle end' an established CS term? because it's really an oxymoron. :)
08:46 moritz_ the middle also ends somewhere :-)
08:48 masak that's more of a pun than an excuse. :)
08:50 * moritz_ likes puns
08:51 masak time puns like an arrow.
08:52 moritz_ I don't like all puns, though :-)
08:52 masak :P
08:55 masak from the latest Design Minutes: 'STD now allows subscripts on regex variables so $x[0] isn't taken as a character class; still needs speccing'
08:56 masak wouldn't that follow implicitly from variable interpolation working the same in regexes as in double-quoted strings?
08:56 moritz_ it should
08:56 moritz_ std: my $x; / $x.join() /
08:56 p6eval std 30611: OUTPUT«ok 00:01 113m␤»
08:56 masak hm. reading on in the minutes, it seems they aren't though.
08:57 moritz_ std: / () /
08:57 masak bare arrays interpolate.
08:57 p6eval std 30611: OUTPUT«[31m===[0mSORRY![31m===[0m␤Null pattern not allowed at /tmp/QRNPaNrRp2 line 1:␤------> [32m/ ([33m⏏[31m) /[0m␤    expecting regex atom␤Parse failed␤FAILED 00:01 110m␤»
08:57 moritz_ masak: right
08:57 moritz_ but that's fine, IMHO
08:57 moritz_ because @ is already disallowed
08:58 moritz_ because it's non-alpha but has no specific extra meaning
08:58 moritz_ so there's no ambiguty
08:58 moritz_ (that's why TimToady and pmichaud talked about bare @, iiuc)
08:58 masak *nod*
08:58 moritz_ std: / @ /
08:58 p6eval std 30611: OUTPUT«[31m===[0mSORRY![31m===[0m␤Unrecognized regex metacharacter (must be quoted to match literally) at /tmp/ERkC3wREUP line 1:␤------> [32m/ @[33m⏏[31m /[0m␤Can't call method "_REDUCE" on unblessed reference at Cursor.pm line 731.␤FAILED 00:01 113m␤»
09:03 masak moritz_: somehow I feel Aristotle is onto something here: http://use.perl.org/comments.pl?sid=44812&amp;cid=71979
09:03 masak but I can't quite figure out how it should be.
09:03 moritz_ X is wrong; colomon++ is right
09:04 moritz_ or, wait
09:04 masak colomon? where is he right?
09:04 moritz_ rakudo: say (1, 2, 3 X 'a', 'b').perl
09:04 p6eval rakudo 3d3893: OUTPUT«(1, "a", 1, "b", 2, "a", 2, "b", 3, "a", 3, "b")␤»
09:04 moritz_ masak: didn't he comment there too?
09:05 masak ah, yes. now I see.
09:05 molaf joined #perl6
09:05 moritz_ rakudo: say (1, 2, 3 X 'a').perl
09:05 masak >>=>>> strikes again!
09:05 p6eval rakudo 3d3893: OUTPUT«(1, "a", 2, "a", 3, "a")␤»
09:05 masak colomon++
09:05 moritz_ so, that does seem to be right
09:05 moritz_ rakudo: my @a = <a b c>; say @a X 1
09:05 p6eval rakudo 3d3893: OUTPUT«a 1b 1c 1␤»
09:05 masak some day I hope to be able to reach for that idiom first thing :)
09:06 moritz_ rakudo: my @a = <a b c>; say (@a X 1).perl
09:06 p6eval rakudo 3d3893: OUTPUT«("a", 1, "b", 1, "c", 1)␤»
09:06 moritz_ oh, aristotle++
09:06 moritz_ rakudo: my @a = <a b c>; my %h = @a X 1; say %h.perl
09:06 p6eval rakudo 3d3893: OUTPUT«Odd number of elements found where hash expected␤current instr.: '&die' pc 17905 (src/builtins/Junction.pir:393)␤»
09:06 moritz_ rakudo: my @a = <a b c>; my %h = (@a X 1); say %h.perl
09:07 p6eval rakudo 3d3893: OUTPUT«Odd number of elements found where hash expected␤current instr.: '&die' pc 17905 (src/builtins/Junction.pir:393)␤»
09:07 moritz_ so, what's wrong? flattening?
09:07 moritz_ rakudo: my @a = <a b c>; say (@a X 1).elems
09:07 p6eval rakudo 3d3893: OUTPUT«3␤»
09:07 moritz_ rakudo: my @a = <a b c>; say (@(@a X 1)).elems
09:07 p6eval rakudo 3d3893: OUTPUT«3␤»
09:08 moritz_ it seems very contradictory that .perl returns a 6-elem list, and .elems reports 3
09:09 snarkyboojum left #perl6
09:10 moritz_ rakudo: my @a = <a b c>; my %h = (@a XZ 1); say %h.perl
09:11 p6eval rakudo 3d3893: OUTPUT«Odd number of elements found where hash expected␤current instr.: '&die' pc 17905 (src/builtins/Junction.pir:393)␤»
09:11 moritz_ rakudo: my @a = <a b c>; my %h = (@a X=> 1); say %h.perl
09:11 p6eval rakudo 3d3893: OUTPUT«{"a" => 1, "b" => 1, "c" => 1}␤»
09:17 masak ah! X=>
09:18 masak I think that was the solution my brain might have been groping for. moritz_++
09:21 moritz_ it seems that @list >>op>> scalar is the same as @list Xop scalar
09:27 masak the former runs the scalar in parallel, and the latter serially? :P
09:28 moritz_ that's a good point... does X imply order of execution?
09:28 moritz_ I guess it does, since it's a bit lazier
09:29 masak I think it has to, if it's to handle infinite arrays and ranges.
09:29 masak there's this fundamental tension between lazy and hyper...
09:29 masak just as in real life :P you seldom see someone being lazy and hyperactive at the same time.
09:33 masak rakudo: my $x='qw=345 er=12'; say $x.comb(/ <digit>+ /).perl.say
09:33 p6eval rakudo 3d3893: OUTPUT«("345", "12")␤1␤»
09:33 masak rakudo: my $x='qw=345 er=12'; say $x.comb(/ <digit>+ /).perl
09:33 p6eval rakudo 3d3893: OUTPUT«("345", "12")␤»
09:35 finanalyst masak: you repeated a snippet of mine. I am trying to generate a hash from a string like 'key=val key2=val2'
09:36 finanalyst rakudo is not matching spec yet, so i am trying to find a workaround, or if rakudo is right, what the correct syntax is
09:36 masak rakudo: say 'qw=345 er=12'.comb( / \w+ '=' \d+ /).perl
09:36 p6eval rakudo 3d3893: OUTPUT«("qw=345", "er=12")␤»
09:36 masak does that help?
09:36 moritz_ rakudo: my $x='qw=345 er=12'; say $x.comb(/ <digit>+ /, :match).perl
09:36 p6eval rakudo 3d3893: OUTPUT«Method 'perl' not found for invocant of class 'Regex;Match'␤current instr.: 'perl6;Iterator;_block15200' pc 461810 (src/gen/core.pir:61777)␤»
09:38 finanalyst not quite because comb gives a list of strings of the form 'key=val'
09:38 moritz_ rakudo: my %h = 'qw=345 er=12'.comb( / (\w+) '=' (\d+) /, :match).map({; .[0] => .[1]}); say %h.perl
09:38 p6eval rakudo 3d3893: OUTPUT«Method 'postcircumfix:<[ ]>' not found for invocant of class ''␤current instr.: '!postcircumfix:<[ ]>' pc 11329 (src/builtins/Role.pir:26)␤»
09:38 moritz_ rakudo: my %h = 'qw=345 er=12'.comb( / (\w+) '=' (\d+) /, :match).map({say $_.WHAT; .[0] => .[1]}); say %h.perl
09:38 p6eval rakudo 3d3893: OUTPUT«Regex::Match()␤Regex::Match()␤Method 'perl' not found for invocant of class 'Regex;Match'␤current instr.: 'perl6;Pair;perl' pc 495355 (src/gen/core.pir:73515)␤»
09:38 masak finanalyst: yes, but you can loop on those, split on the '=' and assign to the hash.
09:39 moritz_ rakudo: my %h = 'qw=345 er=12'.comb( / (\w+) '=' (\d+) /, :match).map({say $_.WHAT; $_.[0] => $_.[1]}); say %h.perl
09:39 p6eval rakudo 3d3893: OUTPUT«Regex::Match()␤Regex::Match()␤Method 'perl' not found for invocant of class 'Regex;Match'␤current instr.: 'perl6;Pair;perl' pc 495355 (src/gen/core.pir:73515)␤»
09:39 moritz_ rakudo: my %h = 'qw=345 er=12'.comb( / (\w+) '=' (\d+) /, :match).map({say $_.WHAT; ~$_.[0] => ~$_.[1]}); say %h.perl
09:39 p6eval rakudo 3d3893: OUTPUT«Regex::Match()␤Regex::Match()␤{"er" => "12", "qw" => "345"}␤»
09:39 moritz_ rakudo: my %h = 'qw=345 er=12'.comb( / (\w+) '=' (\d+) /, :match).map({~$_.[0] => ~$_.[1]}); say %h.perl
09:39 p6eval rakudo 3d3893: OUTPUT«Method 'postcircumfix:<[ ]>' not found for invocant of class ''␤current instr.: '!postcircumfix:<[ ]>' pc 11329 (src/builtins/Role.pir:26)␤»
09:39 moritz_ rakudo: my %h = 'qw=345 er=12'.comb( / (\w+) '=' (\d+) /, :match).map({; ~$_.[0] => ~$_.[1]}); say %h.perl
09:39 p6eval rakudo 3d3893: OUTPUT«Method 'postcircumfix:<[ ]>' not found for invocant of class ''␤current instr.: '!postcircumfix:<[ ]>' pc 11329 (src/builtins/Role.pir:26)␤»
09:39 moritz_ rakudo: my %h = 'qw=345 er=12'.comb( / (\w+) '=' (\d+) /, :match).map({say $_.WHAT; ~$_.[0] => ~$_.[1]}); say %h.perl
09:39 p6eval rakudo 3d3893: OUTPUT«Regex::Match()␤Regex::Match()␤{"qw" => "345", "er" => "12"}␤»
09:40 moritz_ why does it work with the say(), but not without?
09:40 moritz_ rakudo: my %h = 'qw=345 er=12'.comb( / (\w+) '=' (\d+) /, :match).map({say $_.WHAT; ~.[0] => ~.[1]}); say %h.perl
09:40 * masak snickers at 'jnthn is an expert at YOU_ARE_HERE' in the backlog
09:40 p6eval rakudo 3d3893: OUTPUT«Regex::Match()␤Regex::Match()␤{"er" => "12", "qw" => "345"}␤»
09:40 masak I'm sure he is, it just sounds funny :P
09:40 moritz_ rakudo: my %h = 'qw=345 er=12'.comb( / (\w+) '=' (\d+) /, :match).map({say 1; ~.[0] => ~.[1]}); say %h.perl
09:40 p6eval rakudo 3d3893: OUTPUT«1␤1␤{"er" => "12", "qw" => "345"}␤»
09:40 moritz_ rakudo: my %h = 'qw=345 er=12'.comb( / (\w+) '=' (\d+) /, :match).map({1; ~.[0] => ~.[1]}); say %h.perl
09:40 p6eval rakudo 3d3893: OUTPUT«{"er" => "12", "qw" => "345"}␤»
09:40 moritz_ finanalyst: there you go
09:40 masak moritz_++
09:40 finanalyst moritz_++
09:40 moritz_ it's the auld hash vs. block
09:41 moritz_ need a statement that doesn't look like a hash constructor to fool Rakudo
09:41 finanalyst in alpha {; ...} was sufficient
09:42 szabgab hi everyone
09:42 moritz_ and it should be; so should access to $_
09:42 moritz_ hi szabgab
09:42 szabgab you might recall that we are going to have a Perl booth on LinuxTag in Berlin in June
09:42 finanalyst rakudo: {; $a => 1 }.WHAT.say
09:42 p6eval rakudo 3d3893: OUTPUT«Symbol '$a' not predeclared in <anonymous>␤current instr.: 'perl6;PCT;HLLCompiler;panic' pc 152 (compilers/pct/src/PCT/HLLCompiler.pir:108)␤»
09:42 szabgab where we would also like to show Rakudo
09:43 szabgab is there anyone here who could attend the event and help us ?
09:43 finanalyst rakudo: my $a; {; $a => 1}.WHAT.say; {1; $a => 1}.WHAT.say
09:43 p6eval rakudo 3d3893: OUTPUT«Hash()␤Block()␤»
09:44 szabgab I guess it is a "no"
09:44 szabgab so 2nd issue:
09:45 szabgab we need to fill out a form for each project so they can list them
09:45 szabgab does anyone else want to fill the form or shall I do it?
09:45 moritz_ for rakudo? or for perl?
09:46 szabgab for rakudo
09:46 moritz_ I can do that
09:46 szabgab I already did it for perl
09:46 szabgab then please go to https://vcc.linuxtag.org/  and fill it out
09:46 szabgab as much as you can
09:47 szabgab in "Partner projects, please put #16051 "
09:47 szabgab which is the id I have for "Perl"
09:47 szabgab and the booth is on that name
09:47 moritz_ do I need to open an account first?
09:48 masak szabgab: dude, you waited like one minute to get a volunteer for the booth.
09:48 masak szabgab: that's not how IRC works :P
09:48 szabgab :-)
09:48 finanalyst moritz_: looking at your parse to hash snippet, first time I see ~.[0]    What is ~ ?
09:48 szabgab I am still waiting, don't worry
09:48 moritz_ finanalyst: stringification
09:49 finanalyst stringification of what?
09:49 moritz_ of .[0]
09:49 finanalyst ohhhhhhh!!!!
09:49 szabgab masak, ?
09:50 masak szabgab: oh, I'm not volunteering. sorry :/
09:50 szabgab hah
09:50 masak my June is booked.
09:51 moritz_ szabgab: it seems that when I add a project, they think I'm going to attend
09:52 szabgab so what I am  saying and asking is for some one or more people to come by during the event and help us out there
09:52 szabgab moritz_, and is that a problem?
09:52 moritz_ szabgab: don't know. At least it's misleading
09:53 szabgab I really don't understand a lot of things about their web site
09:53 moritz_ I'll do it anyway
09:59 * moritz_ wonders whom to enter for "Press Contact"
09:59 moritz_ maybe just myself?
10:01 masak sure.
10:01 moritz_ done
10:02 szabgab and pls let me know the # of the project so I can update it on http://www.perlfoundation.org/perl5/index.cgi?events_2010_linuxtag_berlin
10:02 rurban joined #perl6
10:03 moritz_ szabgab: #16124
10:04 szabgab thanks
10:04 szabgab btw I could not build the book
10:04 moritz_ what's the problem?
10:05 masak missing font?
10:06 szabgab http://paste.lisp.org/display/99022
10:06 szabgab and the pastebot does not work either :-(
10:06 szabgab oh what a day
10:06 szabgab and we have sand storm outside
10:07 szabgab it is stuck there and i don't even know how to exit from that prompt or whatever that is
10:08 moritz_ szabgab: try Ctrl + D
10:08 moritz_ is build/book.tex empty?
10:08 szabgab hmm, indeed that worked
10:08 szabgab size 0
10:09 szabgab paste updated
10:09 moritz_ szabgab: that's bad... it means that pod 2 tex translation went wrong, without an error message
10:10 moritz_ did have a failed attempt running 'make' beefore installing the required modules?
10:11 moritz_ if so, please try 'make clean' before running 'make' again
10:21 szabgab oh, that improved
10:21 szabgab not it asks me to enter file name:
10:21 szabgab ! LaTeX Error: File `bera.sty' not found.
10:21 moritz_ there you go
10:21 szabgab bbl
10:22 szabgab cps
10:22 moritz_ I did write in the README that you need the bera latex package :-)
10:26 masak <masak> missing font?
10:26 masak :)
10:27 * moritz_ hands masak the Successful Application Of Crystal Ball award; Congratulations! :-)
10:27 * masak bows humbly
10:28 masak I'd like to thank my parents...
10:28 moritz_ .oO( the Lisp programmer would say: I'd like to thank my parens )
10:28 masak *lol*
10:28 Su-Shee *hihi* :)
10:34 sbp ouch
10:41 colomon rakudo: say (1, 2, 3 X=> 'a').perl
10:41 p6eval rakudo 3d3893: OUTPUT«(1 => "a", 2 => "a", 3 => "a")␤»
10:41 masak moritz_: what's currently blocking Match being a real Perl 6 class?
10:45 szabgab masak, moritz_  so how do I install that font ?
10:46 colomon Ah, I see moritz_++ eventually figured that one out.  (backlogging)
10:48 vegard left #perl6
10:49 masak "Proto is I<the> awesome dependency tracking and module installation system."
10:49 masak no, no, no, no, no! :P
10:49 colomon X=> is totally the best solution for @a X=> 1 making pairs, as it will be lazy in @a and its output.
10:50 masak *nod*
10:50 masak moritz_: did you see the two 'website for proto' contributions that just landed on p6c?
10:51 masak my client says they're from two days nad 12 hours ago, respectively. but I got them just now.
10:53 * szabgab installing texlive-fonts-extra
10:59 bacek joined #perl6
11:01 bacek o/
11:02 bacek rakudo: my $a="foo"; my $b="bar"; say $a.comb Z $b.comb;
11:02 p6eval rakudo 3d3893: OUTPUT«bbar␤»
11:02 colomon bacek: that's the gather bug in action, I'd say.
11:03 bacek rakudo: my $a="foo"; my $b="bar"; my@a=$a.comb; my @b=$b.comb; say @a Z @b;
11:03 p6eval rakudo 3d3893: OUTPUT«fboaor␤»
11:03 colomon yup
11:03 bacek colomon, ok
11:09 clintongormley joined #perl6
11:14 szabgab book built, thanks
11:15 dalek book: f20d2ae | (Gabor Szabo)++ | README:
11:15 dalek book: add name of package containing bera in Ubuntu
11:15 dalek book: review: http://github.com/perl6/book/commit/f20d2aec0a91e9db84f1a623749d437ff023351e
11:32 moritz_ wow, we've got 4 submissions to last week's contribution challenge
11:32 moritz_ time to prepare the next one; I hope I'll get it posted tomorrow
11:40 masak moritz_: in relation to the weekly contributions, I had one loose thought: it would be really nice to get a 'try Rakudo' site up and running. the trick is to divide the task into sufficiently doable chunks.
11:41 moritz_ masak: what would a 'try rakudo' site contain?
11:41 masak http://tryruby.org/
11:42 masak we had one for Pugs during the Golden Age.
11:42 moritz_ run.pugscode.org
11:42 colomon ah, so sorear's improved REPL might be a key component.
11:42 masak yeah.
11:43 rv2733 joined #perl6
11:44 moritz_ it would be really awesome to build such a project step by step
11:45 masak I wouldn't have suggested it if I hadn't seen the amazing progress of last week.
11:45 moritz_ something with many corners to polish :-)
11:45 masak so, perhaps one contribution could be to make a pretty js shell, without the Rakudo in it.
11:46 masak and then some enterprising soul can just swoop in and do the deep magic, corresponding to what was done for Pugs.
11:47 moritz_ masak: sounds great; needs more time to prepare
11:48 moritz_ I'll do a challenge first that fixes up some tests
11:48 masak indeed. just throwing it out before I forget.
11:49 moritz_ the most likely place for hosting would be feather3
11:51 moritz_ and I'm not much of a web person - not sure I'd be the right one to "mentor" it
11:51 moritz_ I can try though
11:52 Juerd Yep, that's what feather3's for
11:52 moritz_ I'm still slightly worried by rakudo not implementing any safety measures
11:52 masak aye, that is a cause for concern.
11:56 moritz_ http://www.globalnerdy.com/2010/05/09/new-programming-jargon/ # I like "Unicorny"
11:56 moritz_ and "Yoda Conditions"
11:57 envi^home joined #perl6
11:58 colomon "Drug Report"
12:01 masak "Bicrement"!
12:08 masak yeah, the term "Yoda Conditions" will definitely stick. I use those sometimes.
12:08 colomon seems like they are a good idiom for p6
12:09 moritz_ from a rational perspective I undstand why they are good
12:09 moritz_ but it just feels too unnatural
12:09 * colomon briefly worries that p6 might be insane enough to allow 5 = $a to actually do something to 5....
12:09 moritz_ rakudo: 5 = my $a
12:09 p6eval rakudo 3d3893: OUTPUT«Cannot assign to readonly value␤current instr.: '&die' pc 17905 (src/builtins/Junction.pir:393)␤»
12:09 colomon \o/
12:11 masak of course, a good static analyzer would obviate the need for Yoda Conditions.
12:12 moritz_ $ perl -wE 'if ($x = 4) { say $x }'
12:12 moritz_ Found = in conditional, should be == at -e line 1.
12:12 moritz_ 4
12:12 moritz_ perl++
12:12 masak \o/
12:12 moritz_ std: my $x;  if $x = 1 { .say }
12:12 p6eval std 30611: OUTPUT«ok 00:01 113m␤»
12:15 takadonet morning all
12:15 masak takadonet: \o
12:15 fridim joined #perl6
12:15 colomon rakudo: my $x = 10; if $x = 4 { say "darn" }
12:15 p6eval rakudo 3d3893: OUTPUT«darn␤»
12:15 takadonet ...
12:16 * moritz_ looks forward to see 'lid' in action
12:16 masak that's the coverage tool :) you're thinking of sigmund.
12:16 masak I have a proof-of-concept p5 sigmund running locally.
12:17 moritz_ oh
12:17 masak it barks at me when I put 'self' or attribute twigils in a sub, or when I don't in a method.
12:17 masak that's what it currently does.
12:17 * colomon is starting to find those new MacBook Pros (now allowing 8GB RAM) very appealing...
12:18 moritz_ uhm, isn't allowing 8GB memory standard for non-ancient PC motherboards?
12:19 moritz_ 4 slots which can be equipped with 2G each
12:19 colomon not for laptops, to the best of my knowledge
12:19 moritz_ hm
12:19 moritz_ right, I'm mostly familiar with desktops only
12:20 bluescreen joined #perl6
12:20 colomon I admit I haven't checked to see if my current MBP could handle 8GB or not.  But I thought I max'd out the ram when I bought it...
12:20 lichtkind joined #perl6
12:20 colomon basically, spectest + C++ build in under Windows VM has slowed my machine down to a crawl....
12:22 lichtkind iv seen in Syn 06: macro circumfix:«<!-- -->» ($text) is parsed / .*? / { "" }
12:22 lichtkind shouldnt it be macro circumfix:«<!-- -->» ($text) is parsed / .*? / #{ "" } ?
12:23 masak no, why?
12:23 moritz_ why would the method body be a comment?
12:23 moritz_ s/method/macro/
12:23 masak that makes it effectively have no body, which is a parse error.
12:24 moritz_ it's just important that it returns an empty string or AST
12:24 masak patrickas++ snarkyboojum++ # test medals and project icons at http://proto.perl6.org/
12:25 masak time to put project icons in more projects :P
12:25 moritz_ is it documented somewhere how that works?
12:25 masak probably only implicitly in source.
12:25 moritz_ aka "no"
12:25 masak :)
12:25 masak hm, the displacement of the project name 'proto' by the icon feels wrongish.
12:26 masak but displacing all project names could be seen as wrongish too...
12:26 lichtkind masak: your right, thought comments where somewhat preserved in the AST
12:26 colomon what do the icons mean?
12:27 masak colomon: they're pictographs representing the project in an image form in an ad-hoc manner.
12:28 lichtkind moritz_: i ment you not masak :)
12:28 masak lichtkind: your question is based on a confusion that I, if I were you, would explore carefully.
12:29 takadonet nice with the medals!
12:29 masak :)
12:29 moritz_ lichtkind: comments have no place in an AST; just in a parse tree
12:29 moritz_ lichtkind: only POD may enter the AST if it is addressable via POD variables
12:30 lichtkind moritz_: but i never wrote a parser
12:30 moritz_ lichtkind: time to change that :-)
12:30 masak lichtkind: seems you're mixing up use and mention somehow. a comment in the source program is not the same as a comment in a quasiquote.
12:31 lichtkind masak: i found out from moritz comment that even if i tried just replace the comment I need to but the expressen inside the braces and use reparsed trait
12:32 moritz_ or just return a string
12:32 moritz_ which is then reparsed by default
12:32 moritz_ (iirc)
12:35 SmokeMachine joined #perl6
12:35 lichtkind yes
12:35 envi^home joined #perl6
12:36 lichtkind augment and supersede work only on grammars or on every object?
12:36 moritz_ grammars and classes, I think
12:36 ruoso joined #perl6
12:37 masak grammars are classes with a funny metaclass.
12:37 masak augment/supersede decidedly don't work on roles or subtypes, which are immutable.
12:37 moritz_ ie "grammars are classes, only not"
12:38 masak no, they are classes. no not needed, really.
12:38 masak in theory, you could emulate a grammar with a class.
12:38 moritz_ I know
12:38 masak but it'd take a lot of boilerplate.
12:38 masak I do it in GGE :)
12:38 moritz_ your statement just got me started
12:38 masak http://github.com/masak/gge/blob/master/examples/mygrammar
12:38 moritz_ ya know, the metaclass is what makes a class a class
12:39 masak no, the 'class' keyword is. :)
12:39 moritz_ so "with a funny metaclass" could also describe something that's decidedly very unlike a "standard" class
12:39 masak or, ultimately, TimToady is what makes a class a class. :P
12:39 * moritz_ chuckles
12:39 masak I skipped a few steps :)
12:42 lichtkind thank you guys
12:51 iblechbot joined #perl6
12:54 Guest54057 joined #perl6
12:59 pmurias joined #perl6
13:07 rgrau_ joined #perl6
13:08 masak is the order between multi candidates which tie (in narrowness layers wider than the layer which succeeds) defined?
13:09 * moritz_ doesn't understand the question
13:09 moritz_ care to re-phrase?
13:09 masak sure. give me a minute.
13:10 masak I have candidates foo(Any, Str), foo(Str, Any) and foo(Str, Str). I make the call foo("OH", "HAI"). the MMDer finds foo(Str, Str), which happens to contain a 'nextsame'. which candidate is the next one?
13:10 moritz_ none
13:11 moritz_ oh wait
13:11 moritz_ hrmpf
13:11 JimmyZ joined #perl6
13:11 masak now generalze that question to all possible candidates, and you have my original question.
13:11 moritz_ you'll get an ambiguous dispatch, no+
13:11 masak surely not.
13:11 moritz_ why not?
13:11 masak all three candidates are in the .WALK chain.
13:11 masak or whatever chain they're in.
13:11 moritz_ that's what you get if the (Str, Str) doesn't exist
13:12 masak sure.
13:12 moritz_ so why not the same behaviour for nextsame()?
13:12 hatseflats joined #perl6
13:13 masak because the MMD has already done it's job. now it's just a list of decreasingly narrow candidates.
13:13 masak rakudo: multi foo(Any, Str) { say "A"; nextsame }; multi foo(Str, Any) { say "B"; nextsame }; multi foo(Str, Str) { say "C"; nextsame }; foo("OH", "HAI")
13:13 p6eval rakudo 3d3893: OUTPUT«C␤Null PMC access in clone()␤current instr.: '&nextsame' pc 18507 (src/builtins/assign.pir:78)␤»
13:13 * masak submits rakudobug
13:14 moritz_ masak: unless it is really an acyclic graph of candidates, not a list
13:15 masak rakudo: multi foo() { nextsame }; foo()
13:15 p6eval rakudo 3d3893: OUTPUT«Null PMC access in clone()␤current instr.: '&nextsame' pc 18507 (src/builtins/assign.pir:78)␤»
13:19 masak moritz_: you might be right. in that case, my question doesn't make much sense.
13:20 masak I had a mental model of the candidates being collected before the first call, and then just being iterated on successive 'nextsame'-s.
13:22 moritz_ masak: they are collected before the first call, and they are in some kind of datastructur - but it's not a flat list
13:23 moritz_ masak: more of a directed, acyclic graph
13:24 masak why is that? I mean, why aren't they just in a list?
13:24 moritz_ because (Int, Any) and (Any, Int) can't be ordered one way or another
13:24 masak with that reasoning, a list of list would be enough for a data structure.
13:25 moritz_ suppose you have (Any, Any), (Any, Int) and (Int, Any)
13:25 moritz_ now if you call it with (Int, Hash)
13:25 moritz_ the candidate list should be (Int, Any) and (Any, Any)
13:25 masak *nod*
13:25 moritz_ so you need some kind of treeish construct
13:26 masak no, why?
13:26 masak the list worked fine in this case.
13:26 masak you even called it a 'candidate list' yourself.
13:26 [Coke]_ hey, a while back sorear mentioned an nqp-rx patch that worked with parrot's codestring branch. anyone have a pointer to the patch?
13:26 moritz_ but how do you efficiently select the candidates?
13:27 * masak doesn't understand what moritz_ considers to be the problem
13:27 moritz_ [Coke]_: there's a branch on github in the nqp-rx project
13:27 moritz_ colomon: called topic/no-codestring-target
13:27 moritz_ erm, [Coke]_
13:28 moritz_ masak: ok, you have a datastructure of the three signatures above
13:28 moritz_ masak: and you get an (Int, Hash) signature
13:28 moritz_ masak: how do you assemble the candidate $datastructure?
13:28 masak moritz_: oh, I definitely agree that prior to the MMD, the siggies need to be stored in a DAG.
13:28 moritz_ ok
13:28 masak moritz_: I was talking about during the 'nextsame' phase, though.
13:28 moritz_ then you do a dispatch
13:29 moritz_ you look for a candidate on the lowest level of that DAG
13:29 masak 'lowest' as in 'narrowest'?
13:29 moritz_ if you have two on the same level, you've got an ambiguous dispatch
13:29 moritz_ yes
13:29 JimmyZ joined #perl6
13:29 masak moritz_: I know all this. that wasn't my question.
13:30 moritz_ and every candidate connected as "wider" is your "candidate $mumble_data_structure"
13:30 moritz_ why should it suddenly be a list?
13:30 moritz_ it wasn't a list before
13:30 moritz_ it was a sub-graph of a DAG
13:30 masak I just assumed that it needn't be anything more complicated than a list.
13:31 moritz_ so you assume the existance of a function that turns that sub-graph into a list
13:31 masak in my model, things would never ambiguous-dispatch after the initial call.
13:31 moritz_ which uses some kind of disambiguation
13:31 moritz_ about which you asked in the first place
13:31 moritz_ right?
13:32 masak I asked about whether there was an explicit ordering between things which tie.
13:32 masak that question only makes sense if the list of candidates is a list.
13:32 moritz_ a list implies that such an ordering has already been applied
13:32 moritz_ unless it's a list of lists
13:33 moritz_ where the inner lists store tied candidates
13:33 moritz_ so now I understand why you talked about list of lists :-)
13:33 masak aye.
13:33 moritz_ so I understand the mental mismatch between our two models
13:33 masak the ordering has already been appled, but it might be arbitrary.
13:34 moritz_ and can't answer your question :(
13:36 masak I can't get any MMD nextsame to work right now.
13:36 moritz_ neither methods?
13:37 moritz_ rakudo: class A { multi method b(Any $x) { 'any' }; multi method b(Int $x) { say "Int"; nextsame }}; say A.new.b()
13:37 yakeworld joined #perl6
13:37 p6eval rakudo 3d3893: OUTPUT«No candidates found to invoke␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
13:38 moritz_ rakudo: class A { multi method b(Any $x) { 'any' }; multi method b(Int $x) { say "Int"; self.nextsame }}; say A.new.b()
13:38 p6eval rakudo 3d3893: OUTPUT«No candidates found to invoke␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
13:39 masak (you need to provide an argument)
13:39 masak but no, I didn't get them to work either. they also Null PMC access.
13:39 masak this feels like a regression.
13:40 moritz_ I thought I've used this somewhere in rakudo
13:41 moritz_ no, turns out I use callwith()
13:41 moritz_ in Grammar.parse
13:41 masak now, the things you've said above, about 'nextsame' doing a new MMD dispatch. I can see 'callwith' doing that. but not 'nextsame'.
13:41 masak oh wait.
13:41 moritz_ I've never said that
13:42 masak no, we discussed this the other day. TimToady, jnthn and I.
13:42 masak 'callwith' and 'nextwith' don't do a new dispatch either.
13:42 moritz_ in my mental model the candidate has a point to its current position in the DAG
13:42 masak they just look in the already collected list for matching siggies.
13:43 moritz_ so in my mental picture they walk the DAG into the direction of looser matches
13:43 masak and die on ties?
13:43 moritz_ and die on ties
13:44 masak that would make C3 dispatch an exception, right? because it provides an ordering where things might otherwise have died.
13:44 lichtkind thanks , and bye
13:45 masak lichtkind: \o
13:50 alester joined #perl6
13:53 diakopter pmurias: hi
13:57 pmurias diakopter: hi
13:57 phenny pmurias: 09 May 23:32Z <diakopter> tell pmurias it's going to be another few days to finish classes/methods.  They're somewhat more complex than I initially thought.  But it's all worked out in my head now, so I'm quite certain I can finish them soon.
14:02 PacoLinux joined #perl6
14:06 dalek csmeta: r263 | pawelmurias++ | trunk/Sprixel/t/class.t:
14:06 dalek csmeta: start of a test for classes
14:06 dalek csmeta: review: http://code.google.com/p/csmeta/source/detail?r=263
14:09 diakopter pmurias: I've worked out a way for perlesque classes to be mutually referential
14:10 diakopter they have to be gradually typed...
14:10 pmurias with predeclarantion?
14:10 diakopter yes, but the attributes/methods must be predeclared as well
14:11 diakopter the types of the attributes and the signatures of the methods
14:11 pmurias gradual typing as in http://ecee.colorado.edu/~siek/gradualtyping.html?
14:12 pmurias diakopter: why do attributes/methods have to be predeclared?
14:14 finanalyst rakudo: class AB{has @.x; method aa { .say for @x; .say for @.x[1 ..^ +@.x] } };my AB $y .=new(:x(1,2,3)); $y.aa;
14:14 p6eval rakudo 3d3893: OUTPUT«Symbol '@x' not predeclared in aa␤current instr.: 'perl6;PCT;HLLCompiler;panic' pc 152 (compilers/pct/src/PCT/HLLCompiler.pir:108)␤»
14:14 finanalyst rakudo: class AB{has @.x; method aa { .say for @.x; .say for @.x[1 ..^ +@.x] } };my AB $y .=new(:x(1,2,3)); $y.aa;
14:14 p6eval rakudo 3d3893: OUTPUT«1␤2␤3␤No applicable candidates found to dispatch to for 'postcircumfix:<[ ]>'. Available candidates are:␤:(Mu : Int $i;; *%_)␤:(Mu : Block $b;; *%_)␤:(Mu : !whatever_dispatch_helper ;; *%_)␤␤current instr.: '!postcircumfix:<[ ]>' pc 11329 (src/builtins/Role.pir:26)␤»
14:15 moritz_ ye auld "too many posticircumfix methods, not all of them do slices" error
14:15 finanalyst moritz_: pray elucidate
14:15 finanalyst when dont slices work?
14:15 masak finanalyst: @.x[1 ..^ +@.x] better written @.x[1 ..^ *]
14:16 finanalyst but that dont work
14:16 finanalyst no more
14:16 diakopter phenny: tell pmurias they must be predeclared so that if they're referenced in a class/routine, the parser knows their type, since the parser does type-checking _as_it_goes_
14:16 phenny diakopter: I'll pass that on when pmurias is around.
14:16 masak finanalyst: I see. :/
14:16 moritz_ finanalyst: there are lots of classes and roles in Rakudo that handle various Positional types
14:16 moritz_ finanalyst: and many of them have postcircumfix:<[ ]> methods
14:16 finanalyst and .....
14:16 moritz_ finanalyst: but most of them handle only a single argument, not slicing
14:17 moritz_ and that's wrong
14:17 colomon masak: actually, there's an ambiguity there, I think.
14:17 masak colomon: do explain.
14:17 diakopter phenny: tell pmurias then when the parser encounters the actual method bodies, it grabs the appropriate RunSharp.MethodGen handles and puts the method bodies in them.
14:17 phenny diakopter: I'll pass that on when pmurias is around.
14:17 colomon or at least, @.x[ 1 .. * ] is probably preferable to @.x [1..^ *]
14:18 finanalyst neither work currently
14:18 colomon (sorry for random spacing there)
14:18 moritz_ the former just indexes over the end of the array, which yields an additional Nil
14:18 masak colomon: both should mean the same, but yes, '..' looks nicer than '..^'.
14:18 moritz_ which vanishes in list context
14:18 finanalyst rakudo: my @x=1,2,3,4; .say for @x[1 .. *]
14:18 p6eval rakudo 3d3893:  ( no output )
14:19 moritz_ alpha: my @x=1,2,3,4; .say for @x[1 .. *]
14:19 colomon I believe you're wrong on two fronts there.
14:19 p6eval alpha 30e0ed: OUTPUT«2␤3␤4␤Use of uninitialized value␤␤»
14:19 colomon 1 .. * should be a Range, not a Whatever closure
14:19 colomon It's the same as 1 .. Inf
14:19 masak fair enough.
14:20 finanalyst what I dont understand is why something works ok outside a method but not inside a method
14:20 colomon and [1 .. Inf] is supposed to stop when you run out of elements.
14:20 colomon finanalyst: what are you thinking of?
14:20 finanalyst rakudo: my @x=1,2,3,4; .say for @x[1 ..^ +@x]
14:20 p6eval rakudo 3d3893: OUTPUT«2␤3␤4␤»
14:20 finanalyst works
14:21 finanalyst rakudo: class AB{has @.x; method aa { .say for @.x; .say for @.x[1 ..^ +@.x] } };my AB $y .=new(:x(1,2,3)); $y.aa;
14:21 p6eval rakudo 3d3893: OUTPUT«1␤2␤3␤No applicable candidates found to dispatch to for 'postcircumfix:<[ ]>'. Available candidates are:␤:(Mu : Int $i;; *%_)␤:(Mu : Block $b;; *%_)␤:(Mu : !whatever_dispatch_helper ;; *%_)␤␤current instr.: '!postcircumfix:<[ ]>' pc 11329 (src/builtins/Role.pir:26)␤»
14:21 finanalyst doesnt work
14:21 colomon ah, I believe that's an array-handling bug.
14:21 masak that is indeed odd.
14:22 moritz_ seems like @.x is not the same kind of array as @x
14:22 moritz_ rakudo: class A { has @.x }; say A.new(:x[1, 2, 3]).x.WHAT
14:22 p6eval rakudo 3d3893: OUTPUT«Array()␤»
14:22 colomon ran into this same sort of problem passing @x as an argument.
14:22 moritz_ rakudo: class A { has @.x }; say A.new(:x[1, 2, 3]).x.PARROT
14:22 p6eval rakudo 3d3893: OUTPUT«Array␤»
14:23 finanalyst rakudo: class AB{has @.x; method aa { my @y=1,2,3; .say for @y; .say for @.x; .say for @.x[1 ..^ +@.x] } };my AB $y .=new(:x(1,2,3)); $y.aa;
14:23 p6eval rakudo 3d3893: OUTPUT«1␤2␤3␤1␤2␤3␤No applicable candidates found to dispatch to for 'postcircumfix:<[ ]>'. Available candidates are:␤:(Mu : Int $i;; *%_)␤:(Mu : Block $b;; *%_)␤:(Mu : !whatever_dispatch_helper ;; *%_)␤␤current instr.: '!postcircumfix:<[ ]>' pc 11329 (src/builtins/Role.pir:26)␤»
14:23 masak rakudo: class A { has @.x }; say A.new(:x(1, 2, 3)).x.WHAT
14:23 p6eval rakudo 3d3893: OUTPUT«Array()␤»
14:23 finanalyst rakudo: class AB{has @.x; method aa { my @y=1,2,3; .say for @y[1 .. +@y]; .say for @.x; .say for @.x[1 ..^ +@.x] } };my AB $y .=new(:x(1,2,3)); $y.aa;
14:23 p6eval rakudo 3d3893: OUTPUT«2␤3␤␤1␤2␤3␤No applicable candidates found to dispatch to for 'postcircumfix:<[ ]>'. Available candidates are:␤:(Mu : Int $i;; *%_)␤:(Mu : Block $b;; *%_)␤:(Mu : !whatever_dispatch_helper ;; *%_)␤␤current instr.: '!postcircumfix:<[ ]>' pc 11329 (src/builtins/Role.pir:26)␤»
14:24 finanalyst definitely treating @y and @.x differently
14:24 moritz_ rakudo: class AB{has @.x; method aa { my @y=1,2,3; .say for @!x[1..^+@!x] } }; AB.new(:x[1, 2, 3]).aa
14:24 p6eval rakudo 3d3893: OUTPUT«No applicable candidates found to dispatch to for 'postcircumfix:<[ ]>'. Available candidates are:␤:(Mu : Int $i;; *%_)␤:(Mu : Block $b;; *%_)␤:(Mu : !whatever_dispatch_helper ;; *%_)␤␤current instr.: '!postcircumfix:<[ ]>' pc 11329 (src/builtins/Role.pir:26)␤»
14:24 envi^home joined #perl6
14:24 colomon rakudo: sub foo(@a) { .say for @a[1 ..^ +@a] }; my @a = 1... 4; foo(@a)
14:24 p6eval rakudo 3d3893: OUTPUT«2␤3␤4␤»
14:25 colomon hmmm....
14:25 finanalyst shall i post a rakudobug?
14:26 * colomon still thinks it's related to a rakudobug from a couple of weeks ago...
14:26 colomon finanalyst: yes.
14:26 * moritz_ anticipates a nice weird test in t/spec/integration/ somewhere
14:30 mtk0 joined #perl6
14:33 diakopter masak: see http://en.wikipedia.org/wiki/Compiler  :P for discussion of middle-end
14:33 masak oh, ok :)
14:33 masak wouldn't be the first time CS people were intentially oxymoronic.
14:36 diakopter phenny: tell plobsing actually yes, I did consider tail-recursive invocation of the frames, since supposedly that's enforced much more consistently on .NET4 and recent Mono, but I haven't gotten there yet.  It would actually be a very simple change.
14:36 phenny diakopter: I'll pass that on when plobsing is around.
14:45 felipe joined #perl6
14:46 molaf joined #perl6
14:51 _kaare joined #perl6
14:55 ruoso joined #perl6
15:14 kensanata joined #perl6
15:17 masak 'Unix is not one of the “perlisms” Ruby should be trying to distance itself from. Perl got that part right.' -- http://tomayko.com/writings/unicorn-is-unix
15:17 masak halfway through this post, I'm having this thought: Unix isn't one of the "perl5isms" Perl 6 should be trying to distance itself from. Perl 5 got that part right.
15:18 masak with which I mean, sometimes I look at the things the spec says about I/O and wrapped Unix commands, and think: "is this really better than what Perl 5 gives us?"
15:19 masak how would Perl 6 look if it only borrowed Perl 5's Unix wrappers wholesale, i.e. mostly as subs?
15:20 masak maybe this is one of the areas where we're out-clevering ourseles, trying to design something as inherently OO-y when it needn't be.
15:20 masak just a thought.
15:25 masak ok, so we changed &exec. that was probably good.
15:26 masak oh wait, that was &system. it's now &run.
15:29 TimToady exec is runinstead or some such now
15:30 masak S29 corroborates that.
15:30 TimToady but perhaps it's worthwhile renaming those Unixisms that we actually differ in API on
15:30 TimToady and not the others
15:30 TimToady runinstead may be different enough, don't recall
15:30 masak is there a sense in which Perl 6 is less of a Unix-y language than Perl 5?
15:31 masak S29 also speculates about renaming readpipe() into rungather().
15:31 TimToady well, yes, where Unix is suboptimal
15:32 masak I should have guessed that the answer would involve hubris of some sort :P
15:32 TimToady but in some cases we could provide both a sub-opimal Unixy interface and a more-optimal, more portable standard Perl interface
15:33 masak "Is there any sense in which Perl 6 isn't X?" -- "Yes, in the cases where X is not good." :)
15:33 TimToady well, you asked for a sense, that seems sensical :)
15:33 masak :)
15:34 masak anyway, my feeling is that we'd probably profit more from fiddling less and providing more sideways Perl 5 compatibility rather than impressive OO hierarchies and stuff.
15:34 TimToady impressive OO hierachies aren't impressive :)
15:35 masak and something tells me Unix programmers like bareword subs. :)
15:35 jnthn o/ folks
15:35 phenny jnthn: 06:11Z <sorear> tell jnthn that I hear you're an expert on YOU_ARE_HERE.  Would you review topic/lexical-persistence on my rakudo github fork?  It implements proper "my" handling in the REPL
15:35 TimToady unless you've impressed on them
15:35 masak jnthn! \o/
15:35 masak YOU_ARE_HERE! :)
15:35 jnthn I made it home at 8am after 24-ish hours awake.
15:35 jnthn And then slept for almost 8 hours.
15:35 jnthn It's going to be a curious week. :-)
15:36 jnthn (volcano ash)--
15:36 jnthn Not that Iceland was a bad place to be stuck for a little longer than planned. ;-)
15:37 masak jnthn: did you see any phone books?
15:37 jnthn masak: No, but I know they're first name first. :-)
15:38 masak it's one thing knowing it on a theoretical level... :P
15:38 masak std: Proc
15:38 p6eval std 30611: OUTPUT«[31m===[0mSORRY![31m===[0m␤Undeclared name:␤ 'Proc' used at line 1␤Check failed␤FAILED 00:01 111m␤»
15:38 masak even STD.pm6 doesn't believe in Unix OO. :)
15:39 TimToady std: PROCESS
15:39 p6eval std 30611: OUTPUT«ok 00:01 109m␤»
15:39 masak is that an all-capitals class name?
15:39 TimToady it's more-global-than-GLOBAL
15:40 TimToady since GLOBAL is per-interpreter
15:40 masak ah.
15:40 masak so S29 is out-of-date?
15:40 TimToady assuming that something like modperl6 is running multiple interpreters
15:45 jnthn masak: I experienced *other* things on a practical level. ;-)
15:47 masak jnthn: sounds good :)
15:47 masak jnthn: looking forward to a blog post about it, or something.
15:48 jonrafkind joined #perl6
15:53 jnthn masak: Well...some of it, yes. :-)
15:53 krunen joined #perl6
15:53 jnthn There'll be photos too.
15:53 masak \o/
15:56 krunen jnthn: I'm holding a perl6 talk in Oslo today and I may be a little short on slides. Do you mind if I show some slides from your "Solved in Perl 6" talk? Full attribution of course...
15:59 jnthn krunen: Yes, that's fine.
15:59 krunen jnthn: thanks!
15:59 * moritz_ is also doing a Perl 6 talk tonight
16:00 patspam joined #perl6
16:01 colomon (perl 6 talks)++
16:01 jnthn krunen++, moritz_++
16:01 * jnthn has probably a month or so until his next Perl 6 talks
16:02 jnthn In Kiev! :-D
16:04 colomon \o/
16:04 colomon jnthn: we added Sop over the weekend.  It does nothing.  :)
16:05 masak should have been called Nop :)
16:05 [Coke] s:=no ?
16:05 * [Coke] too slow.
16:05 colomon It will do something once threading is in place.
16:05 moritz_ once we do threading, it shoudl set $*DO_IT_ONE_AT_A_TIME or so
16:06 colomon moritz_: I was thinking we might be able to test some of that now.
16:06 jnthn colomon: Cool :-)
16:06 colomon for instance, we could make hyper process backwards (which would be a good move in general) unless that flag was set.
16:07 moritz_ or some semi-random sequence
16:07 colomon moritz_: semi-random is better but more work.  I am a Perl programmer, I am lazy.  :)
16:07 jnthn Lunch time. :-)
16:07 colomon jnthn: same here.....
16:08 * jnthn pops to the shops
16:09 jonrafkind joined #perl6
16:11 justatheory joined #perl6
16:14 arnsholt pugs did the "hypers might not be in order thing" by putting the last element first, no?
16:15 TimToady first element last
16:19 cdarroch joined #perl6
16:19 cdarroch joined #perl6
16:23 masak swimming &
16:24 moritz_ rakudo: say 2 == '2a'
16:24 p6eval rakudo 3d3893: OUTPUT«1␤»
16:26 M_o_C joined #perl6
16:37 pugssvn r30612 | lwall++ | [STD] better message on 1__3
16:37 pugssvn r30612 | [CORE] add minmax
16:38 Targhan_ joined #perl6
16:40 iblechbot joined #perl6
16:44 SmokeMachine joined #perl6
16:47 TimToady phenny: tell JimmyZ your eval at http://irclog.perlgeek.de/perl6/2010-05-09#i_2311370 doesn't work because {...} interpolates into double quotes before the eval ever runs
16:47 phenny TimToady: I'll pass that on when JimmyZ is around.
16:57 TimToady moritz_: re rx.t: is there any reason why a failed eval shoudn't return a Failure object?
17:00 TimToady (if you were referring to JimmyZ's problem, that occurred before the eval)
17:34 sjohnson happy monday
17:35 slavik sjohnson: mondays are never happy
17:36 pyrimidine joined #perl6
17:36 stephenlb joined #perl6
17:36 TimToady sjohnson: にほんに、もう火曜日です。
17:37 TimToady hmm, 日本に, rather
17:38 * TimToady blames his input method for confusing him...
17:40 sjohnson 楽土
17:42 TimToady joydirt
17:43 sjohnson hmm.. thought that was camel.  *busts out google*
17:44 sjohnson <-- probably has input issues too!
17:44 diakopter joydirt makes me think of fundirt, like paydirt.
17:44 * diakopter has output method issues.
17:44 sjohnson Rakudo Perl, Codename: "joydirt" :)
17:45 slavik TimToady: you speak/write japanese?
17:45 TimToady a little
17:45 slavik so you can watch anime without subs/dubs ... nice :)
17:46 TimToady well, that's still a stretch
17:46 slavik I shouldv'e done linguistics in college instead of computer science ...
17:46 TimToady listening is the part I find most difficult
17:47 slavik I think that has to do with getting used to the language
17:47 * diakopter thought computer science was a specialization of linguistics
17:47 slavik I had the same problem with english and I came to US
17:47 slavik diakopter: some say it is mathematics
17:47 TimToady I would probably have to go live in Japan for a while to get fluent
17:47 diakopter mathematics is a specialization of linguistics? ;)
17:47 slavik but it's interesting that linguists can contribute a lot to computer science without a formal/any computer science education
17:48 slavik TimToady: ;)
17:48 sjohnson i need subtitles for about 70% of it when i watch
17:48 * jnthn has found that living somewhere leads to much easier language learning experience
17:48 jnthn er, living somewhere that speaks said language
17:48 jnthn :-)
17:48 sjohnson TimToady's anime basement tv
17:49 TimToady we don't do basements in california
17:52 sjohnson basements are a lot cooler in the summer... maybe they should implement the basement technique
17:58 sjohnson all this time i thought perl 6 was made possible by smart basement hackers
17:58 * diakopter had a basement in kansas.  but then I was demoted to california
17:58 Tene I'm a basement hacker, until recently!
17:58 Tene Just moved to california, though.
17:59 diakopter Tene: north?
17:59 Tene diakopter: sfbay
17:59 diakopter me2
17:59 Tene Mountain View, specifically.
17:59 Tene brb, meeting
17:59 diakopter in the shadow of the Oracle Silos, myself
17:59 pugssvn r30613 | fglock++ | rm "perl5-kp6-kp6-noregex" (kp6 bootstrap files)
18:01 * Su-Shee has only earthy, humid, low 130 year old basements. rats included.
18:06 Tene diakopter: let me know if you ever want to get together for hacking.
18:07 finanalyst joined #perl6
18:09 diakopter Tene: yah. you and me and dukeleto & TimToady
18:09 * colomon had a basement at both houses, but has done much more Rakudo hacking in his son's nursery.
18:10 Tene diakopter: I thought dukeleto was in OR?
18:11 diakopter oh. maybe. but he's speaking at SFmongers next week
18:11 Tene Oh, huh, didn't know.
18:11 Tene That sounds like fun.
18:11 diakopter oh wait.
18:12 * diakopter got confused
18:14 diakopter sorry.  david fetter lives in Oakland and is speaking on pl/parrot at sfmongers.
18:14 sjohnson colomon: :)
18:15 Tene No, you promised me dukeleto, so that's who I'm expecting.
18:15 diakopter argh.
18:16 ShaneC joined #perl6
18:16 ShaneC left #perl6
18:22 muixirt joined #perl6
18:26 * colomon is having issues with "functional" style p6 programming leading to really long lines of code....
18:27 [Coke] colomon: e.g.?
18:27 * jnthn ponders whether having the ==> would give a more obvious way to nicely lay out a lot of such code.
18:27 colomon @split-loops.map({ .move-to-fundamental-period; }).grep({ $_.length > 1e-6 && $_.has-point-in-interior }).map({ my $a = $_; take $a; }).eager;
18:27 colomon afk
18:28 jnthn Yes, it would. :-)
18:29 muixirt hi
18:29 muixirt what is the staus of pugs/ext modules wrt Rakudo?
18:35 muixirt s/staus/status/
18:35 diakopter a different dialect, a different era
18:36 diakopter eons in internet time
18:36 diakopter Mbitrot
18:40 muixirt diakopter: other sources for modules than proto.perl6.org?
18:40 diakopter I don't know.
18:40 diakopter if you have blizkost, you can use some of CPAN maybe, I think.
18:42 muixirt ok, thanks
18:44 colomon how does ==> work?  (hypothetically, obviously)
18:45 sjohnson Perl... making your life easier since 1987.
18:46 [Coke] colomon:I'd probably whitespace that this way:
18:46 [Coke] http://nopaste.snit.ch/20518
18:47 [Coke] sjohnson: hey, you don't work at NYSDEC, do you?
18:47 colomon [Coke]: I love that look, but as far as I know that doesn't work...
18:47 colomon "Unable to parse blockoid, couldn't find final '}' at line 32"
18:47 colomon (for instance)
18:48 colomon is this just a Rakudobug?
18:48 [Coke] what, it has to COMPILE!? =-)
18:48 * [Coke] checks rakudo...
18:48 diakopter phenny: tell masak I tagged that post with  perl6
18:48 phenny diakopter: I'll pass that on when masak is around.
18:49 diakopter phenny: tell moritz_ you can add this to planet6 if you want http://diakopter.blogspot.com/search/label/perl6
18:49 phenny diakopter: I'll pass that on when moritz_ is around.
18:50 [Coke] colomon: your version doesn't work in rakudo either.
18:50 [Coke] (perhaps the snippet is too small.)
18:51 colomon [Coke]: you'd have to define the relevant types and methods, yes.
18:51 diakopter phenny: tell masak url: http://diakopter.blogspot.com/feeds/posts/default/-/perl6
18:51 phenny diakopter: I'll pass that on when masak is around.
18:51 colomon but @a.map({ ... }).grep({ ...}) works fine.
18:51 diakopter phenny: tell moritz_ url: http://diakopter.blogspot.com/feeds/posts/default/-/perl6
18:51 phenny diakopter: I'll pass that on when moritz_ is around.
18:51 colomon oh, and obviously that snippet needs a gather around somewhere to collect the take
18:52 colomon but trust me, it does work in context.  :)
18:52 colomon (and apologies that I cannot share the context -- it's $work)
18:53 dakkar joined #perl6
18:54 masak joined #perl6
18:54 masak aaaah.
18:54 phenny masak: 18:48Z <diakopter> tell masak I tagged that post with  perl6
18:54 phenny masak: 18:51Z <diakopter> tell masak url: http://diakopter.blogspot.com/feeds/posts/default/-/perl6
18:54 Tene hi masak!
18:54 masak diakopter: you must be confusing me with moritz_.
18:54 masak Tene: hi!
18:55 sjohnson sjohnson: nope.  what made you think so?
18:55 Tene masak: I got my new laptop installed yesterday, and compiled parrot and rakudo.  Things are looking promising.  I should be able to talk timeline with you soon.  :)
18:55 TimToady std: my @split-loops.map: { .move-to-fundamental-period; }.grep: { $_.length > 1e-6 && $_.has-point-in-interior }.map: { my $a = $_; take $a; }.eager;
18:55 p6eval std 30613: OUTPUT«ok 00:01 114m␤»
18:56 masak Tene: schweet. thinking of sending off an email to Alberto rather soon regardless.
18:56 masak Tene: also, make sure you have the alpha branch up-and-running :)
18:56 Tene oh?  why?
18:56 [Coke] rakudo: say ^20.grep({ not $_ % 2 }).grep({ not $_ % 3 });
18:56 p6eval rakudo 3d3893: OUTPUT«Cannot resume dead coroutine.␤current instr.: 'perl6;GatherIterator;get' pc 563264 (src/gen/core.pir:97964)␤»
18:56 Tene o.O
18:57 TimToady std: my @split-loops\ .map({ .move-to-fundamental-period; })\ .grep({ $_.length > 1e-6 && $_.has-point-in-interior })\ .map({ my $a = $_; take $a; })\ .eager;
18:57 p6eval std 30613: OUTPUT«ok 00:01 111m␤»
18:57 masak Tene: because we wrote Web.pm during the alpha phase. I don't intent to drag out the grant by porting it to master before the grand goal-line.
18:57 Tene TimToady: and with feed operators?
18:57 Tene masak: 'k
18:57 masak unless porting it is trivial, which it isn't.
18:57 [Coke] rakudo: say ^20.grep({ not $_ % 2 });
18:57 p6eval rakudo 3d3893: OUTPUT«0␤»
18:58 TimToady std: my @split-loops.map:{ .move-to-fundamental-period; }.grep:{ $_.length > 1e-6 && $_.has-point-in-interior }.map:{ my $a = $_; take $a; }.eager;
18:58 p6eval std 30613: OUTPUT«ok 00:01 112m␤»
18:58 [Coke] rakudo: say (^20).grep({ not $_ % 2 });
18:58 p6eval rakudo 3d3893: OUTPUT«024681012141618␤»
18:58 TimToady my point is that anywhere you can put whitespace you can put newlines
18:58 masak newlines are whitespace.
18:58 [Coke] rakudo: say (^20).grep({ not $_ % 2 }).grep({ not $_ % 3 });
18:58 p6eval rakudo 3d3893: OUTPUT«Cannot resume dead coroutine.␤current instr.: 'perl6;GatherIterator;get' pc 563264 (src/gen/core.pir:97964)␤»
18:59 TimToady and also that std groks $x.foo: {...}.bar as ($x.foo: {...}).bar
19:00 Tene std: my @a.grep: { ... } .grep: { ... };
19:00 p6eval std 30613: OUTPUT«[31m===[0mSORRY![31m===[0m␤Method call found where infix expected (omit whitespace?) at /tmp/sMAFshbDle line 1:␤------> [32mmy @a.grep: { ... } [33m⏏[31m.grep: { ... };[0m␤    expecting any of:␤     bracketed infix␤  infix or meta-infix␤Parse failed␤FAILED 00:01 113m␤»
19:00 Tene std: my @a.grep: { ... }\ .grep: { ... };
19:00 p6eval std 30613: OUTPUT«ok 00:01 111m␤»
19:01 TimToady sure feeds'd be prettier if we had 'em
19:01 TimToady and understood the threading implications :)
19:03 diakopter masak: OOPS
19:03 diakopter all you m-folk
19:03 masak diakopter: no worries. :)
19:03 Tene /nick mene
19:03 masak 'Masak und Moritz' :)
19:04 [Coke] m-?
19:04 [Coke] oh.
19:05 * diakopter will never again order Napa Waldorf Chicken Salad
19:13 sorear moritz_: I beleive it does, yes
19:26 sorear TimToady: Consider $arbitrary-object[2] := $foo
19:26 sorear What function or method does that call?
19:27 sorear It couldn't be postcircumfix:<[ ]>:(Arbitrary-Class, Int)  because that only returns a container and can't change the container's identity
19:33 M_o_C left #perl6
19:34 moritz_ TimToady: re eval() returning Failure, no reason against it, I just don't remember reading it as such in the specs
19:34 phenny moritz_: 18:49Z <diakopter> tell moritz_ you can add this to planet6 if you want http://diakopter.blogspot.com/search/label/perl6
19:34 phenny moritz_: 18:51Z <diakopter> tell moritz_ url: http://diakopter.blogspot.com/feeds/posts/default/-/perl6
19:35 diakopter the 2nd one
19:35 diakopter let me know if you want atom instead
19:35 diakopter er. that is atom.
19:35 diakopter sigh.
19:35 diakopter let me know if you want rss instead.
19:43 moritz_ diakopter: [Coke]++ is on it
19:45 finanalyst left #perl6
19:51 [Coke] anyone here with root on feather?
19:52 [Coke] diakopter: it's added. may take a little while to prop.
19:52 moritz_ [Coke]: yes
19:52 dalek joined #perl6
19:52 [Coke] moritz_: can you kill my process 26609? it's trying to dump a core file. it's ignoring my kill -9. :P
19:53 [Coke] ... and now it's gone. (&*#@$.
19:53 * moritz_ not fast enough
19:53 [Coke] (I've been trying to kill it for minutes now. =-)
19:53 sorear [Coke]: the linux core dumper runs as a non-interruptable kernel task; it cannot be stopped with signals
19:53 sorear it's also very good at hogging I/O bandwidth
19:53 sorear one of my least favorite subsystems
20:00 moritz_ my talk went well
20:01 moritz_ and there were interesting questions
20:01 colomon moritz_++
20:01 moritz_ why multi sub dispatch for language extensions, and not methoss like C++
20:01 moritz_ about perl 5 interactions
20:01 moritz_ multi dispatch ties
20:01 moritz_ cpan
20:01 moritz_ junctions (I didn't mention them in the talk)
20:02 moritz_ Rakudo *
20:04 moritz_ I answered the first question only briefly
20:04 moritz_ the one who asked dind't quite understand my answer
20:04 moritz_ so I'll write a mail to the mailing list, explaining it in more detail
20:05 sorear p6l?
20:05 moritz_ the local perlmonger's mailing list
20:05 moritz_ Erlangen.pm
20:05 colomon Erlang?!?!!!!
20:05 colomon ;)
20:06 moritz_ (actually the name "Erlangen" comes from "Alder", which is called "Erle" in German)
20:07 slavik wait ... I just realised something ... how does Perl6 (rakudo) handle use v5; ?
20:07 slavik does it know about it natively?
20:07 guest_ joined #perl6
20:07 sorear rakudo: use v5;
20:07 p6eval rakudo 3d3893:  ( no output )
20:07 sorear actually, it doesn't handle it at all
20:07 sorear rakudo: use v5; say «2»
20:07 p6eval rakudo 3d3893: OUTPUT«2␤»
20:08 slavik sorear: I am thinking about it in terms of blizkost ...
20:08 sorear slavik: don't
20:08 slavik and I think I missed some discussion on Perl6 and use v5; ...
20:08 sorear blizkost is never going to handle use v5
20:09 slavik because it will be v5, no?
20:09 sorear because it can't
20:09 sorear use v5 is lexically transparent
20:09 slavik right
20:09 sorear use v5 in Rakudo, when it is implemented (I ballpark 2018), will be a grammar change directive *only*
20:10 sorear it will let you write perl6 code using perl5 syntax
20:10 slavik oh, I see
20:10 slavik so not really v5 ... just v5 syntax
20:11 sorear Perl 5 is a language
20:11 sorear v5 is v5
20:11 sorear I think you're confusing Perl 5 with perl 5 here.
20:11 slavik sorear: I think I am
20:12 slavik sorear: once use v5 and blizkost are implemented, what would be the practical difference between them when writing Perl5 code?
20:12 slavik I think that's a better question.
20:13 sorear slavik: blizkost supports using XS modules, but is slow, bloated, poorly integrated, and full of semantic potholes.  It should be avoided if possible.
20:13 slavik sorear: s/blizkost/perl5/ ? heh
20:21 smash_ joined #perl6
20:21 smash_ hello everyone
20:22 pugssvn r30614 | kyle++ | [util] Friendlier message from purge-empty-dirs
20:30 ethel joined #perl6
20:32 ash__ joined #perl6
20:33 Tene hismash.
20:49 pmurias joined #perl6
20:49 diakopter pmurias: hi
20:49 pmurias diakopter: hi
20:49 phenny pmurias: 14:16Z <diakopter> tell pmurias they must be predeclared so that if they're referenced in a class/routine, the parser knows their type, since the parser does type-checking _as_it_goes_
20:49 phenny pmurias: 14:17Z <diakopter> tell pmurias then when the parser encounters the actual method bodies, it grabs the appropriate RunSharp.MethodGen handles and puts the method bodies in them.
20:54 Guest54057 joined #perl6
20:55 tedv what exactly is // supposed to match in perl5, and is it different in perl 6?
20:59 diakopter std: //
20:59 p6eval std 30614: OUTPUT«[31m===[0mSORRY![31m===[0m␤Null regex not allowed at /tmp/gykX4SkYxx line 1:␤------> [32m//[33m⏏[31m<EOL>[0m␤Check failed␤FAILED 00:01 112m␤»
21:00 saaki joined #perl6
21:00 tedv isn't the perl 5 version something like... "continue a scalar match in the last regular expression from the last point matched"?
21:01 tedv anyway, the fact that I can't remember makes me happy that perl 6 doesn't support it
21:01 wknight8111 joined #perl6
21:02 saaki "exhaustive"
21:06 orafu joined #perl6
21:10 gpw joined #perl6
21:22 pmurias diakopter: csmeta assumes the input is in utf32, that's not the case on linux systems
21:23 * pmurias hates the fact that C# won't let him redeclare a variable in an inner scope
21:29 kensanata joined #perl6
21:35 rv2733 joined #perl6
21:48 stephenlb joined #perl6
22:02 _kaare left #perl6
22:07 snarkyboojum joined #perl6
22:12 diakopter utf32?  surprised you ran into that
22:12 diakopter it might be a bug in my UTF32String.cs
22:13 diakopter phenny: tell pmurias utf32?  surprised you ran into that   it might be a bug in my UTF32String.cs
22:13 phenny diakopter: I'll pass that on when pmurias is around.
22:31 saaki joined #perl6
22:47 quester_ joined #perl6
22:56 ash__ joined #perl6
23:01 Psyche^ joined #perl6
23:03 bluescreen joined #perl6
23:07 gustavderdrache joined #perl6
23:12 sorear in S03-operators/binding-arrays.t:19, what's this mention of "runcores"?
23:16 sorear hmm.  I think I'll use the spectests as a proxy design
23:17 snarkyboojum should probably explicitly state which runcore it's talking about, i.e. parrot, haskell, blah (assuming that's what it's referring to)
23:17 snarkyboojum not sure what "normal" runcore means
23:17 sorear I think it's a pugsism
23:17 sorear but I really have no clue
23:18 snarkyboojum I think it may be too
23:18 jnthn sorear: Parrot also has a concept or runcores, dunno if it is from there.
23:19 snarkyboojum I just googled for "parrot haskell runcore" and there's references to audreyt using that terminology :)
23:20 snarkyboojum hi jnthn, have you escaped volcanic clouds yet?
23:20 jnthn snarkyboojum: I have. :-)
23:20 snarkyboojum w00t! o/
23:21 * jnthn wasn't sad to be stuck in Iceland a little longer though :-)
23:21 jnthn I like that place. :-)
23:22 snarkyboojum the weather doesn't look particularly inviting there atm :)
23:22 snarkyboojum what's the bier like up there though?
23:22 snarkyboojum "Although beer was banned in Iceland until March 1, 1989" :O
23:23 jnthn Yeah, but vodka was legal!
23:23 jnthn They sold this malt crap, and you added some vodka to it to make pseudo-bier.
23:23 gpw joined #perl6
23:23 snarkyboojum yikes! vodka shandy or something
23:24 * [Coke] waits until he picks up the kid from school so he can enjoy some ginger infused vodka.
23:24 jnthn Thankfully, these days they have some microbreweries that turn out some really lovely beers, if you can track it down.
23:24 jnthn Including an excessively nice ale called Mori.
23:25 sjohnson hmm... beer
23:26 sorear jnthn: Are you, in fact, a YOU_ARE_HERE expert?
23:26 jnthn snarkyboojum: (weather) I actually vastly prefer coolish weather to hot weather. So I found Iceland quite comofrtable.
23:26 jnthn sorear: No.
23:26 jnthn sorear: I just implemented it in Rakudo.
23:26 sjohnson jnthn: yum yum
23:26 jnthn sorear: ;-)
23:26 sorear I guess that makes me the resident lexical scope continuation expert. ;)
23:26 jnthn Oh ew. :-)
23:27 jnthn Dare I ask what you're working on? :-)
23:27 snarkyboojum jnthn: I tend to agree - thought 20C autumn days down here are making me soft :)
23:27 sorear jnthn: I've gotten "my" scope working in the REPL; I thought you were the best candidate for patch review
23:27 jnthn Oooh.
23:27 * sorear -> RT
23:28 jnthn sorear: Well, pmichaud would be, but I ain't seen him in a little while.
23:28 jnthn sorear: Where did you put it?
23:28 jnthn sorear: In Rakudo itself?
23:28 sorear github
23:28 sorear yes
23:28 jnthn Or in nqp-rx?
23:28 snarkyboojum sorear++ x 4 :)
23:28 jnthn OK
23:28 jnthn pmichaud++ was planning doing it in the compiler tools, I think.
23:29 jnthn That's fine though - if we have it in Rakudo first, and he decides he likes it, it's easily movable.
23:29 jnthn If he doesn't, then it didn't make it into stuff that anything other than Rakudo is using so it's not hard to replace.
23:30 jnthn sorear: I'll try and look at the patch tomorrow.
23:30 jnthn sorear++ # attacking one of the big roadmap items
23:31 sorear To be honest I don't really see /how/ it could be treated as part of the compiler tools
23:32 sorear unless the entire YOU_ARE_HERE mechanism is going to be transplanted into PAST::Compiler
23:32 sorear the key insight is that, in an interactive session, the totality of preceding lines serves as the setting for the next one
23:33 jnthn I wasn't expecting it to be implemented in terms of the YOU_ARE_HERE thing, but I can see how it makes sense too.
23:33 sorear How were you expecting it to be implemented?
23:33 jnthn In terms of the Parrot primitive that YOU_ARE_HERE uses (set_outer)
23:35 sorear Should I just attach files to the rakudobug@ mail?
23:35 jnthn Yes
23:36 leonard_ joined #perl6
23:36 diakopter re: key insight,  what you said.
23:49 sorear phenny: tell pmichaud  What would you think of me implementing the mixin subset of role functionality in NQP-rx?  This would allow slangs in Rakudo, bringing our grammar closer to STD while fixing operator overload scoping and enabling lexical macros
23:49 phenny sorear: I'll pass that on when pmichaud is around.
23:51 sorear jnthn: Can you give me a quick overview of the binder architecture?
23:52 jnthn sorear: The core of it is in src/binder/bind.c - there's a top level function that drives the overall process, and in various places it calls bind_one_param to actually do the binding of individual paramters.
23:52 jnthn sorear: It takes as input a P6 low level sig and a capture
23:53 jnthn And the whole process is driven by those.
23:53 gfldex_ joined #perl6
23:53 jnthn Well, driven by the signature really
23:53 sorear How does the binder get called?
23:53 jnthn Then there's a couple of dynops
23:53 gustavderdrache left #perl6
23:53 jnthn One of them is bind_signature
23:53 jnthn Which takes the Parrot call_sig as its argument
23:53 jnthn That is what calls into the binder.
23:54 jnthn See src/ops/perl6.ops for the implementation of that
23:54 jnthn It's a little fun in there because it's also part of what takes care of junction auto-threading
23:54 jnthn Basically, the binder can return one of three things: I bound OK, I failed to bind because one type was a junction, I failed to bind for some other reason.
23:54 jnthn That's what triggers junction failover.
23:57 * sorear is largely trying to figure out what's going on in infix:<:=>
23:58 jnthn sorear: The signature case?
23:59 sorear is the only implemented case
23:59 jnthn That calls a !BIND method defiend in src/builtins/Signature.pir
23:59 jnthn Which does...magical things...

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

Perl 6 | Reference Documentation | Rakudo