Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2017-03-28

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 Voldenet oh wait, it doesn't work
00:00 BenGoldberg m: sub try-intern { state $s = SetHash.new; $s<^a> ?? $s<$^a> !! $s<$^a> = $^a }; try-intern($_).say for ("foo", "fo"~"o");
00:00 camelia rakudo-moar 5ca924: OUTPUT: «True␤True␤»
00:00 BenGoldberg heh
00:00 Voldenet that number is surprisingly small
00:00 Voldenet :D
00:01 BenGoldberg m: sub try-intern { state $s = :{}; $s{$^a} //= True; $s{$^a}:k }; try-intern($_).say for ("foo", "fo"~"o");
00:01 camelia rakudo-moar 5ca924: OUTPUT: «foo␤foo␤»
00:01 BenGoldberg m: sub try-intern { state $s = :{}; $s{$^a} //= True; $s{$^a}:k }; try-intern($_).WHERE.say for ("foo", "fo"~"o");
00:02 camelia rakudo-moar 5ca924: OUTPUT: «139923813746048␤139923813989552␤»
00:02 BenGoldberg fooey.
00:04 Voldenet so, you see... doing such stuff in raw perl isn't that easy :)
00:05 Voldenet hm, does perl6 allow arbitrary objects as keys? if yo it might always return a copy
00:05 Voldenet s/yo/so/
00:05 BenGoldberg :{} creates a hash which allows objects as keys.
00:06 BenGoldberg m: my $objhash = :{}; $objhash{ Pair.new( 23, "Skidoo" ) }; dd $objhash;
00:06 camelia rakudo-moar 5ca924: OUTPUT: «Hash[Mu,Any] $objhash = :{}␤»
00:06 BenGoldberg m: my $objhash = :{}; $objhash{ Pair.new( 23, "Skidoo" ) } = True; dd $objhash;
00:06 camelia rakudo-moar 5ca924: OUTPUT: «Hash[Mu,Any] $objhash = :{(23 => "Skidoo") => Bool::True}␤»
00:06 timotimo you can also do it with "my %foo{Any}"
00:07 timotimo when you do my %foo = :{...} it will iterate the hash literal on the right and put all the stuff into a regular string-keyed hash
00:11 Voldenet m: sub try-intern(\a) { state %s; %s{a} = a unless %s{a}; %s{a} }; try-intern($_).WHERE.say for ("foo", "fo"~"o", "f"~"oo");
00:11 camelia rakudo-moar 5ca924: OUTPUT: «140110714081648␤140110714081648␤140110714081648␤»
00:12 Voldenet yeah, it's the same
00:14 BenGoldberg timotimo++
00:14 chatter29 joined #perl6
00:15 llfourn skids++ your PR fixed an issue I was having where define_slang throws a bunch of warnings.
00:15 chatter29 hey guys
00:16 chatter29 allah is doing
00:16 chatter29 sun is not doing allah is doing
00:16 skids llfourn: thanks, let me know if it blew anything up, but hopefully it's all upside :-)
00:16 chatter29 to accept Islam say that i bear witness that there is no deity worthy of worship except Allah and Muhammad peace be upon him is his slave and messenger
00:20 mst well that was a slightly different script
00:22 skids .oO(As-Salaam-a-see-ya-later, bot)
00:23 Voldenet hm, interning strings slow it down just a little bit and improves things just a little bit
00:23 Voldenet non-interned: 10.04user 0.00system 0:10.04elapsed 100%CPU (0avgtext+0avgdata 86008maxresident)k
00:23 Voldenet interneed: 10.07user 0.02system 0:10.09elapsed 100%CPU (0avgtext+0avgdata 84688maxresident)k
00:24 Voldenet checked with: sub try-intern(\a) { state %s; %s{a} = a unless %s{a}; %s{a} }; use nqp; for ^10000 { state @x.push: try-intern ~Date.today; nqp::force_gc; }
00:24 BenGoldberg Those numbers are too close...
00:24 Voldenet (obviously Date.today is sloooooooooooooooooooooooow, also gc too)
00:24 Voldenet yeah, I think they're too close too, but 2MB is a definite difference
00:25 Voldenet (do you know any other method that's pretty much guaranteed to generate immutable data?)
00:26 Voldenet s/immutable/always the same/
00:27 Voldenet with getpid the difference is as small
00:27 Voldenet ugh, nqp::getpid
00:27 Voldenet non-intern: 2.84user 0.01system 0:02.86elapsed 100%CPU (0avgtext+0avgdata 76140maxresident)k
00:27 Voldenet intern: 2.84user 0.01system 0:02.86elapsed 100%CPU (0avgtext+0avgdata 76140maxresident)k
00:28 AlexDaniel allah is doing spam bots :S
00:28 Voldenet Hm?
00:28 Voldenet oh wait, interned version is: 2.85user 0.01system 0:02.86elapsed 100%CPU (0avgtext+0avgdata 75120maxresident)k
00:28 Voldenet now it fits, clear 1MB gain
00:29 Voldenet so, there's no real cost for interning a string (except that keeping copies might be very costly with strings never repeating)
00:30 Voldenet also, it might actually count instances instead and trim the least used one, but I'm not sure how to extract the key from a hash
00:33 Voldenet and it could use some fancy data structures I'm not sure how to implement in pure perl6
00:40 timotimo you can just .keys on a hash
00:40 timotimo if i get what you mean right
00:42 Cabanossi joined #perl6
00:45 Voldenet No, not that, I wanted to get an exact key box by certain key ;)
00:45 Voldenet %s{a}:k always returns different object
00:45 Voldenet also, does moarvm use pcmpestri for string comparison in that case?
00:47 Voldenet it could, because string comparison is the most frequent of costly operations :P
00:50 timotimo i have no idea what pcmpestri is
00:51 timotimo also, don't forget to differentiate between Str and str, since the Str has a str in it that may be shared more aggressively
00:53 Voldenet pcmpestri is a x86 method for comparing strings :)
00:54 timotimo can it do 32-bit-per-char strings, too?
00:54 timotimo also, does it rely on a null terminator?
00:54 Voldenet hmm, I guess it wouldn't matter
00:54 Voldenet and it relies on the third parameter, /length/
00:55 samcv what's the difference between comparig memery and comparing strings.... aside from null termination
00:55 Voldenet comparing the length is cheaper than comparing the string though, I bet
00:55 samcv aside from that ^
00:55 samcv that's one of the checks mvm does comparing length first
00:55 samcv or one of the couple of sanity checks like check if any of them have 0 length
00:56 Voldenet I guess there's none
00:58 Voldenet but afair sse2 does hav only the operation for 4*32b comparison
00:58 Voldenet and pcmpestri/pcmpistri/pcmpestrm and so on can speed this up a lot
00:59 Voldenet https://webcache.googleusercontent.com/search?q=cache:X1dGO-m-bvcJ:https://www.strchr.com/strcmp_and_strlen_using_sse_4.2+
01:00 Voldenet (i'm not a book of sse codes, maybe there was something comparable earlier)
01:00 samcv i guess it only differs in that the data is seperated into containers of a certain number of bits
01:00 samcv as opposed to just a blob or whatever
01:01 samcv and it can be assumed that each number of bits is distinct and only need to be compared over multiples of those bits rather than every single bit
01:01 samcv so it can skip 8 bits at a time for string comparisons or 32 bits at a time if it was a 32 bit string
01:02 Voldenet actually, pcmpistri uses null-termination and pcmpestri uses explicit length
01:03 Voldenet still, since perl is known for 'decent text processing', I guess this would be nice :)
01:05 Voldenet meh, maybe it's not that great ┐(´~`;)┌, I always use it with java though :)
01:09 Voldenet oh, llvm uses that too ┐(´~`;)┌
01:09 samcv well case insensitive regex is about to get twice as fast, about 1.8 times compared to a month ago
01:09 samcv huggable, status
01:09 huggable samcv, nothing found
01:09 samcv NeuralAnomaly, status
01:09 NeuralAnomaly samcv, [✘] Next release will be in 2 weeks and 4 days. Since last release, there are 13 new still-open tickets (13 unreviewed and 0 blockers) and 56 unreviewed commits. See http://perl6.fail/release/stats for details
01:09 samcv that's plenty of time then to finish. cool
01:10 Voldenet yay, that goes for grammars being faster too! \o/
01:10 Voldenet I like grammars, but they're not on bison's level yet :(
01:12 samcv have not seen bison
01:12 Voldenet well, yacc
01:21 mcmillhj joined #perl6
01:24 AlexDaniel samcv++
01:26 evalable6 joined #perl6
01:27 TEttinger Voldenet: not sure what you meant, are you using SSE instructions from Java?
01:27 Voldenet well, i found out java's using it, so by using java I'm using them
01:27 mcmillhj_ joined #perl6
01:27 Voldenet :P
01:28 TEttinger oh neat
01:28 Voldenet (obviously not all interpreters on all platforms, just hostpot)
01:28 TEttinger I know Java has intrinsics for a bunch of things
01:28 kst` joined #perl6
01:28 mst joined #perl6
01:28 perigrin joined #perl6
01:28 timotimo Voldenet: feel free to experiment with some intrinsic types or some other kind of annotation inside moarvm's source
01:29 Voldenet I sure will, maybe I'll just set up a nqp::stringintern
01:29 TEttinger the list I have for JVM is here, may be useful for the JVM perl 6 https://gist.github.com/apangin/7a9b7062a4bd0cd41fcc
01:30 Voldenet > java/lang/String.compareTo(Ljava/lang/String;)
01:30 Voldenet yay, perl6 is using it too ;D
01:31 Voldenet not moarvm, but it's something
01:31 timotimo we can't keep using java/lang/String for long, though
01:32 Voldenet Hm? Why so?
01:32 timotimo it can't do nfg
01:32 Voldenet ah, right, unicode stuff
01:33 timotimo very custom unicode stuff
01:33 TEttinger some custom CharSequence?
01:33 timotimo like, unicode doesn't specify a "latin capiatl letter a with lots of zalgo applied to it" as its own codepoint
01:33 timotimo but we do
01:33 Voldenet I think I tried using NFKD once and it didn't work for some polish letter
01:33 TEttinger can you subclass String if you aren't abiding by javac's rules?
01:33 Voldenet ;(
01:34 timotimo what'd be the use?
01:34 timotimo is java/lang/String actually subclassable?
01:34 TEttinger java.lang.String is a final class, I'm just wondering if you could extend itat all
01:34 TEttinger I know generics don't exist while not using javac
01:34 TEttinger not sure how real "final" is on a class
01:35 timotimo okay, i gotta go
01:35 timotimo have a good one!
01:40 TEttinger you too!
01:42 Cabanossi joined #perl6
01:43 Voldenet m: .chr.say for "gżegżółka".NFKD
01:46 camelia rakudo-moar 5ca924: OUTPUT: «g␤z␤̇␤e␤g␤z␤̇␤o␤́␤ł␤k␤a␤»
01:46 Voldenet
01:46 Voldenet very fancy decomposition :P
01:46 TEttinger what would that decompose to?
01:46 Voldenet I'd expect l with some kind of -
01:46 Voldenet but unicode says otherwise
01:46 TEttinger but l with dash is different :P
01:46 TEttinger what's the NFKD decomposition for icelandic eth and thorn?
01:46 Voldenet maybe, but I still can't use NFKD to remove non-ascii letters
01:46 TEttinger because you can enter chinese into it anyway>
01:46 TEttinger ?
01:46 TEttinger it isn't a romanization scheme
01:46 Voldenet chinese would be mostly /\ ;)
01:47 ilbot3 joined #perl6
01: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!
01:48 TEttinger and where something may be represented by either a single grapheme or multiple next to each other
01:48 Voldenet but "ł" is diacritical, some accents even used l instead
01:48 TEttinger right but what's the combining mark that goes on it? I don't know if one is in unicode
01:48 TEttinger it's some kind of middle slash, right?
01:49 Voldenet yeah, no idea what's its name
01:49 Voldenet an oblique hyphen maybe, but utf has only double oblique hyphen
01:51 Voldenet I remember PHP4 or 5 having problems with that specific letter in some case, so it's always been strange
01:53 SmokeMachine m: class InternStr is Str {method new(Str \str) {state %s; %s{str} //= InternStr.bless: :value(str)}}; multi infix:<eq>(InternStr \a, InternStr \b) {a === b}; my $a = InternStr.new: "foo" x 99999; my $b = InternStr.new: ("f" ~ ("o" x 2)) x 99999; my $start = now; $ = $a eq $b for ^10000; say now - $start; my $c = "foo" x 99999; my $d = "foo" x 99999; $start
01:53 SmokeMachine = now; $ = $c eq $d for ^10000; say now - $start
01:53 camelia rakudo-moar 5ca924: OUTPUT: «WARNINGS for <tmp>:␤Useless use of $start in sink context (line 1)␤0.016654␤»
01:55 SmokeMachine https://www.irccloud.com/pastebin/R7Iep6j9/
01:57 Voldenet well, string comparisons on interned strings is pretty much instant, that's expected
02:07 kurahaupo__ joined #perl6
02:12 Cabanossi joined #perl6
02:41 noganex_ joined #perl6
02:43 vendethiel joined #perl6
03:11 Cabanossi joined #perl6
03:12 xtreak joined #perl6
03:34 ZzZombo joined #perl6
03:35 cyphase joined #perl6
03:41 Cabanossi joined #perl6
03:45 v1_ joined #perl6
04:06 kurahaupo__ joined #perl6
04:10 vendethiel- joined #perl6
04:13 xtreak joined #perl6
04:14 v1_ joined #perl6
04:21 labster joined #perl6
04:24 wamba joined #perl6
04:32 samcv Emoji Version 5.0 has been finalized today
04:33 samcv new emoji sequences too. like mage with different skin todes and elf and merperson. woah
04:33 samcv going a little out there. but why not i guess
04:34 samcv argh whatttt is this Emoji_Tag_Sequence. new emoji property XD just to make my life harder
04:39 Alikzus joined #perl6
04:42 vendethiel joined #perl6
04:46 Tonik joined #perl6
04:50 mcmillhj joined #perl6
04:58 curan joined #perl6
05:01 skids .oO(skin todes.  Eww.)
05:04 vendethiel- joined #perl6
05:05 samcv now flags can have tags or some crazy thing.
05:06 samcv will look at that tomorrow. at least i finished the 1.7x :i boost to moarvm PR
05:11 Cabanossi joined #perl6
05:13 kurahaupo__ joined #perl6
05:14 aborazmeh joined #perl6
05:14 aborazmeh joined #perl6
05:16 kurahaupo_ joined #perl6
05:17 Voldenet okay, some perl5 first: my $c = 5; $a{b} = $a{b} + $c || $c; print $a{b}."\n"
05:17 Voldenet how do I do something similarly short in p6?
05:17 Voldenet i'm using ternary but it's a bit... hm, clumzy
05:17 Voldenet clumsy, even
05:18 samcv let me look
05:18 domidumont joined #perl6
05:19 Voldenet oh
05:19 samcv my $c = 5; $a<b> = $a<b> + $c || $c; say $a<b> # as long as those wer'nt variables
05:19 samcv the {b}
05:19 Voldenet m: my $c = 5; my %a; %a<b> = (%a<b> // 0) + $c; say %a<b>
05:19 camelia rakudo-moar 5ca924: OUTPUT: «5␤»
05:19 Voldenet ah, so // is a null coalescing op
05:20 samcv anything not defined
05:20 samcv m: Nil.defined.say; 0.defined.say; Str.defined.say
05:20 camelia rakudo-moar 5ca924: OUTPUT: «False␤True␤False␤»
05:20 samcv Str being the string 'type' class. which is not yet defined
05:20 Voldenet well yeah, but I wanted "set it as 0 if not defined"
05:20 Voldenet which is good ;)
05:21 Voldenet in p5 i did $a{b} || 0 tho
05:22 samcv is c zero?
05:23 samcv my $c = 5; my $a; my $a; $a<b> = $a<b> + $c || $c;  $a<b>.say
05:23 samcv m: my $c = 5; my $a; my $a; $a<b> = $a<b> + $c || $c;  $a<b>.say
05:23 camelia rakudo-moar 5ca924: OUTPUT: «Potential difficulties:␤    Redeclaration of symbol '$a'␤    at <tmp>:1␤    ------> 3my $c = 5; my $a; my $a7⏏5; $a<b> = $a<b> + $c || $c;  $a<b>.say␤Use of uninitialized value of type Any in numeric context␤  in block <unit> at <tmp> lin…»
05:23 samcv m: my $c = 5; my $a; $a<b> = $a<b> + $c || $c;  $a<b>.say
05:23 camelia rakudo-moar 5ca924: OUTPUT: «Use of uninitialized value of type Any in numeric context␤  in block <unit> at <tmp> line 1␤5␤»
05:23 samcv m: my $c = 5; my $a; $a<b> = ($a<b> // 0) + $c || $c;  $a<b>.say
05:23 camelia rakudo-moar 5ca924: OUTPUT: «5␤»
05:24 samcv does that work right Voldenet? i'm not sure what you're trying to do
05:25 Voldenet a regular null coalescing, but I figured already :)
05:25 samcv kk
05:25 domidumont joined #perl6
05:26 Voldenet transition from || into // had me befooled for a little though ;)
05:27 samcv there's also `orelse` which is sorta like // but not as tightly binding
05:27 samcv orelse is for undefined things or is for undefined + falsey things
05:29 Voldenet is there a feature like elvis operator in C#?
05:30 Voldenet value?.invokeFirst()?.invokeSecond()?.invokeThird()?.Field
05:31 Voldenet which basically translate to: if(value != null){ var tmp1 = value.invokeFirst(); if(tmp1 != null){ var tmp2 = tmp1.invokeSecond() ...
05:31 Voldenet and so on
05:31 Voldenet basically "if the left side is null then don't invoke the method/field/indexer"
05:31 Voldenet a real lifesaver in huge, undefined sets
05:33 samcv oh so if the method returns a null then it won't continue down the chain? Voldenet ?
05:33 Voldenet yeah, exactly
05:34 Voldenet and the whole expression is just null of the default(T) of the last field or method's type
05:34 samcv that sounds neat. it may be possible, but i do not know of one off the top of my head. have you heard about junctions yet?
05:34 Voldenet yeah, junctions for infixes looks nice
05:35 samcv the very last method in the chain (even though it didn't run) you mean?
05:35 Voldenet yeah, because of how .net runtime works it must know the type of the method
05:35 samcv m: my $var = Nil.?Str; say $var.WHAT; say $var.defined
05:36 camelia rakudo-moar 5ca924: OUTPUT: «Use of Nil in string context␤  in block <unit> at <tmp> line 1␤(Str)␤True␤»
05:36 Voldenet m: my $var = Nil?.Str; say $var.WHAT;
05:36 camelia rakudo-moar 5ca924: OUTPUT: «5===SORRY!5=== Error while compiling <tmp>␤Bogus postfix␤at <tmp>:1␤------> 3my $var = Nil7⏏5?.Str; say $var.WHAT;␤    expecting any of:␤        infix␤        infix stopper␤        postfix␤        statement end␤        stateme…»
05:36 samcv will have to check how that even parses. as i have no clue what it's doing internally
05:36 Voldenet nope, it's not C# yet :P
05:36 moritz Voldenet: .? has a bit of a different semantics in Perl 6. It invokes the methods on the RHS only if the method on the LHS has that method
05:37 samcv m: my $var = Nil.?fakemethod; say $var.WHAT; say $var.defined
05:37 camelia rakudo-moar 5ca924: OUTPUT: «(Any)␤False␤»
05:37 samcv m: my $var = Nil.fakemethod; say $var.WHAT; say $var.defined
05:37 camelia rakudo-moar 5ca924: OUTPUT: «(Any)␤False␤»
05:37 samcv :\ what
05:37 samcv m: my $var = 'word'.?fakemethod; say $var.WHAT; say $var.defined
05:37 camelia rakudo-moar 5ca924: OUTPUT: «(Any)␤False␤»
05:37 samcv m: my $var = 'word'.fakemethod; say $var.WHAT; say $var.defined
05:37 camelia rakudo-moar 5ca924: OUTPUT: «No such method 'fakemethod' for invocant of type 'Str'␤  in block <unit> at <tmp> line 1␤␤»
05:38 samcv m: my $var = quietly 'word'.fakemethod; say $var.WHAT; say $var.defined
05:38 camelia rakudo-moar 5ca924: OUTPUT: «No such method 'fakemethod' for invocant of type 'Str'␤  in block <unit> at <tmp> line 1␤␤»
05:38 samcv m: my $var = 'word'.?comb; say $var
05:38 camelia rakudo-moar 5ca924: OUTPUT: «(w o r d)␤»
05:38 samcv cool
05:39 Voldenet moritz: but that's the different operator, .? is not ?. :)
05:39 Voldenet and I guess .? has the meaning of "when right side exists" while the latter would mean "if the left side exists"
05:40 Voldenet I guess I could hijack some junction to do it though, probably.
05:40 samcv m: use Test; throws-like({ $a = 'a' x 9999999999999999999 }, Exception, 'too large repeat count throws instead of going negative');
05:40 camelia rakudo-moar 5ca924: OUTPUT: «5===SORRY!5=== Error while compiling <tmp>␤Variable '$a' is not declared␤at <tmp>:1␤------> 3use Test; throws-like({ 7⏏5$a = 'a' x 9999999999999999999 }, Except␤»
05:40 samcv m: use Test; my $a throws-like({ $a = 'a' x 9999999999999999999 }, Exception, 'too large repeat count throws instead of going negative');
05:40 camelia rakudo-moar 5ca924: OUTPUT: «5===SORRY!5=== Error while compiling <tmp>␤Two terms in a row␤at <tmp>:1␤------> 3use Test; my $a7⏏5 throws-like({ $a = 'a' x 99999999999999␤    expecting any of:␤        infix␤        infix stopper␤        statement end␤       …»
05:40 samcv m: use Test; my $a; throws-like({ $a = 'a' x 9999999999999999999 }, Exception, 'too large repeat count throws instead of going negative');
05:40 camelia rakudo-moar 5ca924: OUTPUT: «    1..2␤    ok 1 - code dies␤    ok 2 - right exception type (Exception)␤ok 1 - too large repeat count throws instead of going negative␤»
05:50 RabidGravy joined #perl6
05:55 kurahaupo__ joined #perl6
05:56 Cabanossi joined #perl6
06:01 imcsk8_ joined #perl6
06:08 eater joined #perl6
06:13 samcv just gonna remove some code i don't know what it does and make sure nothing breaks. :P
06:13 samcv also should see how old this code is as well
06:15 samcv ok 3 years ago is a long time ago since this spot was changed
06:16 samcv err wait this section only 8 m ago. https://github.com/perl6/nqp/commit/778d1a1269bb19aaced4834e7690fa7588da9ea5
06:17 samcv should be fine to remove all the unneeded things now
06:19 wamba joined #perl6
06:20 mcmillhj joined #perl6
06:33 gdonald joined #perl6
06:37 darutoko joined #perl6
06:37 Voldenet hm, I wonder if this should leak: http://ix.io/pfh
06:39 samcv depends on how much
06:39 Voldenet about this much (seconds on the left, kB on the right) http://ix.io/pkM
06:39 samcv kB leaked? what program is this?
06:40 samcv valgrand?
06:40 samcv grind*
06:40 Voldenet nah, just regular smaps
06:40 mcmillhj joined #perl6
06:40 Voldenet > awk '/Rss/{i+=$2}END{print i}' /proc/`pidof moar`^Cmaps
06:40 Voldenet erm
06:40 Voldenet > awk '/Rss/{i+=$2}END{print i}' /proc/`pidof moar`/smaps
06:41 Voldenet a professional profiler ;)
06:41 samcv you think it's leaking because memory usage is going up?
06:41 samcv heh
06:41 Voldenet Hm, I'm not sure if it is.
06:41 Voldenet The idea is to leave this for a few hours and see if it gets bad ;)
06:42 samcv yeah. would be interested after a few hours
06:42 Voldenet it's just 30 minutes, but the steady growth is... worrying
06:43 samcv forcing the gc is just to try and get better readings? is that it Voldenet
06:43 Voldenet yyyyyyeah, I should use valgrind, shouldn't I? ;D
06:44 samcv there's perl6-valgrind-m
06:44 samcv so you don't have to do much work
06:44 samcv you should already have it
06:45 samcv qq<"$contents">; would look nicer than doing those ~ and ~
06:45 samcv instead of '"'~ $contents ~ '"';
06:46 Voldenet hm, old habits, just replaced . with ~
06:46 samcv also could do “'$contents'”
06:46 samcv if you have a compose key
06:47 samcv .oO( wonders if there are space insensitive quoting like how regex is by default not sensitive to quoting)
06:47 samcv that could be useful. or something
06:47 darutoko- joined #perl6
06:48 samcv also do you know about Q quoting Voldenet ?
06:49 samcv Q is one of my favourite quoting methods. becuase backspaces don't need escaping
06:49 domidumont joined #perl6
06:49 Voldenet yeah, Q quoting is nice
06:49 samcv and heredocs are nice too
06:49 samcv Voldenet, what editor are ypou using?
06:50 Voldenet hm, nano/emacs/atom
06:50 Voldenet the first one for giggles, not really
06:50 samcv have you seen https://github.com/perl6/Atom-as-a-Perl6-IDE and gotten at least the syntax highlighter?
06:50 samcv for atom that is
06:50 Voldenet yes, in fact I'm using it ;)
06:50 samcv yay :)
06:50 samcv glad to know my work is being used <3
06:51 samcv also that page has fun stuff like this https://github.com/perl6/Atom-as-a-Perl6-IDE#indexing-of-classes-routines-and-operators
06:51 samcv really useful when i'm working with a long file
06:52 El_Che there is als azawawi's atom-perl6-tools that add stuff to it
06:52 El_Che syntax chekcing, file browser, icons
06:52 samcv i didn't have much fun with atom-perl6-tools
06:52 samcv it got really in the way
06:52 El_Che really?
06:53 samcv and errors and stuff
06:53 samcv Voldenet, the syntax highlighter we use on docs.perl6.org too
06:53 samcv since i converted the site from Pygments highlighter
06:53 El_Che I tried it sunday and it worked great (once I add MyLib/lib to my PERL6LIB before starting atom)
06:53 samcv hm
06:53 samcv what is this MyLib/lib
06:53 El_Che s/add/added/
06:53 samcv is it project dependent?
06:54 El_Che the lib directory of the code I was working on
06:54 samcv ok so wherever you project was. ok
06:54 samcv maybe that's why i hated it and it just wasted all my cpu lol
06:54 El_Che I guess adding a local lib should be trivial in the tools
06:54 El_Che I'll ping him when he's here
06:55 El_Che yes, without the lib thing every "use" is marked as error
06:55 samcv he finally released new atom release which relied on the new Perl6 highlighter, he either is slow with responding or just busy a lot
06:56 Voldenet mmm, running that script with valgrind really wasn't the best idea... now I wonder if I really eval files more 80 times per second
06:56 Voldenet so I can worry about the actual memory usage :D
06:56 Cabanossi joined #perl6
06:57 mcmillhj joined #perl6
06:58 samcv EVALing file is not the best thing to do maybe?
06:58 samcv idk
06:59 samcv it basically have to recompile the code
06:59 Voldenet > possibly lost: 192,024 bytes in 3,432 blocks
06:59 Voldenet it's something ¯\_(ツ)_/¯
06:59 samcv unless that's what you're actually trying to do, check the EVAL stuff
06:59 Voldenet well, I might check out if slurp alone causes that or if it's EVAL's fault
06:59 Voldenet (EVALFILE just slurps and EVALs, right?)
07:01 samcv well yeah. but it has to start the parser up all over again and blah. what file are you even testing?
07:01 Voldenet the test case is self-contained :P
07:01 samcv i mean eval is not supposed to be used unless there's no other way
07:02 samcv self-contained?
07:02 samcv private you mean?
07:02 Voldenet hm, it's just "~now" in the moment of testing
07:02 samcv ah ok. that's it
07:02 Voldenet I just wanted to see if it's a good approach to loading perl files/scripts/modules dynamically
07:02 samcv does it even call EVAL at all?
07:02 samcv argh. i wouldn't do that lol
07:03 samcv you can dynamically load modules
07:03 samcv lexically even
07:03 Voldenet the problem with other approaches is that you can't unload and reload them easily
07:03 samcv have it only affect a certain block of code
07:03 Voldenet GC would at some point go crazy (unless you couldn't really unload the code)
07:03 samcv ah if there are changes to it?
07:03 Voldenet Yeah. That's the fun. :)
07:04 samcv well if you figure it out let me know
07:04 Voldenet EVALFILE seems good... enough for the case
07:04 samcv my ircbot i just had a perl 5 script that does some processing
07:04 samcv uh EVALFILE doesn't or doesn't load things into scope?
07:05 Voldenet I think/I hope not.
07:05 samcv then how is it helpful?
07:05 Voldenet You can return things and interact with the caller.
07:05 abraxxa joined #perl6
07:05 samcv Voldenet you could try this
07:06 samcv star: my $module = try { require JSON::Tiny }
07:06 camelia star-m 2016.10: ( no output )
07:06 samcv and then maybe you can re-load it later
07:06 samcv and keep it in that variable or whatever
07:07 samcv though nine might know the answer
07:07 Voldenet yeah, unloading things was never a priority in most langs
07:07 samcv i'm sure there is a way to do it. i just don't know it
07:07 Voldenet using evals helps keeping things moderately tidy though
07:07 samcv let me finish something and then i'll check some things for you
07:09 Voldenet sure thing, but evals still look as good as hacky ;-)
07:09 Voldenet also, it feels a lot like perl5, unfortunately I don't need to put 1; at the end
07:10 mcmillhj joined #perl6
07:10 samcv hah
07:10 samcv there is so much fun in perl 6. what have yo learned so far?/when did you start learning
07:11 mr-foobar joined #perl6
07:11 Voldenet just a few weeks back, I've so far learned some basics only :P
07:12 Voldenet classes / parameter passing (not sure if completely though) / how to implement ops in moar / grammars and all the fancy async stuff
07:13 samcv nice
07:13 Voldenet tbh, the best idea so far for me is how concurrency is pretty straightforward
07:14 Voldenet especially with Supplies and Channels, that simplify the code a lot
07:14 Voldenet No more race conditions! :P
07:15 samcv perl6 is pretty much the greatest
07:15 Voldenet yeah, i feel like I could rewrite whatever language I wanted in it :-)
07:15 samcv :)
07:15 samcv how did you hear about perl 6?
07:16 espadrine_ joined #perl6
07:16 Voldenet from an image
07:16 Voldenet http://perl-begin.org/humour/perl6_perl_6_cover_lg.jpg
07:17 Voldenet :P
07:17 samcv i became a core developer around Dec 18th of last year, learned perl 6 like 4 months before that, before that just knew perl5 and knew perl 6 was a thing
07:17 vendethiel joined #perl6
07:17 dakkar joined #perl6
07:17 samcv then decided it was the language of the future, started commiting a steady stream of patches and now it's pretty great to be working on improving an already great language
07:17 samcv omg that book
07:17 Voldenet :-)
07:18 samcv good thing it says "Not REALLY"
07:18 Voldenet Actually, it's improving perl5
07:18 samcv hmm?
07:18 Voldenet Stuff like $hash{key}
07:18 samcv oh perl 6 you mean?
07:18 Voldenet yeah, it never made real sense in p5
07:18 samcv yeah, they borrow a lot of things
07:19 samcv what do you mean?
07:19 samcv that you didn't have to quote it? or accessing a hash with a scalar?
07:19 Voldenet accessing a hash with a scalar...
07:19 samcv hah
07:19 samcv you can still do that in perl 6 though if you want
07:19 samcv but then it's actually IN a scalar
07:19 Voldenet also, wantarray was one gloomy feature
07:20 samcv it's not accessing a hash like a scalar
07:20 samcv it actually is in a scalar container
07:20 samcv which is. making actual sense. unlike perl 5
07:20 Voldenet :-)
07:20 samcv Unicode 10 comes out in april or something
07:21 samcv or hope they don't add any new radical things. need to look into new flag things
07:21 Voldenet I honestly hope they fix at least some diacritics (to the point I can safely use it to convert any latin-derived language into ascii)
07:22 samcv what do you mean
07:22 samcv why do you want ascii :P
07:22 Voldenet m: .chr.say for "gżegżółka".NFKD
07:22 camelia rakudo-moar 5ca924: OUTPUT: «g␤z␤̇␤e␤g␤z␤̇␤o␤́␤ł␤k␤a␤»
07:22 Voldenet hm, storing files, arbitrary ascii-only ids
07:22 samcv that doesn't have anything to do with unicode though right
07:22 Voldenet i feel like "ł" should really be decomposed, even if there's no character for that dash
07:23 samcv oh lol.
07:23 Voldenet Nope, doesn't at all.
07:23 samcv Voldenet, do you know about how the flags are implemented?
07:23 samcv so there's new codepoints started in unicode 9.0. A-Z so you could use ISO names and have flags show up
07:24 samcv m: say "\c[United States]"
07:24 camelia rakudo-moar 5ca924: OUTPUT: «🇺🇸␤»
07:24 Voldenet well none of my fonts support it, but I believe you
07:24 Voldenet :D
07:24 samcv idk how that shows up. but it's two codepoints. regional indicator U and regional indicator S
07:24 samcv m: say "\c[United States]".uninames
07:24 camelia rakudo-moar 5ca924: OUTPUT: «(REGIONAL INDICATOR SYMBOL LETTER U REGIONAL INDICATOR SYMBOL LETTER S)␤»
07:24 samcv but the crazy thing. is they also support 3 letter names
07:24 samcv so if you have 5 regional indicators right next to each other
07:25 samcv they're support to be 1 RI of 3 codepoints and the next be 2 codepoints
07:25 samcv and no other thing in unicode acts like that
07:25 samcv and now they added some new thing so scotland and england got flags called 'flag tags' or something
07:25 Voldenet ಠ_ಠ I bet the complexity is worth it
07:25 samcv it is
07:26 samcv there's a good reason they did that and don't use ZWJ but i forget what it was
07:26 Voldenet at least it allows me to fancy meme faces (ノ´ー`)ノ
07:26 samcv yes. very true
07:26 samcv m: "\c[facepalm]".say
07:26 camelia rakudo-moar 5ca924: OUTPUT: «5===SORRY!5=== Error while compiling <tmp>␤Unrecognized character name [facepalm]␤at <tmp>:1␤------> 3"\c[facepalm7⏏5]".say␤»
07:26 samcv m: "\c[facepalming]".say
07:26 camelia rakudo-moar 5ca924: OUTPUT: «5===SORRY!5=== Error while compiling <tmp>␤Unrecognized character name [facepalming]␤at <tmp>:1␤------> 3"\c[facepalming7⏏5]".say␤»
07:26 samcv u: facepalm
07:26 unicodable6 samcv, Found nothing!
07:27 Voldenet m: "\c[face palm]".say
07:27 camelia rakudo-moar 5ca924: OUTPUT: «🤦␤»
07:27 samcv yeah that
07:27 Voldenet :D
07:27 samcv we eve support unicode sequences like emoji sequences with \c (since i added it a month or so ago)
07:27 u-ou :U
07:27 samcv which is pretty fancy
07:27 samcv m: say "\c[woman gesturing OK]"
07:27 camelia rakudo-moar 5ca924: OUTPUT: «🙆‍♀️␤»
07:27 Voldenet ...and none of my fonts support it yet :>
07:28 samcv m: say "\c[woman gesturing OK]".uninames.perl.say
07:28 camelia rakudo-moar 5ca924: OUTPUT: «("FACE WITH OK GESTURE", "ZERO WIDTH JOINER", "FEMALE SIGN", "VARIATION SELECTOR-16").Seq␤True␤»
07:28 samcv m: say "\c[woman gesturing OK]".chars
07:28 camelia rakudo-moar 5ca924: OUTPUT: «1␤»
07:28 samcv and it still sees it as one character
07:28 samcv Voldenet, you don't see ANYTHING there?
07:28 samcv or you see like a woman and then a female symbol
07:28 Voldenet Well, I see female symbol.
07:28 samcv you should install the noto fonts + noto emoji and that will cover almost all of unicode
07:28 u-ou m: say "\c[PILE OF POO]"
07:28 camelia rakudo-moar 5ca924: OUTPUT: «💩␤»
07:28 u-ou :>
07:29 samcv and if you have those installed and still can't see it. then maybe you are using a terminal that's not falling back to other fonts on misses
07:29 Voldenet Probably, but I just can't stop using consolas ;)
07:29 u-ou I'm having a look at perl 6 at a glance
07:29 u-ou looks ok
07:29 Voldenet yeah, probably term's fault too
07:29 samcv what terminal do you have Voldenet
07:29 Voldenet putty
07:29 samcv ew
07:29 Voldenet :-)
07:30 u-ou :U
07:30 samcv get an actual one...
07:30 Voldenet inb4 "windows inferior race" ;)
07:30 samcv nah cause putty sucks
07:30 samcv nothing to do with windows, it's just a terrible program. doesn't care about fonts period
07:30 samcv Voldenet, though to install the fonts see here https://www.google.com/get/noto/help/install/
07:30 samcv you can get ALL the noto fonts and get like 97% unicode coverage
07:31 Voldenet Got em already.
07:32 samcv Voldenet, maybe this last answer? https://superuser.com/questions/599899/can-i-set-font-fallbacks-in-putty
07:32 Voldenet There's no real alternative for lightweight-xterm emus on windows
07:32 samcv idk what that is. but it might do what you want. idk
07:33 samcv also see this https://plus.google.com/+KimNilsson/posts/bRbxuuxtCUV
07:34 TEttinger I like cmder a lot
07:34 samcv so it seems totally doable
07:34 TEttinger on windows
07:34 samcv does it autouse fallback fonts TEttinger
07:34 TEttinger I think you can tell it to
07:34 Voldenet well... https://www.youtube.com/watch?v=CXpuRIZzJog ;P
07:34 Voldenet but I'll get emojis in putty working, because it looks fancy
07:34 samcv Voldenet, this seems to be the most specific one https://github.com/pyroscope/rtorrent-ps/issues/8
07:35 samcv well to properly do it you should do all 10 noto fonts
07:35 TEttinger looks like cmder allows one fallback font, for specified unicode ranges I think?
07:35 samcv because it covers too much of unicode to be stored in one font
07:36 samcv looks like fontlink may be more multipurpose or something. i guess you link extra fonts to whatever font you're using for putty
07:37 samcv so write a program to format it to windows regkeys from a directory listing of the font folder than copy and paste output # now that would be  https://www.youtube.com/watch?v=CXpuRIZzJog
07:37 samcv lol
07:37 mcmillhj joined #perl6
07:39 Voldenet :D
07:40 Cabanossi joined #perl6
07:45 samcv then write a script and do it to all fonts installed on your system
07:46 samcv and. can't think of anything else overkill you could do after that
07:46 mcmillhj joined #perl6
07:47 Voldenet hm, using more than 10 fonts is not probably the wisest
07:47 samcv oh?
07:48 Voldenet hm, it has to work somehow, probably loads all fonts listed
07:48 Voldenet :)
07:48 samcv nah. only loads in case you are missing
07:48 samcv then would cache it
07:48 Voldenet but putty doesn't support it >.>
07:48 samcv support what?
07:49 Voldenet linked fonts, apparently
07:49 samcv wtf
07:49 Voldenet hm, wondrous things
07:50 samcv http://www.chiark.greenend.org.uk/~sgtatham/putty/wishlist/win-font-linking.html
07:50 samcv they fixed it in 2006
07:50 samcv unless they broke it *again*
07:50 zakharyas joined #perl6
07:51 * lizmat clickbaits https://p6weekly.wordpress.com/2017/03/27/2017-13-ios-not-the-same/
07:51 samcv o/ lizmat
07:51 Voldenet Well, I can live without emojis, tbh. ;-)
07:51 Voldenet I guess I'll add some transliteration for them, so I don't see boxes though
07:51 geekosaur joined #perl6
07:51 lizmat samcv o/
07:52 samcv what os version do you have?
07:52 samcv tho it's probably just putty being crappy
07:52 samcv transliteration?
07:52 lizmat Darwin Kernel Version 16.4.0: Thu Dec 22 22:53:21 PST 2016; root:xnu-3789.41.3~3/RELEASE_X86_64
07:52 Voldenet yeah, "utf -> utf description" :P
07:52 Voldenet 'not the best, but works' :-)
07:53 samcv lol
07:53 Voldenet i wish weechat had perl6 support, i'd have to do it with perl5 tho
07:54 mcmillhj joined #perl6
07:55 bjz joined #perl6
08:15 bjz joined #perl6
08:16 mcmillhj joined #perl6
08:21 kurahaupo__ joined #perl6
08:24 moritz there's an Inline::Perl6 module for Perl 5
08:27 mcmillhj joined #perl6
08:33 wamba joined #perl6
08:40 u-ou when is fork() likely to be implemented?
08:40 parv joined #perl6
08:40 moritz in Perl 6? not, because it's not portable
08:41 moritz though it's not hard to get it running through NativeCall
08:41 u-ou perl5 more or less has a portable fork
08:41 u-ou it even works on windows
08:41 mcmillhj joined #perl6
08:41 u-ou yeah, will look into nativecall
08:41 moritz https://github.com/cspencer/perl6-posix
08:41 moritz submit a pull request for it to implement fork, that would be the right place
08:42 u-ou it = perl6-posix ?
08:43 u-ou ok
08:43 geekosaur u-ou, for some value of "works" that isn't very
08:43 geekosaur it's a hideous hack and you can break it fairly easily
08:43 u-ou ahh
08:43 geekosaur because windows doesn't do fork
08:43 u-ou so fork is out?
08:44 samcv what do you need fork for u-ou ?
08:44 u-ou an irc bot
08:45 samcv and so what do you need to fork?
08:45 samcv an executable?
08:45 samcv another perl 6 script? a perl 5 script?
08:45 u-ou perl 6
08:45 geekosaur (perl 5's fork() on Windows starts a nw *thread* with its own private perl 5 interpreter context. you can fairly easily still access and change the old context, because they're still sharing the same address space)
08:45 samcv fork the perl 6 script currentl yrunning?
08:45 u-ou yeah
08:45 samcv sounds like a horrible idea
08:45 samcv we have concurrency features
08:46 samcv so you can execute code at the same time
08:46 u-ou okay
08:46 samcv do you need an intro to them? i can link you
08:46 mtj_ joined #perl6
08:47 u-ou sure
08:47 samcv I wrote a good intro here: https://cry.nu/perl6/multithreading-in-perl6/ and once you read part 1 and 2 then going to the docs and reading the pages should be good supplemental info
08:47 samcv but that will get you started
08:47 tokomer joined #perl6
08:47 u-ou thanks :)
08:47 samcv perl 6 docs page is https://docs.perl6.org/language/concurrency once you get done with my tutorial
08:48 mtj_ joined #perl6
08:49 mcmillhj joined #perl6
08:50 jonas1 joined #perl6
08:54 gdonald joined #perl6
08:56 Cabanossi joined #perl6
08:56 rindolf joined #perl6
08:57 domidumont joined #perl6
08:58 mcmillhj joined #perl6
09:00 kurahaupo_ joined #perl6
09:00 andrzejku hi :)
09:01 andrzejku did you hear that web assembly is fully supported in firefox
09:07 mcmillhj joined #perl6
09:07 JimmyZ joined #perl6
09:11 andrzejku samcv: good job
09:11 masak andrzejku: and in Chrome, it seems
09:16 u-ou night
09:18 domidumont1 joined #perl6
09:20 mcmillhj joined #perl6
09:23 parv samcv, in 1st para, last line under "Channels" (re: cry.nu URL) "... if we have removed all the items from the queue and we have closed it with .closed". Is the last word supposed to be ".close" instead? If not, is there some wording issue?
09:33 melezhik joined #perl6
09:45 mcmillhj joined #perl6
09:51 lukaramu joined #perl6
09:52 salva0 joined #perl6
09:56 Cabanossi joined #perl6
09:56 rindolf joined #perl6
10:02 Geth ¦ ecosystem: c99527ca47 | (Alexey Melezhik)++ | META.list
10:02 Geth ¦ ecosystem: Sparrowdo::Cpanm::GitHub - Sparrowdo module to installs CPAN modules fetched from remote GitHub repositories
10:02 Geth ¦ ecosystem:
10:02 Geth ¦ ecosystem: https://github.com/melezhik/sparrowdo-cpanm-github
10:02 Geth ¦ ecosystem: review: https://github.com/perl6/ecosystem/commit/c99527ca47
10:03 mcmillhj joined #perl6
10:07 wictory[m] joined #perl6
10:12 mcmillhj joined #perl6
10:13 drrho_ joined #perl6
10:15 geekosaur joined #perl6
10:20 DrForr o/'
10:22 mcmillhj joined #perl6
10:24 DrForr https://gist.github.com/drforr/eff47ce7999cf80a3879245c259b814f
10:25 DrForr I'm a little confused by the behavior depicted by above.
10:26 DrForr In the meantime I'll rebuild p6 to see if this is something else messing with me.
10:29 pmurias joined #perl6
10:31 perlawhirl joined #perl6
10:35 mcmillhj joined #perl6
10:35 jnthn DrForr: when uses smartmatching, so it'd smartmatch against the whole expression there. and short-circuits, however, thus returning Perl6::WS, which becomes the target of the smartmatch
10:35 jnthn DrForr: Effectively, the stuff to the right of the and is dead code
10:35 jnthn Because a type object will always be False
10:36 * geekosaur just figured that out...
10:36 DrForr That makes sense.
10:38 DrForr It just means another layer of code, but I think I need another layer there anyway.
10:38 perlawhirl joined #perl6
10:40 perlawhirl hi perlers
10:40 wamba joined #perl6
10:40 perlawhirl I'm sure I saw this answered recently... but how can I pass a hash (or maybe a list of pairs) as object args?
10:41 perlawhirl m: my class A { has $.x; has $.y }; say map { A.new: $_ }, { :1x, :2y }
10:41 camelia rakudo-moar 5ca924: OUTPUT: «Default constructor for 'A' only takes named arguments␤  in block <unit> at <tmp> line 1␤␤»
10:42 jnthn |
10:42 lizmat m: my class A { has $.x; has $.y }; say map { A.new: |$_ }, { :1x, :2y }
10:42 camelia rakudo-moar 5ca924: OUTPUT: «(A.new(x => 1, y => Any) A.new(x => Any, y => 2))␤»
10:42 lizmat m: my class A { has $.x; has $.y }; say map { A.new: |$_ }, { (:1x, :2y) }
10:42 camelia rakudo-moar 5ca924: OUTPUT: «Default constructor for 'A' only takes named arguments␤  in block <unit> at <tmp> line 1␤␤»
10:42 lizmat hmmm
10:43 gregf_ m: my class A { has $.x; has $.y }; say map { A.new: |$_ }, { :1x, :2y }
10:43 camelia rakudo-moar 5ca924: OUTPUT: «(A.new(x => 1, y => Any) A.new(x => Any, y => 2))␤»
10:43 lizmat m: my class A { has $.x; has $.y }; say map { A.new: |$_ }, { \(:1x, :2y) }
10:43 camelia rakudo-moar 5ca924: OUTPUT: «Default constructor for 'A' only takes named arguments␤  in block <unit> at <tmp> line 1␤␤»
10:43 jnthn The hash is being taken as the single argument to map there, under signle arg rule, and thus iterated
10:44 jnthn And all the other things being tried are making the hash into a block ;)
10:44 lizmat ah, hash , not block  :-)
10:44 lizmat duh
10:44 jnthn ${ :1x, :2y } probably does it
10:44 jnthn It it's desired to treat it as one item
10:44 jnthn I'm guessing there's a list of them in the real case this was golfed from, though, otherwise why the map... :)
10:45 perlawhirl yes, there would be a list of them
10:48 bjz joined #perl6
10:48 masak m: say { :1x, :2x }.perl
10:48 camelia rakudo-moar 5ca924: OUTPUT: «{:x(2)}␤»
10:49 masak Last One Wins, apparently
10:49 mcmillhj joined #perl6
10:49 lizmat masak: yes, we don't have push semantics for that
10:50 lizmat and just assigning without checking for existence, is faster
10:50 gregf_ m: [ (:1x, :2y), \(:1x, :2y)].map: *.^name.say
10:50 camelia rakudo-moar 5ca924: OUTPUT: «List␤Capture␤»
10:51 masak lizmat: in newer versions of JavaScript, it's a compile-time error to have dupe keys
10:52 masak I can sort of see the logic in that
10:52 masak and it has zero runtime cost
10:53 vendethiel joined #perl6
10:55 jnthn Dupe literal keys is probably cheap to detect
10:55 jnthn (At compile time)
10:57 masak m: say { foo => 5, foo => 42 }.perl
10:57 camelia rakudo-moar 5ca924: OUTPUT: «{:foo(42)}␤»
10:57 jnthn "Last one wins" is useful when you have literals with defaults then flatten a hash in atop of that with settings
10:57 masak oh, no argument there
10:57 jnthn But it'd be odd to write it and mean it in a literal
10:57 masak just talking about the very-probably-a-thinko situation of duplicate actual keys in a hash literal
10:58 jnthn Right.
10:59 jnthn I could see it warning or even being a compile error in 6.d; I guess that the only argument against is "what if I'm generating code" but I think the answer then is "generate better code" :P :P
11:00 mcmillhj joined #perl6
11:00 japhb joined #perl6
11:00 perlawhirl eh... FWIW I just modified my class.. added a .new multi that accepts Hash, and now 'map { A.new: %$_ }' is working
11:00 perlawhirl i'm just playing around here so a dirty fix is good enought
11:01 perlawhirl actually... that %$_ coercion isn't necessary
11:05 pmurias I should add is-approx tests in roast/S24-testing?
11:05 pmurias * Should I
11:07 geekosaur https://github.com/rakudo/rakudo/commit/42f34fb8ae ?
11:08 masak that's is_approx, not is-approx ;)
11:08 mcmillhj joined #perl6
11:10 perlawhirl m: my class A { has $.x; has $.y; multi method new(%z) {A.new: |%z} }; say map {A.new: $_}, {:1x :2y},{:3x :4y}
11:10 camelia rakudo-moar 5ca924: OUTPUT: «(A.new(x => 1, y => 2) A.new(x => 3, y => 4))␤»
11:11 mr-foobar joined #perl6
11:12 perlawhirl hrm, this works too
11:12 perlawhirl m: my class A {has $.x; has $.y;}; say map {A.new: |%$_}, {:1x :2y},{:3x :4y}
11:12 camelia rakudo-moar 42f34f: OUTPUT: «(A.new(x => 1, y => 2) A.new(x => 3, y => 4))␤»
11:12 perlawhirl but breaks with single arg to map, as discussed above
11:13 perlawhirl which is fine... i'm using map because i have multiple hashes
11:14 pmurias if it's not a thinko it would be intentionally confusing (or auto-generated)
11:17 mcmillhj joined #perl6
11:26 dp[m] joined #perl6
11:26 tadzik joined #perl6
11:26 M-Illandan joined #perl6
11:26 Matthew[m] joined #perl6
11:26 unclechu joined #perl6
11:26 ilmari[m] joined #perl6
11:26 mienaikage joined #perl6
11:26 xui_nya[m] joined #perl6
11:26 CIAvash[m] joined #perl6
11:31 ZzZombo joined #perl6
11:32 abraxxa joined #perl6
11:37 pmurias I have added is-approx tests to roast. I'm not sure if is_run is the correct way of testing the cases when it fails
11:42 abraxxa joined #perl6
11:42 mcmillhj joined #perl6
11:48 Ulti joined #perl6
11:51 raschipi joined #perl6
11:52 Sound joined #perl6
11:58 mcmillhj joined #perl6
11:58 pmurias Should roast assume that int is 64bit at least?
12:02 wamba joined #perl6
12:03 robertle joined #perl6
12:11 raschipi Voldenet: Earlier you asked about functions that deal with sparse lists. In Perl6, we call that "Failures", which is a kind of undefined object. They propagate like you asked Null to propagate.
12:11 Cabanossi joined #perl6
12:11 mcmillhj joined #perl6
12:13 eroux joined #perl6
12:22 mcmillhj joined #perl6
12:26 robertle what are people using for logging in perl6? I use log4perl quite ahppily in perl5...
12:27 DrForr Then you can still use it with Inline::Perl5 :)
12:28 DrForr Alternatively check out the Log namespace on modules.perl6.org, there are a bunch of them there.
12:28 robertle I did see them, but was wondering what people's experiences were
12:28 raschipi buggable: eco log
12:28 buggable raschipi, Found 15 results: Crust::Middleware::Syslog, Games::BubbleBreaker, Template::Mustache, Log::Syslog::Native, Sys::Lastlog. See https://modules.perl6.org/#q=log
12:29 robertle I did look at Log::minimal, but it seems to be a bit too minimal :)
12:29 DrForr I haven't used any of them yet myself.
12:36 Sound joined #perl6
12:39 gdonald joined #perl6
12:41 Cabanossi joined #perl6
12:46 itaipu joined #perl6
12:58 mcmillhj joined #perl6
13:03 vendethiel- joined #perl6
13:07 cdg joined #perl6
13:09 xtreak joined #perl6
13:11 Cabanossi joined #perl6
13:19 kurahaupo__ joined #perl6
13:33 skids joined #perl6
13:36 lukaramu_ joined #perl6
13:41 Cabanossi joined #perl6
13:56 SmokeMachine m: my %a{List} = (1, 2) => 42; my $l = List.new: 1,2; say %a{$l} # should it work?
13:56 camelia rakudo-moar 42f34f: OUTPUT: «(Any)␤»
14:02 geekosaur SmokeMachine, I suspect that should throw. I think hash keys must be value types
14:03 geekosaur I suspect it's using the address or something currently (maybe the .WHICH)
14:03 geekosaur m: my %a{List} = (1, 2) => 42; dd %a
14:03 camelia rakudo-moar 42f34f: OUTPUT: «Hash[Any,List] %a = (my Any %{List} = ((1, 2)) => 42)␤»
14:03 geekosaur hm
14:05 SmokeMachine m: my %a{Int} = 1 => 42; say %a{1}
14:05 camelia rakudo-moar 42f34f: OUTPUT: «42␤»
14:05 geekosaur oh, it stringified.
14:05 sufrostico joined #perl6
14:05 timotimo will => stringify numbers, too?
14:05 timotimo m: say (1 => 42).perl
14:05 camelia rakudo-moar 42f34f: OUTPUT: «1 => 42␤»
14:06 timotimo m: say (1 => 42).key.perl
14:06 camelia rakudo-moar 42f34f: OUTPUT: «1␤»
14:06 SmokeMachine m: my %a{Int} = 1 => 42; say %a.keys.head.WHAT
14:06 camelia rakudo-moar 42f34f: OUTPUT: «(Int)␤»
14:06 timotimo ok, it won't
14:06 geekosaur m: my %a{List} = :{(1, 2) => 42}; my $l = List.new: 1,2; say %a{$l}
14:06 camelia rakudo-moar 42f34f: OUTPUT: «Potential difficulties:␤    Useless use of hash composer on right side of hash assignment; did you mean := instead?␤    at <tmp>:1␤    ------> 3my %a{List} = :{(1, 2) => 42}7⏏5; my $l = List.new: 1,2; say %a{$l}␤(Any)␤»
14:07 geekosaur m: my %a{List} := :{(1, 2) => 42}; my $l = List.new: 1,2; say %a{$l}
14:07 camelia rakudo-moar 42f34f: OUTPUT: «Type check failed in binding; expected Associative[Any,List] but got Hash[Mu,Any] (:{((1, 2)) => 42})␤  in block <unit> at <tmp> line 1␤␤»
14:07 * geekosaur too tired to figure this out :/
14:26 wamba joined #perl6
14:27 raschipi Has anyone played with this: http://www.cl.cam.ac.uk/~mgk25/ucs/examples/UTF-8-test.txt
14:27 raschipi ?
14:30 eroux joined #perl6
14:44 sufrostico joined #perl6
14:47 eroux joined #perl6
14:50 eroux joined #perl6
14:54 eroux joined #perl6
14:57 eroux joined #perl6
14:59 nowan joined #perl6
14:59 itaipu joined #perl6
15:08 eroux joined #perl6
15:09 eroux joined #perl6
15:19 eroux joined #perl6
15:23 eroux joined #perl6
15:30 eroux joined #perl6
15:32 xtreak joined #perl6
15:35 eroux joined #perl6
15:36 eroux joined #perl6
15:41 eroux joined #perl6
15:42 itaipu joined #perl6
15:47 eroux joined #perl6
15:48 eroux joined #perl6
15:54 eroux joined #perl6
15:55 khw joined #perl6
15:57 gdonald joined #perl6
16:02 Geth ¦ doc: titsuki++ created pull request #1261: Add an index for Single Argument Rule Slurpy
16:02 Geth ¦ doc: review: https://github.com/perl6/doc/pull/1261
16:02 Geth ¦ doc: a67540419a | titsuki++ | doc/Type/Signature.pod6
16:02 Geth ¦ doc: Add an index for Single Argument Rule Slurpy
16:02 Geth ¦ doc: review: https://github.com/perl6/doc/commit/a67540419a
16:02 Geth ¦ doc: 8817092203 | (Itsuki Toyota)++ | doc/Type/Signature.pod6
16:02 Geth ¦ doc: Merge pull request #1261 from titsuki/single-argument-rule-slurpy
16:02 Geth ¦ doc:
16:02 Geth ¦ doc: Add an index for Single Argument Rule Slurpy
16:02 Geth ¦ doc: review: https://github.com/perl6/doc/commit/8817092203
16:02 eroux joined #perl6
16:07 eroux joined #perl6
16:07 sufrostico joined #perl6
16:08 nhywyll joined #perl6
16:18 eroux joined #perl6
16:20 eroux joined #perl6
16:20 SmokeMachine m: my %a; say %a{1;2;3;4;5}
16:20 camelia rakudo-moar 42f34f: OUTPUT: «((Any))␤»
16:20 SmokeMachine m: my %a; say %a{1,2;2;3;4;5}
16:20 camelia rakudo-moar 42f34f: OUTPUT: «((Any) (Any))␤»
16:20 SmokeMachine m: my %a; say %a{1,2;2;3;4;5,6}
16:20 camelia rakudo-moar 42f34f: OUTPUT: «((Any) (Any) (Any) (Any))␤»
16:21 eroux joined #perl6
16:24 Zoffix joined #perl6
16:25 Zoffix Perl 6 IO TPF Grant: Monthly Report (March, 2017): http://blogs.perl.org/users/zoffix_znet/2017/03/perl-6-io-tpf-grant-monthly-report-march-2017.html
16:26 Zoffix .tell [Coke] my March report is now available: http://blogs.perl.org/users/zoffix_znet/2017/03/perl-6-io-tpf-grant-monthly-report-march-2017.html You can get it in Markdown format at https://github.com/zoffixznet/IOwesomeness/blob/master/reports/Mar-2017.md
16:26 yoleaux Zoffix: I'll pass your message to [Coke].
16:26 Zoffix left #perl6
16:34 [Coke] . danke
16:34 yoleaux 16:26Z <Zoffix> [Coke]: my March report is now available: http://blogs.perl.org/users/zoffix_znet/2017/03/perl-6-io-tpf-grant-monthly-report-march-2017.html You can get it in Markdown format at https://github.com/zoffixznet/IOwesomeness/blob/master/reports/Mar-2017.md
16:34 wamba joined #perl6
16:40 ChoHag joined #perl6
16:44 robertle joined #perl6
16:47 mcmillhj joined #perl6
16:47 tojo joined #perl6
16:50 domidumont joined #perl6
16:51 ChoHag joined #perl6
16:55 TeamBlast joined #perl6
17:06 Actualeyes joined #perl6
17:08 mcmillhj joined #perl6
17:34 hankache joined #perl6
17:37 Sound joined #perl6
17:38 raschipi joined #perl6
17:41 Cabanossi joined #perl6
17:48 itaipu joined #perl6
17:56 setty1 joined #perl6
17:57 spider-mario joined #perl6
18:03 sufrostico joined #perl6
18:09 lostinfog joined #perl6
18:14 estrabd joined #perl6
18:16 estrabd joined #perl6
18:17 estrabd joined #perl6
18:29 dct joined #perl6
18:33 gfldex does IO support any form of locking?
18:34 stmuk_ zoffix++
18:35 araujo joined #perl6
18:39 TeamBlast joined #perl6
18:39 RabidGravy gfldex, like " method lock(IO::Handle:D: Int:D $flag)" ?
18:41 gfldex RabidGravy: either such method does not exist or it's an ENODOC
18:41 RabidGravy well, it's in the source so it exists
18:42 gfldex where is the method to test for a lock?
18:43 gfldex "file locks under Unix are by default advisory"
18:43 RabidGravy er yes
18:43 espadrine_ joined #perl6
18:43 gfldex so having a lock method without a test is kinda pointless
18:43 RabidGravy er, no
18:44 gfldex well, you can lock it ofc. You just can't honour locks.
18:44 gfldex I want to be nice :(
18:45 RabidGravy sure,  you lock the file , some other process tries to lock the file and it blocks until it is unlocked
18:46 gfldex doesn't make for very good error messages tho
18:46 [Coke] .seen froggs
18:46 yoleaux I saw FROGGS 17 Jan 2017 21:11Z in #perl6: <FROGGS> dataf3l: to this: http://hg.dyncall.org/pub/dyncall/dyncall/file/011b5e3a8548/dyncall/dyncall_callf.c#l91
18:46 RabidGravy or I guess, non-blocking it throws and exception
18:47 gfldex I can use a Promise.anyof ofc to get at least a timeout
18:47 gfldex RabidGravy: did you try if .lock actually blocks?
18:48 RabidGravy no, I'm just guessing it uses the flock semantics
18:50 gfldex roast seams not to know about .lock
18:51 vendethiel joined #perl6
18:52 RabidGravy Looking in Moar it does non-blocking and throws an exception
18:59 sjoshi joined #perl6
19:01 RabidGravy You could of course implement your own with lockf
19:03 gfldex RabidGravy: wouldn't work on windows. The .open call would already throw.
19:04 gfldex and it's not that hard to fake blocking
19:05 gfldex RabidGravy: could you point me to the moar source please?
19:06 RabidGravy line 384 in src/io/syncfile.c
19:06 ParsonsNose joined #perl6
19:09 wamba joined #perl6
19:10 Voldenet gfldex: it's not hard to fake blocking, but wrappers will be of inferior performance relatively
19:12 yqt joined #perl6
19:15 Tonik joined #perl6
19:16 gfldex no enum to build $flag
19:16 labster joined #perl6
19:16 gfldex ohh, there is a plan for that already
19:20 samcv hello all
19:23 Sgeo joined #perl6
19:24 AlexDaniel joined #perl6
19:29 nadim joined #perl6
19:40 nadim_ joined #perl6
19:41 Cabanossi joined #perl6
19:45 perlawhirl joined #perl6
19:45 bjz joined #perl6
19:49 TeamBlast joined #perl6
19:51 dct joined #perl6
19:59 TeamBlast joined #perl6
20:02 dudz joined #perl6
20:11 andrzejk_ joined #perl6
20:15 haxmeister joined #perl6
20:16 raschipi joined #perl6
20:17 cdg joined #perl6
20:18 dct joined #perl6
20:20 TeamBlast joined #perl6
20:21 mst joined #perl6
20:25 Cabanossi joined #perl6
20:36 dct joined #perl6
20:39 cyphase joined #perl6
20:42 andrzejk_ huh virtualization on mac
20:42 andrzejk_ is very poor
20:43 geekosaur ?
20:45 sufrostico joined #perl6
20:47 Voldenet well, macs were never superior to windows/linux
20:47 Voldenet as servers, obviously, desktops are /tastes/
20:50 itaipu joined #perl6
20:54 lichtkind__ joined #perl6
21:00 andrzejk_ Voldenet i see
21:00 andrzejk_ Voldenet I cann't test my app on linux in this stupid mac
21:01 andrzejk_ the virtual machine freeze all the time
21:02 geekosaur which virtual machine?
21:02 DrForr When I was using Macs, "Parallels" was the rage, but that's probably changed quite a bit.
21:02 geekosaur virtualbox is buggy, that's because virtualbox sucks. parallels and vmware work fine, so it's not "virtualization sucks"
21:03 m44st4 c'est que dans ELF64 - shellcoding, le binaire est SUID, mais on a pas d'appel system autorisé vers geteuid et setreuid ?
21:03 geekosaur parallels is fast but mishandles edge cases, vmware is slower but tick solid
21:03 geekosaur *rock solid
21:03 geekosaur where did I get "tick" from?
21:03 andrzejk_ geekosaur maybe it is buggy but it is free
21:03 gdonald joined #perl6
21:05 Voldenet andrzejk_: just run linux natively
21:05 andrzejk_ Voldenet linux on imac works even worse
21:06 Voldenet whoa, seriously? :o
21:06 Voldenet i thought apple's hardware was ok
21:06 geekosaur I can't say it's worse than running linux on random HP laptops (or random laptops period...)
21:07 zakharyas joined #perl6
21:07 andrzejk_ Voldenet it is okay, but imac2015 got really fucked display card support
21:08 andrzejk_ so it is much more better to got osx
21:10 kurahaupo_ joined #perl6
21:18 cdg_ joined #perl6
21:33 secki joined #perl6
21:37 literal_ joined #perl6
21:40 Cabanossi joined #perl6
21:44 mcmillhj joined #perl6
21:44 El_Che geekosaur: in my experience, virtualbox is a lot less buggy than vmware workstation
21:45 El_Che geekosaur: and certainly you don't have to wait month for a fix after new OS releases
21:45 El_Che geekosaur: I have a paid VMware license (work) and moved nevertheless to virtualbox
21:56 Voldenet El_Che: ymmv - vmware on windows handled usb devices best (compared to qemu/vbox), qemu/kvm were the easiest to script for me
21:56 Voldenet so I bet it all depends on what are you using it for
21:57 El_Che vbox works fine nowadays even with usb3
21:57 El_Che it sucked in the past in that regard
21:57 Voldenet Hm, I've had some problems with usb 3.0 but it was in the past idd
21:58 El_Che i got the vmware license when vbox crashed too much
21:58 El_Che but in like a year the tables turned
21:59 Voldenet Well, free software will always have more testers
21:59 El_Che (and I switched my os at work from a managed windows with virtualized linux to an illegal linux with a win vm)
21:59 Voldenet and in the long run it should win (unless someone pours in enormous amounts of money)
21:59 El_Che life is good now ;)
21:59 El_Che yeah. The tricky part is the Oracle overlord
22:00 El_Che but so far it's ok
22:00 Voldenet Well, when you balance the costs I'm sure testing is not very cheap and getting free testers is really awesome
22:01 Voldenet especially when you consider number of configs to test on
22:01 Voldenet however, you can release paid product and treat your consumers as testers too }:->
22:01 samcv hi Voldenet
22:01 Voldenet Oh, hi again! :)
22:02 El_Che the clue is actuelly follow the release (be up to date) and roll back if the new release is buggy
22:02 El_Che Voldenet: lol
22:09 alphah hello perl6, I have this grammar that parse linux package name of the form: name-ver-arch-build.ext https://gist.github.com/anonymous/04e1f3c66a6b406d38418c8f2f79813c
22:09 alphah I'm trying to modify the grammar to parse packages which have hyphen "-" in name
22:11 Voldenet hmmm, hmmm, you'd need to make your token regexes
22:11 Voldenet (that's what I think at least)
22:12 Voldenet that's because tokens can't really backtrack, so the name has to make a choice whether to match the first part as a package name
22:13 Voldenet however, you could also try this
22:13 alphah hmm, aah gotcha
22:13 Voldenet token name { <alnum>+ [ '-' <-[0-9]><alnum>+ ]? }
22:14 Voldenet it won't match packages of format "something-9test" but that's not a realistic case :)
22:14 Voldenet and 'something-3...' is probably a version
22:15 alphah yes I think this is enough for my case, I dont think I will have complicated package names
22:16 alphah Thanks a lot Voldenet
22:17 damnlie joined #perl6
22:18 Voldenet therefore if you
22:18 Voldenet erm
22:18 Voldenet wrong chan :P
22:19 Voldenet ehm, bad habits, perl6 doesn't allow 0-9
22:19 Voldenet > token name{ <alnum>+ [ '-' <-[0..9]><alnum>+ ]? }
22:19 Voldenet that's what I meant
22:20 alphah yes, last one worked
22:20 Voldenet or even better
22:21 Voldenet token name{ <alnum>+ [ '-' <!digit><alnum>+ ]? }
22:21 Voldenet readability
22:22 Voldenet actually
22:22 Voldenet token name{ <alnum>+ [ '-' <!digit><alnum>+ ]* }
22:22 Voldenet so it'd even match
22:22 Voldenet some-funky-package-2.0-armv7-3.pkg
22:24 alphah better :like:
22:36 Voldenet actually, it's tricky to parse them package names :)
22:37 timotimo <!digit> isn't the same as <-[0..9]> though
22:37 Voldenet Oh?
22:38 timotimo m: say "⁵" ~~ / <!digit> /; say "⁵" ~~ / <-[0..9]> /
22:38 camelia rakudo-moar 41ac4b: OUTPUT: «「」␤「⁵」␤»
22:38 Voldenet hm, so digit is more like :N?
22:38 Voldenet say "⁵" ~~ / <!digit> /; say "⁵" ~~ / <-:N> /
22:38 timotimo not sure about its precise definition
22:38 Voldenet m: say "⁵" ~~ / <!digit> /; say "⁵" ~~ / <-:N> /
22:38 camelia rakudo-moar 41ac4b: OUTPUT: «「」␤Nil␤»
22:38 Voldenet m: say "⁵" ~~ / <!digit> /; say "⁵" ~~ / <!:N> /
22:38 camelia rakudo-moar 41ac4b: OUTPUT: «「」␤Nil␤»
22:41 Voldenet hmmm, docs say that <!:N> should work as negation
22:41 Voldenet oh
22:41 Voldenet :!N
22:41 Voldenet m: say "⁵" ~~ / <!digit> /; say "⁵" ~~ / <:!N> /
22:41 camelia rakudo-moar 41ac4b: OUTPUT: «「」␤Nil␤»
22:42 alphah hmm
22:42 Voldenet m: say ($_ ~~ / <:!N> /) for <1 a b c>
22:42 camelia rakudo-moar 41ac4b: OUTPUT: «Nil␤「a」␤「b」␤「c」␤»
22:42 timotimo tbh, i'm a bit surprised it even creates a match object there
22:42 timotimo for <!digit>
22:43 Voldenet m: say ($_ ~~ / <!digit> /) for <1 a b c>
22:43 camelia rakudo-moar 41ac4b: OUTPUT: «「」␤「」␤「」␤「」␤»
22:44 timotimo oh
22:44 timotimo haha
22:44 timotimo yeah, it's a lookahead assertion
22:45 Voldenet Oh, wow. :D
22:46 timotimo i meant <-digit> there
22:46 timotimo m: say "⁵" ~~ / <-digit> /
22:46 camelia rakudo-moar 41ac4b: OUTPUT: «「⁵」␤»
22:46 timotimo oh, OK
22:52 BenGoldberg joined #perl6
23:03 asdfgh joined #perl6
23:07 mcmillhj joined #perl6
23:23 mcmillhj joined #perl6
23:25 kyan joined #perl6
23:27 stmuk joined #perl6
23:32 BenGoldberg m: sub foo { my $i = 0; gather do while callframe($i++) -> $c { take $c.file } }; foo;
23:32 camelia rakudo-moar 41ac4b: OUTPUT: «ctxcaller needs an MVMContext␤  in block <unit> at <tmp> line 1␤␤»
23:32 kurahaupo__ joined #perl6
23:42 u-ou m: my $p = start { .say for lines }; await $p
23:42 camelia rakudo-moar 41ac4b: OUTPUT: «»Wann treffen wir drei wieder zusamm?«␤   »Um die siebente Stund‘, am Brückendamm.«␤     »Am Mittelpfeiler.«␤         »Ich lösche die Flamm.«␤ »Ich mit«␤␤         »Ich komme vom Norden her.«␤        »Und ich vom Süden.«…»
23:42 u-ou why is that in German?
23:42 u-ou OH
23:42 timotimo just for fun
23:42 AlexDaniel it's just a stdin
23:42 u-ou that wasn't an error
23:42 timotimo hahaha :D
23:42 AlexDaniel maybe you will like this one more
23:42 TEttinger joined #perl6
23:42 AlexDaniel e: say slurp
23:42 evalable6 AlexDaniel, rakudo-moar 41ac4b4a3: OUTPUT: «♥🦋 ꒛㎲₊⼦🂴⧿⌟ⓜ≹℻ 😦⦀🌵 🖰㌲⎢➸ 🐍💔 🗭…»
23:42 evalable6 AlexDaniel, Full output: https://gist.github.com/160cd051ac0a74ad997e017e20c48beb
23:42 u-ou I get an error when I try that code
23:42 timotimo that would be hilarious
23:43 timotimo if rakudo just randomly gave german error messages sometimes
23:43 u-ou error: error is in the wrong language
23:44 TimToady error: you don't know Swahili, so just guess
23:44 u-ou maybe perl7 should just be a language for error messages
23:45 AlexDaniel (and written in error messages also)
23:47 u-ou so with that code I tried I get Tried to read() on a socket from outside its originating thread
23:47 mcmillhj joined #perl6
23:47 timotimo yeah, that's what we get for using libuv for synchronous code
23:48 timotimo you can use an older version of rakudo where you don't get that error, but then you'll just get nothing from that "socket" at all
23:50 u-ou :<
23:56 Cabanossi joined #perl6
23:58 skids joined #perl6

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

Perl 6 | Reference Documentation | Rakudo