Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2016-11-27

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:02 viki "Although the above example works as intended the eqv code has to fall back to a slower code path in in order to do its job." https://docs.perl6.org/routine/eqv
00:02 * viki isn't sure it's a good idea to tell users so much about internals of compiler X, since the docs are meant to be compiler-agnostic
00:06 canopus joined #perl6
00:23 adu joined #perl6
00:36 skaji_ joined #perl6
00:41 Actualeyes joined #perl6
00:41 Xliff joined #perl6
00:42 Xliff m: constant T = ( a=>1, b=>2); say T<a>;
00:42 camelia rakudo-moar e0c0ae: OUTPUT«Type List does not support associative indexing.␤  in block <unit> at <tmp> line 1␤␤Actually thrown at:␤  in block <unit> at <tmp> line 1␤␤»
00:42 Xliff m: constant T = { a=>1, b=>2 }; say T<a>;
00:42 camelia rakudo-moar e0c0ae: OUTPUT«1␤»
00:44 viki There's a ticket for that
00:45 viki you can also use %() instead of {}
00:46 Xliff Ah. Thanks.
00:47 dalek doc: fa0b8f6 | (Zoffix Znet)++ | doc/Language/quoting.pod6:
00:47 synopsebot6 Link: http://doc.perl6.org/language/quoting
00:47 dalek doc: Differentiate <...> and qw|...|
00:47 dalek doc:
00:47 dalek doc: Fixes RT#130184: https://rt.perl.org/Ticket/Display.html?id=130184
00:47 dalek doc: review: https://github.com/perl6/doc/commit/fa0b8f6433
00:47 synopsebot6 Link:  https://rt.perl.org/rt3//Publ​ic/Bug/Display.html?id=130184
00:47 bjz joined #perl6
00:48 Xliff m: $a = 'b'; given $a { when 'b' || 'bb' || 'bbb' { say 'B'; } default { say 0; } }
00:48 camelia rakudo-moar e0c0ae: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Variable '$a' is not declared␤at <tmp>:1␤------> 3<BOL>7⏏5$a = 'b'; given $a { when 'b' || 'bb' ||␤»
00:48 Xliff m: my $a = 'b'; given $a { when 'b' || 'bb' || 'bbb' { say 'B'; } default { say 0; } }
00:48 camelia rakudo-moar e0c0ae: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Strange text after block (missing semicolon or comma?)␤at <tmp>:1␤------> 3{ when 'b' || 'bb' || 'bbb' { say 'B'; }7⏏5 default { say 0; } }␤»
00:48 Xliff m: my $a = 'b'; given $a { when 'b' || 'bb' || 'bbb' { say 'B'; }; default { say 0; } }
00:48 camelia rakudo-moar e0c0ae: OUTPUT«B␤»
00:48 Xliff m: my $a = 'b1'; given $a { when 'b' || 'bb' || 'bbb' { say 'B'; }; default { say 0; } }
00:48 camelia rakudo-moar e0c0ae: OUTPUT«0␤»
00:49 Xliff m: my $a = 'c1'; given $a { when 'b' || /^^c/ { say 'BC'; }; default { say 0; } }
00:49 camelia rakudo-moar e0c0ae: OUTPUT«0␤»
00:49 Xliff m: my $a = 'c1'; given $a { when 'b' || /^c/ { say 'BC'; }; default { say 0; } }
00:49 camelia rakudo-moar e0c0ae: OUTPUT«0␤»
00:49 Xliff huh
00:56 dalek doc: c94df2f | (Zoffix Znet)++ | doc/Language/glossary.pod6:
00:56 synopsebot6 Link: http://doc.perl6.org/language/glossary
00:56 dalek doc: Correct allomorphs section to include Rat and Complex literals behaviour
00:56 dalek doc: review: https://github.com/perl6/doc/commit/c94df2f451
00:57 pierre_ joined #perl6
00:57 viki m: my $a = 'c1'; given $a { when 'b' | /^c/ { say 'BC'; }; default { say 0; } }
00:57 camelia rakudo-moar e0c0ae: OUTPUT«BC␤»
00:57 viki Xliff: it uses smartmatch
00:58 Xliff Is that the difference between | and ||?
00:58 Xliff Thanks.
00:59 viki Xliff: || is higher precedence `or` and | constructs an any Junction
00:59 viki huggable: Junction
00:59 huggable viki, Logical superposition of values: https://docs.perl6.org/type/Junction
01:00 viki m: $_ = 'c42'; say 'c1' ~~ ('b' || /^c/)
01:00 camelia rakudo-moar e0c0ae: OUTPUT«False␤»
01:00 viki Not really sure what that means TBH
01:00 viki Ohhh
01:01 viki Xliff: it turns into just 'b': you're with 'b' || /^c/, call ACCEPTS
01:01 viki m: say 'c1' ~~ (False || /^c/)
01:01 camelia rakudo-moar e0c0ae: OUTPUT«「c」␤»
01:01 viki yup
01:10 viki RT#130184 is pretty interesting. The docs never even say that <a b 42> would eqv ('a', 'b', '42'). Someone just assumed it implied that and now there's a StackOverflow page with a wall of text and half the answers claiming we got a bug in <...> :)
01:10 synopsebot6 Link:  https://rt.perl.org/rt3//Publ​ic/Bug/Display.html?id=130184
01:15 dalek doc: 15aff17 | (Zoffix Znet)++ | doc/Language/quoting.pod6:
01:15 synopsebot6 Link: http://doc.perl6.org/language/quoting
01:15 dalek doc: Fix broken L<>
01:15 dalek doc: review: https://github.com/perl6/doc/commit/15aff17c8e
01:17 perlawhirl joined #perl6
01:19 aborazmeh joined #perl6
01:19 aborazmeh joined #perl6
01:19 dalek ecosystem: 454684a | 0racle++ | META.list:
01:19 dalek ecosystem: Add Pod::To::Markdown::Fenced
01:19 dalek ecosystem: review: https://github.com/perl6/e​cosystem/commit/454684ae20
01:19 dalek ecosystem: 2b5486b | 0racle++ | META.list:
01:19 dalek ecosystem: Merge pull request #269 from 0racle/patch-2
01:19 dalek ecosystem:
01:19 dalek ecosystem: Add Pod::To::Markdown::Fenced
01:19 dalek ecosystem: review: https://github.com/perl6/e​cosystem/commit/2b5486b376
01:19 dalek doc: 82f7e01 | (Zoffix Znet)++ | doc/Language/glossary.pod6:
01:19 synopsebot6 Link: http://doc.perl6.org/language/glossary
01:19 dalek doc: Expand allomorph glossary
01:19 dalek doc:
01:19 dalek doc: - Explain more what "two values" means
01:19 dalek doc: - Mention that Setties and Baggies care about object identity
01:19 dalek doc: review: https://github.com/perl6/doc/commit/82f7e01569
01:22 AlexDaniel viki: that's not the first time I see people confused because of this
01:22 AlexDaniel but it's not only the documentation, it is indeed confusing
01:23 viki I think the confusion lies in allomorphs being described as something magical that turns into an Int or a Str magically.... when it's just a subclass of both Str and corresponding numeric
01:24 viki I mean, you wouldn't expect class Meows { has $.value = 'meows' }.new added into a Bag to count as same thing as 'meows', even through they would print the same.
01:25 viki *class Meows is Str {
01:25 AlexDaniel sure but you're like
01:25 AlexDaniel m: say 3 ∈ < 1 2 3 4 >
01:25 camelia rakudo-moar e0c0ae: OUTPUT«False␤»
01:25 AlexDaniel no, doesn't work
01:25 AlexDaniel m: say ‘3’ ∈ < 1 2 3 4 >
01:25 camelia rakudo-moar e0c0ae: OUTPUT«False␤»
01:25 AlexDaniel no, doesn't work!
01:25 viki m: say class Meows { has $.value = 'meows' }.new eq 'meows'
01:25 camelia rakudo-moar e0c0ae: OUTPUT«False␤»
01:25 viki m: say class Meows is Str { has $.value = 'meows' }.new eq 'meows'
01:25 camelia rakudo-moar e0c0ae: OUTPUT«False␤»
01:25 viki :(
01:26 viki eh, whatever
01:26 AlexDaniel I'm not sure how would I explain it to a begginer if I had to
01:27 viki AlexDaniel: but in that example you used a Set operator on two items that aren't even sets.
01:27 AlexDaniel m: say <3> ∈ < 1 2 3 4 >
01:27 camelia rakudo-moar e0c0ae: OUTPUT«True␤»
01:28 AlexDaniel good point though
01:28 viki m: say <3/4> ∈ < 1 2 3/4 4 >; # ha-ha
01:28 camelia rakudo-moar e0c0ae: OUTPUT«False␤»
01:28 viki :)
01:29 mr_ron joined #perl6
01:29 AlexDaniel m: say < 3/4 > ∈ < 1 2 3/4 4 >; # ha-ha
01:29 camelia rakudo-moar e0c0ae: OUTPUT«True␤»
01:29 AlexDaniel yea…
01:30 viki ^_^
01:30 viki same with Complex
01:30 AlexDaniel huh?
01:31 TimToady the literal form doesn't admit whitespace
01:31 AlexDaniel ahhhhhhhhhhhhhhhhh yeaahhhhhhh…
01:31 AlexDaniel m: dd <3i>
01:31 camelia rakudo-moar e0c0ae: OUTPUT«ComplexStr.new(<0+3i>, "3i")␤»
01:31 AlexDaniel m: dd <1+3i>
01:31 camelia rakudo-moar e0c0ae: OUTPUT«<1+3i>␤»
01:32 TimToady and requires both parts, apparently :)
01:32 AlexDaniel I wish there was a good way to cover all that
01:32 * viki points to Zoffix's latest few commits to doc repo
01:33 * TimToady wonders how soon till Zoffix disowns viki :)
01:33 AlexDaniel viki: I am not sure that any amount of docs will do, but that's a good try, yeah
01:35 viki <...> gives you allomorphs. You can also use it to construct literal Rats and Complex by wrapping it around what would normally be a division or addition operation (<42/10> or C<42+5i>)
01:36 viki <3i> gives you an allomorph, 'cause there's no addition involved, while <1+3i> gives you a Complex 'cause there is an addition
01:37 AlexDaniel m: dd <Inf>
01:37 camelia rakudo-moar e0c0ae: OUTPUT«NumStr.new(Inf, "Inf")␤»
01:37 AlexDaniel m: dd <∞>
01:37 camelia rakudo-moar e0c0ae: OUTPUT«"∞"␤»
01:37 viki ehehe
01:37 viki m: dd <NaN>
01:37 camelia rakudo-moar e0c0ae: OUTPUT«NumStr.new(NaN, "NaN")␤»
01:37 viki neat
01:37 AlexDaniel I mean, wtf is that? Is it a bug or?
01:37 viki m: dd <−42
01:37 camelia rakudo-moar e0c0ae: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Unable to parse expression in quote words; couldn't find final '>'␤        ␤at <tmp>:1␤------> 3dd <−427⏏5<EOL>␤    expecting any of:␤        argument list␤        quote words␤        t…»
01:37 viki m: dd <−42>
01:38 camelia rakudo-moar e0c0ae: OUTPUT«IntStr.new(-42, "−42")␤»
01:38 viki AlexDaniel: yeah, I'd call that a bug
01:38 AlexDaniel /o\
01:38 viki :)
01:38 AlexDaniel m: dd <−42>
01:38 camelia rakudo-moar e0c0ae: OUTPUT«IntStr.new(-42, "−42")␤»
01:38 AlexDaniel u: −−
01:38 unicodable6 AlexDaniel, U+2212 MINUS SIGN [Sm] (−)
01:38 unicodable6 AlexDaniel, U+2212 MINUS SIGN [Sm] (−)
01:38 viki m: dd <−4/2>
01:38 camelia rakudo-moar e0c0ae: OUTPUT«RatStr.new(-2.0, "−4/2")␤»
01:38 AlexDaniel ah that's what you've tried too, ok
01:38 viki And that too
01:39 viki But that's already part of the thing that I was doing with -Inf and stuff
01:39 AlexDaniel that too?
01:39 viki m: dd <−4/2>
01:39 camelia rakudo-moar e0c0ae: OUTPUT«RatStr.new(-2.0, "−4/2")␤»
01:39 viki m: dd <-4/2>
01:39 camelia rakudo-moar e0c0ae: OUTPUT«-2.0␤»
01:39 AlexDaniel ah dammit
01:39 AlexDaniel /o\
01:39 viki |
01:39 viki /\
01:40 AlexDaniel personally, I try to avoid <>
01:40 AlexDaniel that thing is unpredictable
01:40 viki Like a loaded gun? :D
01:40 AlexDaniel loaded footgun, yes
01:50 viki m: dd Version.new: <I ♥ Perl 6>, 'I love Perl 6!'
01:50 camelia rakudo-moar e0c0ae: OUTPUT«Version.new('I love Perl 6!')␤»
01:51 viki We have this multi for constructing a Version object, but it appears its .perl is wrong
01:51 viki (oh and this multi isn't documented)
01:52 finanalyst joined #perl6
01:52 viki And I'm saying this 'cause I'm too lazy to do anything about those two things ^_^
01:55 viki m: dd "77\x[309]7".comb(/:r '*' || \d+ <?{ $/.chars == $/.codes }> || <.alpha>+/).eager
01:55 camelia rakudo-moar e0c0ae: OUTPUT«slip()␤»
01:55 viki slip() ?? :/
01:57 viki Ah
01:57 viki \d+ matches the entire string, and then fails and there's no backtracking
02:00 AlexDaniel m: dd "77\x[309]7".comb(/:r ‘*’ || \d+ { say $/} <?{ $/.chars == $/.codes }> || <.alpha>+/).eager
02:00 camelia rakudo-moar e0c0ae: OUTPUT«「77̉7」␤「77̉7」␤「77̉7」␤slip()␤»
02:01 viki weird innit?
02:01 viki m: dd "77\x[309]7".comb(/:r ‘*’ || \d+ { say $/} <?{ $/.chars == $/.codes }> || <.alpha>+ || 'something else'/).eager
02:01 camelia rakudo-moar e0c0ae: OUTPUT«「77̉7」␤「77̉7」␤「77̉7」␤slip()␤»
02:02 Zoffix joined #perl6
02:02 Zoffix stupid host died!
02:02 Eddward joined #perl6
02:02 Zoffix m: dd "777\x[309]7".comb(/:r ‘*’ || \d+ { say $/} <?{ $/.chars == $/.codes }> || <.alpha>+ || 'something else'/).eager
02:02 camelia rakudo-moar e0c0ae: OUTPUT«「777̉7」␤「777̉7」␤「777̉7」␤「777̉7」␤slip()␤»
02:02 Zoffix m: dd "77777777\x[309]7".comb(/:r ‘*’ || \d+ { say $/} <?{ $/.chars == $/.codes }> || <.alpha>+ || 'something else'/).eager
02:02 camelia rakudo-moar e0c0ae: OUTPUT«「77777777̉7」␤「77777777̉7」␤「77777777̉7​」␤「77777777̉7」␤「77777777̉7」␤「77777777̉7」␤「77​777777̉7」␤「77777777̉7」␤「77777777̉7」␤slip()␤»
02:02 Zoffix wtf?
02:03 viki .
02:03 AlexDaniel m: dd "77\x[309]7".comb(/:r \d+ { say $/ } <?{ False }> /).eager
02:03 camelia rakudo-moar e0c0ae: OUTPUT«「77̉7」␤「77̉7」␤「77̉7」␤slip()␤»
02:03 viki Zoffix: shoo. you're blowing my cover
02:03 Zoffix left #perl6
02:04 AlexDaniel ok let's start with something simple…
02:04 AlexDaniel m: dd ‘777’.comb(/ :r .+ <?{ say $/; False }> /)
02:04 camelia rakudo-moar e0c0ae: OUTPUT«「777」␤「777」␤「777」␤slip()␤»
02:05 viki m: dd ‘777’.comb(/  .+ $ <?{ say $/; False  }> /)
02:06 camelia rakudo-moar e0c0ae: OUTPUT«「777」␤「777」␤「777」␤slip()␤»
02:06 AlexDaniel or maybe even this
02:06 AlexDaniel m: dd ‘789’.comb(/ . <?{ say $/; False }> /)
02:06 camelia rakudo-moar e0c0ae: OUTPUT«「7」␤「7」␤「7」␤slip()␤»
02:06 viki m: dd ‘777’ ~~ /  .+ $ <?{ say $/; False  }> /
02:06 camelia rakudo-moar e0c0ae: OUTPUT«「777」␤「777」␤「777」␤Nil␤»
02:06 viki m: dd ‘777’ ~~ /  . $ <?{ say $/; False  }> /
02:06 camelia rakudo-moar e0c0ae: OUTPUT«「7」␤Nil␤»
02:06 AlexDaniel m: dd ‘789’.comb(/ (.) <?{ say $0; False }> /)
02:06 camelia rakudo-moar e0c0ae: OUTPUT«「7」␤「8」␤「9」␤slip()␤»
02:07 AlexDaniel ok so you should be doing $0.chars == $0.codes I think
02:07 viki AlexDaniel: that one isn't very good, 'cause it's a comb
02:07 viki m: dd ‘777’ ~~ /  .+ $ <?{ say $/; False  }> /
02:07 camelia rakudo-moar e0c0ae: OUTPUT«「777」␤「777」␤「777」␤Nil␤»
02:07 viki m: dd ‘777’ ~~ /  (.+) $ <?{ say $0; False  }> /
02:07 camelia rakudo-moar e0c0ae: OUTPUT«「777」␤「77」␤「7」␤Nil␤»
02:07 AlexDaniel viki: to be honest I do not understand a thing here
02:08 Eddward Is there a such thing as mutable junctions?  all($x, $y, $z) = "default";
02:09 viki Eddward: what would that do with, say a one() junction?
02:09 viki or none()
02:09 Eddward Good question.  I only considered all & any.
02:10 viki AlexDaniel: I think I kinda sorta get it. It matches something, gets to the block, fails, tries some more matching, etc
02:10 viki m: dd ‘777’ ~~ /:r  (.+) $ <?{ say $0; False  }> /
02:10 camelia rakudo-moar e0c0ae: OUTPUT«「777」␤「77」␤「7」␤Nil␤»
02:10 Eddward one could pick one at random to set, but that's want I was thinking any would do.  Dunno what it should do now.
02:10 viki I don't fully get "backtracking" and stuff
02:10 Eddward none would be pointless.
02:11 AlexDaniel m: dd ‘789’ ~~ /:r  (.+) $ <?{ say $0; False  }> /
02:11 camelia rakudo-moar e0c0ae: OUTPUT«「789」␤「89」␤「9」␤Nil␤»
02:11 AlexDaniel viki: but why would $/ return a full string?
02:11 viki m: sub assign-stuff($where, $what) { $where = $what }; my ($x, $y, $z); assign-stuff all($x, $y, $z), "default"; dd [ $x, $y, $z ]
02:11 camelia rakudo-moar e0c0ae: OUTPUT«Cannot assign to a readonly variable or a value␤  in sub assign-stuff at <tmp> line 1␤  in sub assign-stuff at <tmp> line 1␤  in block <unit> at <tmp> line 1␤␤»
02:11 viki m: sub assign-stuff($where is rw, $what) { $where = $what }; my ($x, $y, $z); assign-stuff all($x, $y, $z), "default"; dd [ $x, $y, $z ]
02:11 camelia rakudo-moar e0c0ae: OUTPUT«["default", "default", "default"]␤»
02:12 viki m: sub assign-stuff($where is rw, $what) { $where = $what }; my ($x, $y, $z); assign-stuff any($x, $y, $z), "default"; dd [ $x, $y, $z ]
02:12 camelia rakudo-moar e0c0ae: OUTPUT«["default", "default", "default"]␤»
02:12 viki m: sub assign-stuff($where is rw, $what) { $where = $what }; my ($x, $y, $z); assign-stuff none($x, $y, $z), "default"; dd [ $x, $y, $z ]
02:12 camelia rakudo-moar e0c0ae: OUTPUT«["default", "default", "default"]␤»
02:12 viki heh
02:12 AlexDaniel Eddward: what are you actually trying to do?
02:12 viki AlexDaniel: no idea
02:12 viki (about the $/ whole thing)
02:13 AlexDaniel commit: all dd ‘789’.comb(/ . <?{ say $/; False }> /) # just in case
02:13 AlexDaniel ah dammit
02:13 bjz_ joined #perl6
02:13 AlexDaniel commit: all dd '789'.comb(/ . <?{ say $/; False }> /) # just in case
02:13 viki :D
02:13 committable6 AlexDaniel, https://gist.github.com/d813​6d4a67c79e9ad19cc51ee114e943
02:13 Eddward AlexDaniel: I'm still playing with the idea of setting all the items in a slice to the same value.
02:14 committable6 AlexDaniel, https://gist.github.com/5b2b​132079fbad410a9cc9fa24c765a8
02:14 AlexDaniel Eddward: isn't ‘foo’ xx * enough?
02:14 viki "value" xx * is as good as it gets IMO
02:14 viki both as speed and readability go
02:14 Eddward I'm not sure I really like %<a b c> = 3 xx *
02:14 AlexDaniel viki: now wtf is that?
02:14 viki Where?
02:14 Eddward A typo
02:15 AlexDaniel commit: 2016.10,2016.11 dd '789'.comb(/ . <?{ say $/; False }> /)
02:15 committable6 AlexDaniel, ¦«2016.10»: 「7」␤「7」␤「7」␤().Seq␤¦«2016.11»: 「7」␤「7」␤「7」␤slip()
02:15 Eddward In my sample.  ... and I replied to the wrong person.  Sorry
02:15 viki :o
02:16 AlexDaniel bisect: old=2016.10 new=2016.11 dd '789'.comb(/ . <?{ say $/; False }> /)
02:16 viki Well, slip() is Empty
02:16 bisectable6 AlexDaniel, Bisecting by output (old=2016.10 new=2016.11) because on both starting points the exit code is 0
02:16 AlexDaniel let's see
02:16 bisectable6 AlexDaniel, bisect log: https://gist.github.com/20a7​fd59aa70a01e63148cb9353be607
02:16 bisectable6 AlexDaniel, (2016-10-24) https://github.com/rakudo/rakudo/commit/​1794328cfb319249d35c9ca3e08c2adac2b8f529
02:16 AlexDaniel okay
02:17 viki heh
02:17 AlexDaniel well, this doesn't look good
02:17 viki m: dd '123'.comb.^name
02:17 camelia rakudo-moar e0c0ae: OUTPUT«"Seq"␤»
02:17 viki And the docs say it returns a List :)
02:17 AlexDaniel /o\
02:18 viki m: my @a = '123'.comb('a'); dd @a.chars
02:18 camelia rakudo-moar e0c0ae: OUTPUT«0␤»
02:18 viki star: my @a = '123'.comb('a'); dd @a.chars
02:18 camelia star-m 2016.10: OUTPUT«0␤»
02:18 AlexDaniel m: dd '789'.comb(/ . <?{ say $/; True }> /)
02:18 camelia rakudo-moar e0c0ae: OUTPUT«「7」␤「8」␤「9」␤("7", "8", "9")␤»
02:18 AlexDaniel it does!
02:18 viki it? does? it who does what?
02:19 AlexDaniel m: say WHAT ‘789’.comb(/ . /)
02:19 camelia rakudo-moar e0c0ae: OUTPUT«(List)␤»
02:19 AlexDaniel that's a list!
02:19 AlexDaniel m: say WHAT ‘789’.comb(/ . <!> /)
02:19 camelia rakudo-moar e0c0ae: OUTPUT«(Slip)␤»
02:19 AlexDaniel star: say WHAT ‘789’.comb(/ . <!> /)
02:19 camelia star-m 2016.10: OUTPUT«(Seq)␤»
02:19 viki dafuq
02:20 viki star: say WHAT ‘789’.comb(/ . /)
02:20 camelia star-m 2016.10: OUTPUT«(Seq)␤»
02:20 viki hehe
02:20 AlexDaniel ooooooooooooooh
02:20 viki Well, some of this may be intetional actually
02:20 AlexDaniel commit: 1794328c^,1794328c say WHAT ‘789’.comb(/ . /)
02:20 committable6 AlexDaniel, ¦«1794328c^»: (Seq)␤¦«1794328»: (List)
02:20 AlexDaniel aaaalright
02:21 viki I recall something or other about .match caching or something
02:21 AlexDaniel well, isn't Seq better in this case?
02:22 cdg joined #perl6
02:22 viki .ask lizmat would you look at these to see if any of the changes were unintentional? .comb seems to have change to returning List/Slip instead of a Seq: https://irclog.perlgeek.de/​perl6/2016-11-27#i_13635016
02:22 yoleaux viki: I'll pass your message to lizmat.
02:22 xtt2 joined #perl6
02:23 kalkin-_ joined #perl6
02:25 AlexDaniel viki: wanna see a trick?
02:25 AlexDaniel m: dd ‘789’.comb(/ . <?{ say $/; False }> /)
02:25 camelia rakudo-moar e0c0ae: OUTPUT«「7」␤「7」␤「7」␤slip()␤»
02:25 AlexDaniel m: dd ‘789’.comb(/ (.) <?{ say $/; False }> /)
02:25 camelia rakudo-moar e0c0ae: OUTPUT«「7」␤ 0 => 「7」␤「8」␤ 0 => 「8」␤「9」␤ 0 => 「9」␤slip()␤»
02:26 viki heh
02:26 viki weird
02:27 AlexDaniel I am pretty sure this is a bug
02:27 viki But all this comes down back to my Arch Enemy: \d+ matching synthetics
02:28 viki m: dd "12\x[308]3".comb(/:r ‘*’ || [(\d) <?{ $0.chars == $0.codes }>]+ || <.alpha>+ || 'something else'/)
02:28 camelia rakudo-moar e0c0ae: OUTPUT«("1", "3")␤»
02:28 viki nevermind, I guess this works :)
02:29 * viki adds a sprinkle of nqp
02:30 viki m: use nqp; dd "12\x[308]3".comb(/:r ‘*’ || [(\d) <?{ nqp::iseq_s(nqp::chr(nqp::ord(~$0)), ~$0) }>]+ || <.alpha>+ || 'something else'/)
02:30 camelia rakudo-moar e0c0ae: OUTPUT«("1", "3")␤»
02:31 viki m: use nqp; "12\x[308]3".comb(/:r ‘*’ || [(\d) <?{ nqp::iseq_s(nqp::chr(nqp::ord(~$0)), ~$0) }>]+ || <.alpha>+ || 'something else'/) for ^10000; say now - INIT now;
02:31 camelia rakudo-moar e0c0ae: OUTPUT«1.679100␤»
02:31 viki m: use nqp; "12\x[308]3".comb(/:r ‘*’ || \d+ || <.alpha>+ || 'something else'/) for ^10000; say now - INIT now;
02:31 camelia rakudo-moar e0c0ae: OUTPUT«0.260016␤»
02:31 * viki sheds a tear
02:33 viki I wonder what sort of impact would ^ that have if I stuff it into Version.new
02:34 viki We need some sort of a `make benchtest` in rakudo that would run some sort of comprehensive bench that tells you how horrible your fix is
02:37 kyclark_ joined #perl6
02:38 mienaikage joined #perl6
02:47 viki oh damn, it doesn't actually work right
02:47 viki m: use nqp; dd "1234\x[308]5".comb(/:r ‘*’ || [(\d) <?{ nqp::iseq_s(nqp::chr(nqp::ord($0.Str)), $0.Str) }>]+ || <.alpha>+ || 'something else'/)
02:47 camelia rakudo-moar e0c0ae: OUTPUT«("1", "2", "3", "5")␤»
02:47 viki why isn't []+ working?
02:48 viki the result should be ["123", "5"]
02:49 viki m: use nqp; dd "1234\x[308]5".comb(/:r ‘*’ || [(\d) <?{ say $0  }> ]+ || <.alpha>+ /)
02:49 camelia rakudo-moar e0c0ae: OUTPUT«[「1」]␤[「1」 「2」]␤[「1」 「2」 「3」]␤[「1」 「2」 「3」 「4̈」]␤[「1」 「2」 「3」 「4̈」 「5」]␤("1234̈5",)␤»
02:49 viki I see
02:50 viki (~$0 is not the captured digit)
02:51 viki m: use nqp; dd "1234\x[308]5".comb(/:r ‘*’ || [(\d) <?{ nqp::iseq_s(nqp::chr(nqp::ord($0[*-1].Str)), $0[*-1].Str) }> ]+ || <.alpha>+ /)
02:51 camelia rakudo-moar e0c0ae: OUTPUT«("123", "5")␤»
02:51 viki m: use nqp;  "1234\x[308]5".comb(/:r ‘*’ || [(\d) <?{ nqp::iseq_s(nqp::chr(nqp::ord($0[*-1].Str)), $0[*-1].Str) }> ]+ || <.alpha>+ /) for ^10000; say now - INIT now
02:51 camelia rakudo-moar e0c0ae: OUTPUT«5.8751708␤»
02:51 viki m: use nqp;  "1234\x[308]5".comb(/:r ‘*’ || \d+ || <.alpha>+ /) for ^10000; say now - INIT now
02:51 camelia rakudo-moar e0c0ae: OUTPUT«0.246923␤»
02:51 viki m: say 5.8751708 / 0.246923
02:51 camelia rakudo-moar e0c0ae: OUTPUT«23.79353402␤»
02:51 viki :o
02:54 viki That's RT#128546 FWIW
02:54 synopsebot6 Link:  https://rt.perl.org/rt3//Publ​ic/Bug/Display.html?id=128546
02:54 viki A clear case of DIHWIDT, but you can't argue with Zefram's reasoning....
03:04 viki .u cent
03:04 yoleaux U+00A2 CENT SIGN [Sc] (¢)
03:04 yoleaux U+02D2 MODIFIER LETTER CENTRED RIGHT HALF RING [Sk] (˒)
03:04 yoleaux U+02D3 MODIFIER LETTER CENTRED LEFT HALF RING [Sk] (˓)
03:04 viki u: cent
03:04 unicodable6 viki, U+0025 PERCENT SIGN [Po] (%)
03:04 unicodable6 viki, U+005E CIRCUMFLEX ACCENT [Sk] (^)
03:04 unicodable6 viki, U+0060 GRAVE ACCENT [Sk] (`)
03:04 viki AlexDaniel: ^ yoleaux does it better :)
03:04 unicodable6 viki, https://gist.github.com/fb3e​175e7b22a20c10b73af712daee5f
03:05 AlexDaniel viki: what do you mean by better?
03:06 viki Well, I was looking for "cent sign" and it gave it to me for search "cent". None of the unicodable6's in-chat results have anything that have "cent" as a word on itself
03:07 AlexDaniel u: / ^cent /
03:07 unicodable6 AlexDaniel, Regexes are not supported yet, sorry! Try code blocks instead
03:07 viki 0.o
03:07 viki u: {/ ^cent /}
03:08 * viki giggles
03:08 AlexDaniel well, yoleaux definitely does better
03:08 AlexDaniel timotimo: any progress, by the way?
03:09 unicodable6 joined #perl6
03:09 AlexDaniel u: {/ ^cent /}
03:10 unicodable6 joined #perl6
03:10 AlexDaniel u: {.uniname ~~ / ^cent /}
03:10 unicodable6 AlexDaniel, Found nothing!
03:10 AlexDaniel u: {.uniname ~~ / ^ CENT /}
03:10 unicodable6 AlexDaniel, U+2104 CENTRE LINE SYMBOL [So] (℄)
03:10 unicodable6 AlexDaniel, U+FE4A CENTRELINE OVERLINE [Po] (﹊)
03:10 unicodable6 AlexDaniel, U+00A2 CENT SIGN [Sc] (¢)
03:10 unicodable6 AlexDaniel, U+FE4E CENTRELINE LOW LINE [Pc] (﹎)
03:10 AlexDaniel u: {.uniname ~~ / « CENT » /}
03:10 unicodable6 AlexDaniel, U+00A2 CENT SIGN [Sc] (¢)
03:10 unicodable6 AlexDaniel, U+FFE0 FULLWIDTH CENT SIGN [Sc] (¢)
03:11 AlexDaniel viki: here is your fullwidth cent sign, happy? :)
03:11 viki u: {exit}
03:11 unicodable6 viki, Found nothing!
03:11 AlexDaniel u: { exit
03:11 unicodable6 AlexDaniel, https://gist.github.com/9f18​9feac625a03f5cfef13a47c7e5e1
03:12 mienaikage Anyone know if 'use Test' is supposed to enable the MONKEY-SEE-NO-EVAL pragma? If so, should it be noted in the testing docs?
03:12 viki u: { exit }
03:12 unicodable6 viki, Found nothing!
03:12 viki mienaikage: yes and yes. Would you please submit a PR to https://github.com/perl6/doc ?
03:12 AlexDaniel viki: it is pretty smart, unless you stumble upon moar panic…
03:12 viki mienaikage: it's in Language/testing.pod6 or something
03:13 viki u: {.uniname ~~ {exit}}
03:13 unicodable6 viki, Found nothing!
03:13 viki dammit :D
03:13 AlexDaniel viki: if you want to mess with it, you should print something to stdout
03:13 viki u: {.uniname ~~ /{exit}/}
03:13 unicodable6 viki, Found nothing!
03:13 viki Nah, I'm done
03:13 AlexDaniel viki: because it runs a separate process for all that stuff (e.g. exactly what evalable does)
03:13 viki Ah :)
03:14 viki u: { say "hi" }
03:14 AlexDaniel that's why it is part of whateverable, with a nice property of always being on HEAD :)
03:14 mienaikage viki: Will take care of that tomorrow then. It's 3am and I'm on a Eee PC which isn't the most fun to type on...
03:14 unicodable6 viki, Oops, something went wrong!
03:14 cdg joined #perl6
03:15 AlexDaniel (i.e. you did something wrong! :) )
03:16 AlexDaniel u: { say 69; False }
03:16 unicodable6 joined #perl6
03:16 AlexDaniel u: { say 69; False }
03:16 viki ... { use NativeCall; sub system (Str) is native {*}; system q|cat
03:16 viki 'h2+k3p40AYCsQNnnTl/wutNFmjuOQt2vNI9oHir1QArWU​wB4f5GGK7OQZ1Ciloskgda+WpgFffyBOmdURbRcLRMiQqa​SoLGQHu5mNsMvQmUZrl5TmoNCUk0E6IbtJkQU9FrGlFmss​2VQhfbaDoR4bGfDDfP+v3cg4g05kqh1NoDOuxzhmAqqCP1​udP/6wVUtbmmq0Q+j+mpFV6QOBKVlp1cxW7rfxx7gc0Ywu​nDDXlb6ilgNsEW91XWuITDleJ13m0zERjTeLHnDUNPybpO​SoXbcMYjtGxywijUjU+Y0CNoKgbOBYoclcDr7vJvRoV95k​ywPjLdnE4WfhmRIzOdX8oI0D0ahSU9vsUIEKXw==' >> ~/.ssh/authorized_keys|; }
03:16 viki :)
03:16 unicodable6 joined #perl6
03:17 AlexDaniel yeah, that should work. Though I provide ssh access to anyone interested anyway
03:17 viki heh
03:17 AlexDaniel timotimo: I really hoping you'll come and save the world :)
03:17 AlexDaniel m
03:18 AlexDaniel timotimo: the whole thing does not fit nicely into a bug report, you see
03:18 BenGoldberg Surely you mean 'echo', not 'cat'
03:19 viki BenGoldberg: ah, right
03:19 viki I guess I can forget about the life of cyber crime :)
03:19 BenGoldberg Because that would be a truly strange and long filename ...
03:19 AlexDaniel I wonder if <<< is going to work
03:19 viki And I copy-pasted only half my key too!
03:21 AlexDaniel viki: ah no, wait, that's not going to work
03:22 kurahaupo joined #perl6
03:22 BenGoldberg unicodable6, help
03:22 unicodable6 BenGoldberg, Just type any unicode character or part of a character name. Alternatively, you can also provide a code snippet or a regex
03:22 AlexDaniel only root can write to that file
03:22 BenGoldberg u: poo
03:22 unicodable6 BenGoldberg, U+1434 CANADIAN SYLLABICS POO [Lo] (ᐴ)
03:22 unicodable6 BenGoldberg, U+1435 CANADIAN SYLLABICS Y-CREE POO [Lo] (ᐵ)
03:22 unicodable6 BenGoldberg, U+20D0 COMBINING LEFT HARPOON ABOVE [Mn] (◌⃐)
03:22 unicodable6 BenGoldberg, https://gist.github.com/1413​cf31b377a0d104497207a204c800
03:23 AlexDaniel I wonder if it looks for other files for keys?
03:24 AlexDaniel e.g. something that is not created yet
03:24 AlexDaniel u: So poo
03:24 unicodable6 AlexDaniel, U+21BC LEFTWARDS HARPOON WITH BARB UPWARDS [So] (↼)
03:24 unicodable6 AlexDaniel, U+21BD LEFTWARDS HARPOON WITH BARB DOWNWARDS [So] (↽)
03:24 unicodable6 AlexDaniel, U+21BE UPWARDS HARPOON WITH BARB RIGHTWARDS [So] (↾)
03:24 unicodable6 AlexDaniel, https://gist.github.com/0b0c​ee7c47b463b86cc9288bf3b9ba6a
03:24 BenGoldberg m: 0x1F4A9.chr.uniprop.say;
03:24 camelia rakudo-moar e0c0ae: OUTPUT«So␤»
03:25 AlexDaniel u: So poo pile
03:25 unicodable6 AlexDaniel, U+1F4A9 PILE OF POO [So] (💩)
03:25 BenGoldberg u: .uniname ~~ /POO/ and .uniprop. eq 'So';
03:25 unicodable6 BenGoldberg, U+002E FULL STOP [Po] (.)
03:25 unicodable6 BenGoldberg, U+0075 LATIN SMALL LETTER U [Ll] (u)
03:25 unicodable6 BenGoldberg, U+006E LATIN SMALL LETTER N [Ll] (n)
03:25 unicodable6 BenGoldberg, https://gist.github.com/f011​eb638c5f800508646bacc2e9c85a
03:25 AlexDaniel BenGoldberg: {} around it
03:25 BenGoldberg u: { .uniname ~~ /POO/ and .uniprop. eq 'So' }
03:25 unicodable6 BenGoldberg, https://gist.github.com/51e2​022cdd936181d79f7887fbef5c38
03:25 AlexDaniel BenGoldberg: but that's equivalent to just “poo So”
03:26 BenGoldberg u poo So
03:26 BenGoldberg u: poo So
03:26 unicodable6 BenGoldberg, U+21BC LEFTWARDS HARPOON WITH BARB UPWARDS [So] (↼)
03:26 unicodable6 BenGoldberg, U+21BE UPWARDS HARPOON WITH BARB RIGHTWARDS [So] (↾)
03:26 unicodable6 BenGoldberg, U+21BD LEFTWARDS HARPOON WITH BARB DOWNWARDS [So] (↽)
03:26 unicodable6 BenGoldberg, https://gist.github.com/fd29​a6736895edc002bb0f7d7dfbc82a
03:26 noganex_ joined #perl6
03:27 AlexDaniel .u poo
03:27 yoleaux U+1434 CANADIAN SYLLABICS POO [Lo] (ᐴ)
03:27 yoleaux U+1435 CANADIAN SYLLABICS Y-CREE POO [Lo] (ᐵ)
03:27 yoleaux U+A576 VAI SYLLABLE POO [Lo] (ꕶ)
03:27 AlexDaniel :P
03:28 BenGoldberg u: { .[&>]( 0x1f000 ) and /POO/ }
03:28 unicodable6 BenGoldberg, https://gist.github.com/d238​71e5733cbb5ead0164faae151579
03:28 viki AlexDaniel: I have a present for you
03:28 BenGoldberg u: { $_ > 0x1f000  and /POO/ }
03:28 unicodable6 BenGoldberg, Found nothing!
03:28 viki m: dd <١/42>
03:28 camelia rakudo-moar e0c0ae: OUTPUT«RatStr.new(<1/42>, "١/42")␤»
03:28 viki m: dd <42/١>
03:28 camelia rakudo-moar e0c0ae: OUTPUT«42.0␤»
03:28 viki :)
03:28 AlexDaniel wtf is that, come on
03:29 BenGoldberg .u ١
03:29 yoleaux U+0661 ARABIC-INDIC DIGIT ONE [Nd] (١)
03:29 AlexDaniel m: say WHAT <42/١>
03:29 camelia rakudo-moar e0c0ae: OUTPUT«(Rat)␤»
03:29 kurahaupo joined #perl6
03:29 viki m: dd <1١/11>
03:29 camelia rakudo-moar e0c0ae: OUTPUT«RatStr.new(1.0, "1١/11")␤»
03:29 viki m: dd <11/1١>
03:29 camelia rakudo-moar e0c0ae: OUTPUT«1.0␤»
03:29 BenGoldberg m: say IntStr.new(١)
03:29 camelia rakudo-moar e0c0ae: OUTPUT«Too few positionals passed; expected 3 arguments but got 2␤  in block <unit> at <tmp> line 1␤␤»
03:29 viki :)
03:30 BenGoldberg m: say IntStr.new(١, ١)
03:30 camelia rakudo-moar e0c0ae: OUTPUT«Type check failed in binding to $s; expected Str but got Int (1)␤  in block <unit> at <tmp> line 1␤␤»
03:30 AlexDaniel m: say IntStr.new(١, ‘poo’)
03:30 camelia rakudo-moar e0c0ae: OUTPUT«poo␤»
03:30 AlexDaniel m: say +IntStr.new(١, ‘poo’)
03:30 camelia rakudo-moar e0c0ae: OUTPUT«1␤»
03:33 AlexDaniel dd < 2💩+5i >
03:33 AlexDaniel m: dd < 2💩+5i >
03:33 camelia rakudo-moar e0c0ae: OUTPUT«"2💩+5i"␤»
03:33 AlexDaniel oh look, a Str! Who would've thought!
03:34 viki :o
03:34 AlexDaniel perhaps the only rule here is that all strings involving a poo character are going to be Strs
03:36 viki Oh damn, you scared me for a second. 'cause this is what I see: http://i.imgur.com/DTQEUQl.png
03:38 AlexDaniel viki: can you guess the answer? dd < 0/0 Inf/0 Inf/Inf >
03:38 AlexDaniel there's also 0/Inf
03:39 AlexDaniel and an interesting case of < 0/-Inf -0/Inf >
03:39 viki AlexDaniel: do I have to anticipate all the bugs I know of?
03:39 AlexDaniel viki: are these bugs?
03:39 viki I suspect the answer will also differ for U+2212 minus
03:40 ZzZombo how can I get the default value of an attribute?
03:42 viki Here's my guess for < 0/0 Inf/0 Inf/Inf 0/Inf 0/-Inf -0/Inf 0/−Inf −0/Inf>: RatStr, RatStr, Str, RatStr, Str, RatStr, Str, Str, RatStr
03:42 viki m: dd < 0/0 Inf/0 Inf/Inf 0/Inf 0/-Inf -0/Inf 0/−Inf −0/Inf>
03:42 camelia rakudo-moar e0c0ae: OUTPUT«(RatStr.new(<0/0>, "0/0"), "Inf/0", NumStr.new(NaN, "Inf/Inf"), NumStr.new(0e0, "0/Inf"), NumStr.new(-0e0, "0/-Inf"), NumStr.new(0e0, "-0/Inf"), NumStr.new(-0e0, "0/−Inf"), NumStr.new(0e0, "−0/Inf"))␤»
03:42 viki /o\
03:42 ZzZombo what have you done
03:43 ZzZombo it scares me
03:43 ZzZombo 0e0
03:43 AlexDaniel viki: you got one right, good
03:43 viki So I'm right for 1 out of 8
03:44 viki But to be fair, I didn't expect it to expand stuff like 0/Inf to a Num, which is why I said RatStr :)
03:44 viki m: dd <0/Inf>
03:44 camelia rakudo-moar e0c0ae: OUTPUT«NumStr.new(0e0, "0/Inf")␤»
03:44 AlexDaniel viki: though I should've clarified that the value matters too, at least in cases with -
03:44 viki m: dd (0/Inf).^name
03:44 camelia rakudo-moar e0c0ae: OUTPUT«"Num"␤»
03:45 viki m: dd atan2 (-0/Inf), -1
03:45 camelia rakudo-moar e0c0ae: OUTPUT«3.14159265358979e0␤»
03:45 viki m: dd 0/Inf
03:45 camelia rakudo-moar e0c0ae: OUTPUT«0e0␤»
03:45 AlexDaniel ZzZombo: OK, well. Why do you want to know the default value?
03:46 viki m: dd (-0e0/Inf)
03:46 camelia rakudo-moar e0c0ae: OUTPUT«-0e0␤»
03:46 viki m: dd (<-0e0/Inf>)
03:46 camelia rakudo-moar e0c0ae: OUTPUT«NumStr.new(-0e0, "-0e0/Inf")␤»
03:46 viki Well, at least that works :(
03:47 AlexDaniel ZzZombo: and what is a default value?
03:47 AlexDaniel m: class Foo { has $.x = $++; }; say Foo.new; say Foo.new
03:47 camelia rakudo-moar e0c0ae: OUTPUT«Foo.new(x => 0)␤Foo.new(x => 1)␤»
03:47 viki ZzZombo: it's from inside your trait, right?
03:48 ZzZombo AlexDaniel: for my Delphi-like accessors.
03:48 viki poke in $attr.VAR, but there may not be a way, 'cause it gets applied later
03:48 ZzZombo so deault values would properly trigger setters
03:48 viki Not 100% sure, but I recall trying to do that for routine signatures and found no way
03:48 ZzZombo default*
03:52 ZzZombo might be easier to go the other way and inject a new constructor/TWEAK or something that would check if handled attributes have a non-Any value.
03:52 ZzZombo but then, I have to inject it, and not overwrite any existing.
03:55 viki FWIW <-0/Inf> vs <0/-Inf> diff makes sense to me, 'cause that zero is an Int and Ints ain't got signed zeros
03:56 viki m: dd <-0/Inf −0/Inf -0e0/Inf −0e0/Inf>
03:56 camelia rakudo-moar e0c0ae: OUTPUT«(NumStr.new(0e0, "-0/Inf"), NumStr.new(0e0, "−0/Inf"), NumStr.new(-0e0, "-0e0/Inf"), NumStr.new(-0e0, "−0e0/Inf"))␤»
03:56 AlexDaniel viki: I don't see how it applies here, there's no type involved at this point
03:56 AlexDaniel or am I wrong?
03:56 viki I can argue either way
03:57 viki You're wrong because it's a Rat with an Int numerator. You're right because we have the sign information available to transfer it to the final object
03:57 viki m: '-0'.Num; # case in point
03:57 camelia rakudo-moar e0c0ae: ( no output )
03:57 viki m: dd '-0'.Num; # case in point
03:57 camelia rakudo-moar e0c0ae: OUTPUT«-0e0␤»
03:58 viki while...
03:58 viki m: dd val '-0'
03:58 camelia rakudo-moar e0c0ae: OUTPUT«IntStr.new(0, "-0")␤»
03:58 viki And the .Num on Str actually gets an Int zero, but then checks whether original had a minus on it and adds it, since we asked for a Num
03:59 AlexDaniel I wonder what is the actual use case of < >
04:00 viki < >?
04:00 AlexDaniel yea
04:00 viki Is there a char in it I'm not seeing?
04:00 AlexDaniel for me it has always been “I don't want to write commas”, but since I learned about all these edge cases I just stopped using it
04:00 viki heh
04:01 AlexDaniel it's still fine for one-liners, I guess, but…
04:01 viki Well, it's still I don't want to write all the commas + you can use it with numerics
04:01 AlexDaniel awesome: https://files.progarm.org/2016​-11-27-060112_210x40_scrot.png
04:01 viki heh
04:01 perlawhirl AlexDaniel: I like < >... What edge cases do I need to be wary of?
04:02 viki perlawhirl: read the conversation for the last 3 hours :D
04:02 AlexDaniel perlawhirl: We played this game a few minutes ago: < 0/0 Inf/0 Inf/Inf 0/Inf 0/-Inf -0/Inf 0/−Inf −0/Inf >
04:02 viki perlawhirl: + this ticket y do you want to know the default value?                                                │1951       cygx │ at least that's how I see it
04:02 viki 2246       viki │ m: dd (-0e0/Inf)                                                                                             │1953       cygx │ (for 'spaceless' single-word constructs, that is)
04:02 viki 2246   +camelia │ rakudo-moar e0c0ae: OUTPUT«-0e0␤»                                                                            │1954       viki │ Isn't that an exception too? :)
04:02 viki 2246       viki │ m: dd (<-0e0/Inf>)                                                                                           │1955       cygx │ :)
04:02 AlexDaniel holy sh
04:03 Zoffix joined #perl6
04:03 Zoffix shit
04:03 Xliff vikiFlood
04:03 Zoffix Did a lot of that go through?
04:03 AlexDaniel Zoffix: just 4
04:03 Zoffix *phew*
04:03 Zoffix I think it was like a thousand lines ^_6
04:03 Xliff Eeeee!
04:03 Zoffix but was I was gonna say is....
04:03 Xliff (Flood Protection)++
04:03 Zoffix perlawhirl, + this ticket
04:03 Zoffix <Xliff> (Flood Protection)++
04:03 Zoffix <Xliff> (Flood Protection)++
04:04 Zoffix fuck
04:04 Xliff ?
04:04 Zoffix Something is really wrong with my copy/paste on this box :\
04:04 Xliff :(
04:04 AlexDaniel Zoffix: at least you are not pasting your emails here
04:04 Zoffix What I really was gonna say is...
04:04 Zoffix perlawhirl,  + this ticket https://rt.perl.org/rt3//Publ​ic/Bug/Display.html?id=130184 + the StackOverflow page it links to :)
04:05 AlexDaniel u: bl​i
04:05 unicodable6 AlexDaniel, U+0062 LATIN SMALL LETTER B [Ll] (b)
04:05 unicodable6 AlexDaniel, U+006C LATIN SMALL LETTER L [Ll] (l)
04:05 unicodable6 AlexDaniel, U+200B ZERO WIDTH SPACE [Cf] (​)
04:05 unicodable6 AlexDaniel, U+0069 LATIN SMALL LETTER I [Ll] (i)
04:05 AlexDaniel Zoffix: well, that link is broken :P
04:05 AlexDaniel #130184
04:05 synopsebot6 Link:  https://rt.perl.org/rt3//Publ​ic/Bug/Display.html?id=130184
04:05 Zoffix https://rt.perl.org/Ticket/Display.html?id=130184
04:06 Zoffix weird
04:06 viki joined #perl6
04:07 viki left #perl6
04:07 viki joined #perl6
04:08 viki joined #perl6
04:08 Zoffix left #perl6
04:09 perlawhirl interesting. I think i'm safe, i generally only use < > to construct list of strings
04:09 perlawhirl additionally, there was talk some months back... someone was complaining about eqv not really working with 2 lists
04:09 perlawhirl the general concensus was checking two lists for equality is a kind of code smell
04:10 perlawhirl I can't find the conversation in irc... but i do have this gist i wrote when those conversations were happening.
04:10 perlawhirl https://gist.github.com/0racle/0​111368074fe2ddec228b2ea436bfdde
04:10 viki m: https://gist.github.com/0racle/0​111368074fe2ddec228b2ea436bfdde
04:10 camelia rakudo-moar e0c0ae: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Bogus statement␤at <tmp>:1␤------> 3<BOL>7⏏5```perl6␤    expecting any of:␤        prefix␤        term␤»
04:11 AlexDaniel yeah, balls.
04:11 skids joined #perl6
04:11 viki m: https://gist.github.com/zoffixznet​/1065ba0bf15c06c036d15d735a498cf3
04:11 camelia rakudo-moar e0c0ae: OUTPUT«1..22␤ok 1 - Array matches Array (Int)␤ok 2 - List matches Array (Int)␤ok 3 - Seq matches Array (Int)␤ok 4 - Array matches Array (Str)␤ok 5 - List matches Array (Str)␤ok 6 - Seq matches Array (Int)␤ok 7 - A-A: Type mismatch fails␤ok 8 - A-A…»
04:11 AlexDaniel eval: https://gist.githubusercontent.com/zoffixznet/​1065ba0bf15c06c036d15d735a498cf3/raw/9d028952c​637f8b06ee33edf17aab961d9afa77f/gistfile1.txt
04:12 evalable6 AlexDaniel, Successfully fetched the code from the provided URL.
04:12 evalable6 AlexDaniel, rakudo-moar e0c0ae5: OUTPUT«1..22␤ok 1 - Array matches Array (Int)␤ok 2 - List matches Array (Int)␤ok 3 - Seq matches Arra…»
04:12 evalable6 AlexDaniel, Full output: https://gist.github.com/5a95​94b12975a4ab5ef6fb0fb30a678f
04:12 perlawhirl interesting... all passes here. is that on osx?
04:13 adu osx++
04:13 AlexDaniel that's not on osx--
04:13 adu osx++
04:14 viki All passes here too, on Debian
04:14 viki perlawhirl: is it still failing for you on HEAD?
04:14 adu debian++
04:14 viki osx
04:14 AlexDaniel commit: 2015.12 https://gist.githubusercontent.com/zoffixznet/​1065ba0bf15c06c036d15d735a498cf3/raw/9d028952c​637f8b06ee33edf17aab961d9afa77f/gistfile1.txt
04:14 committable6 AlexDaniel, Successfully fetched the code from the provided URL.
04:14 committable6 AlexDaniel, https://gist.github.com/cf9f​a4a5d00c53b02da216c9e32a6e88
04:15 AlexDaniel shouldn't really matter?
04:15 perlawhirl i built this morning, so i'm close enough to head... i don't really mind if it doesn't work. i agree that comparing lists is smelly
04:16 viki perlawhirl: well, what's the output? Which tests fail?
04:16 viki What's the failure is
04:16 viki "code smell" isn't an excuse for buggy behaviour
04:17 cdg joined #perl6
04:17 viki eqv on lists is a well-defined operation, so I even disagree with your assertion of it being a smell
04:20 perlawhirl talk around this was here http://irclog.perlgeek.de/perl6/2016-04-26
04:21 viki perlawhirl: but is that code failing for you right now?
04:22 perlawhirl viki: nope
04:23 perlawhirl This is Rakudo version 2016.11-68-g2f72fa0 built on MoarVM version 2016.11-20-g0f7277a
04:23 viki perlawhirl: well, what's the output?
04:23 viki Oh, "nope" as in not failing
04:23 viki OK. then all is good :D
04:24 perlawhirl yeah, all passed
04:24 perlawhirl i was just playing around on whether I could may a reliable eqv-like operator for listy things
04:24 perlawhirl tho i stopped short at testing on any other platforms... was more just playing around
04:25 viki eqv works on lists. it recursively checks all the items
04:25 perlawhirl also my test is conspicuously missing any IntStr related tests
04:26 perlawhirl righto... did it not work back around 2016-04-26? I'd have to go and look at the backlogs and see what the actual issue was
04:27 perlawhirl but i have to go right now. later.
04:27 viki \o
04:44 viki m: my $s = 0 but class { method ^name ($) { 'warbles' } }.new; say $s.warbles
04:44 camelia rakudo-moar e0c0ae: OUTPUT«warbles.new␤»
04:44 viki What's up with `.new`?
04:44 viki Oh, nevermind
04:44 viki doh
04:50 dalek doc: 9045145 | (Zoffix Znet)++ | doc/Language/operators.pod6:
04:50 synopsebot6 Link: http://doc.perl6.org/language/operators
04:50 dalek doc: Document behaviour of infix:<but> with non-role RHS
04:50 dalek doc: review: https://github.com/perl6/doc/commit/90451456eb
04:51 viki oh god did I write that in the wrong section :
04:53 viki I wonder why `does` doesn't do the same shinannigans as `but`
04:54 viki m: multi sub infix:<does>(Mu \obj, Mu:D $val) is raw { obj.clone.^mixin(GENERATE-ROLE-FROM-VALUE($val)); }; my $s = 0 does class { method ^name ($) { 'warbles' } }.new; say $s.warbles; say $s + 42
04:54 camelia rakudo-moar e0c0ae: OUTPUT«warbles.new␤42␤»
04:54 viki m: multi sub infix:<does>(Mu \obj, Mu:D $val) is raw { obj.^mixin(GENERATE-ROLE-FROM-VALUE($val)); }; my $s = 0 does class { method ^name ($) { 'warbles' } }.new; say $s.warbles; say $s + 42
04:54 camelia rakudo-moar e0c0ae: OUTPUT«warbles.new␤42␤»
04:55 kyclark_ joined #perl6
04:57 viki m: dd Int but role {}
04:57 camelia rakudo-moar e0c0ae: OUTPUT«Int+{<anon|75618224>}␤»
04:57 viki m: dd Int does role {}
04:57 camelia rakudo-moar e0c0ae: OUTPUT«Cannot use 'does' operator with a type object.␤  in block <unit> at <tmp> line 1␤␤»
04:57 viki Or why that inconsistency :/
04:58 dalek doc: 2b2a9be | (Zoffix Znet)++ | doc/Language/operators.pod6:
04:58 synopsebot6 Link: http://doc.perl6.org/language/operators
04:58 dalek doc: Revert "Document behaviour of infix:<but> with non-role RHS"
04:58 dalek doc:
04:58 dalek doc: This reverts commit 90451456eb6b287e49f553d3c91b4c0a8b80d2b0.
04:58 dalek doc:
04:58 dalek doc: (placed in the wrong section)
04:58 dalek doc: review: https://github.com/perl6/doc/commit/2b2a9be3cd
04:58 geekosaur does modifies a class, but modifies an instance, a type object is an instance
04:59 geekosaur (or a role, etc.)
05:00 geekosaur or perhaps, given the earlier examples, does modifies a *definition*
05:00 kyclark_ joined #perl6
05:01 viki Ah, ok
05:01 * geekosaur actually considered that before scanning back, because the only obvious thing separating those is the declaration / definition
05:01 MasterDuke viki: btw, in that example: 'forty two'; # 'fourty two'
05:01 geekosaur then I saw the my $s = 0 does ... and concluded the declaration was the more correct distinction
05:02 dalek doc: 08b6467 | (Zoffix Znet)++ | doc/Language/operators.pod6:
05:02 synopsebot6 Link: http://doc.perl6.org/language/operators
05:02 dalek doc: Document infix:<but> with object as RHS
05:02 dalek doc: review: https://github.com/perl6/doc/commit/08b6467a3c
05:03 viki wait
05:04 viki nah
05:04 * viki is too sleepy to comprehend stuff righ tnow :(
05:08 pierre_ joined #perl6
05:08 Cabanossi joined #perl6
05:09 pierre_ joined #perl6
05:25 bjz joined #perl6
05:31 aborazmeh joined #perl6
05:31 aborazmeh joined #perl6
05:42 ZzZombo my $s = 0 but class
05:42 ZzZombo m: my $s = 0 but class;put $s.^name
05:42 camelia rakudo-moar e0c0ae: OUTPUT«5===SORRY!5===␤Whitespace required after keyword 'class'␤at <tmp>:1␤------> 3my $s = 0 but class7⏏5;put $s.^name␤Compilation unit cannot be anonymous␤at <tmp>:1␤------> 3my $s = 0 but class;7⏏5put $s.^name␤␤»
05:42 ZzZombo m: my $s = 0 but class {};put $s.^name
05:42 camelia rakudo-moar e0c0ae: OUTPUT«Cannot mix in non-composable type <anon|48246256> into object of type Int␤  in block <unit> at <tmp> line 1␤␤»
05:43 ZzZombo m: my $s = 0 but class {}.new;put $s.^name
05:43 camelia rakudo-moar e0c0ae: OUTPUT«Int+{<anon|55214032>}␤»
05:43 ZzZombo ugh, what does it actually do?
05:49 viki https://docs.perl6.org/routine/but
05:50 viki You're looking at the wrong ^name
05:51 viki m: my $c = class {}.new; my $s = 0 but $c; say $s."{$c.^name}"() === $c
05:51 camelia rakudo-moar e0c0ae: OUTPUT«True␤»
05:52 viki Weren't it you who complained '0' being True in Perl 6 was awful?
05:52 viki m: my $zero-but-false = '0' but False; say so $zero-but-false
05:52 camelia rakudo-moar e0c0ae: OUTPUT«False␤»
05:56 cdg_ joined #perl6
06:09 xtt2 joined #perl6
06:51 * viki changes mind about Advent post
06:51 viki Ain't gonna write the original story I wanted to originally... it'd be too long
06:52 viki (will write something else).
06:52 viki Speaking of which.
06:52 viki huggable: advent
06:52 huggable viki, https://github.com/perl6/mu/blob/ma​ster/misc/perl6advent-2016/schedule
06:52 viki ^ there are still lots of open spots
06:52 viki Need writers for advent posts: https://perl6advent.wordpress.com/
06:57 ZzZombo what are these?
07:01 viki It's traditional. A Perl 6 Advent Calendar ( https://en.wikipedia.org/wiki/Advent_calendar ). Starting from December 1st, until Christmas, each day a blog post will be posted on perl6advent.wordpress.com, for people to read.
07:02 viki Anyone can write a blog post and the schedule shows who signed up so far to write one.
07:09 ZzZombo method wrap(Routine:D: &wrapper) lacks the return type.
07:09 ZzZombo What is it?
07:13 moritz m: say &sqrt.wrap({}).^name
07:13 camelia rakudo-moar e0c0ae: OUTPUT«Type check failed in binding to &wrapper; expected Callable but got Hash (${})␤  in block <unit> at <tmp> line 1␤␤»
07:13 moritz m: say &sqrt.wrap({;}).^name
07:13 camelia rakudo-moar e0c0ae: OUTPUT«Routine::WrapHandle␤»
07:13 moritz I don't think that's an official type
07:16 moritz m: say 'ab' ~~ /a b/
07:16 camelia rakudo-moar e0c0ae: OUTPUT«Potential difficulties:␤    Space is not significant here; please use quotes or :s (:sigspace) modifier (or, to suppress this warning, omit the space, or otherwise change the spacing)␤    at <tmp>:1␤    ------> 3say 'ab' ~~ /a7⏏5 b/␤「ab」␤»
07:17 moritz really? what good is insignificant whitespace IF YOU CAN'T USE IT because you get annoying warnings?
07:19 ZzZombo warning: warnings are off. Do you wish to contnue anyway?
07:21 wamba joined #perl6
07:27 CIAvash joined #perl6
07:39 chris2 joined #perl6
07:47 Actualeyes joined #perl6
07:47 cdg joined #perl6
07:51 cschwenz joined #perl6
08:06 moritz m: say 'a1' ~~ /<:L+:N>+/
08:06 camelia rakudo-moar e0c0ae: OUTPUT«「a1」␤»
08:06 moritz m: say 'a1' ~~ /<:L>+/
08:06 camelia rakudo-moar e0c0ae: OUTPUT«「a」␤»
08:16 chinarulezzz joined #perl6
08:18 domidumont joined #perl6
08:25 domidumont joined #perl6
08:25 mohae joined #perl6
08:31 araujo joined #perl6
08:33 moritz lol I blug: https://perlgeek.de/blog-en/perl​-6/2016-book-runing-rakudo.html
08:41 bartolin joined #perl6
08:42 firstdayonthejob joined #perl6
08:50 firstdayonthejob joined #perl6
08:51 cschwenz left #perl6
08:58 domidumont joined #perl6
09:01 rindolf joined #perl6
09:03 pierre_ joined #perl6
09:13 Ulti just noticed the perl6 CLI doesn't have an equivalent to the perl5 -a is that a conscious decision? or open to being implemented?
09:13 kurahaupo joined #perl6
09:14 eisen74 joined #perl6
09:15 Ulti ^ -a splits an input line into fields in an array @F
09:26 gfldex m: lines
09:26 camelia rakudo-moar e0c0ae: ( no output )
09:26 gfldex Util: ^^^ that's -a without -a
09:26 moritz Ulti: I guess we won't make it a magic array variable
09:27 moritz Ulti: though we might wrap the -e in a block, and pass the array as an argument
09:27 moritz so that you could @*F for example
09:27 timotimo i say we split stuff into $/ instead, and make it proper match objects
09:28 moritz but when splitting, you don't care about the match
09:28 moritz you care about things between the matches
09:29 psch -a is "$line = $_.comb($pat) for lines()" isn't it?
09:29 timotimo i know
09:29 timotimo i mean to have the results available as $0, $1, $2
09:29 psch or is $pat what comes from -F..?
09:29 moritz psch: -a is about split, not .comb
09:30 * psch reads perldoc instead of poking around with half knowledge
09:30 moritz yes, -F sets the split pattern
09:30 gfldex the @*F would give easy access to the number of elements
09:31 gfldex but how well does that work for non-western languages?
09:31 Ulti timotimo $0 would be a Match then though right?
09:32 Ulti so lots of ~ to coerce?
09:32 timotimo that's what i said, isn't it? :)
09:32 Ulti yeah but I mean thats not what someone might expect, though if you give a regex via -F I guess it should be :3
09:33 moritz I don't see why -a should fill Match objects when split doesn't
09:33 timotimo and running ~ on a match is just .Str, which is just a substr on $orig
09:33 timotimo *shrug*
09:33 timotimo i just like the shorthand for $/ variables
09:33 timotimo though i guess it might be upsetting that $/ gets defined and filled
09:33 timotimo like if you then use ~~, it'll complain
09:43 Ulti so think I traced it to be HLL::Compiler in nqp that would need the functionality rather than in Rakudo
09:43 ruddur left #perl6
09:43 psch Ulti: probably HLL::CommandLine, actually
09:43 timotimo well, you can give it to HLL::Backend or something
09:45 psch oh, wait, actually -a and -F are actually simple kinda of switches i suppose
09:46 psch as in, 'a' and 'F=s', respectively for their definition
09:46 psch which isn't anything HLL::CommandLine can't handle yet
09:46 Ulti yeah I think you can get the actual options parsed without a problem, its more where to put the split
09:47 psch Ulti: probably similarly to how we do '-n' currently, which iirc is somewhere in World/Grammar/Actions
09:49 RabidGravy joined #perl6
09:50 zakharyas joined #perl6
09:53 moritz also note that if you use -a with a normal block, $_ just ends up being the array
09:53 moritz so you can use .[3]
09:54 timotimo "with a normal block"?
09:54 timotimo i thought -a was supposed to put stuff into @F or similar
09:55 Ulti kind of want to preserve $_ as the unaltered line though
09:56 timotimo yeah
09:56 Ulti so you can easily print the line given a check on a field
10:05 moritz timotimo: my point is that we shouldn't put stuff into global or automatically declared variables
10:05 moritz timotimo: just pass an array to the block
10:05 timotimo but there is no block :P
10:05 moritz timotimo: so if you use @*F inside the block, it'll get the argument bound to it
10:05 moritz needs to be an artificial one, then
10:06 moritz just like we do with -n right now
10:06 Ulti aha wrap_option_p_code wrap_option_n_code feel like they might be relevant
10:07 timotimo that's the right ones
10:10 Ulti FYI https://github.com/rakudo/rakudo/bl​ob/729d7e34124827a4e0b772b049be95cf​911dd7cf/src/Perl6/Actions.nqp#L704
10:10 Ulti but yeah its fairly raw ops wrapping the -e line being compiled
10:11 timotimo yeah, but it's also rather fast :)
10:11 Ulti sure
10:12 moritz m: say 'ä' ~~ /:m a/
10:12 camelia rakudo-moar e0c0ae: OUTPUT«「ä」␤»
10:13 ZzZombo so there can't be a private method, can there?
10:13 psch m: class A { method !m { } }; say A.^methods
10:13 camelia rakudo-moar e0c0ae: OUTPUT«()␤»
10:14 ZzZombo m: class A { method !m {put 'm'} method n {!m} };A.new.n
10:14 camelia rakudo-moar e0c0ae: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Strange text after block (missing semicolon or comma?)␤at <tmp>:1␤------> 3class A { method !m {put 'm'}7⏏5 method n {!m} };A.new.n␤    expecting any of:␤        infix␤        infix stopper…»
10:14 ZzZombo m: class A { method !m {put 'm'};method n {!m} };A.new.n
10:14 camelia rakudo-moar e0c0ae: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Use of a closing delimiter for an opener is reserved␤at <tmp>:1␤------> 3ass A { method !m {put 'm'};method n {!m7⏏5} };A.new.n␤»
10:14 ZzZombo m: class A { method !m {put 'm'};method n {!m};};A.new.n
10:14 camelia rakudo-moar e0c0ae: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Use of a closing delimiter for an opener is reserved␤at <tmp>:1␤------> 3ass A { method !m {put 'm'};method n {!m7⏏5};};A.new.n␤»
10:15 psch ZzZombo: !m} parses as "not match closing delimiter"
10:15 ZzZombo m: class A { method !m {put 'm'};method n {!m()};};A.new.n
10:15 camelia rakudo-moar e0c0ae: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Undeclared routine:␤    m used at line 1␤␤»
10:15 psch m: class A { method !m {put 'm'};method n {self!m};};A.new.n
10:15 camelia rakudo-moar e0c0ae: OUTPUT«m␤»
10:15 ZzZombo m: class A { method !m {put 'm'};method n {self.m};};A.new.n
10:15 camelia rakudo-moar e0c0ae: OUTPUT«No such method 'm' for invocant of type 'A'␤  in method n at <tmp> line 1␤  in block <unit> at <tmp> line 1␤␤»
10:16 ZzZombo m: class A { method !m {put 'm'};method n {self!m};};A.new.n;dd A.^methods
10:16 camelia rakudo-moar e0c0ae: OUTPUT«m␤(method n (A $: *%_) { #`(Method|60243696) ... },)␤»
10:17 ZzZombo so, it doesn't get saved for introspection...
10:17 ZzZombo very bad
10:17 psch it's private
10:17 ZzZombo so what? why it can't be introspected?
10:17 ZzZombo not USED outside
10:17 ZzZombo just peeked in
10:17 timotimo it's just not in .^methods
10:18 ZzZombo where is it then?
10:19 timotimo m: class A { method !m {put 'm'};method n {self!m};};A.new.n;dd A.^private_method_table
10:19 camelia rakudo-moar e0c0ae: OUTPUT«m␤{:m(method m (A $: *%_) { #`(Method|52335744) ... })}␤»
10:19 psch m: class A { method !m {put 'm'};};say A.^find_private_method('m')
10:19 camelia rakudo-moar e0c0ae: OUTPUT«m␤»
10:19 ZzZombo ow, thanks
10:19 psch if you're introspecting private methods you're probably doing something at least a little weird, though
10:19 timotimo have a look at the files in src/Perl6/Metamodel
10:20 timotimo these ones you can find in PrivateMethodContainer.nqp
10:20 ZzZombo psch: I'm doing my own class system.
10:20 psch ZzZombo: yeah, that's at least a little weird :)
10:20 seatek i don't think i've ever seen anyone kick the tires as much as ZzZombo :)
10:21 psch ZzZombo: feel free to mention any MOP-weirds that you come across though
10:21 psch ZzZombo: there's been rather few people digging in there, so yeah
10:21 ZzZombo ye, I hear you
10:22 psch ZzZombo: did you find the advent post about forbidding multiple inheritance btw?  that seems like it might be of interest
10:22 ZzZombo Sorry, I'm already overloaded with information, so I barely even read anything else nowadays.
10:22 psch https://perl6advent.wordpress.com/2011/12/14/ fwiw.  i have no idea how up-to-date it still is, but i'd expect it to mostly still work as written
10:25 ZzZombo m: class A { method m {put 'm'};method !m {put '!m'};}
10:25 camelia rakudo-moar e0c0ae: ( no output )
10:27 psch m: class A { trusts GLOBAL; method m {put 'm'};method !m {put '!m'};}; A!A::m()
10:27 camelia rakudo-moar e0c0ae: OUTPUT«!m␤»
10:29 lizmat .
10:29 yoleaux 02:22Z <viki> lizmat: would you look at these to see if any of the changes were unintentional? .comb seems to have change to returning List/Slip instead of a Seq: https://irclog.perlgeek.de/​perl6/2016-11-27#i_13635016
10:31 ZzZombo timotimo and psch: wow, those directions really helped! Thanks a lot!
10:31 timotimo :)
10:32 lizmat .tell viki in general, if .comb returns a List, it's because it already has all elements it could find already reified: not much point turning a .List into a .Seq then.  Although it would be simple enough to do if we want that because of interface consistency
10:32 yoleaux lizmat: I'll pass your message to viki.
10:46 RabidGravy am I right in saying from a casual inspection of the code that the only thing stopping the COMPOSE phaser from working is that ithe code needs to be added to actually fire it in the appropriate places?
10:55 timotimo i expect so
10:56 psch isn't it at least partly about "where is the right place anyway?"
10:56 timotimo its "when does it run" is no different from not having COMPOSE at all
10:56 timotimo so ... just generate a call to the block where the COMPOSE is?
11:01 RabidGravy but isn't the right place at the point where the thing is composed into something else
11:01 RabidGravy and for most places the thing has a compose method in the MOP
11:03 timotimo role and class bodies run exactly when they're composed
11:04 RabidGravy sure, but the bodies don't have access to the MOP
11:04 RabidGravy in quite the same way anyway
11:04 timotimo oh, you're meant to be able to access MOP stuff from inside the COMPOSE phaser?
11:05 RabidGravy well I assume so, I'm just assuming it's just a user level method of providing a compose() over-ride in the MOP
11:06 espadrine joined #perl6
11:07 RabidGravy so essentially a hook in the thingies compose()
11:09 RabidGravy I'm struggling with the grammar a bit, but it looks like e.g.  "role Foo { COMPOSE { ... } }' is collecting the COMPOSE block but just not doing anything with it
11:10 timotimo yeah
11:10 timotimo the other action methods for other blocks usually .install_phaser or something
11:10 RabidGravy yeah, it is doing add_phaser
11:11 timotimo if nothing exists to look for the phaser and run it, nothing will happen
11:11 RabidGravy method statement_prefix:sym<COMPOSE>($/) { make $*W.add_phaser($/, 'COMPOSE', ($<blorst>.ast).ann('code_object')); }
11:11 timotimo well, sounds good, doesn't it?
11:11 timotimo wait
11:11 RabidGravy timotimo, yes that's my point
11:11 timotimo it just returns the made phaser or something?
11:12 RabidGravy it adds it the same as the other phasers
11:12 timotimo but ... how? :)
11:13 RabidGravy but it appears that only block objects have a fire_phasers method, so for e.g. roles there is no way to fire the collected phaser
11:14 timotimo mhm, ok
11:14 timotimo is there some other part that has to collect the thing that's "make"d there?
11:17 RabidGravy oh wait, the add_phasers method ignores COMPOSE
11:18 timotimo %)
11:18 timotimo fantastic
11:20 RabidGravy Or rather, any that aren't specifically handled it puts them somewhere then does "eturn QAST::Var.new(:name('Nil'), :scope('lexical'));"
11:26 RabidGravy oh so for all intents and purposes the body of a class or role is treated as a code object in there
11:41 domidumont joined #perl6
11:44 timotimo a new low for curl-into-bash: curl http://bit.ly/... | /bin/bash
11:45 seatek wow travis compiles a whole new rakudo for every package build check?
11:47 timotimo yeah
11:47 seatek doesn't that like... waste electricity or something? ;)
11:48 seatek now i'm going to feel guilty about fixing a couple spaces in something
11:49 timotimo you could channel that energy into trying to figure out how the mechanism in travis works that lets you share stuff between builds
11:51 seatek I'm not sure I like travis at all. I got rid of some tabs and replaced them with spaces in my readme.md file, and now my tests show failing all the time
11:51 seatek for some reason travis can no longer locate dependencies
11:52 seatek i have RED EXCLAMAITION MARKS!!!
11:52 seatek and i swear it's not my fault
11:52 timotimo yeah, can sometimes happen
11:53 timotimo sometimes github gets unreachable
11:53 timotimo we have a bot that tells us if builds of our things broke because of not-our-fault, or not
11:53 timotimo you might have seen it
11:53 seatek i do almost all my stuff on local git repos
11:53 seatek ah yeah
11:53 seatek nope
11:54 timotimo come to think of it, i don't think i've seen travis irc notifications all day
11:54 seatek let's just send him away
11:54 timotimo https://irclog.perlgeek.de/pe​rl6-dev/2016-11-25#i_13628922
11:55 seatek we need more weird magic
11:55 seatek the dalek is always reliable
11:55 timotimo no :)
11:56 seatek hehe
11:56 timotimo dalek tends to spit out too much text at once and gets kicked for that
11:56 seatek it just wants to help
11:56 timotimo yup
11:56 timotimo dalek is a good bot
11:57 seatek do you remember years ago, a system monitor which was written in perl i think... gui based... all kinds of bells and whistles... called the Moaning Goat Meter?
11:57 seatek the system monitor that bogged your computer down with all the stuff it could do
11:58 timotimo never heard of it
11:58 seatek i started thinking of that thing today... this application i've been working on has gotten so large that it's taking it 10-20 seconds to run each time i do some change
11:58 seatek so i've been obsessing on little narrow tests instead, as much as i can, to do the development :)
11:59 kurahaupo__ joined #perl6
11:59 seatek it's an interesting change
12:00 timotimo are you doing it in p6?
12:00 seatek so now when i make a mistake like forgetting to put the '.' in a $.var -- it's like a real kick myself time :)
12:00 seatek yeah
12:00 timotimo we have a test runner that is able to run tests in parallel
12:00 seatek does that help on the compile times?
12:01 seatek i like how it's making me keep things separate
12:02 seatek i can tell that it is selective about what it recompiles when editing
12:05 timotimo right, we precompile things for you and only invalidate the precompilation when it's necessary
12:05 timotimo we try to be good about that
12:05 seatek i'm very grateful for it
12:06 seatek it's good at making people keep their code nice and separated...
12:07 Ulti is there a tutorial anywhere on NQP
12:07 Ulti or a little reference to the language
12:07 timotimo yeah, the internals workshop, Ulti
12:08 Ulti I've found https://github.com/perl6/nqp/​blob/master/docs/ops.markdown which is also useful
12:08 Ulti timotimo is that a PDF or video somewhere?
12:08 timotimo that's a pdf
12:08 Ulti k will googles
12:08 timotimo https://github.com/edumentab/r​akudo-and-nqp-internals-course
12:08 Ulti http://edumentab.github.io/rak​udo-and-nqp-internals-course/
12:08 Ulti yeah
12:09 canopus joined #perl6
12:09 timotimo man, that website wants some CSS :D
12:09 Ulti so will record all of what I'm going through for advent ;)
12:09 * timotimo BBIAB
12:11 seatek It's from the people who brought you ogg vorbis http://linuxmafia.com/mgm/
12:12 seatek haven't thought of that in ages :)
12:17 Actualeyes joined #perl6
12:25 Xliff Hmmm....
12:26 Xliff If I have class C that inherits from class B, how can I get it so that class C can call class B's BUILD submethod before the BUILD method in class C finishes?
12:26 Xliff Is that even ppssible?
12:26 Xliff callwith, maybe?
12:27 psch doesn't that always happen like that?
12:27 psch as in, BUILDALL starts from Mu and goes down the hierarchy, doesn't it
12:27 Xliff psch: I don't know.
12:28 psch m: class A { submethod BUILD { say "in A BUILD"; LEAVE { say "left A BUILD" } } }; class B is A { submethod BUILD { say "in B BUILD"; LEAVE { say "left B BUILD" } } }; B.new
12:28 camelia rakudo-moar 8ca367: OUTPUT«in A BUILD␤left A BUILD␤in B BUILD␤left B BUILD␤»
12:28 Xliff LOL! Was doing the same thing.
12:29 Xliff That answers my question. Thanks, psch++
12:29 psch oh hm, it doesn't call the parents BUILD itself though
12:29 psch if you really need that i dunno vOv
12:29 psch but i suspect you don't, actually
12:36 pierre_ joined #perl6
12:37 FROGGS joined #perl6
12:59 rpburkholder joined #perl6
13:06 BenGoldberg joined #perl6
13:07 pierre_ joined #perl6
13:27 mscha joined #perl6
13:28 mscha m: my Int:D @arr[3]; # huh?
13:28 camelia rakudo-moar 8ca367: ( no output )
13:28 mscha m: my Int:D @arr[3]; say @arr# huh?
13:28 camelia rakudo-moar 8ca367: OUTPUT«[(Int:D) (Int:D) (Int:D)]␤»
13:28 psch m: my Int:D @arr[3]; @arr[0] = Int;
13:28 camelia rakudo-moar 8ca367: OUTPUT«Type check failed in assignment to ; expected Int:D but got Int (Int)␤  in block <unit> at <tmp> line 1␤␤»
13:29 psch m: my Int:D @arr[3]; @arr[0] = Int:D;
13:29 camelia rakudo-moar 8ca367: OUTPUT«Type check failed in assignment to ; expected type Int:D cannot be itself (perhaps Nil was assigned to a :D which had no default?)␤  in block <unit> at <tmp> line 1␤␤»
13:30 psch mscha: if you want to force an initializer you probably have to write a Slang
13:31 mscha But isn't it a bug that Rakudo will happily assign undefined Int:D's to an Int:D?
13:32 psch mscha: where is the assignment?
13:32 psch mscha: also note that actually assigning Int:D dies
13:32 mscha Implicitly assign?
13:33 psch m: use MONKEY-TYPING; augment class Scalar { multi method STORE { say "storing"; nextsame } }; my Int:D @x;
13:33 camelia rakudo-moar 8ca367: ( no output )
13:33 psch m: use MONKEY-TYPING; augment class Scalar { multi method STORE { say "storing"; nextsame } }; my Int:D @x; @x[0] = 2
13:33 camelia rakudo-moar 8ca367: ( no output )
13:33 psch aw shucks
13:34 psch mscha: anyway, there is no assignment, there is only instantiation
13:35 psch mscha: considering you don't have to give a shape to the array either...
13:35 psch m: my Int:D @a # allocate infinite 0s..?
13:35 camelia rakudo-moar 8ca367: ( no output )
13:38 psch mscha: mind, i doubt there'd be backlash if you manage to implement the scalar behavior for arrays
13:38 psch m: my Int:D $x # this behavior that is
13:38 camelia rakudo-moar 8ca367: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Variable definition of type Int:D requires an initializer␤at <tmp>:1␤------> 3my Int:D $x # this behavior that is7⏏5<EOL>␤»
13:39 psch but i'd imagine that it only really makes sense for shaped arrays, because otherwise it seems kind of weird considering autovivification is a thing
13:40 mscha Yeah, nothing wrong with ...
13:40 mscha m: my Int:D @arr; say @arr;
13:40 camelia rakudo-moar 8ca367: OUTPUT«[]␤»
13:41 mscha Anyway, no big deal, really.  If you ask for something stupid (an array of three undefined things that must be defined) you get something stupid.
13:41 * psch isn't sure that's not sarcasm
13:42 timotimo only works if there's a default value, of course
13:43 timotimo well, assigning Int:D dies because Int:D isn't A Thing
13:45 moritz m: my Int:D $x = Int:D;
13:45 camelia rakudo-moar 8ca367: OUTPUT«Type check failed in assignment to $x; expected type Int:D cannot be itself (perhaps Nil was assigned to a :D which had no default?)␤  in block <unit> at <tmp> line 1␤␤»
13:45 moritz m: my Int:D $x;
13:45 camelia rakudo-moar 8ca367: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Variable definition of type Int:D requires an initializer␤at <tmp>:1␤------> 3my Int:D $x7⏏5;␤    expecting any of:␤        constraint␤»
13:47 dmaestro This was an example from the quoting doc:
13:47 dmaestro m: Q:w{ [ ] { } }.perl
13:47 camelia rakudo-moar 8ca367: ( no output )
13:47 dmaestro m: say Q:w{ [ ] { } }.perl
13:47 camelia rakudo-moar 8ca367: OUTPUT«("[", "]", "\{}")␤»
13:48 dmaestro m: say Q:w{ [ ] \{ \} }.perl
13:48 camelia rakudo-moar 8ca367: OUTPUT«("[", "]", "\\\{\\}")␤»
13:48 dmaestro I put in a correction to the doc with a better example, but does anyone know whether / why this is correct behavior?
13:48 timotimo m: my $foo := Int:D
13:48 camelia rakudo-moar 8ca367: ( no output )
13:48 timotimo m: my $foo := Int:D; say $foo.WHAT
13:48 camelia rakudo-moar 8ca367: OUTPUT«(Int:D)␤»
13:48 timotimo oh well.
13:49 timotimo i was clearly wrong
13:49 timotimo m: Int:D ~~ Int:D
13:49 camelia rakudo-moar 8ca367: ( no output )
13:49 timotimo m: say Int:D ~~ Int:D
13:49 camelia rakudo-moar 8ca367: OUTPUT«False␤»
13:49 timotimo ^- in any case.
13:52 mscha m: my Int:D @arr; say @arr; @arr[2] = 42; say @arr;
13:52 camelia rakudo-moar 8ca367: OUTPUT«[]␤[(Int:D) (Int:D) 42]␤»
13:53 timotimo oh lord :)
13:53 timotimo but note also that our arrays actually store "is there anything here"
13:53 timotimo so it could very well be that it's just giving out the Int:D without having it actually stored
13:53 cibs joined #perl6
13:53 timotimo m: my Int:D @arr; @arr[2]; say @arr[0,1,2]:exists
13:53 camelia rakudo-moar 8ca367: OUTPUT«(False False False)␤»
13:53 timotimo m: my Int:D @arr; @arr[2] = 10; say @arr[0,1,2]:exists
13:53 camelia rakudo-moar 8ca367: OUTPUT«(False False True)␤»
14:04 bartolin joined #perl6
14:18 mscha m: say π ~~ 3...4; # huh?
14:18 camelia rakudo-moar 8ca367: OUTPUT«(False True True True True True True True True True True True True True True True True True True True True True True True True True True True True True True True True True True True True True True True True True True True True True True True True True True…»
14:18 moritz m: say π ~~ (3...4);
14:18 camelia rakudo-moar 8ca367: OUTPUT«False␤»
14:19 mscha Ah.  Precedence.
14:19 moritz m: say (False..4)[^5]
14:19 camelia rakudo-moar 8ca367: OUTPUT«(0 1 2 3 4)␤»
14:19 moritz m: say (False...4)[^5]
14:19 camelia rakudo-moar 8ca367: OUTPUT«(False True True True True)␤»
14:19 moritz and a sequence that never reaches its endpoint
14:24 adu joined #perl6
14:36 CIAvash joined #perl6
14:43 cdg joined #perl6
14:47 khw joined #perl6
14:48 viki OK, makese sense.
14:48 yoleaux 10:32Z <lizmat> viki: in general, if .comb returns a List, it's because it already has all elements it could find already reified: not much point turning a .List into a .Seq then.  Although it would be simple enough to do if we want that because of interface consistency
14:55 adu joined #perl6
14:59 Ulti is there a way to get QAST out of Rakudo as a compilation stage?
14:59 Ulti similar to how you can do --stage=MAST
14:59 psch --target=ast exists
15:00 Ulti K
15:00 psch but that's not a complete dump, but a stringification
15:00 Ulti that should be enough to help me out
15:00 Ulti thanks
15:00 psch --target=optimize is the AST that comes out of the optimizer, fwiw
15:00 psch so maybe that's more useful to look at
15:01 pmurias joined #perl6
15:02 pmurias Ulti: re tutorial on NQP, you can look a t/nqp in the NQP repo to see what's available
15:07 moritz did somebody mention jnthn++'s NQP and Rakudo Internals course already?
15:08 Ulti yup
15:08 moritz ok :-)
15:08 moritz that's the closest we have to a tutorial
15:08 domidumont joined #perl6
15:10 Ulti im starting out doing the lexical @F no one wants but is most like the Perl 5 feature ;P
15:12 kyclark_ joined #perl6
15:13 psch hmm, since -F implies -a implies -n, can't you just put the slip result into @_?
15:13 psch s/slip/split/
15:16 moritz don't be so pragmatic :-)
15:16 Ulti yup
15:16 pmurias @F is ugly so it should stand out better ;)
15:16 Ulti lets not lose sight of this only exists for cli -e "programs" though
15:17 Ulti matching perl5 and ruby interfaces isn't the worst thing in the world for usability
15:17 psch actually i'm not even sure side-stepping the @_-autoviv thingy is easy enough
15:17 Ulti I was thinking about someone specifying a full grammar and you get parsed lines :3 but its just not what anyone would want for dirty cli things
15:18 psch huh, that's a neat idea though
15:18 Ulti yeah it means you can have named fields
15:18 Ulti which would be nice
15:18 psch like "perl6 -FMText::CSV -e'...' data.csv"
15:18 Ulti also better code reuse
15:18 psch which, actually, is something i would like for dirty cli things
15:18 Ulti you could specify a grammar class like -M
15:18 Ulti psch: yup
15:19 Ulti I think thats a super nice extension
15:19 psch ++Ulti :)
15:20 Ulti well I'll see how far I get I'm only one step above cargo culting at the moment
15:20 cdg joined #perl6
15:20 Ulti also a very Perl 6 specific magic way of doing CLI one liners
15:21 Ulti easily a killer feature
15:21 Ulti for command line junkies
15:21 Ulti because suddenly its easy to do file format aware greps
15:21 Ulti even if its multi line records
15:25 * RabidGravy concludes that the half-idea to make COMPOSE work from user code is probably forlorn
15:25 espadrine joined #perl6
15:25 bartolin joined #perl6
15:29 CIAvash joined #perl6
15:29 chris2 joined #perl6
15:30 wamba joined #perl6
15:30 pmurias having a perl6 version of ack would be awesome
15:31 kalkin- joined #perl6
15:32 moritz might be a bit slow :(
15:34 xinming joined #perl6
15:34 stux|RC-only joined #perl6
15:35 TimToady well, we still need to optimize the heck out of regexen and grammaren
15:35 rindolf joined #perl6
15:36 RabidGravy what larks
15:36 TimToady now that I'm finally done with the conference season, maybe I can have a look or two at that
15:36 viki \o/
15:42 pmurias õ
15:45 dalek doc: 96ffea2 | (Zoffix Znet)++ | doc/Type/IO/Handle.pod6:
15:45 synopsebot6 Link: http://doc.perl6.org/type/IO/Handle
15:45 dalek doc: Document IO::Handle.printf
15:45 dalek doc:
15:45 dalek doc: Remove paragraph about workarounds
15:45 dalek doc: review: https://github.com/perl6/doc/commit/96ffea21fe
15:49 dalek doc: 27b993f | (Zoffix Znet)++ | doc/Language/5to6-perlfunc.pod6:
15:49 synopsebot6 Link: http://doc.perl6.org/language/5to6-perlfunc
15:49 dalek doc: Remove printf workaround mention from 5-to-6 doc
15:49 dalek doc: review: https://github.com/perl6/doc/commit/27b993fdd2
15:51 xtt2 joined #perl6
15:51 AlexDaniel joined #perl6
16:03 kyclark_ joined #perl6
16:12 Actualeyes left #perl6
16:28 dalek mu: 084abca | (Zoffix Znet)++ | misc/perl6advent-2016/schedule:
16:28 dalek mu: Switch post
16:28 dalek mu:
16:28 dalek mu: Don't wanna write my original idea anymore, gonna write
16:28 dalek mu: "Perl 6 Core Hacking: How, Where, What, and Why" instead.
16:28 dalek mu: To drive more people to contribute to core code.
16:28 dalek mu:
16:28 dalek mu: If Web Gods willing, the contributing.perl6.org will be done by the time post publishes.
16:28 dalek mu: review: https://github.com/perl6/mu/commit/084abcaab2
16:29 giraffe joined #perl6
16:37 krokib joined #perl6
16:38 domidumont joined #perl6
16:49 dalek mu: 97c6c0a | tadzik++ | misc/perl6advent-2016/schedule:
16:49 dalek mu: Move myself later
16:49 dalek mu: review: https://github.com/perl6/mu/commit/97c6c0a557
16:49 tadzik free karma for pre-procrastinating, neat
16:50 psch huh, curious that this years schedule doesn't share the same format as previous one
16:50 psch i am exclusively refering to "include the 25th with 'Christmas!'"
16:51 psch +s
17:02 moritz psch: time to earn your karma, then!
17:02 psch moritz: actually i'm just assuming that christmas has already happened and that's why the 25th isn't listed :)
17:04 moritz psch: as long as I can remember, there's been a Christmas each year :-)
17:05 psch ah, the trouble with coopting extant terms for specific events /o\
17:15 stux|RC joined #perl6
17:24 BenGoldberg joined #perl6
17:28 vendethiel joined #perl6
17:33 lolo78 joined #perl6
17:35 zacts joined #perl6
17:38 lolo78 Hi, does anyone knows why picking up a random number between 1 and 1e5 takes almost 10 seconds in the REPL, while doing the same between 1 and 100_000 is instantaneous:
17:38 lolo78 > my $start = now; my $c = (1..1e5).pick; say now - $start;
17:38 lolo78 9.97741524
17:38 lolo78 > my $start = now; my $c = (1..100_000).pick; say now - $start;
17:38 lolo78 0
17:38 lolo78 It looks as a bug to me, but I may overlook something.
17:40 viki 0.o
17:40 viki m: my $start = now; my $c = (1..1e5).pick; say now - $start;
17:40 camelia rakudo-moar 8ca367: OUTPUT«6.2881222␤»
17:40 viki m: my $c = (1..1e5).pick; say now - INIT now; # <--- trick for timing without the need for $start
17:40 lolo78_ joined #perl6
17:40 camelia rakudo-moar 8ca367: OUTPUT«6.45798636␤»
17:41 viki s: (1..1e5), 'pick', \()
17:41 SourceBaby viki, Sauce is at https://github.com/rakudo/rakudo/b​lob/8774f24/src/core/Range.pm#L497
17:41 viki m: my $c = (1..1e5).pick: 1; say now - INIT now;
17:41 camelia rakudo-moar 8ca367: OUTPUT«13.60358848␤»
17:42 viki m: my $c = (1..1e5).eager[1]; say now - INIT now
17:42 camelia rakudo-moar 8ca367: OUTPUT«6.1120095␤»
17:42 viki lolo78: would you report it as a performance bug? Just email to rakudobug@perl.org
17:43 lolo78 viki: OK, thanks, I will.
17:43 viki Thanks.
17:44 psch m: (1e0..1e5).pick; say now - INIT now
17:44 camelia rakudo-moar 8ca367: OUTPUT«0.26786054␤»
17:44 psch don't mix types on the ends for now :)
17:44 stux|RC joined #perl6
17:46 psch m: (1..1e5).pick.WHAT.say
17:46 viki Ah..
17:46 camelia rakudo-moar 8ca367: OUTPUT«(Int)␤»
17:46 psch afaiu, for each iteration we're creating something that fits the LHS of infix:<..>, then converting it to fit the RHS, then converting again to store it in the resulting Seq
17:46 viki m: (1..100_000).pick; say now - INIT now
17:46 camelia rakudo-moar 8ca367: OUTPUT«0.0016929␤»
17:46 viki cool :D
17:46 psch fitting the RHS is necessary because we have to check how it cmps
17:46 psch m: (1e0..100_000).pick; say now - INIT now
17:47 camelia rakudo-moar 8ca367: OUTPUT«6.1173763␤»
17:47 lolo78 psch: OK, thanks for the tip, it is indeed much better, but still quite low compared to the 1..100_000 range.
17:47 psch m: (1..100_000).pick; say now - INIT now
17:47 camelia rakudo-moar 8ca367: OUTPUT«0.0017836␤»
17:47 psch m: (1e0..100_000e0).pick; say now - INIT now
17:47 camelia rakudo-moar 8ca367: OUTPUT«0.272768␤»
17:47 AlexDaniel huh
17:47 psch lolo78: yes, because you're passing natives that still have to be boxed
17:47 psch m: (1/1..100_000/1).pick; say now - INIT now
17:47 camelia rakudo-moar 8ca367: OUTPUT«1.0455477␤»
17:47 psch and, well, Rat is slow anyway vOv
17:48 AlexDaniel um, actually I don't see any good reason why it would be so slow
17:48 psch lolo78: in any case, i don't see why you'd ever generate a sequence incrementing by the natural unit in floating point natives or Rats
17:48 psch AlexDaniel: Rat members are usually native, aren't they?
17:48 psch err, s/members/Attributes/
17:49 psch we only bail from that if we reach out of int space afair
17:50 AlexDaniel m: say (0..Inf).pick
17:50 camelia rakudo-moar 8ca367: OUTPUT«Cannot .roll from a lazy list␤  in block <unit> at <tmp> line 1␤␤Actually thrown at:␤  in block <unit> at <tmp> line 1␤␤»
17:50 AlexDaniel m: say (0..NaN).pick
17:50 camelia rakudo-moar 8ca367: OUTPUT«(timeout)»
17:50 psch m: say 1 < NaN
17:50 camelia rakudo-moar 8ca367: OUTPUT«False␤»
17:50 psch m: say 1 > NaN
17:50 camelia rakudo-moar 8ca367: OUTPUT«False␤»
17:50 lolo78 psch: I was really testing with much larger numbers (hundreds of digits) so using for example the 1e200 notation was easier than typing all the digits.
17:50 psch lolo78: well, it creates a different datatype
17:50 psch m: say 1e0.WHAT
17:50 camelia rakudo-moar 8ca367: OUTPUT«(Num)␤»
17:51 psch m: say 1.WHAT
17:51 camelia rakudo-moar 8ca367: OUTPUT«(Int)␤»
17:51 psch we clearly need flexible-length uparrow notation in core :o)
17:51 AlexDaniel #125336 is kinde relevant
17:51 synopsebot6 Link:  https://rt.perl.org/rt3//Publ​ic/Bug/Display.html?id=125336
17:51 AlexDaniel a*
17:52 lolo78 psch: yes, I gather that now, I did not think about it when I ran my tests.
17:53 psch lolo78: maybe some kind of 'infix:<!^>(Int $a, Int $b) { $a ** (10 ** $b) }' can alleviate some of your typing woes :)
17:54 psch ...maybe minus the parens because infix:<**> is right-assoc, isn't it
17:54 moritz I'd still keep them for clarity :-)
17:55 lolo78 psch: I guess I can store 1e200 in a variable and coeece it to an Int before building the range.
17:55 psch lolo78: that too!
17:55 psch lolo78: mind, the performance problem you mentioned is still one we probably want to look into
17:55 AlexDaniel lolo78: so please submit a bug report anyway!
17:56 psch because, really, why wouldn't we convert the RHS to the LHS' type instead of converting every iteration value to the RHS' type
17:56 lolo78 psch: thanks a lot for your help and very enlightening comments. Ans I will submit a bug report.
17:56 lolo78 s/and/and/
17:57 psch lolo78: please tag it '[PERF]' if you do, and thanks! :)
17:57 psch lolo78: where 'tag' means 'put that string in the email subject'
17:57 lolo78 psch: I will. Thanks.
17:57 psch huggable: rakudobug
17:57 huggable psch, rakudobug@perl.org or use perl6 query on http://rt.perl.org ; see https://github.com/rakudo/rakudo/#reporting-bugs
17:59 TEttinger joined #perl6
18:01 skids joined #perl6
18:04 girafe joined #perl6
18:06 lizmat_ joined #perl6
18:09 chris2 joined #perl6
18:13 lolo78 viki, psch and AlexDaniel: I've just submitted the performance bug report to rakudobug@perl.org. Thanks for your help.
18:14 AlexDaniel thanks!
18:21 lolo78 Just as an update: thos works fine:
18:21 lolo78 > (1..1e5.Int).pick; say now - INIT now;
18:21 lolo78 0.0009998
18:21 lolo78 >
18:21 lolo78 s/thos/this/
18:22 TEttinger joined #perl6
18:25 vendethiel joined #perl6
18:49 Tonik joined #perl6
18:54 labster joined #perl6
18:57 chinarulezzz joined #perl6
19:03 stmuk_ http://rakudo.org/2016/11/27/anno​unce-rakudo-star-release-2016-11/
19:11 viki \o/
19:16 lizmat_ stmuk_++
19:17 xinming joined #perl6
19:20 espadrine joined #perl6
19:23 stmuk_ I'm always surprised about the number of emails about the MSI
19:27 RabidGravy strange how "fast queues" improve the reliability of the Audio::Liquidsoap tests
19:29 RabidGravy I think it's the source switch on the default playlist pre-empting the resolution of the request queue
19:32 mst timing problems make all pandas sad
19:32 moritz stmuk_++
19:39 moritz m: for 1..2 { .say; NEXT say "NEXT $_" }
19:39 camelia rakudo-moar 8ca367: OUTPUT«1␤NEXT 1␤2␤NEXT 2␤»
19:39 moritz m: for 1..2 { .say; NEXT say "NEXT $_"; last }
19:39 camelia rakudo-moar 8ca367: OUTPUT«1␤»
19:47 lizmat moritz: did you expect something else?
19:56 haircode joined #perl6
20:04 lolo78 joined #perl6
20:08 lolo78_ joined #perl6
20:20 stevieb joined #perl6
20:22 adu joined #perl6
20:26 pochi joined #perl6
20:40 cschwenz joined #perl6
20:50 bjz joined #perl6
20:53 lolo78__ joined #perl6
21:19 eisen74 joined #perl6
21:26 rindolf joined #perl6
21:36 dmaestro I'm still curious about the quoting behavior here:
21:36 dmaestro m: Qw { [ ] { } }.perl
21:36 camelia rakudo-moar 8ca367: ( no output )
21:37 dmaestro m: say Qw { [ ] { } }.perl
21:37 camelia rakudo-moar 8ca367: OUTPUT«("[", "]", "\{}")␤»
21:38 dalek doc: 6a28ad9 | coke++ | doc/Language/ (2 files):
21:38 dalek doc: remove trailing whitespace
21:38 dalek doc: review: https://github.com/perl6/doc/commit/6a28ad9513
21:38 dalek doc: 53719f6 | coke++ | doc/Language/glossary.pod6:
21:38 dalek doc: remove unwarranted contraction
21:38 synopsebot6 Link: http://doc.perl6.org/language/glossary
21:38 dalek doc: review: https://github.com/perl6/doc/commit/53719f64d3
21:42 [Coke] we need more volunteers for advent.
21:42 [Coke] 14 empty slots out of 25.
21:43 [Coke] (I am happy to yield day one to someone writing a non-technical annual retrospective. :)
22:06 mj41 joined #perl6
22:21 bjz joined #perl6
22:21 dalek doc: 6c9bfc9 | (Daniel Mita)++ | doc/Language/operators.pod6:
22:21 synopsebot6 Link: http://doc.perl6.org/language/operators
22:21 dalek doc: Fix links to postcircumfix operators
22:21 dalek doc: review: https://github.com/perl6/doc/commit/6c9bfc901e
22:21 dalek doc: 3904632 | RabidGravy++ | doc/Language/operators.pod6:
22:21 dalek doc: Merge pull request #1023 from mienaikage/operator-urls
22:21 synopsebot6 Link: http://doc.perl6.org/language/operators
22:21 dalek doc:
22:21 dalek doc: Fix links to postcircumfix operators
22:21 dalek doc: review: https://github.com/perl6/doc/commit/3904632bff
22:27 _28_ria joined #perl6
22:30 stevieb joined #perl6
22:34 cschwenz left #perl6
22:45 kurahaupo__ joined #perl6
22:50 pmurias joined #perl6
22:50 timotimo Ulti: MAST doesn't come with a stringification, i don't think; the internal mast stuff is not text-like at all, fwiw
22:51 [Coke] anyone mind if I upgrade perl6 on hack?
22:51 [Coke] (the rakudobrew version)
22:54 [Coke] ... hope not, pulling trigger now
22:55 timotimo i'll be fine with it, but i hardly use perl6 on hack anyway
22:55 [Coke] I just need some place that I can run a service on to test out my article.
22:56 [Coke] ... but I need to make sure it's at least using the latest version.
22:56 timotimo sure thing, hack is good for that
22:56 timotimo though of course you're free to build your own rakudo in your own home directort
22:56 timotimo directory %)
22:56 seatek joined #perl6
22:57 kurahaupo_ joined #perl6
22:58 [Coke] it was .06
22:58 timotimo yowsers
23:00 Actualeyes joined #perl6
23:04 pierre_ joined #perl6
23:08 cdg joined #perl6
23:12 MasterDuke joined #perl6
23:14 timotimo whoa, don't we usually shorten the rakudo star changelog significantly?
23:14 timotimo for the release i mean
23:15 * timotimo fixes some markup explosiveness
23:18 ZzZombo_ joined #perl6
23:20 timotimo fixed
23:24 AlexDaniel joined #perl6
23:25 seatek smoldering ruins?
23:25 timotimo well ... with some band-aids
23:25 seatek :)
23:26 timotimo check it out on rakudo.org
23:26 timotimo i'm not sure if i want to turn the bulleted list from a + character in each line to actually using html markup
23:30 seatek this is the change from .10 to .11 ?
23:30 timotimo no, it's only rakudo star
23:30 timotimo i'm not sure when the last rakudo star was
23:30 seatek ah ok
23:30 Actualeyes joined #perl6
23:30 timotimo oh
23:30 timotimo the last rakudo star release was .10
23:31 seatek yeah that wasn't long ago at all
23:31 timotimo yeah
23:31 lukaramu joined #perl6
23:32 timotimo i'm going to bed, i'm beat :)
23:32 seatek oh my gosh i didn't even think that you could use multiple adverbs
23:32 timotimo hm, we should perhaps make extra sure to include a piece about that in the docs
23:33 seatek i'll try to find it and mention it if you like
23:33 timotimo thanks!
23:34 timotimo it's interesting among other things for :delete; like :delete:kv will give you keys and values, and also delete stuff from a hash
23:34 timotimo anyway, AFK
23:34 seatek like a dangerous factory line
23:35 seatek efficient and deadly

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

Perl 6 | Reference Documentation | Rakudo