Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2013-04-16

Perl 6 | Reference Documentation | Rakudo

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

All times shown according to UTC.

Time Nick Message
00:00 japhb_ JSON has a simple grammar; we should be able to process it fairly efficiently, and if not there's something wrong.
00:01 armitage81 joined #perl6
00:02 armitage81 joined #perl6
00:03 armitage81 joined #perl6
00:04 armitage81 joined #perl6
00:04 armitage81 joined #perl6
00:12 thou joined #perl6
00:35 tangentstorm where is the json grammar?
00:39 takesako___ joined #perl6
00:54 sunnavy joined #perl6
01:01 sunnavy joined #perl6
01:05 anuby joined #perl6
01:10 tangentstorm timotimo: which json parser are you using?
01:23 xinming joined #perl6
01:24 Psyche^ joined #perl6
01:36 snuffles joined #perl6
01:46 preflex joined #perl6
01:51 raiph tangentstorm: do you know about http://modules.perl6.org/?
01:59 fgomez joined #perl6
02:23 tangentstorm raiph: yes
02:25 tangentstorm i'm asking is it JSON::Tiny that is slow?
02:26 raiph i'm thinking yes: http://irclog.perlgeek.de/​perl6/2013-04-15#i_6708012
02:26 kurahaupo joined #perl6
02:27 tangentstorm oh. whoops. totally missed the 98989 times he said that. :D
02:27 tangentstorm thanks
02:28 diakopter japhb: I'm quite convinced the slowness is dominated by the nature of the grammar engine
02:28 tangentstorm do we have a profiler?
02:29 tangentstorm hrmmm http://perl6advent.wordpress.c​om/2011/12/07/grammarprofiler/
02:29 japhb tangentstorm, yes, there is a profiler -- but profilers do have their weak points.
02:30 japhb diakopter, why so convinced?
02:31 diakopter well, hm
02:32 mogbog joined #perl6
02:41 orafu joined #perl6
02:43 preflex_ joined #perl6
03:10 mogbog joined #perl6
03:59 dalek rakudo/nom: f17d339 | coke++ | src/core/List.pm:
03:59 dalek rakudo/nom: port List.ACCEPTS back from b
03:59 dalek rakudo/nom:
03:59 dalek rakudo/nom: * gets Whatever special handling for lists back.
03:59 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/f17d339185
03:59 dalek roast: 8d0b1b8 | coke++ | S03-smartmatch/array-array.t:
03:59 dalek roast: rakudo passes these again
03:59 dalek roast: review: https://github.com/perl6/roast/commit/8d0b1b8872
04:06 [Coke] .tell isBEKaml done. resurrected the coe (sort of) from b.
04:06 yoleaux [Coke]: I'll pass your message to isBEKaml.
04:06 [Coke] .tell isBEKaml *code
04:06 yoleaux [Coke]: I'll pass your message to isBEKaml.
04:16 SamuraiJack joined #perl6
04:21 rking joined #perl6
04:28 lue joined #perl6
04:30 lue HexChat: 2.9.4 ** OS: Linux 3.3.8-gentoo x86_64 ** Distro: Gentoo Linux (stable) ** CPU: 2 x AMD Athlon(tm) Dual Core Processor 4450B (AuthenticAMD) @ 2.29GHz ** RAM: Physical: 3.6GB, 86.7% free ** Disk: Total: 73.4GB, 11.4% free ** VGA: 1002:9611 ** Sound: HDA-Intel - HDA ATI SB ** Ethernet: 14e4:167a ** Uptime: 1h 33m 48s **
04:34 jaldhar_ joined #perl6
04:56 flussence .oO( 3.3?!? )
05:01 lue flussence: kernel version? I should get to updating that sometime soon :P
05:09 rindolf joined #perl6
05:25 fgomez joined #perl6
05:42 ingy http://rosettacode.org/wiki/Report​s:Tasks_not_implemented_in_Perl_6
05:42 ingy get cracking!
05:44 ingy I know what my favorite one is…
05:44 sqirrel joined #perl6
05:46 striker joined #perl6
05:47 diakopter Use another language to call a function?
05:53 FROGGS joined #perl6
05:54 FROGGS morning
05:54 yoleaux 15 Apr 2013 19:29Z <moritz> FROGGS: if https://github.com/rakudo/rakudo/pull/87 can be closed
05:54 FROGGS std: do { say 1 } for ^3
05:54 camelia std 86b102f: OUTPUT«ok 00:00 43m␤»
05:54 FROGGS r: do { say 1 } for ^3
05:54 camelia rakudo f17d33: OUTPUT«[31m===[0mSORRY![​31m===[0m�Unsupported use of do...for; in Perl 6 please use repeat...for�at /tmp/RqsSjEAHH1:1�------> [32mdo { say 1 } for ^3[33m�[31m<EOL>[0m�    expecting any of:�        postfix�»
05:55 FROGGS moritz: have to read specs first, because I'm not sure if do ... for should be supported
06:18 frdmn joined #perl6
06:21 sorear S04:413 "applying a statement modifier to a C<do> block is
06:21 sorear specifically disallowed"
06:21 sorear this is plausibly a STDbug
06:23 FROGGS cool, so my pull request might be good, even if I want to check what I did five months ago :o)
06:23 FROGGS thanks sorear++
06:32 simcop2387 joined #perl6
06:37 cognominal joined #perl6
06:49 kaleem joined #perl6
07:08 dalecooper joined #perl6
07:11 domidumont joined #perl6
07:18 domidumont joined #perl6
07:19 baest joined #perl6
07:24 domidumont joined #perl6
07:34 spider-mario joined #perl6
07:42 hypolin joined #perl6
07:47 PerlJam joined #perl6
07:53 hypolin joined #perl6
07:55 hlin_ joined #perl6
08:07 hypolin joined #perl6
08:11 kresike joined #perl6
08:11 kresike hello all you happy perl6 people
08:12 cognominal hello *
08:13 labster hi kresike, cognominal
08:14 kresike cognominal, labster o/
08:15 domidumont joined #perl6
08:15 labster \o
08:22 timotimo so, theoretically since json is so utterly simple, i could write my own parser that's 100x faster?
08:25 tangentstorm you could write your own parser... whether you can get a 100x speedup or not... :)
08:27 timotimo what astounded me in addition is the utter slowness of to-json, though
08:28 tadzik tried profiling?
08:28 timotimo from-json-ing the data 5 times takes 3 seconds, but when i to-json it again each time, it will take 27
08:32 tgt joined #perl6
08:32 timotimo kcachegrind seems to show a super long tail
08:33 timotimo apparently the proto of infix:<<> is being called very often
08:34 daxim joined #perl6
08:35 FROGGS timotimo: that might be a general problem of parsing grammars
08:36 FROGGS because if you have: <sym> <sometoken> it might think there is an infix <
08:36 tadzik I don't think the problem is in parsing the JSON grammar code
08:38 timotimo huh, why would it think that?
08:41 FROGGS timotimo: I just recognized that for 'require "path/to/script.pl" <&import-foo>' it tried to parse it as 'require "path/to/script.pl"' infix:< '&import-foo' first
08:41 FROGGS but might not be releated like tadzik said
08:41 tadzik also, at a quick glance I didn't spot infix < in moritz/json
08:42 FROGGS ... and it parsed it wrongly because I used <sym> <EXPR> <EXPR>
08:42 timotimo oh. no, i'm talking about the actual operator
08:43 timotimo not the rule
08:43 jnthn morning, #perl6
08:43 FROGGS hi jnthn
08:43 timotimo hello jnthn
08:44 FROGGS damnit, ':=' doesnt work in PHP, right?
08:45 * FROGGS .oO( not quiet php )
08:48 jnthn .oO( try writing less of the code in uppercase )
08:49 dakkar joined #perl6
08:59 hypolin joined #perl6
09:06 sorear once upon a time, niecza use JSYNC for storing the compiled modules
09:06 sorear it's now using a custom binary format, but there's still a JSON/JSYNC engine in the C# code which you can play with :3
09:14 tgt joined #perl6
09:17 kivutar joined #perl6
09:25 cognominal nqp: 'a' ~~ / <?before $<a>=a > { say($<a>) } a /
09:25 camelia nqp: OUTPUT«␤»
09:27 cognominal should an hypothetical in a <?before> be lost?
09:28 FROGGS AFAIK you cant capture in <?before>
09:29 FROGGS nqp: 'a' ~~ / <?{ say($/); 1 }> a /
09:29 camelia nqp: OUTPUT«␤»
09:29 FROGGS nqp: 'a' ~~ / <?{ say(self.orig); 1 }> a /
09:29 camelia nqp: OUTPUT«a␤»
09:29 FROGGS nqp: 'a' ~~ / <?{ say(self.orig) }> a /
09:29 camelia nqp: OUTPUT«a␤»
09:30 FROGGS nqp: 'ba' ~~ / <?{ say(self.orig) }> a /
09:30 camelia nqp: OUTPUT«ba␤ba␤»
09:31 jnthn The thing passed to <?before ...> is a new capture scope
09:31 timotimo i'm going to write an AI for a super simple game; it streams the game state as JSON via TCP and expects simple commands on TCP as reply. i'd like to make it in perl6, so the good thing is the game is turn based and the game currently gives the AI players 2 seconds of decision time before kicking the mout
09:32 jnthn (So I'd not expect the $<a> capture inside of it to be visible outside of it)
09:32 timotimo i wonder why to-json is so slow though. is it because of the string concatenations? are they really slow in rakudo?
09:33 jnthn timotimo: Strings are immutable, so concatenating two strings makes a new string and copies the two.
09:33 timotimo maybe one optimization that could totally be done is turning string concatenation "lazy", so when you concatenate 5 strings, you first calculate the length of the result and write that into a new string when it gets stored somewhere or something?
09:34 timotimo but i don't know enough about perl6 internals to get that to work :|
09:34 jnthn Well, it doesn't want to be lazy
09:34 jnthn But STD has ~ as list associative
09:34 FROGGS jnthn: then these throw-away-scopes need to be done for proper backtracking too, I remember open tickets for that
09:35 jnthn Meaning if you do foo ~ bar ~ baz, it would call infix:<~>(foo, bar, baz)
09:35 timotimo can rakudo get that, too?
09:35 jnthn I'm not sure if Rakudo has it that way at present; that may not be too hard to fix.
09:36 tangentstorm perhaps in the actual to-json code, you could just change it to build a list of strings and then join the list at the end?
09:36 jnthn I don't know if we special-case reduction for list-associative operators at present, but if we did then [~] would get the boost "for free" too
09:36 tangentstorm that's a pretty common workaround.
09:36 timotimo does rakudo currently have any way of saying "all right, i want to create a string of 100 characters now" and then write lots of pieces in and then turn the result into an actual Str without too much extra copying?
09:36 jnthn timotimo: Arrays, and join :)
09:36 timotimo oh, that already does that? sweet.
09:37 timotimo i'll see if [~] will give big improvements in to-json now.
09:37 jnthn Oh, but that opt is NYI :)
09:37 timotimo oh :|
09:37 jnthn I don't think we treat ~ as list assoc ATM.
09:37 timotimo is that something to be done in nqp?
09:38 jnthn Well, it means changing the assoc in Rakudo's Grammar, then adding a multi candidate for infix:<~>(*@things) that joins them.
09:38 timotimo oh, i thought you meant "[~] is fast" was the opt that's NYI
09:38 jnthn Well, it's all connected
09:39 timotimo well, if i create the infix:<~>(*@things) to [~] them together and [~] isn't "fast" yet, that's no use :P
09:39 cognominal thx for the answers about <?before >  jnthn
09:39 jnthn Roughly, if [~] @foo is really going to call infix:<~>(@foo) then it boils down to a join
09:40 timotimo ah. but the join is already fast, yes?
09:40 jnthn You've got it the wrong way round. [~] would become faster because it could use an infix:<~> that calls join for many items
09:40 timotimo aaah
09:40 timotimo yes, i see, that makes more sense in my head now :)
09:40 cognominal ~ is used a lot to build pir code I suppose.
09:41 jnthn cognominal: Nah, that is building up a big array :)
09:41 FROGGS so, assoc<list> for src/Perl6/Grammar.pm line 2900? Perl6::Grammar.O(':prec<r=>, :assoc<left>',  '%concatenation');
09:41 jnthn FROGGS: Yeah; that'd match https://github.com/perl6/st​d/blob/master/STD.pm6#L118
09:41 cognominal that's proof some optimisation is needed :)
09:41 FROGGS right
09:43 timotimo FROGGS: are you going to come up with the list assoc for ~ or should i do the honors? :)
09:45 timotimo hm, would nqp also benefit from this i wonder?
09:45 jnthn It's much harder to do this in NQP
09:46 jnthn As its operators don't do a multi-dispatch.
09:46 timotimo oh, ok
09:46 jnthn And it's nice if NQP can stay simpler :)
09:46 timotimo could one rewrite chains of ~ into [~] across the source code? i don't think nqp actually has [~]
09:46 FROGGS timotimo: I am totally busy right now, just lurking a bit
09:46 kivutar joined #perl6
09:46 FROGGS timotimo: so please go ahead :o)
09:46 timotimo will do :)
09:48 arnsholt Wow. R is super awesome
09:49 * FROGGS .oO( wrong channel? :P )
09:49 timotimo arnsholt: R backend for rakudo? :)
09:49 arnsholt Not really. Just sharing my revelation of the moment =)
09:49 timotimo :)
09:49 arnsholt timotimo: I think this is where I say "well volunteered!" ;)
09:50 timotimo haha. i don't know anythin gabout R
09:54 timotimo can i have multiple protos or something?
09:55 timotimo because infix:<~> currently has a proto for two arguments
09:55 timotimo would i just turn that into proto infix:<~>(|) { * }?
09:57 jnthn timotimo: No, you have one proto. And yes, you'll need to change it.
09:58 timotimo where exactly lies the need for the proto in this case? i suppose if there were only two arguments i can see a definite benefit
09:58 sftp joined #perl6
09:58 timotimo hm. any good reason not to handle two argument forms and one argument forms of ~ with a join as well?
09:59 timotimo maybe an array has to be created for simpler cases then and that would be slower
09:59 jnthn Exactly
09:59 sorear timotimo: A proto with arguments serves as a central point for converting named forms to positional.  &infix:<~>(:x(2), :x(3))
09:59 jnthn Keep the two argument candidate.
09:59 timotimo oh, it compiles now
09:59 timotimo a quick spectest now
10:00 jnthn timotimo: You may find fallout there
10:00 jnthn timotimo: Also, you may want to measure if this actually makes things better ;)
10:00 timotimo yes, i will want to do that for sure.
10:02 timotimo i'm getting strange errors indeed.
10:06 timotimo No such method 'count' for invocant of type 'Str'  -  i may be getting calls to *@things with only one parameter or something
10:07 woolfy joined #perl6
10:07 jnthn .count isn't .elems; .count is something you call on a block
10:07 timotimo ah, ok, that's even more interesting
10:12 timotimo hm, what's the meaning of **@ in a signature? (looking at other list-assoc operators to see if i can copy the behavior from somewhere else)
10:14 tangentstorm if that was borrowed from python, it would mean applying the items of the array as keyword arguments...
10:14 tangentstorm or collecting them
10:14 tangentstorm <wild guess. probably not helpful>
10:15 timotimo in perl6, you do that with *%
10:16 SamuraiJack joined #perl6
10:18 timotimo jnthn: i don't know how to properly get a candidate that gives me a list of arguments and a special candidate for when i have two arguments only :(
10:20 jnthn **@foo means "don't flatten all the incoming arguments"
10:20 jnthn timotimo: What have you got?
10:22 timotimo i turned the proto to take (|) first, then removed the () altogether and finally removed the two-argument candidates completely; there's still no joy
10:23 timotimo basic usage works, but the tests show failures
10:26 timotimo qx/echo world/.trans('wd' => 'WD')  ->  Cannot assign a non-Perl 6 value to a Perl 6 container
10:39 sorear timotimo: you know how a signature like foo(@bar, @baz) lets you keep the boundaries between arrays?   **@foo does the same for a variable number of arguments
10:39 sorear kind of important for X, because  1,2 X 3,4 X 5,6 is not the same as 1,2,3 X 4,5,6
10:40 timotimo yes, good point
10:40 sorear you actually do need it for ~
10:41 sorear r: say 1..3 ~ 4..6
10:41 camelia rakudo f17d33: OUTPUT«[31m===[0mSORRY!​[31m===[0m�Operators '..' and '..' are non-associative and require parenthesis�at /tmp/g36Lttg7V8:1�------> [32msay 1..3 ~ 4.[33m�[31m.6[0m�    expecting any of:�        dotty method or postfix�»
10:41 sorear r: say (1..3) ~ (4..6)
10:41 camelia rakudo f17d33: OUTPUT«1 2 34 5 6␤»
10:42 sorear if you tried to use a regular slurpy, ~ would get six arguments and would end p returning 123456
10:42 timotimo good point
10:42 timotimo afk for a bit
10:43 sorear sleep&
10:45 xinming joined #perl6
10:53 crab2313 joined #perl6
11:06 xinming joined #perl6
11:22 timotimo maybe i'll need to do dispatching magic in the proto or something? :|
11:22 timotimo but then compile-time dispatch wouldn't work any more, would it?
11:25 frdmn|afk joined #perl6
11:30 jnthn timotimo: Magic sounds wrong.
11:30 jnthn timotimo: What needs doing is looking through the failures, identifying the simplest one, and trying to golf down to the root of the issue(s) to understand what's really wrong.
11:32 timotimo well, my golfing says sub yoink() { "foo bar" }; yoink.trans("o" => "0")  <- Cannot assign a non-Perl 6 value to a Perl 6 container. so i suppose trans uses ~ internally in a way that doesn't work with my changes
11:33 jnthn Right, .trans is huge
11:33 jnthn Needs much more golfing.
11:36 timotimo i may find a simpler one to golf first and maybe end up at the same conclusion
11:37 jnthn Yes, I'd be surprised if there aren't ones simpler than a .trans failure
11:38 xinming joined #perl6
11:38 Heather joined #perl6
11:39 Heather how's going #perl6
11:41 jnthn Busily for me, 'cus I gotta give talks tomorrow and, as per usual, left preparing them until the day before. :)
11:42 tadzik same here, but I got to know of my talk yesterday evening ;)
11:42 Heather today I realized that I hate ruby much more that I hated it earlier
11:43 Heather by trying to understand http://po-ru.com/diary/fixing-i​nvalid-utf-8-in-ruby-revisited/
11:43 jnthn The closest I've come to doing anything with Ruby is reading chunks of the JRuby source code... :)
11:45 Heather jnthn but I wonder that there is no perl on their VM
11:46 jnthn nqp-jvm: say("well, there's NQP on the JVM...")
11:46 camelia nqp-jvm: OUTPUT«well, there's NQP on the JVM...␤»
11:48 jnthn One of the JRuby guys is very involved with invokedynamic, so JRuby is a good place to go looking for real examples of it in a language implementation.
11:50 Heather jnthn today I discovered atomo and atomy and it's over geeky stuff :) http://darcsden.com/alex/blog/browse/site.atomo
11:53 erkan joined #perl6
11:53 erkan joined #perl6
11:54 timotimo hm, a triangle reduce of ~ should be lazy, eh? there's not much to optimize there i suppose. but i wonder why it would break in that spectacular fashion.
11:57 jnthn Heather: Hm, never saw that language before :)
12:03 domidumont joined #perl6
12:06 eiro joined #perl6
12:10 Heather jnthn it looks very fancy
12:11 Heather jnthn even when there is only 1 developer / user
12:11 Heather :D
12:13 frdmn joined #perl6
12:15 colomon six more modules working today than yesterday!  \o/
12:15 Heather cool
12:18 telex joined #perl6
12:19 pmichaud note that the reduce metaoperator already knows how to change for list versus binary operators
12:20 dalek ecosystem: cc158ba | colomon++ | META.list:
12:20 dalek ecosystem: Switch Template6 to use my (working) fork.
12:20 dalek ecosystem: review: https://github.com/perl6/e​cosystem/commit/cc158ba74c
12:22 pmichaud i.e., if &infix:<~> switches to list associativity, then [~] will automatically generate a single call to &infix:<~> instead of multiple pairwise calls.
12:22 pmichaud defining &infix:<~> in terms of [~] gets things a little backwards from that
12:23 jnthn pmichaud: Aye, that's what I was trying to explain.
12:24 jnthn [~] should certianly get more efficient this way :)
12:24 timotimo yes, i'm trying to make infix:<~> use ().join if there's more than two ars
12:25 timotimo okay, the problematic points are MAIN and trans :|
12:25 timotimo both seem less than easy to fix :(
12:29 timotimo i'm not sure i'll figure this out at all
12:34 pmichaud can you nopaste a diff of what you have thus far?
12:35 timotimo sure, it's almost nothing and it doesn't incorporate the **@things thing sorear told me about before
12:36 pmichaud I think it won't work without **@things.  The problematic line in .trans is likely
12:36 Heather left #perl6
12:36 pmichaud $0 ~ "\t" x ($steps div $?TABSTOP) ~
12:36 pmichaud ' '  x ($steps mod $?TABSTOP) ~ $1
12:36 timotimo https://github.com/timo/rakudo/compare/fast_tilde
12:36 PacoLinux joined #perl6
12:36 timotimo i'm not 100% sure what errors i got when i put ** in there. i'll try that again
12:37 timotimo so, in **@things, i'll probably have a list of lists, yes? it seemed like .join would work fine with that, though
12:39 pmichaud maybe.   .join calls .flat, so that might be causing **@things to flatten.  The exact interpretation of **@things is still a bit fuzzy, at least to me.
12:39 timotimo the thing is, that with **@things i get "no signatures match" ;)
12:40 timotimo and i don't know if i can just put a *@things and a **@things in there and have it still work as expected
12:40 timotimo i could un-flat the things manually, if the **@things sub would actually get called :|
12:40 pmichaud that's what you should be able to do, yes.
12:41 * jnthn wonders if the multi-dispatcher ever got taught that **@foo has slurpy arity...
12:41 timotimo ok, wasn't sure the multidispatcher would actually catch that
12:41 pmichaud are you saying that the **@things candidate isn't being called?  That would seem unlikely.
12:41 jnthn r: multi foo(*@a) { }; foo(1,2,3)
12:41 camelia rakudo f17d33:  ( no output )
12:42 jnthn r: multi foo(**@a) { }; foo(1,2,3)
12:42 camelia rakudo f17d33: OUTPUT«===SORRY!===␤CHECK FAILED:␤Calling 'foo' will never work with argument types (Int, Int, Int) (lines 1, 1)␤    Expected any of:␤    :(*@a)␤»
12:42 jnthn hmmm.
12:42 pmichaud okay, that looks likely then :)
12:42 jnthn r: multi foo(**@a) { }; my $x = &foo; $x(1,2,3)
12:42 camelia rakudo f17d33: OUTPUT«Cannot call 'foo'; none of these signatures match:␤:(*@a)␤  in sub foo at /tmp/eCcpvu5twU:1␤  in block  at /tmp/eCcpvu5twU:1␤␤»
12:42 jnthn OK, and it's not just the compile time analysis
12:42 jnthn Oh...I think the parameter carries a different flag for ** vs *
12:43 * jnthn wonders why we never ran into this before :)
12:43 pmichaud we haven't done a lot with **, I suspect.
12:43 pmichaud but yes, &infix:<~> will require **
12:45 pmichaud (if it's to be list associative)
12:45 timotimo jnthn: is that something i could fix, or rather a bit too hard?
12:45 FROGGS joined #perl6
12:45 jnthn timotimo: Easier now because the multi-dispatcher is written in NQP :)
12:45 jnthn Lives in BOOTSTRAP
12:45 timotimo hehe.
12:47 pmichaud also, I wonder if changing &infix:<~> to use ** will run into some of the other flattening/listy issues that some other list metaops currently have
12:47 [Coke] r: say (1,2,3,4) ~~ (1,*,*,*,*,*,*,*,4)
12:47 camelia rakudo f17d33: OUTPUT«True␤»
12:47 pmichaud Coke++
12:47 jnthn https://github.com/rakudo/rakudo/blob/no​m/src/Perl6/Metamodel/BOOTSTRAP.pm#L792
12:47 jnthn timotimo: ^ is around where we need it to change, I think
12:48 [Coke] pmichaud: best of both words, I get the karma, but can blame b for the implementation! ;)
12:49 [Coke] should be a bunch more low hanging fruit out there, I think.
12:51 domidumont1 joined #perl6
12:53 cognominal lizmat, are you living in Echt, for real?  # masak, does that qualify as a multilingual autopun knowing that "echt" is also the Dutch and German word for "real".
12:55 erkan joined #perl6
12:55 erkan joined #perl6
12:57 moritz no, just a pun, IMHO
12:57 tgt joined #perl6
12:57 woosley1 joined #perl6
12:57 grondilu joined #perl6
12:58 grondilu rn: say expmod(2, 817, 1_000_000)
12:58 camelia rakudo f17d33, niecza v24-37-gf9c8fc2: OUTPUT«427072␤»
13:04 rindolf joined #perl6
13:08 rindolf joined #perl6
13:13 rindolf joined #perl6
13:14 bluescreen10 joined #perl6
13:18 rindolf joined #perl6
13:23 rindolf joined #perl6
13:31 rindolf joined #perl6
13:39 rindolf joined #perl6
13:43 kaleem joined #perl6
13:47 rindolf joined #perl6
13:56 rindolf joined #perl6
14:00 bluescreen10 joined #perl6
14:04 rindolf joined #perl6
14:07 PacoLinux joined #perl6
14:09 skids joined #perl6
14:14 rindolf joined #perl6
14:16 kaare_ joined #perl6
14:19 dalek rakudo/nom: 41a92e8 | (Tobias Leich)++ | src/Perl6/Grammar.pm:
14:19 dalek rakudo/nom: proper error message for usage of 'do...for'
14:19 dalek rakudo/nom:
14:19 dalek rakudo/nom: https://rt.perl.org/rt3/Tic​ket/Display.html?id=102652
14:19 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/41a92e808e
14:19 dalek rakudo/nom: a07b37e | (Tobias Leich)++ | src/Perl6/Grammar.pm:
14:19 dalek rakudo/nom: Merge pull request #87 from FROGGS/patch-3
14:19 dalek rakudo/nom:
14:19 dalek rakudo/nom: proper error message for usage of 'do...for'
14:19 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/a07b37e77d
14:20 gfldex r: say @*INC
14:20 camelia rakudo f17d33: OUTPUT«/home/p6eval/nom-inst/lib/parro​t/5.2.0-devel/languages/perl6/site/lib /home/p6eval/nom-inst/lib/parrot/5.2​.0-devel/languages/perl6/vendor/lib /home/p6eval/nom-inst/lib/parrot​/5.2.0-devel/languages/perl6/lib /home/p6eval/.perl6/2013.03-97-ge1f5d99/lib␤»
14:21 gfldex is it intentional to have the compiler version in $HOME's part of @*INC?
14:21 rindolf joined #perl6
14:21 tadzik yes
14:22 tadzik because precompiled modules are not portable between compiler releases
14:23 gfldex debian wont like that
14:24 tadzik why not?
14:24 tadzik my debian liked that
14:25 gfldex i'm talking about the debian folk not your debian install
14:25 gfldex if you have to touch $HOME every time rakudo.deb is updated, they wont take it into testing
14:26 colomon anyone here understand POST?  I'm trying to understand the test failures in LWP::Simple, and they're both POST requests that look like they are a) doing what they've always done (ie no Rakudo regressions I can see) and b) make no sense to me.
14:27 tadzik ah, no
14:27 tadzik you don't touch HOME at all
14:27 tadzik not when installing rakudo at least
14:27 tadzik it's just the default place to look for user-installed modules
14:27 tadzik module managers respect that too
14:28 tadzik r: say %*CUSTOM_LIB<home>
14:28 camelia rakudo f17d33: OUTPUT«/home/p6eval/.perl​6/2013.03-97-ge1f5d99␤»
14:28 FROGGS when upgrading rakudo's deb package this home dir won't be touched
14:29 FROGGS the user have to rebootstrap his own stuff, only then it will be touched
14:29 gfldex what means that all custom modules that used to be found wont be found anymore, as it just happed to me
14:29 FROGGS gfldex: like it used to perl 5
14:29 FROGGS *used to be with
14:30 FROGGS modules you install via cpan is gone after upgrading from 5.12 to 5.14
14:30 rindolf joined #perl6
14:31 gfldex modules that i didn't install and didn't require any XS stuff just kept working
14:31 gfldex *install via cpan
14:32 FROGGS that is not my experience, since the path it installed to contained perl's version
14:33 FROGGS root@info:~# perl -E 'say @INC'
14:33 FROGGS /etc/perl/usr/local/lib/perl/5.10.1/usr​/local/share/perl/5.10.1/usr/lib/perl5/​usr/share/perl5/usr/lib/perl/5.10/usr/s​hare/perl/5.10/usr/local/lib/site_perl.
14:33 FROGGS whitespace missing but you get the idea
14:34 xilo joined #perl6
14:35 FROGGS (we once updated from an 5.8.something and I remember that I wrote scripts which creates list about what modules we need)
14:35 FROGGS bbia15
14:37 gfldex I found why it was working for me. Perl5 respects PERLLIB and PERL5LIB
14:38 gfldex does rakudo do the same?
14:42 kaleem joined #perl6
14:42 kaleem joined #perl6
14:43 rindolf joined #perl6
14:54 rindolf joined #perl6
14:59 timotimo okay, back to working on rakudo and **@ support
14:59 timotimo i took the constant for SLURPY_LOL and added it into BOOTSTRAP. now i'll see how far I get :)
15:01 FROGGS joined #perl6
15:04 gtodd **@ !
15:05 FROGGS gtodd: we have PERL6LIB
15:05 rindolf joined #perl6
15:05 gtodd :-)
15:06 FROGGS ohh, sorry
15:06 FROGGS gfldex: we have PERL6LIB :o)
15:06 kaare_ joined #perl6
15:07 gfldex i will swiftly abuse that!
15:07 gtodd FROGGS: since when ? :-)
15:07 timotimo gtodd: i have no idea yet if it'll work or not at all now ;)
15:07 timotimo still got to get a compiling version
15:07 FROGGS gtodd: can't tell, since I'm a newbie here
15:08 FROGGS timotimo: what happened to your [~] thingeny?
15:08 timotimo it requires **@ support first
15:08 FROGGS ahh, okay
15:09 timotimo i can only hope that implementing **@ will make [~] work better swiftly
15:09 gtodd it will be nice to be able to separate homegrown and cpan6/panda installed modules from the install target directory
15:10 timotimo > sub a(**@b) { say @b.perl }; a((1, 2, 3), (4, 5, 6))
15:10 timotimo LoL.new($(1, 2, 3), $(4, 5, 6))
15:10 timotimo that was surprisingly easy :)
15:10 kresike bye folks
15:10 gtodd make; make install; perl6
15:10 gtodd Missing or wrong version of dependency 'src/Perl6/Actions.pm'
15:10 gtodd current instr.: '' pc 993 (src/gen/perl6.pir:362) (src/main.nqp src/gen/main-version.nqp:52)
15:10 gtodd :-\
15:10 jnthn timotimo: um, wasn't it a multi you are meant to be testing it with?
15:12 timotimo uh, sure
15:12 timotimo did that always work?
15:12 timotimo r: sub a(**@b) { say @b.perl }; a((1, 2, 3), (4, 5, 6))
15:12 camelia rakudo f17d33: OUTPUT«LoL.new($(1, 2, 3), $(4, 5, 6))␤»
15:12 jnthn Yes
15:12 timotimo ah, okay, that's good to know
15:12 jnthn For certain definitions of always :)
15:13 timotimo yeah, it works with multi, too
15:14 timotimo multi sub a(**@a) { say @a.perl; say "lol" }; multi sub a($a, $b) { say "$a, $b, not lol" }; a(1, 2, 3, 4); a(1, 2)
15:14 timotimo r: multi sub a(**@a) { say @a.perl; say "lol" }; multi sub a($a, $b) { say "$a, $b, not lol" }; a(1, 2, 3, 4); a(1, 2)
15:14 camelia rakudo a07b37: OUTPUT«===SORRY!===␤CHECK FAILED:␤Calling 'a' will never work with argument types (Int, Int, Int, Int) (lines 1, 1)␤    Expected any of:␤    :(*@a)␤    :($a, $b)␤»
15:14 timotimo this works locally now
15:14 timotimo and it was surprisingly easy, too :)
15:15 timotimo it didn't make ~ magically work better, but it does work okay. i wonder if there are tests that were fudged before about that
15:15 rindolf joined #perl6
15:16 kaare_ joined #perl6
15:21 lizmat hello #perl6
15:22 colomon o/
15:22 timotimo is there a mechanism that will favor a **@ over a *@ if there's structure in the arguments?
15:22 rindolf joined #perl6
15:23 lizmat while looking up some specs about modules, I found this line at S11:151 :    $*sensitive ::= Sense::<$sensitive>
15:23 lizmat since I don't see any mention of $sensitive anywhere around there, I assume this is left behind from an earlier edit
15:24 lizmat and either should be expanded upon, or removed
15:26 jnthn timotimo: No, a **@a vs a *@a should conflict, almost certainly
15:27 timotimo OK
15:31 rindolf joined #perl6
15:38 [Coke] gtodd: you can't run "perl6" inside your build dir.
15:38 [Coke] gtodd: try "./perl6" or cd up a dir and try "perl6"
15:39 [Coke] this is very likely not acceptable, but is the current state for me on OS X.
15:42 rindolf joined #perl6
15:42 diakopter lizmat: I don't know. :S I don't even remember what ::= means :(
15:42 timotimo compile time binding
15:43 lizmat the fact is that it seems to imply im/exporting scalars, but that is nowhere mentioned in the examples above that
15:43 frdmn joined #perl6
15:43 lizmat so the lines seems to be an orphan of a previous version
15:44 * diakopter goes to look at the git history (which includes the svn history I think) of that section
15:44 kaare_ joined #perl6
15:46 colomon diakopter: git blame?
15:47 isBEKaml joined #perl6
15:47 diakopter oh, :GLOBAL<$warming> was replaced with :CONTEXT<$sensitive>
15:47 isBEKaml good evening, #perl6!
15:47 yoleaux 15 Apr 2013 20:05Z <[Coke]> isBEKaml: roger, will look this evening.
15:47 yoleaux 04:06Z <[Coke]> isBEKaml: done. resurrected the coe (sort of) from b.
15:47 yoleaux 04:06Z <[Coke]> isBEKaml: *code
15:47 isBEKaml [Coke]++ #awesome
15:48 masak oh hai, #perl6
15:48 isBEKaml r: say (1,2,3) ~~ (1,*,3)
15:48 camelia rakudo a07b37: OUTPUT«True␤»
15:48 isBEKaml masak: \0/
15:48 diakopter lizmat: you're right
15:48 [Coke] r: say 1..100 ~~ 1,*,50,*,100
15:48 camelia rakudo a07b37: OUTPUT«False*50*100␤»
15:48 [Coke] r: say (1..100).list ~~ 1,*,50,*,100
15:48 camelia rakudo a07b37: OUTPUT«False*50*100␤»
15:48 [Coke] r: say (1..100).list ~~ (1,*,50,*,100)
15:49 camelia rakudo a07b37: OUTPUT«True␤»
15:49 [Coke] precedence ftw.
15:49 masak isBEKaml: \Ω/
15:49 lizmat diakopter: I will get out the saw
15:49 isBEKaml masak: that character, I can read but can't type! :P
15:49 masak isBEKaml: which characters you can type is a software thing. the sooner we collectively realize this, the better.
15:50 jnthn .oO( ohm y god )
15:50 isBEKaml r: say (1..100) ~~ (1,*,50,*,100)
15:50 camelia rakudo a07b37: OUTPUT«True␤»
15:50 jnthn o/ masak
15:50 dalek specs: fe96bcf | (Elizabeth Mattijsen)++ | S11-modules.pod:
15:50 dalek specs: Remove line the was left behind from a previous edit
15:50 dalek specs: review: https://github.com/perl6/specs/commit/fe96bcf41f
15:50 isBEKaml masak: well, I have to jump through hoops to get to type out of order characters. :)
15:51 isBEKaml Ñ 
15:51 isBEKaml booo
15:51 diakopter lizmat: you fixed up commit 7b198c75e7ba19d5744d1239a6d3853fe784244b
15:51 FROGGS jnthn: if I have a Pair from <colonpair>, how do I pass that to ModuleLoader.load_module? as a QAST::WVal.new( :named( ... ?
15:51 isBEKaml .u OMEGA
15:51 yoleaux U+0277 LATIN SMALL LETTER CLOSED OMEGA [Ll] (É·)
15:51 yoleaux U+038F GREEK CAPITAL LETTER OMEGA WITH TONOS [Lu] (Ώ)
15:51 yoleaux U+03A9 GREEK CAPITAL LETTER OMEGA [Lu] (Ω)
15:52 kbenson joined #perl6
15:52 * gtodd feels trepidation
15:53 isBEKaml oh, that character came out right, only I can't see it. >.<
15:53 gtodd but I must ask out of ignorance ... why is there Mu?  why isn't everything just derived from Any?
15:53 masak jnthn: \o
15:54 census joined #perl6
15:54 gtodd it's like Any both is and is not the base class ...   very ... errm "Zen"
15:54 masak gtodd: Junction ~~ Mu, but Junction !~~ Any
15:55 masak or put, differently, the junctional semantics is powered by the type system.
15:55 masak s/,//
15:56 isBEKaml r: my %h = (a => 1, b => 2, c => 3); say %h ~~ .<c>;
15:56 camelia rakudo a07b37: OUTPUT«True␤»
15:56 FROGGS jnthn: load_module at runtime that is
15:56 isBEKaml r: my %h = (a => 1, b => 2, c => 3); say %h ~~ .{'c'};
15:56 camelia rakudo a07b37: OUTPUT«True␤»
15:56 jnthn FROGGS: If you're calling it at runtime you need to pass it real values, not QAST nodes.
15:57 isBEKaml hmm, S03-smartmatching, any-hash.t can be unfudged for rakudo?
15:59 isBEKaml r: my %h = (a => 1, b => 2, c => 3); say %h ~~ .{'d'};
15:59 camelia rakudo a07b37: OUTPUT«True␤»
15:59 isBEKaml ehh, no
15:59 isBEKaml r: my %h = (a => 1, b => 2, c => 3); say %h ~~ .<d>;
15:59 camelia rakudo a07b37: OUTPUT«True␤»
15:59 isBEKaml b: my %h = (a => 1, b => 2, c => 3); say %h ~~ .<d>;
15:59 moritz not intuitive, but it looks correct to me
15:59 camelia b 922500: OUTPUT«Bool::True␤»
15:59 gtodd masak: ok :) me RTHTFIOPM
16:00 moritz $_ on the RHS binds to %h
16:00 moritz so %h<d> returns Any
16:00 moritz and then %h ~~  Any is true
16:00 isBEKaml moritz: ah, I see - though, as you said, not intuitive. :)
16:01 isBEKaml moritz: in that case, why was it fudged in roast?
16:01 thou joined #perl6
16:01 gtodd say Tru if my hash has number values?
16:02 moritz gtodd: that would just be 'if %h'
16:02 gtodd oh
16:02 moritz isBEKaml: probably an oversight/error from the test writer, or the test was written against an old version of the specs
16:02 isBEKaml gtodd: any number of values (or defined), yeah.
16:03 gtodd oh so that explains the "."
16:03 moritz r: say {a => 1, b => 2} ~~ 'b'
16:03 camelia rakudo a07b37: OUTPUT«False␤»
16:03 moritz r: say 'b' ~~ {a => 1, b => 2}
16:03 camelia rakudo a07b37: OUTPUT«True␤»
16:03 moritz r: say 'd' ~~ {a => 1, b => 2}
16:03 camelia rakudo a07b37: OUTPUT«False␤»
16:03 FROGGS jnthn: so I would make an Op .value, and pass it as QAST::SVal? I think that makes sense
16:04 moritz that's what you want, and what's specced
16:04 isBEKaml b: my %h = (a => 1, b => 2, c => 3); say 'd' ~~ %h;
16:04 camelia b 922500: OUTPUT«Bool::False␤»
16:04 isBEKaml r: my %h = (a => 1, b => 2, c => 3); say 'd' ~~ %h;
16:04 camelia rakudo a07b37: OUTPUT«False␤»
16:04 gtodd with object.methods the dots have me in python and ruby "dot.com boom" mode
16:05 masak gtodd: "RTHTFIOPM"? :)
16:05 gtodd everything.connected.by.dots
16:05 gtodd read the hard to find in one place manual :-)
16:05 gtodd it's in pretty much one place though
16:05 dmol joined #perl6
16:06 isBEKaml moritz: okay, I'll unfudge it then. OOC, do we have any script that does this? ISTR so.
16:09 moritz isBEKaml: tools/autounfudge.pl, which I'm running right now. But it only works in some (limited) situations
16:09 dalek roast: 5d26122 | isBEKaml++ | S03-smartmatch/any-hash.t:
16:09 dalek roast: unfudge any-hash smartmatching for rakudo
16:09 dalek roast: review: https://github.com/perl6/roast/commit/5d26122c21
16:11 gtodd masak:  I'm convivnced being able to read perl6 versions pf all the wonderful perl* pods (perlop, perlreftut, etc) in one place ( /usr/local/lib/perl6/6.0.0/pod ?) will come sooner than expected ... if you guys edit/update/review your blog posts and mailing list threads it'll provide a big jump start :-)
16:11 gtodd but first things first :)
16:14 masak gtodd: best effort so far is docs.perl6.org
16:14 masak mostly thanks to moritz++
16:15 isBEKaml gtodd: there were several attempts in the past, the latest we have is docs.perl6.org and it's pretty much up-to-date.
16:15 isBEKaml gtodd: moritz++ and others have worked at bringing it to its current state.
16:16 isBEKaml moritz: ah, thanks. I was looking at fudge, fudgeall in roast repo. :)
16:18 domidumont joined #perl6
16:34 gtodd isBEKaml: yup and it seems to be auto-generating some of the documentation from the code ... it does lack the perl*tut type stuff which will require human writing - a lot of which has already been ~done by masak moritz and a slew of others like perl6advent contributors etc
16:35 timotimo is t/spec/S06-multi/unpackability.t kind of the right place to put multi method with **@ dispatch tests?
16:35 jnthn timotimo: Or maybe the arity-based.t or so
16:36 jnthn timotimo: I think other slurpy tests are in there
16:36 timotimo ok
16:38 timotimo this file doesn't exist, though
16:39 masak people and bots, today's autopun: https://twitter.com/rachaelkel​ly18/status/323941393091407872
16:42 timotimo i'd be happy for a bit of assistance with the [~] thing, given the **@ fix i pullrequest'd and spectest'd
16:44 FROGGS masak: what makes a pun an autopun?
16:44 timotimo use + mention, i believe?
16:44 masak yeah, that's it.
16:45 masak actually they are not strictly puns.
16:45 masak but that's the name we got for them, and it stuck.
16:47 PerlJam (it's much easier to say than "paranomasia" too  ;)
16:47 PerlJam They're kinda puns if you think of the mention as a weird use.
16:48 masak yeah.
16:49 masak well, a mention is kind of a thunked use. or something.
16:50 PerlJam .oO( perhaps a new name is warranted. "thun"?  "thpun"? )
16:50 isBEKaml r: my %h = (a=> 0, b => 1, c => 3); say %h ~~ .{'c'}; # This returns False locally
16:50 camelia rakudo a07b37: OUTPUT«True␤»
16:52 isBEKaml gtodd: I only speak for myself, those *tuts are what made perl manuals easy reading. I agree that perl6 needs something along those lines.
16:52 timotimo *tuts?
16:53 timotimo ah, of course
16:53 isBEKaml gtodd: I also recall another project (u4x) that had those objectives, but fell through the cracks.
16:53 isBEKaml timotimo: perlretut, perlreftut et al.
16:54 isBEKaml gtodd: I think now would be a good time to revive them.
16:55 masak isBEKaml: doc.perl6.org, for all intents and purposes, has superseded u4x. it's what u4x should have been, with perhaps slightly less starry-eyed dwimmishness.
16:56 PerlJam isBEKaml: What rule from the smart match table in S03 is your example meant to trigger?
16:56 isBEKaml PerlJam: that's straight from any-hash.t in roast.
17:00 isBEKaml PerlJam: Now that I look at S03, I think this: Cool      Hash      hash entry existence    X.{$_}:exists
17:01 isBEKaml masak: "less starry-eyed dwimmishness"? I read that as "grumpy real worldishness" :)
17:02 PerlJam except .{'c'} isn't a hash, is it?
17:02 PerlJam r: my %h = (a=> 0, b => 1, c => 3); say %h ~~ 3;
17:02 camelia rakudo a07b37: OUTPUT«True␤»
17:02 masak isBEKaml: yeah, something like that. "robust realism", perhaps.
17:02 PerlJam seems like this is equivalent.
17:02 masak r: my %h = (a=> 0, b => 1, c => 3); say %h ~~ 1
17:02 camelia rakudo a07b37: OUTPUT«False␤»
17:03 masak PerlJam: checks size of hash.
17:04 domidumont joined #perl6
17:04 PerlJam oh.
17:04 PerlJam I guess I forgot about +%h
17:04 gtodd isBEKaml: yes .. that's my feeling another thing about *tuts is the can be translated, quoted critiqued and improved in a sort of editorial and coommunicative domain ... with autogenerated pods the quality focus is more on comprehensive technical accuracy and precision .. maybe some integration with error messages etc. In ohter words the pods are more like code the tuts like communities culture and historical archive ..
17:05 PerlJam momentary confusion alleviated  :)
17:06 isBEKaml PerlJam: I'm pretty new here - so I can't answer anything now. :D
17:07 tgt joined #perl6
17:08 dalek perl6-roast-data: e60b65f | coke++ | / (3 files):
17:08 dalek perl6-roast-data: today (automated commit)
17:08 dalek perl6-roast-data: review: https://github.com/coke/perl6​-roast-data/commit/e60b65f3ce
17:09 isBEKaml masak: "robust realism" for brevity than expansive documentation?
17:09 PerlJam isBEKaml: Generally, the questioning is almost as useful as the answering  :)
17:09 isBEKaml PerlJam: That's true. :)
17:10 masak isBEKaml: if you go back and look at what u4x was trying to do, you'll see that it was trying to deduce what the user wanted basically from arbitrary fragments of code.
17:10 masak isBEKaml: so if you typed in '[+]', it'd say "ah, yes. that's a reduce of an infix:<+>"
17:10 masak (and link you on to "reduce" and "infix:<+>".
17:10 masak that... was probably a little ambitious.
17:11 isBEKaml masak: ah, now I remember. a little too early for its time.
17:11 masak still not feasible, I'd say.
17:11 isBEKaml masak: somehow, I associated u4x for *tuts and informal documentation. I didn't associate perldocs anywhere near it.
17:13 isBEKaml gtodd: I'd say the closest we got would be perl6 advent calendars. We're still nowhere near bringing up *tut docs.
17:14 * isBEKaml is too distracted again. :|
17:20 census left #perl6
17:21 timotimo i have no clue how a Str ends up in the block slot of a MapIter :|
17:22 timotimo well, it kind of gets called from a ListIter reify method
17:22 timotimo which comes from just a List it seems
17:22 daxim joined #perl6
17:22 anocelot Wow.  git-based installation of Rakudo Perl 6 was super easy on my CentOS 6 vm.  Sweet!
17:23 masak \o/
17:23 gtodd isBEKaml: but closer than one might think :)  ... there should be a perl6 Koan module that exercises Mu and Any and prints out peaceful thought to help developers refocus and refresh if they are distracted :-)
17:23 gtodd isBEKaml: I will help you now by disappearing into the Mu
17:24 gtodd bye all
17:24 masak o/
17:24 * anocelot uses "follow instructions"...  It's Super Effective!
17:24 timotimo hm, join calls my $list = (self,).flat.eager and from there it starts going into b0rkmode
17:24 isBEKaml gtodd: 0/
17:24 [Coke] anocelot++ # pokemon reference.
17:24 anocelot :D
17:29 timotimo i do not understand most of this code. i don't think i can figure this out
17:30 FROGGS timotimo: same here, I'm going crazy right now
17:30 jnthn timotimo: Since we already have a LoL in infix:<~>(**@a) we may want to make things cheaper by doing the join logic directly there...
17:30 isBEKaml timotimo: so now I know what makes jnthn++ drink so much of $beverages. :-)
17:30 * [Coke] wonders what the point of (self,) is ... isn't self.flat already going to do whatever the , did?
17:31 anocelot masak: I will admit I was expecting 'make install' to place an executable in one of the shared bin directories, but I totally understand why this is left as a path inclusion.
17:33 isBEKaml [Coke]: that's what I wondered too. Then I saw .flat - maybe it had another param or a .join that didn't do its job.
17:34 geekosaur joined #perl6
17:34 dalek roast: ef37084 | moritz++ | S32- (2 files):
17:34 dalek roast: two auto-unfudges for rakudo
17:34 dalek roast: review: https://github.com/perl6/roast/commit/ef37084e43
17:36 timotimo jnthn: currently i'm doing a for over the parts and given a Positional i recurse and given anything else, i'll ".Stringy" and .join the rest of that
17:39 timotimo jnthn: but that doesn't help with the weirdness; No such method 'count' for invocant of type 'Str'  --  why would you even put a string there?
17:40 mtk joined #perl6
17:48 fgomez joined #perl6
17:57 dalek perl6-roast-data: 7e75c85 | coke++ | / (4 files):
17:57 dalek perl6-roast-data: today (automated commit)
17:57 dalek perl6-roast-data: review: https://github.com/coke/perl6​-roast-data/commit/7e75c85a53
18:01 frdmn joined #perl6
18:10 DreamingInCode joined #perl6
18:16 rindolf joined #perl6
18:26 [Coke] ack -cl 'nom regression' | awk -F: '{ sum += $2} END { print sum}' => 95
18:27 [Coke] (probably more like 105 given some of those skip more than 1.)
18:28 masak funny, I don't miss that many features any more.
18:29 frd|afk joined #perl6
18:38 arlinius joined #perl6
18:39 _ilbot joined #perl6
18:39 Topic for #perl6 is now »ö« Welcome to Perl 6! | http://perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:,  niecza:, std:, or /msg camelia perl6: ... | irclog: http://irc.perl6.org/ | UTF-8 is our friend!
18:39 [Coke] 100 seems like a small enough number that we could close those out.
18:39 ilbot6 joined #perl6
18:42 jnthn [Coke]: A few of them may also be bests for b behavior that was not spec, or is no longer spec.
18:42 jnthn *tests
18:42 [Coke] jnthn: even better.
18:43 * [Coke] will add that to his rakudo pile.
18:43 masak [Coke]++
18:43 [Coke] jnthn: any more things folks can help with on JVM?
18:44 masak Rakudo needs a release manager for Thursday. any volunteer?
18:44 * [Coke] adds a  "(⌐■_â– )" tag to his gmail.
18:44 masak (I'm willing to take June if someone takes April)
18:46 dalek rakudo/nom: 4f255fa | (Carl Mäsak)++ | docs/release_guide.pod:
18:46 dalek rakudo/nom: Toto, I don't think we're in 2012 any more
18:46 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/4f255fa7c8
18:47 * moritz has an idea for a Hague grant, but probably not for himself
18:47 moritz tackle exporting
18:47 masak moritz: do tell.
18:47 masak what about exporting?
18:47 moritz there are several missing pieces, both in the specs and in rakudo
18:48 moritz for example the spec still says that EXPORTALL and EXPORT are methods, but they can't be, because modules and packages don't have methods
18:48 moritz and then there's the question of how to actually, well, export stuff from EXPORT
18:48 moritz and we need a spec for re-exporting
18:48 moritz and we need better specs for the defaut exporting behavior (what does it do with positional arguments, for example?)
18:49 moritz and then there's the whole topic of renaming while exporting
18:49 jnthn Would be a worthy grant for sure.
18:50 moritz something like   use Module::With::Long::Name (:DEFAULT, :constants) as MWLN;
18:50 masak +1
18:50 moritz and that might put all exported symbols as 'our'-symbols into the newly created package MWLN
18:51 moritz it's exploratory space, but it's certainly doable, and Rakudo has lots of infrastructure for it
18:51 jnthn [Coke]: Checking out which few bigint ops are missing and implementing them, and implementing the recently added IO-related nqp:: ops are two possibles.
18:51 moritz and it'll probably "just" require Perl 6 and NQP code, no C or PIR or I-don't-know
18:51 jnthn It'd be Perl 6 and NQP only, I'm sure.
18:51 Chillance joined #perl6
18:52 snearch joined #perl6
18:56 tadzik damn thinkpad keyboards
18:56 tadzik fortunately, I found a perfect way to put a broken key back where it belongs: http://i.imgur.com/I4SgZ1H.jpg
18:56 masak that'll teach it.
18:57 FROGGS uhh, dell++
18:57 moritz repeat after me: "there's nothing that duct tape can't fix"
18:57 colomon there's nothing that duct tape can't fix
18:57 masak "when was the last time you needed to tape a duct?"
18:57 colomon it's like the Force...
18:57 masak colomon: :P
18:57 masak it has a dark side and a sticky side?
18:59 tadzik haha
19:00 tadzik masak: which one of your presentation software do you recommend?
19:01 masak meh, they all suck.
19:01 masak tadzik: what is your goal?
19:01 jnthn .oO( Not writing another presentation framework :P )
19:02 tadzik masak: I need slides and something to write that that won't get in the way
19:02 tadzik https://github.com/chrishulbert/MarkdownPresenter looks tad nice
19:02 tadzik doesn't want me to install ruby with all its gem-things like showoff does
19:02 masak tadzik: I was quite happy with my latest batch, but I can't see that I pushed it to my talks repo :/
19:03 dmol joined #perl6
19:03 masak tadzik: if you remember my "Exploits" talk, that was the framework.
19:03 lichtkind joined #perl6
19:04 masak tadzik: big white text on black background. tasty icons. easy to write text and integrate images.
19:04 masak generates HTML.
19:04 masak tadzik: I could rescue it for you if you're interested.
19:05 tadzik masak: white text on black background is my favourite layout
19:05 masak :)
19:05 tadzik but this markdownPresenter looks very nice so far, I'll give it a try
19:06 masak sure thing.
19:06 masak I should push those talks anyway.
19:09 tgt joined #perl6
19:16 [Coke] what, no spork?
19:18 masak not for me, no.
19:20 masak tadzik: here, I put my latest slide framework online: https://github.com/masak/talks/blob/master​/yapc-eu-2012-breaking-stuff/generate-talk
19:20 masak 39 LoC, I had forgotten how small it was ;)
19:22 tadzik ah
19:22 tadzik hah
19:22 masak also check out the 'slides' file in the same directory, to see the input format.
19:23 masak it's basically HTML with icons and SVG inclusion rammed through it at right angles.
19:26 cognominal masak: you should put the html files as well so that people don't have to install rakudo to see you slides.
19:27 masak hrm.
19:27 masak I tend to avoid committing generated stuff to repositories.
19:29 masak cognominal: I generally put the products on my home page on feather, though.
19:29 masak haven't done it for the YAPC::EU 2012 talks, but... I should. :)
19:30 masak here: http://feather.perl6.nl/~masak/
19:31 cognominal nice, your slides about macros will refresh my memory
19:32 masak ;)
19:32 moritz masak: now just implement the rest of them :-)
19:34 colomon +1
19:34 colomon ;)
19:34 moritz but first: RE-VIEW TEE-TWO!
19:34 masak nodnodnod
19:34 masak well on its way.
19:34 masak I'm currently cursed by $work needing me a lot.
19:34 masak er, I meant s/curesed/blessed/
19:34 masak :P
19:34 moritz well, better than $work not needing you at all :-)
19:35 masak yeah.
19:35 colomon curse you, masak's $work!
19:35 masak I expect Perl 6 to expand back as $work recedes in the next few time units.
19:38 rindolf left #perl6
19:41 colomon tadzik: ==> Initializing pandabrew
19:41 colomon Failed to create directory 'False/.pandabrew' with mode '0o777': mkdir failed: No such file or directory
19:41 colomon tadzik: no time to look at it now.  :(
19:41 tadzik gah
19:41 colomon tadzik: that's on my mac, it's working fine (and heavily used) on my linux box.
19:41 tadzik oh, yes
19:42 tadzik I can fix that right away
19:42 moritz colomon: you mean your home directory isn't called 'False'? :-)
19:44 tadzik colomon: should be fixed now
19:45 masak False is kind of a cool user name, though.
19:45 jnthn I'm sure I met a guy at a conf whose nick was false :)
19:46 masak jnthn: are you sure it wasn't undefined, but boolified to false? :P
19:46 jnthn :P
19:47 tadzik "Your nick is kind of weird" "True"
19:49 timotimo so
19:50 timotimo i may continue bashing my head against [~] tomorrow without making much headway
19:50 timotimo but for now, it'll be early sleepytimes! good night :)
19:50 jnthn 'night, timotimo++
19:51 timotimo night :)
19:51 FROGGS bah, timotimo, it'll get you anyway :o)
19:51 * moritz follows timotimo's example
19:51 moritz g'night everybody
19:51 timotimo going to bed early is only for people who would be unproductive anyway! don't make me get my whip! :P
19:52 FROGGS gnight moritz
19:52 colomon tadzik++
19:52 FROGGS *g*
19:52 FROGGS gnight timotimo
19:56 gtodd joined #perl6
19:59 colomon tadzik: pandabrew seems to be working correctly for me now!
19:59 tadzik awesome :)
20:08 gdey joined #perl6
20:08 lizmat rn: eval 'say "foo"'
20:08 camelia rakudo 4f255f, niecza v24-37-gf9c8fc2: OUTPUT«foo␤»
20:10 lizmat rn: eval 'print $]'
20:10 camelia rakudo 4f255f: OUTPUT«[31m===[0mSORRY![31​m===[0m�Non-declarative sigil is missing its name�at eval_0:1�------> [32mprint $[33m�[31m][0m�    expecting any of:�        argument list�        prefix or term�        prefix or meta-prefix�»
20:10 camelia ..niecza v24-37-gf9c8fc2: OUTPUT«Unhandled exception: Non-declarative sigil is missing its name␤  at /home/p6eval/niecza/boot/lib/CORE.setting line 1443 (die @ 5) ␤  at /home/p6eval/niecza/src/STD.pm6 line 5639 (STD.sorry @ 7) ␤  at /home/p6eval/niecza/src/STD.pm6 line 2386 (P6.variable @…
20:11 lizmat rn: my $a= eval 'print $]'
20:11 camelia rakudo 4f255f: OUTPUT«[31m===[0mSORRY![31​m===[0m�Non-declarative sigil is missing its name�at eval_0:1�------> [32mprint $[33m�[31m][0m�    expecting any of:�        argument list�        prefix or term�        prefix or meta-prefix�»
20:11 camelia ..niecza v24-37-gf9c8fc2: OUTPUT«Potential difficulties:�  $a is declared but not used at /tmp/JZXfwSERFd line 1:�------> [32mmy [33m�[31m$a= eval 'print $]'[0m��Unhandled exception: Non-declarative sigil is missing its name�  at /home/p6eval/niecza/boot/lib/CORE.setting line 1443 (di…
20:12 lizmat argh, S29:231: Note that unlike in Perl 5, C<eval> does not catch any exceptions or control exceptions.
20:13 FROGGS rn: my $a = try 'print $]'; say $a
20:13 camelia rakudo 4f255f, niecza v24-37-gf9c8fc2: OUTPUT«print $]␤»
20:13 FROGGS rn: my $a = try { print $] }; say $a
20:13 camelia niecza v24-37-gf9c8fc2: OUTPUT«[31m===[0mSORRY![31m=​==[0m��Unsupported use of $] variable; in Perl 6 please use $*PERL_VERSION at /tmp/xKKSfbpDIQ line 1:�------> [32mmy $a = try { print $][33m�[31m }; say $a[0m��Parse failed��»
20:13 camelia ..rakudo 4f255f: OUTPUT«[31m===[0mSORRY![​31m===[0m�Unsupported use of $] variable; in Perl 6 please use $*PERL_VERSION�at /tmp/AucHQf7tQO:1�------> [32mmy $a = try { print $][33m�[31m }; say $a[0m�»
20:13 lizmat yes, but try is not valid Perl 5 syntax
20:13 FROGGS true
20:13 lizmat I'm trying to devise code that will run in both perl 5 and perl 6, but with different results
20:14 lizmat I though that string eval would do the trick, alas
20:14 lizmat :-(
20:14 FROGGS :/
20:14 diakopter do floating point differences count?
20:15 jnthn Could easily get something out of big integer semantics in Perl 6.
20:17 lizmat rn: if ( $0 ) { print "Perl 5\n" } else { print "Perl 6\n" }
20:17 camelia rakudo 4f255f, niecza v24-37-gf9c8fc2: OUTPUT«Perl 6␤»
20:17 lizmat perl5: if ( $0 ) { print "Perl 5\n" } else { print "Perl 6\n" }
20:17 lizmat p5: if ( $0 ) { print "Perl 5\n" } else { print "Perl 6\n" }
20:17 lizmat don't we have a Perl 5 around anymore?
20:17 geekosaur eval:  if ( $0 ) { print "Perl 5\n" } else { print "Perl 6\n" }
20:18 geekosaur hm, maybe not
20:18 lizmat anyway, this works  :-)
20:18 tgt joined #perl6
20:20 FROGGS ya, $0 is one of the easiest switches...
20:20 * lizmat wonders whether we should start a contest about being able to write Perl 5 and Perl 6 at the same time  :-)
20:24 FROGGS *g*
20:27 cognominal lizmat: you should convince BooK. He likes writing multilingual code but so far I have not succeeded to interest him in Perl 6
20:28 lizmat :-)  I just realized that on one hand, such as contest would be very bad, as it would lead people to write Perl 5 in Perl 6 (like some people write C in Perl 5)
20:28 lizmat on the other hand, it might prove the closeness of Perl 5 and Perl 6
20:29 masak or disprove it.
20:29 FROGGS r: module A { our $thing = 42 }; my $my_thing = A::<$thing>; say $my_thing
20:29 camelia rakudo 4f255f: OUTPUT«42␤»
20:29 FROGGS lizmat: -------------^
20:30 masak impressive.
20:30 FROGGS lizmat: you maybe want to revert your commit
20:30 lizmat ah?  well, maybe the example needs to be expanded then?
20:31 lizmat eh, which commit are we talking about?
20:31 * lizmat is confused now
20:32 FROGGS this: https://github.com/perl6/specs/commit/f​e96bcf41f27a11a262437f213650f615ad23fb9
20:33 lizmat ok, we're talking about the same thing then
20:33 lizmat simply reverting it is not enough, imo
20:34 lizmat it would then need expanding, I think
20:34 lizmat is that what you're saying ?
20:35 FROGGS well, I'm never against better explanations if ii's that what you mean
20:36 diakopter FROGGS: TimToady's commit there was getting rid of dynamically setting dynamic variables
20:36 diakopter not package scoped thingies
20:37 lizmat the text: You can be explicit about the desired namespace: use Sense :MY<common> :OUR<@horse>;
20:37 lizmat That's pretty much equivalent to:
20:37 lizmat use Sense; my &common ::= Sense::<&common>; our @horse ::= Sense::<@horse>; $*sensitive ::= Sense::<$sensitive>
20:38 lizmat I would say that the $*sensitive  part is incorrect here
20:38 diakopter https://github.com/perl6/specs/commit/7​b198c75e7ba19d5744d1239a6d3853fe784244b
20:38 diakopter (toward the bottom)
20:39 FROGGS lizmat: right, and since $sensitive is not mentioned above it maybe is a good idea to delete the line...
20:39 FROGGS well, then forget what I said
20:39 lizmat it is even necessary, as the text is simply incorrect that way
20:39 lizmat ok, I'll revert the revert  :-)
20:39 FROGGS ya
20:39 FROGGS *g*
20:39 FROGGS sorry
20:39 diakopter you're a revert
20:43 * masak .oO( autocorrect makes me look regarded )
20:43 cognominal r: print 'a'| "'a'" ~~ m/'a'/
20:43 camelia rakudo 4f255f: OUTPUT«False»
20:44 * lizmat wonders whether that was an autopun
20:44 masak lizmat: yep.
20:44 masak r: print ('a'| "'a'") ~~ m/'a'/
20:44 camelia rakudo 4f255f: OUTPUT«False»
20:44 lizmat keming is hard
20:44 masak :P
20:45 masak lizmat: that one was on FPW last year :)
20:45 FROGGS cognominal: I believe there is a ticket about that
20:45 cognominal too bad, this returns true in Perl 5 and expected to returns true in Perl 6 as well but in a different way
20:45 masak r: print 'a' ~~ m/'a'/
20:45 lizmat argh, you remembered :-)
20:45 camelia rakudo 4f255f: OUTPUT«a»
20:45 masak r: print 'a' ~~ /'a'/
20:45 camelia rakudo 4f255f: OUTPUT«a»
20:45 masak r: print 'a'|"'a'" ~~ /'a'/
20:45 camelia rakudo 4f255f: OUTPUT«This type cannot unbox to a native string␤  in method print at src/gen/CORE.setting:7995␤  in method print at src/gen/CORE.setting:7989␤  in sub print at src/gen/CORE.setting:7805␤  in block  at /tmp/8ZIlKDI5EM:1␤␤»
20:45 cognominal * I expected it to
20:46 lizmat afk&
20:46 masak lizmat: jnthn dropped the "keming" bomb on me on a train to that conf. hard to forget :)
20:46 cognominal That would be more in the spirit of a multilingual obfuscation to have radically different parse and meaning.
20:47 jnthn masak: Well, you were trying to write a text layout engine on a short train journey. I could just see the problem keming to get you :P
20:47 masak :P
20:47 masak to be fair, keming was the problem I was trying to solve.
20:47 masak but... it's hard. and I suddenly had quite a bit more than two problems.
20:48 jnthn Yeah. Like this guy opposite you dropping bad puns... :P
20:49 * masak .oO( the puns just kem by themselves )
20:52 smash joined #perl6
20:56 PacoAir joined #perl6
20:59 pmichaud good afternoon, #perl6
21:01 masak pmichaud! \o/
21:01 FROGGS hi pmichaud
21:01 jnthn o/ pmichaud
21:04 pmichaud "too much duck tape!"
21:05 FROGGS ETOOMUCHDUCKS
21:05 pmichaud 15:42 <diakopter> lizmat: I don't know. :S I don't even remember what ::= means :(
21:06 pmichaud 15:42 <timotimo> compile time binding
21:06 pmichaud actually, ::= now does the equivalent of a parameter bind.
21:07 FROGGS for a moment I've seen $<timotimo> and wondered if there would be an NPMCA
21:07 pmichaud if the spec still says "compile time bind" somewhere, it's likely a fossil.
21:09 masak today I learned the term "duck wrapping" on Twitter.
21:09 huf what is it?
21:09 masak "if it doesn't quack like a duck, wrap it in a duck."
21:09 huf oh
21:09 huf :)
21:09 masak apparently, people do this (a bit too much?) in JavaScript.
21:10 huf hip, fast talking wrappers, eh?
21:11 masak :)
21:11 * masak .oO( walk quickly and carry a big hip )
21:17 lizmat pmichaud: I'll remember that when going through the spec
21:28 diakopter you guys saw this? http://dg.cx/jsperl/
21:29 masak whoa.
21:30 DreamingInCode joined #perl6
21:30 huf yea, pretty whoa
21:31 lizmat insane is a better phrase, I think, but still indeed pretty much whoa
21:32 anocelot I think I recall Modern Perl talking about a similar sounding duck.
21:33 lizmat alas, it doesn't seem to like Safari  :-(
21:38 colomon joined #perl6
21:40 athomason joined #perl6
21:40 colomon how do you do a proto for one or no arguments?
21:41 jnthn $?
21:42 colomon jnthn:  that didn't seem to help?
21:42 lizmat joined #perl6
21:42 colomon context: I'm looking at the XML module
21:43 colomon It's got three multis for from-xml: from-xml (Str $xml-string)
21:43 colomon from-xml (IO $input)
21:43 colomon from-xml (Str :$file)
21:44 jnthn colomon: :$file is a named.
21:44 kurahaupo joined #perl6
21:44 colomon with proto from-xml ($), calling from-xml(:file<./t/example.xml>) gets you Not enough positional parameters passed; got 0 but expected 1
21:44 colomon jnthn: right
21:44 colomon perhaps the right question is, how do named and proto interact?
21:45 jnthn But...that's $, I said $? ? :)
21:45 jnthn proto from-xml($?, *%) {*} # probably what you want
21:46 colomon proto from-xml ($?) gets you Unexpected named parameter 'file' passed as the error
21:46 jnthn Right, add the *% also
21:46 colomon jnthn++ # that works
21:49 colomon and with that, XML works again.
21:52 jnthn colomon++ # fixing stuff
21:53 lizmat joined #perl6
21:54 colomon I submitted a pull request, if I don't hear anything from supernovus in a day or two I'll go ahead and hijack the ecosystem's XML to my fork.
21:54 colomon o/ # off for noms and Great Big Sea
21:56 * masak .oO( C++ is a Great Big C )
21:57 xilo joined #perl6
22:01 jnthn Time to get some rest...'night, #perl6
22:01 masak ditto.
22:01 masak 'night, #perl6
22:02 FROGGS gnight both of you
22:02 thou joined #perl6
22:02 lizmat night #perl6
22:04 lichtkind good night jnthn
22:04 FROGGS night lizmat
22:05 thou joined #perl6
22:05 lichtkind gute nacht lizmat
22:07 immortal joined #perl6
22:07 immortal joined #perl6
22:07 kurahaupo 'morning @p6
22:09 FROGGS hi kurahaupo
22:16 cognominal joined #perl6
22:17 cognominal joined #perl6
22:20 supernovus joined #perl6
22:20 supernovus Howdy #perl6
22:20 tadzik supernovus! \o/
22:23 supernovus Not sure if its an easy fix or not, but Rakudo still messes up local timezones. For instance, where I am, it's currently -0700, but Rakudo is reporting +0700, which is certainly not right.
22:37 raiph supernovus: http://irclog.perlgeek.de/​perl6/2013-03-17#i_6599172
22:40 nyuszika7h_ joined #perl6
22:40 supernovus Awesome, that refactoring sounds good. It's quite likely I'm running an outdated rakudo again. Rebuilding.
22:41 lichtkind joined #perl6
22:42 thou joined #perl6
22:52 DreamingInCode joined #perl6
22:56 skids joined #perl6
23:06 raiph .tell supernovus i didn't see llamarider commit any TZ changes
23:06 yoleaux raiph: I'll pass your message to supernovus.
23:15 BenGoldberg joined #perl6
23:20 sjn joined #perl6
23:40 toddr joined #perl6
23:51 gtodd rakudo has threads

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

Perl 6 | Reference Documentation | Rakudo