Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2017-02-09

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:01 agentzh joined #perl6
00:03 cdg_ joined #perl6
00:11 Actualeyes joined #perl6
00:16 pyrimidine joined #perl6
00:18 tony-o hope that helps perlpilot ^^
00:26 cdg joined #perl6
00:27 benjibenji joined #perl6
00:32 SmokeMachine m: class C { has Int $.a = 42; has Str $.b where $!a }; say C.new: :b<42> # should it die with this error?
00:32 camelia rakudo-moar f85978: OUTPUT«Cannot look up attributes in a VMNull type object␤  in block <unit> at <tmp> line 1␤␤»
00:32 SmokeMachine m: class C { has Int $.a = 42; has Str $.b where $!a }; say C.new: :42b
00:32 camelia rakudo-moar f85978: OUTPUT«Type check failed in assignment to $!b; expected <anon> but got Int (42)␤  in block <unit> at <tmp> line 1␤␤»
00:33 SmokeMachine m: class C { has Int $.a = 42; has Str $.b where $!a }; say C.new.a
00:33 camelia rakudo-moar f85978: OUTPUT«42␤»
00:34 pyrimidine joined #perl6
00:35 pierrot joined #perl6
00:37 Ven joined #perl6
00:47 SmokeMachine m: class C { has Int $.a = 42; has Str $.b where $!a }; say C.new: :42a :42b
00:47 camelia rakudo-moar f85978: OUTPUT«Type check failed in assignment to $!b; expected <anon> but got Int (42)␤  in block <unit> at <tmp> line 1␤␤»
00:47 SmokeMachine m: class C { has Int $.a = 42; has Int $.b where $!a }; say C.new: :42a :42b
00:47 camelia rakudo-moar f85978: OUTPUT«Cannot look up attributes in a VMNull type object␤  in block <unit> at <tmp> line 1␤␤»
00:51 pyrimidine joined #perl6
00:52 IOninja m: class C { has Int $.a = 42; has Int $.b where { $_ == $!a } }; say C.new: :42a :42b
00:52 camelia rakudo-moar f85978: OUTPUT«Cannot look up attributes in a VMNull type object␤  in block <unit> at <tmp> line 1␤␤»
00:52 IOninja m: class C { has Int $.a = 42; has Int $.b where { $_ == $.a } }; say C.new: :42a :42b
00:52 camelia rakudo-moar f85978: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Virtual method call $.a may not be used on partially constructed object (maybe you mean $!a for direct attribute access here?)␤at <tmp>:1␤------> 3 $.a = 42; has Int $.b where { $_ == $.a7⏏5 } }; sa…»
00:52 IOninja weird
00:53 IOninja report it :)
00:57 Actualeyes joined #perl6
00:57 SmokeMachine :)
01:00 pyrimidine joined #perl6
01:05 japhb .
01:05 yoleaux 8 Feb 2017 13:37Z <[Coke]_> japhb: please update perl6-bench to use geth.
01:05 japhb [Coke], timotimo: done, and aimed it at perl6-dev instead
01:06 tony-o m: geth
01:06 camelia rakudo-moar f85978: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Undeclared routine:␤    geth used at line 1. Did you mean 'get', 'getc'?␤␤»
01:09 zakharyas joined #perl6
01:10 pierrot joined #perl6
01:10 pyrimidi_ joined #perl6
01:11 jdmmmmm joined #perl6
01:28 pyrimidi_ joined #perl6
01:29 IOninja heh
01:29 IOninja SmokeMachine: you got some sort of auto-replace on your email? All "camelia" references have been replaced with "Fernando Corrêa de Oliveira"
01:29 khisanth_ joined #perl6
01:29 IOninja Oh wait no
01:29 IOninja it just shows that after your name I guess.
01:32 cyphase joined #perl6
01:35 pyrimidi_ joined #perl6
01:46 SmokeMachine Yes, that's my name... I just coped and pasted from my irc client... was that broken?
01:46 pyrimidi_ joined #perl6
01:48 IOninja Nah, I just don't see that part on my end :)
01:51 SmokeMachine IOninja: here it's something like this:
01:51 SmokeMachine https://usercontent.irccloud-cdn.com/file/NjowjBfQ/IMG_1331.PNG
01:52 SmokeMachine (But I coped from my browser, and this print is from my phone... but both from irccloud...)
01:53 SmokeMachine (They are not paying me... :P)
02:04 jeffythedragonsl joined #perl6
02:04 pyrimidi_ joined #perl6
02:06 drbojingle joined #perl6
02:11 jeffythedragonsl joined #perl6
02:13 DrForr joined #perl6
02:20 _28_ria joined #perl6
02:23 pyrimidine joined #perl6
02:37 cdg joined #perl6
02:40 jdmmmmm joined #perl6
02:40 pyrimidine joined #perl6
02:47 ilbot3 joined #perl6
02:47 Topic for #perl6 is now »ö« Welcome to Perl 6! | https://perl6.org/ | evalbot usage: 'p6: say 3;' or rakudo:,  or /msg camelia p6: ... | irclog: http://irc.perl6.org or http://colabti.org/irclogger/irclogger_logs/perl6 | UTF-8 is our friend!
02:49 jeff_linahan joined #perl6
02:55 kalkin- joined #perl6
02:56 jeff__ joined #perl6
02:56 pyrimidine joined #perl6
02:58 dogbert11 joined #perl6
02:58 pyrimidi_ joined #perl6
02:59 [particle]1 joined #perl6
03:00 rblackwe joined #perl6
03:01 freeze joined #perl6
03:01 moritz joined #perl6
03:01 lep-delete joined #perl6
03:03 jdmmmmm joined #perl6
03:04 altLeCamarade joined #perl6
03:04 Hotkeys joined #perl6
03:05 LeCamarade joined #perl6
03:06 simcop2387 joined #perl6
03:12 jeek joined #perl6
03:17 pyrimidi_ joined #perl6
03:35 pyrimidi_ joined #perl6
03:35 pierrot joined #perl6
03:38 Herby_ joined #perl6
03:38 Herby_ o/
03:40 tony-o yo
03:42 noganex_ joined #perl6
03:45 aborazmeh joined #perl6
03:45 aborazmeh joined #perl6
03:46 Herby_ looking at this recent perl6 article: http://perltricks.com/article/6-more-things-about-6/
03:46 Herby_ in the "Easier Interpolation" section
03:47 Herby_ m: my @names = ['james', 'john', 'sal']; say "These are the @names[]";
03:47 camelia rakudo-moar f85978: OUTPUT«These are the james john sal␤»
03:47 Herby_ m: my @names = ['james', 'john', 'sal']; say "These are the @names[1]";
03:47 camelia rakudo-moar f85978: OUTPUT«These are the john␤»
03:47 Herby_ hmmm
03:48 Herby_ disregard
03:48 Herby_ must've mistyped something when i was poking through it
03:49 map joined #perl6
03:53 pyrimidi_ joined #perl6
04:05 jdmmmmm joined #perl6
04:07 xtreak joined #perl6
04:10 pyrimidi_ joined #perl6
04:29 pyrimidi_ joined #perl6
04:38 Cabanoss- joined #perl6
04:39 _28_ria joined #perl6
04:47 pyrimidine joined #perl6
04:51 LeCamara- joined #perl6
04:51 pyrimidine joined #perl6
05:01 xtreak joined #perl6
05:02 telex joined #perl6
05:06 pyrimidine joined #perl6
05:21 wamba joined #perl6
05:23 pyrimidine joined #perl6
05:25 LeCamarade joined #perl6
05:38 xtreak joined #perl6
05:39 LeCamarade joined #perl6
05:40 pyrimidine joined #perl6
05:41 bolangi joined #perl6
05:44 curan joined #perl6
05:45 LeCamarade joined #perl6
05:50 LeCamarade joined #perl6
05:53 jeffythedragonsl joined #perl6
05:58 pyrimidine joined #perl6
06:00 rurban joined #perl6
06:00 erdic joined #perl6
06:03 LeCamarade joined #perl6
06:05 LeCamarade joined #perl6
06:08 LeCamarade joined #perl6
06:10 dj_goku joined #perl6
06:10 dj_goku joined #perl6
06:12 imcsk8_ joined #perl6
06:16 pyrimidine joined #perl6
06:18 faraco joined #perl6
06:19 faraco m: say '@ARGS'
06:19 camelia rakudo-moar f85978: OUTPUT«@ARGS␤»
06:20 faraco m: my $sum = -> $a, $b { a+b};
06:20 camelia rakudo-moar f85978: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Undeclared routines:␤    a used at line 1␤    b used at line 1␤␤»
06:20 faraco m: my $sum = -> $a, $b { $a+$b};
06:20 camelia rakudo-moar f85978: ( no output )
06:20 faraco m: my $sum = -> $a, $b { $a+$b}; say $sum(2,2);
06:20 camelia rakudo-moar f85978: OUTPUT«4␤»
06:23 masak m: sub sum($a, $b) { $a + $b }; say sum 2, 2
06:23 camelia rakudo-moar f85978: OUTPUT«4␤»
06:24 pyrimidine joined #perl6
06:24 faraco does the idiom one include parenthesis?
06:24 xtreak joined #perl6
06:25 faraco m: @object_op_my = Q{7.2 8.2 1.2};
06:25 camelia rakudo-moar f85978: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Variable '@object_op_my' is not declared␤at <tmp>:1␤------> 3<BOL>7⏏5@object_op_my = Q{7.2 8.2 1.2};␤»
06:25 faraco m: my @object_op_my = Q{7.2 8.2 1.2};
06:25 camelia rakudo-moar f85978: ( no output )
06:25 faraco m: my @object_op_my = Q{7.2 8.2 1.2}.map($_ + 0.7);
06:25 camelia rakudo-moar f85978: OUTPUT«Use of uninitialized value of type Any in numeric context␤  in block <unit> at <tmp> line 1␤Cannot resolve caller map(Str: Rat); none of these signatures match:␤    ($: Hash \h, *%_)␤    (\SELF: &block;; :$label, :$item, *%_)␤    (HyperIterable:D…»
06:29 zostay_ joined #perl6
06:30 xtreak_ joined #perl6
06:32 lep_ joined #perl6
06:32 rmusial_ joined #perl6
06:33 moritz joined #perl6
06:33 faraco m: say $^O
06:33 camelia rakudo-moar f85978: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Unsupported use of $^O variable; in Perl 6 please use $?DISTRO.name or $*DISTRO.name␤at <tmp>:1␤------> 3say $^O7⏏5<EOL>␤»
06:33 faraco m: say $?DISTRO.name
06:33 camelia rakudo-moar f85978: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Variable '$?DISTRO' is not declared. Did you mean 'Distro'?␤at <tmp>:1␤------> 3say 7⏏5$?DISTRO.name␤»
06:33 faraco m: say $?DISTRO
06:33 camelia rakudo-moar f85978: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Variable '$?DISTRO' is not declared. Did you mean 'Distro'?␤at <tmp>:1␤------> 3say 7⏏5$?DISTRO␤»
06:33 simcop2387 joined #perl6
06:33 masak m: say Distro
06:33 camelia rakudo-moar f85978: OUTPUT«(Distro)␤»
06:33 faraco m:say Distro.eager
06:34 gdonald joined #perl6
06:34 faraco m: say Distro.eager
06:34 camelia rakudo-moar f85978: OUTPUT«((Distro))␤»
06:34 drrho joined #perl6
06:34 masak m: say $*DISTRO
06:34 camelia rakudo-moar f85978: OUTPUT«opensuse (13.2.Harlequin)␤»
06:34 masak faraco: how did you think to try `Distro.eager`? :P
06:34 john51 joined #perl6
06:35 masak faraco: I *think* $?DISTRO should exist, too, but doesn't seem to yet.
06:35 faraco m: ha, I forgot that environment variable is through $*ENV
06:35 camelia rakudo-moar f85978: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Undeclared name:␤    I used at line 1␤Undeclared routines:␤    environment used at line 1␤    forgot used at line 1␤    ha used at line 1␤    is used at line 1␤    that used at line 1. Did you …»
06:36 masak I'm over here \o
06:37 faraco masak: I just looked at the eager routine.
06:37 faraco I thought it something that can print the value of that, well I realized it just return the object in list
06:39 faraco m: say (1..10).seq
06:39 camelia rakudo-moar f85978: OUTPUT«No such method 'seq' for invocant of type 'Range'␤  in block <unit> at <tmp> line 1␤␤»
06:39 faraco m: say seq(1,10)
06:39 camelia rakudo-moar f85978: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Undeclared routine:␤    seq used at line 1. Did you mean 'set', 'sec'?␤␤»
06:40 Geth ¦ doc: antquinonez++ created pull request #1187: Did some extensive editing of the grammar tutorial.
06:40 Geth ¦ doc: review: https://github.com/perl6/doc/pull/1187
06:40 faraco m: say 1..Inf.is-lazy
06:40 camelia rakudo-moar f85978: OUTPUT«1..Bool::False␤»
06:41 faraco Did I do wrong with is-lazy?
06:41 faraco Returns True if the sequence is lazy and potentially infinite, and False otherwise
06:44 samcv can i make .base work for base 1 numbers?
06:44 samcv m: say 10.base(1)
06:44 camelia rakudo-moar f85978: OUTPUT«base argument to base out of range. Is: 1, should be in 2..36␤  in block <unit> at <tmp> line 1␤␤Actually thrown at:␤  in block <unit> at <tmp> line 1␤␤»
06:44 samcv should say like 1111111111
06:51 RabidGravy joined #perl6
06:51 moritz faraco: precedence
06:51 moritz m: say (1..Inf).is-lazy
06:51 camelia rakudo-moar f85978: OUTPUT«True␤»
06:53 faraco ah, dang. Thanks
06:54 CIAvash joined #perl6
06:58 faraco Is Task::Star deprecated, OO:Monitors not found on fresh install.
07:01 faraco nevermind
07:01 faraco Seems, some of the bundled modules is not needed for me.
07:02 faraco m: say "Doctor".trim
07:02 camelia rakudo-moar f85978: OUTPUT«Doctor␤»
07:02 faraco m: say "Doctor"
07:02 camelia rakudo-moar f85978: OUTPUT«Doctor␤»
07:04 masak m: say "            Doctor\t\t\t\t\t        ".trim
07:04 camelia rakudo-moar f85978: OUTPUT«Doctor␤»
07:04 imcsk8 joined #perl6
07:06 samcv how do i search a string and find the first character which is NOT a specified character?
07:06 samcv the fastest way
07:07 travis-ci joined #perl6
07:07 travis-ci Doc build passed. Antonio Quinonez 'Merge branch 'master' of https://github.com/perl6/doc into grammars-pod'
07:07 travis-ci https://travis-ci.org/antquinonez/doc/builds/199880754 https://github.com/antquinonez/doc/compare/grammar
07:07 travis-ci left #perl6
07:07 faraco masak: you got me again. thank you
07:07 faraco m: say "Doctor".first
07:07 camelia rakudo-moar f85978: OUTPUT«Doctor␤»
07:08 faraco so it's for list
07:08 moritz correct
07:09 faraco my @List = Q{data omix m}.first.say
07:09 faraco m: my @List = Q{data omix m}.first.say
07:09 camelia rakudo-moar f85978: OUTPUT«data omix m␤»
07:09 xtreak joined #perl6
07:09 faraco wait what
07:09 faraco m: my @List = Q{data omix m}; say @List.first
07:09 camelia rakudo-moar f85978: OUTPUT«data omix m␤»
07:10 faraco m: my @List = Q{data omix m}; say @List.split.first
07:10 camelia rakudo-moar f85978: OUTPUT«Cannot resolve caller split(Str: ); none of these signatures match:␤    (Str:D $: Regex:D $pat, $limit is copy = Inf;; :$v is copy, :$k, :$kv, :$p, :$skip-empty, *%_)␤    (Str:D $: Cool $match;; :$v is copy, :$k, :$kv, :$p, :$skip-empty, *%_)␤    (St…»
07:14 darutoko joined #perl6
07:15 faraco m: say 'doctor'.titlecase
07:15 camelia rakudo-moar f85978: OUTPUT«No such method 'titlecase' for invocant of type 'Str'␤  in block <unit> at <tmp> line 1␤␤»
07:16 faraco m: say 'doctor'.tc
07:16 camelia rakudo-moar f85978: OUTPUT«Doctor␤»
07:16 faraco m: say 'doctor'.tc - 1
07:16 camelia rakudo-moar f85978: OUTPUT«Cannot convert string to number: base-10 number must begin with valid digits or '.' in '3⏏5Doctor' (indicated by ⏏)␤  in block <unit> at <tmp> line 1␤␤Actually thrown at:␤  in block <unit> at <tmp> line 1␤␤»
07:17 faraco m: say 'doctor'.chars
07:17 camelia rakudo-moar f85978: OUTPUT«6␤»
07:18 faraco say 'Doctor'.index
07:18 faraco m: say 'Doctor'.index
07:18 camelia rakudo-moar f85978: OUTPUT«Cannot resolve caller index(Str: ); none of these signatures match:␤    (Cool:D $: Cool $needle, *%_)␤    (Cool:D $: Cool $needle, Cool $pos, *%_)␤    (Str:D $: Str:D $needle, *%_)␤    (Str:D $: Str:D $needle, Int:D $pos, *%_)␤  in block <unit> a…»
07:19 faraco m: index("Doctor",'t').say
07:19 camelia rakudo-moar f85978: OUTPUT«3␤»
07:19 faraco m: rindex("Doctor",'t').say
07:19 camelia rakudo-moar f85978: OUTPUT«3␤»
07:19 samcv ok well i'm going to add .base(1) and .parse-base(1), because why not
07:19 samcv it's trivial to support
07:21 faraco m: say 10.base(2)
07:21 camelia rakudo-moar f85978: OUTPUT«1010␤»
07:21 faraco m: say 10.base(8)
07:21 camelia rakudo-moar f85978: OUTPUT«12␤»
07:22 faraco m: say 10.base(16)
07:22 camelia rakudo-moar f85978: OUTPUT«A␤»
07:22 faraco m: say 90000.base(16)
07:22 camelia rakudo-moar f85978: OUTPUT«15F90␤»
07:22 faraco how does base 1 work?
07:22 wamba joined #perl6
07:23 samcv 10.base(1) # 1111111111
07:23 moritz m: say 5.base(1)
07:23 camelia rakudo-moar f85978: OUTPUT«base argument to base out of range. Is: 1, should be in 2..36␤  in block <unit> at <tmp> line 1␤␤Actually thrown at:␤  in block <unit> at <tmp> line 1␤␤»
07:23 samcv 1.base(1) # 1
07:23 faraco oh...so 10000000 = x1
07:23 samcv heh
07:23 faraco I mean, everything turned into 1
07:23 samcv yeah basically
07:24 samcv and .parse-base i got it so that it returns the correct value, and also returns a parse error and tells you where the incorrect character is
07:24 faraco nice. Is this the thing we called lazy evaluation? Not really familiar with that term.
07:24 samcv like if you do "1110111".parse-base(1) it'll show you the error button at the 0
07:24 samcv not really lazy
07:25 samcv m: my @array = lazy gather { take 1 for 0..* }; say @array[0]
07:25 camelia rakudo-moar f85978: OUTPUT«1␤»
07:25 samcv that is lazily taking the values. you can do whatever you want in a lazy gather block and it'll only compute up to how much it needs to
07:25 faraco sounds like map?
07:25 samcv i used it recently for parsing some of the unicode test files
07:25 pyrimidine joined #perl6
07:26 samcv i guess in some ways idk
07:26 samcv you can do a lot more code inside gather blocks
07:26 samcv it's way more flexible
07:26 faraco I really need to learn functional stuff in Perl 6, haha :D
07:26 * moritz really needs to write a chapter on functional stuff in Perl 6
07:26 samcv so i have it slurp the lines of my file (not sure if slurp is lazy it may be)
07:26 samcv and then it lazily gathers lines
07:27 moritz lines is lazy, slurp is not
07:27 samcv having to process like hex numbers into cp's and extract the comments and other info
07:27 samcv and put it into a lazy array full of pairs
07:27 moritz slurp returns a string, strings aren't lazy
07:27 samcv slurp.lines?
07:27 samcv lines is lazy
07:27 moritz $filehandle.lines
07:29 faraco https://docs.perl6.org/language/functions , this is the one that I think has the most functional stuff (I saw that Lambda).
07:30 moritz this teaches you how to write functions, not functional programming
07:31 samcv but lazy gather helped so much cause the unicode file is like 100,000+ lines
07:31 samcv maybe 300,000?
07:31 samcv more?
07:31 samcv idk it's 17MB tho
07:31 moritz so don't read it with slurp, read it with lines
07:31 samcv the slurping isn't the slow part
07:32 samcv it's processing it
07:32 samcv also how do i read it by line, curious
07:32 timotimo samcv: tbh, if you want to find the first non-1, i'd regexmatch against ^'1'+ and look at .end
07:32 samcv reading the file is plenty fast, but might as well make it lazy
07:32 samcv well i came up with something already
07:32 timotimo OK
07:32 samcv my int $i = 0;
07:32 samcv while $i++ < $chars {
07:32 samcv last unless nqp::eqat(self, '1', $i);
07:32 samcv }
07:32 timotimo that's fair
07:33 samcv then I use the $i for the error message
07:33 moritz my $fh = open $thefile; for $fh.lines -> $line { ... }
07:33 samcv so it knows where the bad char is. this is the slow path btw
07:33 faraco so, in Perl 6, when you should use lines and slurp?
07:33 samcv i do `if self eq nqp::x('1', $chars)`
07:33 samcv and if that is true then it just returns the number of characters in the string
07:33 masak faraco: when something can be processed line-by-line, use .lines
07:33 masak faraco: when you have to have the whole content at once,use .slurp
07:34 samcv IO::Path.lines then?
07:34 faraco so, this means lines is much more flexible then, because it can operate on the line compared to slurp, that operate on the whole content?
07:34 samcv yeah
07:35 samcv slurp.lines the lines part is lazy but not the slurp
07:35 samcv so the script starts a fraction of a second faster now
07:35 faraco ah :)
07:35 samcv i have an SSD so reading 17MB is pretty fast
07:35 samcv if i put the lazy gather in a start block... can i thread this?
07:36 masak faraco: also, it's possible you won't need to read all the lines. in that case .lines would also be faster
07:36 masak or at least potentially claim less memory
07:37 samcv cool nice, added a start block, and now it's threaded
07:37 timotimo slurp grabs every last byte into memory, lines is allowed to drop earlier parts of the file again
07:37 samcv seems to be going much faster now
07:38 samcv idk maybe it's not faster i only see one MVM process in `htop`
07:38 timotimo actually it should keep its extra thread as soon as it encounters a single start block
07:38 faraco so like, for $fh.IO.lines -> ln { ..operate on data.. unless eol }
07:38 timotimo forget about "eol"
07:39 timotimo it just stops running the for loop when the file ends
07:39 samcv timotimo, huh?
07:39 samcv why am i not seeing two processes?
07:39 faraco or let's change eol to any line, let's say, the file has 100 lines, I want to read to 20.
07:39 timotimo maybe you can configure htop to not show threads
07:40 timotimo then you'd use "last"
07:40 samcv top only shows one too
07:40 faraco oh, break
07:40 timotimo well, htop does have "hide userland process threads", but when top doesn't show a second one, that's probably authoratitive
07:40 faraco ..if (ln 20) { last; }
07:41 faraco or last if ln 20
07:41 samcv yeah it doesn't seem to run any faster with a start block either
07:41 samcv oh well
07:41 timotimo you also have to use either $ln or \ln
07:41 faraco forgot the sigils :3
07:42 timotimo .o( "forget about the sigil" - the goblin king )
07:42 faraco till today, I do not understand what does .o(BLAH) means?
07:42 timotimo thought bubbles
07:42 timotimo like in a comic
07:43 samcv .oO(thinking intently)
07:43 faraco It's been a long time I didn't touch a comic
07:43 samcv u: speech bubble
07:43 unicodable6 samcv, U+1F5E8 LEFT SPEECH BUBBLE [So] (????)
07:43 unicodable6 samcv, U+1F5E9 RIGHT SPEECH BUBBLE [So] (????)
07:43 unicodable6 samcv, https://gist.github.com/f3e8b8f31a3e9b90b6f2cf3903e09603
07:43 samcv u: thought bubble
07:43 unicodable6 samcv, U+1F5EC LEFT THOUGHT BUBBLE [So] (????)
07:43 unicodable6 samcv, U+1F5ED RIGHT THOUGHT BUBBLE [So] (????)
07:43 timotimo google image search should help
07:43 samcv ???? thinking intently ????
07:43 timotimo doesn't display in my terminal ;(
07:44 samcv get more fonts
07:44 faraco he
07:44 samcv just install noto-emoji and symbola
07:44 samcv and you should be mostly — set
07:45 faraco are you on fedora or something other than Debian
07:46 timotimo i already had symbola installed, but not the noto emoji font
07:46 timotimo maybe this helps
07:46 samcv do you think a multi for .base(1) is gonna be faster than putting an if inside of the other multi?
07:46 samcv it already has some other multi's based on no of arguments
07:48 timotimo not entirely sure, measuring is always best anyway
07:48 faraco m: $*DISTRO.say
07:48 camelia rakudo-moar f85978: OUTPUT«opensuse (13.2.Harlequin)␤»
07:48 faraco m: q:x{uname -r}
07:48 camelia rakudo-moar f85978: OUTPUT«qx, qqx is disallowed in restricted setting␤  in sub restricted at src/RESTRICTED.setting line 1␤  in sub QX at src/RESTRICTED.setting line 11␤  in block <unit> at <tmp> line 1␤␤»
07:49 faraco alrighty
07:49 timotimo were you still confused about Q{a b c} not giving you a list?
07:49 samcv i think it would be hard to see a difference
07:49 faraco m: shell 'uname -r'
07:49 camelia rakudo-moar f85978: OUTPUT«shell is disallowed in restricted setting␤  in sub restricted at src/RESTRICTED.setting line 1␤  in sub shell at src/RESTRICTED.setting line 15␤  in block <unit> at <tmp> line 1␤␤»
07:50 samcv yeah no it doesn't seem to measurably slow it down
07:52 faraco m: 0..20.eager.say
07:52 camelia rakudo-moar f85978: OUTPUT«WARNINGS for <tmp>:␤Useless use of ".." in expression "0..20.eager.say" in sink context (line 1)␤(20)␤»
07:52 faraco m: (0..20).eager.say
07:52 camelia rakudo-moar f85978: OUTPUT«(0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20)␤»
07:52 faraco Yeah, finally! I'm beating you precedence. Face this wrath!
07:53 moritz faraco++
07:54 timotimo m: 0..20 .eager.say
07:54 camelia rakudo-moar f85978: OUTPUT«WARNINGS for <tmp>:␤Useless use of ".." in expression "0..20 .eager." in sink context (line 1)␤(20)␤»
07:54 timotimo oh, interesting
07:54 timotimo i thought that was a trick to get lower precedence on the method call?
07:54 moritz masak: I just learned there's a book called "How to Break Software". Had to think of you immediately :-)
07:55 moritz timotimo: it's lower precedence, but I don't know how much lower
07:56 faraco Anyone try to port the DCONWAY's Bleach Perl 5 module into Perl 6?
07:57 faraco trying*
07:57 samcv hah
07:57 samcv because reasons?
07:57 timotimo yeah, we have that
07:57 timotimo buggable: eco scrub
07:57 buggable timotimo, Acme::Scrub 'For REALLY clean code.': https://github.com/thundergnat/Acme-Scrub
07:58 faraco oh, different name?
07:58 faraco hah, I'm gonna have fun
07:58 timotimo yeah, our first Dancer clone was also called Bailador
07:58 timotimo rathen than just Dancer
07:58 samcv “ It is possible to recover the original code... but why would you want to?”
07:59 samcv fact
07:59 timotimo truth
07:59 faraco "because I want to learn how that works".
08:00 samcv how does that work
08:00 faraco I don't know.
08:00 * moritz would love an Acme::Scrub that whitespace-encodes moarvm bytecode and executes that
08:00 samcv https://github.com/thundergnat/Acme-Scrub/blob/master/lib/Acme/Scrub.pm6
08:00 samcv it's really short
08:00 faraco For real?
08:00 faraco oh man
08:00 samcv how does it work tho
08:01 moritz m: my @socks = '​'.comb; say @socks.perl
08:01 camelia rakudo-moar f85978: OUTPUT«["", "​"]␤»
08:01 samcv what.
08:01 moritz m: my @socks = '​'.comb; say @socks>>.uniname
08:01 camelia rakudo-moar f85978: OUTPUT«[ZERO WIDTH NO-BREAK SPACE ZERO WIDTH SPACE]␤»
08:02 samcv so
08:02 faraco Running a hidden code.
08:02 samcv that would just make no spaces in your code
08:02 timotimo there's also Anguish, which is a brainfuck-oriented language with only non-printing unicode characters
08:02 moritz so it makes ZERO WIDTH NO-BREAK SPACE to 0 and ZERO WIDTH SPACE to 1
08:02 moritz s/makes/maps/
08:03 samcv lol
08:03 samcv can't you just have a file of 1 and 0 and compile it to anguish
08:03 moritz and uses that to binary-encode a blob
08:04 samcv well it cleaned up my code
08:04 samcv and i don't see the original characters inside the hexdump
08:04 timotimo anguish encodes instructions, not whole values
08:04 samcv so
08:04 timotimo though you can create a program that outputs any given sequence
08:05 timotimo just like brainfuck hello world works
08:05 faraco For sure, if Acme::Scrub function as Bleach, than I praise the Perl 6 to bring a lot of sugars to make the code super compact and readable.
08:05 samcv lol.
08:05 samcv how does it work if the original characters are not in the output?
08:05 samcv if i hexdump it
08:05 samcv do i need to utf-8 dump it
08:06 timotimo maybe scrub is currently broken?
08:06 cibs joined #perl6
08:06 faraco oh noo, I'm trying to install it
08:06 samcv no it works fine
08:06 samcv it filled my code with no width spaces
08:07 samcv SEMICOLON SPACE NUMBER SIGN ZERO WIDTH NO-BREAK SPACE ZERO WIDTH NO-BREAK SPACE ZERO WIDTH NO-BREAK SPACE ZERO WIDTH NO-BREAK SPACE ZERO WIDTH SPACE ZERO WIDTH NO-BREAK SPACE ZERO WIDTH SPACE ZERO WIDTH NO-BREAK SPACE ZERO WIDTH NO-BREAK SPACE ZERO WIDTH NO-BREAK SPACE ZERO WIDTH NO-BREAK SPACE ZERO WIDTH NO-BREAK SPACE ZERO WIDTH SPACE ZERO WIDTH NO-BREAK SPACE ZERO WIDTH SPACE ZERO WIDTH NO-BREAK SPACE ZERO WIDTH NO-BREAK SPACE ZERO WIDTH SPACE ZERO
08:07 samcv WIDTH SPACE ZERO WIDTH SPACE ZERO WIDTH NO-BREAK SPACE ZERO WIDTH NO-BREAK SPACE ZERO WIDTH SPACE ZERO WIDTH SPACE ZERO WIDTH NO-BREAK SPACE ZERO WIDTH SPACE ZERO WIDTH SPACE ZERO WIDTH NO-BREAK SPACE ZERO WIDTH NO-BREAK SPACE ZERO WIDTH NO-BREAK SPACE ZERO WI
08:07 samcv oh no i see some letters here
08:07 samcv at the very end
08:07 samcv nope it just says for really clean code
08:07 samcv so howwwwwwwwww
08:07 samcv what method does perl 6 allow for this
08:08 faraco ew..it actually obsfucate the code
08:08 samcv more secure
08:08 faraco It's just for fun though, so I don't think most Acme::Modules can be taken seriously.
08:08 faraco but some of them really useful to me.
08:12 samcv oh faraco acme scrub just evals it :)
08:12 faraco :'(((((((
08:12 samcv they take the no break spaces and then decode it and then eval
08:12 samcv shame on them for using a base 2 system
08:12 samcv there's more zero width chars i think?
08:12 samcv u: zero width
08:12 unicodable6 samcv, U+200B ZERO WIDTH SPACE [Cf] (​)
08:12 unicodable6 samcv, U+200C ZERO WIDTH NON-JOINER [Cf] (‌)
08:12 samcv see
08:12 unicodable6 samcv, https://gist.github.com/1aabbd1256a001725f8ecf9f8e3d5747
08:12 samcv should have used a base4 system
08:12 samcv and would be able to be way smaller
08:13 moritz submit a pull request!
08:13 samcv :\
08:13 moritz or write your own Acme module
08:13 samcv making the world a better place
08:13 moritz I hear it's a rite of passage among Perl developers :-)
08:13 faraco There is more than one module to use.
08:14 moritz though I've only written a p5 Acme module so far
08:14 _28_ria joined #perl6
08:14 faraco that takes me a day to choose either Dancer2 or Mojo to test micro framework
08:14 moritz http://search.cpan.org/~moritz/Acme-Curse-0.0.1/lib/Acme/Curse.pm
08:14 samcv i want one that bleaches all your files
08:14 samcv on your whole computer
08:14 faraco What Acme::Burn will be? hmm?
08:15 samcv delete
08:15 samcv EVERYTHING
08:15 samcv well replace everything with fire emoji
08:15 samcv fire emoji and zero width characters
08:15 moritz +1
08:15 samcv heh
08:16 samcv making the world a better place dammit!
08:16 timotimo imagine a crypto trojan that gives files that treatment
08:16 timotimo people would be so confused
08:19 xtreak joined #perl6
08:19 samcv heh
08:20 moritz ransomware
08:20 moritz you have to pet camelia to get it decrypted!
08:21 faraco Camelia has the sixth sense.
08:25 faraco m: say "200B".base(100
08:25 camelia rakudo-moar f85978: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Unable to parse expression in argument list; couldn't find final ')' ␤at <tmp>:1␤------> 3say "200B".base(1007⏏5<EOL>␤»
08:25 faraco m: say "200B".base(10)
08:25 camelia rakudo-moar f85978: OUTPUT«No such method 'base' for invocant of type 'Str'␤  in block <unit> at <tmp> line 1␤␤»
08:26 faraco m: say "200B".ord
08:26 camelia rakudo-moar f85978: OUTPUT«50␤»
08:26 faraco m: say "200B".char
08:26 camelia rakudo-moar f85978: OUTPUT«No such method 'char' for invocant of type 'Str'␤  in block <unit> at <tmp> line 1␤␤»
08:26 faraco m: say "200B".chr
08:26 camelia rakudo-moar f85978: OUTPUT«Cannot convert string to number: trailing characters after number in '200⏏5B' (indicated by ⏏)␤  in block <unit> at <tmp> line 1␤␤Actually thrown at:␤  in block <unit> at <tmp> line 1␤␤»
08:27 pyrimidine joined #perl6
08:28 abraxxa joined #perl6
08:29 faraco m: say "9,2,8,10".comb(/\d+/).join(':');
08:29 camelia rakudo-moar f85978: OUTPUT«9:2:8:10␤»
08:29 timotimo m: say "0x200B".chr
08:29 camelia rakudo-moar f85978: OUTPUT«​␤»
08:30 faraco m: say "9,2,8,10".comb(/\./).join(':');
08:30 camelia rakudo-moar f85978: OUTPUT«␤»
08:30 faraco m: say "9,2,8,10".comb(/\.*/).join(':');
08:30 camelia rakudo-moar f85978: OUTPUT«::::::::␤»
08:30 faraco m: say "9,2,8,10".comb(/.*/).join(':');
08:30 camelia rakudo-moar f85978: OUTPUT«9,2,8,10:␤»
08:33 faraco m: say so if "Datac".contains 'c';
08:33 camelia rakudo-moar 295b0b: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Two terms in a row␤at <tmp>:1␤------> 3say so if "Datac".contains7⏏5 'c';␤    expecting any of:␤        infix␤        infix stopper␤        postfix␤        statement end␤        stateme…»
08:33 robertle joined #perl6
08:33 faraco m: say so if "Datac".contains('c');
08:33 camelia rakudo-moar 295b0b: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Undeclared routine:␤    if used at line 1␤␤»
08:33 faraco m: say so "Datac".contains('c');
08:33 camelia rakudo-moar 295b0b: OUTPUT«True␤»
08:33 xtreak joined #perl6
08:34 faraco m: $*PID
08:34 camelia rakudo-moar 295b0b: ( no output )
08:34 faraco m: $*PID.say
08:34 camelia rakudo-moar 295b0b: OUTPUT«15753␤»
08:36 faraco m: say $*KERNEL;
08:36 camelia rakudo-moar 295b0b: OUTPUT«linux (3.16.7.42.default)␤»
08:36 faraco m: say $*PERL;
08:36 camelia rakudo-moar 295b0b: OUTPUT«Perl 6 (6.c)␤»
08:36 timotimo do you know you can private-message camelia, too?
08:36 faraco oh
08:37 faraco ty
08:38 timotimo NP :)
08:40 ufobat joined #perl6
08:42 faraco A question, why Perl 6 not enabling the my by default?
08:44 DrForr Because that leads immediately to people typoing variable names and spending hours trying to find a spelling mistake, much like what happens to lots of people in Perl 5.
08:46 timotimo one of the most requested things for perl6 was to make "use strict" the default, which also means "you always have to put 'my'"
08:46 labster joined #perl6
08:46 dakkar joined #perl6
08:47 faraco hmm I see, thank you.
08:47 timotimo you can "no strict", though
08:47 timotimo then it'll give undeclared variables "our" by default
08:49 timotimo but i have to warn you, it'll be extremely slow
08:49 pyrimidine joined #perl6
08:50 DrForr Speaking of which I didn't get a single question about performance during the talk, at least that I can remember :)
08:51 timotimo clearly people haven't tried perl6 out hard enough
08:51 DrForr Gotta start somewhere :)
08:52 faraco so, is Perl 6 fast? :P
08:52 pyrimidi_ joined #perl6
08:52 DrForr Yes, for several values of 'fast' :)
08:52 timotimo the bad thing is that the difference between similar pieces of code can be quite extreme
08:52 timotimo so it's hard to figure out performance
08:52 timotimo OTOH, it means that little changes can get you 100x improvements in performance sometimes
08:54 rindolf joined #perl6
09:08 jonas1 joined #perl6
09:10 timotimo if someone who's good at both perl5 and perl6 could come up with a nice suite of regexes for multiple tasks, that'd be nice
09:10 timotimo like, a benchmark suite of sorts
09:10 timotimo also, multiple implementations from p5 and p6 for each task
09:12 TEttinger I'd be curious to see the results. P6's grammars seem much more powerful
09:12 TEttinger not sure if you'd test the composable grammars or just the part that's directly comparable
09:13 timotimo this would purely be for regex performance
09:14 timotimo so you don't do any grammars at all, unless a perl5 regex is better implemented as a grammar in p6
09:14 timotimo but even then there ought to also be a somewhat-1:1 translatino
09:14 timotimo basically i'm imagining having a list of bar charts for each of the tasks that shows how each variant performs, and then having them sorted by speed
09:15 timotimo it'd obviously have to go over a rather big piece of data, and perl6 and perl5 startup time has to be subtracted
09:15 itcharlie1 joined #perl6
09:17 timotimo because startup time is so punishing for perl6, and it'd probably be more suited for long-running programs anyway
09:18 TEttinger "count how many dicks are in moby dick"
09:18 timotimo also, there ought to be a script to set up all the data sources
09:46 samcv think it's so odd that this works:
09:46 samcv m: my $r = ((1,)..'a'); say $r[2]
09:46 camelia rakudo-moar a21d2f: OUTPUT«3␤»
09:46 samcv m: my $r = ((1,)..'a'); say $r[*]
09:46 samcv lol ok that's gonna time out
09:46 samcv m: my $r = ((1,)..'a'); say $r.tail
09:47 camelia rakudo-moar a21d2f: OUTPUT«(timeout)»
09:47 camelia rakudo-moar a21d2f: OUTPUT«(timeout)»
09:47 samcv m: my $var = 'a'..1; say $var.head
09:47 camelia rakudo-moar a21d2f: OUTPUT«Nil␤»
09:48 z448 joined #perl6
09:48 sena_kun joined #perl6
09:50 ocbtec joined #perl6
09:51 xtreak joined #perl6
09:53 bjz joined #perl6
09:55 pyrimidine joined #perl6
09:58 timotimo .tell jnthn you're generating benchmark plots from perl6-bench version ea2a4d0, but there's been 7 commits since then; you committed to perl6-bench for that exact commit; maybe your "origin" is your own fork or something?
09:58 yoleaux timotimo: I'll pass your message to jnthn.
10:04 jnthn timotimo: Manually done a pull now so it's up to date again, at least
10:04 yoleaux 09:58Z <timotimo> jnthn: you're generating benchmark plots from perl6-bench version ea2a4d0, but there's been 7 commits since then; you committed to perl6-bench for that exact commit; maybe your "origin" is your own fork or something?
10:08 pochi joined #perl6
10:29 bjz joined #perl6
10:51 pyrimidine joined #perl6
10:52 pyrimidi_ joined #perl6
10:56 user9 joined #perl6
11:06 espadrine joined #perl6
11:06 abraxxa joined #perl6
11:36 jnthn .tell tony-o Double-close crash and various other operation-on-closed-socket issues are now sorted out (hopefully!) and test covered :)
11:36 yoleaux jnthn: I'll pass your message to tony-o.
11:46 samcv huggable, hug me
11:46 * huggable hugs samcv
11:46 samcv huggable, hug huggable
11:46 * huggable hugs huggable
11:47 samcv huggable, help
11:47 huggable samcv, nothing found
11:47 samcv lol.
11:48 IOninja uhoh... Canada under attack from USA...
11:48 IOninja They plan to send us Sara Palin!
11:49 IOninja huggable: source
11:49 huggable IOninja, See https://github.com/zoffixznet/huggable
11:51 xtreak joined #perl6
11:51 pyrimidine joined #perl6
11:54 DrForr Most of us don't want her :)
11:56 IOninja We'll retaliate by sending you another Justin Beiber ;)
11:56 DrForr o/' Celine Dion, you soft rock my world o/'
12:01 samcv IOninja, some people would not be unhappy with that
12:05 bjz_ joined #perl6
12:06 wamba joined #perl6
12:09 IOninja You're right. Need to up the ante. A Justin Beiber singing "My Heart Will Go On" but to the music of "Complicated", and when he gets older he'll run for president claiming he didn't know he had Canadian citizenship ;)
12:10 Sound joined #perl6
12:11 samcv IOninja, might as well just say you will retaliate by taking back Justin Bieber lol
12:12 sufrostico joined #perl6
12:14 xtreak joined #perl6
12:14 thdr|2 joined #perl6
12:15 cognominal joined #perl6
12:17 xtreak joined #perl6
12:17 yqt joined #perl6
12:23 Technaton joined #perl6
12:24 eroux joined #perl6
12:27 xtreak joined #perl6
12:28 moritz IOninja tries to hit *everyone*
12:29 * masak .oO( ...and that's how you create a pop hit )
12:34 xtreak joined #perl6
12:47 pyrimidine joined #perl6
12:50 geekosaur joined #perl6
12:53 pyrimidine joined #perl6
13:00 lukaramu joined #perl6
13:00 xtreak joined #perl6
13:10 zakharyas joined #perl6
13:16 xtreak joined #perl6
13:17 hchienjo joined #perl6
13:23 abraxxa joined #perl6
13:27 itaipu joined #perl6
13:28 xtreak joined #perl6
13:28 Sound joined #perl6
13:30 lukiramu joined #perl6
13:31 wamba joined #perl6
13:38 bjz joined #perl6
13:54 llfourn joined #perl6
13:54 pyrimidine joined #perl6
13:57 llfourn joined #perl6
14:01 llfourn joined #perl6
14:05 llfourn joined #perl6
14:29 bwisti joined #perl6
14:39 tony-o timotimo: jnthn: can either of you verify i can commit to perl6 org's git?
14:39 yoleaux 11:36Z <jnthn> tony-o: Double-close crash and various other operation-on-closed-socket issues are now sorted out (hopefully!) and test covered :)
14:40 tony-o .tell jnthn you rock! thank you
14:40 yoleaux tony-o: I'll pass your message to jnthn.
14:40 IOninja I can. What's your username?
14:40 tony-o tony-o
14:41 IOninja Yup. says already a member of `perl6` team and that one has commit perms to most of repos
14:42 tony-o cool, thank you IOninja
14:46 tony-o .tell jnthn that seems to have done the trick, thank you!
14:46 yoleaux tony-o: I'll pass your message to jnthn.
14:49 moritz tony-o: what's your github username?
14:49 moritz ah, seems IOninja was faster
14:50 IOninja They don't call me a ninja for nothing!
14:50 tony-o why do they call you IO ?
14:51 IOninja Because I'm doing the IO grant for TPF :P
14:52 tony-o nice
14:52 Actualeyes joined #perl6
14:52 * moritz thought IOninja was a ninja from the moon IO
14:53 tony-o so i'm going to move HTTP::Server::Async into the perl6 namespace so it has more oversight than just me, is there any opposition to that ?
14:53 jeek I keep thinking IOError, who is a completely different person. (Presumably)
14:53 moritz tony-o: not from me, run with it!
14:53 itaipu joined #perl6
14:54 tony-o cool
14:54 tony-o is there other modules that i should consider tossing into that namespace?
14:55 tony-o http://modules.zef.pm/profile/github:tony-o - here is a list of what i have out there
14:55 sufrostico joined #perl6
14:56 pyrimidine joined #perl6
14:58 gdonald joined #perl6
14:58 tony-o does it make sense to move HTTP::Server in there?  it's a Role
14:58 tony-o and H:S:A does it.
15:15 kaare_ joined #perl6
15:22 xtreak joined #perl6
15:22 smls joined #perl6
15:24 smls Is it safe to use bisectable with an expression that hangs indefinitely on some Rakudo versions?
15:25 IOninja smls: yes
15:25 smls ok
15:25 smls bisectable6: say <a b c d e f>.rotor: 1...*;
15:25 bisectable6 smls, Bisecting by exit signal (old=2015.12 new=1615c83). Old exit signal: 1 (SIGHUP)
15:26 IOninja hm, I guess "yes" is not entirely accurate :) It *does* have a timeout, but the way it's currently made is bisecting prevents it from responding to server pings, so it can get nixed
15:27 bisectable6 smls, bisect log: https://gist.github.com/6777a66da829788b9eae02e4e7782bf7
15:27 bisectable6 smls, (2017-01-17) https://github.com/rakudo/rakudo/commit/d7b82149d31da04763f0d269f0e3e76f67efd5fe
15:27 IOninja woo
15:27 IOninja m: say <a b c d e f>.rotor: 1...*;
15:27 camelia rakudo-moar 1615c8: OUTPUT«((a) (b c) (d e f))␤»
15:27 IOninja looks right
15:27 IOninja mc: say <a b c d e f>.rotor: 1...*;
15:27 smls nice, a performance improvement by lizmat++ that accidentally fixed a bug too
15:28 committable6 IOninja, ¦«2015.12»: «timed out after 10 seconds, output»:  «exit signal = SIGHUP (1)»
15:28 IOninja \o/
15:28 jnthn Quick, add a test. ;)
15:28 yoleaux 14:40Z <tony-o> jnthn: you rock! thank you
15:28 yoleaux 14:46Z <tony-o> jnthn: that seems to have done the trick, thank you!
15:28 jnthn \o/
15:28 smls IOninja: It's #129175
15:28 synopsebot6 Link:  https://rt.perl.org/rt3//Public/Bug/Display.html?id=129175
15:28 jnthn tony-o: yay :)
15:28 smls I'm cechking up some on some of my older RT tickets
15:28 IOninja m: -> *@a { @a.is-lazy.say }(1…∞)
15:28 camelia rakudo-moar 1615c8: OUTPUT«True␤»
15:28 IOninja bisect: -> *@a { @a.is-lazy.say }(1…∞)
15:29 bisectable6 IOninja, Bisecting by exit signal (old=2015.12 new=1615c83). Old exit signal: 1 (SIGHUP)
15:29 IOninja -> **@a { @a.is-lazy.say }(1…∞)
15:29 IOninja m: -> **@a { @a.is-lazy.say }(1…∞)
15:29 camelia rakudo-moar 1615c8: OUTPUT«False␤»
15:29 IOninja m: -> +@a { @a.is-lazy.say }(1…∞)
15:29 camelia rakudo-moar 1615c8: OUTPUT«True␤»
15:29 IOninja jnthn: ^ should that say True for **@ slurpy too?
15:30 IOninja Oh
15:30 bisectable6 IOninja, bisect log: https://gist.github.com/2b7b879406e3e849e26c7296ada96552
15:30 bisectable6 IOninja, (2017-02-07) https://github.com/rakudo/rakudo/commit/51b0aba8e8f3d40839f5f477520c8031029fa1f0
15:30 IOninja m: -> +@a { @a.elems.say }(1…∞)
15:30 camelia rakudo-moar 1615c8: OUTPUT«Cannot .elems a lazy list␤  in block <unit> at <tmp> line 1␤␤Actually thrown at:␤  in block <unit> at <tmp> line 1␤␤»
15:30 IOninja m: -> **@a { @a.elems.say }(1…∞)
15:30 camelia rakudo-moar 1615c8: OUTPUT«1␤»
15:30 IOninja it ends up with the list as first arg
15:31 IOninja well, Seq
15:31 jnthn Yeah, which is what **@foo is meant to do
15:31 itaipu joined #perl6
15:31 jnthn So I don't think it really would make sense
15:31 IOninja I misunderstood what it does
15:31 jnthn *nod*
15:31 jnthn It's a reasonable question to ask about *@foo though
15:31 IOninja But that kinda introduces inconsystency
15:32 jnthn How so?
15:32 IOninja m: (1…∞).flat.say; say flat 1…∞
15:32 camelia rakudo-moar 1615c8: OUTPUT«(...)␤(1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 8…»
15:32 IOninja I mean in here ^
15:32 IOninja m: (1…∞).flat.is-lazy.say; say (flat 1…∞).is-lazy
15:32 camelia rakudo-moar 1615c8: OUTPUT«True␤False␤»
15:32 IOninja because sub flat uses **@
15:33 IOninja I guess not "that instroduces" but there is this inconsistency in flat()
15:33 jnthn Yeah, I think **@ is doing the right thing, and we might want to question flat
15:38 cdg joined #perl6
15:44 tony-o and just like that, a star is born - https://github.com/perl6/perl6-http-server-async
15:44 Tonik joined #perl6
15:46 khw joined #perl6
15:49 pyrimidine joined #perl6
15:55 tony-o jnthn: did you see or know of a way to check if the socket is closed or closing?
15:55 IOninja m: say -5 % -2
15:55 camelia rakudo-moar 1615c8: OUTPUT«-1␤»
15:55 IOninja What does it mean that remainder is negative?
15:55 IOninja m: say -5 div -2
15:56 camelia rakudo-moar 1615c8: OUTPUT«2␤»
15:56 IOninja m: say -5 - (-2*2)
15:56 camelia rakudo-moar 1615c8: OUTPUT«-1␤»
15:56 IOninja Ah, ok
15:59 jdmmmmm joined #perl6
15:59 jnthn tony-o: Well, I saw how to ask libuv, 'cus that's what the fix I did today uses. There's not a way to do it from Perl 6 space; only tracking if the Supply of incoming data fired its done event can reliably do that at the moment.
16:00 jnthn tony-o: Thing is, to ask we need to marshall the operation over to the eventloop thread from whatever we're on when asking
16:00 jnthn So it ends up being an async operation to ask
16:00 jnthn Trying to write zero bytes and seeing if that fails is another way
16:02 jnthn (And will end up being as cheap as actually asking. In fact, if you wanted a method for "is it closed" today, I'd probably just implement the method in terms of a zero-byte write. :)
16:05 tony-o interesting - that'll save me from what i'm doing right now :-)
16:09 cdg_ joined #perl6
16:09 ilmari the behaviour of writing zero bytes to a non-regular file is explicitly unspecified by POSIX
16:10 ilmari and even for regular files it is permitted to just return zero with no error detection
16:13 telex joined #perl6
16:17 jnthn ilmari: In this case the error detection is on the codepath leading up to syscall, so we never make it to an I/O call in the handle closed case.
16:17 ilmari ah, okay
16:18 jnthn ilmari: And we have to guard that case ourselves, as on a closed handle it can lead to Very Bad Things happening
16:18 jnthn Thanks for mentioning it, though. :)
16:19 ilmari I was going to ask if libuv or whatever handled it
16:20 jnthn Depends what side of the closed callback you're on
16:22 skids joined #perl6
16:24 ilogger2 joined #perl6
16:26 chuli joined #perl6
16:28 tony-o jnthn: that did the trick eh, no more force closings on calling .close
16:36 smls joined #perl6
16:36 Geth ¦ ecosystem: 497bdcadb6 | (Tony O'Dell)++ | META.list
16:36 Geth ¦ ecosystem: Update H:S:A and H:S entries to reflect becoming a part of git:perl6
16:36 Geth ¦ ecosystem: review: https://github.com/perl6/ecosystem/commit/497bdcadb6
16:44 cdg joined #perl6
16:46 smls joined #perl6
16:48 nicq20 joined #perl6
16:50 nicq20 tony-o: Hello! Just got your message over Github. I grabbed the repo with Git and it seems to work (zef still only finds 0.1.3). I'll try messing with it more.
16:52 kaare__ joined #perl6
17:09 cpage joined #perl6
17:10 wamba joined #perl6
17:11 cpage_ joined #perl6
17:11 nicq20 left #perl6
17:23 mrdside joined #perl6
17:23 mrdside hi!
17:23 itaipu joined #perl6
17:24 mrdside Dynamic variable $*ARGS not found
17:25 moritz quick, go looking for it!
17:25 Geth ¦ specs: 2c8786a52e | (Zoffix Znet)++ | v6d.pod
17:25 Geth ¦ specs: Add 6.d for IEEE num division
17:25 Geth ¦ specs:
17:25 Geth ¦ specs:  Use IEEE 754-2008 semantics for num/Num infix:</>, infix:<%>, and infix:<%%>
17:25 Geth ¦ specs: review: https://github.com/perl6/specs/commit/2c8786a52e
17:25 perlpilot mrdside: good point.  It's LTA that it doesn't say "...did you mean @*ARGS?"
17:25 ugexe they took our $*ARGS
17:25 yoleaux 7 Feb 2017 21:13Z <IOninja> ugexe: what's the url of zef's package list (or does it use same as panda)? how often does it get updated?
17:25 IOninja mrdside: it's @*ARGS
17:26 moritz perlpilot: I don't even know if we can get a list of all dynamic variables in scope
17:26 moritz m: say DYNAMIC::.keys
17:26 camelia rakudo-moar 1615c8: OUTPUT«($=pod !UNIT_MARKER EXPORT $_ $! ::?PACKAGE GLOBALish $¢ $=finish $/ $?PACKAGE)␤»
17:26 moritz m: say GLOBAL::.keys
17:26 camelia rakudo-moar 1615c8: OUTPUT«()␤»
17:26 moritz neither of those lists @*ARGS, so I wouldn't even know where to find the list of possible dynamic variables
17:26 perlpilot surely there's a way
17:27 perlpilot maybe I just expect too much from Perl these days (I've been spoiled by awesomeness :-)
17:29 moritz I'm not saying it can't be done, just that I don't know if it can be done
17:29 perlpilot Yeah, I just kind of assumed it could.
17:30 timotimo worst case we write a moarvm op that gives you a list of all dynamic variable names
17:31 timotimo otherwise you can probably go via callframe already?
17:31 timotimo m: my $*foobar; say callframe(0).^methods
17:31 camelia rakudo-moar 1615c8: OUTPUT«(new line file code callframe gist level annotations my)␤»
17:32 timotimo m: my $*foobar; say callframe(0).callframe.^methods
17:32 camelia rakudo-moar 1615c8: OUTPUT«Callframe.callframe not yet implemented. Sorry. ␤  in block <unit> at <tmp> line 1␤␤»
17:32 timotimo huh
17:32 timotimo m: my $*foobar; say callframe(0).^methods(:all)
17:32 camelia rakudo-moar 1615c8: OUTPUT«(new line file code callframe gist level annotations my iterator Method+{<anon|67959904>}.new Method+{<anon|67959904>}.new Method+{<anon|67959904>}.new Method+{<anon|67959904>}.new Method+{<anon|67959904>}.new Method+{<anon|67959904>}.new ACCEPTS Method+{<…»
17:32 ugexe the comedy option could be something like my @dynamic = grep { try $*$_ } permutations(permutations(A..Z) xx 10)
17:32 timotimo :D
17:32 timotimo why only up to 10?
17:32 timotimo also, there can also be other letters in there
17:32 timotimo a big portion of unicode :)
17:33 mrdside I have array of hashes. When iterate my array i compare $people<id> == @data[3]. Both values of Str, but get error "Cannot convert string to number: trailing characters after number in '3231271⏏В012РВ5' (indicated by ⏏)"
17:33 timotimo mrdside: if you want to numify a string, it has to end where the number ends
17:33 timotimo i suggest using .words on that string
17:33 timotimo or perhaps $people<id> is already a list anyway?
17:33 IOninja list?
17:33 mrdside i need @data[3] as word
17:34 mrdside as string
17:34 IOninja mrdside: strings are compared with `eq` operator
17:34 mrdside thx
17:34 timotimo ooooh
17:34 ugexe it looks like he has a key/value mashed together
17:34 timotimo i thought you wanted the number because that id starts with a number :)
17:34 tony-o .tell nicq20 you may have to do zef update -
17:34 yoleaux tony-o: I'll pass your message to nicq20.
17:34 mrdside red, but perl6 have so mane operarors ))
17:34 IOninja mrdside: I think you can use ~~ smartmatch operators in many cases where you're unsure :)
17:35 IOninja m: say 'x' ~~ 42
17:35 camelia rakudo-moar 1615c8: OUTPUT«False␤»
17:35 timotimo tony-o: btw, what's the todo list for H::S::A look like? there's been yet more stability improvements in rakudo in the recent months and i hvaen't tested the module in a long time
17:35 timotimo (doesn't help that i don't have an actual project)
17:36 eroux joined #perl6
17:36 mrdside "if $cr-month<month> == %month<month> { $cr-month<no1> += %month<no1>; ... }" got an error "Type Array does not support associative indexing."
17:37 perlpilot mrdside: $cr-month is not a hash, but an array then
17:37 mrdside if $cr-month<month> == %month<month>
17:37 mrdside it's a hash (an array element)
17:38 IOninja mrdside: what's $cr-month?
17:38 perlpilot mrdside: sure ... prove it  :-)
17:38 mrdside for %person<credited> -> $cr-month {
17:38 perlpilot mrdside: could you put the whole code on a gist?
17:38 mrdside credited => []
17:38 mrdside ok. how?
17:39 IOninja mrdside: copy paste it here: https://gist.github.com/
17:39 perlpilot go to gist.github.com and paste the code in
17:39 IOninja Click button. Give us URL
17:39 aindilis joined #perl6
17:39 timotimo lick button. receive bacon.
17:40 perlpilot mrdside: were you in DrForr's class at FOSDEM?
17:40 mrdside https://gist.github.com/mrDSide/8fefd834ef4ae33389f2f54f1a22d7d7
17:41 IOninja must.... resist... urge....
17:42 IOninja m: my %h; %h<foo bar ber bor> = "FOO=BAR=BER=BOR".split: "="; dd %h
17:42 camelia rakudo-moar 1615c8: OUTPUT«Hash %h = {:bar("BAR"), :ber("BER"), :bor("BOR"), :foo("FOO")}␤»
17:43 IOninja mrdside: ^ you can split directly into a hash slice instead of doing that stuff with @data and indexes that make the code pretty unreadable and error prone
17:43 sufrostico joined #perl6
17:43 juan__ joined #perl6
17:44 IOninja mrdside: what's in result.txt?
17:44 mrdside IOninja: i need sum data
17:45 IOninja mrdside: or rather what's the input data?
17:45 mrdside IOninja: it will be resulting file
17:45 IOninja Like to run it
17:45 timotimo the question is what is the file you put on the commandline
17:46 timotimo look closely, zoffix, it uses $fh from args, and $fh-result is result.txt
17:46 mrdside <ПУ-3=И=111111111=1111111B006PB6=SAD=dsf=df=01= = =4228,75=0=42,29=1184,05=253,72=42,29=1437,77=12=2=07/02/2017= =2016=adsfasdf, asdfasdf=
17:46 mrdside НЧСЛ=1=0=0=0=0=0=0=0=1=28=6= =
17:46 mrdside ...
17:46 mrdside СТАЖ=01/07/2016=11/10/2016= =ВЗНОСЫВРЕМ= = =
17:46 mrdside next of "<ПУ-3=И=111111111=1111111B006PB6=SAD=dsf=df=01= = =4228,75=0=42,29=1184,05=253,72=42,29=1437,77=12=2=07/02/2017= =2016=adsfasdf, asdfasdf="
17:47 IOninja mrdside: this confusing. Can you paste it into the pastebin like with the code?
17:47 timotimo you can click "edit" at the top right and then "add another file" at the bottom left
17:48 robertle joined #perl6
17:48 mrdside yes
17:48 mrdside gist&
17:48 mrdside gist?
17:49 timotimo yes
17:50 perlpilot mrdside: btw, $cr-month is an array in your code. You need to say  for %person<credited>.list -> $cr-month { } or for @(%person<credited>) -> $cr-month { }
17:51 TimToady %person<credited>[] should work too
17:51 perlpilot yeah, that too
17:51 timotimo [] is just like postfix-dereferencing!
17:51 timotimo only not as ugly
17:51 mrdside https://gist.github.com/mrDSide/53ecaeed84ae56242dc14b655026a3bf
17:51 perlpilot timotimo :-)
17:52 TimToady .oO(The Zen of Postfix Maintenance)
17:53 mrdside perlpilot: thx, it works
17:53 IOninja \o/
17:53 perlpilot TimToady: Any idea of a good place to point someone to explain why the extra syntax is needed there?  I thought about https://design.perl6.org/S07.html#The_single_argument_rule but I didn't find it clear for this case
17:53 mrdside now i need "1200" += "12,56"
17:54 sena_kun mrdside, in case you speak Russian(as I can guess from your test file) I can try to help you with it. It seems you need a grammar to parse your file and somehow process the result.
17:54 mrdside yes and yes
17:54 sena_kun Or, rather, in case if Russian is your native.
17:54 mrdside yes
17:55 IOninja >:}
17:55 sena_kun mrdside, perhaps private channel will be better choice then, I'll pm you now.
17:55 TimToady perlpilot: not really, but arrays and hashes should document that they're composed of Scalar containers, and those should somehow be known not to expand in a list
17:55 TimToady I'd tend to explain it in terms of singular vs plural nouns
17:55 IOninja m: say +"12,56"
17:55 camelia rakudo-moar 1615c8: OUTPUT«Cannot convert string to number: trailing characters after number in '12⏏5,56' (indicated by ⏏)␤  in block <unit> at <tmp> line 1␤␤Actually thrown at:␤  in block <unit> at <tmp> line 1␤␤»
17:56 IOninja mrdside: you'd need to replace the commas with '.' and '.' with commas, I guess. We don't do Russian style numbers in core :|
17:57 IOninja kinda just hit me that our system makes no sense in some languages.
17:57 TimToady .oO(some languages make no sense in our system...)
17:57 IOninja :D
17:58 timotimo they are also german-style
17:59 TimToady I think of them as generally european
17:59 TimToady though sometimes spaces are used too
17:59 IOninja m: multi val(Str $x) is default { $x.subst(",", "."); callwith $x }; dd val "42,56"
17:59 camelia rakudo-moar 1615c8: OUTPUT«"42,56"␤»
18:00 TimToady there's just no way to parse them unambigously, though, at least without knowing somehow that one is coming
18:00 IOninja m: multi val(Str $x) is default { callwith $x.subst(",", ".") }; dd val "42,56"
18:00 camelia rakudo-moar 1615c8: OUTPUT«"42,56"␤»
18:00 IOninja :(
18:01 IOninja It's probably not too-paintful to augment Str.Numeric and <...> to recognize numerals from different locales
18:01 * IOninja wishes we had "lexical" augmentations...
18:02 timotimo well, multi candidates are still lexical
18:02 IOninja yeah, but Str.Numeric won't see them (the multi candidates of, say, val())
18:02 timotimo right
18:03 TimToady m: multi sub val(Str $x where /\,/) { nextwith $x.subst(",", ".") }; dd val "42,56"
18:03 camelia rakudo-moar 1615c8: OUTPUT«RatStr.new(42.56, "42.56")␤»
18:04 TimToady though now the Str is a lie :)
18:04 IOninja hehe
18:04 IOninja m: multi val(Str:D $x) is default { callwith $x.subst(",", ".") }; dd val "42,56"
18:04 camelia rakudo-moar 1615c8: OUTPUT«"42,56"␤»
18:04 timotimo interesting that "is default" didn't help here
18:04 * TimToady is a bit surprised the earlier didn't die of an ambiguous dispatch
18:04 IOninja why does this one not work?
18:04 TimToady oh, you have 'is default'
18:05 IOninja m: multi val(Str:D $x, :$val-or-fail) is default { callwith $x.subst(",", ".") }; dd val "42,56"
18:05 camelia rakudo-moar 1615c8: OUTPUT«"42,56"␤»
18:05 IOninja wweird
18:05 IOninja m: multi val(Str:D $x, :$val-or-fail) { callwith $x.subst(",", ".") }; dd val "42,56"
18:05 camelia rakudo-moar 1615c8: OUTPUT«"42,56"␤»
18:05 IOninja :|
18:06 IOninja m: .say for &val.candidates».signature[*-1]
18:06 camelia rakudo-moar 1615c8: OUTPUT«(Str:D $MAYBEVAL, :$val-or-fail)␤»
18:07 IOninja I'm guessing it doesn't go through Str:D candidate but through something else
18:08 TimToady so why isn't that an amiguous dispatch?
18:08 IOninja 'cause that gets thrown only when dispatching
18:08 TimToady m: multi sub val(Str:D $x, :$val-or-fail) { nextwith $x.subst(",", ".") }; dd val "42,56"
18:08 camelia rakudo-moar 1615c8: OUTPUT«"42,56"␤»
18:09 IOninja m: multi foo () {}; multi foo () {}; multi foo (Int) {}; foo 42
18:09 camelia rakudo-moar 1615c8: ( no output )
18:09 IOninja ^ no throwage
18:09 IOninja m: multi foo () {}; multi foo () {}; multi foo (Int) {}; foo()
18:09 camelia rakudo-moar 1615c8: OUTPUT«Ambiguous call to 'foo'; these signatures all match:␤:()␤:()␤  in block <unit> at <tmp> line 1␤␤»
18:09 IOninja ^ throwage
18:09 IOninja So I'm thinking it doesn't get to Str:D and some other candidate grabs it
18:09 TimToady what could be more specific than Str:D ?
18:10 TimToady I made it mine more specific with a 'where'
18:10 TimToady s/it//
18:10 IOninja dunno... Just tried making multies with the same signatures as all other candidates and it still didn't throw :S
18:10 TimToady well, ss/it //
18:11 IOninja s: &val
18:11 SourceBaby IOninja, Sauce is at https://github.com/rakudo/rakudo/blob/1615c83/src/core/allomorphs.pm#L104
18:11 IOninja s: &val, \('42,55')
18:11 SourceBaby IOninja, Sauce is at https://github.com/rakudo/rakudo/blob/1615c83/src/core/allomorphs.pm#L131
18:11 IOninja weird
18:12 TimToady something's rotten in the state of dispatch
18:12 IOninja yeah
18:12 IOninja m: multi sub chars(Str:D $x) { die 'meow' }; say chars 'meows'
18:12 camelia rakudo-moar 1615c8: OUTPUT«5␤»
18:13 IOninja m: multi sub chars(Str:D $x) { die 'meow' }; &chars.candidates».signature.say
18:13 camelia rakudo-moar 1615c8: OUTPUT«((Cool $x) (Str:D $x) (str $x --> int) (Str:D $x))␤»
18:13 TimToady jnthn: ^^^ ??? !!! ...
18:13 timotimo we haven't actually got ^^^
18:14 IOninja and according to bisectable it's been this way since at least The Christmas :S
18:15 IOninja m: multi sub chars(str $x --> int) { die 'meow' }; say chars my str $ = 'meows'
18:15 camelia rakudo-moar 1615c8: OUTPUT«Ambiguous call to 'chars'; these signatures all match:␤:(str $x --> int)␤:(str $x --> int)␤  in block <unit> at <tmp> line 1␤␤»
18:15 IOninja m: multi sub chars(Cool $x) { die 'meow' }; say chars 'meows'.IO
18:15 camelia rakudo-moar 1615c8: OUTPUT«Ambiguous call to 'chars'; these signatures all match:␤:(Cool $x)␤:(Cool $x)␤  in block <unit> at <tmp> line 1␤␤»
18:15 IOninja so just Str:D affected?
18:15 TimToady m: multi sub val(str $x, :$val-or-fail) { nextwith $x.subst(",", ".") }; dd val "42,56"
18:15 camelia rakudo-moar 1615c8: OUTPUT«"42,56"␤»
18:16 AlexDaniel joined #perl6
18:16 IOninja m: multi sub val(str $x, :$val-or-fail) { nextwith $x.subst(",", ".") }; dd val my str $ = '42,56'
18:16 camelia rakudo-moar 1615c8: OUTPUT«RatStr.new(42.56, "42.56")␤»
18:16 timotimo oh, native string
18:16 timotimo well, that's a thing that's tighter than Str:D
18:17 IOninja well, chars has three sigs and only two of them cry about ambiguous dispatch :/
18:17 IOninja s/sigs/candidates/
18:18 IOninja m: multi sub chars(Str:D $x) { die 'meow' }; &chars.cando(\("42"))».signature.say
18:18 camelia rakudo-moar 1615c8: OUTPUT«((Str:D $x) (Str:D $x) (Cool $x))␤»
18:19 TimToady that definitely seems wrongoidal
18:19 TimToady oh wait...
18:19 TimToady I think I know
18:20 TimToady :D is considered a constraint, so they're done in declaration order
18:20 TimToady though...that doesn't explain why my 'where' worked
18:21 TimToady m: multi sub chars(Str:D $x where *.chars) { die 'meow' }; &chars.cando(\("42"))».signature.say
18:21 camelia rakudo-moar 1615c8: OUTPUT«((Str:D $x where { ... }) (Str:D $x) (Cool $x))␤»
18:21 IOninja m: multi foo (Str:D $x) {die 'one'}; multi foo (Str:D $x) {die 'two'}; foo '42'
18:21 camelia rakudo-moar 1615c8: OUTPUT«Ambiguous call to 'foo'; these signatures all match:␤:(Str:D $x)␤:(Str:D $x)␤  in block <unit> at <tmp> line 1␤␤»
18:22 TimToady well, it's considering where to be more constrained than :D, at least, if :D is considered a constraint at all
18:22 IOninja m: multi sub comb(Str $x, $, $?) { die 'meow' }; say comb 'meows'
18:22 camelia rakudo-moar 1615c8: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Calling comb(Str) will never work with proto signature ($, $, $?)␤at <tmp>:1␤------> 3comb(Str $x, $, $?) { die 'meow' }; say 7⏏5comb 'meows'␤»
18:22 TimToady which it doesn't seem to be
18:22 IOninja m: multi sub comb(Str $x, Str $, $?) { die 'meow' }; say comb 'meows', 'foo'
18:22 camelia rakudo-moar 1615c8: OUTPUT«meow␤  in sub comb at <tmp> line 1␤  in block <unit> at <tmp> line 1␤␤»
18:23 IOninja m: multi sub comb(Str $x, Cool $, $?) { die 'meow' }; say comb 'meows', 'foo'
18:23 camelia rakudo-moar 1615c8: OUTPUT«Ambiguous call to 'comb'; these signatures all match:␤:(Str $matcher, Cool $input, $limit = *)␤:(Str $x, Cool $, $?)␤  in block <unit> at <tmp> line 1␤␤»
18:23 TimToady so my theory is wrong
18:23 IOninja The :D seems to be definitely the part of it tho
18:23 TimToady so does lexical level, apparently
18:23 IOninja m: multi sub uniname(Int:D $code) { die 'meows' }; uniname 42
18:23 camelia rakudo-moar 1615c8: OUTPUT«Ambiguous call to 'uniname'; these signatures all match:␤:(Int:D $code)␤:(Int:D $code)␤  in block <unit> at <tmp> line 1␤␤»
18:24 IOninja m: multi sub uniname(Str:D $code) { die 'meows' }; uniname '42'
18:24 camelia rakudo-moar 1615c8: OUTPUT«Ambiguous call to 'uniname'; these signatures all match:␤:(Str:D $str)␤:(Str:D $code)␤  in block <unit> at <tmp> line 1␤␤»
18:24 IOninja huh
18:24 IOninja works fine here, weird.
18:24 * TimToady scratches head, wishes for more coffee, realizes he can grant his wish...
18:25 IOninja m: multi foo (Str:D $x, :$whatevs) {die 'one'}; multi foo (Str:D $x) {die 'two'}; foo '42'
18:25 camelia rakudo-moar 1615c8: OUTPUT«one␤  in sub foo at <tmp> line 1␤  in block <unit> at <tmp> line 1␤␤»
18:25 IOninja m: multi foo (Str:D $x, :$whatevs) {die 'one'}; multi foo (Str:D $x, :$whatevs) {die 'two'}; foo '42'
18:25 camelia rakudo-moar 1615c8: OUTPUT«one␤  in sub foo at <tmp> line 1␤  in block <unit> at <tmp> line 1␤␤»
18:25 IOninja So adding named args makes it unambiguious
18:26 * IOninja shrugs and grabs a coffee too
18:28 TimToady apparently "could have a named argument that we don't even pass" is considered a constraint to flip to the ordered regime
18:28 * [Coke] drinks his ramen out of a 1 litre glass container.
18:29 IOninja m: &chars.candidates».signature.say
18:29 camelia rakudo-moar 1615c8: OUTPUT«((Cool $x) (Str:D $x) (str $x --> int))␤»
18:30 Geth ¦ perl6.org: ca4e1a13dd | Cale++ | source/resources/index.html
18:30 Geth ¦ perl6.org: Add kyclark's Metagenomics book
18:30 Geth ¦ perl6.org:
18:30 Geth ¦ perl6.org: It's actually a fantastic resource for learning P6, even if you have no interest in the field.
18:30 Geth ¦ perl6.org: review: https://github.com/perl6/perl6.org/commit/ca4e1a13dd
18:30 IOninja Doesn't answer why the multi sub chars(Str:D $x) aboive didn't get ambiguous
18:30 pyrimidine joined #perl6
18:30 IOninja m: multi foo (Str:D $x --> Nil) {die 'one'}; multi foo (Str:D $x --> Nil) {die 'two'}; foo '42'
18:30 camelia rakudo-moar 1615c8: OUTPUT«Ambiguous call to 'foo'; these signatures all match:␤:(Str:D $x --> Nil)␤:(Str:D $x --> Nil)␤  in block <unit> at <tmp> line 1␤␤»
18:32 TimToady m: multi foo (Str:D $x --> Nil) {die 'one'}; do { multi foo (Str:D $x --> Nil) {die 'two'}; foo '42' }
18:32 camelia rakudo-moar 1615c8: OUTPUT«Ambiguous call to 'foo'; these signatures all match:␤:(Str:D $x --> Nil)␤:(Str:D $x --> Nil)␤  in block <unit> at <tmp> line 1␤␤»
18:32 TimToady so not just any lexical scope
18:33 IOninja m: multi foo (Str:D $x) {die 'one'}; multi foo (str $x --> int) { 42 }; multi foo (Str:D $x) {die 'two'}; foo '42'
18:33 camelia rakudo-moar 1615c8: ( no output )
18:33 IOninja m: multi foo (Str:D $x) {die 'one'}; multi foo (str $x --> int) { die 42 }; multi foo (Str:D $x) {die 'two'}; foo '42'
18:33 camelia rakudo-moar 1615c8: OUTPUT«Ambiguous call to 'foo'; these signatures all match:␤:(Str:D $x)␤:(Str:D $x)␤  in block <unit> at <tmp> line 1␤␤»
18:33 IOninja My spidey senses sense optimizer shinanigans
18:33 * TimToady wonders if there's a SETTING:: bypass in place here to make sure implicit val() works "right"
18:35 TimToady there is a SETTING_CACHE mentioned in the optimizer
18:36 IOninja well, my last evals with str $x --> int do indeed produce different results with optimizer off, but the original thing is still present
18:37 TimToady iirc, there are some places in Actions or so that bypass the current lexical scope, and val might be one of them
18:37 TimToady though you'd think it would only be for implicit forms like <1/3>
18:37 TimToady maybe it's accidentally applied to explicit calls as well
18:37 IOninja Oh wait, the named arg disambiguating is still there, but the multi chars (Str:D $x) {} does start to complain about ambiguity with optimzier off
18:38 TimToady ooh
18:38 TimToady a veritable klew
18:39 TimToady so we need to invalidate that cache entry for added candidates
18:40 tony-o timotimo: to-do list for H:S:A right now involves speeding up the socket closing - i think i had it working and reconfigured it to avoid segfault/crashes and now it doesn't close the sockets right away
18:40 tony-o after that i think it's just performance, someone found a bug where it wouldn't handle multiline headers properly but that should be resolved -
18:49 * [Coke] wonders if you can get pod2html "lite" that doesn't add in a bunch of css
18:50 IOninja the Perl 6 pod2html? I vaguelly recall it lets you specify your own CSS
18:58 espadrine joined #perl6
19:00 nerow joined #perl6
19:00 [Coke] looks like it has some hardcode.d
19:00 * [Coke] doublechecks
19:05 Geth ¦ perl6.org: c4e4f73dba | (Zoffix Znet)++ | 4 files
19:05 Geth ¦ perl6.org: s/panda/zef/;
19:05 Geth ¦ perl6.org:
19:05 Geth ¦ perl6.org: Fixes #74
19:05 Geth ¦ perl6.org:
19:05 Geth ¦ perl6.org: - On some pages that listed both zef and panda, I removed panda
19:05 Geth ¦ perl6.org:     to avoid confusion on why have two module managers (I think that's OK?)
19:05 Geth ¦ perl6.org: - <tt> is deprecated; swapped to <code>
19:05 Geth ¦ perl6.org: review: https://github.com/perl6/perl6.org/commit/c4e4f73dba
19:06 [Coke] IOninja: https://github.com/perl6/Pod-To-HTML/blob/master/lib/Pod/To/HTML.pm#L156 - looks like the prelude goes in regardless.
19:06 IOninja oh, and added ref to <a href="https://metacpan.org/">Perl 5 Modules</a>; I figured at least right now it'd be pretty common to rely on Perl 5 for stuff not in our eco
19:07 * IOninja giggles at that style sheet
19:08 IOninja oh, they brought back the <u> in HTML5 heh, OK then
19:08 IOninja "stop using presentational mark up! STOP DAMMIT! Ok fine, you all win! use it!"
19:10 IOninja Well, if I were writing it, I'd not include any CSS; and wouldn't include a mile of comments explaining all the details.
19:11 [Coke] Yah. I think all that can go.
19:11 [Coke] or maybe make it a :boilerplate-css option.
19:11 IOninja And we use that on our docs site too...
19:12 IOninja m: https://gist.github.com/zoffixznet/0ad09a2b8d0f8e27fa27dccf15e43d7a
19:12 camelia rakudo-moar 1615c8: OUTPUT«Potential difficulties:␤    Asked to remove 2 spaces, but the shortest indent is 0 spaces␤    at <tmp>:20␤    ------> 3  ♥7⏏5<EOL>␤587␤»
19:12 IOninja and every page has half a kilobyte of stuff it needn't have
19:23 thdr|2 joined #perl6
19:24 [Coke] IOninja: I'm digging here as part of the "move to bootstrap" ticket.
19:24 IOninja cool
19:26 [Coke] "oh I'll just ... oh. what is that doing there."
19:27 labster joined #perl6
19:28 geekosaur "sounds like css" :p
19:29 ocbtec joined #perl6
19:39 jnthn TimToady: I suspect some of the shenanigans above are because a literal can be either native or boxed, and while for Int literals we're very careful about magnitude, for Num/num and Str/str we prefer the native candidate
19:39 girafe joined #perl6
19:40 jnthn (And the decision making on that lives in the optimizer pass)
19:40 IOninja m: multi foo (Str:D, :$foo) { say "one" }; multi foo (Str:D) { say "two" }; foo "foo"
19:40 camelia rakudo-moar 1615c8: OUTPUT«one␤»
19:40 IOninja m: multi foo (Str:D) { say "one" }; multi foo (Str:D, :$foo) { say "two" }; foo "foo"
19:40 camelia rakudo-moar 1615c8: OUTPUT«two␤»
19:40 IOninja Is that normal?
19:41 IOninja the optional named arg we don't pass breaks the tie
19:41 IOninja Oh, I even ticketed that before: https://rt.perl.org/Ticket/Display.html?id=130415#ticket-history
19:46 jnthn Yes, the presence of named params makes it narrower
19:46 jnthn They act as constraints
19:46 jnthn And when they're optional they always match
19:47 IOninja OK. I'll close the ticket
19:48 * gfldex takes notes
19:52 TEttinger joined #perl6
19:53 kyan joined #perl6
19:55 pyrimidine joined #perl6
20:04 Coleoid_n joined #perl6
20:05 andrzejku joined #perl6
20:11 TEttinger joined #perl6
20:13 notostraca joined #perl6
20:23 Coleoid_n Hi, #perl6!
20:23 Coleoid_n I understand I can put parameters on my rules.  Is there a means to pass these on to my action methods?
20:23 baest joined #perl6
20:24 IOninja I think common way is to use dynamic varaibles?
20:24 IOninja parameters...
20:24 * IOninja shrugs
20:25 jnthn token foo($*bar) { } then you can access $*bar in the action method
20:25 IOninja ah
20:26 IOninja m: grammar { token TOP { <foo: 42> }; token foo ($*x) { .+ } }.parse: "foo", :actions(class { method foo ($/) { dd $*x } })
20:26 camelia rakudo-moar 1615c8: OUTPUT«Int $*x = 42␤»
20:27 gfldex m: sub f($*foo){ dd $*foo }; f 42
20:27 camelia rakudo-moar 1615c8: OUTPUT«Int $*foo = 42␤»
20:27 jnthn Yeah, it's something all sigs can do, not just regexen :)
20:27 IOninja m: sub ($?x) { say $?x }(42)
20:27 camelia rakudo-moar 1615c8: OUTPUT«5===SORRY!5===␤In signature parameter $?x, it is illegal to use the ? twigil␤at <tmp>:1␤------> 3sub ($?x7⏏5) { say $?x }(42)␤Variable '$?x' is not declared␤at <tmp>:1␤------> 3sub ($?x) { say 7⏏5$?x }(42)␤␤»
20:27 IOninja uh-oh, illegal?
20:27 * IOninja runs away
20:28 Coleoid_n :D
20:30 gfldex m: my $a = 42; sub f($*foo is rw){ dd ++$*foo }; f $a; dd $a;
20:30 camelia rakudo-moar 1615c8: OUTPUT«43␤Int $a = 43␤»
20:30 gfldex m: my $a = 42; sub f($*foo is copy){ dd ++$*foo }; f $a; dd $a;
20:30 camelia rakudo-moar 1615c8: OUTPUT«43␤Int $a = 42␤»
20:30 gfldex so a dynamic var in a sig is kind of a NOP
20:32 IOninja nop?
20:32 gfldex m: my $a = 42; sub f($*foo){ g $*foo }; sub g($*foo is rw){ $*foo++ }; f $a; dd $a;
20:32 camelia rakudo-moar 1615c8: OUTPUT«Parameter '$*foo' expected a writable container, but got Int value␤  in sub g at <tmp> line 1␤  in sub f at <tmp> line 1␤  in block <unit> at <tmp> line 1␤␤»
20:33 Coleoid_n I can do that, thanks!  But to guard against the XY problem, my actual problem is:
20:33 gfldex IOninja: no-operation
20:33 Coleoid_n I'm working on a grammar which needs to represent the "same thing" differently, depending on the outer rule it's in the process of matching.
20:33 Coleoid_n Or rather, the actions class should emit somewhat different code.
20:33 IOninja gfldex: but what do you mean? Looks like it assigns the given value to the dynamic var. Where's the NOP come in?
20:34 Coleoid_n Is there another approach that makes more sense?
20:34 gfldex IOninja: with 'kind of NOP' i meant that having it as a dynamic var doesn't really change anything
20:36 IOninja m: grammar { token TOP { :my $*FORMAT; <foo> || <bar> }; token foo { {$*FORMAT = "foo"} \d+ }; token bar { {$*FORMAT = "bar"} .+ } }.parse: "aa", :actions(class { method TOP ($/) { dd $*FORMAT } })
20:36 camelia rakudo-moar 1615c8: OUTPUT«Str $*FORMAT = "bar"␤»
20:36 IOninja m: grammar { token TOP { :my $*FORMAT; <foo> || <bar> }; token foo { {$*FORMAT = "foo"} \d+ }; token bar { {$*FORMAT = "bar"} .+ } }.parse: "42", :actions(class { method TOP ($/) { dd $*FORMAT } })
20:36 camelia rakudo-moar 1615c8: OUTPUT«Str $*FORMAT = "foo"␤»
20:36 IOninja Coleoid_n: that ^ maybe? If I understood you right.
20:37 IOninja You declare the dynamic var in your outer rules and in your subrules you can assign stuff to it
20:39 IOninja or put another way: your outer rule can set that var and your subrules will know the value
20:40 Coleoid_n IOninja:  I'm wanting the value to reach my actions methods, which you did above a bit.
20:40 IOninja m: grammar { token TOP { :my $*FORMAT = rand > .5; <foo> }; token foo { .+ } }.parse("aa", :actions(class { method foo ($/) { make $*FORMAT ?? "one thing" !! "the other" } })).<foo>.made.say
20:40 camelia rakudo-moar 1615c8: OUTPUT«one thing␤»
20:40 IOninja m: grammar { token TOP { :my $*FORMAT = rand > .5; <foo> }; token foo { .+ } }.parse("aa", :actions(class { method foo ($/) { make $*FORMAT ?? "one thing" !! "the other" } })).<foo>.made.say
20:40 camelia rakudo-moar 1615c8: OUTPUT«the other␤»
20:42 lostinfog joined #perl6
20:42 Coleoid_n That's was very cooperative of camelia...  :D
20:42 Coleoid_n *That
20:43 IOninja :)
20:43 El_Che joined #perl6
20:54 _28_ria joined #perl6
21:03 bjz joined #perl6
21:14 TimToady and yes, it's also perfectly legal to declare a dynvar as part of a signature
21:15 Coleoid_n IOninja++, the dynvar worked beautifully.  Thanks also, jnthn and gfldex!
21:15 gfldex TimToady: is there any special behaviour expected from signature dynvars?
21:19 cdg joined #perl6
21:25 Geth ¦ doc: 26e0ec8558 | (Wenzel P. P. Peppmeyer)++ | doc/Language/functions.pod6
21:25 Geth ¦ doc: tell that optional parameters take part in MMD
21:25 Geth ¦ doc: review: https://github.com/perl6/doc/commit/26e0ec8558
21:25 Geth ¦ doc: 0280529568 | (Wenzel P. P. Peppmeyer)++ | doc/Language/functions.pod6
21:25 Geth ¦ doc: link to arity
21:25 Geth ¦ doc: review: https://github.com/perl6/doc/commit/0280529568
21:26 pyrimidine joined #perl6
21:27 IOninja gfldex: seems preference isn't gived for non-named args
21:27 IOninja m: multi foo (Str:D $x, :$) {say 'one'}; multi foo (Str:D $x) {say 'two'}; foo '42'
21:27 camelia rakudo-moar 1615c8: OUTPUT«one␤»
21:27 IOninja m: multi foo (Str:D $x, $) {say 'one'}; multi foo (Str:D $x) {say 'two'}; foo '42'
21:27 camelia rakudo-moar 1615c8: OUTPUT«two␤»
21:27 IOninja m: multi foo (Str:D $x, $?) {say 'one'}; multi foo (Str:D $x) {say 'two'}; foo '42'
21:27 camelia rakudo-moar 1615c8: OUTPUT«two␤»
21:27 IOninja m: multi foo (Str:D $x, $?) {say 'one'}; multi foo (Str:D $x, $?) {say 'two'}; foo '42'
21:27 camelia rakudo-moar 1615c8: OUTPUT«Ambiguous call to 'foo'; these signatures all match:␤:(Str:D $x, $?)␤:(Str:D $x, $?)␤  in block <unit> at <tmp> line 1␤␤»
21:27 IOninja m: multi foo (Str:D $x, $?, :$) {say 'one'}; multi foo (Str:D $x, $?) {say 'two'}; foo '42'
21:27 camelia rakudo-moar 1615c8: OUTPUT«one␤»
21:27 IOninja m: multi foo (Str:D $x) {say 'one'}; multi foo (Str:D $x, $?) {say 'two'}; foo '42'
21:27 camelia rakudo-moar 1615c8: OUTPUT«one␤»
21:28 gfldex m: multi foo (Str:D $x) {say 'one'}; multi foo (Str:D $x, $? = 1) {say 'two'}; foo '42'
21:28 camelia rakudo-moar 1615c8: OUTPUT«one␤»
21:28 gfldex i would call this one a bug
21:28 IOninja Why not the other one?
21:28 gfldex maybe
21:28 IOninja I'd actually expect ^ that behaviour for optional named args
21:29 IOninja if I ain't giving you the optional named param and there's candidate that doesn't take it, use it
21:29 * jnthn tries to figure out what is being considered the bug :)
21:29 IOninja :D
21:29 jnthn An exact arity match candidate being preferred is, I believe, intended.
21:29 jnthn I think it wasn't that way and *that* was considered a bug ;)
21:29 gfldex it's ambiguous in my eyes
21:30 jnthn Every arity-based rule that's in the multi-dispatcher is the result of a persuasive example, or the unintended consequences of satisfying people's persuasive examples :-)
21:30 IOninja That makes sense to me. But what's the reasoning for giving preferences to one with named args?
21:31 jnthn Because named arguments count as a constraint
21:31 jnthn The multi-dispatcher doesn't consider names
21:31 jnthn *nameds
21:31 jnthn If there are any, it does its work based on positionals, and then just checks if the signatures will bind
21:31 Geth ¦ doc: ea919161ee | (Wenzel P. P. Peppmeyer)++ | doc/Language/functions.pod6
21:31 Geth ¦ doc: only for named params
21:31 Geth ¦ doc: review: https://github.com/perl6/doc/commit/ea919161ee
21:32 jnthn And picks the first one where that's the case
21:33 gfldex jnthn: that sounds like an implementers standpoint
21:34 IOninja OK
21:35 geekosaur joined #perl6
21:35 jnthn gfldex: That would have been "here's the code" ;-)
21:36 jnthn That nameds aren't individually considered in the candidate sort has been in the design docs for years, though
21:37 jnthn The arity rules were actually harder than the type rules
21:37 jnthn Because people had all kinds of ideas of what they wanted.
21:38 gfldex so it's the least wrong design :->
21:39 IOninja or most correct :)
21:41 baest joined #perl6
21:41 jnthn If we were discussing this in a years's time I could claim to have spent a decade listening people asking for opposing things on the multi-dispatch arity rules. :P
21:41 jnthn *listening to
21:42 pyrimidine joined #perl6
21:42 _28_ria joined #perl6
21:43 * TimToady has spent more than a decade :)
21:43 jnthn Congrats. ;-)
21:43 IOninja hahaha
21:44 TimToady it's really just a special case of electoral systems, which are provably imperfect in some way or other
21:44 TimToady as we have reason to know...  :/
21:45 jnthn There's been at least a couple of occasions where I looked at an example in a ticket, was sympathetic to it, tried the change, broke a spectest, and discovered another ticket that had wanted the opposite. :)
21:45 gfldex TimToady: that's just a sympthom
21:48 gfldex TimToady: in 1968 your country split in two without changing it's borders. It's actually astounding it didn't blew up earlier.
21:49 IOninja What happened in 1968?
21:49 gfldex the hippies realised that they can't change society so they started to build their own
21:50 TimToady gfldex: no, I'm specifically thinking of something more basic: https://en.wikipedia.org/wiki/Arrow's_impossibility_theorem
21:50 gfldex IOninja: that happend in 1967, so it's not like they didn't try hard https://en.wikipedia.org/wiki/Flower_Power_(photograph)
21:51 TimToady gfldex: and your social analysis is, at best, a vast oversimplification :)
21:52 pyrimidi_ joined #perl6
21:52 gfldex my country is separate by a whole ocean so I take a fairly relaxed stance
21:52 TimToady but yes, polarization has been generally increasing since WW2
21:53 TimToady we have to work up to WW3 somehow or other...
21:53 gfldex peace is the time between two wars after all
21:54 * perlpilot hopes we can elide WW3 forever
21:55 * IOninja foresees it'll happen in the next 8 years
21:55 gfldex i hope we will be to busy solving all those nasty problems ahead to go to war
21:57 gfldex my guess is 2050ish because that's when the world will run low on phosphate fertilisers and yes, that's a focil resource too
21:57 IOninja Well, it's already happening, I guess. Bunch of sanctions, drones, and mass media manipulation. That's the warfare of 21st century. Why bomb anyone when you can ruin their economy by other means.
21:58 TimToady .oO(or ruin your own economy...)
21:59 RabidGravy oh the uk is already on it
21:59 gfldex you can only ruin the economy of a country that can't supply it's ppl with food. That's why sanctions on russia are silly.
21:59 gfldex the UK can't feed it's ppl
22:00 * TimToady is going to miss avocadoes
22:00 gfldex but maybe we need that shake up to come to senses
22:01 RabidGravy we're already missing courgettes :)
22:01 IOninja The alternative to sanctions on Russia is letting them do what they want or bombing them. Both are undesirable.
22:01 TimToady though Trump may have a point about vegemite... :)
22:01 gfldex because they actually can bomb back
22:01 TimToady just kidding, I like vegemite/marmite
22:01 jnthn Ewww, marmite
22:02 RabidGravy :)
22:02 TimToady well, not to eat it directly, of course
22:02 TimToady it's one of my secret ingredients in soup though
22:03 TimToady adds umami without tasting like soy
22:03 TimToady and surely jnthn is generally in favor of the activities of yeast :)
22:04 jnthn This is true. :-)
22:04 gfldex it's not just him. I like to bake my own bread.
22:04 jnthn I never thought of putting marmite in soup :P
22:05 jnthn I do stick soy in one soup I make though, so I guess it's not so strange :)
22:08 cdg_ joined #perl6
22:09 AlexDaniel joined #perl6
22:10 RabidGravy right, I have a fun visit to a warehouse tomorrow, see how the software breaks the real world :)
22:11 TimToady .oO(Sticks and stones may break my bones, but software is, er, soft...)
22:13 gfldex TimToady: may I remind you of https://electrek.co/2016/09/14/another-fatal-tesla-autopilot-crash-emerges-model-s-hits-a-streetsweeper-truck-caught-on-dashcam/
22:14 * jnthn wanders off to get some rest... 'night
22:16 AlexDaniel u: ©ⓒ
22:16 unicodable6 AlexDaniel, U+00A9 COPYRIGHT SIGN [So] (©)
22:16 unicodable6 AlexDaniel, U+24D2 CIRCLED LATIN SMALL LETTER C [So] (ⓒ)
22:22 lostinfog joined #perl6
22:24 baest joined #perl6
22:26 [Coke] ⓅⒺⓇⓁ⑥
22:28 tony-o gfldex: that tesla thing is kind of a mixed bag.
22:28 tony-o it only *needs* to be better than humans driving, which isn't fairly difficult
22:29 tony-o well - i mean the tech might be difficult but most people turn into monsters when they sit down in a car
22:35 IOninja I'm not surprised at that crash, looking at the dashcam footage. Plenty of humans would've crashed into that sweeper and I'm pretty sure it'd be illegal for it to drive like that here in Canukistan
22:40 IOninja Wonder what it's like to be the programmers for that thing.
22:41 IOninja "Bug report: Car didn't apply break. Driver dead."  "Oh shit, off-by-one error right there!"
22:44 AlexDaniel oh wow, that crash
22:44 notostraca I think they showed that Tesla vehicles driving themselves still get into less crashes than when a human is
22:50 BenGoldberg joined #perl6
23:00 gfldex tony-o: that though is a slippery slope because if you take it to the extreme it ends up with humans confined to quarters
23:00 gfldex but then most humans do that already. They call it "watching TV"
23:05 sufrostico joined #perl6
23:09 abruanese joined #perl6
23:13 agentzh joined #perl6
23:14 avalenn joined #perl6
23:17 gdonald joined #perl6
23:32 DarthGandalf joined #perl6
23:33 zoosha joined #perl6
23:34 lep-delete joined #perl6
23:42 tony-o gfldex++
23:43 yqt joined #perl6
23:44 Geth ¦ doc: cf758229a7 | (Wenzel P. P. Peppmeyer)++ | doc/Type/Signature.pod6
23:44 Geth ¦ doc: tell that Signature is cool with dynamic variables
23:44 Geth ¦ doc: review: https://github.com/perl6/doc/commit/cf758229a7
23:45 jeffythedragonsl joined #perl6
23:45 gfldex i wonder what it tells about me that I maintain two distinct karma pools
23:56 labster joined #perl6
23:59 pyrimidine joined #perl6

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

Perl 6 | Reference Documentation | Rakudo