Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2009-07-08

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:03 spx2 lol , my code didn't compile because of a SPACE character
00:03 spx2 that was pretty lame
00:06 dalek rakudo: 48c1791 | pmichaud++ | docs/release_guide.pod:
00:06 dalek rakudo: More release_guide.pod improvements.
00:06 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/48c17910660d0aee080e69e061220b410feba7b4
00:09 nihiliad joined #perl6
00:10 TimToady spx2: when in doubt you can feed code to the STD parser to see what it thinks, and sometimes get a better error message
00:10 TimToady std: while(1) { .say }
00:11 p6eval std 27472:  ( no output )
00:11 TimToady heh
00:11 spx2 std: sub bc($n,$k){[*]map ->$x, $y{$x/$y},(($k+1..$n)Z(1..$n-$k));}
00:11 p6eval std 27472:  ( no output )
00:11 spx2 TimToady: check it out
00:11 TimToady but it won't like the absence of a space after [*]
00:11 TimToady since that's a listop
00:11 spx2 std: sub bc($n,$k){[*]map ->$x,$y{$x/$y},(($k+1..$n)Z(1..$n-$k));}
00:11 p6eval std 27472:  ( no output )
00:12 spx2 hmm
00:12 TimToady std: 1
00:12 p6eval std 27472: OUTPUT«ok 00:02 36m␤»
00:12 TimToady std: while(1) { .say }
00:12 cls_bsd joined #perl6
00:12 spx2 that space character between  $x and $y made it choke over here
00:12 p6eval std 27472: OUTPUT«##### PARSE FAILED #####␤while() interpreted as function call at line 1 ; please use whitespace instead of parens␤Unexpected block in infix position (two terms in a row) at /tmp/cGRaz3KEfi line 1:␤------> [32mwhile(1) [31m{ .say }[0m␤    expecting any of:␤    infix or
00:12 p6eval ..meta-infix␤      i…
00:12 spx2 TimToady: what's the std thing ?
00:12 TimToady std: sub bc($n,$k){[*]map ->$x,$y{$x/$y},(($k+1..$n)Z(1..$n-$k));}
00:12 p6eval std 27472: OUTPUT«##### PARSE FAILED #####␤Syntax error (two terms in a row?) at /tmp/WN9WIlVHOW line 1:␤------> [32msub bc($n,$k){[*][31mmap ->$x,$y{$x/$y},(($k+1..$n)Z(1..$n-$k[0m␤    expecting any of:␤        POST␤   infix or meta-infix␤        infix stopper␤    postfix␤
00:12 p6eval ..postfix_prefix_meta_operator␤       prefix_circ…
00:12 TimToady running the standard parser
00:13 spx2 yeah !
00:13 spx2 that's it
00:13 TimToady you can also run it directly if you have a pugs repo
00:13 spx2 also is there like some module for writing tests in p6 /
00:13 spx2 ?
00:13 TimToady cd src/perl6 and make
00:13 spx2 TimToady: I run rakudo
00:14 TimToady then use tryfile to run a file
00:14 TimToady well, parse a file
00:14 TimToady it doesn't run it
00:14 TimToady rakudo is trying to approximate STD's parser
00:14 TimToady but not there yet
00:14 TimToady eventually rakudo will simply run STD
00:14 spx2 hmm, so pugs is more evolved than rakudo ?
00:15 spx2 I mean , does it implement more of the specs than rakudo ?
00:15 jnthn rakudo: role xxx { multi trait_mod:<is>(Code $block, xxx $trait) { ... } }
00:15 p6eval rakudo 19b8db:  ( no output )
00:15 jnthn rakudo: role xxx { multi trait_mod:<is>(Code $block, xxx $trait) is export { ... } }
00:15 p6eval rakudo 19b8db: OUTPUT«No applicable candidates found to dispatch to for 'trait_mod:is'␤in Main (/tmp/xSnFsOhiRF:2)␤»
00:16 jnthn rakudo: class C { multi foo() is export { } }
00:16 p6eval rakudo 19b8db:  ( no output )
00:16 jnthn rakudo: role R { multi foo() is export { } }
00:16 p6eval rakudo 19b8db:  ( no output )
00:16 jnthn rakudo: role R { multi foo() is export { ...  } }
00:16 p6eval rakudo 19b8db:  ( no output )
00:16 jnthn rakudo: role R { multi trait_mod:<is> is export { ...  } }
00:17 p6eval rakudo 19b8db: OUTPUT«No applicable candidates found to dispatch to for 'trait_mod:is'␤in Main (/tmp/zgBoqDeEzv:2)␤»
00:17 jnthn rakudo: class C { multi trait_mod:<is> is export { ...  } }
00:17 p6eval rakudo 19b8db: OUTPUT«No applicable candidates found to dispatch to for 'trait_mod:is'␤in Main (/tmp/Bnnass71W2:2)␤»
00:17 jnthn oh, I know what's wrong.
00:17 jnthn Your trait_mod:<is> in that namespace is hiding the one in the outer namespace.
00:18 jnthn Not quite sure what the answer is to that.
00:20 TimToady spx2: not really, just a different subset of the specs, and rakudo is certainly closer to the current specs
00:20 TimToady pugs has had a certain amount of design rot
00:22 TimToady though to the extent that *anything* written in Haskell is more evolved than *anything* written in C, you are correct :)
00:22 jnthn TimToady: If you has an answer on the trait_mod issue, I'm curious to know. But no hurry, I'm going to sleep now, so I won't care about it until tomorrow, and on Thursday I'm going to the mountains for 10 days, so if you're lucky I won't care for nearly two weeks. ;-)
00:24 spx2 is there a name for [*] ?
00:24 spx2 shorthand notation for reduce ?
00:24 TimToady it's the reduce metaoperator
00:24 jnthn reduction meta-operator
00:24 spx2 thank you :)
00:25 TimToady S03:3739
00:38 * jnthn -> sleep
00:39 payload joined #perl6
00:41 dalek rakudo: 116fa46 | jnthn++ | src/ (2 files):
00:41 dalek rakudo: Fix nextwitha and callwith.
00:41 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/116fa46b40260e5777db96a05ef75dba0cd41f05
00:41 dalek rakudo: 70bfd5c | jnthn++ | :
00:41 dalek rakudo: Merge branch 'master' of git@github.com:rakudo/rakudo
00:41 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/70bfd5c1ab3e87ded8c78728338056dad97f1f4e
00:41 Tene jnthn: did I hear that you fixed lexicals with .wrap?
00:49 spx2 what happens if I'm iterating @a Z @b  where   len @a !=  len @b ?
00:49 pmichaud rakudo:   say    1,2 Z 4,5,6
00:49 p6eval rakudo 70bfd5: OUTPUT«1425␤»
00:49 pmichaud stops on the shortest list
00:50 spx2 thanks
00:50 skids (unless a list ends in *, but that's not quite there yet.)
00:50 spx2 skids: what's the * supposed to mean ?
00:50 pmichaud "whatever"
00:50 skids repeat the last element of the list to fill out until the end of the next longest array.
00:51 pmichaud ....what if all of the lists end in * ?
00:51 skids Then you get lazy infinite.
00:51 pmichaud interesting.  :-)
00:52 spx2 pmichaud: you mean like this http://www.youtube.com/watch?v=Xz7_3n7xyDg ?
00:53 Tene rakudo: my $a; .say for gather take $a += $_ for 1..5
00:53 p6eval rakudo 70bfd5: OUTPUT«15␤15␤15␤15␤15␤»
00:53 Tene pmichaud: is this a rakudobug?
00:55 pmichaud Tene: it's not yet decided
00:55 pmichaud it's the "take the same item in the loop" issue
00:55 pmichaud although I've been wondering if take should treat its parameters as always being "is copy"
00:55 Tene rakudo: .say for gather take 100 + (state $a += $_) for 1..5
00:56 p6eval rakudo 70bfd5: OUTPUT«Null PMC access in get_pmc_keyed()␤in Main (/tmp/68nYhCpA1K:2)␤»
00:56 pmichaud I suspect there are still issues with the handling of the lhs of "for"
00:57 skids Hrm, how do you return an empty list from a sub with return type List is () is type Nil ?
00:57 skids *if
00:57 last
00:57 pmichaud Nil isn't a type
00:57 pmichaud rakudo gets that wrong, currently.
00:57 pmichaud but you should be able to do    return ()
00:57 Tene rakudo: .print for gather for <0 1 3 4 3 3 5> { take 0 + (state $a += $_) }
00:57 p6eval rakudo 70bfd5: OUTPUT«0111111»
00:58 skids rakudo: my List foo { return (); }; $a = foo(); $a.WHAT.say
00:58 p6eval rakudo 70bfd5: OUTPUT«Malformed declaration at line 2, near "List foo {"␤in Main (src/gen_setting.pm:3340)␤»
00:58 skids rakudo: my List foo () { return (); }; $a = foo(); $a.WHAT.say
00:58 p6eval rakudo 70bfd5: OUTPUT«Malformed declaration at line 2, near "List foo ("␤in Main (src/gen_setting.pm:3340)␤»
00:59 skids rakudo: my List sub foo () { return (); }; my $a = foo(); $a.WHAT.say
01:00 p6eval rakudo 70bfd5: OUTPUT«Return value type check failed; expected List, but got Nil␤in sub block_18 (/tmp/HhBfcxD1NL:2)␤called from Main (/tmp/HhBfcxD1NL:2)␤»
01:00 skids there we go.
01:00 pmichaud Right.
01:01 pmichaud Rakudo gets that wrong, currently.
01:01 lisppaste3 skids pasted "p6 zip implementation, sans slice" at http://paste.lisp.org/display/83206
01:02 Tene rakudo: my $a; .chr.print for (gather take 100 + ($a += $_) for <0 1 3 4 3 3 5>)[2133464530.comb]
01:02 p6eval rakudo 70bfd5: OUTPUT«helloworld»
01:08 skids Tene: that was fairly evil.
01:09 Tene rakudo: .chr.print for 100 <<+<< (gather take +($*a += $_) for <0 1 3 4 3 3 5>)[2133464530.comb]
01:09 p6eval rakudo 70bfd5: OUTPUT«helloworld»
01:09 Tene Better
01:09 Tene I don't like the characters in there literally... working on some way to encode them in a sequence.
01:11 skids hex the decimal-1, increment it, let it stringify for comb?
01:12 Tene I'd prefer to generate the sequence with only small constants from something like 1..7
01:12 skids give rakudo's radix literals a little workout?
01:22 frew_ joined #perl6
01:27 Tene Is there a method form of infix:Z?
01:27 hcchien joined #perl6
01:28 skids Tene: see my paste
01:35 skids Oh, method, not sub?  Don't think so.
01:38 jdv79 i just thought of something - if it took me 5 or so years to learn p5 fairly well how long will it take to learn p6?
01:38 jdv79 well, more like 2 now that i think about it more
01:39 skids Depends on how deeply.  There's always little corners that can escape attention until you run into them.
01:40 jdv79 p6 seems much "larger" than p5
01:40 skids But hopefully those will be less, having the benefit of hindsight.
01:40 skids Well, in some ways.
01:40 skids P5 has a lot more "between the lines"
01:40 jdv79 hope so:)
01:44 xinming_ jdv79: If you learnt how to programming in perl 5, You'll just need to learn how to write it in perl 6.
01:44 xinming_ jdv79: and the most important thing is how to programming, Not the syntax sugar. :-)
01:45 xinming_ jdv79: yes, perl 6 will be much larger, but it still remains in perl, you don't need to think too much differently in perl 6.
01:46 skids Laziness will be fun though.  Changes the way you go about working on a problem.
01:47 xinming_ jdv79: And btw, If you use perl 5, when you switch to perl 6, You just get the nicer and more consistent syntax.
01:48 last I wanted to ask a question about laziness: once it's in place, if you do something like "[+] map { payback(int(rand() * 100)+1) }, ^$plays", will it take the same amount of memory no matter how big $plays is?
01:48 tann "rakudo gets that wrong, currently" is my new signature :)
01:52 skids last: lazy lists are intended to keep memory profile low -- not necessarily minimal, but low.
01:52 skids It will prbably vary by implementation.
01:53 last skids: but it will probably be O(1) memory use rather than O(N), right?
01:54 skids It should chunk it up, at least, but an implementation might decide "hey I got plenty of memory"
01:55 skids But one would hpe implementations would target O(1) for values of N > some not-too-insane-number.
01:56 skids The tuning of laziness is still a bit vague in the spec.  There's some stuff on S07, but little about making things "more lazy than usual" yet.
01:59 jdv79 its not how to code in general but the idioms
01:59 jdv79 that has breadth
02:01 skids I suspect the early adopters will be writing code that looks nothing like P5 in a year or so, once everything sinks in and the new features start to get used in combination with each other.
02:04 amoc joined #perl6
02:09 jdv79_ joined #perl6
02:12 jdv79 joined #perl6
02:18 nothingmuch q=/w 46
02:19 xinming joined #perl6
02:20 SmokeMachine joined #perl6
02:22 amoc joined #perl6
02:25 Tene joined #perl6
02:29 Tene pmichaud: should (list)>>.method and (list)».method be exactly the same?
02:30 Tene ... oh, nm.  I must have done something stupid.
02:46 xinming_ joined #perl6
02:52 DC joined #perl6
03:03 Tene Okay, here we go
03:03 Tene rakudo: say [~] (98 <<+<< (([,] gather take ($_+2+int($_/3))%3 xx $_+1 for 0..3).map: { $*b++ * 3 + $^a })[2133474530.comb])>>.chr
03:03 p6eval rakudo 70bfd5: OUTPUT«Use of uninitialized value␤helloworld␤»
03:14 frankshaw joined #perl6
03:17 HemanShaw joined #perl6
03:19 frankshaw left #perl6
03:22 molaf joined #perl6
03:29 alanhaggai joined #perl6
03:37 s1n is rakudo's harness the only way of writing perl6 tests in perl6 right now?
03:37 sjohnson no
03:37 sjohnson pugs: print "will do it too"
03:37 p6eval pugs: OUTPUT«will do it too»
03:38 alester joined #perl6
03:41 s1n pugs: use Test; plan 1; my $a = 1; is($a, 1, 'hello world');
03:41 p6eval pugs: OUTPUT«pugs: *** Unsafe function 'use' called under safe mode␤    at /tmp/bMKZiXXgyO line 1, column 1␤»
03:42 s1n rakudo: use Test; plan 1; my $a = 1; is($a, 1, 'hello world');
03:42 p6eval rakudo 70bfd5: OUTPUT«1..1␤ok 1 - hello world␤»
03:42 s1n hmm
03:45 Tene s1n: Test.pm emits TAP.  You can use that with *any* TAP aggregator or harness.
03:54 ihrd joined #perl6
03:55 molaf joined #perl6
03:59 jauaor joined #perl6
04:12 DC joined #perl6
04:13 DC left #perl6
04:14 HemanShaw joined #perl6
04:15 SmokeMachine joined #perl6
04:25 jrtayloriv joined #perl6
04:40 tann joined #perl6
04:43 tann_ joined #perl6
04:43 ihrd joined #perl6
04:50 synth joined #perl6
04:54 khisanth_ joined #perl6
05:02 araujo joined #perl6
05:07 pmichaud s1n: Rakudo's t/harness simply adapts Test::Harness to be able to invoke "perl6" instead of "perl" on the test files.
05:08 s1n pmichaud: does it depend on parrot's harness?
05:08 s1n (or any of parrot's test facilities?)
05:10 s1n and are you  open to patches that allow for t/harness to used on a test set outside of rakudo/t/spec?
05:12 justatheory joined #perl6
05:15 synthEEEE joined #perl6
05:20 ihrd left #perl6
05:20 pmichaud it doesn't depend on any of parrot, no.
05:20 azawawi joined #perl6
05:20 azawawi good morning
05:20 pmichaud as for patches... depends on the patch.  In general I'd say "yes"
05:24 ihrd joined #perl6
05:48 ihrd left #perl6
06:07 yahooooo joined #perl6
06:11 rfordinal joined #perl6
06:17 Matt-W joined #perl6
06:28 frankshaw joined #perl6
06:35 pugs_svn r27478 | azawawi++ | [S:H:P6] Removed reference to Text::VimColor
06:36 amoc joined #perl6
06:36 HemanShaw joined #perl6
06:47 rfordinal joined #perl6
06:51 rfordinal left #perl6
06:51 Jedai joined #perl6
06:55 eternaleye joined #perl6
07:03 iblechbot joined #perl6
07:05 meppl joined #perl6
07:06 frankshaw joined #perl6
07:10 edpratomo joined #perl6
07:14 dakkar joined #perl6
07:22 finanalyst joined #perl6
07:26 Matt-W Morning
07:26 moritz_ good morning Matt-W
07:28 Matt-W hey moritz_
07:28 Matt-W My server survived a move last night :D
07:29 Matt-W now I'm pondering having a go at the release process for pmichaud
07:38 DemoFreak joined #perl6
08:11 zamolxes joined #perl6
08:16 clintongormley joined #perl6
08:17 frew_ joined #perl6
08:27 pugs_svn r27479 | moritz++ | [perl6-projects.org] don't underline links
08:34 szabgab rakudo: say time;
08:34 p6eval rakudo 70bfd5: OUTPUT«1247042057.13949␤»
08:34 szabgab rakudo: say localtime;
08:34 p6eval rakudo 70bfd5: OUTPUT«Could not find non-existent sub localtime␤»
08:34 szabgab rakudo: say Time::localtime;
08:34 p6eval rakudo 70bfd5: OUTPUT«Null PMC access in invoke()␤in Main (/tmp/hOv2xLbMsI:2)␤»
08:34 szabgab rakudo: say gmtime;
08:34 p6eval rakudo 70bfd5: OUTPUT«Could not find non-existent sub gmtime␤»
08:36 Matt-W eeep
08:36 Matt-W null pmc!
08:36 szabgab rakudo: my $x = Temporal::DateTime.new; $x.say
08:36 p6eval rakudo 70bfd5: OUTPUT«Use of uninitialized value␤Use of uninitialized value␤Use of uninitialized value␤Use of uninitialized value␤Use of uninitialized value␤Use of uninitialized value␤Use of uninitialized value␤Use of uninitialized value␤0000-00-00T00:00:00+0000␤»
08:51 digitalise joined #perl6
08:53 szabgab is there a file I can try lines() on ?
08:53 szabgab it seems 'file'.lines() does not work
08:53 szabgab Method 'lines' not found for invocant of class 'Str'
08:54 szabgab nor does lines('file', 2)
08:54 moritz_ szabgab: you first have to open it.
08:54 moritz_ lines($str) would look more like $str.split("\n") to me
08:55 moritz_ rakudo: say $*IN.lines(2).perl
08:55 szabgab according to the spec I think it should work on filenames as well
08:55 p6eval rakudo 70bfd5: OUTPUT«["Land der Berge, Land am Strome,", "Land der Äcker, Land der Dome,"]␤»
08:55 szabgab rakudo: say $*IN.lines(3).perl
08:55 p6eval rakudo 70bfd5: OUTPUT«["Land der Berge, Land am Strome,", "Land der Äcker, Land der Dome,", "Land der Hämmer, zukunftsreich!"]␤»
09:02 jnthn moritz_: What makes you think the patch wasn't committed?
09:02 jnthn moritz_: I copied that ID from the output from git push...
09:03 moritz_ jnthn: I'm talking about the tests
09:03 moritz_ that you mentioned in the ticket
09:03 jnthn Oh, wish you'd been clear on that.
09:03 moritz_ sorry.
09:04 jnthn ah, yes, seems I hadn't committed those.
09:04 jnthn Done now.
09:04 pugs_svn r27480 | jnthn++ | [t/spec] Tests for RT#66978.
09:05 * jnthn makes coffee
09:10 riffraff joined #perl6
09:22 Matt-W morning jnthn
09:22 jnthn hi Matt-W
09:22 finanalyst rakudo: lines('README').say
09:23 p6eval rakudo 70bfd5: OUTPUT«=head1 Rakudo Perl 6This is Rakudo Perl, a Perl 6 compiler for the Parrot virtual machine.Rakudo Perl is Copyright (C) 2008-2009, The Perl Foundation.Rakudo Perl is distributed under the terms of the Artistic License 2.0.For more details, see the full text of the license in
09:23 p6eval ..the fil…
09:23 jnthn Didn't safe mode prevent IO?
09:23 jnthn rakudo: lines('/etc/passwd').say
09:23 p6eval rakudo 70bfd5:
09:23 p6eval ..OUTPUT«root:x:0:0:root:/root:/bin/bashdaemon:x:1:1:daemon:/usr/sbin:/bin/shbin:x:2:2:bin:/bin:/bin/shsys:x:3:3:sys:/dev:/bin/shsync:x:4:65534:sync:/bin:/bin/syncgames:x:5:60:games:/usr/games:/bin/shman:x:6:12:man:/var/cache/man:/bin/shlp:x:7:7:lp:/var/spool/lpd:/bin/shmail:x:8:8:mail:/var…
09:24 jnthn o_O
09:24 moritz_ jnthn: it's very limited, that "safe" mode :/
09:24 jnthn moritz_: Ah.
09:24 Jedai joined #perl6
09:24 finanalyst szabgab: lines does work with a filename, though not as a method on a string.
09:24 moritz_ it just replaces things in the symbol table
09:25 jnthn moritz_: Aye.
09:25 jnthn Hopefully we can find some better way.
09:25 moritz_ that would be great.
09:25 szabgab is readline() now gone ?
09:25 moritz_ I think so, yes
09:26 szabgab so the recommended way to read a line from a file is  =$fh now ?
09:26 szabgab my $line = =$fh;
09:26 jnthn .get
09:26 moritz_ $fh.get
09:26 jnthn prefix:<=> is has a kill. :-)
09:27 jnthn std: =$fh
09:27 p6eval std 27472: OUTPUT«ok 00:02 35m␤»
09:27 jnthn ...oh.
09:27 moritz_ 'oh' is a good comment
09:27 moritz_ TimToady: see above, should '=$fh' still parse?
09:27 szabgab open() or oh;
09:38 M_o_C joined #perl6
09:41 Matt-W only if there's a prefix:<=> defined
09:41 Matt-W which there shouldn't be by default
09:43 jnthn The other curious thing is that it didn't complain about $fh being undefined.
09:43 jnthn std: multi prefix:<=> { }; =$fh
09:43 p6eval std 27472: OUTPUT«Potential difficulties:␤  Variable $fh is not predeclared at /tmp/MWAFi2Mijf line 1:␤------> [32mmulti prefix:<=> { }; =$fh[31m[0m␤ok 00:03 41m␤»
09:43 jnthn But there it does.
09:44 jnthn So I suspect it's not a leftover prefix:<=>, but it's parsing it as...something else.
09:45 Matt-W yes that seems likely
09:45 Matt-W but what
09:46 jnthn dunno
09:46 jnthn don't have an std
09:46 jnthn to get a parse tree
09:46 jnthn .oO( not having an std is usually a good thing... )
09:47 Matt-W we know you mean something else this time :)
09:48 meppl joined #perl6
09:55 charsbar_ joined #perl6
09:55 ejs joined #perl6
09:56 payload joined #perl6
09:56 alanhaggai_ joined #perl6
10:01 payload1 joined #perl6
10:10 frankshaw joined #perl6
10:13 literal I think Damian made a Perl Monks post sometime detailing of his modules are production-safe, experimental, or worse :P
10:13 lambdabot literal: You have 4 new messages. '/msg lambdabot @messages' to read them.
10:13 rfordinal3643 joined #perl6
10:13 literal there I go again, replying to some old statement in the buffer
10:20 pmurias joined #perl6
10:21 rfordinal joined #perl6
10:27 masak joined #perl6
10:27 masak greetings, futurologists.
10:30 * jnthn has seen the future and it's not orange.
10:30 jnthn Damm false advertising.
10:30 jnthn ;-)
10:32 literal did someone say that it would be orange?
10:33 Matt-W yes
10:33 Matt-W Orange did
10:33 Matt-W repeatedly
10:33 * Matt-W thinks the future has lazy evaluation
10:34 masak and LTM.
10:35 Matt-W yes
10:35 masak literal: I might be late or a no-show for tonight's meeting. but those of you who show up, please go ahead.
10:36 masak if I can, I'll join in later.
10:36 pmurias masak: it's perl6-gsoc again?
10:36 masak pmurias: every Wednesday. :)
10:38 literal ok
10:44 masak jnthn++ # "awesomizing"
10:45 jnthn ;-)
10:45 * jnthn is having a day of hacking and packing
10:46 masak "hack'n'pack", the new lifestyle of the globetrotting programmer.
10:51 last joined #perl6
10:51 masak rakudo: class A { method foo {"A.foo"} }; class C { has A $.a handles *; }; my C $c .= new; say C.foo
10:51 p6eval rakudo 70bfd5: OUTPUT«Method 'foo' not found for invocant of class ''␤»
10:51 masak NYI?
10:52 jnthn I'm sure we had tests for handles *
10:52 jnthn oh
10:52 jnthn rakudo: class A { method foo {"A.foo"} }; class C { has A $.a handles *; }; my C $c .= new; $c.foo
10:52 p6eval rakudo 70bfd5:  ( no output )
10:52 jnthn indeed, I know why that is
10:54 masak ok?
10:54 jnthn masak: file rakudobug
10:54 jnthn They should both work.
10:56 * masak files
10:57 masak oh -- I called the type object's .foo
11:19 desertm4x joined #perl6
11:31 he_ Question from a newbie in these corners: are all the tests run under "make spectest" in rakudo expected to succeed?
11:32 masak he_: ideally, yes.
11:32 masak but in between releases results may vary.
11:33 masak (that's assuming you're running bleeding. in a release, all should succeed)
11:33 * masak should stop saying "running bleeding"
11:33 masak I mean "running from the git HEAD"
11:37 moritz_ master, even
11:39 masak right.
11:40 he_ I'm also new to git, but I updated with "git fetch"(?) a couple of days ago and built on NetBSD/i386 4.0, and got several failures during "make spectest".
11:41 moritz_ he_: you need 'git pull', 'git fetch' doesn't update the files in the repository
11:41 moritz_ but yes, we have known problems with parrot's garbage collector
11:42 he_ Well, ... since I'm new at git, I may have done "git pull" as well.
11:42 he_ Anyway, I don't suppose you have a similar service as parrot to collect test results?
11:43 Chillance joined #perl6
11:43 moritz_ no :(
11:44 * masak tries to book flight tickets and becomes aware, for the first time, of the plethora of "free flights" meta-booking systems online, all of them useless
11:45 jnthn oh, I go straight to expedia or the sites of the budget airlines I know fly from near me.
11:46 jnthn Search results tend to be full of such crap
11:46 masak expedia?
11:48 he_ Anyway, I'm going to send a nopaste of the old test result, and have started a new round.
11:48 lisppaste3 he_ pasted "Spectest summary report from NetBSD/i386 4.0" at http://paste.lisp.org/display/83225
11:48 jnthn masak: expedia is travel/flight booking site that I find not to suck too much.
11:49 * masak tries that, then
11:49 jnthn masak: In the, it tells me choices and prices and mostly stays out of the way enough to not annoy me.
11:49 jnthn *In that
11:49 masak sounds wonderful.
11:53 masak unfortunately, their proposed price was the highest so far. :/
11:54 jnthn Aye - they don't include all the budget airlines.
11:55 jnthn Though they ain't always so "budget" always.
11:57 masak I've yet to find a budget airline that does Stockholm-Lisbon. the best I have so far is Air Portugal, who offer to take me for a large sum of money.
11:58 jnthn Aye, I didn't find a load of choice of budget airlines serving Lisbon.
12:00 masak that's consisten with my collected data so far.
12:00 masak for that matter, there seems to be many budget airlines in Europe not serving Stockholm.
12:02 jnthn Especially Arlanda
12:02 jnthn Ryanair serve Skavsta.
12:02 jnthn Which is "Stockholm"
12:03 jnthn Just like Ryanair used to list Bratislava as Vienna.
12:03 jnthn ;-)
12:03 masak yes, I have mixed feelings about that lying-about-cities strategy.
12:03 masak I can see why they do it, but...
12:04 masak ...having to ride a bus for two hours to get to the city they claimed you landed in is not much fun.
12:04 masak then again, you get what you pay for.
12:04 masak I've already ruled out ryanair, because they don't go to Lisbon.
12:05 masak but even if they did, I'd think twice about using their services again.
12:05 masak http://publius-ovidius.livejournal.com/301476.html
12:05 jnthn I mostly put up with Rynair 'cus they are sometimes so much cheaper than the alternative.
12:06 masak I used to do that as well.
12:06 jnthn But it's run by a smarmy asshat.
12:06 masak seems so.
12:08 cognominal joined #perl6
12:08 sri_kraih_ joined #perl6
12:09 Matt-W I had fun with Ryanair
12:09 Matt-W they took us to Gothenburg City
12:09 Matt-W which is... a runway and a hut
12:10 Matt-W not flown with anybody at all for some time now though. Ryanair seem to have gone even more downhill in the intervening time
12:11 masak I'm glad they're not an alternative this time.
12:11 masak I think I'll go with TAP (fitting, huh?) and the large sum of money.
12:12 moritz_ Matt-W: that's my experience too, Ryanair going downhill
12:12 * jnthn wouldn't have minded going by train, but it's a LONG way.
12:12 * Matt-W wonders how hard it would be to go to lisbon on the train
12:12 Jedai joined #perl6
12:12 * masak checks train connections before committing on the flight
12:12 Matt-W I suppose, eurostar to paris and then from paris to somewhere and then from somewhere to lisbon
12:12 Matt-W possibly several somewheres
12:12 jnthn Yeah
12:12 Matt-W if lucky, paris->madrid->lisbon
12:13 jnthn You cna probably get south through France at a decent speed on the TGVs.
12:13 Matt-W yes
12:13 jnthn There is I'm sure a Paris -> Madrid overnighter though.
12:13 Matt-W however, flying is likely much cheaper
12:13 Matt-W and definitely faster
12:13 Matt-W and definitely more stressful
12:13 jnthn yeah, that's what I concluded
12:13 jnthn And my flight is with SkyEurope.
12:13 Matt-W admittedly another reason I'm not going to YAPC::EU
12:13 Matt-W I really hate flying
12:14 Matt-W there are only two things I like about it
12:14 jnthn They're not asshats like Ryanair. However, they're on the verge of bankruptcy.
12:14 Matt-W oh dear
12:14 Matt-W The first thing I like about flying is the acceleration push for takeoff
12:14 Matt-W The second thing is that it gets me from place to place quite quickly
12:14 Matt-W (on average)
12:14 moritz_ stockholm -> Faro is 100...200 Euro with Air Berlin, one way
12:14 moritz_ then you'd ahve to take the train to lisbon, ,or so
12:14 Matt-W I flew air berlin once
12:14 Matt-W they weren't too bad
12:14 jnthn Faro is right down south, right?
12:15 Matt-W there were rolls
12:15 Matt-W and mints
12:15 jnthn Oh, Air Berlin serve Currywurst on board! :-D
12:15 Matt-W jnthn: this was Stansted->Dusseldorf, so there wasn't time for Currywurst
12:15 moritz_ jnthn: no idea, it's the only Portugese airport tha air berlin serves
12:15 Matt-W I had some fun speaking to the cabin crew in German
12:15 Matt-W and then watching them assume that my parents also spoke German
12:15 jnthn heh
12:16 jnthn That's why I like SkyEurope
12:16 moritz_ (and last time I didn't get any Currywurst, but neither Glasgow->Standsted nor Standsted->Nuernberg is very long)
12:16 jnthn I can chat up^Wto the cabin staff in Slovak. :-)
12:16 Matt-W :)
12:16 Matt-W I don't think I can chat up in German
12:16 Matt-W I don't know enough vocabulary
12:16 masak trans-Europe train site says it's too far from Stockholm to Lisbon. :/
12:16 Matt-W hello? trans-Europe?
12:17 masak (my choice of words.)
12:17 masak would have been cool, though.
12:17 Matt-W yes
12:17 Matt-W especially if it had a power point
12:17 Matt-W you could arrive with a git branch implementing LTM :)
12:17 Matt-W and what an entrace that would be
12:17 cognominal_ joined #perl6
12:18 masak "Longest Train-journey Matching"
12:18 moritz_ pmichaud shaking you to death because you stole his job :-)
12:19 jnthn masak: Oh, get a grip. It's not like you're doing Vladivostok to Moscow. ;-)
12:19 masak moritz_: I've gotten the feeling that pmichaud doesn't much mind when people do tasks for him... :)
12:19 moritz_ masak: I know, but I had the opurtunity for a bad joke here...
12:20 masak nope, going Stockholm-Paris by train is already more expensive than the TAP flight option...
12:20 masak moritz_: ah :)
12:20 jnthn masak: Heh, the price doesn't surprise me.
12:21 jnthn Train travel in France and Sweden and Germany is expensive-ish.
12:21 Matt-W in the UK it's extremely expensive
12:21 jnthn Matt-W: Yes, and usually delayed too.
12:21 * jnthn much prefers Russian train pricing :-)
12:22 moritz_ you could try stockholm -> madrid and then the train
12:22 Matt-W haha
12:22 jnthn $30 USD for an overnight journey including ability to lie down is kinda awesome.
12:22 masak moritz_: I'll do that.
12:22 Matt-W bahn.de says london->lisbon is minimum of 4 changes, 26 hours
12:23 Matt-W ooh
12:23 Matt-W it'd be faster if one started early in the morning
12:23 jnthn masak: Uh, I just realized handles probably shouldn't work on proto-objects since they have no state and thus nothing to dispatch on.
12:23 Matt-W that includes an overnight wait at a station in darkest somewhere
12:23 jnthn masak: But it's failing to work in a wrong way.
12:23 Matt-W oh well, I'm not going anyway
12:23 masak jnthn: aye.
12:24 Matt-W jnthn: yes it seems likely that you need a real object, since you're calling methods on it in the end...
12:24 jnthn The coffee took a while to take effect this morning. ;-)
12:24 masak what do you know, Stockholm-Madrid is cheaper than Stockholm-Lisbon!
12:24 moritz_ masak: that doesn't surprise me at all
12:24 Matt-W what about if you add madrid-lisbon on the end
12:25 masak Matt-W: I'm on it.
12:25 * masak feels like he's the computer guy in a movie
12:26 masak "When you book your train travel from Madrid to Lisbon, the most direct route to this Portuguese capital is an overnight trip. You will get to eat, rest and arrive refreshed in Lisbon, ready to explore this multi-cultural city built upon seven legendary hills."
12:26 masak seven hills? I thought that was Rome...
12:26 Chillance joined #perl6
12:27 moritz_ me too
12:27 Matt-W maybe it's both of them
12:27 Matt-W maybe they stole them from Rome in an undocumented past adventure
12:29 masak .oO( undocumented PAST )
12:29 moritz_ or maybe it's the other way round :-)
12:30 moritz_ acording the the wikipedia Lisboa is also built on seven hills.
12:31 moritz_ That seemed to be quite fashionable back then
12:31 masak wtf? train Madrid-Lisbon costing as much as flisht Stockholm-Madrid?
12:32 masak s/sh/gh/
12:32 jnthn huh?
12:32 jnthn oh, flight
12:33 jnthn that's maybe not so surprising.
12:34 masak hm -- well, I can optimize it down to about the same price as a direct flight.
12:34 masak doesn't seem worth it.
12:34 Matt-W no
12:34 Matt-W a shame
12:34 Matt-W train travel is much cooler
12:35 masak gotta go.
12:35 masak see you tonight.
12:41 skids joined #perl6
12:41 icwiener joined #perl6
12:45 M_o_C joined #perl6
12:48 rfordinal joined #perl6
13:02 synth joined #perl6
13:02 cls_bsd joined #perl6
13:04 pmurias joined #perl6
13:08 pmurias skids: do you think having a TODO file for smop would be usefull?
13:13 jan_ joined #perl6
13:14 meppl joined #perl6
13:16 donaldh joined #perl6
13:21 Psyche^ joined #perl6
13:21 mizioumt joined #perl6
13:31 pmurias moritz_: how are the nick colors assigned in the log?
13:32 moritz_ pmurias: the first $n nicks with the most lines get a color from a list each
13:35 jnthn So you can influence that by talking less or more relative to other people on the channel? ;-)
13:36 moritz_ aye.
13:38 Chillance_ joined #perl6
13:39 Chillance_ joined #perl6
13:56 KyleHa joined #perl6
13:56 omega joined #perl6
14:00 skids pmurias: As long as it gets updated, sure, they are always helpful.
14:01 moritz_ (note that the count is only for the current day)
14:01 moritz_ and per-channel
14:08 skids pmurias: if and when I actually get to doing something other than reading/bugfixing, it will likely be S09 compact structures/compact arrays because that's where my interests lie.
14:09 skids (and it's something that may be a while coming via Parrot/rakudo, so SMOP can help there banging out the details)
14:16 iblechbot joined #perl6
14:19 SmokeMachine joined #perl6
14:25 eMaX joined #perl6
14:26 desertm4x joined #perl6
14:28 jonathanturner joined #perl6
14:35 pmichaud Good morning, #perl6
14:36 jnthn morning, pm
14:43 pmichaud (expedia)  my strategy tends to be to use expedia to find good fares, but then book directly from the airline.
14:43 exodist joined #perl6
14:43 elmex joined #perl6
14:52 nothingmuch joined #perl6
14:52 amoc joined #perl6
14:58 justatheory joined #perl6
15:01 eMaX joined #perl6
15:02 frodwith joined #perl6
15:03 frodwith joined #perl6
15:04 frodwith joined #perl6
15:14 agentzh joined #perl6
15:20 donaldh joined #perl6
15:21 last joined #perl6
15:23 masak joined #perl6
15:26 elmex_ joined #perl6
15:32 nihiliad joined #perl6
15:35 justatheory joined #perl6
15:36 jnthn .oO( give us today our daily bredband )
15:43 moritz_ http://sushee.no-ip.org/shot.png Su-Shee++'s proposed layout for perl6-projects.org
15:44 KyleHa Looks good to me too.
15:49 sbp I'd swap Download with Wikis and Blogs
15:49 mikehh joined #perl6
15:49 sbp the amount of times I've screamed at a site... "just tell me where to download it!"
15:50 jonathanturner sbp: Indeed.  Might be helpful to have a date of the latest release as well, to let you know if you should upgrade
15:50 jnthn moritz_: I really like the look of that.
15:50 sbp good idea
15:50 jnthn moritz_: Actually I'd put the download button further up
15:51 jnthn e.g. exchange it's position with the Wikis and Blogs thing.
15:51 sbp jnthn: oh yeah, good idea
15:51 jnthn Maybe Documentation wants to be above Specification too?
15:51 moritz_ ok, thanks for your feedback
15:51 jnthn That is, which do we most want ot direct new people to?
15:52 jnthn But visually, it's shiny. :-)
15:52 moritz_ I was about to complain about the download bottom because we don't want to offer The One True Download for The One True Implementation... oh well.
15:52 jnthn We could exchange it for a "box"
15:52 jnthn "Download Rakudo: source, binaries"
15:52 jnthn kind of thing
15:52 pmichaud "Downloads"
15:53 sbp well it's like XSLT applications
15:53 pmichaud plural
15:53 sbp you ask people what XSLT apps there are out there
15:53 sbp they reel off a list of implementations
15:53 jnthn And other links to download releases of other implementations.
15:53 sbp and you say oh, okay, so which one should I use?
15:53 moritz_ anyway, that's kind of details right now, I was more asking about feedback for the design in general.
15:53 sbp and everybody says: Saxon
15:53 pmichaud (design in general)  +1
15:53 sbp similar kind of thing with perl6 right now
15:53 jnthn moritz_: Oh, in that sense, +2
15:53 sbp who isn't going to say Rakudo?
15:53 jnthn ;-)
15:54 moritz_ sbp: ruoso and pmurias :-)
15:54 sbp hehe
15:54 sbp that just proves my point
15:55 jnthn While smop/mildew is an implementation that's looking very promising in the long run, I'd be reluctant to point people who just want to play with a Perl 6 compiler to see what Perl 6 can do at them right now.
15:57 jnthn (Which is what people looking for a big shiny downloads button are probably after.)
15:57 moritz_ right
15:57 last joined #perl6
15:57 moritz_ if we have multiple such implementations in the future, I can make random redirects for them :-)
15:57 pmichaud it might be interesting to point people to play with std, though.
15:58 moritz_ but first it should be easier to get to run
15:58 moritz_ like, not requiring a perl at a hard coded path
15:59 pmichaud multiple implementations -- just add a "I'm Feeling Lucky" button for the download :-)
15:59 jnthn lol!
15:59 moritz_ lol
15:59 jnthn On April Fools Day, we re-direct randomly to a LOLCODE download instead.
16:07 rfordinal joined #perl6
16:08 jrtayloriv joined #perl6
16:10 last joined #perl6
16:11 tann joined #perl6
16:15 Patterner I like http://bit.ly/BestLOL
16:20 mikehh_ joined #perl6
16:22 Su-Shee joined #perl6
16:22 Su-Shee hi.
16:24 beggars joined #perl6
16:29 moritz_ hi Su-Shee
16:29 Psyche^ joined #perl6
16:30 TimToady \o>
16:31 TimToady <waving and holding the top of my head on while the coffee brews>
16:31 pmichaud (salute?  broken arm?  not e..... aha)
16:31 pmichaud "not enough coffee" was my next guess
16:32 eMaX joined #perl6
16:33 Su-Shee here's a light version (as in color not low fat. ;) http://sushee.no-ip.org/shot-light.png
16:34 moritz_ I like that even better
16:35 Su-Shee me too. i think, I'll also make the colors less bright.
16:35 moritz_ (the only thing I'm not sure about is the white link text; I never trust white text to be readable)
16:35 REPLeffect joined #perl6
16:36 KyleHa I might make all the "reading material" the same color...docs, specs, and blog-like substances...but that's because I have no sense of design appeal.
16:36 DemoFreak joined #perl6
16:37 Su-Shee I don't style docs and specs in light candy colors :))
16:37 moritz_ ;-)
16:37 cdarroch joined #perl6
16:42 Su-Shee a little less bright: http://sushee.no-ip.org/shot-light-less-bright.png
16:42 moritz_ I liked the previous one better
16:43 PerlJam Su-Shee: what moritz_ said.
16:44 TimToady yes, complements camelia's colors better
16:44 PerlJam you might want to tone down the shine on Camelia's wings though
16:44 PerlJam (just a little)
16:44 moritz_ noooo! ;-)
16:45 Su-Shee moritz_: no problem, it will still look 2.0-ish :)
16:45 TimToady it does make her look like painted metal, but that's okay
16:45 PerlJam Su-Shee++ very cool
16:45 moritz_ it'd better look 6.0-ish!
16:46 TimToady the tilt is just a little odd because it makes it look like her legs and mouth are bending due to gravity :)
16:46 TimToady rather than just naturally being that way...
16:46 pmichaud she's showing her age already?
16:47 PerlJam no, she's a little gimpy to appeal to handicapped people  ;>
16:47 pmichaud and her glasses make her look really bug-ey.... Oh.
16:47 moritz_ (showing age) that's okay for an imortal ;-)
16:48 Su-Shee PerlJam: much better with less shine.
16:48 SmokeMachine joined #perl6
16:49 TimToady the main problem with the shine is that it makes the top wings look 3d while the rest of her remains flat
16:50 pmichaud afk # lunch, then parrot install issues
16:50 TimToady at minimum, perhaps if the lower wings also have a bit of shine, it might balance that up
16:50 pmichaud how does it look without any shine?
16:50 TimToady but the concept of a butterfly with non-flat wings is a bit odd from the outset
16:51 TimToady the shine probably made more sense with the black background than with light
16:51 PerlJam Camelia is a different kind of butterfly anyway  :)
16:51 pmichaud TimToady: at 3 meters, the wings might be more like airfoils :-)
16:51 TimToady troonough
16:51 Su-Shee this is the orginal cut out and a little scaled down: http://sushee.no-ip.org/camelia-transparent-800.png
16:52 pmichaud right, I was wondering how it would look in the overall page w/o shine
16:52 pmichaud (I agree that the shine made more sense on black background for some reason)
16:52 moritz_ maybe first flip it (left <-> right) and then tilt it?
16:52 pmichaud anyway, I do need lunch
16:52 PerlJam shine those wings right and you get Camelia with 4 balloons instead of wings.
16:52 pmichaud afk
16:52 PerlJam er, I guess that would be shining them wrong :)
16:54 TimToady well, everyone's an art critic :)
16:54 sbp not me
16:54 sbp well okay, a little bit
16:54 TimToady you're just an art critic critic :)
16:54 sbp hehe
16:56 Su-Shee that's will all wings in shine, but less intense: http://sushee.no-ip.org/camelia-allshine.png
16:57 Su-Shee (and the wrong shadow)
16:57 sbp once I saw some TV programme where a member of the House of Lords was alleged to have compared art critics to a eunuch at an orgy in the following terms: “they'd like to join in, but they don't have the wherewithal...”
16:58 TimToady the lower shine doesn't work because it superposes over the pink.  it really only works if it starts in the black
16:59 * sbp presses Control+Command+Option+7 to negate the screen...
16:59 sbp Camelia looks really good in negative
16:59 TimToady the nose shine is a bit too curvy
16:59 sbp (modulo the eyes)
17:00 TimToady I do think she can change the color of her wings at will
17:00 TimToady but probably not her face
17:01 sbp hmm, okay
17:01 PerlJam A bug-eyed, yellow-faced, flying camel?
17:01 sbp have you observed Camelia(s) in the wild, or are you getting this from book-knowledge?
17:01 TimToady well, yes, essentially...
17:01 mj41 joined #perl6
17:01 TimToady genetic engineering is an empirical science
17:03 sbp http://imagebin.ca/img/LmMMLgv.png (inverted)
17:04 sbp the eyes scare me. reminds me of Evil Spock, too
17:05 IllvilJa joined #perl6
17:07 Su-Shee camelia allshine with a little shine in the black: http://sushee.no-ip.org/camelia-shine-logo2.png
17:07 Su-Shee and without: http://sushee.no-ip.org/camelia-shine-logo.png
17:08 sbp hmm. can you move the bottom shine even closer to the edges?
17:08 TimToady I agree, the bottom shine should be closer to the edge than the top shines
17:08 TimToady since the lower wings are smaller
17:08 TimToady otherwise it doesn't make them look round at all
17:10 PerlJam I agreee too fwiw
17:10 sbp oh man. I only just got that the left upturned 6 actually represents a p
17:10 sbp it's not even a 6 for goodness' sake; it's reversed
17:10 TimToady and I do like the absence of nose shine; I think the face needs to remain completely in the cartoon category
17:10 PerlJam sbp: the effect is subtle, so like Perl, there's always new things to discover :)
17:11 * sbp wonders if there's a befunge93 perl6 compiler hidden in the pixel matrix
17:11 TimToady but it's really that fundamental P vs 6 asymmetry that drives the rest of the design
17:12 TimToady and philosophically, asks the question "Is 6 really a version of P, or is it something different?"
17:12 sbp hmm, I actually saw a serious study of that a year or two ago
17:13 sbp a team mutating glyph forms to find out what the boundaries of prototypical glyph recognition are
17:13 sbp well, the gradient
17:14 TimToady yes, we did similar experiments in linguistics and phoneme recognition
17:14 sbp but to keep it simple they constrained themselves to like a grid of possibilities
17:14 sbp which I thought was a bad idea. bit like trying to spell things on a clock
17:14 sbp phonemes? hmm, that always annoyed me about the IPA
17:14 sbp nice and neat divisions of phonemes, whereas in practice it's not quite like that...
17:15 TimToady IPA is phones, not phonemes :P
17:15 TimToady but yes, which is why they allow all sorts of modifiers of the central notion
17:16 TimToady and every now and then they have to add a new symbol as a new langauge is discoverred
17:16 TimToady there's a language in (I believe) New Guinea that came up with an interlabial lateral
17:16 jnthn .oO( but isn't IPA = Indian Pale Ale? )
17:17 * sbp looks up phones vs. phonemes on Wikipedia
17:17 sbp TimToady: I enjoy trying to make the sounds in the spaces where they say it's impossible
17:17 TimToady or possibly phonetic vs phonemic
17:17 sbp which is a bit futile really since I can't even roll my r's, but there you go
17:17 TimToady I do a mean triple trill, but as far as I know no languages use that
17:17 sbp add it to perl6!
17:18 sbp there is an articulated perl6, right?
17:18 moritz_ we already have triple dots in Perl 6
17:18 Su-Shee hm. the shine is reluctant to fit.
17:18 sbp or we could just whistle the binary utf-8 encoded representation at one another
17:28 tann joined #perl6
17:36 Pismire joined #perl6
17:37 molaf joined #perl6
17:46 pugs_svn r27481 | lwall++ | [STD] complain usefully about illegal pod directives like =$fh
17:46 moritz_ std: my $fh; =$fh
17:46 p6eval std 27472: OUTPUT«##### PARSE FAILED #####␤Can't understand next input--giving up at /tmp/Ux3Bnb26bL line 1:␤------> [32mmy $fh; [31m=$fh[0m␤    expecting any of:␤ prefix or noun␤   statement end␤FAILED 00:02 36m␤»
17:48 TimToady std: 81
17:48 p6eval std 27472: OUTPUT«ok 00:02 36m␤»
17:56 TimToady std: =$fh
17:56 p6eval std 27472: OUTPUT«ok 00:02 35m␤»
17:57 TimToady the std rebuild seems to have a hitch in it's getalong
17:57 TimToady *its
17:57 TimToady grr, can we just change English now?
17:57 TimToady shower &
17:58 FurnaceBoy joined #perl6
17:59 sbp if it's was good enough for Emily Dickinson, it's good enough for us
17:59 pmichaud I'm wondering if std is treating the leading = as some sort of pod escape
18:00 pmichaud std:  + =$fh
18:00 sbp (she also used “have'nt” and “opon” consistently)
18:00 p6eval std 27472:  ( no output )
18:00 TimToady yes, that's what I just fixed
18:00 pmichaud ah
18:00 TimToady but 72 <<< 81
18:00 pmichaud oh, didn't see the commit there
18:01 TimToady or rather 72 ⋘ 81
18:01 moritz_ TimToady: it currently doesn't compile on the server...
18:01 moritz_ ./std CORE.setting
18:01 moritz_ ##### PARSE FAILED #####
18:01 moritz_ Malformed constant at CORE.setting line 68:
18:01 moritz_ ------>     constant pi is export = 3.14159_26535_89793_23846_2
18:01 TimToady okay, I know what's wrong
18:01 moritz_ is there any use in trying a 'make clean'?
18:01 TimToady no
18:02 TimToady fix coming
18:02 TimToady in fact, make clean is what I should have done here a little more often
18:04 M_o_C joined #perl6
18:07 pugs_svn r27482 | lwall++ | [STD] special form of constant declaration didn't allow traits
18:09 rfordinal joined #perl6
18:09 rfordinal left #perl6
18:10 TimToady シャワします、よ!&
18:11 eMaX joined #perl6
18:12 sbp phenny: "シャワします、よ!"?
18:12 phenny sbp: "The SHAWA, I!" (ja to en, translate.google.com)
18:12 sbp slacker
18:12 sbp oh, SHAWA, not SCHWA...
18:13 ruoso joined #perl6
18:14 Pismire2 joined #perl6
18:17 pmurias ruoso: hi
18:21 pmurias ruoso: multis are the source of the slow CORE loading
18:23 ruoso hi pmurias
18:24 ruoso pmurias, the multi initialzation? or some use of multis during the initialization?
18:25 pmurias multi initalization
18:27 pmurias ruoso: i've started writing a simple call graph printer/profile as find it hard to guess what's eating the speed
18:27 ruoso pmurias, that's cool
18:28 ruoso pmurias, Multi initialization is just a role declaration...
18:28 ruoso what's so slow about it?
18:29 pmurias what i meant creating multis is slow
18:30 ruoso ah... right
18:30 M_o_C joined #perl6
18:30 pmurias if you don't load CORE/int.pm you hardly notice the loading of the setting
18:30 ruoso pmurias, how much of that is the initialization of the punned class?
18:31 ruoso (which is currently not cached)
18:31 athomason joined #perl6
18:31 pmurias dunno, haven't checked that yet
18:33 * ruoso checking on software transactional memory, since locking has so much impact in performance
18:39 sjohnson joined #perl6
18:42 zamolxes joined #perl6
18:47 justatheory_ joined #perl6
18:47 TimToady std: =$fh
18:47 p6eval std 27482: OUTPUT«##### PARSE FAILED #####␤Illegal pod directive at /tmp/1Uqmdsnwmt line 1:␤------> [32m=[31m$fh[0m␤    expecting pod_comment␤FAILED 00:02 35m␤»
18:52 moritz_ pmichaud: I thought a bit more about the release process. When a pumpking wants to regress on a few tests (let's say, due to parrot's GC problems), but doesn't want to make that permanent - should he create a branch for the release?
18:54 skipper_ joined #perl6
18:55 justatheory_ joined #perl6
19:02 moritz_ std: .say if /foo/ for <bar baz>;
19:02 p6eval std 27482: OUTPUT«ok 00:02 36m␤»
19:03 TimToady heh
19:03 moritz_ if somebody asks me if I'm /sure/, I verify ;-)
19:03 moritz_ afk
19:04 skipper joined #perl6
19:07 masak joined #perl6
19:08 masak #perl6-soc meeting starting now, if anyone is thus inclined.
19:32 pugs_svn r27483 | kyle++ | [t/spec] Test ordering of multi calls in roles, classes, and their parents.
19:32 christine joined #perl6
19:35 ruoso enabling STM would require adding "current transaction context" into the "current continuation"
19:39 ruoso which would probably mean that finding the "current transaction context" would involve looking into the "back" continuations until find any
19:45 pugs_svn r27484 | pmurias++ | [re-smop] added a compile time option and env variable that when set
19:45 pugs_svn r27484 | pmurias++ | will enable printing out info usefull for creating a call graph
19:50 ruoso we actually need  a system that supports nested transactions
19:51 ruoso which excludes most of the C implementations
19:51 pmurias ruoso: i have to read up on STM as i'm only vaguly distantly familiar with it
19:51 ruoso pmurias, it's like having each memory segment you alloc being handled by a database
19:52 ruoso you BEGIN and you COMMIT, and sometimes a transaction rollsback without you expecting it to
19:52 ruoso (actually, you're supposed to expect it to rollback eventually)
19:55 kate21de joined #perl6
19:56 * ruoso considering using BerkeleyDB in-memory databases...
19:57 pmurias isn't that slow?
19:57 PerlJam pmurias: as compared with hitting a disk?
19:57 PerlJam pmurias: or do you just mean slower than non-stm memory accesses?
19:58 pmurias my experience with BerkleyDB is not very reasurring
19:59 ruoso PerlJam, It would be interesting to have any comparison between bdb and other stm implementations
20:00 TimToady phone
20:02 * ruoso looking if PostgreSQL MVCC can be embedded stand-alone as a library
20:03 meppl joined #perl6
20:12 Tene I got some Perl 6 into a Hello World contest run by some guy recruiting employees for his NINJA company: http://saymix.com/
20:13 moritz_ a "hell of a world" contest? ;-)
20:13 Tene it came from this job posting: http://sfbay.craigslist.org/sfc/eng/1246353621.html
20:14 Tene The actual job posting turns out to be: http://www.trustedopinion.com/pub/careersabout.do which disagrees in several ways
20:14 Tene kinda weird
20:14 Tene but it was a fun hello world
20:14 icwiener_ joined #perl6
20:14 Tene rakudo: say [~] (98 <<+<< (([,] gather take ($_+2+int($_/3))%3 xx $_+1 for 0..3).map: { $*b++ * 3 + $^a })[2133474530.comb])>>.chr
20:14 p6eval rakudo 70bfd5: OUTPUT«Use of uninitialized value␤helloworld␤»
20:20 jnthn Tene++
20:20 jnthn Nice!
20:20 jnthn WIN: We were uncertain to receive any Perl 6.
20:20 jnthn And it was awesome.
20:20 jnthn Land of happy.
20:20 moritz_ aye
20:21 moritz_ that's what gained Tene++ his previos ++ ;-)
20:22 donaldh joined #perl6
20:23 Tene Yes, I got "[~] ( Top Tier ) [~]" !!!
20:24 TimToady jnthn: on traits, I think we need to have a different name for the semantic multis from the trait_mod syntax creator
20:25 jnthn std: "[~] ( Top Tier ) [~]
20:25 jnthn std: [~] ( Top Tier ) [~]
20:25 p6eval std 27484: OUTPUT«##### PARSE FAILED #####␤(Possible runaway string from line 1)␤Can't understand next input--giving up at /tmp/kdHu8mdJex line 2:␤------> [32m[31m;[0m␤    expecting escape␤FAILED 00:04 39m␤»
20:25 p6eval std 27484: OUTPUT«##### PARSE FAILED #####␤Can't understand next input--giving up at /tmp/W4K8hEtw7z line 2:␤------> [32m[31m;[0m␤    expecting any of:␤    prefix or noun␤   whitespace␤Undeclared names:␤       Tier used at 1 1 ␤        Top used at 1 1 ␤FAILED 00:02 38m␤»
20:25 jnthn ...semicolon?!
20:26 jnthn But I didn't send in a ; std!
20:26 jnthn :-)
20:26 jnthn TimToady: Different name in what sense?
20:26 jnthn TimToady: As in, what would you name differently?
20:28 TimToady trait_mod:<is> would redispatch internally to TRAIT_IS or some such
20:28 cbk joined #perl6
20:28 jnthn The call?
20:28 TimToady so you only need one trait_mod:<foo> to introduce the syntax, and however many TRAIT_FOO definitions you want to implement it
20:29 jnthn Hmm
20:29 TimToady jnthn: std adds a ; for you on the end
20:29 jnthn Ah, generous. ;_)
20:29 TimToady it should probably catch that and report EOF instead
20:32 jnthn So a sub foo is export would call TRAIT_IS?
20:32 ruoso one interesting side effect of actually using a database as the memory would be the ease of generating a dump of the current state of the runtime
20:34 jnthn TimToady: What should declaring a trait_mod:<is> multi actually do though?
20:34 jnthn That is, if it actually declares a TRAIT_IS really then we just gave the same problem a different name...
20:35 TimToady it doesn't declare a TRAIT_IS, it redispatches to TRAIT_IS
20:36 TimToady there's only one trait_mod:<is>, and it's in the CORE
20:36 TimToady the user only does TRAIT_IS
20:37 jnthn Ah, I see
20:37 jnthn And users write a TRAIT_IS?
20:38 KyleHa Is there documentation on how to write in Perl 6 what I'd do with 'tie' in Perl 5?
20:38 jnthn And they have to get it exported somwehre trait_mod:<is> will find it?
20:38 TimToady that's what I was trying to say
20:38 jnthn OK.
20:38 TimToady correct
20:38 jnthn OK, that makes sense.
20:38 TimToady does that help?
20:38 jnthn If you can get that into S14, I'll hack on it when I return.
20:38 jnthn Yes, it solves the problem.
20:38 jnthn If creating a little quirkiness.
20:39 jnthn Since people are used to declaring category:<symbol> stuff from e.g. operator overloading.
20:39 ruoso KyleHa, you just need to implement the API, no need to tie
20:39 KyleHa ruoso: OK, where's the API?  Is there an example?
20:40 ruoso KyleHa, the API is being described in S32
20:40 ruoso it's still incomplete
20:40 ruoso but provides a lot of information already
20:42 moritz_ S32? setting library?
20:42 ruoso moritz_, yes
20:42 ruoso isn't there where Array, Scalar and the other built-in types are described?
20:43 moritz_ ruoso: yes, but that doesn't describe how to "tie" a scalar
20:43 moritz_ or write a different scalar container type
20:43 moritz_ (which is more Perl 6 lingo, I think)
20:43 ruoso moritz_, of course it does
20:43 ruoso it's just a matter of implementing that methods
20:44 ruoso and you're done
20:44 TimToady my @array is MyArray;
20:44 ruoso or... my @array := MyArray.new
20:44 Su-Shee left #perl6
20:47 moritz_ that's not scalars
20:48 ruoso er...
20:48 moritz_ for assignment, do I have to add an infix:<=> multi? or .STORE? or what?
20:48 ruoso well... that's the part of the API which I think is mostly incomplete...
20:48 ruoso but in SMOP, the Scalar API is .FETCH and .STORE
20:48 ruoso and that's all
20:49 ruoso since your scalar ~~ SCalar
20:49 ruoso it will be accepted in any multi that expects an scalar
20:49 ruoso although assignment is kinda special
20:50 justatheory joined #perl6
20:51 pmichaud back
20:52 pmichaud 18:52 <moritz_> pmichaud: I thought a bit more about the release process. When a pumpking wants to regress on a few tests (let's say, due to parrot's GC problems), but  doesn't want to make that permanent - should he create a branch for the release?
20:52 ruoso btw... just posted a message about the role composition issue...
20:52 * ruoso decommute &
20:52 pmichaud moritz_: I think just fudge them out in master, make the release, then fudge them back in
20:53 pmichaud (where "fudge" means "comment them out in spectest.data")
20:53 pmichaud Hopefully we won't ever have to do that in reality.  Hopefully after Parrot gets its -G stuff cleaned up we'll never have to do it again :-)
20:54 PerlJam pmichaud: Murphy's Law.
20:54 moritz_ pmichaud: I admire your faith.
20:54 pmichaud PerlJam: sure, thus "hopefully"
20:54 cbk ruoso, can one make an array without any predetermined limit
20:54 pmichaud as chip once said:  "I find your lack of lack of faith disturbing."
20:54 PerlJam heh
20:56 pmichaud anyway, I think commit+release+revert is probably easier to manage and explain than creating a separate branch.  Although someday we may start making separate branches for every release.
20:57 moritz_ pmichaud: that was my initial thought, but then again it's easy to forget to revert such things
20:58 pmichaud moritz_: this is true also.  But I suspect someone will notice.
20:58 pmichaud at some point we probably need to check and see if any of the things we've already regressed on in spectest.data are candidates for being put back in :-)
21:00 jnthn Well, making augment work again would win various of them back. :-)
21:00 pmichaud oh yeah
21:00 jnthn But that's blocking on context vars. Or at least, doing it neatly is.
21:00 * pmichaud adds "context vars" to his "do by yapc::eu" list.
21:00 jnthn If the latest scope decl is set in a context var, it becomes a fairly trivial change.
21:01 pmichaud well, it's not just context vars -- we also need the ability to set context vars in regexes
21:01 pmichaud which means the regex parser has to be able to parse them
21:01 jnthn ah yes
21:01 jnthn that is a little trickier.
21:01 jnthn I guess it's the parsing side of that, which is the harder part?
21:01 pmichaud if we left it with very simple expressions and initializations, not too bad.
21:01 Whiteknight joined #perl6
21:01 pmichaud i.e., PGE could stub in something very simple.
21:02 pmichaud but in some senses it argues for going ahead and getting PGE's regex parser to be more STD-like in the first place
21:02 jnthn nod
21:02 jnthn I guess that's going to have to happen soon anyway.
21:11 cognominal_ I note that in scala one can alias  "this", that is the Perl 6 "self". I find that a pretty nice feature.
21:12 cognominal_ That makes clear one refer to some member of the a trait.
21:12 cognominal_ I forgot to say that aliasing is happening in the trait.
21:12 cognominal_ that would be a rôle in Perl 6
21:17 eMaX joined #perl6
21:29 masak joined #perl6
21:29 masak http://arohner.blogspot.com/2009/07/can-your-programming-language-do-this.html
21:29 masak someone care to write some awesome Perl 6 code as a comment to that post? :)
21:31 moritz_ -[+] @p.map: * * log(*, $b) # does that count as awesome? ;-)
21:31 masak I think so.
21:31 masak does the log(*, $b) really work?
21:31 jnthn A lot of *s. ;-)
21:32 jnthn I'm not so sure it would...
21:32 moritz_ rakudo: my @P = 0.2, 0.5, 0.3; say -[+] @P.map: { $^p * log($^p, 2) }
21:32 masak me neither.
21:32 p6eval rakudo 70bfd5: OUTPUT«too many arguments passed (2) - 1 params expected␤in method Any::map (/tmp/eKtrFSmhvL:2)␤called from Main (/tmp/eKtrFSmhvL:2)␤»
21:32 moritz_ rakudo: my @P = 0.2, 0.5, 0.3; say -[+] @P.map: { $^p * log($^p)/log(2) }
21:32 p6eval rakudo 70bfd5: OUTPUT«1.48547529722733␤»
21:33 jnthn Longer but imo more readable.
21:33 moritz_ our Num multi method log ( Num $x: Num :$base = Num::e ) is export
21:33 moritz_ it *should* work.
21:33 masak bug? :)
21:33 moritz_ masak, a job for you!
21:34 masak rakudo: say log(1, 10)
21:34 p6eval rakudo 70bfd5: OUTPUT«too many arguments passed (2) - 1 params expected␤in Main (/tmp/psZJMbZLuC:2)␤»
21:34 * masak submits ze rakudobug
21:34 jnthn ooh la la...ze rakudobug
21:35 masak incroyable!
21:35 moritz_ log() is not even in the setting yet.
21:35 masak by the way, is this BUG or TODO?
21:35 moritz_ a TODO
21:35 masak oh, good. for jnthn, I mean. :)
21:35 skids Just make sure you use log($cabin) in the report.
21:35 moritz_ a subset of the specced functionality is already implemented
21:36 masak skids: gotcha.
21:36 jnthn log($that_bug)
21:36 masak .oO( nothing wrong with the -Ofun setting... )
21:37 masak actually, I see another bug there... :)
21:37 moritz_ oh, but it should be :base(2)
21:37 masak rakudo: say log(1, 10)
21:37 moritz_ it's a named only
21:37 p6eval rakudo 70bfd5: OUTPUT«too many arguments passed (2) - 1 params expected␤in Main (/tmp/Yup16MtgP9:2)␤»
21:37 masak I don't know about you, but '1 params' does not make an awesome message...
21:37 TimToady if it were named optional, then 1.log(10) would work
21:37 * masak submits a rakudobug about that
21:38 TimToady positional optional, I mean
21:38 TimToady and you can still name it if you liek
21:38 TimToady *like
21:39 TimToady quick, fix the spec to be the prettiest thing before using it in the followup :)
21:39 hercynium joined #perl6
21:39 masak that'd be a first.
21:40 masak fixing the spec so that a blog comment will be prettier.
21:40 moritz_ lol
21:40 TimToady we could add log2 and log10
21:40 masak the spec changes are approaching Jedi-mind-trick levels. :)
21:40 moritz_ log10 is already in
21:41 jnthn Well, we already had int1, int2, int3, int4... ;-)
21:41 TimToady but not int10
21:41 masak "what do you mean it's not in the spec, it's right there!" *wave*
21:41 TimToady what's up with that
21:41 TimToady aw, heck, just add entropy()
21:41 PerlJam "these are not the specs you are looking for"
21:41 pugs_svn r27485 | moritz++ | [S32/Num] log's base is positional
21:42 masak PerlJam: :)
21:42 masak no seriously. having spec writers and implementors stand by to make a blog comment be as awesome as possible has never happened before in the history of program language design.
21:43 TimToady blog-driven design works for me
21:43 jnthn Language-pimpability driven design
21:44 jnthn Urk, why does my train leave tomorrow at the ridiculous time of 07:50...
21:44 TimToady you live in the wrong timezone
21:44 moritz_ TimToady: is it OK to implement two log multis instead of one with an optional parameter?
21:44 masak I haven't experienced that time of day in many days now...
21:44 TimToady sure
21:44 masak I miss it.
21:44 PerlJam so ... is the ultimate perl 6 retort to that post going to "my language is so awesome, it already knows what entropy is"?
21:44 jnthn masak: same, but I'm not sure I miss it ;-)
21:45 masak jnthn: it's paradoxical. my natural state of being is definitely not morning-person, but I like the mornings because I feel the most focused then.
21:45 TimToady what is the relationship of a 100-year language to entropy, anyway :)
21:45 masak TimToady: a 100-year language withers away continually, but it doesn't matter, because people are having so much fun rebuilding it all the time. :)
21:46 PerlJam TimToady: It'll be funny when our great-great-great-grand kids are looking back and laughing at us for talking about Perl as if were _only_ a 100-year language  :)
21:47 PerlJam masak: That sounds like the start of some Hawking radiation equivalent for a programming language.
21:47 jnthn masak: I don't find I'm that focused then, but I do find it kinda nice getting to midday and having actually got stuff done.
21:48 masak jnthn: yes, that too. it's also quite fun to watch colleagues tumble in bleary-eyed at 8 o'clock or so. but that's when I nail the 5 o'clock wakeup, haven't done that in a while.
21:48 PerlJam What's that temple in Japan (?) that they tear down and build anew every 20 or so years?
21:49 KyleHa Perljam:  http://www.youtube.com/watch?v=Xe1TZaElTAs
21:50 * jnthn decides that the heavy metal band that sing like pirates is NOT the music he wants for the train tomorrow...
21:50 jnthn Six hour train journey :-)
21:50 jnthn I might finally find time to learn Hiragana.
21:50 moritz_ what, you're not rakudo hacking? ;-)
21:51 TimToady らくど hacking
21:51 jnthn moritz_: I find trains mostly uncomfortable places to hack :-|
21:52 jnthn TimToady: Thing is, even when I can read all of the syllables in that, I'll still be none the wiser what it means. ;-)
21:52 moritz_ jnthn: I find trains to be perfect places to discover rakudobugs ;-)
21:53 TimToady you will if you pronounce it, and discover it sounds just like "rakudo"
21:54 jnthn heh
21:54 jnthn And to think I knew く was ku and din't even guess the rest.
21:54 moritz_ rakudo: my @P = 0.2, 0.5, 0.3; say -[+] @P.map -> $p { $p * log $p, 2 }
21:55 p6eval rakudo 70bfd5: OUTPUT«Statement not terminated properly at line 2, near "-> $p { $p"␤in Main (src/gen_setting.pm:3340)␤»
21:55 * masak only recognizes の
21:55 moritz_ rakudo: my @P = 0.2, 0.5, 0.3; say -[+] @P.map: -> $p { $p * log $p, 2 }
21:55 p6eval rakudo 70bfd5: OUTPUT«too many arguments passed (2) - 1 params expected␤in method Any::map (/tmp/npqYY3sFL0:2)␤called from Main (/tmp/npqYY3sFL0:2)␤»
21:55 moritz_ bah, I have to actually push my changes :)
21:55 masak :P
21:56 moritz_ but first I have to wait for my spectests to finish. sigh.
21:56 TimToady might be prettier as a for loop, though NYI
21:57 mkfort joined #perl6
21:59 jnthn oh noes, I coined "less than awesome"
21:59 TimToady rakudo: say -[+]($_ for 1..10)
21:59 p6eval rakudo 70bfd5: OUTPUT«get_number() not implemented in class 'Iterator'␤in Main (/tmp/NnCBuHMPfJ:2)␤»
22:00 jnthn Why'd you write $_ for 1..10 rather than just 1..10?
22:00 jnthn Other than to fail Rakudo? ;-)
22:00 TimToady to see if the for loop would return a list
22:00 TimToady as it's specced to do
22:00 jnthn ah
22:00 jnthn no, our for loops are a bit too traditional for that just yet. ;-)
22:02 jnthn moritz_: I guess log is going in Any?
22:02 * jnthn just spotted the pleamichaud post :-)
22:03 masak which post is that?
22:03 pmichaud jnthn: for better "too many arguments" errors -- think we need to trap those exceptions and rework the message, or ...?
22:04 masak pmichaud: is it a Parrot message? doesn't Parrot want awesome messages also?
22:04 pmichaud masak: I can't say for sure.  :-)
22:05 pmichaud but yes, it's a Parrot message at the moment.
22:05 moritz_ jnthn: aye
22:05 jnthn pmichaud: It's a parrot message.
22:05 pmichaud jnthn: yes, I know that
22:06 moritz_ jnthn: it turns out I also need to move the Complex log
22:06 jnthn pmichaud: I'm going to punt on that until we know what we're doing with regards to Parrot.
22:06 pmichaud I'm saying that if/when we want to replace parrot messages with our own, do we do it by trapping exceptions or ...?
22:06 pmichaud yes, we can punt on it for a short while
22:06 jnthn Yeah, we'd have to trap exceptions.
22:06 pmichaud it depends on the parrot calling conventions to some extent
22:06 jnthn But if we end up writing our own binder and having Parrot just give us a capture, for example...
22:06 jnthn Then we get to throw our own exceptions.
22:06 pmichaud exactly :-)
22:07 jnthn Actually my feeling is increasingly that "make Parrot give us a capture" is going to be a reasonably way to go.
22:07 jnthn *reasonable
22:08 pmichaud I think that's likely the case also.  I'm only curious about how hard it will be to do that.
22:08 jnthn Given we almost already do do it.
22:09 pmichaud ooc, when does the exception get thrown.  At the point of the get_params opcode?
22:09 jnthn Yeah
22:09 pmichaud so we mainly need our own equivalent opcode to "get_params"?
22:10 jnthn get_params and set_returns are what actually do the work.
22:10 moritz_ rakudo: say log(-exp(1) + 0i)
22:10 jnthn Well, perhaps, yes. It depends on Parrot.
22:10 pmichaud and we don't generate any ":param" nodes in the past?
22:10 p6eval rakudo 70bfd5: OUTPUT«1+3.14159i␤»
22:10 jnthn If Parrot will build us something capture-like then we can just hand that straight off to a dynop for processing.
22:10 pmichaud I'm thinking that we don't even need Parrot to build it for us
22:10 jnthn The only issue we really have is, I think arg passing from C can be a bit odd.
22:11 pmichaud in our own version of get_params we just unpack the args directly into whatever we want
22:11 jnthn For example, I'm not convinced that a Perl6MultiSub invoked in certain ways will work.
22:11 jnthn (As in, invoked in a way other than setting up the args.)
22:11 jnthn But Allison seems keen on packaging the arguments up in a PMC in her refactor, from what I can tell.
22:11 jnthn Which would unify that.
22:12 pmichaud I'm not saying we change the way that parrot packages up the args
22:12 pmichaud we leave that alone
22:12 pmichaud we just change the way they're unpacked
22:12 moritz_ a GCable object for each sub/method call?
22:12 pmichaud moritz_: we already have a GCable for each method call, to handle the slurpy named args
22:12 jnthn Yes, but the problem is that at the moment they're not packed, and there's different code paths in Parrot for handling that, afaiu.
22:13 pmichaud ...get_params has different code paths?
22:13 jnthn So depending how the arguments are being passed can change how you get hold of them.
22:13 jnthn As far as I can follow, yes.
22:13 pmichaud ick.
22:13 jnthn I may have mis-understood.
22:13 pmichaud I think you're probably right.
22:13 jnthn which given inter_call.c would hardly be surprising.
22:14 jnthn I never figured out how the heck the data structures in there really work.
22:14 pmichaud so perhaps the answer is to unpack the ones we recognize, and pass the others to Parrot's get_params :-P  (no, just kidding!)
22:14 jnthn :-P
22:14 pmichaud well, by far the bulk of calls to Perl6MultiSub will be coming from PIR, not C
22:14 jnthn What I can tell you is that, the code in there is rather...complex...
22:14 pmichaud so perhaps we start with that, and see what else fails
22:15 jnthn And having implemented something to package up the args (see Perl6MultiSub) into a list and a hash, and observed that it's drastically shorter than what Parrot has...
22:15 jnthn I suspect we're shuffling data around all over the place.
22:15 pmichaud I suspect that's correct.
22:16 jnthn Anyway, YAPC::EU is close.
22:16 jnthn Allison will be there.
22:16 jnthn I'll corner her in the nicest possible way and try to get an idea of what she's aiming for and what the timescale is.
22:17 jnthn "plz I can has planz?"
22:17 jnthn And maybe "plz we can influence planz?" :-)
22:17 pmichaud we could do a "good cop/bad cop" routine
22:17 jnthn :D
22:17 pmichaud you can be the "good cop"
22:17 pmichaud I'll rant loudly and throw cups and bang shoes on the table
22:17 PerlJam pmichaud channels orwant?
22:17 pmichaud I might even channel a little mst.  No, on second thought -- that's going too far :-P
22:18 moritz_ every programming language community should have an mst - but not more than one ;-)
22:18 masak there cannot be more than one!
22:18 jnthn ;-)
22:18 PerlJam moritz_: How many tchrist's should a programming language community have?
22:19 moritz_ PerlJam: 0.1 ;-)
22:19 pmichaud there's more than one way to mst it.  :-)
22:19 masak GET BLOGGING, YOU SORRY LOT!
22:19 pmichaud I did!  I even signed up for ironman!  (finally, but haven't been added yet)
22:20 pmichaud I expect to fail spectacularly in the ironman.  :-)
22:20 moritz_ it sometimes take some time
22:20 pugs_svn r27486 | moritz++ | [t/spec] tests for two-arg log() function
22:20 moritz_ ah well, the contest is just an excuse, no?
22:20 masak I was one of the first to sign up, and I think I've been blogging every week since then.
22:20 amoc joined #perl6
22:20 pmichaud whenever I go nine days without a blog post, I think I'll write a post that simply says  "IRONMAN FAIL. AGAIN"
22:20 PerlJam I started to write 2 perl6 related blog posts and got distracted enough that I never finished them.  Such is the case often for me.
22:20 masak pmichaud: it has to contain the word 'perl', too.
22:21 * moritz_ hacked up his blog software to allow publishing by date
22:21 pmichaud masak: no, "ironman" is sufficient, I think.
22:21 moritz_ just for the 3 weeks Norway vacation + ironman
22:21 masak pmichaud: oh, ok.
22:22 masak by the way, what did + and ++ at one time mean in function signatures? http://perlmonks.org/?node_id=462987
22:22 masak useless knowledge now, but I'm curious. :)
22:23 pmichaud tbh, I don't recall what they meant.
22:23 sjohnson anyone else here enjoy the bliss of porting a .sh script into Perl?
22:23 masak glad to hear not only I have a well-functioning gc, then. :)
22:24 masak sjohnson: there's bliss involved, yes.
22:24 jnthn If only Parrot's one only collected the useless, unrequired stuff.
22:25 pmichaud right now Parrot suffers from an over-aggressive gc
22:25 jnthn Yes, and ironically still also leaks memory!
22:25 pmichaud "You only have one C pointer referencing this PMC.... you probably don't need it."
22:26 jnthn Probabalistic GC.
22:26 masak Fatalistic GC.
22:26 moritz_ russian GC ;-)
22:26 desertm4x joined #perl6
22:26 masak we should make that into a musical number.
22:27 pmichaud I call 9839.
22:27 pmichaud (a musical number)
22:28 pmichaud rakudo:   say "\c9839"
22:28 p6eval rakudo 70bfd5: OUTPUT«♯␤»
22:28 masak XD
22:29 pmichaud (yes, I thought it was pretty sharp :-)
22:29 jnthn <groan>
22:29 jnthn Never a flat moment on #perl6.
22:29 masak not that tone, please.
22:30 jnthn Sorry. I'll change my tune.
22:30 pmichaud rakudo:  say "\c119070"
22:30 p6eval rakudo 70bfd5: OUTPUT«𝄞␤»
22:30 pmichaud okay, it wasn't likely.
22:30 PerlJam don't end on a sour note
22:31 jnthn PerlJam: Yes, that's the key thing.
22:37 masak one could even say it's instrumental to success...
22:37 PerlJam and here I was thinking no one wanted to continue the canon.
22:38 PerlJam (although I guess this is more of a fugue)
22:39 masak hope no-one runs autounfugue.pl, then...
22:39 * masak will pipe down now
22:39 PerlJam yeah, you don't want to get winded.
22:40 masak I'll shut up and write some coda.
22:42 masak (though apparently shutting up is not my forte)
22:43 masak dang, playing on words is too much pun!
22:44 masak -Opun
22:45 * jnthn neglects to keep a score of who has punned most
22:46 masak that person would surely some kind of maestro of musical puns...
22:47 PerlJam a magical mystical musical maestro
22:47 PerlJam (sorry the ems cried out for alliteration)
22:47 * pmichaud is disappointed at the treble he's caused.
22:48 * PerlJam leaves for TKD
22:49 masak pmichaud: yes, we really haven't been conducting ourselves...
22:51 masak at least we all refrained from dragging chromatic into it.
22:53 pmichaud that would've been too much e-scale-ation
22:53 masak yes, a major intermezzo.
23:03 jrtayloriv joined #perl6
23:05 ihrd joined #perl6
23:05 masak ihrd: o/
23:06 jnthn ihrd: \o
23:06 ihrd masak: Ж-:)
23:07 masak ihrd: kak dela?
23:07 ihrd jnthn: 8()
23:07 jnthn ihrd: Как дела?
23:07 ihrd )))
23:07 jnthn aww, masak beat me, but I got the Cyrillic win!
23:08 ihrd нормально
23:08 masak I was thinking, "aww, jnthn got the Cyrillic win..."
23:08 masak is нормально a good thing or a bad thing? :)
23:08 hercynium joined #perl6
23:09 ihrd it is absolutly netral
23:09 ihrd we use it when we can`t say how things going in one short word
23:09 masak I guess it means "oh, the usual" or something like that.
23:10 ihrd hm, yes and no
23:10 masak my question was more whether "the usual" is good or bad. :)
23:10 masak apparently, connection's not to good, in any case. :/
23:11 jnthn masak: Heh, we have in Slovak "ujde to" which is this kinda "meh, so so" kinda not good could be worse -ish thingy.
23:11 jnthn But not bad either.
23:11 jnthn :-)
23:11 jnthn I suspect it's a similar sentiment.
23:12 masak I've heard 'bolshe-menje' in Russian as well. it seems to mean 'so-so'.
23:12 masak uh, s/j/y/ in English transcription.
23:13 jnthn heh, I tend to read "j" as English "y" most of the time now if I see it in a non-English word.
23:13 masak you'd have to unlearn that for Japanese, then. :)
23:15 s1n jnthn: before you head out on vacation, i want to ask you about trait_mod
23:15 jnthn masak: Yes, tell me about it! :-(
23:16 jnthn That's why I'm so desparate to learn the Hiragana and Katakana and do everything from those...
23:16 jnthn s1n: ano, mozes
23:16 masak jnthn: ohnoeshowlongwillyoubeonvacation?
23:16 jnthn oh crap
23:16 jnthn s1n: Yes, you can
23:16 * jnthn doesn't cope well with simultaneous conversations in multiple languages :-)
23:16 jnthn masak: Oh, calm down. This one is shorter than the last one!
23:17 s1n jnthn: i have been trying to convert my code that did trait_auxillary, but i get a dispatch error when i start using trait_mod
23:17 masak jnthn: are you chatting in slovak in some other channel when you make those slips? I kinda hope you are... :)
23:17 jnthn masak: Yeah.
23:17 jnthn masak: It's great practice.
23:17 masak good. then we don't need to seek some grimmer explanation.
23:17 masak jnthn: aye, definitely. I should do that with Mandarin.
23:18 jnthn I'm tyring to get more "in the flesh" language partners too.
23:18 * masak likes that 'you can' in Slovak is 'mozes'
23:18 * masak imagines Barack Obama shouting "Ano, Mozes!"
23:18 jnthn ...
23:19 jnthn s1n: I saw your comment about that.
23:19 masak jnthn: how does one say "we can"? 'mozeme'?
23:19 s1n jnthn: any take on what i was doing wrong?
23:19 jnthn s1n: It resulted in a discussion with TimToady++ who today proposed a solution.
23:19 s1n jnthn: ahh okay, i didn't see that in the scrollback
23:20 jnthn You're not really doing anything wrong per se, it's just that the way S14 has it results in oddities like the one you found.
23:20 jnthn If you want it to work at the moment
23:20 jnthn Then declare your multi trait_mod:<is> outside of the role.
23:20 donaldh joined #perl6
23:21 s1n jnthn: the sample i posted is, but it's in a module, exported
23:21 s1n lemme see if i can cull a p6eval
23:22 s1n rakudo: role xxx {}; module Foo { multi trait_mod:<is>(Code $block, xxx $trait, $arg) is export { ... }; }
23:22 p6eval rakudo 70bfd5: OUTPUT«No applicable candidates found to dispatch to for 'trait_mod:is'␤in Main (/tmp/OeGMGUAvK2:2)␤»
23:22 s1n the one i posted above was one i was testing from the spec
23:23 s1n err s/above/yesterday/
23:23 jnthn Ah, OK, my workaround was too specific. :-)
23:23 jnthn rakudo: role xxx {};  multi trait_mod:<is>(Code  $block, xxx $trait, $arg) is export { ... };
23:23 p6eval rakudo 70bfd5:  ( no output )
23:23 jnthn This works
23:23 s1n outside a module?
23:23 jnthn The problem is that in a package, your triat_mod:<is> ends up getting installed in the namespace and found.
23:24 jnthn And all multi-variants outside of that package are thus ignored.
23:24 jnthn Including the export one.
23:24 jnthn That's basically what's at the root of this.
23:25 s1n hmm, which namespace is the trait_mod being installed in? Foo?
23:25 jnthn Foo
23:25 jnthn And then the dispatch from within Foo finds that.
23:25 s1n hmm, that's going to be a hard work around to make work :/
23:26 s1n it
23:26 s1n oops
23:26 jnthn Yes, I know. :-(
23:26 payload joined #perl6
23:26 s1n it's modifying the module data, so .... shrugs
23:27 s1n is there a ticket for this? is it currently being worked?
23:28 s1n (in case it's a low priority or will be worked later)
23:28 jnthn TimToady proposed a change in the way we handle traits that would fix it.
23:28 jnthn It hasn't hit S14 yet.
23:28 jnthn And I only learned of it earlier on today, but I'm about to go on vacation.
23:28 jnthn I'm perfectly happy if somebody goes ahead and implements said solution while I@m away.
23:28 s1n okay, i'll make a ticket so you don't forget about it :)
23:29 * s1n would like to help but has to read the scrollback to see if i could
23:29 jnthn In fact, it's probably quite easy. If you're lucky, not even any PIR knowledge needed.
23:29 ihrd joined #perl6
23:31 s1n jnthn: any ideas as to where to look?
23:31 jnthn Did you read what needed doing?
23:32 jnthn Or do you mean, where to look to find that discussion?
23:32 s1n yeah but it's all above my head conceptually (multi dispatch and all)
23:32 jnthn If you're wanting to write your own traits, I suspect it's not so much over your head. :-)
23:33 jnthn Basically you need to:
23:33 s1n jnthn: you can thank Tene for that :)
23:33 jnthn 1) Modify the things in traits.pm in the setting to be called TRAIT_IS rather than trait_mod:<is>
23:33 s1n i never _really_ understood them, just kinda molded them together in my head until it kinda made sense
23:34 * s1n listens intently
23:34 jnthn 2) Write a trait_mod:<is> that just passes on the argumetns it gets to TRAIT_IS
23:34 jnthn e.g.
23:34 jnthn multi trait_mod:<is>(*@pos_args, *%named_args) { TRAIT_IS(|@pos_args, |%named_args); }
23:35 jnthn Then you will write not a trait_mod:<is> in your module, but a multi TRAIT_IS that you'll export.
23:35 jnthn The important thing is that you don't change anything (e.g. in actions.pm) that emits calls to trait_mod:<is>.
23:35 s1n so in the user code, it's TRAIT_IS instead of trait_mod:<is>?
23:35 jnthn Correct.
23:36 jnthn This avoids the problem.
23:36 jnthn Because we don't call TRAIT_IS
23:36 jnthn We call trait_mod:<is>
23:36 s1n is this for only modules that have trait_mod?
23:36 jnthn And thus you just have to export your TRAIT_IS to somewhere the trait_mod:<is> can find it.
23:36 jnthn Yes, but in the setting that is only traits.pm
23:36 jnthn There are no other places you'll need to change.
23:37 jnthn In fact, you can probably just patch that file.
23:37 s1n do all the other traits in modules have to call TRAIT_*?
23:37 TimToady and your  multi trait_mod:<is> wants a lift, I suspect, to get the user's view of TRAIT_IS
23:37 jnthn TimToady: erm. huh?
23:37 jnthn TimToady: Doesn't that completely unsolve the problem we solved by splitting them up?
23:38 jnthn (The problem being that the view of trait_mod:<is> was an undesirable one)?
23:38 jnthn s1n: Yes.
23:39 s1n so there's TRAIT_* and trait_mod<*>? that doesn't seem very clean
23:39 jnthn s1n: All of this said, this has not hit the spec yet. And that can suggest a sort of non-commitalness to the solution.
23:39 jnthn (I don't know in this case. It could just be that TimToady++ didn't get around to patching the spec yet, or that this could change.)
23:40 jnthn Not clean - yes, I think I was a little "hmm" about it in that sense too. :-)
23:41 TimToady maybe the name indirection actually needs to happen at export/import time
23:41 s1n i don't think we should have this confusion to make the implementation easier :)
23:41 jnthn Hmm.
23:41 s1n (just to poke at jnth and pmichaud a bit more :))
23:42 jnthn :-P
23:42 jnthn TimToady: It could be.
23:42 jnthn TimToady: I don't have any thoughts on a "magic answer".
23:42 s1n jnthn: i don't have any thoughts on any answer :)
23:42 jnthn TimToady: I'm not so keen that we break the symmetry and tell users to define something other than trait_mod:<is> though.
23:42 TimToady I call it TRAIT_IS here when I define it but it shows up there as trait_mod:<is>
23:43 jnthn Can we flip it the other way around?
23:43 jnthn So users are defining a trait_mod:<is>?
23:43 TimToady wait, multis don't hide other things with different longnames anyway
23:43 jnthn And we're calling a TRAIT_IS?
23:43 jnthn Well, they don't in lexical scopes, I know that much.
23:43 jnthn But in nested packages too?
23:44 TimToady multi dispatch never looks in packages
23:44 jnthn erm
23:44 jnthn ?
23:44 jnthn multi foo() { }; foo()
23:44 jnthn Is that not looking in the package?
23:44 TimToady it's the lexical alias of foo that it sees
23:44 jnthn :-S
23:44 TimToady that's our multi, a my multi would work the same
23:45 jnthn So basically we install the multi also in the lexpad?
23:45 TimToady we *must not* pay attention to packages, or we don't have immutable candidate lists at compile time
23:45 jnthn Hmm
23:45 jnthn That's a good point.
23:45 TimToady that's what 'our' does
23:46 TimToady and imports go only to the lexical scope by default
23:46 jnthn OK, but in that case
23:47 jnthn multi foo($a) { }; module Bar { multi foo() { }; }
23:47 jnthn Inside Bar, how many multi candidates? 2?
23:47 TimToady 2
23:47 jnthn And how do we know that?
23:47 jnthn By looking at the enclosing lexical scope>?
23:47 TimToady because they have different longnames
23:47 TimToady yes, lexical scope
23:48 jnthn OK, so
23:48 s1n jnthn: how many would rakudo find now? 1?
23:48 jnthn multi foo($a) { }; module Bar { multi foo($a) { }; }
23:48 jnthn In that case, how many candidates? 1?
23:48 jnthn The inner one?
23:48 TimToady we never, never, ever, ever look in the package unless specifically requested to do so, whereupon we warn the programmer that his program will probably run 1000x slower
23:48 jnthn s1n: Correct.
23:49 jnthn TimToady: The irony being that in Rakudo at the moment it's likely to be faster :-P
23:49 jnthn And the more interesting case
23:49 jnthn multi foo($b) { }; module Bar { multi foo($a) { }; } # how many?
23:49 TimToady only because rakudo is 1000x too slow at everything :P
23:49 jnthn below the belt! :-P
23:49 jnthn But true.
23:49 jnthn :'(
23:50 s1n this definitely sounds like i'll make a ticket
23:50 s1n no spec change needed then?
23:50 jnthn If only we'd know what Perl 6 would look like 3 Parrot architects ago.
23:51 TimToady oddly, still 2, I think, since a positional is a kind of mandatory nameable parameter
23:51 jnthn OK
23:51 TimToady and foo(:b(42)) should find the outer one
23:51 jnthn aye
23:51 jnthn and more fun
23:51 nacho_ joined #perl6
23:52 jnthn ::T := Int; ::S := Int; multi foo(T $a) { }; module Bar { multi foo(S $a) { }; } # how many?
23:52 TimToady but that does mean that we're probably fine on the trait_mod:<is> declaration without introducing TRAIT_IS
23:52 jnthn Yes.
23:52 jnthn It just means I've gotta tweak multi-dispatch again.
23:53 TimToady asssuming they're declared with mandatory pairs, I think
23:53 jnthn But hey, I'm experienced at that.
23:53 jnthn Yes
23:53 jnthn The traits are done as mandatory pairs.
23:53 jnthn See the signatures in src/setting/traits.pm
23:53 jnthn Yes, they're Perl 6! ;-)
23:54 jnthn And yes, the ones for containers are funky right now.
23:54 TimToady I don't see such a file
23:55 TimToady are you in a branch?  or do I need to something other than git fetch?
23:55 jnthn In Rakudo?
23:55 jnthn no, it's head
23:55 jnthn or master
23:55 jnthn or whatever the oh-yes-we're-git-we-have-our-own-words word is. ;-)
23:56 jnthn http://github.com/rakudo/rakudo/blob/70bfd5c1ab3e87ded8c78728338056dad97f1f4e/src/setting/traits.pm
23:57 jnthn (and yes, I know there's a lot of hate in there. the previous traits impl didn't go on multi dispatch at all...)
23:57 s1n jnthn: i filed a ticket, with an IRC log link so that you can remember all of this when you return :)
23:58 s1n jnthn, TimToady: thanks for going over that with me
23:59 TimToady I didn't see any mandatory nameds in there, offhand

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

Perl 6 | Reference Documentation | Rakudo