Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2015-11-12

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 Psyche^ joined #perl6
00:08 xenu https://github.com/rakudo/rakudo/pull/581
00:08 xenu i wonder why nobody ever noticed that it's borken
00:08 xenu broken
00:09 Hotkeys I was secretly hoping you'd fixed the windows repl xenu
00:09 Hotkeys but I guess that's okay too
00:09 xenu what's the problem with repl?
00:10 xenu on my current rakudo build you can't execute more than one line, is that what you're talking about?
00:10 Hotkeys yes
00:11 xenu good to know that it's not just me
00:11 xenu ;)
00:11 Hotkeys it broke at 75b2451
00:11 Hotkeys actually after that commit it was notexecuting at all
00:11 Hotkeys but
00:11 Hotkeys somewhere afterwards something made it execute one and then that's it
00:11 Hotkeys I never got around to figuring out which one
00:12 Hotkeys but I assume the problem hasn't changed
00:12 Hotkeys I've been running a94389e on my windows machines for a little while now
00:12 Hotkeys been intending to look into it for almost a week but I haven't
00:14 psch Hotkeys: can you run < ./perl6-m -e'use nqp; my @a = nqp::readlinefh(nqp::getstdout()) xx 2; say @a.perl' > and press enter twice?
00:14 Hotkeys yeah once sec
00:14 psch Hotkeys: just curious about the output, maybe the win shells don't always send the same of \r\n and \n
00:15 Hotkeys I'm currently building moar-nom but I'll run it when finished
00:15 Hotkeys unless you mean on the old version
00:15 psch nah, something beyond 75b2451
00:15 Hotkeys alright
00:16 psch if win shells are consistent there i'd guess something gets confused about which of \r\n and \n it's waiting for
00:16 psch probably somewhere in the readlinefh impl
00:16 Hotkeys heh
00:16 Hotkeys ===SORRY!=== Error while compiling -e
00:16 Hotkeys Unable to parse expression in single quotes; couldn't find final "'"
00:16 Hotkeys at -e:1
00:16 Hotkeys ------> 'use<HERE><EOL>
00:16 Hotkeys expecting any of:
00:16 ugexe .out.lines doesn't work on windows period
00:16 Hotkeys single quotes
00:16 Hotkeys term
00:17 psch Hotkeys: well, you have to adjust the quotes :P
00:17 Hotkeys well fine
00:17 xenu and s/getsdout/setstdin/ i guess
00:17 Hotkeys be tha way :p
00:17 xenu crap
00:17 xenu * and s/getsdout/getstdin/
00:18 xenu another typo, argh
00:18 psch xenu: eh, getstdout curiously works locally... but yes, you should be right
00:18 xenu anyway
00:18 Hotkeys Reading from stream failed: socket is not connected
00:18 Hotkeys in block <unit> at -e:1
00:19 Hotkeys oh
00:19 xenu ["\r\n", "\r\n"]
00:19 psch right, that makes more sense than it just working as on debian here
00:19 Hotkeys you want stdin
00:19 psch well, that's good :)
00:19 Hotkeys yeah
00:19 Hotkeys same as xenu
00:19 psch the shell is consistent at least, so it's the readlinefh op that's getting weirded out
00:20 Hotkeys anything else I can run to help?
00:21 psch did you try the nqp repl?
00:21 Hotkeys the what now
00:21 psch rakudo compiles to nqp, and nqp has its own repl
00:21 psch if you got perl6-m.bat in your path you should also have nqp-m.bat
00:22 Hotkeys I do
00:22 Hotkeys it also breaks
00:22 psch mhm
00:23 Hotkeys I just put in garbage input and got an error but the second time it did same thing as normal repl
00:23 psch in that case it's probably somewhere in MoarVM/src/io/io.c:117-127 :P
00:23 Hotkeys which is nothing at all
00:23 psch or in how that's used... vOv
00:23 psch https://github.com/MoarVM/MoarV​M/blob/master/src/io/io.c#L117
00:24 psch could be deadlock too i suppose
00:24 Hotkeys makes sense that it broke when the NQP revision was bumped then
00:24 psch hm
00:25 psch did you narrow down which commit after 75b2451 made it work once again?
00:25 Hotkeys I did not
00:25 Hotkeys it never worked again, it just broke one execution later
00:25 Hotkeys :p
00:26 psch made it ((work once) again) ;P
00:26 xpen joined #perl6
00:26 Hotkeys fair enough haha
00:26 zengargoyle too clever to work...: %Population{%i<name>:delete} = pop => ::(%CM{%i<type>:delete}).new xx %i<count
00:26 zengargoyle >:delete;
00:26 zengargoyle too clever to work...: %Population{%i<name>:delete} = pop => ::(%CM{%i<type>:delete}).new xx %i<count>:delete
00:26 Hotkeys dang that's ugly
00:26 Hotkeys no offense :p
00:27 zengargoyle think i forgot some parens or something. :P
00:27 Hotkeys should I figure out where it started working once again?
00:28 psch m: my %a = a => 1; say %a<a>:delete xx 2
00:28 camelia rakudo-moar 459bc5: OUTPUT«(1 (Any))␤»
00:28 psch lhs of xx gets thunked, which means %i<type> is empty the second time through
00:28 psch Hotkeys: well, that's how we could narrow it down from the rakudo side
00:28 Hotkeys alright I'll get to the narrowing
00:29 psch Hotkeys: 'cause i like to assume that the readline_fh logic is fine
00:29 Hotkeys I've got 1.5 hours left in lecture should be more than enough time
00:29 Hotkeys :p
00:29 psch Hotkeys: it doesn't look like there should be something wonky - except if it does deadlock for some reason or other, which you could probably figure out with perl6-gdm-m
00:30 psch assuming that works on win and you know how to attach a different STDIN or somesuch... i'm not really gdb-savvy
00:30 Hotkeys I have no idea to be honest
00:31 psch zengargoyle: i think rewriting as < %Population{%i<name>:delete} = pop => do with %i<type>:delete -> $type { ::(%CM{$type}).new xx %i<count>:delete } > or somesuch should work
00:31 AlexDaniel m: say “test”.chars
00:31 camelia rakudo-moar 459bc5: OUTPUT«4␤»
00:32 Hotkeys I can confirm there are 4 chars there
00:32 AlexDaniel m: say “p̷̢̖̤̙̬̞̙͉͕̲̺̮͎͖̆̄͒͛́͊̋ͣ͢ͅe͙͕̖̥̜͚͕̥̮̹͌͛̐ͨ̍ͬͮ̑̊̕͟​͓̥͇̯̫̺̯̹r̅ͪ̌̑̾̄ͬ̈҉̨̩̬̤̭̰̮͎̹̦̩̮̞̘̳͈̩̠͉͜͢ḷ̡̦̿͌ͨ̽̂́​̳̹̻̪͇͈͕̼̙̦̞̝̬͎͚̙6̊ͣ͌͋ͦͣ҉̛͓͔̤̞̤͇͇̗̣̖͔͓̗̗͓͘”.chars
00:32 camelia rakudo-moar 459bc5: OUTPUT«5␤»
00:32 AlexDaniel wow
00:33 psch .u p̷̢̖̤̙̬̞̙͉͕̲̺̮͎͖̆̄͒͛́͊̋ͣ͢ͅ
00:33 yoleaux U+0070 LATIN SMALL LETTER P [Ll] (p)
00:33 zengargoyle y ($name, $type, $count) = %i<name type count>:delete; %Population{$name}<pop> = ::(%CM{$type}).new xx $count; %Population{%i.keys} = %i.values;
00:33 yoleaux U+0301 COMBINING ACUTE ACCENT [Mn] (◌́)
00:33 yoleaux U+0304 COMBINING MACRON [Mn] (◌̄)
00:33 psch hm, looks like there's a few more in there, actually...
00:33 psch m: say uniname "p̷̢̖̤̙̬̞̙͉͕̲̺̮͎͖̆̄͒͛́͊̋ͣ͢ͅ"
00:33 camelia rakudo-moar 459bc5: OUTPUT«LATIN SMALL LETTER P␤»
00:34 zengargoyle ^^ what i ended up with... kept getting Unexpected named parameter 'thunked' passed messages trying to :delete on the fly
00:34 psch m: say "p̷̢̖̤̙̬̞̙͉͕̲̺̮͎͖̆̄͒͛́͊̋ͣ͢ͅ".ords.elems
00:34 camelia rakudo-moar 459bc5: OUTPUT«26␤»
00:34 TimToady m: say uninames "p̢̆̄͒͛́͊̋ͣ͢"
00:34 camelia rakudo-moar 459bc5: OUTPUT«(LATIN SMALL LETTER P COMBINING RETROFLEX HOOK BELOW COMBINING BREVE COMBINING MACRON COMBINING FERMATA COMBINING ZIGZAG ABOVE COMBINING ACUTE ACCENT COMBINING NOT TILDE ABOVE COMBINING DOUBLE ACUTE ACCENT COMBINING LATIN SMALL LETTER A COMBINING DOUBLE RI…»
00:34 [particle] joined #perl6
00:34 TimToady m: .say for uninames "p̢̆̄͒͛́͊̋ͣ͢"
00:34 camelia rakudo-moar 459bc5: OUTPUT«LATIN SMALL LETTER P␤COMBINING RETROFLEX HOOK BELOW␤COMBINING BREVE␤COMBINING MACRON␤COMBINING FERMATA␤COMBINING ZIGZAG ABOVE␤COMBINING ACUTE ACCENT␤COMBINING NOT TILDE ABOVE␤COMBINING DOUBLE ACUTE ACCENT␤COMBINING LATIN SMALL LETTER A␤…»
00:34 Hotkeys dang
00:34 Hotkeys that's quite a few things
00:35 psch that's about all combinings there are, isn't it..?
00:35 Skarsnik lol
00:35 AlexDaniel psch: yeah pretty much
00:35 AlexDaniel psch: not all of them though, as far as I can see
00:35 psch m: say 6 * 16
00:35 camelia rakudo-moar 459bc5: OUTPUT«96␤»
00:36 psch well, - 1 i suppose, GCJ doesn't count
00:36 psch *CGJ
00:36 TimToady there are 330 chars with COMBINING in the name
00:36 AlexDaniel … what if you use all of them?
00:36 Hotkeys you get zalgo text
00:36 psch ...right, extended, supplement, * for symbols, half marks
00:37 psch and that's assuming the wikipedia article is up to date
00:37 AlexDaniel hm, how to unzalgo it?
00:38 Hotkeys idk
00:38 Hotkeys first character was latin small letter p
00:38 Hotkeys I'm not a character expert but assuming that comes first always
00:38 Hotkeys just pull that out of the pile
00:38 AlexDaniel I mean, how can I get rid of combining characters?
00:39 TimToady m: say "p̢̆̄͒͛́͊̋ͣ͢".ord.chr
00:39 camelia rakudo-moar 459bc5: OUTPUT«p␤»
00:39 Hotkeys oh nice
00:39 Hotkeys that's concise
00:39 Hotkeys i just rhymed
00:39 Hotkeys something that rhymes with rhyme
00:40 TimToady climbed? primed?
00:40 TimToady chimed, dimed
00:40 TimToady flamed if you're aussie...
00:41 Actualeyes joined #perl6
00:41 Hotkeys I can think of words that rhyme with rhyme just none that I could be bothered to use in a sentence that fit in
00:42 TimToady well, you weren't being timed
00:43 Hotkeys I'm getting close to figuring out the partial unbreaking commit
00:43 AlexDaniel m: say “p̷̢̖̤̙̬̞̙͉͕̲̺̮͎͖̆̄͒͛́͊̋ͣ͢ͅe͙͕̖͌͛̐ͨ̍ͬͮ̑̊̕͟​̥̜͚͕̥̮̹͓̥͇̯̫̺̯̹r̅ͪ̌̑̾̄ͬ̈҉̨̩̬̤̭̰̮͎̹̦̩̮̞̘̳͜͢​͈̩̠͉ḷ̡̦̳̹̻̪͇͈͕̼̙̦̞̝̬͎͚̙̿͌ͨ̽̂́6̊ͣ͌͋ͦͣ҉̛͓͔͘​̤̞̤͇͇̗̣̖͔͓̗̗͓”.comb.map(*.ord.chr).join
00:43 camelia rakudo-moar 459bc5: OUTPUT«perḷ6␤»
00:43 Hotkeys oo
00:43 Hotkeys almost
00:43 AlexDaniel hmmm what's that?
00:43 psch m: say uninames "ḷ"
00:43 camelia rakudo-moar 459bc5: OUTPUT«(LATIN SMALL LETTER L WITH DOT BELOW)␤»
00:43 Hotkeys ah
00:44 psch m: say ords "ḷ"
00:44 camelia rakudo-moar 459bc5: OUTPUT«(7735)␤»
00:44 Hotkeys it's a character on its own
00:44 AlexDaniel where did it get it?
00:44 psch m: say ords "\c[LATIN SMALL LETTER L]\c[COMBINING DOT BELOW]"
00:44 camelia rakudo-moar 459bc5: OUTPUT«(7735)␤»
00:44 psch that might be a bug
00:44 psch m: say uninames "\c[LATIN SMALL LETTER L]\c[COMBINING DOT BELOW]"
00:44 camelia rakudo-moar 459bc5: OUTPUT«(LATIN SMALL LETTER L WITH DOT BELOW)␤»
00:45 psch i'm not sure though, maybe that's exactly what NFG is supposed to do
00:45 Hotkeys m: say for uninames "ḷ̡̦̳̹̻̪͇͈͕̼̙̦̞̝̬͎͚̙̿͌ͨ̽̂́"
00:45 camelia rakudo-moar 459bc5: OUTPUT«5===SORRY!5=== Error while compiling /tmp/AUumBVk1A_␤Unsupported use of bare "say"; in Perl 6 please use .say if you meant $_, or use an explicit invocant or argument, or use &say to refer to the function as a noun␤at /tmp/AUumBVk1A_:1␤------> 3…»
00:45 Hotkeys oops
00:45 Hotkeys m: .say for uninames "ḷ̡̦̳̹̻̪͇͈͕̼̙̦̞̝̬͎͚̙̿͌ͨ̽̂́"
00:45 camelia rakudo-moar 459bc5: OUTPUT«LATIN SMALL LETTER L WITH DOT BELOW␤COMBINING PALATALIZED HOOK BELOW␤COMBINING COMMA BELOW␤COMBINING DOUBLE LOW LINE␤COMBINING RIGHT HALF RING BELOW␤COMBINING SQUARE BELOW␤COMBINING BRIDGE BELOW␤COMBINING EQUALS SIGN BELOW␤COMBINING DOUBLE …»
00:46 TimToady NFG is based on NFC, so you might need to throw an NFD in there somewhere to get where you're going
00:46 Ven_ joined #perl6
00:46 Hotkeys so many acronyms
00:46 Hotkeys er
00:46 TimToady SMA?
00:46 Hotkeys initialisms
00:47 psch m: say ords "\c[LATIN SMALL LETTER L]\c[COMBINING DOT BELOW]".NFD
00:47 camelia rakudo-moar 459bc5: OUTPUT«Cannot call ords(NFD); none of these signatures match:␤    (Cool $s)␤    (Str $s --> Seq:D)␤  in block <unit> at /tmp/Q2lkEVbsbq:1␤␤»
00:47 psch m: say  "\c[LATIN SMALL LETTER L]\c[COMBINING DOT BELOW]".NFD.perl
00:47 camelia rakudo-moar 459bc5: OUTPUT«Uni.new(0x006c, 0x0323).NFD␤»
00:47 psch TimToady++
00:47 AlexDaniel yeah, that's just normalization, not a bug
00:49 TimToady m: say “p̢̆̄͒͛́͊̋ͣ͢e͌͛̐ͨ̍ͬͮ̑̊͟r̅ͪ̌̑̾̄ͬ̈҉̨ḷ̡̿͌ͨ̽̂́​̦̳6̊ͣ͌͋ͦͣ҉̛͓͘”.comb.map(*.NFD[0].chr).join
00:49 camelia rakudo-moar 459bc5: OUTPUT«perl6␤»
00:50 AlexDaniel m: say “p̷̢̖̤̙̬̞̙͉͕̲̺̮͎͖̆̄͒͛́͊̋ͣ͢ͅe͙͕̖͌͛̐ͨ̍ͬͮ̑̊̕͟​̥̜͚͕̥̮̹͓̥͇̯̫̺̯̹r̅ͪ̌̑̾̄ͬ̈҉̨̩̬̤̭̰̮͎̹̦̩̮̞̘̳͜͢​͈̩̠͉ḷ̡̦̳̹̻̪͇͈͕̼̙̦̞̝̬͎͚̙̿͌ͨ̽̂́6̊ͣ͌͋ͦͣ҉̛͓͔͘​̤̞̤͇͇̗̣̖͔͓̗̗͓”.comb.map(*.NFD[0].chr).join
00:50 camelia rakudo-moar 459bc5: OUTPUT«perl6␤»
00:51 TimToady er, I just said that?
00:51 AlexDaniel TimToady: not according to what I see
00:51 colomon Man, that text really messes up my IRC client
00:52 psch http://irclog.perlgeek.de/p​erl6/2015-11-12#i_11522549
00:52 psch irclog too
00:52 Hotkeys lol
00:52 psch looks fine in my putty window here :P
00:52 AlexDaniel psch: irclog looks fine here
00:52 Hotkeys hexchat has no issue with it
00:52 psch and it's not even just blocks
00:52 Hotkeys it looks fine it's just full height
00:52 AlexDaniel somehow in emacs I see every character separately…
00:52 AlexDaniel that's why I noticed the difference
00:52 Hotkeys instead of cutting off the tops of the chars for readability
00:53 Hotkeys and bottoms
00:53 AlexDaniel colomon: “UTF-8 is our friend!”
00:53 psch http://imgur.com/x7mC9Uq somewhat crunched...
00:54 AlexDaniel TimToady: even on that screenshot ^ you can see that these strings are different
00:54 TimToady ayup
00:54 colomon http://www.harmonyware.com​/pictures/troublesome.png
00:55 AlexDaniel colomon: now that is really messed up :)
00:55 psch that matches what i see in my browser on the clog
00:55 psch although it's a bit less here
00:55 AlexDaniel ERC in emacs: https://files.progarm.org/2015​-11-12-025530_628x93_scrot.png
00:55 TimToady colomon: if it would just increase the vspacing there, that'd be nice
00:56 telex joined #perl6
00:56 mr_ron joined #perl6
00:56 dalek rakudo-star-daily: 5c8594a | coke++ | log/ (5 files):
00:56 dalek rakudo-star-daily: today (automated commit)
00:56 dalek rakudo-star-daily: review: https://github.com/coke/rakudo​-star-daily/commit/5c8594a6ca
00:57 AlexDaniel Hm, perhaps it is not emacs to blame, but Terminus font…
00:58 AlexDaniel though the same thing looks just fine in my terminal
01:00 BenGoldberg joined #perl6
01:04 cbk joined #perl6
01:05 pippo left #perl6
01:10 Hotkeys alright
01:11 Hotkeys one more build and I'll know which commit made it break after one go
01:20 Hotkeys psch: cc4d72c4abb243f44500a7c435e2e9946325f3bd
01:20 Hotkeys is the commit that made it work once again
01:21 Hotkeys https://github.com/rakudo/rakudo/commit/​cc4d72c4abb243f44500a7c435e2e9946325f3bd
01:21 awph joined #perl6
01:24 TEttinger joined #perl6
01:28 psch Hotkeys: can you try < say "hi"; Rakudo::Internals.SET_LINE_END​ING_ON_HANDLE(nqp::getstdin(), "\r\n") > in the repl as one line?
01:28 psch that's still just following hunches, fwiw, no idea how we'd fix that
01:29 xpen joined #perl6
01:29 psch but i'm guessing that the stdin in the nqp-ish level for the repl forgets which line ending to look for
01:29 psch (in some way or other... vOv)
01:32 Hotkeys very clever
01:32 Hotkeys http://i.imgur.com/B5JiVdN.png
01:33 Hotkeys after any one of those
01:33 Hotkeys I can run anything once
01:33 Hotkeys and then the next thing breaks as usual
01:34 Hotkeys http://i.imgur.com/oONdZKM.png
01:35 AlexDaniel m: say 'A' ~ [~] ((0..0x1FFFF) ==> grep { .uniname ~~ m/COMBINING/ } ==> map { .chr })
01:35 camelia rakudo-moar 459bc5: OUTPUT«…»
01:35 AlexDaniel uhhh
01:36 AlexDaniel TimToady: actually, this code says that there are exactly 400 combiners out there
01:36 AlexDaniel not 330 as you said earlier
01:37 AlexDaniel m: say ('A' ~ [~] ((0..0x1FFFF) ==> grep { .uniname ~~ m/COMBINING/ } ==> map { .chr })).chars;
01:37 psch Hotkeys: ooc, do you have Linenoise installed or not?
01:37 TimToady maybe they've added some since my Perl 5 was made
01:37 camelia rakudo-moar 459bc5: OUTPUT«1␤»
01:37 Hotkeys no but I can get it
01:38 psch just curious if that changes something
01:38 raiph How come the REPL isn't saying "nqp::operations has been deprecated for non-CORE code" etc in Hotkey's screenshot?
01:38 AlexDaniel m: say +((0..0x1FFFF) ==> grep { .uniname ~~ m/COMBINING/ });
01:38 Hotkeys I told it it use nqp
01:38 camelia rakudo-moar 459bc5: OUTPUT«401␤»
01:39 Hotkeys if I didn't do 'use nqp;' every line
01:39 Hotkeys it yelled at me
01:40 AlexDaniel So the output is: À̴̵̶̷̸̡̢̧̨̛̖̗̘̙̜Ì�̞̟̠̣̤̥̦̩̪̫̬̭̮̯̰̱̲̳̹̺̻̼͇͈͉Í�Í​ŽÌ�̂̃̄̅̆̇̈̉̊̋̌Ì�ÌŽÌ�Ì�̑̒̓̔̽̾̿​̀͂͆͊͋͌̕̚ͅÍ�͓͔͕͖͙͚Í�͑͒͗͛ͣͤÍ​¥Í¦Í§Í¨Í©ÍªÍ«Í¬Í­Í®Í¯ÒƒÒ„҅҆҇͘͜͟͢Í�͞͠͡҈҉߲߫߬߭߮߯߰߱߳ఀ᩿᪵᪶᪷᪸᪹᪺áª​½á��á�žá�Ÿáª°áª±áª²áª³áª´áª»áª¼áª¾âƒ’⃓⃘⃙⃚á​·�᷎᭬᷂᷊á·�᷽᷿᭫᭭᭮᭯᭰᭱᭲᭳᷀​á·�᷃᷄᷅᷆᷇᷈᷉᷋᷌᷑᷒ᷓᷔᷕᷖá
01:40 AlexDaniel see! One bug discovered!
01:40 Hotkeys I'll try luarocks when I get home psch
01:40 AlexDaniel poor synbot6 though…
01:40 Hotkeys there's less than 10 min left in lecture
01:41 Hotkeys i've gotta install luarocks for the windows version of linennoise
01:41 psch Hotkeys: the module?
01:41 raiph AlexDaniel: those combiners are stacked 10 lines high on my irc client :)
01:41 AlexDaniel raiph: screenshot?
01:41 psch Hotkeys: i'm talking about https://github.com/hoelzro/p6-linenoise/
01:41 Hotkeys LuaRocks the package manager for lua
01:41 Hotkeys oh
01:42 Hotkeys whoops
01:42 AlexDaniel raiph: I don't think that I've ever seen all 400 combiners together
01:42 Hotkeys do i need linenoise as well
01:42 Hotkeys or does this include it all
01:42 AlexDaniel well, synbot6 didn't as well
01:42 Hotkeys as in the antirez repo stuff
01:42 psch Hotkeys: moar already brings linenoise
01:42 Hotkeys oh
01:42 Hotkeys fancy
01:43 Hotkeys can I just panda install this
01:43 AlexDaniel these are not rendered as combiners on clog though. I wonder why
01:43 psch Hotkeys: yeah
01:43 Hotkeys er
01:43 Hotkeys apparently I don't have panda built on my laptop
01:43 Hotkeys so
01:43 Hotkeys I'll do this when I get home
01:43 Hotkeys I can't remember how long it takes to build panda
01:43 psch well, i doubt it actually changes anything tbh
01:44 Hotkeys worth a shot
01:44 psch the Linenoise module just brings things like history and (very basic) tab completion
01:44 psch afair
01:44 Hotkeys ah
01:45 cbk Hello,  I made my first Perl6 Module!  Can someone please review and add to the echo system?  It is here on git hub: https://github.com/cbk/WebService-HazIP
01:48 raiph AlexDaniel: not sure if this'll work but: https://drive.google.com/drive/fol​ders/0Bx4LZRGuOTWJV0xZY010dU9fTFk
01:48 AlexDaniel raiph: holy…
01:48 psch cbk: http://doc.perl6.org/language​/modules#Distributing_Modules describes how to get your module added
01:49 Hotkeys lmao
01:49 Hotkeys hexchat just stops it from going over normal character height
01:49 psch hah, that's neat
01:50 AlexDaniel I see broken encoding here: http://irclog.perlgeek.de/p​erl6/2015-11-12#i_11522716
01:50 AlexDaniel at first I thought that I pasted it incorrectly…
01:50 Ven_ joined #perl6
01:50 srvsh joined #perl6
01:50 Hotkeys I lied
01:50 Hotkeys hexchat does this http://i.imgur.com/G9pfUiR.png
01:50 psch http://imgur.com/Cc6JCKT
01:51 psch that looks pretty similar to what i see in the clog
01:51 AlexDaniel weird!
01:51 herby_ joined #perl6
01:51 psch i like how the first char in putty is almost a white filled block :P
01:51 Hotkeys lol
01:51 herby_ Good evening, everyone!
01:51 AlexDaniel anyway, who is going to revive synbot6 now?
01:51 psch maybe a different ordering could get a fully filled white block
01:51 AlexDaniel I'm really sorry for doing that though…
01:51 psch AlexDaniel: i have no idea where it lives, and even if i don't think i have access
01:51 Hotkeys haha
01:52 Hotkeys okay brb going home
01:52 Hotkeys znc will catch me up when I get back
01:53 AlexDaniel actually, I felt like it could crash at least one irc client… But nope, just a bot :)
01:53 raiph hi herby_
01:54 AlexDaniel https://github.com/tadzik/synop​sebot/blob/master/synopsebot.p6 – interesting
01:54 psch i'm gonna get some rest o/
01:54 AlexDaniel I use Net::IRC::Bot too, but my bot eats it just fine
01:55 AlexDaniel so where's the bug?
01:59 herby_ is there a recommended place to paste code for questions?
01:59 AlexDaniel herby_: github gists
02:00 AlexDaniel herby_: in fact, camelia can run them
02:00 AlexDaniel herby_: though it is a good idea to golf it down to something that fits into one m: message
02:01 herby_ Well, I guess its more of a question.  Say I have a string:     akjfdkajACCOUNT:123| nadnfkaACCESS:999| jiajdfaSTAFF:777|
02:02 herby_ what is a good way to say:   if ACCOUNT:$variable is found, then capture ACCESS:() and STAFF:()
02:02 herby_ essentially, if a specific account number is found, then capture the access and staff
02:02 herby_ and print all 3 out
02:03 herby_ i'm rewriting a perl 5 script, and its extremely clunky
02:03 khw joined #perl6
02:06 dalek ecosystem: 5f50e71 | cbk++ | META.list:
02:06 dalek ecosystem: Update META.list
02:06 dalek ecosystem:
02:06 dalek ecosystem: To include cbk/WebService-HazIP Perl6 Module.
02:06 dalek ecosystem: review: https://github.com/perl6/e​cosystem/commit/5f50e71000
02:06 AlexDaniel herby_: Not sure what would be the easiest way. I use this sometimes: for $text ~~ m:global〈 $<name>=<:Lu>+ ':' $<value>=\d+ 〉 { }
02:06 raiph m: my $var = 123; say "akjfdkajACCOUNT:123| nadnfkaACCESS:999| jiajdfaSTAFF:777| ".match: / 'ACCOUNT:' $var '| ' \w*? 'ACCESS:' (\d\d\d) '| ' \w*? 'STAFF:' (\d\d\d) /
02:06 camelia rakudo-moar 459bc5: OUTPUT«「ACCOUNT:123| nadnfkaACCESS:999| jiajdfaSTAFF:777」␤ 0 => 「999」␤ 1 => 「777」␤»
02:08 AlexDaniel m: for 'akjfdkajACCOUNT:123| nadnfkaACCESS:999| jiajdfaSTAFF:777' ~~ m:global〈 $<name>=<:Lu>+ ':' $<value>=\d+ 〉 { say $<key> ~ ' – ' ~ $<value> }
02:08 camelia rakudo-moar 459bc5: OUTPUT«Type List does not support associative indexing.␤  in block <unit> at /tmp/xOLhsWa1GP:1␤␤Actually thrown at:␤  in block <unit> at /tmp/xOLhsWa1GP:1␤␤»
02:09 herby_ whew, that's a lot to dig into.  thanks! :)
02:11 AlexDaniel m: for 'akjfdkajACCOUNT:123| nadnfkaACCESS:999| jiajdfaSTAFF:777' ~~ m:global〈 $<name>=<:Lu>+ ':' $<value>=\d+ 〉 { say $_<key> ~ ' – ' ~ $_<value> }
02:11 camelia rakudo-moar 459bc5: OUTPUT«Use of Nil in string context  in block  at /tmp/_PNCG6CaJF:1␤ – 123␤Use of Nil in string context  in block  at /tmp/_PNCG6CaJF:1␤ – 999␤Use of Nil in string context  in block  at /tmp/_PNCG6CaJF:1␤ – 777␤»
02:11 AlexDaniel m: for 'akjfdkajACCOUNT:123| nadnfkaACCESS:999| jiajdfaSTAFF:777' ~~ m:global〈 $<name>=<:Lu>+ ':' $<value>=\d+ 〉 { say $_<name> ~ ' – ' ~ $_<value> }
02:11 camelia rakudo-moar 459bc5: OUTPUT«ACCOUNT – 123␤ACCESS – 999␤STAFF – 777␤»
02:11 AlexDaniel yeah!
02:12 herby_ nice!
02:12 raiph AlexDaniel++
02:12 AlexDaniel herby_: though it is going to iterate them one by one. Whether you need that or not, well, it depends
02:14 herby_ let me see what I can do!  What does that $<name>=<:Lu>+ do?
02:14 dayangkun joined #perl6
02:14 AlexDaniel herby_: you can simplify it to (<[A-Z]>) if you want
02:14 AlexDaniel herby_: $<name> is just a named capture (so that you don't have to use numbers like $0)
02:15 AlexDaniel herby_: <:Lu> is any unicode uppercase letter
02:15 herby_ ah ok
02:16 AlexDaniel herby_: these 〈 〉 brackets are just for readability. You can use / / or anything else if you wish
02:16 diakopter rotfl
02:23 Hotkeys y'all are too active for znc to catch me up on
02:25 AlexDaniel herby_: I know that this could be a bit too much, but
02:25 AlexDaniel m: my %a = gather for 'akjfdkajACCOUNT:123| nadnfkaACCESS:999| jiajdfaSTAFF:777' ~~ m:global〈 $<name>=<:Lu>+ ':' $<value>=\d+ 〉 { take $_<name> => $_<value> }; say %a<ACCOUNT>
02:25 camelia rakudo-moar 459bc5: OUTPUT«「123」␤»
02:26 Hotkeys those are some interesting brackets AlexDaniel
02:26 Hotkeys i need those on my keyboard
02:26 AlexDaniel Hotkeys: Yeah. I have 「」 〈〉 “” ‘’ on my keyboard
02:27 AlexDaniel and a bunch of other stuff
02:27 Hotkeys fancy
02:27 AlexDaniel arrows, non-breaking space…
02:27 Hotkeys where can I get a fancy keyboard like this
02:27 mrsolo joined #perl6
02:27 AlexDaniel Hotkeys: well, if you are using GNU/Linux then you have to create your own xkb layout
02:28 Hotkeys oh oops
02:28 Hotkeys I was thinking physical keyboard
02:29 AlexDaniel nah, why should physical keyboard be associated with the keyboard layout?
02:29 hoelzro timotimo: I probably set that video up as non-public =/
02:30 Hotkeys not sure
02:30 Hotkeys why not
02:30 Hotkeys :p
02:30 hoelzro oh, I didn't; I just don't have my screename on there
02:30 xpen joined #perl6
02:30 hoelzro if you search for "Rob Hoelz", it comes up
02:30 hoelzro Hotkeys: did you have any problems with the Linenoise module?
02:30 Hotkeys oh
02:30 Hotkeys I didn't fiddle with that stuff yet
02:31 Hotkeys sec
02:32 AlexDaniel herby_: there's a simpler way though (without gather/take)
02:32 AlexDaniel m: my %a = ('akjfdkajACCOUNT:123| nadnfkaACCESS:999| jiajdfaSTAFF:777' ~~ m:global〈 $<name>=<:Lu>+ ':' $<value>=\d+ 〉).map: { $_<name> => $_<value> }; say %a<ACCOUNT>
02:32 camelia rakudo-moar 459bc5: OUTPUT«「123」␤»
02:32 Hotkeys apparently I don't have panda on my desktop
02:32 Hotkeys so
02:32 Hotkeys gonna build that and plat a round of rocket league
02:38 herby_ m: if $test.lc eq 'e' && index("123 456, "123") {say "yep"} else {say "no"};
02:38 camelia rakudo-moar 459bc5: OUTPUT«5===SORRY!5=== Error while compiling /tmp/xJ3iMzCkrk␤Variable '$test' is not declared␤at /tmp/xJ3iMzCkrk:1␤------> 3if 7⏏5$test.lc eq 'e' && index("123 456, "123"␤»
02:39 herby_ m: if 'e' eq 'e' && index("123 456, "123") {say "yep"} else {say "no"};
02:39 camelia rakudo-moar 459bc5: OUTPUT«5===SORRY!5=== Error while compiling /tmp/LkqryN2Cz7␤Unable to parse expression in argument list; couldn't find final ')' ␤at /tmp/LkqryN2Cz7:1␤------> 3if 'e' eq 'e' && index("123 456, "7⏏123") {say "yep"} else {say "no"};␤    expectin…»
02:39 herby_ m: if 'e' eq 'e' && index("123 456", "123") {say "yep"} else {say "no"};
02:39 camelia rakudo-moar 459bc5: OUTPUT«no␤»
02:40 herby_ this is erroring out in my script:   if $test.lc eq 'e' && index($string, "ACCESS_ID:$num") {say "yep"} else {say "no"};
02:40 herby_ Cannot call index....
02:41 ugexe in your script or 1 liner?
02:41 herby_ short script, i assign $test and $num
02:41 herby_ then call that line
02:42 ugexe ah, thought maybe it was the quotes for -e
02:45 herby_ is    index($string, "ACCESS_ID:$num") legit?
02:45 labster joined #perl6
02:45 herby_ if $string = "ACCESS_ID:123"
02:45 AlexDaniel m: 'akjfdkajACCOUNT:123| nadnfkaACCESS:999| jiajdfaSTAFF:777' ~~ m〈 [$<name>=<:Lu>+ ':' $<value>=\d+]+ % .*? 〉; say $/<name>[0] ~ ' – ' ~ $/<value>[0];
02:45 camelia rakudo-moar 459bc5: OUTPUT«ACCOUNT – 123␤»
02:45 AlexDaniel that's not as useful as a hash but it gives you one full match object
02:46 herby_ thanks!
02:46 kaare_ joined #perl6
02:49 herby_ so this is erroring out too:  if index($string, "ACCESS_ID:$num") {say "yep"} else {say "no"};
02:49 herby_ m: my $string = "ACCESS_ID: 123"; my $num = "123"; say $num;
02:49 camelia rakudo-moar 459bc5: OUTPUT«123␤»
02:50 herby_ m: my $string = "ACCESS_ID: 123"; my $num = "123"; if index($string, "ACCESS_ID:$num") {say "yep"} else {say "no"};
02:50 camelia rakudo-moar 459bc5: OUTPUT«no␤»
02:50 herby_ hmm
02:50 herby_ thats weird
02:50 herby_ m: my $string = "ACCESS_ID:123"; my $num = "123"; if index($string, "ACCESS_ID:$num") {say "yep"} else {say "no"};
02:50 camelia rakudo-moar 459bc5: OUTPUT«no␤»
02:50 mst you have a space in the string but not in the thing you're testing it against
02:50 mst oh. ok. the second one, no idea.
02:51 AlexDaniel m: my $string = 'hmm ACCESS_ID:5 foo'; my $num = 5; if index($string, "ACCESS_ID:$num") { say "yep" } else { say "no" }
02:51 camelia rakudo-moar 459bc5: OUTPUT«yep␤»
02:51 AlexDaniel what's the difference?
02:51 AlexDaniel right!
02:52 mst oooh, of course, 0
02:52 AlexDaniel 0 in bool context
02:52 mst versus undef for fail
02:52 ShimmerFairy m: my $string = "ACCESS_ID:123"; my $num = "123"; with index($string, "ACCESS_ID:$num") {say "yep"} else {say "no"};
02:52 camelia rakudo-moar 459bc5: OUTPUT«yep␤»
02:52 ShimmerFairy m: my $string = "ACCESS_ID: 123"; my $num = "123"; with index($string, "ACCESS_ID:$num") {say "yep"} else {say "no"};
02:52 camelia rakudo-moar 459bc5: OUTPUT«no␤»
02:52 herby_ i'm confused
02:52 mst if index($string, "..."
02:52 mst if index($string, "...").defined ?
02:53 AlexDaniel mst: that works
02:53 ShimmerFairy mst: yes, 'with' tests for defined-ness (in fact, it came about precisely because of Str.index and friend ☺)
02:53 AlexDaniel .u ☺
02:53 yoleaux U+263A WHITE SMILING FACE [So] (☺)
02:53 herby_ i'm a big dummy cause I'm not seeing why my example failed
02:53 ShimmerFairy 'with' ~~ 'if', 'without' ~~ 'unless', 'orwith' ~~ 'elsif'   :)
02:54 AlexDaniel herby_: your strings starts with what you are searching for
02:54 ShimmerFairy herby_: your example found the substring at index 0, which boolifies to False
02:54 herby_ ahh
02:54 AlexDaniel herby_: therefore it will return 0 as the index
02:54 herby_ ahhhhhh
02:54 AlexDaniel 0 is falsey!
02:54 herby_ m: my $string = "ACCESS_ID:123"; my $num = "123"; with index($string, "ACCESS_ID:$num") {say "yep"} else {say "no"};
02:54 camelia rakudo-moar 459bc5: OUTPUT«yep␤»
02:54 herby_ sweet
02:55 mst ShimmerFairy: that's ... hm. I'd've expected 'with' to be a thing for setting $_
02:55 ShimmerFairy mst: it sets $_ too, incidentally :)
02:55 ShimmerFairy m: with 42 { say $_ }
02:55 camelia rakudo-moar 459bc5: OUTPUT«42␤»
02:55 Ven_ joined #perl6
02:55 mst ah well
02:55 mst that's ok then :)(
02:56 ShimmerFairy mst: I guess you're thinking of  given $stuff { }  , which just sets $_ to $stuff
02:56 mst yeah. I think with reads nicer
02:57 AlexDaniel is it documented on doc.perl6?
02:57 ShimmerFairy well, I suppose it is the same thing, as long as it isn't  with Any { ... }  or something like that :)
02:57 AlexDaniel I mean 「with」
02:58 AlexDaniel hmmm I wonder if it has to say “method, method, method, method, method, method, method, method, method, method, method” http://doc.perl6.org/routine-method.html
02:59 ShimmerFairy http://docs.perl6.org/language/c​ontrol#with%2C_orwith%2C_without
02:59 AlexDaniel ShimmerFairy: nice!
03:00 herby_ m: with index("123", "abc") {say "yep"} else {say "no"};
03:00 camelia rakudo-moar 459bc5: OUTPUT«no␤»
03:00 AlexDaniel .oO( “orwith”… why not “elsewith”? )
03:01 herby_ m: with index("123", "abc") && 'e' eq 'e' {say "yep"} else {say "no"};
03:01 camelia rakudo-moar 459bc5: OUTPUT«no␤»
03:01 herby_ m: with index("123", "123") && 'e' eq 'e' {say "yep"} else {say "no"};
03:01 camelia rakudo-moar 459bc5: OUTPUT«yep␤»
03:02 herby_ what is the difference between 'if' and 'when'?
03:02 BenGoldberg joined #perl6
03:03 herby_ or rather, when should I should which
03:03 herby_ should I use which
03:03 doublec joined #perl6
03:04 AlexDaniel herby_: it seems like “when” should be used in “given”
03:04 AlexDaniel but not only
03:04 ShimmerFairy 'with' is for testing whether objects are defined, it's equivalent to    if $testing-this.defined { ... }
03:04 ShimmerFairy m: say 42.defined; say 0.defined; say Int.defined;
03:04 camelia rakudo-moar 459bc5: OUTPUT«True␤True␤False␤»
03:05 * AlexDaniel is not sure what the question was
03:05 herby_ just not sure when I should be using what
03:05 herby_ when in doubt, should i just use 'if'?
03:07 ShimmerFairy yeah, I'd recommend using 'if' to be safe, just make sure to keep mindful of 0 being considered false :)
03:07 herby_ yep, i'll remember that lesson :)
03:07 ShimmerFairy m: say index("0123", "123"); say index("123", "abc")
03:07 camelia rakudo-moar 459bc5: OUTPUT«1␤Nil␤»
03:07 AlexDaniel herby_: when in doubt, think about about your condition. Are you testing for definedness or truthness?
03:08 herby_ at this stage in my 'learning to program', i'm not entirely sure i understand the difference
03:08 herby_ i understand truth, false, 0, 1
03:08 herby_ true rather
03:09 AlexDaniel herby_: if you were implementing 「index」, what would you return if no match was found?
03:10 herby_ hmm
03:10 herby_ without looking, i'd assume a 0 or false
03:10 herby_ but since i now know its returning the index
03:10 herby_ guess that's not correct
03:11 AlexDaniel herby_: well, you can't really return False because some code might be expecting Int
03:11 AlexDaniel herby_: so it will blow up
03:11 AlexDaniel m: Int $x = False
03:11 camelia rakudo-moar 459bc5: OUTPUT«5===SORRY!5=== Error while compiling /tmp/3QvAuhGYTO␤Two terms in a row␤at /tmp/3QvAuhGYTO:1␤------> 3Int7⏏5 $x = False␤    expecting any of:␤        infix␤        infix stopper␤        statement end␤        statement modifier␤ …»
03:11 AlexDaniel m: my Int $x = False
03:11 camelia rakudo-moar 459bc5: OUTPUT«Type check failed in assignment to $x; expected Int but got Bool␤  in block <unit> at /tmp/22w7cfptN5:1␤␤»
03:11 AlexDaniel herby_: “expected Int but got Bool”
03:12 AlexDaniel so we can't return False
03:12 AlexDaniel we also can't return 0 because it is a valid index
03:12 AlexDaniel so you wont know whether nothing was found or it is just at the beginning of your string
03:13 AlexDaniel herby_: one possibility is to return negative numbers… but that's just ugly, in my opinion
03:13 AlexDaniel herby_: and although it might work in our case with 「index」, it wont work with other routines that return negative values normally as well
03:14 herby_ ok
03:14 AlexDaniel so we return undef, null, nil, whatever the name is in your current language
03:15 herby_ ok
03:17 herby_ that makes sense, thank you
03:30 Khisanth joined #perl6
03:41 srvsh joined #perl6
03:43 herby_ m: my $string = "ACCESS_ID: 123"; my $num = "123"; with index($string, "ACCESS_ID:$num") {say "yep"} else {say "no"};
03:43 camelia rakudo-moar 459bc5: OUTPUT«no␤»
03:44 herby_ hmm. that line still fails in the script
03:45 ShimmerFairy it's because you need to write the match string as "ACCESS_ID: $num" :)
03:47 herby_ wow, I need to go to bed. I'm losing it :)
03:47 herby_ thanks for the help everyone, have a good night!
03:47 herby_ now it works!
03:49 xpen joined #perl6
03:59 Ven_ joined #perl6
04:04 raiph joined #perl6
04:10 llfourn joined #perl6
04:31 eternaleye joined #perl6
04:34 tokuhiro_ joined #perl6
04:35 Actualeyes joined #perl6
04:37 quester joined #perl6
04:40 stmuk joined #perl6
04:51 vendethiel joined #perl6
05:02 Ven_ joined #perl6
05:37 n0xff joined #perl6
06:07 xfix joined #perl6
06:09 TimToady "Routines are the smallest means of code reuse in Perl 6."  Hmm, that's not really true
06:09 TimToady blocks and thunks are smaller
06:11 llfourn TimToady: I think that whole first part can be re-written :)
06:11 Hotkeys attempting to install linenoise to test the bug we were testing earlier
06:11 Hotkeys can't even build panda on current version
06:11 * llfourn notes in his TODO
06:11 Hotkeys JSON module gets angry
06:11 JimmyZ it meant Routine in rakudo core? since most are wrap to  obj.meth ...
06:11 jferrero m: my %x = (a => 1, b => 2); say "{%x}"
06:11 camelia rakudo-moar 459bc5: OUTPUT«a    1␤b     2␤»
06:25 polettix joined #perl6
06:34 lizmat attempt #1 to commute to MIA&
06:38 syahirah0204 joined #perl6
06:39 syahirah0204 hai everybody
06:39 syahirah0204 help me !
06:39 syahirah0204 im new here
06:39 * syahirah0204 slaps advwp around a bit with a large fishbot
06:44 TimToady we're all asleep
06:46 llfourn syahirah0204: I'm awake :)
06:47 syahirah0204 hai
06:47 syahirah0204 how to use perl
06:47 syahirah0204 :(
06:47 llfourn m: say "you type characters and spit them at me!"
06:47 camelia rakudo-moar 459bc5: OUTPUT«you type characters and spit them at me!␤»
06:48 mr-foobar joined #perl6
06:49 * syahirah0204 slaps syahirah0204 around a bit with a large fishbot
06:49 syahirah0204 left #perl6
06:50 domidumont joined #perl6
06:52 ribasushi joined #perl6
06:55 [Tux] ZoffixW, Text::CSV already exists, DBD::CSV is not easy to port right now, as it needs not only DBI (and DBD::File), but also SQL::Statement
07:00 Oatmeal joined #perl6
07:04 rindolf joined #perl6
07:05 Oatmeal joined #perl6
07:07 diana_olhovik joined #perl6
07:09 Ven_ joined #perl6
07:10 CIAvash joined #perl6
07:15 masak morning, #perl6
07:19 moznion joined #perl6
07:22 raydiak joined #perl6
07:22 masak current status: rethinking the wisdom/sanity of surrounding all injected Qtrees with an invisible block (for hygienic scoping).
07:22 [Tux] test             50000    20.904    20.762
07:22 [Tux] test-t           50000    17.457    17.315
07:23 [Tux] morning
07:25 masak mornin', [Tux]
07:25 masak today's Git pro tip: `git config --global log.date iso`
07:26 masak (sets the date format from "human readable" to YYYY-MM-DD)
07:27 lizmat joined #perl6
07:27 llfourn masak: Mon Nov 9 16:23:53 2015 is what mine looks like
07:27 llfourn seems readable
07:28 llfourn that is git log output
07:30 masak right.
07:31 masak iso would change that to 2015-11-09 16:23:53 <tz>
07:31 masak a matter of preferences, I guess.
07:31 llfourn I guess that is a bit cleaner :)
07:31 masak to me as a Swede, <wd> <m> <md> hh:mm:ss <y> is a bit of an affront :P
07:32 * llfourn gumbles about Swedes
07:32 masak :P
07:32 * masak puts up a border control, just in case
07:32 llfourn apprently you can set a strftime if you want
07:32 lizmat looks like attempt #1 is going to be successful after all
07:33 lizmat all checked in, and on one of the 3 Lufthansa flights leaving from FRA this morning
07:33 masak lizmat: "if at 0th you don't succeed..."
07:33 lizmat :-)
07:33 lizmat 0th is "didn't even try" to me
07:33 lizmat :-)
07:34 masak by vacuous reasoning, the 0th attempt has to have been unsuccessful, otherwise there'd be no reason to try a 1st time.
07:34 Oatmeal joined #perl6
07:35 * masak is increasingly tempted to write a "Category Theory for Perl 6 programmers" slide deck
07:36 llfourn at least give it a 0th attempt masak++
07:37 masak :)
07:37 lizmat masak: well, duh, I mean, since I didn't try the 0th time, I had to do the 1st time  :-)
07:38 masak whether you tried a 0th time or not is outside of our concerns. we're discussing whether the attempt was *successful*. :P
07:38 llfourn ...the attempt at trying?
07:38 masak no, no. that's what the name of the song is *called*.
07:39 masak third base!
07:39 llfourn :P
07:40 * masak imagines a mashup between Abbott & Costello and Alice in Wonderland would work quite well
07:40 * llfourn doesn't even think that match up will make it's 0th attempt
07:42 masak the reason I'm no longer convinced "inject Qtrees in a block with a jury-rigged outer" is a good solution: it works well in expressions, but it doesn't work well in non-expression contexts, where an (auto-invoked) block is not expected and not "syntactical".
07:43 masak instead, I'm toying with the idea of somehow tying *identifiers* to a particular context. that should be enough.
07:43 masak if neither of these ideas work, I'm not sure how we'll get hygiene in Perl 6 macros.
07:45 abraxxa joined #perl6
07:46 TEttinger haha macro discussions all over. I wrote a macro to write macros in privmsgs to a clojure-evaluating IRC bot
07:47 TEttinger (defmacro my-define [name# args# [f# & body#]] `(defmacro ~(symbol name#) ~args# (list 'list ''~f# ~@body#)))
07:47 TEttinger and no, this is not what clojure should ever look like
07:48 TEttinger macro macros are I think forbidden in Leviticus along with eating shrimp and wearing polyester
07:49 masak in Perl 6 we aim to allow it, because we're groundbreaking that way
07:50 TEttinger clojure does allow it, it's just never pretty. because you have multiple levels of quotation, etc.
07:50 masak one macro already has multiple levels.
07:50 masak it's interesting to learn to think in terms of those levels.
07:51 mst masak++ # with great power comes great new synthetic fabrics from which one can construct clothes to wear while eating shrimp
07:51 masak my latest metaphors are "early" (when the macro is running) and "late" (when the code that the macro injected finally runs)
07:51 xpen joined #perl6
07:53 RabidGravy joined #perl6
07:53 mst masak: I would commend unto you the lisp known as 'kernel', which is an fexpr based lisp that somebody did a phd thesis on
07:53 mst it eliminates the concept of a macro entirely
07:53 mst this is fascinating and awesome
07:54 abraxxa joined #perl6
07:54 mst it basically generalises macros to runtime, with compile time rewriting merely being an optimisation and/or a chance ot fail type checks fast
07:54 masak mst: do you have a reference of some sort? consider me intrigued?
07:54 masak s/\?$/./
07:54 Oatmeal joined #perl6
07:55 mst http://lambda-the-ultimate.org/node/4093 https://web.cs.wpi.edu/~jshutt/kernel.html
07:55 masak thanks.
07:55 TEttinger mst: oh I know you :)
07:55 TEttinger shadowcat-mst made a few kernels
07:55 mst note, I pulled those from google just now but unless I misremember those two pages were my jumping off point for my original research
07:55 mst you mean Wat.pm, the perl5 port of wat-js
07:55 mst I guess
07:56 TEttinger yes
07:56 mst which was an unbelievably liberating thing to write in
07:56 TEttinger you're at least listed on the Kernel Underground thing
07:56 mst I've no idea what that is
07:56 TEttinger (blog post? compilation?)
07:56 mst my current focus is a perl5 based interpreter for a prolog-with-non-extralogical-side-effects language
07:56 masak mst: generally the big barrier that I find when wanting to borrow from other languages, is that so many assumptions from the rest of the language (runtime/compile time) creep in and set the tone of how macros come out.
07:56 abraxxa joined #perl6
07:57 mst masak: basically, an fexpr is a runtimer macro, where apply must be called explicitly to get 'normal' calling results
07:57 xpen_ joined #perl6
07:57 mst TEttinger: amusing to be known in #perl6 for something other than my mainline CPAN work ;)
07:57 TEttinger mst: that's... the simplest explanation I've ever gotten of fexprs. thanks
07:58 masak amazing that mst explains fexprs to TEttinger on #perl6 :P
07:58 masak mst++
07:58 TEttinger http://axisofeval.blogspot.com/​2011/09/kernel-underground.html
07:58 mst aha
07:59 masak mst: while I have your attention -- do you think it's sane at all that Qtrees (Perl 6's unannounced highly refined AST format) come with a lexical context? (for variable lookup, etc)
07:59 TEttinger there's I mean, a lot of people here. it makes sense that some are famous!
08:00 masak mst: this basically falls out of "macros are hygienic", but recently I've come to hunt around for alternatives.
08:00 mst well, yes. but normally I'm famous for inventing perl5's most popular ORM, or helping out co-ordinating the perl6 -> Moose -> perl6 thing, or inventing the State of the Velociraptor keynote for perl5 so people stopped whining about Larry mostly talking about perl6, or
08:00 mst Wat.pm is kinda minor, just something I played with
08:01 dalek rakudo/nom: 11f325b | lizmat++ | src/core/List.pm:
08:01 dalek rakudo/nom: Make List.reverse 4x faster
08:01 dalek rakudo/nom:
08:01 dalek rakudo/nom: 6x faster if it is an empty List/Array
08:01 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/11f325b568
08:01 mst then the wat creator wanted different things than my suggestions then I found it was hopelessly non-performant for what I wanted then I realised that was because I was doing it wrong
08:01 mst in that Wat.pm was a lousy implementation of wat and then even if it had been a good one it was the wrong runtime for what I was doing
08:02 mst but man I <3 fexprs
08:02 TEttinger yes, but since I'm not really a user of perl 5 or perl 6 at the moment (I am interested in the language and I might learn more at some point), I see "mst" and I think "that's that wat person..."
08:02 mst I will -so- be going back to that at some point
08:02 mst TEttinger: yeah, and that's totally cool. it's just ... not what normally happens :D
08:02 TEttinger heh
08:03 TEttinger I like perl 6 for its language/grammar stuff
08:03 mst it'd be like larry running into somebody at a perl conference and them going "HEY YOU'RE THAT GUY WHO WROTE RN!"
08:03 TEttinger I don't know any other language that handles grammar like perl (6) does
08:03 mst OTOH I'm glad people who aren't me have noticed Wat
08:03 mst right. the grammars are amazing
08:03 mst I'm mostly a perl5 hacker, but Inline::Perl6 for perl5 exists because I asked the Inline::Perl5 author nicely because I want access to the grammars from perl5
08:05 mst masak: I think having each node point to its lexical context seems like ... I'm not really an AST expert, but that is, logically, exactly what I'd expect
08:05 masak \o/
08:06 masak mst: well, refining it a bit -- I've also come to realize that sometimes people create "contextless" AST nodes.
08:06 TEttinger I don't even know what I mostly am these days. I program a lot of Java for months at a time, then C# as the project changes, with an end goal of using something like Clojure to consume the java lib I wrote with a java lib someone else wrote to render the graphics I made in C#...
08:06 masak mst: basically by calling constructors to make them.
08:06 masak mst: I call them "synthetic Qtrees".
08:06 espadrine joined #perl6
08:06 zakharyas joined #perl6
08:07 masak mst: these basically latch on to the first context they come in contact with. usually as they're injected somewhere. they give some slight un-hygiene relief when needed.
08:08 mst that's probably sensible
08:08 masak mst: one reason I think it's the right choice for Perl 6 Qtrees to have a lexical context is that... I can't really see Perl 6 code working *without* it.
08:08 mst kinda ... oh gods, er, dynamic scope except rotated through 90 degrees
08:08 mst I can't find a better way to express it
08:08 mst but it smells right to me
08:08 masak mst: lexical context is so tied up with everything Perl 6 gets up to. even operators are lexically scoped.
08:08 spider-mario joined #perl6
08:09 mst yep. true of wat as well :)
08:09 masak \o/
08:09 mst having the nodes as they're interpolated glom onto the lexical scope as given seems totally reasonable
08:10 mst the 'dynamic scope except rotated through 90 degreees' explanation sucks if you don't already know what I mean
08:10 mst but if that metaphor makes sense to you I'm 99% sure we're on the same page
08:11 darutoko joined #perl6
08:12 masak yeah.
08:12 masak you've already helped a bunch. thanks.
08:15 RabidGravy I don't suppose there is a built in regex for   matching curlies in strings?  i.e. for getting at the " Foo { # some code }" ?
08:16 masak RabidGravy: problem is, it's already interpolated by the time you have the string value.
08:16 masak RabidGravy: at least if you really meant "" there
08:18 RabidGravy no I mean strings with that in, the "" was a short cut for "perl does it so maybe it exposes it somehow" ;-)
08:18 llfourn RabidGravy: maybe check the $~Quote grammar?
08:19 RabidGravy as I have singularly failied to persuade anyone else to do it I'm trying to implement https://tools.ietf.org/html/rfc6570
08:20 llfourn RabidGravy++
08:21 dalek rakudo/nom: 3d7f846 | lizmat++ | src/core/List.pm:
08:21 dalek rakudo/nom: Make List.rotate 30% faster
08:21 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/3d7f846c47
08:27 RabidGravy the Perl6::Grammar make my brane hurt
08:28 ely-se joined #perl6
08:29 lizmat gate&
08:29 llfourn it looks like the Q grammar is more confusing :P
08:50 diakopter mst: which wat is that
08:51 mst diakopter: https://github.com/shadowcat-mst/wat-pl/
08:51 RabidGravy I wot not what wat
08:56 * masak .oO( I will not wot it on a train )
08:59 azawawi joined #perl6
08:59 azawawi hi
09:04 masak hi azawawi
09:04 RabidGravy marning chief
09:07 timotimo o/
09:08 timotimo [Tux]: the latest test and test-t bench is not that much faster than yesterday's, eh? as in: in noise?
09:09 [Tux] yep
09:09 RabidGravy whip the hamsters harder
09:09 masak here's an illustration about "Qtrees have lexical scopes", using the (NYI) melt() built-in: `my q; { my x = 42; q = quasi { x } }; my x = 5; say melt(q)` # 42
09:09 timotimo damn
09:10 [Tux] timotimo, I currently see all between 16.5 and 19.5 as "no-change: noise"
09:10 masak but `my q; { my x = 42; q = Q::Identifier("x"); say(melt(q)) }; my x = 5; say(melt(q))` # 42 5
09:10 timotimo i was hoping for a tiny improvement from my patches, but it's not likely that your code would run through very many subs or operators that have a :D or :U annotated return type
09:10 sa_ joined #perl6
09:12 * azawawi starts buildings rakudo on linux and windows
09:12 azawawi s/buildings/building/   # need morning coffee
09:15 El_Che azawawi is a fancy guy with a specific coffee blend for morning, noon and evening :)
09:16 RabidGravy try building it on a rev 'B' Raspberry Pi, you'd be able to get in a three course dinner rather than just coffee ;-)
09:16 azawawi RabidGravy: i have two boards over here :)
09:17 azawawi RabidGravy: it is very slow... already did that :)
09:17 DrForr Oo, three-course meals. I had that for lunch by accident in Lyon :)
09:18 azawawi RabidGravy: the CPU on a RPi is garbage compared to http://www.intel.com/content/www/us/en/​compute-stick/intel-compute-stick.html :)
09:21 RabidGravy I've got an Intel Galileo knocking around somewhere
09:21 rindolf joined #perl6
09:21 azawawi did anyone try compiling rakudo on an Intel compute stick?
09:23 quester left #perl6
09:26 dakkar joined #perl6
09:28 RabidGravy I guess if I saw one in Maplins or something I would buy it, but not sufficiently motivated to buy one online
09:28 * azawawi starts using rakudobrew on windows :)
09:29 azawawi tadzik++
09:29 pmurias joined #perl6
09:31 tadzik :)
09:31 yoleaux 10 Nov 2015 18:38Z <nine> tadzik: https://github.com/tadzik/File-Find/pull/15
09:31 tadzik oh
09:31 tadzik yay, fixes :)
09:31 RabidGravy PRs! PRs!
09:31 RabidGravy ;-)
09:32 azawawi tadzik: i would remote the SETX advice... btw
09:32 azawawi tadzik: SETX has just truncated my Path back to 1024 lol
09:32 tadzik ( ° ー°)
09:32 azawawi tadzik: http://superuser.com/questions/387619/over​coming-the-1024-character-limit-with-setx
09:33 azawawi tadzik: so remove it :)
09:33 tadzik I have no idea about windows :)
09:33 tadzik I'm gonna need PRs
09:33 azawawi tadzik: also in the windows instructions, SET PATH=%USERPROFILE%\rakudobrew\bin;%PATH%
09:34 azawawi tadzik: and that you shall have, champion of the rakudo land :)
09:34 pmurias I'm planning to apply for a TPF grant to work on rakudo-js. I need to choose a use case to focus on, so I would love to know what people want to use it for.
09:34 tadzik haha, thank you :)
09:34 tadzik "SETX has just truncated my Path" sounded like something spiritual and klingon to me
09:34 RabidGravy tadzik, while you're in the mood, fancy looking at https://github.com/tadzik/JSON-Unmarshal/pull/11 ? Then I can get on an do the next thing ;-)
09:34 pmurias blog post with a few ideas: http://blogs.perl.org/users/pawel_murias/2015​/11/what-should-rakudo-js-aim-for-first.html
09:35 azawawi tadzik: my path was truncated by the SETX :)
09:35 tadzik RabidGravy: oh, right on it :)
09:35 tadzik azawawi: ok, I get it now :)
09:35 RabidGravy you're a star
09:35 xinming_ joined #perl6
09:36 * azawawi starts reading pmurias's post
09:36 masak url?
09:36 tadzik oh, btw
09:36 masak oh, I see it, nvm :)
09:37 tadzik can we leave the liberty of opening the links in the same or the new tab to the user, rather than taking it away from them, on modules.perl6.org?
09:37 azawawi pmurias: cool. you need to look on https://github.com/fglock/Perlito/ then
09:37 azawawi pmurias: and https://github.com/azawawi/perl6-elec​tron/blob/master/examples/bailador.p6 :)
09:37 konobi pmurias: npm and browser. you can take an npm package and get it spat out into browser aware code using browserify/webpack.
09:38 masak pmurias: the first one strikes me as the one I'd like to see the most.
09:38 masak pmurias: only thing that made me hesitate was the last one. :) but surely those two are related?
09:38 tadzik RabidGravy: I personally prefer my elses cuddles, but since you wrote the first else in that file I'll let you have dibs on the coding standard :P
09:38 konobi pmurias: reactjs/jquery/react.native don't make sense
09:40 konobi pmurias: btw... I'm happy to help out. I'm a nodejs commiter, community moderator, used to work at joyent... so been around node for nearly as long as it's existed and I know npm well, along with the authors.
09:40 RabidGravy tadzik, for a long time I was more in favour of the "curlies on their own line" style but have only gradually come round to the more common style ;-)
09:41 konobi and no doubt someone could claim that I've had a bunch of Perl in my history too =0)
09:41 pmurias masak: having a simple REPL will be easy if rakudo-js is good enough to write a web app
09:41 tadzik you can pry my elses from their warm cuddles! :P
09:41 tadzik RabidGravy: anyway, merged, thanks a lot :)
09:42 RabidGravy groove-tastic! love you long time
09:42 pmurias konobi: the main tradeoff for targeting node.js is how much I should focus on supporting all the IO stuff
09:42 azawawi konobi: did you work on electron? is it easy to retrofit electron with a perl6 engine? :)
09:43 eliasr joined #perl6
09:44 pmurias konobi: using npm/webpack would likely be a good way to package the perl 6 app for the browser
09:44 konobi pmurias: none for now
09:44 * masak finds that he doesn't have a strong opinion either way on the cuddled-elses topic
09:44 konobi just support console.log in the meantime
09:44 masak I like it when people/code are consistent, though.
09:44 azawawi tadzik: strawberry perl's gcc make rakudobrew fail... needed a "C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\amd64\vcvars64.bat" for it to work
09:45 konobi azawawi: no... electron came out of the atom folks. It's probably likely to be doable with perl6, assuming there are c++/c headers available
09:46 konobi pmurias: after console.log() then you can see where the I/O takes you.
09:46 konobi browserify will give you some of that for free in the browser, for sure.
09:46 azawawi konobi: we already have an integration with it using my Electron module via a JSON RPC bridge but that is slow compared to direct API access ofcourse
09:47 * azawawi checks his electron module again :)
09:47 pmurias azawawi: it should be possible to embed moar as a node.js module
09:48 azawawi pmurias: that would be awesome
09:48 konobi yeah... that may well be an easier approach
09:48 konobi azawawi: node native addons aren't too tricky
09:48 RabidGravy any travis ci afficionados in the house?  WTF is https://travis-ci.org/sergot/h​ttp-useragent/builds/90692923 all about
09:49 azawawi konobi: any links on that topic?
09:49 konobi azawawi: the nodejs docs... also look at the npm packages "bindings" and "nan".
09:50 konobi iirc, rvagg is now doing a series of articles on the subject too
09:51 konobi pmurias: i had a think about your questions since last... and I think I know where the disconnect may be.
09:52 konobi where does nqp stop and where does p6 and p6 modules start
09:53 azawawi RabidGravy: restart the build to make sure via Travis CI ui
09:53 azawawi RabidGravy: i bet it is a panda bug
09:53 azawawi RabidGravy: pandas are known to love bugs :)
09:53 rindolf joined #perl6
09:54 konobi azawawi: i'm on PST... but I'm happy to give pointers if/when needed
09:55 azawawi konobi: https://github.com/TooTallNate/node-bindings and https://github.com/nodejs/nan, right?
09:56 konobi yup
09:57 konobi the node source is a good place to look at the c++/js bridge
09:58 konobi i've done several addons myself... but they've generally been fairly basic
10:01 konobi azawawi: but since moar already uses libuv... some things should be a bit easier
10:03 duncan_dmg joined #perl6
10:04 timotimo https://shaunlebron.github.io/parinfer/ - this looks quite cute
10:06 konobi azawawi: you probably want to start with plain node.js first... and then deal with hooking it up to electron
10:06 azawawi timotimo: cool
10:06 konobi bative addons with electron are um... interesting
10:06 andreoss joined #perl6
10:06 konobi *native
10:07 azawawi konobi: that's the json bridge im using atm https://github.com/azawawi/perl6-electron/​blob/master/lib/Electron/main_app/main.js
10:07 konobi k... these sleepy meds are kicking in
10:07 konobi azawawi: nah... there's an electron-gyp that you need to use
10:07 grondilu joined #perl6
10:09 azawawi konobi: i will look into it... good night :)
10:09 konobi nn
10:09 azawawi konobi: thanks for info
10:13 polettix joined #perl6
10:22 donaldh joined #perl6
10:30 rindolf joined #perl6
10:44 aborazmeh joined #perl6
10:44 aborazmeh joined #perl6
10:45 pmurias_ joined #perl6
10:53 pat_js joined #perl6
10:57 jnthn morning, #perl6
11:00 abraxxa hi!
11:01 RabidGravy marnin
11:04 RabidGravy compare:
11:04 RabidGravy m: my $str = "hsjsjs"; say $str{"foo"}
11:04 camelia rakudo-moar 3d7f84: OUTPUT«Type Str does not support associative indexing.␤  in block <unit> at /tmp/qGApJZ7jjy:1␤␤Actually thrown at:␤  in block <unit> at /tmp/qGApJZ7jjy:1␤␤»
11:04 RabidGravy m: my $str = "hsjsjs"; say $str{"foo"}:exists
11:04 camelia rakudo-moar 3d7f84: OUTPUT«False␤»
11:05 RabidGravy personally I'd be happier if the second blew up like the first
11:08 pyrimidi_ joined #perl6
11:10 Zoffix joined #perl6
11:11 dalek rakudo/nom: 196c5ed | (Tomasz Konojacki)++ | / (4 files):
11:11 dalek rakudo/nom: fix nmake clean
11:11 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/196c5edb94
11:11 dalek rakudo/nom: 92f9039 | jnthn++ | / (4 files):
11:11 dalek rakudo/nom: Merge pull request #581 from xenu/nom
11:11 dalek rakudo/nom:
11:11 dalek rakudo/nom: Fix "nmake clean"
11:11 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/92f90399e0
11:11 RabidGravy 'cause there's no end to the stupid I type
11:11 * jnthn doesn't feel too strongly either way on it
11:12 jnthn I can see the convenience angle of being able to succinctly ask "will this indexing give me something"
11:13 dalek rakudo/nom: a8560f5 | cygx++ | src/core/IO/Path.pm:
11:13 dalek rakudo/nom: use no longer new (but still shiny) open mode :x for spurt(:createonly)
11:13 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/a8560f5c11
11:13 dalek rakudo/nom: f522533 | jnthn++ | src/core/IO/Path.pm:
11:13 dalek rakudo/nom: Merge pull request #575 from cygx/createonly-x
11:13 dalek rakudo/nom:
11:13 dalek rakudo/nom: use no longer new (but still shiny) open mode :x for spurt(:createonly)
11:13 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/f522533925
11:15 ilmari where does the "nope" list live?
11:15 moritz "nope" list?
11:15 ilmari list of things that are officially out of scope for 6.christmas
11:16 jnthn It's not really been maintained, but https://gist.github.com/jnthn/040f4502899d39b2cbb4
11:18 jnthn ilmari: Is a PR to fix the encode buffer overflow still on your todo list, btw?
11:18 ilmari jnthn: yes
11:18 jnthn OK, thanks :)
11:29 donaldh jnthn: is Mu.Capture intended to handle classes? It doesn't seem to have sensible behaviour for primitives, e.g. Int or ranges
11:29 donaldh m: (1..*).Capture.say
11:29 camelia rakudo-moar 3d7f84: OUTPUT«\(:max(Inf), :min(1))␤»
11:30 donaldh m: (1..*,).Capture.say
11:30 camelia rakudo-moar 3d7f84: OUTPUT«\(1..Inf)␤»
11:30 jnthn Those both do as I'd expect, I think
11:30 jnthn Mu.Capture takes the attributes declared with an accessor
11:30 donaldh m: 1.Capture.say
11:30 camelia rakudo-moar 3d7f84: OUTPUT«\()␤»
11:30 jnthn And makes them be named args
11:30 jnthn That in turn supports unpacking
11:31 jnthn It's fairly reasonable to want to unpack a range into its min and max, I think
11:31 jnthn Just as a Rat can be unpacked into its numerator and denominator
11:31 jnthn And presumably complex into the components
11:32 jnthn For Int/Num/Str, it's not really clear you'd even want to unpack them
11:32 donaldh Int doesn't capture
11:32 jnthn m: say \(1)
11:32 camelia rakudo-moar f52253: OUTPUT«\(1)␤»
11:32 jnthn Note that this is the syntax for writing a Capture literal
11:33 jnthn .Capture exists primarily for the purpose of saying "give me something to bind against a signature", the use case being unpacking
11:33 moritz http://blog.burntsushi.net/transducers/ # storing ordered sets and hashes (with integer values) in a finite state machine
11:34 jnthn We could in theory override .Capture on Int/Num/Str and make it have a value named parameter, but again, given the use case is unpacking, it's not clear why you'd want it.
11:34 donaldh I thought it should capture positionals too?
11:34 donaldh But a list of 1 is ambiguous
11:34 * moritz hasn't really had a cause to work with Capture objects directly
11:35 donaldh Well, nor I but I'm golfing a NPE on JVM and realized I don't understand the behaviour
11:36 donaldh r: 1.Capture.say
11:36 camelia rakudo-jvm 3d7f84: OUTPUT«java.lang.NullPointerException␤  in block <unit> at /tmp/tmpfile:1␤␤»
11:36 camelia ..rakudo-moar f52253: OUTPUT«\()␤»
11:36 jnthn donaldh: .Capture does *not* mean the same as \(...)
11:36 jnthn It means "turn yourself into something we can unpack during a signature bind"
11:37 jnthn The only things that populate the list part of a capture are List and Match
11:38 donaldh m: (1,2,3).Capture.list.say
11:38 camelia rakudo-moar f52253: OUTPUT«(1 2 3)␤»
11:38 donaldh m: (1).Capture.list.say
11:38 camelia rakudo-moar f52253: OUTPUT«()␤»
11:38 jnthn m: (1,).Capture.list.say
11:38 camelia rakudo-moar f52253: OUTPUT«(1)␤»
11:38 jnthn m: (1).list.Capture.say
11:38 camelia rakudo-moar f52253: OUTPUT«\(1)␤»
11:38 jnthn .Capture does not consider a single item to be a degenerate list
11:39 jnthn If it did that then you'd not be able to unpack rationals, complexes, pairs, objects, etc.
11:39 donaldh I guess intuitively I expect it to behave as a parameter list would.
11:39 jnthn It doesn't, as I've now said about 5 times.
11:39 donaldh I realise that.
11:40 jnthn And it can't if it's to support unpacking
11:40 jnthn We could introduce yet another method that we can call to get soemthing to signature unpack
11:40 jnthn But given a Capture is what you bind against a signature, it's the obvious fit.
11:41 jnthn What Int/Str/Num would do in response to .Capture is a reasonable question.
11:41 donaldh Yes. I think that's the issue
11:42 donaldh m: "str".Capture.say
11:42 camelia rakudo-moar f52253: OUTPUT«\()␤»
11:42 jnthn It is, but in a sense it also explains why we've never run into the issue in real code: you'd never write an unpack of a Str parameter in a signature
11:43 jnthn (Because there's nothing to destructure)
11:43 donaldh Sure.
11:43 jnthn I agree it looks odd to have the value "vanish"
11:44 jnthn I'm just not sure what the most logical thing to do is, especially when whatever we do will probably meet about zero real world use.
11:44 donaldh Document it maybe?
11:46 masak "But ultimately, because the parser for the language is written in the language itself, it means you can change the parser as you need to, without all the problems of source code filtering." -- http://perlhist.com/perl6/damian-conway/
11:46 donaldh Thanks for helping me understand it. I'll look at the underlying NPE.
11:46 jnthn m: class A { }; A.Capture
11:46 camelia rakudo-moar f52253: ( no output )
11:46 jnthn j: class A { }; A.Capture
11:46 masak I think what Damian has identified may be a necessary condition -- maybe -- but it's not a sufficient one :)
11:46 camelia rakudo-jvm 3d7f84: ( no output )
11:46 jnthn Hmm, I thought that might explode too
11:46 masak because if it were, then we'd have language mutability already :)
11:46 jnthn j: class A { }; say A.Capture
11:46 camelia rakudo-jvm 3d7f84: OUTPUT«java.lang.NullPointerException␤  in block <unit> at /tmp/5KMCGOnGzC:1␤␤»
11:46 jnthn Ah
11:47 jnthn j: say Capture.new
11:47 camelia rakudo-jvm 3d7f84: OUTPUT«\()␤»
11:47 donaldh Yep, it's the say method that explodes
11:47 donaldh Capture.say that is
11:47 jnthn donaldh: At a guess, $!list or $!hash ends up not set and somehow we don't check for it in a good way
11:47 jnthn Probably .gist or .perl
11:47 jnthn masak: We do have it already
11:47 jnthn masak: It's just not very comfortable or convenient to do :)
11:50 masak ok, granted.
11:51 masak I guess even switching "all the problems of source code filtering" for inconvenience can be considered a step up ;)
11:51 jnthn Aye. Now we "just" need to make it relatively easy, safe, and beautiful, to do it. :)
11:52 jnthn And with an API we're willing to support for decades.
11:52 dalek ecosystem: be1540f | RabidGravy++ | META.list:
11:52 dalek ecosystem: Add JSON::Infer
11:52 dalek ecosystem:
11:52 dalek ecosystem: https://github.com/jonathanstowe/JSON-Infer
11:52 dalek ecosystem: review: https://github.com/perl6/e​cosystem/commit/be1540fad7
11:52 masak jnthn: sounds like a plan.
11:52 * masak has a "slang typology" blog post brewing in the back of his mind
11:53 RabidGravy I was going to wait until december 3 to do that (so it took a year) but there's no point in sitting on it
11:53 masak RabidGravy++ # gun-jumping
11:55 jnthn m: say 'bookkeeper' ~~ /[(.)$0]+/
11:55 camelia rakudo-moar f52253: OUTPUT«「ookkee」␤ 0 => 「o」␤ 0 => 「k」␤ 0 => 「e」␤»
11:56 jnthn Hmm
11:56 jnthn Under the definition TimToady gave for backref yesterday, that can now only match "oo"
11:56 moritz doesn't sound very composable
11:57 jnthn Basically 'cus you look at the first capture to $0 and the latest one and take the substring $first.from ..^ $latest.to
11:58 donaldh ugh, perl Configure.pl blows up
11:58 jnthn I'll end up not using the backref method anyways 'cus we're smart enough to compute backrefs without having to fully assemble a Match object
11:58 jnthn But what I've got is semantically equivalent to the one added yesterday
11:59 jnthn I wonder if we should require the matches we factor in to be contiguous.
11:59 donaldh https://gist.github.com/do​naldh/5b61e9da8bbfa967a35c
11:59 RabidGravy if anyone's bored sticking some Perl 6 examples on http://notejam.net/# might be a fun project
11:59 jnthn That'd still address https://rt.perl.org/Ticket/Display.html?id=88340 without, I think, breaking the test
12:00 jnthn moritz: Any thoughts? :)
12:00 andreoss joined #perl6
12:00 jnthn donaldh: Is that blowing up, or just being noisy?
12:01 jdv79 RabidGravy: maybe i've been burnt more times than its helped by why do that?
12:01 * masak remembers fondly how he got 'bookkeeper' ~~ /[(.)$0]+/ to work under GGE years ago :)
12:01 donaldh First run I didn't get a Makefile. Now I seem to.
12:01 * jdv79 is reminded of ws-* and soap
12:01 moritz jnthn: sorry, on the phone
12:02 * donaldh will investigate
12:02 jdv79 working with json directly is pretty easy so maybe i'm missing the benefits you are looking for
12:04 jnthn donaldh: It was probably fallout from the cross-compile patches applied some days back. They bust the Windows configure totally, but seems there's a couple more issues.
12:04 RabidGravy jdv79, I'm not seeing the part where I suggested you were compelled to use it
12:06 jdv79 you didn't and i didn't infer that either.  i merely asked out of curiousity your opinion of why that's cool.
12:07 mayuresh_ joined #perl6
12:08 jnthn moritz: np. :-) fwiw, I've implemented what I suggested and it seems to keep the ookkee working and fix the issue in the ticket
12:09 RabidGravy I actually hate REST/JSON interfaces but acknowledge they are nearly ubiquitous because all the cool kids can't be bothered with reading specifications so don't like more formally defined things
12:10 RabidGravy this stuff makes some of the reasons it irritates me go away
12:11 jdv79 ah
12:11 moritz RabidGravy: I like them, because they are much easier than the average XML-based RPC call
12:12 kid51 joined #perl6
12:13 RabidGravy moritz, that seems to be the common position (my cynicism aside,) but the lack of formal descriptions means that in a large number of cases there's a lot of donkey work that a machine could do for you
12:13 moritz RabidGravy: agreed
12:14 jnthn D'oh, turns out fixing the backreferences to have the Perl 6 semantics we want has busted some :P5 modifier tests.
12:14 moritz RabidGravy: something like SOAP with less bloat and fewer confliciting variants wouldn't be bad :-)
12:14 jdv79 my guess is the current state of things is part of a violent overreaction to the ws-* era type stuff
12:14 mayureshkathe joined #perl6
12:15 jdv79 maybe the pendulum will swing back a bit
12:15 moritz aye
12:15 mayureshkathe it always does swing back. :)
12:15 jnthn Most things in software seem to be cyclic.
12:15 mayureshkathe it's like all events in software are on a spring.
12:15 moritz the last time I tried to call a SOAP service, it wanted to use HTTP basic authentication, but when one didn't submit the header, the answer was a 200 OK with the error encoded in the XML
12:15 jnthn Apart from addiction to facilitating large scale re-use, which seems constant :P
12:16 mayureshkathe everything is almost the same, just that things move a bit forward
12:16 mayureshkathe mostly that is. ;)
12:16 moritz so LWP::UserAgent refused to send the credentials, because it wanted to learn the realm first
12:16 mayureshkathe hello everybody. :)
12:16 jdv79 i'm more sympathetic to the new ways though.  where i used to work a partner created a "webservice" for us in 100% .Net style.  we are a perl5 shop so were unable to talk to it.
12:16 moritz that's a very typical problem with SOAP: it tries to be indepenent of the transport layer, and so everybody has a different idea about how it interacts with the transport layer
12:16 jdv79 very ws-*-ish type of situation.
12:17 moritz hello mayureshkathe :-)
12:17 mayureshkathe moritz, you might know me as "mayuresh" the guy with 'pxn' on his mind.
12:17 mayureshkathe just that someone stole my nick. :(
12:18 moritz :/
12:18 mayureshkathe que sera sera ... ;)
12:19 mayureshkathe btw, anyone out here has tried out "telegram" that new messager?
12:19 RabidGravy yeah, SOAP is somewhat hobbled by attempting to be transport agnostic
12:19 mayureshkathe it's a great replacement for whatsapp!
12:19 mayureshkathe anyways, the good thing is they have an open protocol and an api
12:20 mayureshkathe so we can write clients using what ever we wish to
12:20 mayureshkathe be our language of choice. :)
12:20 mayureshkathe message == messenger. :/
12:20 mayureshkathe dang, i am getting nuttier with every passing moment
12:21 mayureshkathe messager == messenger. :)
12:21 moritz take a break/walk/meal/sleep?
12:21 mayureshkathe yeah, sleep.
12:21 jdv79 i wrote a "trasnport agnostic" frame for my llast employer but it used http as it was meant (mostly) and abstracted up a layer the transport switching
12:21 mayureshkathe haven't done that in a couple of day.
12:21 moritz m: say <walk meal sleep>.pick
12:21 camelia rakudo-moar f52253: OUTPUT«meal␤»
12:21 mayureshkathe :D
12:22 jdv79 that was fun; kinda
12:22 moritz at $work we currently use AMQP/RabbitMQ and a custom, JSON-based protocol on top
12:22 moritz works with both events and RPC-style
12:22 RabidGravy a long time ago we had a soap thing over SSH
12:23 jdv79 soapy ssh - cleaner than all the rest
12:23 * moritz loves SSH as a transport layer, as long has he doesn't have to manage the keys
12:23 mayureshkathe :)
12:23 cygx joined #perl6
12:23 RabidGravy moritz, yeah I kind of over-used that JSON/MQ pattern in my last gig
12:24 moritz RabidGravy: overused? how so?
12:24 jdv79 moritz: how "custom"?
12:25 cygx ugexe: Net::HTTP does a `try require IO::Socket::SSL`, which makes precompilation fail with 'Missing serialize REPR function for REPR VMException'
12:25 cygx jnthn: ^^ should VMException to be serializable?
12:26 moritz jdv79: very custom :-). Basically a structure with header and payload, where the header defines things like message ID, response address, and message type; then the message type (and version) is used to locate a json schema to validate the body
12:26 jnthn cygx: Not really
12:26 jnthn cygx: Not sure how we could sensibly do that
12:26 jnthn cygx: Is it doing that "try require" at BEGIN time?
12:27 jdv79 oh, schema'ed.  makes sense.  we just flew schemaless.
12:28 moritz the schema files are a bit of a paint to write, but very useful
12:28 jdv79 well, yeah.  i guess we basically did the same dance but just in raw code.
12:28 cygx jnthn: it's in the mainline of a module that gets precompiled
12:29 jdv79 fastest to market and all.  whatever works first:)
12:29 cygx ( https://github.com/ugexe/Perl6-Net--HTTP​/blob/master/lib/Net/HTTP/Dialer.pm6#L3 specifically )
12:29 jnthn cygx: Hmm. Maybe make sure to clear $!
12:31 cygx jnthn: adding a $! = Nil does the trick
12:31 dalek nqp: a54139b | jnthn++ | src/QRegex/Cursor.nqp:
12:31 dalek nqp: Fix backref semantics with multiple captures.
12:31 dalek nqp:
12:31 dalek nqp: We now look at the most recent contiguous sequence of captures, and
12:31 dalek nqp: the backref is the string from $first.from ..^ $last.to.
12:31 dalek nqp: review: https://github.com/perl6/nqp/commit/a54139bfd9
12:31 dalek nqp: 6bd8e5b | jnthn++ | src/QRegex/ (2 files):
12:31 dalek nqp: Still use simple backref semantics for :Perl5.
12:31 dalek nqp: review: https://github.com/perl6/nqp/commit/6bd8e5b30e
12:32 kaare_ joined #perl6
12:34 Skarsnik joined #perl6
12:35 RabidGravy moritz, over-used in the sense that what could have been otherwise evolved into a type of service bus thingy
12:35 jnthn m: say ~('aaaaa' ~~ /(\w)+$0/)
12:35 camelia rakudo-moar f52253: OUTPUT«aaaaa␤»
12:36 azawawi joined #perl6
12:36 * azawawi starts working on pg arrays for DBIish
12:38 abraxxa azawawi: about your question, DBDish::Oracle still fails for queries with bind values
12:38 azawawi abraxxa: hi
12:38 Skarsnik azawawi, \o/
12:38 azawawi abraxxa: where is its repo?
12:38 Skarsnik and hello there
12:39 abraxxa azawawi: github fork of DBIish
12:40 azawawi abraxxa: link it plz
12:40 dalek rakudo/nom: fdf95de | jnthn++ | tools/build/NQP_REVISION:
12:40 dalek rakudo/nom: Bump NQP for backref semantic correction.
12:40 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/fdf95deefd
12:40 abraxxa azawawi: https://github.com/abraxxa/DBIish
12:40 dalek roast: eff792a | jnthn++ | S05-capture/dot.t:
12:40 dalek roast: Tests to cover RT #88340.
12:40 dalek roast: review: https://github.com/perl6/roast/commit/eff792ad62
12:42 azawawi abraxxa: why not add it and we add an experimental tag on it?
12:42 abraxxa azawawi: if the bind value is a Str it started working after calling explicitly-manage on the passed var
12:42 srvsh joined #perl6
12:42 dalek rakudo/nom: 43e9d37 | jnthn++ | src/core/ (2 files):
12:42 dalek rakudo/nom: Remove backref methods.
12:42 dalek rakudo/nom:
12:42 dalek rakudo/nom: We don't need to construct the entire match object just to backref
12:42 dalek rakudo/nom: things.
12:42 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/43e9d37de6
12:42 abraxxa azawawi: but sometimes the value in the DB is null
12:42 abraxxa i *guess* that the pointer telling OCI if a value is null or not isn't pointing to a memory location full of zeros
12:43 abraxxa but as NativeCall doesn't seem to have a debugging mode and I don't have C knowledge I can't debug it
12:43 abraxxa floats and ints don't work at all
12:44 azawawi Skarsnik: initial example https://github.com/azawawi/DBIish/​blob/master/examples/pg_arrays.p6 to start working on it
12:45 RabidGravy azawawi, re your asking what else would be good to support in DBIish - an ODBC would be good, UnixODBC on the not-Windows should get it going
12:45 RabidGravy that way people can get at least some of the things that are not explicitly supported
12:46 abraxxa i haven't found anyone who could help me debugging it but I'd be glad if somebody could
12:46 azawawi abraxxa: how about we add it as an experimental driver for oracle, while detailing in its documentation its problems. Please cleanup the code a bit and submit a PR. I do not want your hard work to be lost :)
12:46 abraxxa azawawi: I want it at least pass the current test suite
12:47 Skarsnik azawawi, pg return string value without "" around it if there is no space like {test, "test 2"}
12:47 andreoss masak: have you had a change to take a look at my PR for ufo?
12:48 RabidGravy abraxxa, I'd offer to help but I really, really cannot be arsed to install Oracle as I'm still recovering having worked with it for five previous years
12:48 Skarsnik but thx for improving DBIish x)
12:48 azawawi Skarsnik: the mapping is wrong as per https://github.com/perl6/DBIish/issues/29
12:48 abraxxa RabidGravy: i'm using a Docker container for it
12:48 abraxxa takes just as long as it takes you to download about 9GB
12:49 abraxxa RabidGravy: but remote support would be great for me too
12:49 RabidGravy Ooh I didn't even know that was a thing
12:49 azawawi abraxxa: which oracle database edition are you using?
12:49 abraxxa i'm using this one https://hub.docker.com/r/wnameless/oracle-xe-11g/
12:49 abraxxa azawawi: XE for dev, Enterprise in Prod
12:49 abraxxa 12.1c instant client
12:50 jnthn .tell TimToady The backref thing ended up with a "latest contiguous matches" constraint being wanted (unless we want to bust another use case). Also, because we are smart enough already to be able to locate captures without constructing the full Match object, the backref methods on Match/Array weren't useful, so I tossed them.
12:50 yoleaux jnthn: I'll pass your message to TimToady.
12:50 masak andreoss: no -- this is the first I hear about it. will look now.
12:50 jnthn Phew, that was the last regex engine RT before xmas :)
12:50 abraxxa I mainly need help with NativeCall itself and it's 'is rw' feature as OCI is full of pass by pointer
12:51 jnthn And another off the list :)
12:51 RabidGravy jnthn++ # phew
12:51 masak andreoss: merged. thanks.
12:52 Skarsnik azawawi, well it's an example of what the current Pg.pm give me {Romance,"Alternate Universe","Slice of Life"}
12:54 jnthn lunch &
13:00 polettix joined #perl6
13:03 sufrostico joined #perl6
13:03 sufrostico joined #perl6
13:05 [particle] joined #perl6
13:07 azawawi abraxxa: how about we add it as an experimental driver for oracle, while detailing in its documentation its problems. Also please cleanup the code a bit and submit a PR. I do not want your hard work to be lost :)
13:08 ely-se joined #perl6
13:09 RabidGravy and TODO the currently failing tests
13:09 RabidGravy it would make it easier for others to contribute
13:12 domidumont joined #perl6
13:14 RabidGravy ook, that oracle docker image is truly the image that ate the whole world
13:14 RabidGravy good thing I have another machine to run it one
13:16 AlexDaniel joined #perl6
13:17 moritz .oO( just put it in the cloud )
13:17 abraxxa RabidGravy: why? I run it in the background all the time without noticing
13:17 nys joined #perl6
13:21 RabidGravy abraxxa, despite being an i7 room heater with plenty of memory the laptop is often challenged by a bunch of services that I run for testing stuff plus FreeBSD kvm and so forth
13:22 abraxxa mine is a i5 with 8gb mem and a 256gb ssd on ubuntu with win7 as kvm if needed
13:22 RabidGravy mind you this other machine appears to also be running rabbitmq, couchdb, liquidsoap and icecast
13:22 azawawi Skarsnik: after looking at the array problem, pg returns us a string that we need to transform back to a Perl 6 array
13:23 azawawi Skarsnik: grammars to the rescue :)
13:23 Skarsnik azawawi, I know, just be careful about the single unquoted word x)
13:23 azawawi give me an example please :)
13:25 abraxxa rabbitmq here too ;)
13:27 Skarsnik azawawi, {Romance,"Alternate Universe","Slice of Life"} the Romance string is unquoted because no space
13:28 Skarsnik and " are escaped with a \
13:29 RabidGravy it's just plain old CSV with curlies round it I guess
13:30 azawawi Skarsnik: i see
13:30 Skarsnik it probably follow http://savage.net.au/SQL/sql-99.bnf.html#array specification
13:33 yqt joined #perl6
13:38 Skarsnik I wonder if I should write a module that work a bit like www-mechanize-tree-builder
13:43 Skarsnik it's pretty useless per se, since you can do my $xmldoc = $htmlparser->parse(LWP::Simple.get()); and search stuff on it with $xmldoc.elements(search pattern); but it's... slow
13:45 El_Che Hi, pretty basic question: To get GNU type command line parameters through sub MAIN. Is it ok to duplicate something like this in the parameter signature: sub MAIN( Bool :$debug = False, Bool :$d = $debug) { }
13:45 El_Che I want the --debug and the -d as synonimes
13:46 moritz Bool :d(:$debug)  but I don't know if that's implemented
13:46 psch m: sub f(:$d($debug)) { say $d }; f :debug; f :d
13:46 camelia rakudo-moar 43e9d3: OUTPUT«5===SORRY!5=== Error while compiling /tmp/tgCOI9zXnA␤Shape declaration with () is reserved;␤  please use whitespace if you meant a subsignature for unpacking,␤  or use the :() form if you meant to add signature info to the function's type␤at /t…»
13:46 telex joined #perl6
13:46 psch m: sub f(:d($debug)) { say $d }; f :debug; f :d
13:46 camelia rakudo-moar 43e9d3: OUTPUT«5===SORRY!5=== Error while compiling /tmp/3hhYOPqVGw␤Variable '$d' is not declared␤at /tmp/3hhYOPqVGw:1␤------> 3sub f(:d($debug)) { say 7⏏5$d }; f :debug; f :d␤»
13:46 zengargoyle ^^ moritz
13:46 zengargoyle it's worked for me before
13:46 psch oh, long form only i think
13:46 moritz m: sub MAIN( Bool :d(:$debug) ) { }
13:46 camelia rakudo-moar 43e9d3: ( no output )
13:46 moritz zengargoyle: ^^
13:46 El_Che (my naive example does not work)
13:47 moritz m: sub MAIN( 42, Bool :d(:$debug) ) { }
13:47 camelia rakudo-moar 43e9d3: OUTPUT«Usage:␤  /tmp/clP0hPreLg [-d|--debug] 42 ␤»
13:47 moritz at least for the help text it recognizes both
13:47 Skarsnik there is not something like getopt?
13:47 Actualeyes joined #perl6
13:47 psch yeah, having both variables on the inside isn't supported
13:47 psch that's where i went wrong in my example
13:48 moritz Skarsnik: so far nobody seems to have bothered to write one
13:48 zengargoyle there's some sort of getopt module, haven't looked at it.
13:49 arnsholt Well, sub MAIN covers most of your basic getopt needs
13:49 zengargoyle but MAIN style forces --flag=value vs --flag value
13:49 El_Che the sort notation *is* pretty basic
13:49 moritz there's nothing wrong with writing a Getopt module for the ecosystem.
13:50 psch there's also a bitrotten PR around somewhere that uses a grammar to parse the CLI opts
13:50 El_Che true, but a built-in for something like that is a big win
13:50 psch ...bitrotted?
13:50 El_Che certainly for small command line applications
13:51 moritz El_Che: which is why MAIN is built in :-)
13:51 moritz and it's built in because it integrates tightly with the language
13:51 psch https://github.com/rakudo/rakudo/pull/324 in case anyone wants to pick this up, i might give it another go in a few weeks too if no one else does
13:51 moritz a generic option parser doesn't
13:51 El_Che moritz: have you met UNIX sysadmins? they are lazy so they use the short switches :)
13:51 psch it kind of got warnocked back then, thanks for moritz++ at least to comment :)
13:52 moritz fwiw I still think it's dumb to join things just to reparse them later on :/
13:53 psch i don't disagree in general, but i haven't found a better solution there...
13:54 psch well, "hadn't found a better solution".  i didn't really spend any time on it again after "lets wait what other devs say" :)
13:55 zengargoyle what does ++BUG ++/BUG enable/do?
13:55 ShimmerFairy fwiw, I thought we agreed the ++BUG stuff was silly and shouldn't be around anymore :)
13:55 zengargoyle i've seen it mentioned a few times, but not IRL
13:56 psch ShimmerFairy: if we did that was probably after 2014-10-25 :)
13:56 moritz zengargoyle: it's meant to do some namespacing
13:56 moritz zengargoyle: like, options for different subsystems
13:57 ShimmerFairy psch: it was :) . The consensus as I recall was that it's awkward, its purpose is unclear (the most useful idea for it, ++BUG, is never elaborated on), and it probably was one of those "I bet this would be cooool!" things :)
13:57 arnsholt psch: From the looks of it, it should be possible to parse an argument list using just a variable to keep track of whether you're inside a delimited argument list or not
13:57 arnsholt Since it looks like they don't really nest
13:58 ShimmerFairy I'd much prefer ImageMagick's use of simple ol' parentheses to group together objects, if we needed core Perl 6 to do it in the first place :)
13:59 ShimmerFairy arnsholt: actually, S19 does allow for nesting, by add more pluses!
13:59 ShimmerFairy *adding
13:59 moritz so you need a stack of delimiters
13:59 moritz so, parse with small PDA
14:01 ShimmerFairy Honestly, unless someone can come up with a real justification for the ++FOO ++/FOO stuff, I think the best course of action is to take that outdated cruft out of S19, and let modules handle that kind of desired option parsing. Core Perl 6 certainly hasn't needed it.
14:03 masak agree, but ++FOO ++/FOO is only a symptom of the real ailing S19 is suffering.
14:03 psch well, ++BUG was intended for debuggers, which could already be hooked up with e.g. Debugger::CommandLine
14:03 psch whether it's actually useful or not is a different question
14:03 masak which is that it tried to lead the way by being visionary. then reality largely caught up, and S19 hasn't updated.
14:03 masak S19 is perhaps the synopsis currently the most fleshed out and then out-of-date.
14:04 psch anyway, i don't really have any chips in that pot, i just wanted to link to an approach that exists in case its of use for anyone
14:04 ShimmerFairy psch: to clarify my request for justification, is there something in our current implementation that's dying for that kind of namespacing/nesting
14:04 psch ShimmerFairy: that sounds like a circular argument to me.  "we don't need this feature because we don't use it yet"
14:05 ShimmerFairy masak: yeah, I've typically found the higher-numbered synopses have suffered more from being out-of-date :)
14:05 masak I'd really like to see an updated S19, but I don't have the energy/tuits to make it happen.
14:05 ShimmerFairy psch: I mean in terms of "# XXX Could really use ++FOO here", in the same that, say, src/core/MAIN.pm had those kinds of notes about allomorphs.
14:05 masak the best I can offer is to stand by the sidelines, cheer, and review the edits of whoever does.
14:05 masak I suggest many small iterations.
14:06 masak I'd be delighted if S19 also took on the spec'ing of flags to *scripts*, which to me seems much more important than the ++FOO business
14:06 masak i.e. what I mentioned the other day with -e'1' vs -e='1'
14:07 * zengargoyle commutes &
14:08 skids joined #perl6
14:08 El_Che ugly workaround for my use case: sub MAIN( Bool :$debug?, Bool :$d?) { my Bool $debug_i = ($debug.defined or $d.defined) ?? True !! False; say $debug_i }
14:08 El_Che it feels like unpacking @_
14:08 * El_Che ducks
14:09 El_Che (of course, it will explode for things like Str values)
14:09 * flussence sometimes wishes he could throw most arg-parsers in a fire and replace with something better, not just p6's
14:09 Skarsnik the xml module is annying me to no end xD
14:09 flussence (I've used a lot of ffmpeg...)
14:09 psch ShimmerFairy: i suppose that's a fair point.  i didn't see any spot where that'd be the case, but i'm not poking around in MAIN.pm or thereabout much recently
14:10 masak today's topic: annoyances :)
14:10 psch El_Che: nameds are optional by default.  also, did you see moritz++' :d(:$debug) example?
14:10 ShimmerFairy El_Che: AFAIK, :d(:$debug)  will support both on the command-line (and anything else that calls the sub), it's just that you only have a $debug variable declared in the signature
14:11 ShimmerFairy which means you won't have $d available in MAIN() { }, but that shouldn't be too much of an issue I don't think :)
14:11 psch and if you want $d just do :debug(:$d) :P
14:11 El_Che let's see
14:12 ShimmerFairy flussence: I can't help but wonder if step 1 in fixing arg-parsers is telling shells not to "help" us by splitting on /\s+/  :P
14:12 RabidGravy I'm almost certainly being very dumb here but:
14:12 RabidGravy m: grammar Foo { regex TOP { <e>* }; regex e { \{ } }; say Foo.parse(q%http://example.com/~{username}/%);
14:12 camelia rakudo-moar 43e9d3: OUTPUT«(Any)␤»
14:13 RabidGravy how do I match a '{' in a string
14:13 psch m: say 'string{' ~~ / \{ /
14:13 camelia rakudo-moar 43e9d3: OUTPUT«「{」␤»
14:13 AlexDaniel pmurias: having a REPL in a web browser is the best idea, IMO
14:14 psch m: say 'string{foo}' ~~ / '{' ~ '}' .+ / # trying to anticipate the follow-up question...
14:14 camelia rakudo-moar 43e9d3: OUTPUT«「{foo}」␤»
14:15 El_Che :d($debug) throws a
14:15 psch RabidGravy: the grammar doesn't parse it because it wants to fit the whole Str afair
14:15 psch m: grammar Foo { regex TOP { <e>* }; regex e { \{ } }; say Foo.subparse(q%http://example.com/~{username}/%);
14:15 camelia rakudo-moar 43e9d3: OUTPUT«「」␤»
14:15 El_Che Use of uninitialized value $debug of type Any in string context
14:15 psch El_Che: the alias needs to be named too
14:15 psch :d(:$debug)
14:15 psch not :d($debug)
14:16 El_Che yes, that's what I have in my code
14:16 RabidGravy psch, told you I was being dumb
14:16 flussence ShimmerFairy: I think there'd be riots in the streets if we started changing things from under the hardcore bash users (those exist :)
14:16 RabidGravy got hung up on the '{' and didn't notice the actual problem
14:17 ShimmerFairy flussence: as long as Perl 5 still has to check for shells that think true is false, I'm not sure we should put too much faith in what shells and their users think :P
14:18 El_Che psch: http://paste.ubuntu.com/13238598/
14:18 psch El_Che: it works locally, as here https://gist.github.com/pe​schwa/1dc68ed6c8675320e7b8
14:18 psch ah
14:18 psch but not passing it doesn't set it false locally
14:19 psch just unitialized
14:19 psch yeah, that's the same issue
14:20 El_Che psch: thx!
14:20 duncan_dmg joined #perl6
14:20 El_Che psch: I set the default to false and it works like intended
14:21 psch El_Che: typing as Bool is probably the best bet.  it's still somewhat iffy (in that you need -/d to get an actual False)... or add a default, yes
14:21 psch m: say ?Bool
14:21 camelia rakudo-moar 43e9d3: OUTPUT«False␤»
14:21 El_Che it's a little non-obvious though. Should it be documented somewhere?
14:23 sprocket joined #perl6
14:23 raiph joined #perl6
14:24 El_Che I may be an old unix graybeard, but It's looks pretty important to me :)
14:26 psch well, if you declare it a Bool opt it behaves properly in semantically fitting context
14:27 psch but yeah, it kind of creates a "if $option { #`[[ do option things ]] }" pattern for nameds to MAIN
14:28 psch well, unless you make them required
14:28 mr_ron joined #perl6
14:31 Skarsnik hm, is 'lookfor' is a good name for a method that try to find XML::Element on an XML::Element according to a query.
14:33 donaldh https://github.com/rakudo/rakudo/pull/582
14:33 Skarsnik eg: my $extradiv = $storydiv.lookfor(:TAG<div>, :class<extra_story_data>, :SINGLE); (it's just a shortcut for $storydiv.elements(:TAG<div>, :class<extra_story_data>, :SINGLE, :RECURSE);)
14:33 donaldh ^ Fixes build on JVM.
14:33 El_Che just a last question about the built-in command line parsing magic. Can I call the builtin-usage myself (ie. with no user provided sub USAGE {}). I think e.g. for doing some basic parameter checking and callig a bsic USAGE when needed.
14:34 El_Che (I know I can create an USAGE myself, just looking for shortcuts, like in the case when a certain parameter required except when you use --help or --version and the like)
14:36 psch El_Che: make the parameter required and add a multi candidate the only takes --help?
14:36 dalek rakudo/nom: 1a7af1a | donaldh++ | Configure.pl:
14:36 dalek rakudo/nom: Unbust Makefile generation in Configure.pl.
14:36 dalek rakudo/nom:
14:36 dalek rakudo/nom: fill_template_file was getting called before the common_bootstrap_sources had been read.
14:36 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/1a7af1a5e3
14:36 dalek rakudo/nom: 25f032a | FROGGS++ | Configure.pl:
14:36 dalek rakudo/nom: Merge pull request #582 from donaldh/configure
14:36 dalek rakudo/nom:
14:36 dalek rakudo/nom: Unbust Makefile generation in Configure.pl.
14:36 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/25f032a331
14:36 psch s/the/that/
14:37 El_Che I'll try that. I though that would make the USAGE output incorrect
14:37 psch USAGE lists every candidate
14:38 psch although it doesn't note if a named is required, which it maybe should
14:38 El_Che It looks like someone thought hard about this stuff :)
14:38 RabidGravy okay, so this might be my last stupid grammar question for the day
14:39 jdv79 if i use fatal can i unuse it in a lower scope?
14:40 El_Che psch (and *): that's for your effort. It works indeed as designed
14:40 perlawhirl joined #perl6
14:40 xpen joined #perl6
14:41 El_Che If I need to document the alias for short options, ping. I am pretty sure I am not the only one that will hit that bump.
14:41 RabidGravy assuming I have a rule that matches a thingy of the form '{term:1}' and its friends in <expression>, how would I match "http://example.com/dictionary/{term:1}/{term}" say?
14:43 El_Che I will write a small blog post about it in the meantime
14:43 RabidGravy obviously .*<expression>+.* only gets the first expression
14:44 zengargoylew joined #perl6
14:45 sjn r: say .^methods # could be more useful?
14:45 camelia rakudo-moar 43e9d3: OUTPUT«(Method+{<anon|66845920>}.new Method+{<anon|66845920>}.new Method+{<anon|66845920>}.new cache Method+{<anon|66845920>}.new Method+{<anon|66845920>}.new Method+{<anon|66845920>}.new Method+{<anon|66845920>}.new Method+{<anon|66845920>}.new Method+{<anon|668…»
14:45 camelia ..rakudo-jvm 3d7f84: OUTPUT«(Method+{<anon|1848417011>}.new Method+{<anon|1848417011>}.new Method+{<anon|1848417011>}.new cache Method+{<anon|1848417011>}.new Method+{<anon|1848417011>}.new Method+{<anon|1848417011>}.new Method+{<anon|1848417011>}.new Method+{<anon|1848417011>}.new Me…»
14:46 RabidGravy like
14:46 psch m: say 'abc {ABC} def {DEF}' ~~ / [ $<a>=['{' ~ '}' <-[{]>+] ]+ % <-[{]>+/ # ..?
14:46 camelia rakudo-moar 43e9d3: OUTPUT«「{ABC} def {DEF}」␤ a => 「{ABC}」␤ a => 「{DEF}」␤»
14:47 RabidGravy m: say .^methods>>.name # like
14:47 camelia rakudo-moar 43e9d3: OUTPUT«(EXISTS-KEY DELETE-KEY DELETE-POS cache list flat eager List Slip Array hash Hash elems end keys kv values pairs antipairs invert pick roll iterator classify categorize rotor reverse combinations permutations join nodemap duckmap deepmap tree push append u…»
14:47 psch m: say 'abc {ABC} def {DEF}' ~~ / [ $<a>=['{' ~ '}' .+?] ]+ % <-[{]>+/ # bit more concise
14:47 camelia rakudo-moar 43e9d3: OUTPUT«「{ABC} def {DEF}」␤ a => 「{ABC}」␤ a => 「{DEF}」␤»
14:47 Skarsnik hm, what operator I need to overload to write my T $t; $t{'stuff'} (same for <> I guess?)
14:48 psch Skarsnik: no operator, method AT-KEY
14:48 psch Skarsnik: http://doc.perl6.org/langua​ge/subscripts#Custom_types
14:48 xenu 15:33 < donaldh> https://github.com/rakudo/rakudo/pull/582
14:48 xenu whoops, sorry about breaking that
14:49 xenu for*
14:49 Skarsnik thx psch
14:50 RabidGravy psch, this is why I shouldn't be allowed near grammars my poor branes can't parse that at all
14:52 RabidGravy but I think the '  % <-[{]>+' is what I am looking for
14:53 psch RabidGravy: https://gist.github.com/pe​schwa/02e594f87303f2ddd9c2
14:54 psch well, minus the off-by-one for the group positions :P
14:56 RabidGravy cheers, let me have a look
14:57 PerlJam psch: In P5-land there's a module called YAPE::Regex::Explain.   IF such a thing existed in P6-land, that could have saved you some time :)
14:58 donaldh https://github.com/rakudo/rakudo/pull/583
14:58 donaldh ^ FIxes noisy Configure.pl on JVM
15:04 khw joined #perl6
15:04 Moskon joined #perl6
15:06 Mouq joined #perl6
15:09 Moskon2 joined #perl6
15:13 dalek perl6-roast-data: 5a55032 | coke++ | / (9 files):
15:13 dalek perl6-roast-data: today (automated commit)
15:13 dalek perl6-roast-data: review: https://github.com/coke/perl6​-roast-data/commit/5a550329fd
15:13 psch PerlJam: yeah, that might be a cool thing to have eventually
15:14 psch PerlJam: for it's not yet at the point where (wanting to) explain regexen happens often enough that i'd save time by writing it... :)
15:15 PerlJam yeah.  same here.  I've thought about it off and on for a few years now and it's never bubbled up to the stage where I want to actually do it.
15:15 RabidGravy psch, cheers matey with your decisive input I got it:
15:16 RabidGravy m: my regex expression { '{' .+? '}' }; my regex bits { <-[{]>+ }; say 'abc {ABC} def {DEF} ghi' ~~ / <bits> <expression>+ %% <bits>/
15:16 camelia rakudo-moar 25f032: OUTPUT«「abc {ABC} def {DEF} ghi」␤ bits => 「abc 」␤ expression => 「{ABC}」␤ bits => 「 def 」␤ expression => 「{DEF}」␤ bits => 「 ghi」␤»
15:20 pippo joined #perl6
15:20 pippo o/ #perl6!
15:20 zengargoylew hrm... class HTTP::Header does Associative is Iterable { ...   # would thing it does Iterable
15:21 jdv79 is there a way to "no fatal"?
15:21 b2gills m: 'a b'.words.map: -> $a?,$b? { say $a,$b}
15:21 zengargoylew or is HTTP::Header really a sub-class of Iterable in that example?
15:21 camelia rakudo-moar 25f032: OUTPUT«(timeout)ab␤(Mu)(Mu)␤(Mu)(Mu)␤(Mu)(Mu​)␤(Mu)(Mu)␤(Mu)(Mu)␤(Mu)(Mu)␤(Mu)(Mu)␤(Mu)(M​u)␤(Mu)(Mu)␤(Mu)(Mu)␤(Mu)(Mu)␤(Mu)(Mu)␤(Mu)(​Mu)␤(Mu)(Mu)␤(Mu)(Mu)␤(Mu)(Mu)␤(Mu)(Mu)␤(Mu)​(Mu)␤(Mu)(Mu)␤(Mu)(Mu)␤(Mu)(Mu)␤(Mu)(Mu)␤…»
15:24 brrt joined #perl6
15:26 jnthn jdv79: Yes, "no fatal;" :)
15:26 jnthn m: say (try { +'beer' }).WHAT; say $!;
15:26 camelia rakudo-moar 25f032: OUTPUT«Nil␤Cannot convert string to number: base-10 number must begin with valid digits or '.' in '7⏏5beer' (indicated by 7⏏)␤  in block <unit> at /tmp/aNmZVeciIv:1␤␤»
15:26 jnthn m: say (try { no fatal; +'beer' }).WHAT; say $!;
15:26 camelia rakudo-moar 25f032: OUTPUT«(Failure)␤(Any)␤»
15:26 jnthn Works fine :)
15:27 jdv79 yes.  thanks.  my fault.
15:28 jnthn :)
15:29 dalek rakudo/nom: d510899 | donaldh++ | Configure.pl:
15:29 dalek rakudo/nom: Fix noisy Configure.pl on JVM backend.
15:29 dalek rakudo/nom:
15:29 dalek rakudo/nom: was complaining with:
15:29 dalek rakudo/nom: Use of uninitialized value {sysroot} in concatenation (.) or string at Configure.pl line 229.
15:29 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/d510899fcf
15:29 dalek rakudo/nom: 3b15628 | jnthn++ | Configure.pl:
15:29 dalek rakudo/nom: Merge pull request #583 from donaldh/noisy
15:29 dalek rakudo/nom:
15:29 dalek rakudo/nom: Fix noisy Configure.pl on JVM backend.
15:29 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/3b15628a72
15:35 gtodd joined #perl6
15:43 gtodd Util:  what is the state of bluetiger ( perl5 to 6 converter script) these days? I assume it doesn't work perfectly .. happily so due to accelerated advance to Xmas :-)  but I remember it being pretty good !
15:43 domidumont joined #perl6
15:47 RabidGravy gtodd, see also DrForr's Perl::ToPerl6
15:47 El_Che I love memes as the next guy, but I don't think it has it's place in the standard documentation: http://doc.perl6.org/language​/classtut#I_can_haz_state%3F
15:50 gtodd RabidGravy: cool thanks!  Maybe a deluxe set of those kind of tools is maybe more of a post Xmas thing :-)
15:50 tokuhiro_ joined #perl6
15:51 * DrForr pricks up his ears.
15:51 gtodd esp. with Inline::Perl5 the perlitos etc.
15:51 flussence El_Che: you're right, but you're also the only person who's complained in 3 years apparently :)
15:51 gtodd ... the neat thing about bluetiger was it written in perl5  (correct?) so one could be learning perl6 and using one's perl5 at the same time
15:52 DrForr So's Perl::ToPerl6 :)
15:53 El_Che flussence: I'll do a PR
15:53 RabidGravy and it works (though I haven't looked for a while :)
15:53 El_Che and let's the powers that be decide :)
15:54 lostinfog joined #perl6
15:54 gtodd DrForr: :-)
15:56 RabidGravy psch, in case you were curious where all that was going  it was for https://github.com/jonathanstowe/URI-Template - the grammar thing is all worky now :)
15:56 gtodd DrForr: was Perl::Perl6 a less difficult task than it might seem?  perl6 is so ... organized ... with ermm ... a grammar of itself  (?!)
15:57 brrt can i use q:x in an if statement
15:57 brrt i'm doing
15:57 brrt if q:x(dot -Tx11 foo.dot) { say "OK" }
15:57 brrt and, it doesn't work
15:57 jnthn It's probably the parens
15:58 brrt in the q:x
15:58 jnthn Try a different quoter?
15:58 brrt ?
15:58 jnthn m: say q(hi)
15:58 camelia rakudo-moar 3b1562: OUTPUT«5===SORRY!5=== Error while compiling /tmp/KTBM63mHj4␤Undeclared routines:␤    hi used at line 1␤    q used at line 1␤␤»
15:58 jnthn foo(...) will be interpreted as a function call
15:58 flussence El_Che: thinking about it, I kinda agree now might be a good time to tidy things up. having random lolcat references is effective for repelling unsavoury people but... lolcats have their own programming language. And I think we can come up with something better to reference :D
15:58 brrt oh, right
15:59 brrt i was thinking of perl5 qw()
15:59 gtodd DrForr:  I am half expecting something like a switch for Perl::Tidy one day:  perltidy --5to6
15:59 DrForr That'll never happen, at least at perltidy's level of fidelity.
16:01 gtodd DrForr: yeah ... and probably people will get by  without it :)
16:01 DrForr Moving whitespace around is one thing, moving operators is harder but doable. Strings are rough, especially when you consider interpolation.
16:01 El_Che flussence: a theme is nice to keep a narrative. But in this case, we're making it too easy for trolls and people with prejudices
16:01 El_Che ;)
16:02 pmurias joined #perl6
16:04 hoelzro good morning #perl6
16:04 jdv79 is there a way to get {map...} to not become a block?
16:04 jdv79 {} is quite nicer than Hash.new()
16:04 jdv79 when it works
16:04 jnthn %(...) is another alternative
16:04 stmuk ok pl6anet.org has a simple google custom search box (based on perl6 urls with rss feeds)
16:05 jdv79 ah
16:05 stmuk maybe of some use
16:06 jnthn m: say hash { map { $_ => $_ * 2 }, 1..10 } # maybe this
16:06 camelia rakudo-moar 3b1562: OUTPUT«Odd number of elements found where hash initializer expected␤  in block <unit> at /tmp/vnOU4HdLVL:1␤␤»
16:06 jnthn Or not :)
16:06 jnthn m: say  %( map { $_ => $_ * 2 }, 1..10 ) # should work nicely
16:06 camelia rakudo-moar 3b1562: OUTPUT«1 => 2, 10 => 20, 2 => 4, 3 => 6, 4 => 8, 5 => 10, 6 => 12, 7 => 14, 8 => 16, 9 => 18␤»
16:07 pmurias_ joined #perl6
16:09 jdv79 ah.  i get why i was confused a bit
16:09 jdv79 m: Hash.new(map {$_,$_*2},1,2,3).perl.say
16:09 camelia rakudo-moar 3b1562: OUTPUT«{"1" => 2, "2" => 4, "3" => 6}␤»
16:09 jdv79 m: %(map {$_,$_*2},1,2,3).perl.say
16:09 camelia rakudo-moar 3b1562: OUTPUT«Odd number of elements found where hash initializer expected␤  in block <unit> at /tmp/cxnwFbZ6uW:1␤␤»
16:10 jdv79 nice inconsistency type deal
16:10 jdv79 got it though, thanks
16:10 ely-se joined #perl6
16:12 jnthn m: %(map {|($_,$_*2)},1,2,3).perl.say
16:12 camelia rakudo-moar 3b1562: OUTPUT«{"1" => 2, "2" => 4, "3" => 6}␤»
16:12 xfix joined #perl6
16:13 ambs suggestion regarding perl6.org, make the link to http://rakudo.org/downloads/star/ apper somewhere else than under Windows section, as it includes source tarballs as well
16:13 ambs or if users follow the suggestion in the download page will get an outdated version: curl -O http://rakudo.org/downloads/st​ar/rakudo-star-2015.02.tar.gz
16:13 ambs when 2015.07 is available
16:14 stmuk is anyone actively maintaining docker builds of star?  hub.docker.com has a bunch
16:14 hoelzro stmuk: I am
16:14 hoelzro there's an official docker build
16:15 hoelzro https://hub.docker.com/_/rakudo-star/
16:15 stmuk hoelzro++
16:17 PerlJam hoelzro++ nice
16:18 stmuk that probably should be on http://rakudo.org/how-to-get-rakudo/
16:18 zakharyas joined #perl6
16:18 jnthn m: say ""
16:18 camelia rakudo-moar 3b1562: OUTPUT«␤»
16:18 stmuk or that page basically imported onto perl6.org otherwise
16:19 jnthn m: use Test; is q :heredoc :c "EOF", "2+3=5\n", ':c applied after :heredoc has effect';␤    2+3={2+3}␤    EOF␤
16:19 camelia rakudo-moar 3b1562: OUTPUT«not ok 1 - :c applied after :heredoc has effect␤␤# Failed test ':c applied after :heredoc has effect'␤# at /tmp/Nh_kzYhb5k line 1␤# expected: '2+3=5␤# '␤#      got: '2+3={2+3}␤# '␤»
16:19 jnthn m: use Test; is q :heredoc :w "EOF", <omg wtf bbq amazing cat>, ':w applied after :heredoc has effect';␤    omg wtf bbq␤    amazing cat␤    EOF␤
16:19 camelia rakudo-moar 3b1562: OUTPUT«5===SORRY!5=== Error while compiling /tmp/3qOIP9D1VX␤Heredoc adverb must be the last one␤at /tmp/3qOIP9D1VX:1␤------> 3use Test; is q :heredoc :w7⏏5 "EOF", <omg wtf bbq amazing cat>, ':w a␤»
16:21 yqt joined #perl6
16:22 dalek doc: aa50021 | (Steve Mynott)++ | doc/Language/faq.pod:
16:22 dalek doc: faq reference to official rakudo star docker image
16:22 dalek doc: review: https://github.com/perl6/doc/commit/aa50021177
16:26 Skarsnik hm, how I pass NULL to a nativecall function?
16:26 hoelzro Skarsnik: if the parameter is a char *, I believe just passing Str will do it
16:27 hoelzro I think any type object is marshalled as NULL
16:27 jdv79 m: (my $a, my $b) = 1,2; say $a; say $b; # ok
16:27 camelia rakudo-moar 3b1562: OUTPUT«1␤2␤»
16:27 jdv79 m: (my $a, my \b) = 1,2; say $a; say b; # huh?
16:27 camelia rakudo-moar 3b1562: OUTPUT«5===SORRY!5=== Error while compiling /tmp/a3lsxqkNL7␤Term definition requires an initializer␤at /tmp/a3lsxqkNL7:1␤------> 3(my $a, my \b7⏏5) = 1,2; say $a; say b; # huh?␤»
16:28 jnthn jdv79: You can't list-assign to a \foo
16:28 jdv79 :( ok
16:28 jnthn jdv79: It's a "single static assignment" form and needs the initializer placed directly upon it
16:29 jnthn There's an RT from someone who wants it to work, but there's not an obvious way to do so.
16:29 jdv79 semantically it is, isn't it?
16:29 jnthn Either way, it's not getting addressed this side of 6.c
16:29 jdv79 ok, so maybe later but its on purpose kinda
16:30 jnthn If we make anything work, then it will be my ($a, \b) = 1, 2
16:30 jnthn Note that you can sig-bind
16:30 jnthn m: my ($a, \b) := 1, 2; say $a; say b;
16:30 camelia rakudo-moar 3b1562: OUTPUT«1␤(Any)␤»
16:30 jnthn heh, or I thought you could :)
16:31 jnthn That one probably should work already
16:31 jnthn But my ($a, $b) = 1, 2; actually desugars to my $a; my $b; ($a, $b) = 1, 2;
16:31 jdv79 oh ok
16:31 jnthn At which point you can see why it's a bit tricky to handle :)
16:32 jdv79 i should probably look at the ast once in a while
16:32 jdv79 yes
16:32 jdv79 thanks
16:32 jnthn np
16:32 ZoffixW joined #perl6
16:32 jnthn It's one of those things that visually looks like it wants to work some day... :)
16:32 ZoffixW ambs, do you mean suggestion for http://rakudo.org/how-to-get-rakudo/ and not http://perl6.org?
16:32 dalek rakudo/nom: 8d4da82 | jnthn++ | src/Perl6/Grammar.nqp:
16:32 dalek rakudo/nom: Apply adverbs after :heredoc/:to to herelang.
16:32 dalek rakudo/nom:
16:32 dalek rakudo/nom: This means they affect the language that we parse inside the heredoc,
16:32 dalek rakudo/nom: which is rather more useful than affecting the language we parse the
16:32 dalek rakudo/nom: heredoc terminator with.
16:32 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/8d4da82fb9
16:33 jdv79 i tried the my ($a,\b) and assumed it my () was wrong
16:33 dalek roast: 7a7165d | jnthn++ | S02-literals/quoting.t:
16:33 dalek roast: Tests for RT #120788.
16:33 dalek roast: review: https://github.com/perl6/roast/commit/7a7165d31c
16:33 jdv79 s/it/the/
16:33 jnthn Another xmas RT down :)
16:33 jdv79 woohoo@
16:33 jdv79 !
16:33 ZoffixW jnthn++
16:34 jnthn That one was actually less hard to fix than I was fearing. :)
16:34 ZoffixW ambs, I think it's fine the way it is for the reason that the *nix section mentions the system's package manager and then suggests building from source due to current rapid releases. And the instructions in Build from Source fetch fresh sources from git
16:35 dalek roast: 98520ce | jnthn++ | integration/advent2013-day04.t:
16:35 dalek roast: Unfudge now-passing todo heredoc test.
16:35 dalek roast: review: https://github.com/perl6/roast/commit/98520ce075
16:36 jnthn ZoffixW: It'd probably be nice if we had a shiny "get Perl 6" page right on perl6.org rather than linking away from it
16:36 gtodd jdv79: so %(map {$_,$_*2},1,2,3) is trying to make a hash before the mapping happens and Hash.new(map {$_,$_*2},1,2,3) makes the hash out of the map ? or ??
16:36 jnthn ZoffixW: With a direct link to the MSI
16:36 ambs ZoffixW: exactly that page, sorry, didn't notice the redirection
16:36 Skarsnik Interesting, I need to write is export { * } if I put no space before the { (aka is export{) it complain for a missing block x)
16:36 gtodd jdv79: just trying to make what might appear to be an inconsistency seem ... erm .. sensible
16:36 ribasushi joined #perl6
16:37 dalek roast: 82c7b6b | jnthn++ | integration/advent2013-day04.t:
16:37 dalek roast: Remove no-longer-needed line endings hack.
16:37 dalek roast: review: https://github.com/perl6/roast/commit/82c7b6b1fb
16:38 ZoffixW jnthn, but that'd only apply to Windows users :P
16:38 jnthn ZoffixW: Well, and appropriate other things for other platforms
16:38 jnthn ZoffixW: Like, tabs/headings by OS or so
16:39 Skarsnik m: sub foo is export{}; foo();
16:39 camelia rakudo-moar 3b1562: OUTPUT«5===SORRY!5=== Error while compiling /tmp/vTKguZ22Al␤A unit-scoped sub definition is not allowed except on a MAIN sub;␤Please use the block form.␤at /tmp/vTKguZ22Al:1␤------> 3sub foo is export{};7⏏5 foo();␤»
16:39 Skarsnik m: module A {sub foo is export{ say "hi"}}; foo();
16:39 camelia rakudo-moar 3b1562: OUTPUT«5===SORRY!5=== Error while compiling /tmp/M8bBbam4nt␤Missing block␤at /tmp/M8bBbam4nt:1␤------> 3module A {sub foo is export{ say "hi"}7⏏5}; foo();␤    expecting any of:␤        new name to be defined␤»
16:40 Skarsnik m: module A {sub foo is export { say "hi"}}; foo();
16:40 camelia rakudo-moar 3b1562: OUTPUT«5===SORRY!5=== Error while compiling /tmp/oRSIfzcYlT␤Undeclared routine:␤    foo used at line 1␤␤»
16:40 jnthn Skarsnik: Yes, the curlies probably get parsed as a postcircumfix on export
16:40 ambs ZoffixW: a link to that folder of releases in the "Manual installation" wouldn't hurt :)
16:40 Skarsnik is that a bug?
16:40 jnthn No
16:40 jnthn It's the reason is export(:foo, :bar) parses
16:41 jnthn It works just like the colon pair syntax
16:42 jnthn m: sub foo(:&bar) { bar() }; foo :bar{ say 'hi' }
16:42 camelia rakudo-moar 3b1562: OUTPUT«hi␤»
16:42 jnthn So you could use it to pass a block to a trait_mod
16:42 pmurias_ jnthn: other than IO/concurrency/introspecting unicode/runtime module loading are there things that I should avoid having on the list of roast tests that should work on rakudo-js?
16:43 jnthn pmurias: Well, other OS interaction maybe
16:43 jnthn pmurias: If you're going in the "focus on the in-browser use case" direction
16:43 Skarsnik I still don't know see why x) ( and { are not the same. or could I write is export{some block} {sub def} ?
16:44 pmurias jnthn: the "in-browser use case" seems to be what the people want
16:44 hoelzro pmurias: that reminds me to comment on your post =)
16:44 jnthn pmurias: *nod*
16:44 dalek doc: b9ed04d | u0097636@kuleuven.be++ | doc/Language/classtut.pod:
16:44 dalek doc: Replace lolcat by neutral title
16:44 dalek doc: review: https://github.com/perl6/doc/commit/b9ed04dc06
16:44 dalek doc: 51a087c | (Zoffix Znet)++ | doc/Language/classtut.pod:
16:44 dalek doc: Merge pull request #196 from nxadm/master
16:44 dalek doc:
16:44 dalek doc: Replace lolcat by neutral title
16:44 dalek doc: review: https://github.com/perl6/doc/commit/51a087cfd8
16:44 hoelzro or should I just leave feedback with you here on IRC?
16:44 pmurias hoelzro: what's more convinient for you
16:44 hoelzro here, tbh =)
16:44 jnthn Skarsnik: You could write that, yes, though the export trait doesn't actually know what to do other a block
16:45 hoelzro pmurias: I guess I would just echo the desire for browser stuff; that's what got me working on nqp-js the little bit I have
16:45 jnthn pmurias: MoarVM's oplist basically is a complete set of "things the runtime has to provide"
16:45 jnthn pmurias: So you could look through that too :)
16:45 RabidGravy pmurias, I'm holding out for the couchdb query server myself ;-)
16:46 colomon joined #perl6
16:46 Skarsnik jnthn, I don't want to be annoying, but should a better error message could be nice? I mean it's not really obvious a missing whitespace here make it fail x)
16:47 jnthn std: sub foo is export{1}
16:47 camelia std : OUTPUT«No such file or directory»
16:47 jnthn aww
16:47 jnthn :)
16:47 ZoffixW jnthn, that would require some sort of code to mirror the content and only Windows users benefit since on other platforms Rakudo's site recommends using perlbrew.
16:47 * ZoffixW leaves that to better minds to solve
16:47 camelia std : OUTPUT«(timeout)cat: /home/camelia/std/snap/revision: No such file or directory␤»
16:47 jdv79 gtodd: thanks.  i'm still not used to p6's list handling
16:47 jnthn Was going to see if STD did a better error there, but not sure it does
16:48 jnthn Skarsnik: Perhaps so, though you learn pretty quickly in Perl 6 to not be cheap with whitespace around infixes and anything that could be taken as the start of a postfix. :)
16:49 jnthn Skarsnik: Feel free to file it as an LTA error. We can probably work something out.
16:51 gtodd jdv79: I don't know for sure if I am correct ?
16:53 jdv79 not sure.  its but a drop in the bucket of what i'm doing so i moved on or i'll never finish.
16:53 jdv79 thanks though!
16:54 AlexDaniel joined #perl6
16:55 pmurias sp_* ops are spesh ones?
16:56 jnthn pmurias: yes, you can ignore everything once you reach those
16:56 jnthn (Since they're not allowed in bytecode files)
16:59 pmurias most of the ones in MoarVM seem familiar, some of the p6* ones in rakudo seem less obvious
16:59 mr_ron joined #perl6
17:00 jnthn pmurias: I'd not worry about those
17:00 jnthn pmurias: They are mostly bits of control flow trickery, signature binding interaction, and so forth.
17:00 jnthn pmurias: Or to improve code-gen
17:00 jnthn pmurias: They don't do I/O and so forth
17:01 jdv79 is there a way to index into a pos or assoc container with the same syntax?
17:03 jnthn No; we don't confuse the two (and some objects can provide both)
17:03 psch you can try both in sequence at best
17:03 jdv79 that's what i'm doing.  just trying to tersen it up a bit
17:03 jdv79 ok
17:04 kjs_ joined #perl6
17:04 jdv79 Perl6 refuses to be as confused as me.  I guess that's a good thing;)
17:05 pmurias a lot of the more complex features seem to be built out of simpler building blocks and code in the setting, so assuming I get the building blocks right a lot of the more complex Perl 6 features should just work?
17:06 jnthn pmurias: Yes
17:06 jnthn pmurias: A lot of complexity lies in the compiler too, written in NQP
17:07 jnthn pmurias: Experience has been that getting to having a running Rakudo is a good bit of effort, but once you're at the point of being able to run Test.pm you find you've already got a heck of a lot working.
17:08 pmurias thanks, seems a lot of better than having to battle for every single test ;)
17:19 domidumont joined #perl6
17:26 jnthn masak: About?
17:27 dalek rakudo/nom: 74fcb36 | jnthn++ | src/Perl6/ (2 files):
17:27 dalek rakudo/nom: Ignore \n and \r\n during heredoc dedenting.
17:27 dalek rakudo/nom:
17:27 dalek rakudo/nom: We probably make the optimizer a little extra constant folding work
17:27 dalek rakudo/nom: with this solution, but it's unintrusive and uses the already complex
17:27 dalek rakudo/nom: enough heredoc handling logic to do the heavy lifting.
17:27 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/74fcb36671
17:28 dalek roast: 0416b13 | jnthn++ | S02-literals/quoting.t:
17:28 dalek roast: Tests for RT #125543.
17:28 dalek roast: review: https://github.com/perl6/roast/commit/0416b1301c
17:29 softmoth_ joined #perl6
17:30 jnthn colomon: ping
17:30 colomon pong?
17:30 jnthn colomon: Were you talking about the heredoc and \t issue the other day?
17:30 colomon jnthn: yes
17:30 jnthn Or am I remembering wrong? :)
17:30 jnthn ah, cool
17:30 jnthn I've fixed 2 of the 3 heredoc tickets flagged for xmas and the \t one is the third
17:31 muten joined #perl6
17:31 jnthn In https://rt.perl.org/Ticket/Display.html?id=120895
17:31 jnthn It gives the example of an explicit \t
17:31 colomon I started to look at it, and it looks to me like rakudo is hard coded to use tab stops of 8
17:31 colomon (rakudo’s source, I mean)
17:31 jnthn Rather than actual tab literals in the source
17:31 colomon I think that was the source of what I was seeing.
17:31 muten m: my uint8 $i = 200; say $i
17:31 camelia rakudo-moar 74fcb3: OUTPUT«-56␤»
17:31 muten Is that a known issue?
17:32 mr_ron left #perl6
17:32 jnthn muten: Yes, unsinged int types are only paid attention to for the purpose of NativeCall and native arrays for now.
17:32 jnthn colomon: For your use case, do you have \t in your source?
17:32 jnthn Or actual tab chars?
17:32 muten Ah, okay. Thanks
17:33 jnthn colomon: Because my inclination is to make a \t escape in the source not be considered at all as part of the dedenting, which I *think* will fix the vanishing tab problem
17:34 jnthn colomon: At least so far as the ticket goes. But I wanted to check in on your use case too.
17:34 dbrock joined #perl6
17:36 dalek modules.perl6.org/mojo-app: 6a05e9e | (Zoffix Znet)++ | / (5 files):
17:36 dalek modules.perl6.org/mojo-app: Build script now successfully builds db and restarts app
17:36 dalek modules.perl6.org/mojo-app: review: https://github.com/perl6/modul​es.perl6.org/commit/6a05e9eaa5
17:36 TimToady the dedenting is supposed to be pre-interpolation of any sort
17:36 yoleaux 12:50Z <jnthn> TimToady: The backref thing ended up with a "latest contiguous matches" constraint being wanted (unless we want to bust another use case). Also, because we are smart enough already to be able to locate captures without constructing the full Match object, the backref methods on Match/Array weren't useful, so I tossed them.
17:37 jnthn TimToady: Just made it so for things like \r\n and \n
17:37 TimToady the only purpose of the dedent is to pretend there was a different left margin in the whitespace of the *program*
17:37 TimToady saw that
17:37 jnthn Right, so same treatment for \t and \r now building
17:37 TimToady cool
17:37 jnthn My question is more "is that sufficient to consider the RT resolved"?
17:38 dalek modules.perl6.org/mojo-app: 44e5f9f | (Zoffix Znet)++ | / (50 files):
17:38 dalek modules.perl6.org/mojo-app: Rename "web" directory, since it no longer does web stuff
17:38 dalek modules.perl6.org/mojo-app: review: https://github.com/perl6/modul​es.perl6.org/commit/44e5f9fdc8
17:38 jnthn Where "the RT" is https://rt.perl.org/Ticket/Display.html?id=120895
17:38 llfourn joined #perl6
17:38 jnthn Got a patch that fixes the actual case in the RT :)
17:39 jnthn So I guess "yes" :)
17:40 diana_olhovik joined #perl6
17:42 skids There is a pr, BTW, for something related.  Though it has gone stale.
17:42 colomon jnthn: sorry for disappearing there.  I have an actual tab in my source.  My impression (possibly wrong) is that \t will do the same thing as an actual tab here?
17:43 colomon jnthn: like I tried to say, I’m suspicious my problem is that I’m using tab stops of 4 in my source code, but Rakudo wants tab stops to be 8.
17:43 colomon but I haven’t had time to investigate properly.
17:43 skids PR#543
17:43 zengargoylew i dunno, but Perl 6 has a butterfly for a mascot/logo and »ö« and Tolkein, i don't see an issue with lolcats occasionally in the doc.  Perl 5/6 documentation seems to have a bit of fun now and then.
17:45 ^elyse^ joined #perl6
17:46 jnthn colomon: Now \t will behave differently
17:46 jnthn colomon: A \t will be ignored by the heredoc dedenting
17:47 skids .oO(son't I rmember a passage in The Hobbit where Frodo climbs a tree in Mirkwood and sees sunlight and butterflies?)
17:47 colomon Actually I just tried that and it did not work
17:47 colomon exact same result as a real tab
17:48 colomon Isn’t variable interpolation and special chars done before passing to dedent?
17:48 jnthn colomon: Sorry, I meant "wiht my local patch"
17:48 jnthn Not any more
17:48 jnthn Well, \t used to be
17:48 jnthn But now it's not
17:48 colomon oh.
17:48 jnthn \n used to be also; I've fixed that one already
17:48 colomon for what it’s worth, I thing explicit \t is a bad thing
17:48 colomon it makes the heredoc much uglier.
17:49 skids s/Frodo/Bilbo/
17:49 skids jnthn: which parts of PR#543 should I resubmit, then, since that is now taken care of?
17:49 jnthn OK. The ticket as filed was about a \t
17:50 colomon jnthn: I really think the problem I’m seeing mostly has to do with tab stops being 8
17:50 dalek rakudo/nom: 2cac8c1 | jnthn++ | src/Perl6/Actions.nqp:
17:50 dalek rakudo/nom: \r and \t in heredoc don't participate in dedent.
17:50 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/2cac8c1f65
17:51 dalek roast: 51ef478 | jnthn++ | S02-literals/quoting.t:
17:51 dalek roast: Test to cover RT #120895.
17:51 dalek roast: review: https://github.com/perl6/roast/commit/51ef478efd
17:51 jnthn colomon: OK, then I think that's quite out of scope for the ticket in question.
17:51 colomon jnthn: fair enough.
17:52 jnthn (So, I count this as done; please file an RT with your case if you think something's wrong in Rakudo.)
17:52 colomon what is the $?TABSTOP constant supposed to do?  I mean, why the ? twigil?
17:52 tokuhiro_ joined #perl6
17:54 jnthn That means "compile time constant"
17:56 FROGGS joined #perl6
17:57 FROGGS o/
17:58 jnthn o/ FROGGS
17:58 jnthn Just fixed one of your RTs ;)
17:59 FROGGS jnthn: yeah, seen it :/
17:59 jnthn Why the :/ ?
17:59 FROGGS $work has just been too much lately
17:59 FROGGS I wanted to do stuff too
17:59 jnthn Ah, I meant "one you filed", not "one you'd taken to fix" :)
17:59 skids colomon: $?TABSTOP went through some churn and landed at "should be assignable but only at compile time", which probably means we're in need of a :tabstop adverb to Str.indent() these days, and last time I checked the "assignable at compile time" part was NYI, IIRC.
17:59 jnthn Ah
18:00 jnthn $work can do that :/
18:01 jnthn Whew. On the same day I did the last regex related xmas ticket, I also got all the heredoc related ones nailed. :)
18:01 colomon skids: right, assignable at compile time doesn’t seem to work.  I guess we could have an adverb for heredocs, too?
18:01 FROGGS I mean, there were challenging and fun tasks at work, but working more than ten hours every day is a bit unfun after a few weeks
18:01 FROGGS wow
18:01 FROGGS jnthn++
18:01 skids colomon: I think heredocs are supposed to use the compile-time part, lexically scoped.
18:02 jnthn FROGGS: Yeah, ten hours is...a bit much
18:02 FROGGS jnthn: especially when it is like much more than ten :o)
18:02 jnthn Ouch
18:03 jnthn Can see why you've not had time, anyway
18:04 moritz any it's better not to burn out
18:04 jnthn TimToady: Today's hopefully-not-too-hard design ruling request: https://rt.perl.org/Ticket/Display.html?id=71112 . It boils down to whether sub foo { @_ } is equivalent to sub foo(*@_) { }. Assuming so, is the following fine:
18:05 jnthn m: sub foo(*@_) { @_[0] = 1; say @_[0] }; foo(0)
18:05 camelia rakudo-moar 74fcb3: OUTPUT«1␤»
18:05 jnthn That is, can you modify your own slurpy array?
18:05 zakharyas joined #perl6
18:05 jnthn (Given the lack of "is raw", you're not in any way affecting the callee, so if it passed foo($a) then $a would be unaffected)
18:06 jnthn My take: the status quo is fine, we can reject the RT.
18:06 jnthn But you previously expected it to blow up, so... :)
18:10 jnthn skids: About your PR, I think only 79487c1d346 is invalidated by my fix; the other two stand
18:10 jnthn (Since they are about the indent method itself)
18:11 skids jnthn: OK, should other vertical space characters considered line endings in normal code not behave that way?
18:11 ggoebel joined #perl6
18:11 dalek ecosystem: 00c7478 | (Zoffix Znet)++ | server/updatelist.pl:
18:11 dalek ecosystem: Normalize source urls
18:11 dalek ecosystem: review: https://github.com/perl6/e​cosystem/commit/00c74788c9
18:12 dalek modules.perl6.org: 31b9712 | (Zoffix Znet)++ | web/lib/P6Project/Info.pm:
18:12 dalek modules.perl6.org: Normalize dist URLs
18:12 dalek modules.perl6.org:
18:12 dalek modules.perl6.org: Otherwise, we often end up missing github repo URLs from dists
18:12 dalek modules.perl6.org: review: https://github.com/perl6/modul​es.perl6.org/commit/31b9712f3e
18:12 jnthn skids: Anything that's expressed as an escape sequence shouldn't be considered in the dedent
18:13 jnthn skids: Anything that's literal whitespace can be
18:13 ifim joined #perl6
18:13 jnthn skids: I think indent handling over things matching \v makes sense
18:19 dalek roast: 6d71025 | jnthn++ | S13-overloading/typecasting-long.t:
18:19 dalek roast: Correct wrong CALL-ME tests.
18:19 dalek roast:
18:19 dalek roast: SomeType() is always a coercion type literal, and shorthand for
18:19 dalek roast: SomeType(Any). Therefore, we don't expect it to lead to a CALL-ME
18:19 dalek roast: invocation. Use SomeType.() to force that. Replace bogus tests with
18:19 dalek roast: tests that these forms really are coercion type literals. Resolves
18:19 dalek roast: the last issue in RT #114026.
18:19 dalek roast: review: https://github.com/perl6/roast/commit/6d71025fa0
18:21 zengargoylew m: my &safelog = &log o &abs; say safelog -e;
18:21 camelia rakudo-moar 2cac8c: OUTPUT«1␤»
18:22 zengargoylew i did not know about compose...
18:23 jnthn TimToady: I figure you'll be happy with the call I made in 6d71025; let me know if not. :)
18:24 zengargoylew anybody know the name of the unicode version of the 'o' there?
18:25 jnthn m: say uniname('∘')
18:25 camelia rakudo-moar 2cac8c: OUTPUT«RING OPERATOR␤»
18:28 zengargoylew thanks much.
18:29 TimToady I'm okay with @_ defaulting to 'is copy' semantics, so we can close 71112
18:30 TimToady jnthn: and I think 6d71025 is going the right direction
18:31 zengargoylew i fear Perl 6 will make me find a good terminal/font setup.  xterm bitmap fonts are a bit lacking in readability and character coverage.
18:31 * flussence uses nice, safe, bland dejavu sans mono
18:32 skids currently I use pterm, which despite the Windows "heritage" is pretty solidly better than everything based on the common widget sets.  Though I had to hack in the second paste clipboard.
18:33 jnthn TimToady: Thanks.
18:34 TimToady though something bothers me about the contiguous backref rule, because contiguity is independing of the scoping, and we'd really like it to pay attention to the [], not the contiguity
18:34 TimToady *independent
18:34 skids zengargoylew: https://github.com/skids/cust​omizations/tree/master/putty # patch to add second clipboard to pterm, and why I chose it over others.
18:35 zengargoylew i haven't experimented in a while.  last time i tried gnome-terminal like things with their client/server approach all too often i ended up blowing up one terminal and loosing all of my terminals.
18:36 zengargoylew that and the lack of right-button-extend and middle-button-paste turned me away.  all those libvte based terms are the same.
18:36 TimToady I mean, on some level, the correct answer is to use () outside instead of [], because we designed $0 to transcend [] scope, so the contiguity rule feels like a complete hack to me
18:37 TimToady it's kinda like the fake lexical scopes that P5 installs here and there
18:38 skids zengargoylew: yeah, so after rejecting anything based on VTE, there was not much left, and when I looked at the rxvt source trying to mod it I ran away screaming and promising never to use it in a security-sensitive environment.
18:38 TimToady and what happens if your $0 is accidentally contigous with the previous iteration?
18:38 TimToady *guous
18:38 polettix joined #perl6
18:39 TimToady jnthn: so I think my .backref plan is still correct, and we should force the other usage to use () rather than []
18:39 zengargoylew i'd believe that.  i saw occasional weirdness using rxvt.
18:39 TimToady well, correcter, given Array.from/.to is a different kind of hack
18:40 jnthn TimToady: I can remove the contiguous rule and update the tests
18:40 jnthn TimToady: I don't think we need a .backref method; it's easy (and way faster) to figure the same thing out by looking at the cursor stack
18:41 TimToady I'm thinking users might want .backref too
18:41 TimToady since ~$0 produces the other thing
18:41 jnthn Hm
18:41 krunen joined #perl6
18:41 skids zengargoylew: anyway someday I'll get fed up enough to add an option to bump-the-screen-up-but-don't-use-the-alt-window and life will be perfect.
18:42 jnthn OK. Even if it survives, I still don't think I'll end up deoptimizing backrefs in regexes to construct a match object and call it
18:42 jnthn And that means we can maybe pick a better name than .backref
18:42 TimToady why would it constuct a match object?  .backref just returns a string
18:43 jnthn You implemented it on Match and Array
18:43 jnthn At the point we see the $0 in something like /(\w)$0/ we didn't build a Match object yet
18:43 TimToady you already have a Match or an Array in that case
18:43 jnthn Not automatically, given we build them lazily
18:44 TimToady well, I'd still like to cursors in flight to pretend to be match objects at some point
18:44 TimToady *to allow
18:44 jnthn And we still have to search the cursor stack
18:44 jnthn I guess I can then call .backref on what I get
18:44 TimToady but I'm fine with faking it for internal
18:44 jnthn Well, .MATCH.backref
18:44 jnthn OK
18:45 zengargoylew skids: i'll give it a test drive, thanks.
18:45 jesper_ joined #perl6
18:46 Ven joined #perl6
18:49 Khisanth joined #perl6
18:51 dalek roast: 19c27b7 | jnthn++ | S (60 files):
18:51 dalek roast: Expect Exception, not X::AdHoc.
18:51 dalek roast:
18:51 dalek roast: The test suite we ship for 6.christmas should ideally be a subset of
18:51 dalek roast: the 6.d suite, and later ones. Testing against `Exception` frees us
18:51 dalek roast: to add further typed exceptions without breaking the promise in the
18:51 dalek roast: existing tests. Testing againt `X::AdHoc` does not.
18:51 dalek roast: review: https://github.com/perl6/roast/commit/19c27b7667
18:53 ilbot3 joined #perl6
18:53 Topic for #perl6 is now »ö« Welcome to Perl 6! | http://perl6.org/ | evalbot usage: 'p6: say 3;' or rakudo:, std:, or /msg camelia p6: ... | irclog: http://irc.perl6.org | UTF-8 is our friend!
18:54 dalek roast: 8b28ff8 | jnthn++ | S06-signature/unspecified.t:
18:54 dalek roast: Bring tests in line with RT #71112 ruling.
18:54 dalek roast: review: https://github.com/perl6/roast/commit/8b28ff8c4b
18:55 duncan_dmg left #perl6
18:55 pippo joined #perl6
18:55 pippo exit
18:55 jnthn Phew, back down to 21 pages of tickets, not 22 :P
18:56 krunen joined #perl6
18:56 skids jnthn++
18:56 jnthn TimToady: Time for dinner/rest here so I'll deal with the backref thing tomorrow.
18:59 TimToady .oO(6.d should have a liskovian relationship to 6.c)
18:59 yoleaux Sorry, I couldn't find a definition for 'should have a liskovian relationship to 6.c)'.
18:59 TimToady say wot?
18:59 jnthn .d annoying
19:00 yoleaux annoying (/əˈnɔɪɪŋ/): adj. Causing irritation or annoyance — http://is.gd/bxwfAt
19:00 jnthn heh :)
19:00 RabidGravy I wot not what
19:00 TimToady .foobar.d baz
19:00 yoleaux Sorry, I couldn't find a definition for 'baz'.
19:00 jnthn TimToady: One other thing to ponder: should you be able to callsame multiple times? ( https://rt.perl.org/Ticket/Display.html?id=125783  is the ticket in question)
19:01 jnthn TimToady: At the moment callsame essentially pulls from an iterator
19:01 jnthn TimToady: And so "consumes"
19:01 TimToady well, so that the child might also consume
19:02 jnthn Right, well, that was the idea, that you were going to do a callsame each step of the way :)
19:02 yqt joined #perl6
19:02 jnthn But if you do multiple you break things
19:02 jnthn You can't do this with nextsame/nextwith
19:02 TimToady maybe we need a way to take a ref to what would be called
19:02 jnthn So it's only the callsame/callwith variants that need thinking
19:02 jnthn We could do that. Or I can probably amke it Do The Right Thing with a well-placed .clone :)
19:02 jnthn *make
19:03 jnthn At the price of the clone.
19:03 TimToady right
19:03 TimToady not sure we want to penalize everyone for that
19:03 jnthn *nod*
19:03 jnthn Thus why I didn't think it was an obvious "yeah, bug" :)
19:04 TimToady maybe have a callpeek that returns the front
19:04 jnthn Could do :)
19:05 TimToady except...that doesn't actually work out
19:06 TimToady since the child still needs the trimmed list each time, presumably
19:06 TimToady well, callpeek trims the list but returns the ref
19:06 jnthn Yeah, the latter would do it
19:06 TimToady wouldcall
19:07 TimToady peek kinda says it doesn't shift it, which it does
19:08 diana_olhovik joined #perl6
19:08 jnthn Yeah
19:08 TimToady or nextref, or somethin
19:08 jnthn aye...
19:09 TimToady callnextref would be good huffman :)
19:09 TimToady nextcallref is maybe clearer
19:09 MadcapJake joined #perl6
19:10 jnthn Yeah
19:10 TimToady since the former could be taken to imply a call
19:10 MadcapJake left #perl6
19:10 jnthn Something with callee in may also work
19:10 jnthn But I can't quite nail it
19:10 TimToady nextcallee wouldn't be so bad
19:10 jnthn But it avoids call (verb) being confused with call (noun)
19:11 MadcapJake joined #perl6
19:11 TimToady and I'm in favor of avoiding the "ref" meme
19:11 MadcapJake left #perl6
19:12 TimToady all in all, I'm pretty happy with "nextcallee"
19:12 MadcapJake joined #perl6
19:12 rangerprice joined #perl6
19:12 jnthn OK, thanks.
19:13 jnthn So, that's a ticket I can plug away at tomorrow :)
19:13 MadcapJake Is there Perl6ish reason why using a C library with nativecall is always ending in a segmentation fault (always after successfully completing all the native calls I make)
19:14 jnthn And there's another one about deferal too, so I'll look at it.
19:14 jnthn MadcapJake: Probably means memory was mis-managed somewhere along the way
19:15 hoelzro MadcapJake: which library? could you show us a failing example?
19:15 jnthn MadcapJake: Running it under something like valgrind or ASAN will likely show up the details
19:15 jnthn OK, I should go tend to the cooking. o/
19:16 MadcapJake i tried gdb, haven't tried valgrind yet.  (I am a complete C newb), let me put this up in a gist, brb
19:18 MadcapJake https://gist.github.com/Madc​apJake/c92646b1124744888667
19:18 virtualsue joined #perl6
19:18 MadcapJake btw, I tried `gdb -ex r --args perl6 file.p6` but that says "no executable".  Am I doing it wrong?
19:19 moritz MadcapJake: perl6 is actually a shell script (wrapper around moarvm)
19:19 moritz MadcapJake: which gdb doesn't like
19:20 moritz MadcapJake: there's a perl6-gdb-m installed along with perl6-m that runs your perl 6 program under gdb for you
19:20 MadcapJake yeah i figured that, just noticed that in python you could do that form that I posted above, so thought maybe it was an accepted standard for shell scripts to interface to gdb
19:20 MadcapJake oh sweet
19:21 MadcapJake "Program received signal SIGSEGV, Segmentation fault." o_O
19:25 mrf evening
19:29 psch jnthn: i think i have #74414 figured out, but it apparently somehow messes with Range.new ordering
19:30 psch jnthn: as in, we don't reach the Complex candidates for some reason...
19:30 psch jnthn: i guess in the end that means i don't have it figured out... :P
19:30 kjs_ joined #perl6
19:30 psch jnthn: as in, i've got a MultiCache patch that pays attention to rwness, but somehow that messes with Range.new candidate ordering
19:33 RabidGravy MadcapJake, if you haven't alreadt figured it out, you can find what it thought it was doing by typing 'bt' at the gdb prompt
19:36 timotimo earlier today people talked about the "ws-*" era; what was that about? all i know ws for is "websockets", but that doesn't seem old enough to already be called an "era" of the past
19:36 RabidGravy sometime I find valgrind more useful for these as it shows where you messed up the memory
19:37 RabidGravy timotimo, Web Services
19:37 RabidGravy i.e the ws-security etc related to soap
19:40 psch hm, apparently (Whatever, Mu) ends up narrower than (Mu, Complex) on my current rakudo state
19:41 psch didn't verify against nom HEAD yet though...
19:42 MadcapJake RabidGravy: How do I use valgrind with perl6?
19:43 softmoth_ joined #perl6
19:43 FROGGS MadcapJake: perl6-valgrind-m myscript.pl
19:43 RabidGravy perl6-valgrind-m :)
19:43 polettix joined #perl6
19:43 MadcapJake lol xD
19:43 FROGGS *g*
19:43 RabidGravy (assuming you have valgrind installed)
19:44 psch welp, confirmed.  something in my rwness patch on rakudo level pushes (Complex \min, \max) and (\min, Complex \max) out of the tie group the Whatever candidates are in...
19:44 MadcapJake i do, i just can't grok the output :P
19:44 MadcapJake oh, it wasn't done yet, it's quite slow
19:45 RabidGravy yeah instruments all the memory allocations
19:45 MadcapJake lol "19496 errors from 211 contexts"
19:45 zengargoylew MadcapJake: what's the signature for the string inputs on those library calls?  i know with strings there's sometimes a need to tell NativeCall not to free the strings until you tell it to.
19:46 FROGGS MadcapJake: just look for invalid read and invalid write
19:46 FROGGS zengargoyle: that's also what I am thinking btw
19:46 zengargoylew i.e. does the library make its own copy of the strings you pass in or not?
19:47 zengargoylew everything elso looks ...simple-ish...
19:47 MadcapJake oh, here's one of the native subs "sub fluid_synth_sfload(FluidSynth, Str, int64) is native(&libfluidsynth) { * }"
19:47 MadcapJake FluidSynth is a `repr('CPointer')`
19:47 zengargoylew right, is that Str a char * or a const char * or what in the actual headers/library
19:47 psch FROGGS: that's pretty much the same behavior as with the portaudio bindings i asked you to look at, isn't it?
19:47 RabidGravy what's the C signature of the above?
19:48 psch as in, it extends beyond C strings
19:48 MadcapJake ohh, yeah it's a `constant char *`
19:48 RabidGravy explicitly-manage($string) then
19:49 MadcapJake Around the argument when calling it or in the declared parameters?
19:49 RabidGravy you need to guarantee that perl won't dick with the string after the function returns
19:50 RabidGravy before you call the sub, on the string you pass as an argument
19:50 RabidGravy btw +1 on a fluidsynth binding :)
19:51 zengargoylew method set(Str:D $setting, Any $val) {  probably explicitly-manage($setting) # but you might have to make your own copy first since it's an arg???  # i dunno that
19:51 zengargoylew or maybe for $val when it's Str
19:51 FROGGS psch: I don't remember what the issue was...
19:52 MadcapJake oi, well that doesn't have a `const` keyword in the C docs
19:52 zengargoylew then it's probably the one you have to do it on. ..
19:52 psch FROGGS: "SEGV or coredump" iirc.  maybe not actually related...
19:52 psch zengargoylew: explicitly-manage is called from the trait "is explicitly-managed" iirc..?
19:52 zengargoylew try both and see if it still bombs. :)
19:53 zengargoylew i haven't had to use it yet... my one library thing does ints and strings that it *has* to copy and muck about with.
19:54 zengargoylew i'll try and remember that trait though..
19:54 sufrostico joined #perl6
19:56 RabidGravy psch, I am going to get back to portaudio at some point
20:00 geraud joined #perl6
20:00 MadcapJake So I added explicitly-manage to all the const char * calls and it still is giving me segmentation fault
20:01 MadcapJake I updated the gist: https://gist.github.com/Madc​apJake/c92646b1124744888667
20:01 ^elyse^ joined #perl6
20:02 psch RabidGravy: well, you've got a commit bit :)
20:04 Skarsnik MadcapJake, when does it crash? after the delete stuff?
20:05 vendethiel joined #perl6
20:06 MadcapJake `is explicitly-managed` didn't work, says it's an unknown trait
20:06 MadcapJake Skarsnik: yeah after that
20:07 Skarsnik that's weird x)
20:07 psch yeah, i was wrong about explicitly-managed as a trait
20:08 Skarsnik I suspect delete get called twice
20:08 Skarsnik like on exit the GC call delete on the object?
20:09 MadcapJake well i am specifying my own delete, should i be naming that differently?
20:10 Skarsnik yes, but maybe something like that happend: You call delete manually, then p6 call delete on exit
20:10 Skarsnik add some say on the delete stuff?
20:10 hoelzro the Perl 6 GC shouldn't perform any additional deletion on pointers from NativeCall'd subs
20:10 * hoelzro .oO( there's that word "should" again )
20:11 psch yes, a suspicuous word it is
20:11 psch like, my "rw is tighter than non-rw" *should* not influence ordering of (and tie-breaking between) different typed method that all don't use rwness...
20:12 psch but it does vOv
20:12 psch +patch
20:12 MadcapJake `:%s/delete/del/g` still gives me seg faults
20:12 RabidGravy joined #perl6
20:15 psch i think !sort_dispatchees_internal is borked
20:15 psch that's a somewhat reaching accusation, because i'm not completely sure what it actually does
20:15 psch but i see the same candidate in two different tie-groups on nom HEAD
20:18 kjs_ joined #perl6
20:20 MadcapJake how can i capture ouput from perl6-valgrind-m? I tried `>>` and it only gives me any stdout that i've printed.
20:21 psch MadcapJake: 2> (and 2>>) redirects STDERR
20:22 psch MadcapJake: combining them is 2>&1 or 2&>1, i always have to look up which myself :P
20:22 MadcapJake ohh cool!
20:22 psch MadcapJake: man bash ;P
20:22 * psch .oO( bash: P: command not found )
20:22 MadcapJake It's just &>> apparently
20:22 moritz 2>&1
20:23 moritz also, perl6-valgrind-m $program |& tee file.log
20:23 moritz |& pipes both stderr and stdout into a single command
20:24 psch |& less recently became a favorite of mine
20:24 spider-mario joined #perl6
20:24 psch i guess that's a decent mnemonic, the & is after the | there, so it also has to be after the redirect
20:24 psch moritz++ # bash knowledge
20:25 diana_olhovik_ joined #perl6
20:28 Skarsnik hm something like void(* GumboDeallocatorFunction)(void *userdata, void *ptr)
20:28 Skarsnik Should be the size of a void*?
20:28 hoelzro probably
20:28 hoelzro I think that pointer size equality is not guaranteed
20:29 hoelzro but it usually matches up
20:29 hoelzro C leaves a lot up to the implementation
20:29 Skarsnik I forgot a field ><
20:30 dalek modules.perl6.org/mojo-app: fade303 | (Zoffix Znet)++ | / (8 files):
20:30 dalek modules.perl6.org/mojo-app: All styling is done
20:30 dalek modules.perl6.org/mojo-app: review: https://github.com/perl6/modul​es.perl6.org/commit/fade303ea3
20:31 MadcapJake Starting from the first delete call, there are thousands of invalid read and invalid write errors
20:31 AlexDaniel joined #perl6
20:32 Skarsnik hm, did you try with gdb? valgrind is quite.. verbose
20:32 MadcapJake In fact after deleting FluidSettings, there are no invalid read or write errors
20:33 Peter_R joined #perl6
20:33 MadcapJake i tried gdb and `bt` but i couldn't grok anything useful, i might just not know what I'm looking for xD
20:34 ilbot3 joined #perl6
20:34 Topic for #perl6 is now »ö« Welcome to Perl 6! | http://perl6.org/ | evalbot usage: 'p6: say 3;' or rakudo:, std:, or /msg camelia p6: ... | irclog: http://irc.perl6.org | UTF-8 is our friend!
20:34 psch MadcapJake: well, if the bad free happens in the fluidsynth lib you probably just get addresses
20:35 psch MadcapJake: building moar with --debug should give you symbols for moar at least, so that should be intelligable
20:35 MadcapJake I just looked over fluidsynth docs and found this little tidbit: "NOTE: Other users of a synthesizer instance, such as audio and MIDI drivers, should be deleted prior to freeing the FluidSynth instance."
20:36 MadcapJake i'm not deleting my audio driver (the tutorial didn't know that specifically), so maybe this is what i need to do
20:36 Skarsnik that's... sucks: Cannot put a type constraint on an 'our'-scoped variable
20:37 psch Skarsnik: i think that's just NYI
20:37 Skarsnik I need to expose a C global with export, but I can't affect it to something typed just behind if I don't type it
20:37 psch Skarsnik: patches welcome :)
20:38 Skarsnik oh it's just NYI?
20:40 MadcapJake haha, that was totally it!  Well thanks for the exploration of C debugging tools and bash wisdom.  I'm gonna keep hacking on this fluidsynth module, see ya all!
20:41 dalek modules.perl6.org/mojo-app: 88389a5 | (Zoffix Znet)++ | db-builder/ (2 files):
20:41 dalek modules.perl6.org/mojo-app: Add --no-app-start option to the build script
20:41 dalek modules.perl6.org/mojo-app: review: https://github.com/perl6/modul​es.perl6.org/commit/88389a53bb
20:41 Skarsnik is there something to display the memory used by a perl6 program?
20:42 Skarsnik in the code
20:42 Skarsnik tracking top display is not really useful x)
20:42 RabidGravy MadcapJake, look forward to seeing it, need more Audio:: modules ;-)
20:43 adhoc joined #perl6
20:43 hoelzro Skarsnik: I wrote a little NQP/MoarVM patch a while ago that adds a binding to meminfo
20:43 hoelzro but it's not intended for being included
20:43 hoelzro I also wrote a little Perl 5 script to track memory usage of a Perl 6 one
20:43 psch hrm
20:44 psch so i accidentally lost my rakudo changes (mishandling of git stash and git reset...) and redid them by memory
20:44 zengargoylew i got really say when you can't do sub foo(Str *@things) 'cause no typed slurpy
20:44 psch and now i don't get the Complex misdispatch and candidate misordering anymore
20:44 psch vOv
20:44 psch programming is weird, let's go programming
20:44 zengargoylew man $work keyboard is messing with my typing today.
20:44 moritz psch: ... and here I wanted to give you advice on how to recover a lost "git stash" :-)
20:45 psch moritz: i popped the stash, but resetted over it
20:45 hoelzro would the stash be in the reflog?
20:45 psch moritz: i gather it might still sit around somewhere, but it worked out in the end, apparently...
20:45 hoelzro even after popping?
20:45 Skarsnik maybe there is a something in /proc with the mem info?
20:45 hoelzro Skarsnik: there is
20:45 hoelzro /proc/$pid/statm
20:45 hoelzro Skarsnik: https://gist.github.com/ho​elzro/86ad3e184efa1042d9d0
20:46 moritz hoelzro: probably not in the reflog, but in git fsck --no-reflog
20:46 hoelzro ahhh
20:46 psch now i gotta fork moar...
20:47 moritz also if you have the hash of stash in some terminal window, you can just apply it with "git stash apply $hash"
20:47 Amnez777_ joined #perl6
20:47 psch yeah, i came across apply recently, i think it also works with the top of the stash
20:47 psch as in "git stash apply"
20:48 psch which is probably the better workflow than pop
20:49 Skarsnik I guess there is a $*PID variable?
20:50 hoelzro m: $*PID
20:50 camelia rakudo-moar 2cac8c: ( no output )
20:50 hoelzro m: say $*PID
20:50 camelia rakudo-moar 2cac8c: OUTPUT«8849␤»
20:50 Skarsnik thx :)
20:53 dalek modules.perl6.org/mojo-app: 9605950 | (Zoffix Znet)++ | mojo-app/lib/ModulesPerl6/Model/Dists.pm:
20:53 dalek modules.perl6.org/mojo-app: Documentation for ModulesPerl6::Model::Dists
20:53 dalek modules.perl6.org/mojo-app: review: https://github.com/perl6/modul​es.perl6.org/commit/9605950c5f
20:56 hpd joined #perl6
20:56 virtualsue joined #perl6
20:58 hpd hi! perl6 -M JSON::Tiny -e 'say "Hello World"' takes over a second for me, the same thing with HTTP::UserAgent over 11. Might I be doing something wrong? I installed rakudo-2015.09 from archs AUR, which uses moarvm
20:58 dalek roast: 3fe83cf | usev6++ | S32-exceptions/misc.t:
20:58 dalek roast: Add tests for RT #126091
20:58 dalek roast: review: https://github.com/perl6/roast/commit/3fe83cf8dc
20:59 hoelzro hpd: I'm guessing that both modules are not precompiled; that's kind of a WIP
21:00 hoelzro if they were precompiled, they would load a good deal faster
21:01 hpd hoelzro: ok, thanks. Is it possible to precompile them with panda?
21:01 hpd btw, panda --help also takes over 7 seconds :)
21:02 hoelzro hpd: panda doesn't precompile things, I'm afraid
21:02 Skarsnik hm say slurp("/proc/"~$*PID~"/statm"); show nothing (but work with cat proc/id/)
21:02 hoelzro Skarsnik: you can also do /proc/self/statm
21:03 timotimo wow, i made it through the backlog
21:03 timotimo MadcapJake: are you still fiddling around with valgrind?
21:03 hoelzro hpd: I've been rather bad about keeping up with Perl 6 the last two months or so, so the story may have changed
21:04 timotimo MadcapJake: MoarVM will just exit when the program is done and not bother explicitly freeing things, so any heap sanitizer will scream "oh god, ALL THE MEMORY is LEAKED!"
21:04 hoelzro I think that panda is going to delegate how and whether to precompile to the perl6 command
21:04 Skarsnik I am woried, my script take 0.1% more ram every second ~~
21:05 hoelzro Skarsnik: what does your script do?
21:05 hoelzro I have a memory leak that I need to fix
21:05 Skarsnik m: say slurp("/proc/self/statm");
21:05 camelia rakudo-moar 2cac8c: OUTPUT«24154 17370 5470 2 0 14071 0␤␤»
21:05 Skarsnik duh I get nothing
21:06 timotimo i usually "time" my perl6 programs, but that only gives you the peak memory usage
21:06 Amnez777_ joined #perl6
21:08 tokuhiro_ joined #perl6
21:09 dalek roast: 01a65f4 | usev6++ | S32-exceptions/misc.t:
21:09 dalek roast: Add test for RT #126105
21:09 dalek roast: review: https://github.com/perl6/roast/commit/01a65f421d
21:10 Skarsnik Basicly: parse a web page (happend every 15 sec?) get some id to call a json api with it (so a $ua.get) then create an object from it. and it grow like 0.1% of memory usage on top every second; (around 2Mo taken since mem is 2GB)
21:10 * vendethiel 's glad he's mostly used .split("rn") and .ends-with
21:10 hoelzro if you're using any sub that has subsignatures, that leaks
21:10 vendethiel I only fixed a single script for $work /o/
21:10 hoelzro I think TimToady found a leek with for loops too?
21:10 hoelzro s/leek/leak/
21:11 * hoelzro waits for food jokes
21:11 timotimo .o( memory lead )
21:12 pmurias joined #perl6
21:13 llfourn m: my @a = <one two three>; for @a.kv -> $i,$num { @a.push("four") if $i == 0; say $num }'
21:13 camelia rakudo-moar 2cac8c: OUTPUT«5===SORRY!5=== Error while compiling /tmp/FKCvGOoRg_␤Strange text after block (missing semicolon or comma?)␤at /tmp/FKCvGOoRg_:1␤------> 3{ @a.push("four") if $i == 0; say $num }7⏏5'␤»
21:13 llfourn m: my @a = <one two three>; for @a.kv -> $i,$num { @a.push("four") if $i == 0; say $num }
21:13 camelia rakudo-moar 2cac8c: OUTPUT«one␤two␤three␤four␤»
21:13 llfourn I'm pretty sure that's cool
21:14 hpd hoelzro: I managed to precompile the all my installed modules and startup time for the second example did decrease by 10 seconds, thanks :)
21:14 hoelzro \o/
21:14 timotimo llfourn: yeah, that kind of thing happens when you have lazy iterators and such
21:14 timotimo llfourn: if you want "the other meaning", you could .kv.cache or .kv.list or .kv.clone or something
21:14 timotimo i shall try that
21:14 timotimo m: my @a = <one two three>; for @a.kv.cache -> $i,$num { @a.push("four") if $i == 0; say $num }
21:14 camelia rakudo-moar 2cac8c: OUTPUT«one␤two␤three␤four␤»
21:14 hoelzro hpd: you may encounter errors are version numbers when you upgrade rakudo; just so you're not surprised =)
21:14 llfourn :P
21:14 timotimo m: my @a = <one two three>; for @a.kv.clone -> $i,$num { @a.push("four") if $i == 0; say $num }
21:14 camelia rakudo-moar 2cac8c: OUTPUT«one␤two␤three␤four␤»
21:15 timotimo m: my @a = <one two three>; for @a.kv.list -> $i,$num { @a.push("four") if $i == 0; say $num }
21:15 camelia rakudo-moar 2cac8c: OUTPUT«one␤two␤three␤four␤»
21:15 timotimo god damn it! :P
21:15 Skarsnik https://gist.github.com/Ska​rsnik/65af8fd9fd898ff6eb2a basicly it grow for 0.1% for each show_mem call
21:15 hpd hoelzro: thanks :)
21:16 timotimo Skarsnik: you should stop calling show_mem, then! with 0.1% growth, you'll soon go into the real part of the exponential growth curve! :P
21:16 timotimo Skarsnik: with --profile you'll be able to (by looking at the GC tab) figure out if the script is leaking memory into the gen2 or if it should be cleaning up everything, but something ends up leaking anyway
21:17 timotimo Skarsnik: why are you using "eq" to compare against a number?
21:17 Skarsnik is there something else that the html output for profile? I think I saw a Qt thing
21:17 Skarsnik I don't like == x)
21:17 timotimo huh, ok
21:17 timotimo right, tadzik/p6profiler-qt on github
21:18 timotimo that doesn't have the GC tab yet, and when i tried to implement it, i got annoyed by my lack of familiarity with qt's model/view framework :|
21:19 timotimo Skarsnik: you'll want to --profiler-output (or --profiler-filename? i forget) to something with .json at the end, otherwise you'd have to manually cut out the json part from the html file
21:20 Skarsnik If I had less stuff to do I could look into it x)
21:21 llfourn m: my @a = <one two three>; for [@a.kv] -> $i,$num { @a.push("four") if $i == 0; say $num }'
21:21 camelia rakudo-moar 2cac8c: OUTPUT«5===SORRY!5=== Error while compiling /tmp/wGOhXsim_L␤Strange text after block (missing semicolon or comma?)␤at /tmp/wGOhXsim_L:1␤------> 3{ @a.push("four") if $i == 0; say $num }7⏏5'␤»
21:21 llfourn m: my @a = <one two three>; for [@a.kv] -> $i,$num { @a.push("four") if $i == 0; say $num }
21:21 camelia rakudo-moar 2cac8c: OUTPUT«one␤two␤three␤»
21:21 Skarsnik --profile is a huge slow down x)
21:22 dalek rakudo-star-daily: 07bb6f0 | coke++ | log/ (3 files):
21:22 dalek rakudo-star-daily: today (automated commit)
21:22 dalek rakudo-star-daily: review: https://github.com/coke/rakudo​-star-daily/commit/07bb6f0a85
21:22 mrf test++ # spotting bugs
21:23 timotimo Skarsnik: it shouldn't be so terrible - only the output at the very end should be terrible :)
21:27 diana_olhovik joined #perl6
21:27 Skarsnik It think the profiler does not like stuff that recurse too much x)
21:28 Skarsnik it take forever to get pass the 4-5 XML::Element.elements call
21:30 lizmat joined #perl6
21:30 MadcapJake timotimo: it looked like all the errors were actually fluidsynth functions trying to apply settings to a synth that was deleted.  It turned out that I needed to explicitly delete the audio driver first and then I could delete the synth.  Docs weren't very clear on this but did have a little note that i glanced over xD
21:31 cygx joined #perl6
21:32 cygx hpd: I believe zef (an alternative module manager) does precompilation
21:32 cygx see https://github.com/ugexe/zef
21:32 * lizmat waves from Miami
21:33 mrf .tell ugexe PR made with full passing tests and new RFC additions
21:33 yoleaux mrf: I'll pass your message to ugexe.
21:34 zhmylove joined #perl6
21:34 TEttinger joined #perl6
21:35 Skarsnik timotimo, what should I look in GC part? (or do you want the output file?)
21:36 hoelzro o/ lizmat
21:38 TrES2b joined #perl6
21:40 pRiVi joined #perl6
21:43 hoelzro the exit status of the child isn't available via qq:x{...}, is it?
21:44 jdv79 25ms to deep clone:(  its too slow
21:49 jdv79 is construction expensive?  my profile has large jumps across new() calls.
21:49 hoelzro jdv79: in my measurements that I haven't done for a while, I've found construction to be rather expensive
21:49 jdv79 also, is there a way to turn the profiler off and on at runtime?
21:50 jdv79 i would like to profile just a portion but have to run the rest...
21:50 jdv79 ok
21:50 hpd cygx: thanks. unfortunately it fails to run with "Undeclared routine: append used at line 58". Maybe my rakudo version is too old...
21:52 dalek perl6-most-wanted: 35b752c | RabidGravy++ | most-wanted/modules.md:
21:52 dalek perl6-most-wanted: Add URI::Template as a WIP
21:52 dalek perl6-most-wanted: review: https://github.com/perl6/perl6​-most-wanted/commit/35b752c6a0
21:52 cygx hpd: likely - the addition of append is fairly recent
21:52 hpd I see
21:53 jdv79 oh wow.  my clone fumbly clone is faster than my constructor.  but that makes sense since the constructor is running a grammar.
21:54 cygx I've actually started to work on my own solution for precompilation
21:54 cygx cf https://github.com/cygx/6make
21:55 cygx it's more of a hack than a proper solution, but I think it'll keep until Rakudo finally gets automatic precompilation
21:55 llfourn how does one precompile stuff now?
21:56 tadzik one doesn't
21:56 tadzik or one uses zef
21:57 hoelzro one does not simply precompile modules into Mordo^WPerl 6
21:58 llfourn ok I'll wait till one does simply prcompile things
21:58 [Coke] jnthn++ for the roast commit on adhoc -> Excption
21:59 hoelzro llfourn: sorry; I think it's waiting on CURLI work
22:00 llfourn hoelzro: it's ok I just saw a lotta talk about it so I thought it might be a secret --switch :)
22:00 hoelzro you can do it by hand with --target=mbc and --output
22:01 * [Coke] finally catches up with backlog... just in time to go into an hour long meeting
22:01 llfourn hoelzro: oohhh so there is a secret switch :)
22:01 cygx llfourn: just treat it like any other compiled language and add a Makefile to your project
22:02 cygx eg https://github.com/cygx/p6-​tinycc/blob/master/Makefile
22:02 RabidGravy :)
22:02 kjs_ joined #perl6
22:02 llfourn sounds good. The thing I'm writing now takes about 8 seconds to compile and 0.5 to run :\
22:03 * llfourn delves into precompiling
22:09 dalek rakudo/for-mvm-pr291: 4e3eab6 | peschwa++ | src/Perl6/Metamodel/BOOTSTRAP.nqp:
22:09 dalek rakudo/for-mvm-pr291: Don't bypass multicache for rwness-aware multis.
22:09 dalek rakudo/for-mvm-pr291:
22:09 dalek rakudo/for-mvm-pr291: This commit (and branch) depend on MoarVM pull request #291, and can be merged
22:09 dalek rakudo/for-mvm-pr291: whenever that PR gets merged (or something equivalent implemented).
22:09 dalek rakudo/for-mvm-pr291: review: https://github.com/rakudo/rakudo/commit/4e3eab678c
22:12 FROGGS joined #perl6
22:13 RabidGravy I've actually surprised myself I thought this uri template malarkey would be too much for my feeble brane and take a week or more, it appears I might have it by the weekend depending on how much beer is involved ;-)
22:14 cygx RabidGravy: looking for the Ballmer Peak?
22:16 zengargoylew left #perl6
22:17 Travis_ joined #perl6
22:17 RabidGravy DEVELOPERS! DEVELOPERS! DEVELOPERS! I LOVE YOU!
22:18 polettix joined #perl6
22:18 pink_mist whee, #perl6 has its own Yaakov! :P
22:19 RabidGravy just channeling Balmer
22:19 cygx .oO( all is fun and games until the chairs start flying )
22:21 timotimo Skarsnik: look for red pieces of bar. are they common or rare?
22:22 Skarsnik in the Allocations tab?
22:23 Skarsnik there is quite a lot of red bar in the GC part yes
22:24 timotimo 'k
22:24 timotimo well, green means stuff that gets thrown out from nursery to nursery, yellow means things that survive into the next nursery, red means things that gets pushed to the old generation
22:25 timotimo our old generation implements a free list through the whole thing, so it's possible to inflate it once and then have it riddled with holes
22:25 timotimo but that's probably not the case here
22:25 Skarsnik 64Mo the html file ~~
22:25 timotimo in the allocations tab you can have a look what gets commonly allocated and what routines do that
22:25 timotimo yeah :(
22:26 Skarsnik I suppose I ignore bootcode/Scalar? since it's like a huge chunk of the aloc
22:30 Skarsnik there is a bind_one_param in bootcode that is all red
22:30 Ven joined #perl6
22:31 jdv79 RabidGravy: you had a chocolate lager?  was is musty or watery?
22:32 jdv79 doesnt seem like that would be good.
22:32 mrf Chocolate porter on the outher hand :D
22:32 timotimo BOOTCode means we take closures
22:32 RabidGravy it was actually quite pleasant, strong chocolate flavour.  I was skeptical too.
22:33 Skarsnik http://www.nyo.fr/~skarsnik/tmp​/profile-1447363824.08688.html if you are curious ~~
22:34 RabidGravy it had that complex chocolate malt flavour you get in a porter or a stout but was definitely a lager
22:36 jdv79 ive never seen one.
22:38 * timotimo wgets it
22:39 RabidGravy it's this https://www.hogsback.co.uk/product/montezumas/ - I'm vaguely acquainted with head brewer there - he always seemed quite a go-ahead guy
22:40 BooK oh nice, there's a profiler for perl6?
22:41 arnsholt There's a built-in profiler on Moar
22:41 Skarsnik rakudo/moar offer a --profile option
22:42 arnsholt Yeah run it with --profile, and it'll write an HTML file with profiling info like what are expensive functions and how much time is spent in GC and such
22:43 jdv79 whoa that color and choc would freak me out
22:43 jdv79 like pepsi clear
22:43 jdv79 or whatever that was called
22:44 jdv79 still id have to try it if i saw it
22:46 Ven joined #perl6
22:48 telex joined #perl6
22:49 Ven joined #perl6
22:53 FROGGS joined #perl6
22:59 Skarsnik Good night here :)
23:09 RabidGravy rarr!
23:12 psch ...zipp?
23:12 Ulti https://www.reddit.com/r/perl/com​ments/3sl8t8/tutorial_for_perl_6/
23:13 dalek rakudo/nom: f4e9d5e | lizmat++ | src/core/List.pm:
23:13 dalek rakudo/nom: Make List.roll(n) 50% faster + some streamlining
23:13 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/f4e9d5e507
23:13 psch pretty good answer by MattEOates++ there
23:14 jdv79 sigzero sounds familiar.  pm?  #perl?
23:14 jdv79 maybe the x in y?
23:14 psch sigzero is an account on perlmonks at least
23:14 psch the perl6inyminutes is written by Ven++
23:14 jdv79 oh, util covered it well
23:15 Ven yes, hi
23:15 psch ah, MattEOates is Ulti?
23:16 tokuhiro_ joined #perl6
23:16 psch m: say 0 ~~ 0 ~~ 0
23:16 camelia rakudo-moar 2cac8c: OUTPUT«False␤»
23:16 psch that's such a weird thing to think about...
23:16 Ulti psch: thats me >:P
23:17 psch RT #81336, for reference https://rt.perl.org/Ticket/Display.html?id=81336
23:17 psch Ulti: well, Ulti++ then too :P
23:17 Ulti karma \o/
23:18 Ulti but I linked more to see if any of you lot can think of something to add
23:18 Ulti there are a lot of blogs but most arent really that instructional
23:19 jdv79 afaik thats all of it probably
23:21 Ulti the perltuts thing does have an open repo where you can write tutorials with live programming activities just in POD
23:21 RabidGravy m: say "foo".Str(foo => 1); # is it safe relying on this not crapping out?
23:21 camelia rakudo-moar 2cac8c: OUTPUT«foo␤»
23:22 Ulti https://github.com/vti/perltut​s.com-tutorials/tree/master/v6
23:22 Ulti which map to http://dev.perltuts.com/tutorials/perl-6-basics
23:24 Ulti in case anyone is keen, the code boxes have a fairly recent version of rakudo on moarvm 2015.9
23:24 skids joined #perl6
23:24 Ulti oooo Docker!
23:26 RabidGravy speaking of docker, if someone makes local (i.e AF_UNIX|AF_LOCAL) sockets work RSN I'll finish the Docker API client ;-)
23:27 RabidGravy anyway, bedtime for rabid
23:27 RabidGravy toodlepip, play nicely
23:28 lizmat good night, RabidGravy
23:28 Ulti same g'night
23:34 Ven joined #perl6
23:45 lizmat dinner&
23:46 Ven joined #perl6
23:53 Hotkeys what up party people
23:54 jdv79 where is this party?
23:54 jdv79 im kinda tired.  almost bedtime
23:54 Hotkeys the p in perl stands for party dontcha know
23:54 pink_mist (who are you calling people?! :P)
23:55 boegel joined #perl6
23:55 Hotkeys the p also stands for people
23:55 pink_mist it's a busy little p =)
23:55 Hotkeys yeah
23:55 Hotkeys the busiest
23:56 Gardner joined #perl6
23:56 TrES2b IM IN LOVE WITH THE COCO
23:56 hobbs joined #perl6
23:59 DrPete_ joined #perl6

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

Perl 6 | Reference Documentation | Rakudo