Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2016-12-12

Perl 6 | Reference Documentation | Rakudo

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

All times shown according to UTC.

Time Nick Message
00:08 AlexDaniel hm, what's the easiest way to split a range into several subranges?
00:08 samcv rotor
00:08 samcv you trying to thread it?
00:08 AlexDaniel yup
00:09 [Coke] any feedback on the levenstein search?
00:09 [Coke] *levenshtein
00:09 babydrop [Coke]: some searches return a ton of results... will that levenshtein exacerbate the issue?
00:10 AlexDaniel [Coke]: how fast is it? What about using Sift4?
00:10 samcv m: my $words = any(<PENGUIN>); (0..0x20000).».uniname.contains($words).say; say now - INIT now
00:10 camelia rakudo-moar 0c75e5: OUTPUT«any(True)␤0.58537436␤»
00:10 samcv that's fast
00:10 samcv m: my $words = any(<abethathetnahnet>); (0..0x20000).».uniname.contains($words).say; say now - INIT now
00:10 camelia rakudo-moar 0c75e5: OUTPUT«any(False)␤0.59398663␤»
00:11 samcv :)
00:11 samcv half a second isn't bad
00:11 [Coke] AlexDaniel: fast enough? don't know what sift4 is.
00:11 babydrop samcv: that looks wrong.
00:11 AlexDaniel [Coke]: https://siderite.blogspot.com/2014/11/super-fast-and-accurate-string-distance.html
00:11 samcv is it
00:11 babydrop OK :)
00:11 samcv it could be. but it returns true for real words and false for words not in it
00:11 BenGoldberg m: my $words = any(<GUN LAGAR>); (0..0x20000).».uniname.contains($words).say; say now - INIT now
00:11 camelia rakudo-moar 0c75e5: OUTPUT«any(True, True)␤0.6326179␤»
00:11 timotimo sounds like it'd stringify the names of all those characters into a single string
00:11 babydrop samcv: you're calling .contains on one huge string
00:11 AlexDaniel [Coke]: it's like levenshtein but much faster
00:12 samcv yes
00:12 babydrop .oO( premature optimization... )
00:12 AlexDaniel [Coke]: for example, we're using in on whateverables (even though we didn't need any speed boost)
00:12 AlexDaniel it*
00:12 samcv well that's the theoretical maximum speed it can go babydrop
00:12 samcv doing contains on one string
00:13 timotimo i see no post on the advent calendar blog yet; they're supposed to go up around this time, right?
00:13 BenGoldberg m: my @props; my @words = any <GUN LAGAR>; my $results = (^0x20000).grep: { (@props ?? .uniprop.contains(@props.any) !! True) and (@words ?? .uniname.contains(@words.any) !! True) }; say +$results; say now - INIT now;
00:13 camelia rakudo-moar 0c75e5: OUTPUT«73␤8.45589095␤»
00:13 babydrop timotimo: "in 3 hours"
00:14 * babydrop forgets if RabidGravy ever confirmed his
00:14 mawkish joined #perl6
00:15 [Coke] AlexDaniel: current version seems fast enough. I'm more concerned about user visible breakages.
00:15 BenGoldberg m: say so any( map { print "foo"; True }, ^5 );
00:15 camelia rakudo-moar 0c75e5: OUTPUT«foofoofoofoofooTrue␤»
00:15 AlexDaniel [Coke]: sure, that's just an idea
00:16 BenGoldberg m: my $its_a_seq = map { print "foo"; True }, ^5; say "bar";
00:16 camelia rakudo-moar 0c75e5: OUTPUT«bar␤»
00:16 [Coke] (easy enough to switch out with a new algorithm if someone wants, though)
00:16 BenGoldberg m: my $its_a_seq = map { print "foo"; True }, ^5; say any($its_a_seq);
00:16 camelia rakudo-moar 0c75e5: OUTPUT«foofoofoofoofooany(True, True, True, True, True)␤»
00:17 BenGoldberg m: my $its_a_seq = map { print "foo"; True }, ^5; my $my_bad = any($its_a_seq); say "bar";
00:17 camelia rakudo-moar 0c75e5: OUTPUT«foofoofoofoofoobar␤»
00:17 babydrop merge it :}
00:18 BenGoldberg Would anything break if any(Seq) did not unlazy the contents of the Seq?
00:18 timotimo babydrop: huh, really? interesting.
00:18 * timotimo is currently reading the previous post, about QAST
00:22 girafe joined #perl6
00:22 AlexDaniel I have a feeling that this is not going to fit
00:22 AlexDaniel m: my @props; my @words = <PENGUIN>; my $x = (0..0x1FFFF).rotor(0x1FFFF/8); .uniname.say for flat await ( for (@$x) { start { .grep( -> $z { !@words.first({ not uniname($z).contains($_)}) and !@props.first({uniprop($z) ne $_}) } ) } }); say now - INIT now
00:22 camelia rakudo-moar 0c75e5: OUTPUT«PENGUIN␤2.8917120␤»
00:23 AlexDaniel hm
00:23 Actualeyes joined #perl6
00:23 AlexDaniel eval: my @props; my @words = <PENGUIN>; my $x = (0..0x1FFFF).rotor(0x1FFFF/8); .uniname.say for flat await ( for (@$x) { start { .grep( -> $z { !@words.first({ not uniname($z).contains($_)}) and !@props.first({uniprop($z) ne $_}) } ) } }); say now - INIT now
00:23 evalable6 AlexDaniel, rakudo-moar 0c75e5d: OUTPUT«PENGUIN␤3.1004866»
00:23 AlexDaniel eval: my @props; my @words = <PENGUIN>; my $x = (0..0x1FFFF).rotor(0x1FFFF/8); .uniname.say for flat await ( for (@$x) { start { .grep( -> $z { !@words.first({ not uniname($z).contains($_)}) and !@props.first({uniprop($z) ne $_}) } ) } }); say now - INIT now
00:23 evalable6 AlexDaniel, rakudo-moar 0c75e5d: OUTPUT«PENGUIN␤3.0042219»
00:23 AlexDaniel eval: my @props; my @words = <PENGUIN>; my @a; for (0..0x1FFFF).grep(-> $z { (!@words.first({ not uniname($z).contains($_)})) and (!@props.first({uniprop($z) ne $_})) }) { .uniname.say }; say now - INIT now
00:23 evalable6 AlexDaniel, rakudo-moar 0c75e5d: OUTPUT«PENGUIN␤1.7202091»
00:23 AlexDaniel eval: my @props; my @words = <PENGUIN>; my $x = (0..0x1FFFF).rotor(0x1FFFF/4); .uniname.say for flat await ( for (@$x) { start { .grep( -> $z { !@words.first({ not uniname($z).contains($_)}) and !@props.first({uniprop($z) ne $_}) } ) } }); say now - INIT now
00:23 evalable6 AlexDaniel, rakudo-moar 0c75e5d: OUTPUT«PENGUIN␤2.62765727»
00:24 AlexDaniel eval: my @props; my @words = <PENGUIN>; my $x = (0..0x1FFFF).rotor(0x1FFFF/2); .uniname.say for flat await ( for (@$x) { start { .grep( -> $z { !@words.first({ not uniname($z).contains($_)}) and !@props.first({uniprop($z) ne $_}) } ) } }); say now - INIT now
00:24 evalable6 AlexDaniel, rakudo-moar 0c75e5d: OUTPUT«PENGUIN␤2.4436951»
00:24 AlexDaniel ok enough
00:24 AlexDaniel well screw it then, let's say 1.72 is good enough
00:25 tbrowder babydrop: i'm looking for my advent post and something is wrong--should be showing up now, no?
00:26 timotimo apparently it's scheduled to show up in 3 hours
00:26 babydrop tbrowder: it's scheduled for 3 hours from now
00:27 timotimo Scheduled for: Dec 12, 2016 @ 02:58 Edit
00:27 tbrowder ok, i can't find it anywhere in wordpresss--had me worried
00:27 timotimo right, only findable in the admin
00:27 timotimo https://perl6advent.wordpress.com/wp-admin/edit.php - this part of the admin console has it
00:28 tbrowder whew, thanks!
00:28 * babydrop sees it in https://wordpress.com/posts/scheduled/perl6advent.wordpress.com
00:29 babydrop You just have to select "Everyone" instead of just "Me"
00:29 [Coke] m: / ',' <-[ ]> /
00:29 camelia rakudo-moar 0c75e5: OUTPUT«===SORRY!===␤Iteration past end of iterator␤»
00:30 [Coke] That seems LTA>
00:30 timotimo oh, good find
00:30 tbrowder hm, no wonder wordpress sucks rocks...
00:30 tbrowder we definitely need our own system...
00:32 mawkish joined #perl6
00:33 babydrop m: /<-[]>/
00:33 camelia rakudo-moar 0c75e5: OUTPUT«===SORRY!===␤Iteration past end of iterator␤»
00:33 babydrop m: /<[]>/
00:33 camelia rakudo-moar 0c75e5: ( no output )
00:33 [Coke] m: / <-[ ]> /
00:33 camelia rakudo-moar 0c75e5: OUTPUT«===SORRY!===␤Iteration past end of iterator␤»
00:33 timotimo tbrowder: are you going to make the post released now?
00:35 tbrowder no...trusting to the system unless it should be--that was the scheduled time that popped up when i scheduled it--i dodn't have any control over the time that i could see
00:37 timotimo strange
00:37 tbrowder i guess i can force it--should i?
00:37 timotimo anyway, i just read the scheduled version and am going to bed now :)
00:37 timotimo so to me it makes no difference now :P
00:40 samcv oh AlexDaniel i fixed the problem
00:40 samcv we can do it in
00:40 samcv like .2 seconds
00:40 samcv hold on
00:42 mawkish joined #perl6
00:43 AlexDaniel yea, I think I have it too
00:43 samcv oh crap. i think you have to supply the exact name for this nqp operation
00:43 samcv oh well
00:43 samcv would have been nice
00:44 AlexDaniel with nqp ops, huh?
00:44 samcv yeah
00:44 AlexDaniel m: my @props; my @words = <PENGUIN>; my $sieve = 0..0x1FFFF; for @words -> $word { $sieve = (@$sieve).grep({uniname($_).contains($word)}) }; for @props -> $prop { $sieve = (@$sieve).grep({uniprop($_) eq $prop}) }; .uniname.say for @$sieve; say now - INIT now
00:44 samcv it does it like.
00:44 camelia rakudo-moar 0c75e5: OUTPUT«PENGUIN␤0.68539801␤»
00:44 AlexDaniel here
00:44 AlexDaniel eval: my @props; my @words = <PENGUIN>; my $sieve = 0..0x1FFFF; for @words -> $word { $sieve = (@$sieve).grep({uniname($_).contains($word)}) }; for @props -> $prop { $sieve = (@$sieve).grep({uniprop($_) eq $prop}) }; .uniname.say for @$sieve; say now - INIT now
00:44 evalable6 AlexDaniel, rakudo-moar 0c75e5d: OUTPUT«PENGUIN␤0.584401»
00:44 samcv m: use nqp; nqp::codepointfromname.say; say now - INIT now
00:44 camelia rakudo-moar 0c75e5: OUTPUT«===SORRY!===␤Arg count 0 doesn't equal required operand count 2 for op 'getcpbyname'␤»
00:44 samcv m: use nqp; nqp::codepointfromname('PENGUIN').say; say now - INIT now
00:45 camelia rakudo-moar 0c75e5: OUTPUT«128039␤0.01494175␤»
00:45 samcv .01 seconds
00:45 AlexDaniel :-|
00:45 babydrop m: eager ^0x20000; say now - INIT now
00:45 camelia rakudo-moar 0c75e5: OUTPUT«0.05801395␤»
00:45 AlexDaniel yea, that would be nice
00:45 samcv AlexDaniel, would be cool if it tried that operation first and if so reply with that instantly
00:45 babydrop m: eager (^0x20000)».uniname; say now - INIT now
00:45 camelia rakudo-moar 0c75e5: OUTPUT«0.49742634␤»
00:45 AlexDaniel samcv: 0.59s is kinda like instantly
00:45 babydrop Create the list once on startup?
00:46 babydrop And use the uninamed version for all lookups
00:46 AlexDaniel babydrop: ooooooooooooooooooh
00:46 samcv my bot in another channel does that
00:46 samcv it creates a hash of all of them
00:46 AlexDaniel right, now I remember
00:46 samcv but that's not the main reason the bot is slow though
00:46 samcv it won't speed it up that much
00:47 AlexDaniel come on, 0.59s! That's super fast!
00:47 samcv oh
00:47 samcv my @props; my @words = <PENGUIN>; my $sieve = 0..0x1FFFF; for @words -> $word { $sieve = (@$sieve).grep({uniname($_).contains($word)}) }; for @props -> $prop { $sieve = (@$sieve).grep({uniprop($_) eq $prop}) }; .uniname.say for @$sieve; say now - INIT now
00:47 samcv this?
00:47 AlexDaniel yes
00:47 samcv m: my @props; my @words = <PENGUIN>; my $sieve = 0..0x1FFFF; for @words -> $word { $sieve = (@$sieve).grep({uniname($_).contains($word)}) }; for @props -> $prop { $sieve = (@$sieve).grep({uniprop($_) eq $prop}) }; .uniname.say for @$sieve; say now - INIT now
00:47 camelia rakudo-moar 0c75e5: OUTPUT«PENGUIN␤0.6941767␤»
00:47 samcv yeah that is fast
00:48 SmokeMachine m: Int ~~ UInt
00:48 camelia rakudo-moar 0c75e5: OUTPUT«Invocant requires an instance of type Int, but a type object was passed.  Did you forget a .new?␤  in any accepts_type at gen/moar/Metamodel.nqp line 3435␤  in block <unit> at <tmp> line 1␤␤»
00:48 samcv yeah that's good
00:48 SmokeMachine is this expected?
00:48 samcv m: my @props; my @words = <STAR>; my $sieve = 0..0x1FFFF; for @words -> $word { $sieve = (@$sieve).grep({uniname($_).contains($word)}) }; for @props -> $prop { $sieve = (@$sieve).grep({uniprop($_) eq $prop}) }; .uniname.say for @$sieve; say now - INIT now
00:48 camelia rakudo-moar 0c75e5: OUTPUT«START OF HEADING␤START OF TEXT␤START OF SELECTED AREA␤START OF GUARDED AREA␤START OF STRING␤ARABIC FIVE POINTED STAR␤ARABIC START OF RUB EL HIZB␤TIBETAN MARK DELIMITER TSHEG BSTAR␤STAR EQUALS␤STAR OPERATOR␤APL FUNCTIONAL SYMBOL CIRCLE S…»
00:48 samcv cool
00:49 AlexDaniel hm wait
00:49 babydrop SmokeMachine: could be improved
00:49 AlexDaniel m: my @props; my @words = <PENGUIN>; my $sieve = 0..0x1FFFF; for @words -> $word { $sieve .= grep({uniname($_).contains($word)}) }; for @props -> $prop { $sieve .= grep({uniprop($_) eq $prop}) }; .uniname.say for @$sieve; say now - INIT now
00:49 camelia rakudo-moar 0c75e5: OUTPUT«PENGUIN␤0.19691999␤»
00:49 samcv does it find all the words though?
00:49 babydrop m: &infix:<~~>, \(Int, UInt)
00:49 camelia rakudo-moar 0c75e5: OUTPUT«WARNINGS for <tmp>:␤Useless use of &infix:<~~> in sink context (lines 1, 1)␤»
00:50 babydrop SmokeMachine: but to answer the question: yes, UInt is a subset of Int
00:50 babydrop d: &infix:<~~>, \(Int, UInt)
00:50 babydrop s: &infix:<~~>, \(Int, UInt)
00:50 SourceBaby babydrop, Sauce is at https://github.com/rakudo/rakudo/blob/0c75e5d/src/core/Mu.pm#L821
00:50 AlexDaniel eval: my @props; my @words = <A B C D>; my $sieve = 0..0x1FFFF; for @words -> $word { $sieve .= grep({uniname($_).contains($word)}) }; for @props -> $prop { $sieve .= grep({uniprop($_) eq $prop}) }; .uniname.say for @$sieve; say now - INIT now
00:50 evalable6 AlexDaniel, rakudo-moar 0c75e5d: OUTPUT«END OF TRANSMISSION BLOCK␤PARTIAL LINE BACKWARD␤LATIN CAPITAL LETTER C WITH DOT ABOVE␤LATIN SM…»
00:50 evalable6 AlexDaniel, Full output: https://gist.github.com/c2459aed25182d894c51e8c77e8a41e8
00:50 AlexDaniel unicodable6: A B C D
00:50 unicodable6 AlexDaniel, U+0017 END OF TRANSMISSION BLOCK [Cc] (␗)
00:50 unicodable6 AlexDaniel, U+008C PARTIAL LINE BACKWARD [Cc] (Œ)
00:50 unicodable6 AlexDaniel, U+010A LATIN CAPITAL LETTER C WITH DOT ABOVE [Lu] (Ċ)
00:51 unicodable6 AlexDaniel, https://gist.github.com/
00:51 AlexDaniel thank you very much!
00:53 AlexDaniel samcv: yes, these are all!
00:53 samcv sweet
00:54 SmokeMachine babydrop: thanks...
00:56 kyclark joined #perl6
00:56 AlexDaniel samcv: how can it be so much faster, I don't get it :o
00:57 samcv hmm
00:57 samcv it is awesome tho
00:57 samcv but interesting how much faster it is
00:57 samcv but uniname is really fast tho
00:58 samcv it goes straight through almost to moarvm
00:58 AlexDaniel samcv: about 9 times
00:58 AlexDaniel than the current version of unicodable
00:58 samcv yeah
00:58 samcv i mean it's really fast, i mean even uniprop which is a lil slower
00:58 samcv takes 8 seconds on my laptop to go through all unicode symbols 10 times
00:59 samcv so 10 times 0x1FFFF
00:59 samcv it's always been the .contains part and calling it so many times, but. i think
00:59 samcv it's because no junctions
01:00 samcv ^
01:00 babydrop SmokeMachine: wanna fix that bug?
01:00 samcv at least a big part
01:00 babydrop SmokeMachine: it fails in this check: https://github.com/rakudo/rakudo/blob/nom/src/core/Int.pm#L6
01:00 babydrop SmokeMachine: and it should be where { not .defined or $_ >= 0 };
01:01 SmokeMachine is it only that?
01:01 SmokeMachine babydrop: ^^
01:02 babydrop SmokeMachine: yup
01:02 babydrop m: Int >= 0
01:02 camelia rakudo-moar 0c75e5: OUTPUT«WARNINGS for <tmp>:␤Useless use of ">=" in expression "Int >= 0" in sink context (line 1)␤Invocant requires an instance of type Int, but a type object was passed.  Did you forget a .new?␤  in block <unit> at <tmp> line 1␤␤»
01:02 babydrop m: quietly Int >= 0
01:02 camelia rakudo-moar 0c75e5: OUTPUT«WARNINGS for <tmp>:␤Useless use of ">=" in expression "Int >= 0" in sink context (line 1)␤Invocant requires an instance of type Int, but a type object was passed.  Did you forget a .new?␤  in block <unit> at <tmp> line 1␤␤»
01:02 babydrop I said quietly!
01:02 timotimo that's a compile-time warning :P
01:02 _28_ria joined #perl6
01:03 babydrop SmokeMachine: basically in Int ~~ UInt, the Int type object goes into that where and tries to do Int >= 0, but there's no such candidate. So the `not .defined ` would accept undefined UInts
01:03 babydrop well... undefined Ints
01:03 SmokeMachine babydrop: I got it! :)
01:03 SmokeMachine babydrop: can I try to fiz that?
01:04 SmokeMachine *fix
01:04 samcv m: my subset UInt of Int where * >= 0 or *.defined; (UInt ~~ Int).say
01:04 camelia rakudo-moar 0c75e5: OUTPUT«True␤»
01:04 samcv that fixes it
01:04 _28_ria joined #perl6
01:05 babydrop ummm
01:05 babydrop hehehe
01:05 babydrop samcv: I see three mistakes :}
01:05 samcv yeah
01:05 samcv i just noticed
01:05 kyclark joined #perl6
01:05 samcv ha
01:06 babydrop samcv: the  where * >= 0 or *.defined takes 2 args, so you're not checking the same arg
01:06 samcv yeah
01:06 samcv it was poorly thought out
01:06 babydrop But it works! :P
01:07 samcv m: my subset UInt of Int;
01:07 camelia rakudo-moar 0c75e5: ( no output )
01:07 samcv fixed^
01:07 samcv i have often thought about creating a perl 6 implementation which only implements roast
01:07 TimToady m: (* >= 0 or *.defined).arity.say
01:07 camelia rakudo-moar 0c75e5: OUTPUT«1␤»
01:07 canopus joined #perl6
01:07 samcv and hardcodes all the values
01:07 babydrop :o
01:07 TimToady * doesn't go past 'or'
01:08 babydrop Thanks.
01:08 SmokeMachine babydrop: should I create any test?
01:08 AlexDaniel samcv: interesting. You can probably automate a lot of it
01:08 samcv this 'perl6 implementation' would have to be recompiled for every new roast, but
01:08 babydrop SmokeMachine: of course! That's the only way you know the fix works :)
01:08 AlexDaniel samcv: I wonder if it would be able to run any user code
01:08 samcv doubtful
01:08 samcv unless like
01:09 samcv you typed exactly the same thing as roast tested
01:09 AlexDaniel depends on the values you use :D
01:09 samcv because all values are hardcoded
01:09 samcv yeah
01:09 SmokeMachine babydrop: Where? (Im sorry about so many questions... but thats my first time... :))
01:10 samcv oh in roast SmokeMachine
01:10 babydrop SmokeMachine: it's cool
01:10 samcv in S32-num/int.t i think
01:10 SmokeMachine samcv: roast is a different repo, isn't it? How should I do that?
01:11 babydrop SmokeMachine: the test goes into https://github.com/perl6/roast The way I do it is `tree -f | grep -i` some term.. In this case I'd use `tree -f | grep -i uint` which gives S02-types/int-uint.t
01:11 babydrop SmokeMachine: fork it, and in your rakudo repo, do git clone URL-TO-THE-FORK t/spec
01:11 babydrop And to run it do make spectest
01:12 SmokeMachine ok! doing that!
01:12 babydrop And to run individual file run make t/spec/S02-types/int-uint.t after you add your test
01:12 samcv babydrop, that info should be in the README
01:12 samcv tbqh
01:12 babydrop samcv: I think it is. But I also plan to make contribute.perl6.org a web app that has all this info in an interactive way sortof
01:13 babydrop https://github.com/perl6/contribute/blob/master/DESIGN.md
01:13 samcv it's not in there babydrop
01:13 samcv somebody who knows more about roast than i do should add it, since i just ran the tests individually before :P
01:13 babydrop oh
01:13 TEttinger joined #perl6
01:14 unicodable6 joined #perl6
01:14 AlexDaniel unicodable6: butterfly
01:14 unicodable6 AlexDaniel, U+1F98B BUTTERFLY [So] (????)
01:14 AlexDaniel YEA! THAT'S MUCH BETTER!
01:14 AlexDaniel fucking instant!
01:14 babydrop SmokeMachine: I see that file is actually for native uints. Unless you already started adding to it, add S32-num/int.t instead (yeah, the organization of the repo isn't perfect)
01:15 babydrop samcv: which info isn't in the README btw?
01:15 babydrop About how to find files?
01:15 AlexDaniel unicodable6: gun lagar
01:15 unicodable6 AlexDaniel, U+12006 CUNEIFORM SIGN A TIMES LAGAR GUNU [Lo] (????)
01:15 unicodable6 AlexDaniel, U+121EF CUNEIFORM SIGN LAGAR GUNU [Lo] (????)
01:15 unicodable6 AlexDaniel, U+121F0 CUNEIFORM SIGN LAGAR GUNU OVER LAGAR GUNU SHE [Lo] (????)
01:15 samcv no
01:15 samcv how to make spectest
01:15 SmokeMachine ok! closing the old file... opening the new one...
01:15 babydrop unicodable6: non-breaking space
01:15 unicodable6 babydrop, U+006E LATIN SMALL LETTER N [Ll] (n)
01:15 unicodable6 babydrop, U+006E LATIN SMALL LETTER N [Ll] (n)
01:15 unicodable6 babydrop, U+006F LATIN SMALL LETTER O [Ll] (o)
01:15 unicodable6 babydrop, https://gist.github.com/a0f764a96c23c55200147f73cce71dcf
01:15 samcv about how to RUN them
01:15 samcv it says everything else
01:15 babydrop Right.
01:15 samcv hah
01:16 AlexDaniel u: breaking space
01:16 unicodable6 AlexDaniel, Found nothing!
01:16 AlexDaniel u: break space
01:16 unicodable6 AlexDaniel, U+00A0 NO-BREAK SPACE [Zs] ( )
01:16 unicodable6 AlexDaniel, U+202F NARROW NO-BREAK SPACE [Zs] ( )
01:16 unicodable6 AlexDaniel, U+FEFF ZERO WIDTH NO-BREAK SPACE [Cf] ()
01:16 AlexDaniel ok, digits, dash…
01:16 babydrop It's cause I wrote "breaking" instead of "break" :)
01:16 AlexDaniel no it's cause you wrote -
01:16 babydrop Oh :(
01:17 babydrop u: non breaking space
01:17 unicodable6 babydrop, Found nothing!
01:17 AlexDaniel I can fix that real quick
01:17 babydrop u: breaking space
01:17 unicodable6 babydrop, Found nothing!
01:17 AlexDaniel but
01:17 babydrop samcv: I see there's another way to run the tests in the repo: https://github.com/perl6/roast/blob/master/CONTRIBUTING.md
01:18 AlexDaniel eval: 0x1FFFF.map({.uniname}).comb.sort.squish.say
01:18 evalable6 AlexDaniel, rakudo-moar 0c75e5d: OUTPUT«(< > a e g i l)»
01:18 babydrop Well, it shouldn't go to roast repo anyway, because it's just Rakudo's way of running tests. It should be in Rakudo docs or, as I've said, in contributing.rakudo.org
01:18 AlexDaniel eval: (0..0x1FFFF).map({.uniname}).comb.sort.squish.say
01:18 AlexDaniel I know I should use bags, but…
01:18 evalable6 AlexDaniel, rakudo-moar 0c75e5d: OUTPUT«(signal SIGHUP) «timed out after 10 seconds, output»: »
01:18 mawkish joined #perl6
01:18 AlexDaniel or what should I use?
01:18 babydrop For what?
01:19 AlexDaniel babydrop: I want to have all characters used in uninames
01:19 samcv AlexDaniel, split on '-'
01:19 samcv please
01:19 samcv er. i guess
01:19 babydrop eval: (0..0x1FFFF).map({.uniname}).flat.comb.Bag.map(*.keys).say
01:19 samcv it finds anyway
01:20 samcv hmm so probably won't change anything maybe
01:20 evalable6 babydrop, rakudo-moar 0c75e5d: OUTPUT«(signal SIGHUP) «timed out after 10 seconds, output»: »
01:20 babydrop eval: (0..0x1FFFF)».uniname.join.comb.Bag.map(*.keys).say
01:20 evalable6 babydrop, rakudo-moar 0c75e5d: OUTPUT«(signal SIGHUP) «timed out after 10 seconds, output»: »
01:20 samcv it's gonna all timeout
01:20 * babydrop gives up
01:20 samcv it's gonna take time to create it
01:21 samcv AlexDaniel, what do you mean you want to have all characters
01:21 samcv individually?
01:21 babydrop eval: (% {(0..0x1FFFF)».uniname.comb}).keys.join.say
01:21 evalable6 babydrop, rakudo-moar 0c75e5d: OUTPUT«(exit code 1) ===SORRY!=== Error while compiling /tmp/O4h3lMrUyP␤Unexpected block in infix pos…»
01:21 evalable6 babydrop, Full output: https://gist.github.com/d5717badcc8e4ab6eb3f90646f0fd1a7
01:21 AlexDaniel I want to know which ones are used :)
01:21 samcv oh
01:21 samcv i see
01:21 AlexDaniel I can probably look it up but… it's not fun this way
01:22 SmokeMachine babydrop: sorry again, but How do I run the tests?
01:23 SmokeMachine I tried with prove -e perl6 but I realized that was using my installed perl6 (I suppose)
01:24 aborazmeh joined #perl6
01:24 aborazmeh joined #perl6
01:24 babydrop SmokeMachine: did you build rakudo with the fix in it?
01:24 SmokeMachine not yet...
01:24 samcv eval: (0..0x1FFFF).map({.uniname}).ords.Bag.say
01:24 evalable6 samcv, rakudo-moar 0c75e5d: OUTPUT«(signal SIGHUP) «timed out after 10 seconds, output»: »
01:24 samcv the Bag part makes it slow
01:25 babydrop SmokeMachine: build it. And then in rakudo's repository run `make t/spec/the-file-you-added-the-test-to.t` and it'll run it
01:25 babydrop And also run `make spectest` to ensure the fix doesn't break anything
01:25 SmokeMachine babydrop: should I follow the REDME?
01:25 AlexDaniel samcv: well, that's not how it should be used, I guess :)
01:25 AlexDaniel I was hoping that something like this will work
01:25 babydrop SmokeMachine: if it describes the process, sure.
01:25 AlexDaniel eval: my $set = SetHash.new; for 0..0x1FFFF { $set{.uniname.comb} = 1 xx * }; say $set
01:25 SmokeMachine :)
01:25 evalable6 AlexDaniel, rakudo-moar 0c75e5d: OUTPUT«(signal SIGHUP) «timed out after 10 seconds, output»: »
01:27 AlexDaniel eval: my %c; for 0..0x1FFFF { %c{$_} = 1 for .uniname.comb }; .say for sort keys %c
01:27 evalable6 AlexDaniel, rakudo-moar 0c75e5d: OUTPUT« ␤(␤)␤-␤0␤1␤2␤3␤4␤5␤6␤7␤8␤9␤<␤>␤A␤B␤C␤D␤E␤F␤G␤H␤I␤J␤K␤L␤M␤N␤O␤P␤Q␤R␤S␤T␤U␤V␤W␤X␤Y␤Z␤a␤b␤d␤e␤g␤h␤i␤l␤n␤o␤p␤r␤s␤t␤u␤v␤w␤x␤y»
01:27 AlexDaniel there we go
01:28 dalek doc: 300f3e8 | coke++ | xt/trailing-whitespace.t:
01:28 dalek doc: fix indent
01:28 dalek doc: review: https://github.com/perl6/doc/commit/300f3e89e1
01:28 dalek doc: d385536 | coke++ | doc/Language/glossary.pod6:
01:28 dalek doc: Don't use quotes, avoid ", interaction
01:28 synopsebot6 Link: http://doc.perl6.org/language/glossary
01:28 dalek doc: review: https://github.com/perl6/doc/commit/d385536447
01:28 dalek doc: a103ca2 | coke++ | doc/ (5 files):
01:28 dalek doc: avoid trailing comma before closing paren
01:28 dalek doc: where not needed.
01:28 dalek doc: review: https://github.com/perl6/doc/commit/a103ca242d
01:28 SmokeMachine Does anyone know it I am doing something wrong?
01:28 babydrop Kinda sucks there aren't any goodlooking methods for adding stuff to hash
01:28 SmokeMachine https://www.irccloud.com/pastebin/eJXhcHk0/
01:28 SmokeMachine now just worked!
01:29 babydrop *adding stuff to SetHash I mean
01:29 babydrop something like $s.add: <some items>
01:29 babydrop m: my $s = SetHash.new; $s.push: 42; dd $s
01:29 camelia rakudo-moar 0c75e5: OUTPUT«Cannot resolve caller push(SetHash: Int); none of these signatures match:␤    (Any:U \SELF: |values is raw)␤  in block <unit> at <tmp> line 1␤␤»
01:29 babydrop huh
01:30 babydrop m: my $s = SetHash; $s.push: 42; dd $s
01:30 camelia rakudo-moar 0c75e5: OUTPUT«Array $s = $[42]␤»
01:30 babydrop 0.o
01:30 babydrop Oh right
01:30 babydrop autoviv candidate
01:30 samcv AlexDaniel, ords is going to be faster than comb
01:30 samcv and it's all ascii
01:30 samcv so i'd use .ords and then sort by the number of things it found then print it out as characters
01:32 dalek whateverable: 1ba7473 | (Aleks-Daniel Jakimenko-Aleksejev)++ | Unicodable.p6:
01:32 dalek whateverable: Make Unicodable 9 times faster
01:32 dalek whateverable:
01:32 dalek whateverable: Not sure why would it be so much faster, but whatever. Now every query
01:32 dalek whateverable: runs under one second.
01:32 dalek whateverable: review: https://github.com/perl6/whateverable/commit/1ba747390f
01:33 AlexDaniel u: { .uniname.contains(‘(’) }
01:33 unicodable6 AlexDaniel, U+000C FORM FEED (FF) [Cc] (␌)
01:33 unicodable6 AlexDaniel, U+0085 NEXT LINE (NEL) [Cc] (…)
01:33 unicodable6 AlexDaniel, U+000D CARRIAGE RETURN (CR) [Cc] (␍)
01:33 unicodable6 AlexDaniel, https://gist.github.com/d031ddf8f221742bda6c7adcfee26f2f
01:34 AlexDaniel well, amazing gist
01:35 travis-ci joined #perl6
01:35 travis-ci Doc build failed. Will "Coke" Coleda 'avoid trailing comma before closing paren
01:35 travis-ci https://travis-ci.org/perl6/doc/builds/183135040 https://github.com/perl6/doc/compare/b7f0e9de5929...a103ca242da4
01:35 travis-ci left #perl6
01:38 mawkish joined #perl6
01:39 babydrop that looks like a problem that wishes to be resolved before release :o
01:39 babydrop If only I knew how :(
01:40 samcv ok i can make uniprop 4.5 times faster when not specifying any terms
01:40 samcv idk if that's useful idk
01:41 samcv but 4.5 is a big number. the signature would change though.
01:41 samcv multi sub uniprop(Int:D $code) { } and multi sub uniprop(Int:D $code, Stringy:D $propname) {}, instead of having only one which is multi sub uniprop(Int:D $code, Stringy:D $propname = "General_Category") {}
01:42 babydrop samcv: that's fine. Especially for a 4.5 speed increase :)
01:42 samcv ok
01:42 samcv yes that number is nice
01:43 samcv :)
01:44 SmokeMachine babydrop: should I be using the branch nom?
01:44 babydrop SmokeMachine: yes
01:44 SmokeMachine ok!
01:44 babydrop SmokeMachine: oh wait
01:45 SmokeMachine the clone of my fork only has this branch...
01:45 babydrop SmokeMachine: yes, that's where the code should go, but since you're doing it off your fork, make a branch (git checkout -b whatever-you-want). This way the PR would be in a branch and you're still free to use the nom to make more PRs by doing the same branch-per-fix thing
01:46 SmokeMachine I just committed in the branch... Ill reset...
01:48 samcv added that to my PR
01:48 samcv uniprop 500%-15% faster coming soon to a rakudo near you
01:48 seatek joined #perl6
01:49 samcv that 15% could probably be improved to higher... but i need to look at moar and nqp a little more to optimize that more
01:49 AlexDaniel m: my @props; my @words = ‘<’; my @a; (0..0x1FFFF).grep(-> $z { !@words.first({ not uniname($z).contains($_)}) and !@props.first({uniprop($z) ne $_})})».uniname.sort.squish.say; say now - INIT now
01:49 samcv but i really like that it will return Bool for boolean properties, because getting a 0 or 1 back from uniprop usually makes me think "what the hell does 0 or 1 mean"
01:49 camelia rakudo-moar 0c75e5: OUTPUT«(<CJK Ideograph Extension A> <CJK Ideograph> <Hangul Syllable> <Low Surrogate> <Non Private Use High Surrogate> <Private Use High Surrogate> <Private Use> <Tangut Ideograph> <illegal> <reserved>)␤6.890333␤»
01:49 AlexDaniel does anybody need <> for searching stuff?
01:49 samcv also, it will give you a '0' if you try and lookup an incorrect property :\
01:50 samcv uhm
01:50 samcv you should do:
01:50 samcv like u: type:
01:50 samcv or something, you're trying to get what?
01:51 AlexDaniel well, right now if you do this
01:51 AlexDaniel u: <Hangul Syllable>
01:51 unicodable6 AlexDaniel, U+003C LESS-THAN SIGN [Sm] (<)
01:51 unicodable6 AlexDaniel, U+0061 LATIN SMALL LETTER A [Ll] (a)
01:51 unicodable6 AlexDaniel, U+0048 LATIN CAPITAL LETTER H [Lu] (H)
01:51 unicodable6 AlexDaniel, https://gist.github.com/cb2706555377e8bf4655faabef4b968b
01:51 samcv what do you want to use that for?
01:51 samcv why does it do it per letter :(
01:51 AlexDaniel samcv: because
01:51 AlexDaniel u: ♥∞×「
01:51 unicodable6 AlexDaniel, U+2665 BLACK HEART SUIT [So] (♥)
01:51 unicodable6 AlexDaniel, U+221E INFINITY [Sm] (∞)
01:51 unicodable6 AlexDaniel, U+00D7 MULTIPLICATION SIGN [Sm] (×)
01:51 unicodable6 AlexDaniel, U+FF62 HALFWIDTH LEFT CORNER BRACKET [Ps] (「)
01:52 AlexDaniel people use that to figure out what characters are there (e.g. if they can't see them)
01:52 samcv ah
01:52 samcv ok then just make it not reply back with the characters individually if they use < > i guess
01:52 AlexDaniel now should I treat <> like searchable uniname chars or not?
01:52 Vynce joined #perl6
01:52 AlexDaniel “2 < 8” would then be a lookup by name
01:53 SmokeMachine I think I did something bad!
01:54 samcv what did you do
01:54 samcv oh i got a pull hold on
01:54 SmokeMachine Im sorry! Im not sure, but I think I merged my pull request...
01:54 babydrop SmokeMachine: merged into what?
01:55 babydrop SmokeMachine: BTW did you run `make spectest` to ensure the fix did not break any tests?
01:55 samcv SmokeMachine, that looks fine. also
01:55 SmokeMachine on the roast pull request page theres a button that says "merge pull request", but there are no button on rakudo's pull request...
01:55 samcv not sure but does it test that a negative int doesnt't smart match?
01:55 samcv it may already do that
01:55 SmokeMachine babydrop: no, I didn't!
01:55 SmokeMachine Ill do it now!
01:56 babydrop SmokeMachine: that's because you have commit bit to roast, but not to Rakudo.
01:56 samcv yeah SmokeMachine because you are probably in perl 6 group yes?
01:56 samcv but rakudo is part of rakudo
01:56 samcv /rakudo/rakudo vs perl6/*
01:56 dalek whateverable: 058810b | (Aleks-Daniel Jakimenko-Aleksejev)++ | Unicodable.p6:
01:56 dalek whateverable: Treat dashes and digits as valid chars in uninames
01:56 dalek whateverable:
01:56 dalek whateverable: my %c; for 0..0x1FFFF { %c{$_} = 1 for .uniname.comb }; %c.keys.sort.join.say
01:56 dalek whateverable: OUTPUT:« ()-0123456789<>ABCDEFGHIJKLMNOPQRSTUVWXYZabdeghilnoprstuvwxy»
01:56 dalek whateverable:
01:56 dalek whateverable: I am not including <> and () in the list.
01:56 dalek whateverable: Here is the list of stuff that has () or <> in a uniname:
01:56 dalek whateverable:
01:56 dalek whateverable: <CJK Ideograph Extension A>
01:56 dalek whateverable: <CJK Ideograph>
01:56 dalek whateverable: <Hangul Syllable>
01:56 dalek whateverable: <Low Surrogate>
01:56 dalek whateverable: <Non Private Use High Surrogate>
01:56 dalek whateverable: <Private Use High Surrogate>
01:56 dalek whateverable: <Private Use>
01:56 dalek whateverable: <Tangut Ideograph>
01:56 dalek whateverable: <illegal>
01:56 dalek whateverable: <reserved>
01:56 dalek whateverable:
01:56 dalek whateverable: CARRIAGE RETURN (CR)
01:56 SmokeMachine babydrop: ok! thanks!! its good to read that...
01:56 dalek whateverable: FORM FEED (FF)
01:56 dalek whateverable: LINE FEED (LF)
01:56 dalek whateverable: NEXT LINE (NEL)
01:56 dalek whateverable: review: https://github.com/perl6/whateverable/commit/058810b272
01:57 AlexDaniel dalek: you did a great job!
01:58 SmokeMachine samcv: thats it! thanks!
01:58 unicodable6 joined #perl6
01:59 SmokeMachine (is good to know that I cannot break anything! :P)
01:59 AlexDaniel u: non-breaking space
01:59 unicodable6 AlexDaniel, Found nothing!
02:00 samcv hah funny how 99% of my time i spent getting uniprop responding bool's and working around a moarvm bug, looking at moarvm trying to fix it there. so added those and made it 15% faster. then spent 1% of my time i made it 400% faster with no arguments :\
02:00 AlexDaniel u: t-shirt
02:00 AlexDaniel ?
02:00 AlexDaniel unicodable6: help
02:00 unicodable6 AlexDaniel, U+1F455 T-SHIRT [So] (????)
02:00 unicodable6 AlexDaniel, Just type any unicode character or part of a character name. Alternatively, you can also provide a code snippet or a regex
02:00 samcv u: shirt-t
02:00 unicodable6 samcv, Found nothing!
02:00 samcv u: t shirt
02:00 unicodable6 samcv, U+1F3BD RUNNING SHIRT WITH SASH [So] (????)
02:00 unicodable6 samcv, U+1F455 T-SHIRT [So] (????)
02:01 samcv u: perl
02:01 unicodable6 samcv, Found nothing!
02:01 samcv u: butterfly
02:01 unicodable6 samcv, U+1F98B BUTTERFLY [So] (????)
02:01 AlexDaniel amazing
02:01 samcv yeah it's great
02:01 babydrop u: U+1F98B
02:01 unicodable6 babydrop, U+0055 LATIN CAPITAL LETTER U [Lu] (U)
02:01 unicodable6 babydrop, U+002B PLUS SIGN [Sm] (+)
02:01 unicodable6 babydrop, U+0031 DIGIT ONE [Nd] (1)
02:01 unicodable6 babydrop, https://gist.github.com/f32829d82dc138226643ea5dd3e68f44
02:01 babydrop .u U+1F98B
02:01 yoleaux No characters found
02:01 AlexDaniel ahhhhhhh ffffffffff
02:01 AlexDaniel ok I'll do it real quick
02:01 samcv haha
02:02 AlexDaniel babydrop: any quick way to turn that kind of stuff into a number?
02:02 AlexDaniel ah ok parse-base
02:02 babydrop m: 'U+1F98B'.substr(2).parse-base(16).say
02:02 camelia rakudo-moar 9a161f: OUTPUT«129419␤»
02:03 babydrop SmokeMachine: oh man. I forgot to tell you an important bit, since I have it tucked into my .bashrc file.... `make spectest` uses just one core and will take like half hour to run. You need to set TEST_JOBS=6 (or similar) to make it use all cores at the same time.
02:04 babydrop SmokeMachine: so if you ran just `make spectest`. Just abort it. I'll merge and spectest myself as penance :)
02:04 SmokeMachine aborting...
02:04 babydrop :}
02:04 babydrop Sorry
02:04 babydrop Merged. Thanks. SmokeMachine++
02:05 SmokeMachine \o/
02:05 SmokeMachine np!
02:06 AlexDaniel u: fullwidth 5
02:06 unicodable6 AlexDaniel, Found nothing!
02:06 AlexDaniel u: width 5
02:06 unicodable6 AlexDaniel, Found nothing!
02:06 AlexDaniel u: width five
02:06 unicodable6 AlexDaniel, U+FF15 FULLWIDTH DIGIT FIVE [Nd] (5)
02:06 babydrop u: half zero
02:07 unicodable6 babydrop, U+0F33 TIBETAN DIGIT HALF ZERO [No] (༳)
02:07 babydrop m: say ༳
02:07 camelia rakudo-moar 9a161f: OUTPUT«-0.5␤»
02:07 babydrop I love Perl 6
02:07 AlexDaniel babydrop: I'm still shocked with the performance thing. I can't believe it goes through the whole range so fast
02:07 AlexDaniel let's try something
02:08 babydrop m: eager ^0x20000; say now - INIT now
02:08 camelia rakudo-moar 9a161f: OUTPUT«0.05192592␤»
02:08 babydrop star: eager ^0x20000; say now - INIT now
02:08 camelia star-m 2016.10: OUTPUT«0.0515904␤»
02:08 babydrop m: eager 1..1e5; say now - INIT now
02:08 camelia rakudo-moar 9a161f: OUTPUT«0.55252133␤»
02:08 AlexDaniel commit: 2015.12,HEAD my @props; my @words = <PENGUIN>; my $sieve = 0..0x1FFFF; for @words -> $word { $sieve .= grep({uniname($_).contains($word)}) }; for @props -> $prop { $sieve .= grep({uniprop($_) eq $prop}) }; .uniname.say for @$sieve; say now - INIT now
02:08 babydrop star: eager 1..1e5; say now - INIT now
02:08 committable6 AlexDaniel, ¦«2015.12»: PENGUIN␤0.4030984␤¦«HEAD»: PENGUIN␤0.17087667
02:08 camelia star-m 2016.10: OUTPUT«6.25377204␤»
02:09 AlexDaniel commit: 6c my @props; my @words = <PENGUIN>; my $sieve = 0..0x1FFFF; for @words -> $word { $sieve .= grep({uniname($_).contains($word)}) }; for @props -> $prop { $sieve .= grep({uniprop($_) eq $prop}) }; .uniname.say for @$sieve; say now - INIT now
02:09 babydrop AlexDaniel: ^ you always want things fast, so there's a good improvement :)
02:09 committable6 AlexDaniel, https://gist.github.com/bede8ab36e8cc172f9244353a4cc878d
02:10 babydrop buggable: speed
02:10 buggable babydrop, ▅▃▄▂▁▆▃▂▅▂▄▃█▃▄▄▆▄▅▃▄▃▄▄▃▄▃▃▃▃▄▆▄▄▄▆▃▄▄▃▄▃▆▄▄▅▅▁▂▂ data for 2016-11-16–2016-12-11; variance: 6.238s–7.175s
02:10 AlexDaniel babydrop: there's something magical about 2016.07 and 2016.08… :)
02:10 SmokeMachine babydrop: thank you very much!
02:10 AlexDaniel commit: 6c my @props; my @words = <PENGUIN>; my $sieve = 0..0x1FFFF; for @words -> $word { $sieve .= grep({uniname($_).contains($word)}) }; for @props -> $prop { $sieve .= grep({uniprop($_) eq $prop}) }; .uniname.say for @$sieve; say now - INIT now
02:10 babydrop SmokeMachine: thank you!
02:10 committable6 AlexDaniel, https://gist.github.com/326306b5f203011be6a7be9e8b0850b0
02:10 AlexDaniel babydrop: and that's not noise
02:10 SmokeMachine https://www.irccloud.com/pastebin/wKdgC0sV/
02:13 babydrop Great!
02:17 babydrop AlexDaniel: I think that's when lizmat++ did all the optimizations, but then we lost out some of the improvements due to bug fixes that Made Things Right
02:18 AlexDaniel babydrop: it's almost as fast on HEAD, so not a big deal I guess
02:18 babydrop yeah
02:19 BenGoldberg joined #perl6
02:23 kalkin- joined #perl6
02:24 adu joined #perl6
02:31 unicodable6 joined #perl6
02:31 AlexDaniel u: ü±65
02:31 unicodable6 AlexDaniel, U+0065 LATIN SMALL LETTER E [Ll] (e)
02:31 AlexDaniel babydrop: ↑ :P
02:34 dalek whateverable: 2de413a | (Aleks-Daniel Jakimenko-Aleksejev)++ | Unicodable.p6:
02:34 dalek whateverable: Hack another feature into Unicodable
02:34 dalek whateverable:
02:34 dalek whateverable: Now it accepts queries like “U+65”
02:34 dalek whateverable: review: https://github.com/perl6/whateverable/commit/2de413a420
02:34 mawkish joined #perl6
02:35 labster joined #perl6
02:47 samcv AlexDaniel, should i make a perl 6 module to convert ANSI Terminal colors to IRC colors
02:47 samcv works for 8 colors at least, bold and underline and even background color
02:48 samcv i think maybe it was your bot that printed out color codes or didn't print colors? not sure
02:48 AlexDaniel yes, whateverables have colors disabled
02:48 japhb .
02:48 AlexDaniel samcv: yea. Yea!
02:48 samcv ok
02:49 samcv hah i already have it. should polish it up and publish
02:49 samcv yeah
02:49 japhb .tell tadzik Thank you for adding a version to Terminal-ANSIColor so quickly!
02:49 yoleaux japhb: I'll pass your message to tadzik.
02:49 samcv also you can use it to style a Str as IRCText
02:50 AlexDaniel samcv: hmm, what about this? https://github.com/perl6-community-modules/p6-irc-utils/blob/master/lib/IRC/Utils.pm
02:50 jeek_ joined #perl6
02:51 AlexDaniel no, doesn't help probably
02:51 samcv yeah it only strips
02:51 tadzik japhb: thank you for reporting it :)
02:51 yoleaux 02:49Z <japhb> tadzik: Thank you for adding a version to Terminal-ANSIColor so quickly!
02:52 kyclark joined #perl6
02:53 samcv AlexDaniel, https://github.com/samcv/keira-perl6-ircbot/blob/master/lib/IRC/TextColor.pm6
02:53 samcv this is the module, check it out and let me know if it looks ok
02:53 samcv the ANSI to IRC Text background color works, but i haven't commited creating the background color using irc-text or irc-style
02:54 AlexDaniel I'd also need strip-ansi or something like that
02:54 AlexDaniel for github gists
02:54 samcv ansi::terminal does that
02:54 AlexDaniel ah, okay
02:55 samcv i 'use that module' but i forget what i use it for
03:00 tbrowder magically, the 12 dec p6 advent post appeared at the stroke of 0258 utc, 12 dec!
03:08 mawkish joined #perl6
03:11 noganex joined #perl6
03:14 BenGoldberg joined #perl6
03:19 kyclark joined #perl6
03:26 mawkish joined #perl6
03:32 Vynce joined #perl6
03:38 BenGoldberg joined #perl6
03:39 geekosaur joined #perl6
03:42 nowan joined #perl6
03:46 dalek mu: bce94b6 | (Sterling Hanenkamp)++ | misc/perl6advent-2016/schedule:
03:46 dalek mu: Modifying my topic slightly
03:46 dalek mu:
03:46 dalek mu: Parsing HTTP is going to be more involved than I like. I'm going to stick to something I've already done to demonstrate grammars. I think it will be better anyway.
03:46 dalek mu: review: https://github.com/perl6/mu/commit/bce94b6ab3
03:57 TEttinger joined #perl6
03:57 adu joined #perl6
04:05 BenGoldberg joined #perl6
04:23 bjz joined #perl6
04:33 japhb .tell AlexDaniel Terminal::ANSIColor provides colorstrip() for removing ANSI color sequences from strings.  See https://github.com/tadzik/Terminal-ANSIColor/blob/master/lib/Terminal/ANSIColor.pm#L70 for implementation.
04:33 yoleaux japhb: I'll pass your message to AlexDaniel.
04:59 Ben_Goldberg joined #perl6
05:04 cognominal joined #perl6
05:04 b_ joined #perl6
05:06 Vynce joined #perl6
05:08 mawkish joined #perl6
05:10 mohae_ joined #perl6
05:15 rburkholder joined #perl6
05:24 BenGoldberg joined #perl6
05:30 mawkish joined #perl6
05:32 BenGoldberg joined #perl6
05:46 mawkish joined #perl6
05:47 samcv $*OUT is immutable right?
05:47 samcv yeah i told him that japhb samcv> ansi::terminal does that
05:47 samcv <AlexDaniel> ah, okay
05:50 CIAvash joined #perl6
05:50 Cabanossi joined #perl6
05:58 bjz joined #perl6
06:00 rurban joined #perl6
06:03 mawkish joined #perl6
06:08 mawkish joined #perl6
06:09 Ben_Goldberg joined #perl6
06:15 brillenfux joined #perl6
06:20 brillenfux joined #perl6
06:48 Tonik joined #perl6
06:49 RabidGravy joined #perl6
06:50 darutoko joined #perl6
07:13 domidumont joined #perl6
07:18 TimToady samcv: you can shadow it within a dynamic scope with 'my $*OUT = ...'
07:18 domidumont joined #perl6
07:19 samcv and then calls to print would go there right
07:19 TimToady yup, but you are correct that the version of $*OUT out in PROCESS:: is immutable, or oughta bee
07:19 TimToady *be
07:19 samcv yeah
07:20 samcv kk :)
07:20 samcv https://github.com/rakudo/rakudo/pull/949 this could use more optimizing but at least i made it 25% faster to do print, say or note
07:20 samcv but it looks like we're checking the line ending and concating it every time
07:21 TimToady well, though it looks like you can assign to $*OUT anyway...
07:22 TimToady well, it's not like you can't reopen stdout; I'm probably confusing it with $*PID or so
07:23 TimToady which you certainly can't change
07:23 samcv heh yea
07:25 samcv TimToady, i think there could be a race here https://github.com/rakudo/rakudo/blob/nom/src/core/io_operators.pm#L86
07:25 samcv well if it promppts, the program changes the $*IN
07:25 samcv it can do that right?
07:26 samcv if print takes extra time for whatever reason.. maybe i'm just being paranoid
07:27 ufobat joined #perl6
07:27 samcv adding my $in := $*IN; right after the my $out should be fine right, just to make sure?
07:27 TimToady I suspect it doesn't really matter much; most programs that use prompt aren't going to be that fiddly
07:28 TimToady multi-threaded programs that change $*IN probably deserve slow death in any case
07:28 brrt joined #perl6
07:28 samcv hah
07:45 baest_ -nick baest
07:45 baest sorry :)
07:53 geekosaur joined #perl6
07:56 salva joined #perl6
08:15 abraxxa joined #perl6
08:23 ufobat good morning
08:25 zakharyas joined #perl6
08:27 brillenfux joined #perl6
08:36 AlexDaniel joined #perl6
08:38 rurban joined #perl6
08:39 _28_ria joined #perl6
08:39 masak morning, #perl6
08:40 samcv morning masak
08:40 AlexDaniel ????
08:40 yoleaux 04:33Z <japhb> AlexDaniel: Terminal::ANSIColor provides colorstrip() for removing ANSI color sequences from strings.  See https://github.com/tadzik/Terminal-ANSIColor/blob/master/lib/Terminal/ANSIColor.pm#L70 for implementation.
08:40 AlexDaniel samcv: do you ever sleep?
08:41 samcv it's like 1am here
08:41 samcv so i'll be going to bed soon
08:41 samcv but yes i do
08:41 AlexDaniel ah, okay
08:41 timotimo don't you know sleep is for the week? it's been weekend the last days, so no sleep needed :P
08:44 samcv heh.
08:44 samcv i haven't heard that one before
08:44 samcv i like it though
08:45 samcv well i've heard sleep is for the weak. but i like them both
08:45 * AlexDaniel likes that pull requests from samcv are coming at a constant rate :)
08:45 samcv hah
08:45 samcv me too :)
08:45 wamba joined #perl6
08:46 pierre_ joined #perl6
08:47 AlexDaniel m: say Q⟮hello⟮
08:47 camelia rakudo-moar 99f04e: OUTPUT«hello␤»
08:47 AlexDaniel it's kinda interesting that we do that ↑ before actually supporting some brackets
08:48 samcv ===SORRY!=== Error while compiling:
08:48 samcv Couldn't find terminator ⟯ (corresponding ⟮ was at line 1)
08:48 samcv at line 2
08:48 samcv ;P
08:49 g4 joined #perl6
08:49 AlexDaniel samcv: by the way, why not commit some changes directly?
08:49 samcv idk if you heard me saying a few days ago i went through all unicode chars for Ps or Pi and then located their coorasponding ones by using bags
08:49 samcv oh i could
08:49 samcv i guess. i will merge it if that's fine
08:50 AlexDaniel for example, PR for new brackets also removed trailing whitespace. Perhaps trailing ws change could have been committed directly
08:51 AlexDaniel .oO( remind me again, who was against deleting all trailing ws in all files with one commit? )
08:51 moritz samcv: you should have direct access to most (or all) repos in the perl6 org on github, though we're a bit more conservative with access to rakudo/rakudo
08:52 samcv have i even ever submitted a PR to nqp before? i don't remember
08:52 samcv but yeah i know i have commit access to it
08:52 AlexDaniel well, whatever is more convenient to you
08:53 moritz it's fine to do PRs until you get a good feel for the community and the code
08:53 samcv i usually like to PR when i haven't PR before, even if i have commit access. given it's an active repo
08:54 rindolf joined #perl6
08:54 samcv moritz, i got added to nqp group, did that add commit bit?
08:54 samcv You automatically watched these repositories because you’ve been given push access to them. (email from github)
08:55 samcv wasn't sure which perl6 org repos i had automatic commit to
08:58 AlexDaniel I think all of them
08:58 AlexDaniel or almost all of them :)
08:58 pyrimidine joined #perl6
09:01 moritz samcv: yes, that gave you the nqp commit before. Before you should have had write access to most other perl6 repos
09:03 dalek joined #perl6
09:06 brrt joined #perl6
09:06 Actualeyes joined #perl6
09:16 arnsholt samcv: An alternative to PRs (which I use relatively often for NQP hackery) is a new branch in the NQP repo
09:16 samcv alright. sounds good
09:16 samcv best resource all all things nqp btw? so i can go deeper?
09:17 timotimo don't forget you can still make a PR between two branches in the same repository, too
09:17 samcv yeah I know that
09:17 timotimo have you seen the internals workshop slides?
09:17 samcv i've seen some of them :) they are good
09:17 arnsholt samcv: The best resource for NQP is... #perl6-dev, I suspect
09:17 arnsholt Sadly =(
09:17 timotimo right, that's my number one recommendation for nqp stuff
09:18 arnsholt Yeah, the internals workshop slides are good too
09:18 timotimo i have an easier time with nqp because i spend so much of my time in moarvm recently %)
09:18 arnsholt And the NQP code itself can be pretty helpful
09:18 samcv i was finding that and as i've gotten into rakudo
09:18 arnsholt The Rakudo code can be scarier, but generally not too bad either
09:18 samcv nqp has been easier as i've seen it used and stuff. and it can be very practical to make things faster as i saw in my uniprop changes
09:19 samcv nqp repo better to learn from than rakudo for that reason? less complexity? (i.e. optimizing a complex action so the code looks all over the place)
09:20 arnsholt NQP is easier to follow because NQP is a simpler language, basically
09:20 arnsholt So less complexity, I guess
09:21 timotimo you can make code faster in rakudo by using nqp:: stuff mostly because our static optimizer and code-gen are far from perfect ;(
09:21 arnsholt Yeah, optimization is hard
09:21 arnsholt (Solving halting-equivalent problems in O(1) time, as jnthn++ once put it to me)
09:22 timotimo worst is that those optimizations all sound so easy
09:22 timotimo ... then you sit down in front of the code and realize the true horror of what you were hoping to do
09:22 arnsholt Yeah, it sounds so obviously straightforward to optimize code
09:22 arnsholt And yet it's so hopelessly complicated
09:23 arnsholt At that point, it's useful to keep Rice's theorem in mind
09:23 timotimo damn, that's harsh
09:23 timotimo (just read the TL;DR of it)
09:24 arnsholt Yeah, it's basically the generalized halting problem theorem
09:25 timotimo samcv: i expect you've also already seen the ops.markdown doc in the nqp repository? https://github.com/perl6/nqp/blob/master/docs/ops.markdown
09:25 arnsholt For any non-trivial property P, it's impossible to write a program that identifies programs with the property P
09:25 samcv yeah that is good reference :)
09:25 arnsholt Where a trivial property is one that either all or no programs have
09:25 samcv also been grepping all the source code a lot which is very useful
09:25 samcv and reading all the places something is used etc
09:26 timotimo mhm
09:26 timotimo there's also an important difference between using nqp::blah in rakudo and using the nqp compiler itself
09:27 arnsholt timotimo: decont all the things, you mean? O:)
09:27 timotimo decont is one thing, hllize is the other thing
09:27 arnsholt (And := all the things)
09:27 timotimo nqp itself doesn't have scalar containers
09:27 timotimo and types in nqp-land don't derive from Any
09:28 timotimo and you get hllize calls generated for values crossing nqp-rakudo-borders
09:29 timotimo maybe it's not as important as i thought before i started formulating ...
09:30 samcv rakudo never returns a non object though right
09:30 samcv but it's as i expected if using nqp in rakudo it's fastest to keep sections of the code in one or the other and not go back and forth, well unless performance differences are big
09:31 samcv the static code analyzer is in Moar right
09:32 dakkar joined #perl6
09:32 timotimo no, that's the dynamic one
09:32 psch the static one reshuffles QAST, doesn't it
09:32 timotimo the static optimizer lives in src/Perl6/Optimizer.nqp
09:32 timotimo correct
09:33 samcv ah ok
09:34 timotimo to get a feel for the static optimizer, compare --target=ast with --target=optimize in rakudo (or in nqp; it has its own optimizer)
09:34 timotimo to get a feel for the dynamic optimizer, put a path/filename in MVM_SPESH_LOG and look at the "before" part of "inserting logging information" vs the "finished specialization" blocks for the same frame
09:57 abraxxa joined #perl6
10:00 abraxxa joined #perl6
10:08 abraxxa joined #perl6
10:12 dakkar joined #perl6
10:17 dalek joined #perl6
10:17 rindolf joined #perl6
10:21 espadrine joined #perl6
10:31 thayne joined #perl6
10:31 jonas2 joined #perl6
10:39 samcv m: say Q⟮hello⟮
10:39 camelia rakudo-moar 5d6a8e: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Couldn't find terminator ⟯ (corresponding ⟮ was at line 1)␤at <tmp>:1␤------> 3say Q⟮hello⟮7⏏5<EOL>␤    expecting any of:␤        ⟯␤»
10:40 samcv m: say "a".uniprop('sc')
10:40 camelia rakudo-moar 5d6a8e: OUTPUT«Latin␤»
10:40 samcv nice
10:51 moritz m: say '???? '.uniprop('sc')
10:51 camelia rakudo-moar 5d6a8e: OUTPUT«Imperial_Aramaic␤»
10:53 pmurias joined #perl6
10:53 pmurias arnsholt: re Rice theorem and optimalization, executing programs is undecidable too ;)
10:54 user9 joined #perl6
10:56 * masak .oO( cooking rice is undecidable too )
10:57 samcv night everybody :)
10:57 moritz masak: does your wife agree? :-)
10:57 moritz good night samcv
10:59 Ulti m: words().comb.Bag.say
10:59 camelia rakudo-moar 5d6a8e: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Calling words() will never work with any of these multi signatures:␤    ($what, $limit = Inf, *%named)␤at <tmp>:1␤------> 3<BOL>7⏏5words().comb.Bag.say␤»
11:00 Ulti ^ is that expected?
11:00 Ulti m: lines().comb.Bag.say
11:00 camelia rakudo-moar 5d6a8e: OUTPUT«bag(S(3), p(2), ,(8), I(2), n(64),  (221), a(116), C(2), L(2), c(26), r(48), l(59), E, g(38), á(28), ’(10), b(19), T, !, G(13), s(43), ó(6), M(2), ;(4), m(37), e(41), t(31), i(69), B, .(4), í(13), u(13), A(4), ú(10), h(86), '(4), f(13), N(3), D(10), …»
11:00 timotimo yeah, words doesn't default to $*ARGFILES
11:00 psch m: say &lines.candidates>>.signature
11:00 camelia rakudo-moar 5d6a8e: OUTPUT«(($what = { ... }, $limit = Inf, *%named))␤»
11:11 salparadise joined #perl6
11:12 xxpor joined #perl6
11:28 rindolf joined #perl6
11:30 MARTIMM joined #perl6
11:32 brillenfux_ joined #perl6
11:33 brillenfux__ joined #perl6
11:34 babydrop s: &words
11:34 SourceBaby babydrop, Sauce is at https://github.com/rakudo/rakudo/blob/e25a708/src/core/io_operators.pm#L109
11:34 Woodi hallo #perl6 :)
11:36 babydrop \o
11:38 brillenfux_ joined #perl6
11:39 Woodi more re optimisations: IMO optimisation it also specialisation so it is forking - means dropping some use cases. but extensive specialisation ends like dinosaurs...
11:40 brillenfux__ joined #perl6
11:42 brillenfux joined #perl6
11:44 Woodi ok, backlogging last few days give me idea for some code for promp indicator: my @a = <| / - \ | / - \ >;  say (|@a xx *)[^20];  - should be possible to "shift" such thing one by one when next stage indicator is needed...
11:44 psch isn't that what \r without \n is for
11:45 psch i mean, clearly not with &say cause that prints the \n already
11:45 Woodi but backlogging day or two later there was more ideas! it's should be lazy. more, it shouldn't stay in memory after use! so I need to learn Supplies or it can be done withot it ?
11:46 Woodi psch: no, it needs to clear previous character with ANSI codes and display new :)
11:46 brillenfux_ joined #perl6
11:47 psch Woodi: \r is an ANSI code
11:47 psch oh wait, no, it's ascii
11:48 psch anyway, that's how i remembered doing something like that with perl 5 or python some long time ago :P
11:48 babydrop m: dd <a b c d e>.rotate(2)
11:48 camelia rakudo-moar e25a70: OUTPUT«("c", "d", "e", "a", "b")␤»
12:01 bjz joined #perl6
12:09 gregf_ joined #perl6
12:10 wamba joined #perl6
12:12 ufobat is anyone working on a "better" way to display perl6 profile information? the html version is horrible slow..
12:13 masak ufobat: I've been considering it, but have never sat down to look what can be done.
12:14 masak ufobat: my suspicion is that removing Angular from the equation would speed it up. but it's somewhat unsubstantiated; I haven't tried.
12:14 masak feels like it would be a nice weekend thing to explore.
12:17 pmurias there where plans to port the profiler to Angular 2 to speed it up
12:19 * masak tries very hard not to react to that comment :)
12:22 lucasb joined #perl6
12:23 kalkin- joined #perl6
12:23 babydrop ufobat, next release will see SQL output format
12:24 ufobat masak, okay :-) what do you think about converting the json to static html pages? like NTYProf does?
12:24 kalkin- joined #perl6
12:24 masak ufobat: that sounds like a step in the right direction, yes.
12:25 masak I'm not against JavaScript dynamism as such. but Angular's `ng-repeat` is not a great way to make a page feel performant and snappy.
12:25 ufobat i am just saying because i have not much of a clue of angular and js in browsers and makeing web pretty ;-)
12:25 timeless joined #perl6
12:25 masak the page already looks OK, IMO. no need to change the layout.
12:25 ufobat thats true
12:26 ufobat mhm maybe i find some time :-)
12:35 rurban joined #perl6
12:35 mawkish joined #perl6
12:37 lucasb I always forget... how do I trigger that Seq already consumed error?
12:37 masak lucasb: ...consume a Seq twice? :P
12:38 Urchin joined #perl6
12:38 pmurias masak: isn't Angular 2 supposed to be faster? I have used only Angular 1 (and had performance problems with it)
12:38 Urchin left #perl6
12:38 masak pmurias: it's meant to be faster, yes.
12:38 masak pmurias: I'm a little disenchanted with Angular in general. 1 and 2.
12:39 masak pmurias: it looks a little too indistinguishable from a project that tries to make as much CS terminology as possible stick to the wall.
12:40 moritz m: my \x = gather { take 1; take 2}; .asy for x; .say for x;
12:40 camelia rakudo-moar e1d92e: OUTPUT«No such method 'asy' for invocant of type 'Int'␤  in block <unit> at <tmp> line 1␤␤»
12:40 moritz m: my \x = gather { take 1; take 2}; .say for x; .say for x;
12:40 camelia rakudo-moar e1d92e: OUTPUT«1␤2␤This Seq has already been iterated, and its values consumed␤(you might solve this by adding .cache on usages of the Seq, or␤by assigning the Seq into an array)␤  in block <unit> at <tmp> line 1␤␤»
12:40 moritz lucasb: ^^
12:40 lucasb thanks moritz, masak
12:41 pmurias masak: there wasn't much CS terminology in Angular 1
12:41 masak pmurias: are you kidding me? :D
12:41 masak pmurias: you simply aren't allowed to claim that with a project that has "transclusion" as a non-ironic concept.
12:41 lucasb oh, Seq is not Positional
12:42 masak pmurias: also: constructor, filter, directive, factory, service, dependency injection...
12:43 clkao joined #perl6
12:44 pmurias masak: they didn't have transclusions when I last used it ;)
12:44 masak pmurias: also, scope (in HTML!)
12:45 masak a solid understanding of Angular 1.x's concept of scope requires a decent understanding of JavaScript's concept of object prototypes.
12:45 masak cf. "isolated scope"
12:46 pmurias I like squeezing my thought patterns into the very specific way angular forces you to structure your app
12:46 masak I like structure, too.
12:47 masak but React (for example) can give you structure without overwhelming you with odd edge-cases and a zoo of weird CS-esque terminology
12:51 * pmurias hasn't used React.js only looked it, but it seems to just give you a virtual dom rather then force you into a very specific design pattern
12:52 masak yes, it's basically the library/framework spectrum
12:53 masak you'd have to compare Angular to something like React+Redux or React+Redux+Immutable.js
12:59 jast I've done one project with Angular (1) and I've decided to not use it again
12:59 MasterDuke_ joined #perl6
12:59 jast found some libraries that I liked better, conceptually, but haven't gotten around to finishing a serious project with either... ractivejs and vuejs
13:02 MasterDuke_ ufobat: the Qt based profiler is much faster and can handle larger profiles (but isn't as pretty and i don't believe shows all the info the HTML one does). https://github.com/tadzik/p6profiler-qt/commits/master
13:04 ufobat MasterDuke, ty! :)
13:04 skids joined #perl6
13:07 Spot__ joined #perl6
13:08 MasterDuke_ ufobat: and like babydrop mentioned, next release will have SQL output. it does a lot less for you (you'll have to manually run the queries somewhere to get useful info), but can be used for even larger profiles (e.g., SQLite handled a 13 million line profile just fine)
13:10 canopus joined #perl6
13:14 dalek doc: d174a94 | (Tom Browder)++ | doc/Language/classtut.pod6:
13:14 dalek doc: add clarity (hopefully--please review)
13:14 dalek doc: review: https://github.com/perl6/doc/commit/d174a944eb
13:14 synopsebot6 Link: http://doc.perl6.org/language/classtut
13:15 babydrop tbrowder: that looks off to me
13:15 babydrop tbrowder: there's no difference between core object and user-defined objects in that regard.
13:16 babydrop user-made objects, I should say to avoid that particular confusion.
13:16 babydrop m: class X {}; say X.defined; say X.new.defined
13:16 camelia rakudo-moar af2ff2: OUTPUT«False␤True␤»
13:16 babydrop ^ that's the difference. And it applies the same to both core and user-made stuff
13:16 pyrimidine joined #perl6
13:17 babydrop m: class Z { multi method defined (Z:D:) { False }; multi method defined (Z:U:) { True } }; say X.defined; say X.new.defined;
13:17 camelia rakudo-moar af2ff2: OUTPUT«False␤You cannot create an instance of this type (X)␤  in block <unit> at <tmp> line 1␤␤»
13:17 babydrop m: class Z { multi method defined (Z:D:) { False }; multi method defined (Z:U:) { True } }; say Z.defined; say Z.new.defined;
13:17 camelia rakudo-moar af2ff2: OUTPUT«True␤False␤»
13:17 tbrowder well, can you improve the original wording?
13:17 babydrop tbrowder: ^ and that's how it can be changed
13:18 babydrop tbrowder: the old version looks OK to me, TBH
13:19 tbrowder i dunno, seems a tad confusing...
13:19 jast I'm not familiar with the concepts involved here, but given the demonstrations just now it seems like maybe the original docs could benefit from some additions instead of re-wordings
13:20 * babydrop knows too much to be able to contribute in a meaningful way
13:20 dalek doc: 88240a9 | (Tom Browder)++ | doc/Language/classtut.pod6:
13:20 dalek doc: go back to original
13:20 dalek doc: review: https://github.com/perl6/doc/commit/88240a9fe9
13:20 synopsebot6 Link: http://doc.perl6.org/language/classtut
13:20 babydrop m: Failure.new.defined.say
13:20 camelia rakudo-moar af2ff2: OUTPUT«False␤»
13:21 babydrop m: Nil.new.defined.say
13:21 camelia rakudo-moar af2ff2: OUTPUT«False␤»
13:21 babydrop I think these are the only two core ones that are not defined when instantiated
13:21 babydrop s: Nil, 'defined', \()
13:21 SourceBaby babydrop, Something's wrong: ␤ERR: Unhandled exception: Missing or wrong version of dependency 'src/Perl6/Grammar.nqp' (from 'gen/moar/main.nqp')␤   at <unknown>:1  (/home/zoffix/services/sourceable/building-perl6/perl6.moarvm:<dependencies+deserialize>)␤
13:22 travis-ci joined #perl6
13:22 travis-ci Doc build failed. Tom Browder 'add clarity (hopefully--please review)'
13:22 travis-ci https://travis-ci.org/perl6/doc/builds/183243103 https://github.com/perl6/doc/compare/a103ca242da4...d174a944eb22
13:22 travis-ci left #perl6
13:23 babydrop m: sub (Failure:D) { say "wee" }(Failure.new)
13:23 camelia rakudo-moar af2ff2: OUTPUT«wee␤»
13:23 babydrop neat
13:24 babydrop "You can use this method to find out if a given object is a type object or not"
13:24 babydrop I guess that's not 100% accurate...
13:27 jast it seems almost accurate enough for a tutorial
13:27 babydrop there's not much (any?) difference between an Int and Foo type objects. class Foo {} makes the Foo and class Int does Real {} makes an Int ( https://github.com/rakudo/rakudo/blob/nom/src/core/Int.pm#L8 )
13:27 babydrop m: Failure.new.DEFINITE.say
13:27 camelia rakudo-moar af2ff2: OUTPUT«True␤»
13:27 babydrop That's the way to see if it's a type object or not.
13:28 babydrop m: say Failure.new ~~ Failure:D
13:28 camelia rakudo-moar af2ff2: OUTPUT«True␤»
13:28 babydrop and that too
13:31 mawkish joined #perl6
13:35 beatdown joined #perl6
13:36 dalek doc: a516adf | (Zoffix Znet)++ | doc/Language/classtut.pod6:
13:36 dalek doc: Clairfy type object/instance .defined thing
13:36 dalek doc:
13:36 dalek doc: Toss .defined and use better methods
13:36 dalek doc: review: https://github.com/perl6/doc/commit/a516adf81b
13:36 synopsebot6 Link: http://doc.perl6.org/language/classtut
13:37 babydrop No idea where type smileys are documented... that paragraph could use a link to them
13:38 girafe joined #perl6
13:39 maxp_ joined #perl6
13:39 babydrop tbrowder: if that doesn't clarify everything, please open an Issue on docs or figure out how to clarify :)
13:41 mawkish joined #perl6
13:47 travis-ci joined #perl6
13:47 travis-ci Doc build failed. Zoffix Znet 'Clairfy type object/instance .defined thing
13:47 travis-ci https://travis-ci.org/perl6/doc/builds/183248892 https://github.com/perl6/doc/compare/88240a9fe902...a516adf81b14
13:47 travis-ci left #perl6
13:47 wamba joined #perl6
13:47 Actualeyes joined #perl6
13:48 tbrowder much better--thanks!  is it true that the newly user-defined class object and instance are treated no differently than a built-in class and instance as far as rakudo knows?
13:49 moritz yes
13:49 prammer joined #perl6
13:49 mawkish joined #perl6
13:49 moritz many of the built-in classes are in no way special
13:49 tbrowder i think that needs to be added to the doc chunk in question
13:49 moritz only very few are bootstrapped early, or use special REPRs, or magic like that
13:50 kyclark joined #perl6
14:03 suman joined #perl6
14:04 babydrop m: class Int {}; say 42
14:04 camelia rakudo-moar af2ff2: OUTPUT«===SORRY!===␤This type cannot box a native integer: P6opaque, Int␤»
14:04 prammer joined #perl6
14:05 suman Hi everyone, I am a R user(https://www.r-project.org/) and do regular data analysis and graphics work with it. To compare, how good is Perl 6 for data analysis and graphics.
14:05 suman What is the work going on in Perl 6 for data analysis?
14:05 babydrop m: class Set {}; set(<a b c f g>).^name.say
14:05 camelia rakudo-moar af2ff2: OUTPUT«Set␤»
14:05 babydrop well, that's... interesting.
14:05 suman Analytics languages are getting popular these days. And will perl 6 fill that vacuum?
14:06 psch m: say &set
14:06 camelia rakudo-moar af2ff2: OUTPUT«sub set (*@a --> Set) { #`(Sub+{Callable[Set]}|76961288) ... }␤»
14:06 masak babydrop: Perl 6 allows several things with the same name to co-exist.
14:06 babydrop masak: sure, but it choked on the Int one
14:06 masak ah.
14:07 babydrop m: class Int {}; say 42e0.Int.^name.say
14:07 camelia rakudo-moar af2ff2: OUTPUT«===SORRY!===␤This type cannot box a native integer: P6opaque, Int␤»
14:07 babydrop eh, whatever :)
14:07 arnsholt babydrop: Your definition of a class Set isn't in the lexical scope of the definition of sub set, so it doesn't impact it
14:07 arnsholt At a guess, the 42 literal desugars into something that does a lexical access for Int
14:08 babydrop arnsholt: makes sense. But what about that last eval? My definition of .Int method isn't in scope either
14:08 arnsholt Don't coercers do horrible, horrible namespacing things?
14:08 babydrop s: 42e0, 'Int'
14:08 SourceBaby babydrop, Sauce is at https://github.com/rakudo/rakudo/blob/af2ff23/src/core/Num.pm#L21
14:09 suman Hi everyone, I am a R user(https://www.r-project.org/) and do regular data analysis and graphics work with it. To compare, how good is Perl 6 for data analysis and graphics. What is the work going on in Perl 6 for data analysis?Analytics languages are getting popular these days. And will perl 6 fill that vacuum?
14:09 arnsholt ISTR something about methods sharing a name with a type being special
14:09 babydrop :o
14:09 babydrop ISTR methods sharing a name with a type are just method and the name is just a convention...
14:09 arnsholt Of course, that could be a proposed design change that didn't hapapen
14:10 cdg joined #perl6
14:10 babydrop suman: I don't know.
14:10 masak suman: not really sure how to answer your question.
14:10 masak suman: I've done some graphics with Perl 6. depending how you define it, also some data analysis.
14:10 masak suman: but I'm not in the business of filling any vacuums. ;)
14:10 arnsholt babydrop: It never gets to the method call
14:11 arnsholt m: class Int {}; say 42.0;
14:11 camelia rakudo-moar af2ff2: OUTPUT«===SORRY!===␤This type cannot box a native integer: P6opaque, Int␤»
14:11 babydrop m: class Int {}; say 42e0;
14:11 camelia rakudo-moar af2ff2: OUTPUT«===SORRY!===␤This type cannot box a native integer: P6opaque, Int␤»
14:11 babydrop Well, that's interesting.
14:11 arnsholt --ll-exception shows the crash in  src/Perl6/World.nqp:2601
14:11 babydrop I think it builds it out of Ints?
14:12 babydrop m: class Int {}; say 42e306;
14:12 camelia rakudo-moar af2ff2: OUTPUT«===SORRY!===␤This type cannot box a native integer: P6opaque, Int␤»
14:12 masak m: class Int {}; say "OH HAI"
14:12 camelia rakudo-moar af2ff2: OUTPUT«===SORRY!===␤This type cannot box a native integer: P6opaque, Int␤»
14:12 masak ...everything's made of Ints
14:12 babydrop lulz
14:12 masak m: class Int {}; say Nil
14:12 camelia rakudo-moar af2ff2: OUTPUT«===SORRY!===␤This type cannot box a native integer: P6opaque, Int␤»
14:12 babydrop m: class Int {};
14:12 camelia rakudo-moar af2ff2: OUTPUT«===SORRY!===␤This type cannot box a native integer: P6opaque, Int␤»
14:13 suman masak: what are the packages you have used for graphics and data analysis?
14:13 arnsholt I suspect there's some kind of pre-population of constants going on
14:13 psch m: class Str { }; say "foo"
14:13 camelia rakudo-moar af2ff2: OUTPUT«===SORRY!===␤This type cannot box a native string: P6opaque, Str␤»
14:13 * psch guesses something about 'is box_target' and the corresponding nqp ops
14:14 arnsholt Hee hee
14:14 masak suman: I've mostly been generating SVG. I know there is at least one charting library in the module ecosystem.
14:14 arnsholt babydrop: I think it might be the code that annotates with line numbers =)
14:14 psch m: class Num { }; say 0e0
14:14 camelia rakudo-moar af2ff2: OUTPUT«===SORRY!===␤This type cannot box a native number: P6opaque, Num␤»
14:14 babydrop Ah :)
14:14 psch m: class Complex { }; say i
14:14 camelia rakudo-moar af2ff2: OUTPUT«0+1i␤»
14:16 suman I think  we need atleast one such "grammar of graphics" module to create elegant graphics just like ggplot2(http://docs.ggplot2.org/current/).
14:16 arnsholt babydrop: Actually not. It's binding the signature of the como unit that triggers the call to add_constant
14:17 suman masak: I think  we need atleast one such "grammar of graphics" module to create elegant graphics just like ggplot2(http://docs.ggplot2.org/current/).
14:17 arnsholt But the line that dies goes through box_i
14:17 babydrop suman: looks neat. Make it! :)
14:19 masak what babydrop said. suman, let us know what you need :)
14:19 xiaomiao joined #perl6
14:20 Actualeyes joined #perl6
14:23 khw joined #perl6
14:24 shadowpaste0 joined #perl6
14:25 * babydrop repo-ed the doc travis build failure on second try :o
14:25 babydrop A panic... someone from space is stealing our collectables...
14:25 babydrop "MoarVM panic: Collectable 0x7fa386cec8f8 in fromspace accessed"
14:26 masak reminds me of a recent GC blog post by jnthn++
14:28 jnthn Huh, that message should only show up if you've got a build with MVM_GC_DEBUG enabled...do you?
14:29 babydrop I've no idea...
14:29 jnthn You'd have to do have done it manually
14:29 babydrop update-perl6 is aliased to `rm -fr ~/.zef; rm -fr ~/.perl6; rm -fr ~/.rakudobrew/; git clone https://github.com/tadzik/rakudobrew ~/.rakudobrew; rakudobrew build moar; rakudobrew build zef;'
14:29 babydrop And well... we also have it show up on travis
14:29 jnthn o.O
14:29 jnthn wat
14:29 jnthn Ohhh
14:30 babydrop https://travis-ci.org/perl6/doc/builds/183248892#L1224
14:30 jnthn D'oh :)
14:30 babydrop ?
14:30 jnthn The message does indicate a legit bug, but yes, the (harmless, just not cheap) check should not have been compiled in by default.
14:30 * jnthn forgot that one macro was not conditionally defined
14:31 jnthn Please file me an RT about it
14:31 babydrop OK
14:31 jnthn There's actually two issues, one (harmless) is that a debugging-mode sanity check has escaped into non-debug builds.
14:31 jnthn The fact it actually trips up, however, shows a legit issue
14:32 babydrop RT#130327
14:32 synopsebot6 Link:  https://rt.perl.org/rt3//Public/Bug/Display.html?id=130327
14:32 tbrowder i'm trying to add a new sentence in the class tutorial but can't quite get the right words.  something like: "Note that a user-defined class is treated the same as a built-in class in Perl 6, i.e.,  they have equal status."
14:33 tbrowder suggestions, please
14:35 tbrowder BTW, after my shaky Advent experience, I plan to work on a P6 alternative if that is not seen as a waste of time.
14:37 babydrop A web app written in P6?
14:38 * babydrop is dubious of its stability to serve the Advent
14:39 skids joined #perl6
14:39 jnthn We've got a year :)
14:39 babydrop True :)
14:41 perlpilot babydrop: How does that bode for others who want to use P6?  ;)
14:41 prammer joined #perl6
14:41 babydrop perlpilot: um... the same way?
14:42 babydrop c'mon, you can't ask me that question when a few lines above you have a travis telling us about a VM crash :)
14:42 babydrop But we've got a year :)
14:43 perlpilot okay  :-)
14:44 dalek doc: fe2a8bb | coke++ | doc/Language/classtut.pod6:
14:44 dalek doc: remove trailing whitespace
14:44 dalek doc: review: https://github.com/perl6/doc/commit/fe2a8bbff5
14:44 synopsebot6 Link: http://doc.perl6.org/language/classtut
14:47 prammer joined #perl6
14:48 pierre_ joined #perl6
14:50 kalkin- the current advent is not posted at r/perl6
14:50 lizmat jnthn: re RT#130327, does that apply to all current default builds of rakudo on Moar ?
14:50 synopsebot6 Link:  https://rt.perl.org/rt3//Public/Bug/Display.html?id=130327
14:52 babydrop kalkin-: thanks for the reminder
14:52 kalkin- I would have posted myself, but I don't have a reddit account
14:53 wisti joined #perl6
14:54 jnthn lizmat: The debug check? Yes.
14:54 travis-ci joined #perl6
14:54 travis-ci Doc build failed. Will "Coke" Coleda 'remove trailing whitespace'
14:54 travis-ci https://travis-ci.org/perl6/doc/builds/183267276 https://github.com/perl6/doc/compare/a516adf81b14...fe2a8bbff595
14:54 travis-ci left #perl6
14:54 jnthn lizmat: So if you're seeing a slight slowdown that's probably why :)
14:55 jnthn (Though it's only a small number of checks that have leaked in, not the whole lot, so it may be hard to even measure)
14:55 jnthn (Especially because JITted code elides them)
14:55 mawkish joined #perl6
14:56 lizmat I guess we'll notice soon  :-)
15:00 kurahaupo joined #perl6
15:01 suman masak: I need some module like ggplot2 for Perl 6 to create graphics for data analysis work.
15:03 mawkish joined #perl6
15:04 masak grrr... I wanted to Ctrl+F search http://modules.perl6.org/, but the in-page search box stole the focus from my Ctrl+F search!
15:06 MasterDuke_ suman: i've used both https://github.com/moritz/svg-plot natively in Perl 6 and Chart::Gnuplot via Inline::Perl5
15:07 AlexDaniel joined #perl6
15:08 andrzejku joined #perl6
15:08 andrzejku huh fixed over 1000 lines code perl script in 1h ;D
15:09 andrzejku not maintained since 2011
15:10 babydrop masak: clearly it's your own fault for using the website wrong! :)
15:12 prammer joined #perl6
15:13 rurban joined #perl6
15:16 espadrine joined #perl6
15:21 perlpilot It would be neat if we had something like http://perladvent.org/2016/2016-12-01.html too
15:22 prammer joined #perl6
15:26 moritz sounds doable, if there's a command that turns a text-based description into the image
15:27 moritz ah, it uses plantuml
15:30 sena_kun joined #perl6
15:31 tbrowder joined #perl6
15:36 tbrowder when i say a p6 advent website i see mostly a static site with apache serving. any dynamic pages can be by anything p6 that works, including cgi (i have site stats sqlite3 db updated and presented by p6 cgi progs working pretty well, but need some love).
15:37 pierre_ joined #perl6
15:38 babydrop That means you're going to be generating it on each change, which is a PITA to web dev on
15:39 tbrowder i'm looking at some responsive grid systems for layout and so far i like the responsivegridsystem.com.
15:39 babydrop ehehe
15:40 babydrop Well, all of our other "responsive" websites use bootstrap.
15:40 w4and0er96 joined #perl6
15:41 FROGGS joined #perl6
15:41 tbrowder PITA? i'm not sure it will be that bad.  no different than compile and test. the basic stuff i think will be fairly easy to do and change stuff pretty automated.  PITA: working on wordpress!
15:41 babydrop heh
15:42 babydrop .oO( so young... so naive... )
15:42 tbrowder young at heart, maybe :)
15:42 babydrop The wordpress problem: we have one assigned Editor. People give them the articles. The editor uses a script to load stuff on wordpress. Problem solved.
15:43 * moritz just wrote his stuff in markdown, converted it to HTML, copy&pasta'd into the wordpress editor, done
15:43 perlpilot tbrowder: don't let babydrop discourage you!  :-)  If nothing else, you'll get a good blog post or two out of it  ;)
15:43 tbrowder ok, just sayin'
15:44 babydrop perlpilot: well, we could also get an advent system with no one to maintain its codebase ;)
15:45 babydrop RabidGravy: how's your post coming along? You're supposed to publish in ~9 hours
15:48 Woodi here is nice looking graph app for Eve Online players, ~40 Node plugins, 50 "self writen jQuery plugins" :)  but looks nice!
15:48 jdmmmmm joined #perl6
15:48 Woodi url is https://www.pathfinder-w.space/  :)
15:49 lucasb m: my \a = gather { .take for ^5 }; say a; say a
15:49 camelia rakudo-moar aa27d5: OUTPUT«(0 1 2 3 4)␤(0 1 2 3 4)␤»
15:49 andrzejku Woodi, it is did in Perl?
15:50 Woodi no, php :)
15:50 lucasb ^^ why the snippet doesn't trigger the seq consumed thing?
15:50 moritz lucasb: because say calls .gist, and .gist uses .cache internally
15:51 lucasb but... it generates twice?
15:52 lucasb is there an .is-cached method? or how to know when it has been consumed or not
15:52 moritz no, it only generates it once, and transparently stores it
15:52 moritz m: my \a = gather { .take for ^5 }; say a.cache.perl; say a.cache
15:52 camelia rakudo-moar 5556b3: OUTPUT«(0, 1, 2, 3, 4)␤(0 1 2 3 4)␤»
15:54 Woodi m: my @a = | <| / - \ | / - \ > xx *; say shift @a;  # works
15:54 camelia rakudo-moar 5556b3: OUTPUT«|␤»
15:54 lucasb moritz: I understood (kind of), thanks!
15:54 Woodi but if I give it parens it don't work...
15:54 Woodi m: my @a = | (<| / - \ | / - \ > xx *); say shift @a;  # works
15:54 camelia rakudo-moar 5556b3: OUTPUT«(| / - \ | / - \)␤»
15:55 Woodi '|' is not proper operator ?
15:55 perlpilot m:  my \a = gather { .take for ^5 }; put a; put a;
15:55 camelia rakudo-moar 5556b3: OUTPUT«0 1 2 3 4␤0 1 2 3 4␤»
15:56 babydrop Woodi: because then you're slipping the generated seq and not the <...> bits
15:57 babydrop s: (|^3).Seq, 'Str', \()
15:57 SourceBaby babydrop, Sauce is at https://github.com/rakudo/rakudo/blob/aa27d5c/src/core/Seq.pm#L131
15:58 AlexDaniel SourceBaby: help
15:58 SourceBaby AlexDaniel, Use s: trigger with args to give to sourcery sub. e.g. s: Int, 'base'. See http://modules.perl6.org/dist/CoreHackers::Sourcery
15:59 babydrop Object ((|^3).Seq), String with method name ('Str'), Args in a capture (\())
15:59 Woodi babydrop: can that damn thing take named args or something ? ;)
15:59 babydrop Woodi: what damn thing?
16:00 Woodi SourceBaby :)
16:00 babydrop No
16:03 AlexDaniel moritz: hey, is there any way to get all IRC logs for this channel for the last year or so? I mean, of course I can scrap /text links, but I thought maybe you have something to offer :)
16:04 pyrimidine joined #perl6
16:04 moritz AlexDaniel: there's JSON export
16:04 sena_kun Where can I read how method(on metamodel level)(code object, etc) defined? Its attributes, for example. MethodContainer is not right thing to read as it seems.
16:04 moritz AlexDaniel: but I forgot how it worked :-) maybe just try sending an Accepts: application/json header when asking for the page
16:06 moritz AlexDaniel: https://github.com/moritz/ilbot/blob/master/ilbot.psgi#L69 yes, that seems to be the case
16:06 AlexDaniel okay
16:06 AlexDaniel thanks
16:07 ugexe RabidGravy: nige: tadzik: nkh: SmokeMachine: AlexDaniel: ab5tract: hey if any of you will have your post ready by the 16th would you possibly be willing to switch with me? It will allow me to go over lexical module loading, which won't be added until right after the next release
16:08 AlexDaniel ugexe: I don't think I will be ready that soon (I have a really busy week right now)
16:09 bdmatatu joined #perl6
16:10 ugexe i figure we're all the procrastinators so i'm not counting on it :)
16:11 moritz the others registered for the first half of December :-)
16:17 Xliff \o
16:18 Xliff If I wanted to create a dynamic grammar, how would I go about doing that? Are there examples on the web of this?
16:18 SmokeMachine ugexe: mine isn't done yet... I'm sorry...
16:18 Xliff Primarily, I would like to keep a pattern in a scalar, and then have the grammar use that scalar in a regex.
16:21 psch m: my $x = '\d'; say "5" ~~ /<$x>/
16:21 camelia rakudo-moar 5556b3: OUTPUT«「5」␤»
16:22 Xliff Ah...
16:22 Xliff psch++
16:22 Xliff What if I wanted to write an expression, there?
16:22 Xliff (... warning... rabbit hole sighted...)
16:23 psch m: my $x = '\d { "foo"~"bar" }'; say "5foobar" ~~ /<$x>/
16:23 camelia rakudo-moar 5556b3: OUTPUT«5===SORRY!5=== Error while compiling /home/camelia/EVAL_0␤Prohibited regex interpolation (use the MONKEY-SEE-NO-EVAL pragma to override this error,␤but only if you're VERY sure your data contains no injection attacks)␤at /home/camelia/EVAL_0:1␤…»
16:23 psch gotta monkey then :P
16:23 Xliff m: my @x = <a b c d>; say "abb" ~~ /< @x.join('|') >/
16:23 camelia rakudo-moar 5556b3: OUTPUT«Nil␤»
16:24 Xliff m: my @x = <a b c d>; say "abb" ~~ m:g/< @x.join('|') >/
16:24 camelia rakudo-moar 5556b3: OUTPUT«()␤»
16:24 Xliff m: my @x = <a b c d>; say "abb" ~~ m:g/< @x.join('||') >/
16:24 camelia rakudo-moar 5556b3: OUTPUT«()␤»
16:24 babydrop m: my @x = <a b c d>; say "abb" ~~ m:g/@x/
16:24 camelia rakudo-moar 5556b3: OUTPUT«(「a」 「b」 「b」)␤»
16:24 Xliff Oh!
16:24 Xliff :D
16:25 * Xliff kicks that MONKEY off his back.
16:25 Xliff How would that go into a regex or a token?
16:26 babydrop Just like that
16:26 Xliff OK, thanks.
16:27 babydrop m: grammar { has @.stuff; token TOP { [@.stuff]+ } }.new(:stuff<a b c d>).parse('abb').say
16:27 camelia rakudo-moar 5556b3: OUTPUT«Nil␤»
16:27 * babydrop shrugs
16:27 babydrop m: grammar { has @.stuff; token TOP { [@.stuff]+ $ } }.new(:stuff<a b c d>).parse('abb').say
16:27 camelia rakudo-moar 5556b3: OUTPUT«Nil␤»
16:28 jnthn Remember that the grammar class serves as your cursor type and thus has a fresh instance per token/rule
16:28 babydrop oh
16:28 Xliff m: grammar { has @.stuff; token TOP { [@.stuff]+ $ } }.new(:stuff((<a b c d>)).parse('abb').say
16:28 camelia rakudo-moar 5556b3: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Unable to parse expression in argument list; couldn't find final ')' ␤at <tmp>:1␤------> 3new(:stuff((<a b c d>)).parse('abb').say7⏏5<EOL>␤»
16:28 babydrop m: grammar { my @.stuff; token TOP { [@.stuff]+ $ } }.new(:stuff<a b c d>).parse('abb').say
16:28 camelia rakudo-moar 5556b3: OUTPUT«Nil␤»
16:28 babydrop heh :) Oh well
16:28 Xliff m: grammar { has @.stuff; token TOP { [@.stuff]+ $ } }.new(:stuff(<a b c d>).parse('abb').say
16:28 camelia rakudo-moar 5556b3: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Unable to parse expression in argument list; couldn't find final ')' ␤at <tmp>:1␤------> 3}.new(:stuff(<a b c d>).parse('abb').say7⏏5<EOL>␤»
16:29 Xliff m: grammar { has @.stuff; token TOP { [@.stuff]+ $ } }.new(:stuff(<a b c d>)).parse('abb').say
16:29 camelia rakudo-moar 5556b3: OUTPUT«Nil␤»
16:29 Xliff Ah well. Enough to experiment with. babydrop++
16:30 Xliff jnthn: Are there docs that go into that particular issue in detail?
16:30 Xliff I have yet to deal with Cursors.
16:31 xxpor joined #perl6
16:31 jnthn Not sure. S05 perhaps talks some about it.
16:31 Xliff Ah. Thanks.
16:33 sufrostico joined #perl6
16:36 perlpilot m: my $g = grammar { has @.stuff; token TOP { ^ {say @.stuff} .* $ } }.new(:stuff(<a b c d>)); say $g.parse('abb'); say $g.stuff;
16:36 camelia rakudo-moar 555871: OUTPUT«[]␤「abb」␤[a b c d]␤»
16:37 Xliff So no @.stuff when we get to TOP
16:38 jnthn Righty, 'cus the first thing TOP does is cursor_start or so, which in turn does self.CREATE
16:39 jnthn *Right
16:40 psch well, if a grammar is supposed to be dynamic having to .new it maybe isn't that bad a pattern
16:40 djbkd joined #perl6
16:41 Xliff does self.CREATE call self.BLESS?
16:41 jnthn No, it's the lower-level one
16:41 Xliff Er. BUILD, rather
16:41 jnthn There's no way we can afford to full build cycle in every single token/rule :)
16:42 Xliff kk
16:43 Xliff So... need to figure out a way to cheat...
16:43 jnthn The typical way is to use dynvars
16:43 jnthn Or rule parameters
16:43 psch oh, right, we have those too
16:43 psch well, it depends on the goal i suppose
16:43 psch i mean, a bunch of dynvars wouldn't be the greatest interface for a module
16:44 jnthn Yet another way is to write your grammar is a parametric role :)
16:44 jnthn *in a
16:46 babydrop Any trick for generating 2-item permutations out of 4-item list?
16:46 babydrop m: ('--', '-+', '+-', '++').permutations(2).say
16:46 camelia rakudo-moar 555871: OUTPUT«Cannot resolve caller permutations(List: Int); none of these signatures match:␤    (List $: *%_)␤  in block <unit> at <tmp> line 1␤␤»
16:47 babydrop m: ('--', '-+', '+-', '++').combinations(2).say
16:47 camelia rakudo-moar 555871: OUTPUT«((-- -+) (-- +-) (-- ++) (-+ +-) (-+ ++) (+- ++))␤»
16:47 babydrop Like this one almost does what I want, but it's missing reverse combinations, like -+, --
16:47 babydrop or -- --, for that matter
16:47 psch so combinations of 2 items from all the permutations of each item in the original list?
16:48 psch oh, no
16:48 * psch didn't pay enough attention apparently
16:48 Xliff dynvars and rule parameters. Will try and find docs on those.
16:49 psch well, permutations are always without putting items back
16:49 babydrop m: sub comb ($a, $b) { "$a $b" }; say comb '--'|'-+'|'+-'|'++', '--'|'-+'|'+-'|'++'
16:49 camelia rakudo-moar 555871: OUTPUT«any(any(-- --, -- -+, -- +-, -- ++), any(-+ --, -+ -+, -+ +-, -+ ++), any(+- --, +- -+, +- +-, +- ++), any(++ --, ++ -+, ++ +-, ++ ++))␤»
16:49 babydrop that'll do in a pinch :)
16:51 psch right, so @a X @a
16:51 psch m: my @a = ('--', '-+', '+-', '++'); say @a X @a
16:51 camelia rakudo-moar 555871: OUTPUT«((-- --) (-- -+) (-- +-) (-- ++) (-+ --) (-+ -+) (-+ +-) (-+ ++) (+- --) (+- -+) (+- +-) (+- ++) (++ --) (++ -+) (++ +-) (++ ++))␤»
16:51 babydrop m: say <-- -+ +- ++> X <-- -+ +- ++>
16:51 camelia rakudo-moar 555871: OUTPUT«((-- --) (-- -+) (-- +-) (-- ++) (-+ --) (-+ -+) (-+ +-) (-+ ++) (+- --) (+- -+) (+- +-) (+- ++) (++ --) (++ -+) (++ +-) (++ ++))␤»
16:51 babydrop oh cool. psch++
16:51 * psch was somewhat mislead by "permutations" there
16:52 babydrop :)
16:53 skids joined #perl6
17:05 cibs joined #perl6
17:07 AlexDaniel m: my @a = <- +>; say ((@a X @a) X (@a X @a))
17:07 camelia rakudo-moar 555871: OUTPUT«(((- -) (- -)) ((- -) (- +)) ((- -) (+ -)) ((- -) (+ +)) ((- +) (- -)) ((- +) (- +)) ((- +) (+ -)) ((- +) (+ +)) ((+ -) (- -)) ((+ -) (- +)) ((+ -) (+ -)) ((+ -) (+ +)) ((+ +) (- -)) ((+ +) (- +)) ((+ +) (+ -)) ((+ +) (+ +)))␤»
17:09 babydrop AlexDaniel: I got a present for you.
17:09 AlexDaniel yay!
17:09 babydrop m: say <-0-0i>
17:09 camelia rakudo-moar 555871: OUTPUT«-0+-0i␤»
17:09 AlexDaniel ohhhh not again
17:09 pierre_ joined #perl6
17:10 babydrop ^_^
17:10 AlexDaniel why this <…i> thing again
17:10 AlexDaniel babydrop: you know, it's not going to end!
17:10 babydrop It will :)
17:11 babydrop In fact, I bet if we bisect, we'll find a commit where I taught neg zero handling to something or other
17:11 babydrop bisectable6: say <-0-0i>
17:11 bisectable6 babydrop, On both starting points (old=2015.12 new=5558710) the exit code is 0 and the output is identical as well
17:11 bisectable6 babydrop, Output on both points: -0+-0i
17:11 AlexDaniel commit: all say <-0-0i>
17:11 babydrop Oh :) Sweet, not my fault then :P
17:11 committable6 AlexDaniel, https://gist.github.com/11bfba9c25853e06c2c6abb3fe3d7cf0
17:12 babydrop But a wild guess is the codepath checks if $i < 0 and sticks "+$i" otherwise :)
17:13 AlexDaniel babydrop: so now what? You want me to ticket it?
17:13 babydrop Umm.. sure :)
17:20 wamba joined #perl6
17:22 AlexDaniel RT #130329
17:22 synopsebot6 Link:  https://rt.perl.org/rt3//Public/Bug/Display.html?id=130329
17:22 AlexDaniel the title is messed up
17:23 AlexDaniel ok
17:24 babydrop AlexDaniel++ thanks
17:24 AlexDaniel m: say 0b000l01
17:24 camelia rakudo-moar 555871: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Confused␤at <tmp>:1␤------> 3say 0b0007⏏5l01␤»
17:25 AlexDaniel babydrop: perhaps that's a ticket for you :) RT #125684
17:25 synopsebot6 Link:  https://rt.perl.org/rt3//Public/Bug/Display.html?id=125684
17:27 AlexDaniel bisect: .say for Inf..0
17:27 bisectable6 AlexDaniel, On both starting points (old=2015.12 new=5558710) the exit code is 0 and the output is identical as well
17:27 bisectable6 AlexDaniel, Output on both points:
17:28 AlexDaniel bisect: 2015.07 .say for Inf..0
17:28 bisectable6 AlexDaniel, On both starting points (old=2015.12 new=5558710) the exit code is 0 and the output is identical as well
17:28 bisectable6 AlexDaniel, Output on both points:
17:28 AlexDaniel bisect: old=2015.07 .say for Inf..0
17:28 AlexDaniel yeah… that's what I'm looking for
17:29 AlexDaniel there's another ticket that seems to be resolved
17:29 djbkd joined #perl6
17:30 andreoss joined #perl6
17:31 bisectable6 joined #perl6
17:31 AlexDaniel bisect: old=2015.07 .say for (Inf..0)[^2000]
17:31 bisectable6 AlexDaniel, Bisecting by output (old=2015.07 new=5558710) because on both starting points the exit code is 0
17:32 babydrop That one looks like the one affected by gutting of the error I gutted on the weekend
17:32 babydrop m: say :2<000l01>;
17:32 camelia rakudo-moar 555871: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Cannot convert string to number: malformed base-2 number in '000⏏5l01' (indicated by ⏏)␤at <tmp>:1␤------> 3say :2<000l01>7⏏5;␤»
17:32 andreoss can rakudobrew not break currenly running perl6 processes during upgrade?
17:32 babydrop Oh the error is about the 0b literal
17:33 bisectable6 joined #perl6
17:33 andreoss i get `Unhandled exception: Bytecode validation error`
17:33 timotimo well, moar mmaps the .moarvm files
17:33 sena_kun joined #perl6
17:34 andreoss timotimo: why rakudobrew operates inside current installation directory?
17:34 timotimo don't know
17:35 AlexDaniel bisect: old=2015.07 .say for (Inf..0)[2000]
17:35 bisectable6 AlexDaniel, Bisecting by output (old=2015.07 new=5558710) because on both starting points the exit code is 0
17:35 AlexDaniel alright, that should work
17:35 andreoss oh probably it doesnt, and everything breaks after the installation
17:35 timotimo one thing that's not cool about our installation process is that we install moar, nqp, and rakudo separately
17:35 timotimo rather than moving it all over in one step
17:36 bisectable6 AlexDaniel, bisect log: https://gist.github.com/5b7e21d0fe16c600c9a6fe6c3ceb32cc
17:36 AlexDaniel no dammit
17:36 bisectable6 AlexDaniel, ‘bisect run’ failure
17:36 AlexDaniel ok
17:36 babydrop m: dd Inf..0
17:36 camelia rakudo-moar 555871: OUTPUT«Inf..0␤»
17:36 babydrop m: dd 42..0
17:36 camelia rakudo-moar 555871: OUTPUT«42..0␤»
17:36 babydrop huh
17:36 AlexDaniel babydrop: why is that surprising?
17:36 babydrop m: dd (42..0)[^10]
17:36 camelia rakudo-moar 555871: OUTPUT«(Failure.new(exception => X::OutOfRange.new(what => "Index", got => 0, range => 0..-1, comment => Any), backtrace => Backtrace.new), Failure.new(exception => X::OutOfRange.new(what => "Index", got => 1, range => 0..-1, comment => Any), backtrace => Backtra…»
17:37 babydrop m: say (42..0)[^10]
17:37 camelia rakudo-moar 555871: OUTPUT«Index out of range. Is: 0, should be in 0..-1␤  in block <unit> at <tmp> line 1␤␤Actually thrown at:␤  in block <unit> at <tmp> line 1␤␤»
17:37 babydrop m: say (42..0)[0]
17:37 camelia rakudo-moar 555871: OUTPUT«Index out of range. Is: 0, should be in 0..-1␤  in block <unit> at <tmp> line 1␤␤Actually thrown at:␤  in block <unit> at <tmp> line 1␤␤»
17:37 babydrop beh
17:37 AlexDaniel oh no, this 0..-1 error…
17:37 AlexDaniel I think there's a ticket for it somewhere
17:37 andreoss m: say (42...0)[0]
17:37 camelia rakudo-moar 555871: OUTPUT«42␤»
17:37 AlexDaniel commit: all say (Inf..0)[2000]
17:38 committable6 AlexDaniel, https://gist.github.com/966d0c4c43bd5e2b146788bfb6cc2f75
17:38 * babydrop is getting distracted....
17:38 AlexDaniel commit: all say (-Inf..0)[2000]
17:38 AlexDaniel commit: all say (NaN..0)[2000]
17:38 AlexDaniel commit: all say (NaN..NaN)[2000]
17:38 committable6 AlexDaniel, https://gist.github.com/d0aa8ee403a2c402b9f94ee3c383e37f
17:39 committable6 AlexDaniel, https://gist.github.com/814d4551655cf13bdb8ea046f80b0040
17:39 committable6 AlexDaniel, https://gist.github.com/9c8f43a15f48c6fde39ee6e2ef3805c0
17:41 AlexDaniel that's all from RT #125336
17:41 synopsebot6 Link:  https://rt.perl.org/rt3//Public/Bug/Display.html?id=125336
17:41 AlexDaniel m: .say for 1...NaN
17:42 camelia rakudo-moar 555871: OUTPUT«(timeout)1␤0␤-1␤-2␤-3␤-4␤-5␤-6␤-7␤-8␤-9␤-10␤-11␤-12␤-13␤-14␤-15␤-16␤-17␤-18␤-19␤-20␤-21␤-22␤-23␤-24␤-25␤-26␤-27␤-28␤-29␤-30␤-31␤-32␤-33␤-34␤-35␤-36␤-37␤-38␤-39␤-40␤-41␤-4…»
17:42 timotimo hehehe
17:42 babydrop Not a bug
17:42 babydrop well
17:43 AlexDaniel m: my @a = 1...NaN;
17:43 babydrop s: &infix:<...>, \(1, NaN)
17:43 SourceBaby babydrop, Sauce is at https://github.com/rakudo/rakudo/blob/5558710/src/core/operators.pm#L437
17:43 camelia rakudo-moar 555871: OUTPUT«(timeout)»
17:43 AlexDaniel m: my @a = 1...Inf;
17:43 camelia rakudo-moar 555871: ( no output )
17:43 AlexDaniel that's from RT #125337
17:43 synopsebot6 Link:  https://rt.perl.org/rt3//Public/Bug/Display.html?id=125337
17:43 pierre_ joined #perl6
17:43 babydrop s: &SEQUENCE, \(1, NaN)
17:43 SourceBaby babydrop, Sauce is at https://github.com/rakudo/rakudo/blob/5558710/src/core/operators.pm#L105
17:45 * babydrop rescinds not a bug
17:45 AlexDaniel babydrop: you changed your opinion!
17:45 babydrop Oh
17:46 babydrop AlexDaniel: no, I actually changed it to agree with Zoffix's opinion :P
17:46 babydrop So there's some consistency :)
17:46 babydrop m: dd (1..NaN)[^10]
17:46 camelia rakudo-moar 555871: OUTPUT«(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)␤»
17:46 AlexDaniel hahaha, some of my older tickets are so cool
17:47 babydrop well, that's definitely a bug-like behaviour cause Range increases but seq goes down
17:47 babydrop m: dd (NaN..NaN)[^10]
17:47 camelia rakudo-moar 555871: OUTPUT«(NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN)␤»
17:47 babydrop batman....
17:47 AlexDaniel for example, here is a cool one:
17:47 AlexDaniel eval: say 1 if;
17:47 evalable6 AlexDaniel, rakudo-moar 5558710: OUTPUT«(exit code 1) ===SORRY!===␤Whitespace required after keyword 'if'␤at /tmp/t7464rfUgO:1␤------>…»
17:47 evalable6 AlexDaniel, Full output: https://gist.github.com/ed56688e7ef9320cab19b428681702ad
17:47 AlexDaniel it says that whitespace is required four times
17:47 AlexDaniel ok, let's add a space
17:48 AlexDaniel eval: say 1 if ;
17:48 evalable6 AlexDaniel, rakudo-moar 5558710: OUTPUT«(exit code 1) ===SORRY!=== Error while compiling /tmp/XUy1wTvMSa␤Missing semicolon␤at /tmp/XUy1wTvMSa:1␤------> say 1 if <HERE>;»
17:48 AlexDaniel now it wants a semicolon… which is right there :)
17:48 AlexDaniel RT #125596 if anybody is interested
17:48 synopsebot6 Link:  https://rt.perl.org/rt3//Public/Bug/Display.html?id=125596
17:50 AlexDaniel std: say ‘hello’
17:50 camelia std : OUTPUT«No such file or directory»
17:50 AlexDaniel awww
17:50 camelia std : OUTPUT«(timeout)cat: /home/camelia/std/snap/revision: No such file or directory␤#zofbot <ZoffixW> rakudo-moar: (-0-0i).Str.say␤»
17:50 AlexDaniel :-| ?
17:51 AlexDaniel remember the times when people were comparing stuff to std? :)
17:53 AlexDaniel bisect: [SR-]
17:53 bisectable6 AlexDaniel, Bisecting by output (old=2015.12 new=5558710) because on both starting points the exit code is 1
17:53 babydrop Nope :)
17:53 bisectable6 AlexDaniel, bisect log: https://gist.github.com/99b2b0acdd4c924d1da9b3f7128a4b28
17:53 bisectable6 AlexDaniel, (2016-08-16) https://github.com/rakudo/rakudo/commit/1628e485df1356ae51513009863998daacceffea
17:54 AlexDaniel what's S?
17:55 timotimo "sequential" metaop
17:55 timotimo i think it doesn't do anything at the moment
17:56 AlexDaniel found it: https://docs.perl6.org/language/operators#index-entry-S_sequential_meta_operator
17:56 kalkin- joined #perl6
17:57 sena_kun >Unhandled exception: Missing or wrong version of dependency 'gen/moar/stage2/QRegex.nqp' (from 'src/Perl6/Pod.nqp')
17:57 babydrop you ran perl6 instead of ./perl6
17:57 babydrop ?
17:57 sena_kun babydrop, oh wow.
17:57 sena_kun Such a silly mistake.
17:57 babydrop :)
17:58 AlexDaniel commit: all say 1 S& 2 S& 3
17:58 committable6 AlexDaniel, https://gist.github.com/e9fe029ecc5f8507f988dc3d47a3eea4
18:08 sufrostico joined #perl6
18:11 kyclark joined #perl6
18:14 dalek ecosystem: 6cced02 | (Paweł Szulc)++ | META.list:
18:14 dalek ecosystem: Add UNIX::Daemonize
18:14 dalek ecosystem: review: https://github.com/perl6/ecosystem/commit/6cced0219d
18:14 dalek ecosystem: 154e076 | Altai-man++ | META.list:
18:14 dalek ecosystem: Merge pull request #272 from hipek8/master
18:14 dalek ecosystem:
18:14 dalek ecosystem: Add UNIX::Daemonize
18:14 dalek ecosystem: review: https://github.com/perl6/ecosystem/commit/154e0761c7
18:21 pierre_ joined #perl6
18:23 mohae joined #perl6
18:23 sufrostico joined #perl6
18:30 kyclark joined #perl6
18:31 lucasb hey, I remember a bug about 'S', let me see...
18:32 lucasb m: say so True S& False
18:32 camelia rakudo-moar 55cf6f: OUTPUT«True␤»
18:32 lucasb ^^ still here
18:33 AlexDaniel why do we even allow it
18:33 pBrahian joined #perl6
18:33 AlexDaniel I mean, why not throw NYI error or something
18:34 geekosaur joined #perl6
18:34 psch well, S is the default for non-autothreading ops
18:34 psch at least if i remember my synospes right
18:35 * lucasb wishes this new module was spelled "Unix::*", not "UNIX::*"
18:35 babydrop lucasb: submit an Issue
18:35 babydrop lucasb: that's how I got Ftp renamed :)
18:35 lucasb ftp?
18:36 lucasb ah, nvm :)
18:36 babydrop https://github.com/araraloren/Net-FTP/issues/11
18:36 hankache joined #perl6
18:36 psch a S& b S& c         short-circuited AND junction
18:36 psch from S03
18:37 psch soo i was wrong
18:37 lucasb hehe, nice. yes, I much prefer FTP over Ftp
18:37 psch meta S is shortcircuiting Junctions
18:37 Ven joined #perl6
18:37 psch well, that apparently means it is buggy
18:37 psch m: say False S& True
18:37 camelia rakudo-moar 55cf6f: OUTPUT«all()␤»
18:38 psch oh
18:38 psch it *also* does the single-threading thing i was thinking off
18:38 psch -f
18:38 pBrahian How to check if a key or index exists in an array?
18:39 babydrop :exists
18:39 psch m: my @a = 1,2; say @a[2]:exists; say @a[1]:exists
18:39 camelia rakudo-moar 55cf6f: OUTPUT«False␤True␤»
18:39 babydrop same for hashes
18:39 babydrop and setties and baggies
18:39 psch m: my @a = Int, Str; say @a[1]:exists
18:39 camelia rakudo-moar 55cf6f: OUTPUT«True␤»
18:40 babydrop m: my @a = ^10; @a[5]:delete; say @a[5]:exists
18:40 camelia rakudo-moar 55cf6f: OUTPUT«False␤»
18:40 labster joined #perl6
18:40 labster joined #perl6
18:41 japhb joined #perl6
18:42 bitmap joined #perl6
18:45 pbrahian joined #perl6
18:46 AlexDaniel m: my @a = <a b c>; say @a[0..*]
18:46 camelia rakudo-moar 55cf6f: OUTPUT«(a b c)␤»
18:46 AlexDaniel m: my @a = <a b c>; say @a[-1..*]
18:46 camelia rakudo-moar 55cf6f: OUTPUT«()␤»
18:47 AlexDaniel commit: 2015.07 my @a = <a b c>; say @a[-1..*]
18:47 lucasb did you expected a list of ('c',) ? yes, me too
18:47 committable6 AlexDaniel, ¦«2015.07»: Index out of range. Is: -1, should be in 0..Inf␤  in block <unit> at /tmp/g2OGIf0Xh5:1␤␤Actually thrown at:␤  in block <unit> at /tmp/g2OGIf0Xh5:1␤ «exit code = 1»
18:47 AlexDaniel lucasb: no
18:47 sena_kun Any list of nqp types?
18:48 AlexDaniel huh?
18:48 AlexDaniel ah
18:48 lucasb oh
18:48 AlexDaniel lucasb: use *-1..* for that
18:49 thatbot joined #perl6
18:49 AlexDaniel thatbot: help
18:49 lucasb AlexDaniel: ok, thanks
18:49 sena_kun Ah, found it.
18:49 thatbot AlexDaniel: command not found
18:49 AlexDaniel sena_kun: where?
18:49 AlexDaniel thatbot: … are you sure that you're a bot?
18:49 thatbot AlexDaniel: command not found
18:49 sena_kun AlexDaniel, https://github.com/perl6/nqp/blob/master/docs/ops.markdown#nqp-opcodes - starting from "In opcode signatures below,".
18:50 psch that's not a comprehensive list of nqp types
18:50 psch that's only the types used in the explanations of ops
18:50 lucasb "which may not correspond directly to NQP types"
18:50 sena_kun Yes, it seems so.
18:50 sena_kun But it is already something!
18:51 psch sena_kun: why do you need a list of nqp types?
18:51 AlexDaniel commit: all my @a = <a b c>; say @a[*-5..*]
18:51 committable6 AlexDaniel, https://gist.github.com/5acc3b054da10c5a19ffa4276406a156
18:52 sena_kun psch, I want to fix one issue -> I know where it is -> I can imagine how to fix it(not sure, but still) -> I need to know what types can I use.
18:52 psch sena_kun: which issue?
18:52 sena_kun psch, https://rt.perl.org/Public/Bug/Display.html?id=130211
18:52 psch sena_kun: where do you want to fix that?
18:53 psch sena_kun: alternatively, why do you need a type?  most nqp code doesn't annotate variables or attributes with types
18:54 psch and if it does, it's mostly the natives or Mu
18:54 sena_kun psch, RoleToClassApplier.nqp. As I see it, we need to patch compose_method_table and its calls inside of apply method.
18:54 AlexDaniel OK, so this warns
18:54 AlexDaniel m: my @a = <a b c>; say @a[*-10..2]
18:54 camelia rakudo-moar 55cf6f: OUTPUT«Effective index out of range. Is: -7, should be in 0..Inf␤  in block <unit> at <tmp> line 1␤␤Actually thrown at:␤  in block <unit> at <tmp> line 1␤␤»
18:54 AlexDaniel and this doesn't
18:54 AlexDaniel m: my @a = <a b c>; say @a[*-10..*]
18:54 camelia rakudo-moar 55cf6f: OUTPUT«()␤»
18:54 lukaramu joined #perl6
18:55 pbrahian if  @array[3]:!exists{     say "HELLO EXIST"; }  Is that valid?
18:55 thatbot pbrahian: need space after exists
18:55 thatbot well and your logic too
18:55 thatbot pbrahian: right now it reads if index 3 does not exist
18:55 thatbot yet your inside say says 'exists';
18:55 psch sena_kun: i don't see why you need a type there
18:56 AlexDaniel m: my @array = <a b c d e>; if @array[3]:exists { say "HELLO EXIST"; }
18:56 camelia rakudo-moar 55cf6f: OUTPUT«HELLO EXIST␤»
18:56 AlexDaniel m: my @array = <a b c d e>; if @array[8]:exists { say "HELLO EXIST"; }
18:56 camelia rakudo-moar 55cf6f: ( no output )
18:56 thatbot m: my @array = <a b c d e>; if @array[8]:!exists { say "HELLO EXIST"; }
18:56 camelia rakudo-moar 55cf6f: OUTPUT«HELLO EXIST␤»
18:56 psch sena_kun: you just need to add which role a method comes from (probably with a hash) and add that to the nqp::die
18:57 psch sena_kun: in line 113 or thereabouts, i'm not quite sure where you'd build the hash
18:57 thatbot doh....
18:57 thatbot I meant to say... command not found
18:58 sena_kun psch, yes, I thought about solution with a hash.
19:07 AlexDaniel m: my @a = <a b c d e>; say @a[*+10..*]
19:07 camelia rakudo-moar 55cf6f: OUTPUT«()␤»
19:07 AlexDaniel m: my @a = <a b c d e>; say @a[*+10..*]:exists
19:07 pbrahian How to find out if there is an item inside a hash?
19:07 phatbot hehe
19:07 phatbot pbrahian: same as with arrays
19:07 camelia rakudo-moar 55cf6f: OUTPUT«(timeout)»
19:07 AlexDaniel pbrahian: :exists
19:07 psch AlexDaniel: well, *..* :exists...
19:07 phatbot psch: why is that problematic?
19:08 psch phatbot: because * as RHS to .. means Inf
19:08 phatbot oh
19:08 japhb joined #perl6
19:08 AlexDaniel I don't think I understand
19:08 psch m: say (1..*)
19:08 camelia rakudo-moar 55cf6f: OUTPUT«1..Inf␤»
19:08 AlexDaniel m: my @a = <a b c d e>; say @a[*-5..*]
19:08 camelia rakudo-moar 55cf6f: OUTPUT«(a b c d e)␤»
19:08 AlexDaniel this works
19:08 AlexDaniel m: my @a = <a b c d e>; say @a[*-5..*]:exists
19:08 AlexDaniel this hangs
19:08 AlexDaniel so what if it means Inf ?
19:08 psch yes, but :exists checks for every element
19:09 phatbot But why?
19:09 camelia rakudo-moar 55cf6f: OUTPUT«(timeout)»
19:09 phatbot m: my @a = <a b c d e>; say @a[*-5..100]
19:09 camelia rakudo-moar 55cf6f: OUTPUT«(a b c d e (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any)…»
19:09 psch m: my @a = ^10; @a[0..2]:delete
19:09 camelia rakudo-moar 55cf6f: ( no output )
19:09 psch m: my @a = ^10; @a[0..2]:delete; @a[0..10]:exists
19:09 camelia rakudo-moar 55cf6f: ( no output )
19:09 psch m: my @a = ^10; @a[0..2]:delete; @a[0..10]:exists.say
19:09 camelia rakudo-moar 55cf6f: OUTPUT«(False False False True True True True True True True False)␤»
19:09 psch "but why" what?
19:09 phatbot m: say (*-5..*)(10)
19:09 camelia rakudo-moar 55cf6f: OUTPUT«5..Inf␤»
19:09 sufrostico joined #perl6
19:09 psch m: my @a = ^10; @a[0..2]:delete; @a[0..16]:exists.say
19:09 camelia rakudo-moar 55cf6f: OUTPUT«(False False False True True True True True True True False False False False False False False)␤»
19:10 psch exists has to reify to check if elements exist
19:10 phatbot m: my @a = <a b c d e>; say @a[*-5..Inf]
19:10 camelia rakudo-moar 55cf6f: OUTPUT«(a b c d e)␤»
19:10 psch so, yeah, lets reify infinite non-existing elements
19:10 phatbot ok, nevermind
19:10 AlexDaniel commit: 2015.07,2015.12 @a = <a b c d e>; say @a[*-5..*]:exists
19:10 committable6 AlexDaniel, https://gist.github.com/dd1937340dd2da06bd3d5aa4b5766ebf
19:10 AlexDaniel commit: 2015.07,2015.12 my @a = <a b c d e>; say @a[*-5..*]:exists
19:10 AlexDaniel okay
19:11 committable6 AlexDaniel, ¦«2015.07,2015.12»: «timed out after 10 seconds, output»:  «exit signal = SIGHUP (1)»
19:11 AlexDaniel well, actually, not sure if it's ok
19:11 phatbot looks ok to me
19:12 psch m: 1..* .elems
19:12 camelia rakudo-moar 55cf6f: OUTPUT«WARNINGS for <tmp>:␤Useless use of ".." in expression "1..* ." in sink context (line 1)␤»
19:12 psch m: (1..*).elems
19:12 camelia rakudo-moar 55cf6f: ( no output )
19:12 psch m: (1..*).elems.say
19:12 camelia rakudo-moar 55cf6f: OUTPUT«Inf␤»
19:12 psch i mean
19:12 phatbot hehehe
19:12 phatbot m: eager 1..*
19:12 camelia rakudo-moar 55cf6f: OUTPUT«(timeout)»
19:13 pbrahian %S
19:13 AlexDaniel [2..*] works, [2..*]:exists works, [*-2..*] works, [*-2..*]:exists suddenly does not
19:13 phatbot m: [][2..*]:exists
19:13 camelia rakudo-moar 55cf6f: ( no output )
19:13 psch m: my @a = 1,2; say @a[1..*]:exists
19:13 camelia rakudo-moar 55cf6f: OUTPUT«(True)␤»
19:13 psch ohh
19:13 psch AlexDaniel++
19:14 psch that's a good point actually, if the LHS influences it
19:14 phatbot Because in that case it treats the star as end of elements?
19:14 psch i didn't notice that
19:14 psch oh right
19:14 psch m: my @a = 1,2; say @a[*-2..*]:exists
19:14 phatbot m: my @a = 1,2; say @a[1..Inf]:exists
19:14 psch ah, so we only prime the first Whatever as @.elems
19:14 camelia rakudo-moar 55cf6f: OUTPUT«(timeout)»
19:14 camelia rakudo-moar 55cf6f: OUTPUT«(True)␤»
19:14 phatbot m: my @a = 1,2; say @a[1..Inf]:exists
19:14 camelia rakudo-moar 55cf6f: OUTPUT«(True)␤»
19:14 psch still weird
19:14 phatbot m: my @a = 1,2; say @a[10..Inf]:exists
19:14 camelia rakudo-moar 55cf6f: OUTPUT«()␤»
19:15 phatbot :S
19:15 pbrahian output?
19:15 sufrostico joined #perl6
19:15 AlexDaniel pbrahian: sorry?
19:15 psch m: say "yes"
19:15 camelia rakudo-moar 55cf6f: OUTPUT«yes␤»
19:15 phatbot So, why didn't it reify infinite number of elements that time?
19:15 psch probably to hide from a shady past or something *handwave*
19:15 phatbot :D
19:16 psch actually, i think the thing about Whatever might be behind it
19:16 AlexDaniel commit: all my @a = 1,2; say @a[10..Inf]:exists
19:16 psch probably worth investigating
19:16 committable6 AlexDaniel, https://gist.github.com/0c190029d905dc04a7f90c7e1224f857
19:16 psch i'm not sure what exactly we do there, and i'm not quite in a code-diving mood right now, sorry :S
19:17 jnthn Only half-following, but there's certainly a distinction between something marked lazy and something not marked lazy in array indexing
19:18 jnthn (Distinguished by return value of .is-lazy)
19:22 pierre_ joined #perl6
19:22 pyrimidine joined #perl6
19:28 thalunil joined #perl6
19:30 labster joined #perl6
19:33 domidumont joined #perl6
19:34 domidumont joined #perl6
19:34 pbrahian What is this error? Missing block  ------> <BOL>⏏<EOL>
19:36 sena_kun pbrahian, any code example please?
19:36 phatbot m: say ""
19:36 camelia rakudo-moar a3735a: OUTPUT«␤»
19:36 phatbot m: for { ␤␤␤
19:36 camelia rakudo-moar a3735a: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Missing block␤at <tmp>:4␤------> 3<BOL>7⏏5<EOL>␤»
19:36 pyrimidine joined #perl6
19:37 AlexDaniel what block is missing?
19:37 AlexDaniel I don't get it
19:37 perlpilot Apparently that error is LTA
19:37 FROGGS weird
19:37 phatbot The block for `for`
19:37 * phatbot doesn't notice the weirdness
19:37 AlexDaniel phatbot: it's right there
19:37 phatbot No, it's not
19:37 AlexDaniel for { ← here is the block
19:37 FROGGS that's not a block
19:37 perlpilot AlexDaniel: no, that's just an opening curly brace.
19:37 sena_kun The block is not missing, but it is unfinished, yes.
19:37 AlexDaniel now, we didn't close it, so there's no block, alright
19:37 phatbot No, that's an opening curly
19:38 phatbot :)
19:38 AlexDaniel but no. No.
19:38 AlexDaniel how does it parse { then?
19:38 AlexDaniel m: for { ␤␤␤ {}
19:38 camelia rakudo-moar a3735a: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Missing block␤at <tmp>:4␤------> 3 {}7⏏5<EOL>␤    expecting any of:␤        postfix␤        statement end␤»
19:38 phatbot AlexDaniel: but what about for {42;} { .say } ?
19:38 FROGGS still, the block comes after the expression that follows the 'for' keyword
19:38 phatbot AlexDaniel: you can't know taht { is for the block :)
19:38 phatbot hehehe
19:39 FROGGS m: for { foo => 42 } { .value.say }
19:39 camelia rakudo-moar a3735a: OUTPUT«42␤»
19:39 AlexDaniel nope, I still don't get it. Alright, nevermind
19:40 FROGGS it should state that a closing curly is missing or so
19:40 pbrahian I have to pass a code from php to perl
19:40 FROGGS m: {
19:40 camelia rakudo-moar a3735a: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Missing block␤at <tmp>:1␤------> 3{7⏏5<EOL>␤»
19:40 FROGGS hmmm
19:43 japhb joined #perl6
19:44 AlexDaniel pbrahian: thank you very much for your question. I have created a ticket so that we can improve the error message. RT #130331
19:44 synopsebot6 Link:  https://rt.perl.org/rt3//Public/Bug/Display.html?id=130331
19:45 phatbot :}
19:46 AlexDaniel m: my @a = <a b c d e>; say @a[-1..^5]:exists
19:46 camelia rakudo-moar a3735a: OUTPUT«(False True True True True True)␤»
19:46 AlexDaniel m: my @a = <a b c d e>; say @a[-1..*]:exists
19:46 camelia rakudo-moar a3735a: OUTPUT«()␤»
19:46 AlexDaniel m: my @a = <a b c d e>; say @a[-1..*+0]:exists
19:46 camelia rakudo-moar a3735a: OUTPUT«(False True True True True True False)␤»
19:47 phatbot :o
19:49 samcv morning perl 6
19:49 perlpilot good afternoon samcv
19:49 phatbot evining
19:51 AlexDaniel phatbot: something is not right, right?
19:51 AlexDaniel phatbot: that thing is, pre-glr this was an error
19:51 AlexDaniel commit: pre-glr my @a = <a b c d e>; say @a[-1..*]:exists
19:51 committable6 AlexDaniel, ¦«pre-glr»: False True True True True True
19:51 AlexDaniel … or maybe not
19:51 AlexDaniel commit: pre-glr my @a = <a b c d e>; say @a[-1..*+0]:exists
19:51 committable6 AlexDaniel, ¦«pre-glr»: False True True True True True False
19:51 AlexDaniel … yea, I guess not
19:52 AlexDaniel commit: all my @a = <a b c d e>; say @a[-1..*]:exists
19:52 phatbot AlexDaniel: yeah, looks weird to a naked eye...
19:52 rurban joined #perl6
19:52 committable6 AlexDaniel, https://gist.github.com/9106caa69c5386d69885c97b7202bc65
19:56 pyrimidine joined #perl6
19:59 rurban joined #perl6
20:03 pmurias joined #perl6
20:07 sena_kun What can cause "Cannot invoke this object (REPR: Null; VMNull)" error? I have a hash with a key and a value, I have a proper key in variable, I'm trying to get value with atkey(%hash_name, $key), but it gives me an error.
20:08 phatbot nqp: my %hash_name := {}; my $key := 'foo'; atkey(%hash_name, $key)
20:08 camelia nqp-moarvm: OUTPUT«Cannot invoke this object (REPR: Null; VMNull)␤   at <tmp>:1  (<ephemeral file>:<mainline>)␤ from gen/moar/stage2/NQPHLL.nqp:1577  (/home/camelia/rakudo-m-inst-1/share/nqp/lib/NQPHLL.moarvm:eval)␤ from gen/moar/stage2/NQPHLL.nqp:1780  (/home/camelia/rakudo-m…»
20:08 phatbot nqp: my %hash_name := {}; my $key := 'foo'; nqp::atkey(%hash_name, $key)
20:08 camelia nqp-moarvm: ( no output )
20:08 phatbot sena_kun: need nqp:: in front of it?
20:09 sena_kun phatbot, aaaaaaaaah. Thanks. The error is rather obscure.
20:09 japhb joined #perl6
20:12 Tonik joined #perl6
20:12 sufrostico joined #perl6
20:15 pyrimidine joined #perl6
20:15 dalek doc: 112ad2e | samcv++ | doc/Type/Cool.pod6:
20:15 dalek doc: Add documentation on `uniprops` and update `uniprop`
20:15 dalek doc:
20:15 dalek doc: to say it returns a Bool for Boolean Unicode properties
20:15 dalek doc: review: https://github.com/perl6/doc/commit/112ad2ed19
20:15 synopsebot6 Link: http://doc.perl6.org/type/Cool
20:16 pierre_ joined #perl6
20:17 mawkish joined #perl6
20:23 Xliff Is there a way to dynamically add tokens to a grammar?
20:24 moritz Xliff: same as methods: by mixing in an anonymous role
20:25 moritz or presumably with .^add_method and .^compose
20:25 Xliff moritz++: Thanks.
20:27 phatbot m: .parse('abc').say with grammar {} but role { token TOP { .+ } }
20:27 camelia rakudo-moar fa9887: ( no output )
20:27 phatbot m: .parse('abc').say given grammar {} but role { token TOP { .+ } }
20:27 camelia rakudo-moar fa9887: OUTPUT«「abc」␤»
20:27 phatbot neat
20:32 andrzejku_ joined #perl6
20:34 travis-ci joined #perl6
20:34 travis-ci Doc build failed. Samantha McVey 'Add documentation on `uniprops` and update `uniprop`
20:34 travis-ci https://travis-ci.org/perl6/doc/builds/183366884 https://github.com/perl6/doc/compare/fe2a8bbff595...112ad2ed199f
20:34 travis-ci left #perl6
20:37 samcv nice
20:37 phatbot m: &uniprops.file.say
20:37 camelia rakudo-moar fa9887: OUTPUT«SETTING::src/core/Cool.pm␤»
20:38 phatbot m: &uniprop.file.say
20:38 camelia rakudo-moar fa9887: OUTPUT«SETTING::src/core/Cool.pm␤»
20:38 samcv they're all in cool though :(
20:38 Xliff OK, so what am I doing wrong, here?
20:38 Xliff m: grammar G { regex TOP { <ex> }; regex ex { e || x }; }; say G.^methods
20:38 camelia rakudo-moar fa9887: OUTPUT«No such method 'gist' for invocant of type 'NQPRoutine'␤  in block <unit> at <tmp> line 1␤␤»
20:38 skids That's an NYI on some low level stuff.
20:39 Xliff Ahhh....
20:39 phatbot m: grammar G { regex TOP { <ex> }; regex ex { e || x }; }; say G.^methods».name
20:39 camelia rakudo-moar fa9887: OUTPUT«(TOP ex parse parsefile subparse FAILGOAL upper CAPHASH CALL_SUBRULE !reduce_with_match !protoregex DYNQUANT_LIMITS !fresh_highexpect !BACKREF-LATEST-CAPTURE !DYNQUANT_LIMITS orig !cursor_start !protoregex_nfa !protoregex_table RECURSE !cursor_more !cursor…»
20:39 skids m: grammar G { regex TOP { <ex> }; regex ex { e || x }; }; say G.^methods>>.name
20:39 camelia rakudo-moar fa9887: OUTPUT«(TOP ex parse parsefile subparse FAILGOAL upper CAPHASH CALL_SUBRULE !reduce_with_match !protoregex DYNQUANT_LIMITS !fresh_highexpect !BACKREF-LATEST-CAPTURE !DYNQUANT_LIMITS orig !cursor_start !protoregex_nfa !protoregex_table RECURSE !cursor_more !cursor…»
20:39 skids jin
20:39 skids x
20:39 pyrimidine joined #perl6
20:39 mawkish joined #perl6
20:40 dalek doc: 5bffa57 | samcv++ | doc/Type/Cool.pod6:
20:40 dalek doc: Try and work around problem in docs to get it building again
20:40 dalek doc:
20:40 dalek doc: Chang routine's to methods.
20:40 dalek doc: review: https://github.com/perl6/doc/commit/5bffa577d2
20:40 synopsebot6 Link: http://doc.perl6.org/type/Cool
20:41 phatbot A wild guess is the code first find these as methods and stops looking, and that's why it fails to find them
20:42 phatbot m: dd [.file, .line] given Cool.^lookup('uniprops')
20:42 camelia rakudo-moar fa9887: OUTPUT«["SETTING::src/core/Cool.pm", 107]␤»
20:42 phatbot m: dd [.file, .line] given &uniprops
20:42 camelia rakudo-moar fa9887: OUTPUT«["SETTING::src/core/Cool.pm", 492]␤»
20:43 phatbot based on that sub's name "my Str @subkinds = first-code-block($chunk)\"
20:43 thayne joined #perl6
20:44 * phatbot is just making this up as it goes along really...
20:46 rurban joined #perl6
20:49 samcv you mean the code that does the docs?
20:49 samcv i mean i'm looking at both the Cool.pod6 and the Cool.pm atm
20:51 dalek doc: a4292f5 | samcv++ | / (2 files):
20:51 dalek doc: Document unimatch. Also add uniprops to the words file
20:51 dalek doc: review: https://github.com/perl6/doc/commit/a4292f5241
20:51 AlexDaniel phatbot: “Tests added: https://rt.perl.org/rt3//Public/Bug/Display.html?id=130260
20:51 AlexDaniel :D
20:51 phatbot AlexDaniel: https://github.com/perl6/roast/commit/f30510e79c
20:52 phatbot samcv: yeah,  the htmlify.p6 script search for the line I quoted the bug is somewhere there
20:52 * phatbot relocates
20:52 _28_ria joined #perl6
20:53 sufrostico joined #perl6
20:54 timotimo .u ⛀⛂
20:54 yoleaux U+26C0 WHITE DRAUGHTS MAN [So] (⛀)
20:54 yoleaux U+26C2 BLACK DRAUGHTS MAN [So] (⛂)
20:54 timotimo .u ⛃
20:54 yoleaux U+26C3 BLACK DRAUGHTS KING [So] (⛃)
20:54 timotimo .u draughts
20:54 yoleaux U+26C0 WHITE DRAUGHTS MAN [So] (⛀)
20:54 yoleaux U+26C1 WHITE DRAUGHTS KING [So] (⛁)
20:54 yoleaux U+26C2 BLACK DRAUGHTS MAN [So] (⛂)
20:54 timotimo ...
20:54 timotimo unicodable6: help
20:54 unicodable6 timotimo, Just type any unicode character or part of a character name. Alternatively, you can also provide a code snippet or a regex
20:54 timotimo unicodable6: draughts
20:54 unicodable6 timotimo, U+26C0 WHITE DRAUGHTS MAN [So] (⛀)
20:54 unicodable6 timotimo, U+26C1 WHITE DRAUGHTS KING [So] (⛁)
20:54 unicodable6 timotimo, U+26C2 BLACK DRAUGHTS MAN [So] (⛂)
20:54 unicodable6 timotimo, U+26C3 BLACK DRAUGHTS KING [So] (⛃)
20:54 timotimo is that all there is? huh.
20:54 samcv ugh unimatch also suffers from the same problem as uniprop used to before i fixed it
20:55 timotimo about IntStr and such?
20:55 samcv m: say unimatch 'a', 'Latin', 'sc'
20:55 camelia rakudo-moar fa9887: OUTPUT«False␤»
20:55 samcv m: say unimatch 'a', 'Latin', 'Script'
20:55 camelia rakudo-moar fa9887: OUTPUT«True␤»
20:56 diegok joined #perl6
20:56 timotimo oh, about how some names are ambiguous?
20:57 samcv well they're not ambiguous they're the canonical unicode defined names
20:58 samcv well anything but the names are ambiguous basically. and uppercase and lower case are different. like Sc vs sc, one's a property one's a General Property value
20:58 samcv because reasons
20:58 samcv i think the moarvm script to generate the datastructure must create lower/uppercase/shortened versions itself because i found them nowhere in the unicode files
21:00 samcv err i guess ambiguous to moarvm? i think it has different values for the same things like 'sc' points to the wrong thing. like two thinks called 'sc' with different values in the data structure
21:00 wamba joined #perl6
21:00 travis-ci joined #perl6
21:00 travis-ci Doc build passed. Samantha McVey 'Try and work around problem in docs to get it building again
21:00 travis-ci https://travis-ci.org/perl6/doc/builds/183373574 https://github.com/perl6/doc/compare/112ad2ed199f...5bffa577d24b
21:00 travis-ci left #perl6
21:01 samcv yay
21:02 samcv also with this https://github.com/perl6/doc/issues/900
21:02 samcv i guess at least when that was reported uniprop-bool uniprop-int and uniprop-str were not in roast. i also think maybe they shouldn't be seperate functions?
21:03 samcv i mean they are for nqp but seems redundant
21:05 cdg joined #perl6
21:08 TEttinger joined #perl6
21:09 mawkish_ joined #perl6
21:11 prammer joined #perl6
21:12 phatbot s: &uniprop-str
21:12 SourceBaby phatbot, Sauce is at https://github.com/rakudo/rakudo/blob/fa98875/src/core/Cool.pm#L485
21:12 samcv i think i'll just make an extra multi for when somebody supplies a unicode property to check against
21:13 samcv there won't be an issue if you don't specify which property to check, so i think calling 'uniprop' and checking that, will make sure i don't have to duplicate the code i wrote to fix uniprop
21:13 travis-ci joined #perl6
21:13 travis-ci Doc build passed. Samantha McVey 'Document unimatch. Also add uniprops to the words file'
21:13 travis-ci https://travis-ci.org/perl6/doc/builds/183376483 https://github.com/perl6/doc/compare/5bffa577d24b...a4292f524145
21:13 travis-ci left #perl6
21:14 samcv m: say uniprop('a', 'sc') eq 'Latin'
21:14 camelia rakudo-moar fa9887: OUTPUT«True␤»
21:14 samcv pretty simple
21:14 samcv and the case where you don't supply a property to check against will still work the same
21:15 Xliff https://gist.github.com/Xliff/840123313a6318b5fc42eb81394f3e70
21:16 Xliff Another odd error message from rakudo.
21:18 samcv substring length cannot be negative... hmm
21:18 samcv does it tell you a line?
21:18 Xliff Nope
21:19 Xliff I swear, I have so many things in the oven where rakudo DOES NOT give me a line but a cryptic error message.
21:19 Xliff Like 6 stalled projects.
21:19 Xliff And I can't golf most of them down to the gristle.
21:20 Xliff A couple of 'em are dying of old age in RT
21:20 AlexDaniel timotimo: what kind of extra draughts do you want?
21:20 samcv Xliff, just start commenting out lines until the error goes away :P
21:21 Xliff samcv: It's not the where... it's the why.
21:22 samcv it's addunit that's doing it i think
21:22 Xliff Of course, I knew going in that anything I wrote with the MOP would be shaky. I don't quite think I have grokked all of its implications.
21:22 Xliff Yes.
21:22 Xliff $g.^add_method("unit:sym<$unit>", token { <sym> });
21:22 samcv #$g.^add_method("unit:sym<$unit>", token { <sym> }); h
21:22 samcv yeh
21:23 Xliff I can do "$g.^add_method("unit:sym<ft>", token { <sym> });" and get the same thing.
21:23 Xliff If I do "$g.^add_method("unit:sym<ft>", method { <sym> });", it works but I don't see the method in the resulting composed class.
21:24 vera joined #perl6
21:24 Xliff Hmmm.... I just thought of something.
21:26 moritz Xliff: did you call compose too?
21:26 pyrimidine joined #perl6
21:26 timotimo AlexDaniel: i don't even know what man and king draughts are :)
21:27 rurban left #perl6
21:27 Xliff moritz: Yes. See gist:
21:27 Xliff https://gist.github.com/Xliff/840123313a6318b5fc42eb81394f3e70
21:27 Xliff Of course, there were bugs in the snippet. Fixing them gave the same results, though.
21:28 Xliff Gist updated.
21:29 moritz Xliff: dunno if it matters, but try to uuse 'my token' instead of 'token' in the add-method call
21:29 AlexDaniel but yes, unicodable will print whatever it can find
21:29 AlexDaniel u: Ll
21:29 unicodable6 AlexDaniel, U+0061 LATIN SMALL LETTER A [Ll] (a)
21:29 unicodable6 AlexDaniel, U+0062 LATIN SMALL LETTER B [Ll] (b)
21:29 unicodable6 AlexDaniel, U+0063 LATIN SMALL LETTER C [Ll] (c)
21:29 timotimo maybe it's from Draughts and Crosses? or Draughts and Ladders?
21:29 unicodable6 AlexDaniel, https://gist.github.com/e000c1d637b6835d2b7f678abb97398d
21:30 moritz Xliff: oh, I have an idea
21:30 AlexDaniel … did it just take 7 seconds to upload a gist?
21:31 mohae joined #perl6
21:31 moritz Xliff: maybe the problem is that the token itself doesn't know its own name
21:31 pierre_ joined #perl6
21:32 AlexDaniel u: heavy shaft
21:32 unicodable6 AlexDaniel, U+1F82C LEFTWARDS TRIANGLE-HEADED ARROW WITH HEAVY SHAFT [So] (????)
21:32 unicodable6 AlexDaniel, U+1F82E RIGHTWARDS TRIANGLE-HEADED ARROW WITH HEAVY SHAFT [So] (????)
21:32 unicodable6 AlexDaniel, U+1F82D UPWARDS TRIANGLE-HEADED ARROW WITH HEAVY SHAFT [So] (????)
21:32 unicodable6 AlexDaniel, https://gist.github.com/26f4b9845bfcf0a049f794dfdab0e076
21:33 moritz m: token { <sym> }
21:33 camelia rakudo-moar fa9887: OUTPUT«===SORRY!===␤Substring length (-5) cannot be negative␤»
21:33 moritz Xliff: golf'd
21:34 prammer joined #perl6
21:34 moritz Xliff: it seems that it dies while compiling, because the grammar tries to extract the meaning of <sym> from the regex name at compile time
21:34 AlexDaniel m: /<sym>/
21:34 camelia rakudo-moar fa9887: OUTPUT«===SORRY!===␤Substring length (-5) cannot be negative␤»
21:35 moritz Xliff: instead, try to use $unit in the regex
21:37 pyrimidine joined #perl6
21:38 setty1 joined #perl6
21:41 lukiramu joined #perl6
21:41 Ven joined #perl6
21:45 phatbot Xliff: what are the tickets? Except the scary XML one.... what are the other 6 stalled things?
21:45 Xliff LOL! The scary XML one is the one I really want.
21:46 Xliff But I understand why everyone cringes in fear.
21:46 Xliff 3 of them I have not RT'd because of the lack of response on the XML one. I can't get the problem golf'd down, so I don't want to go through all that again.
21:47 [Coke] Xliff: we can't fix the tickets we don't have.
21:47 [Coke] regarding this one, I'm not sure that add_method is tested anywhere to work with grammar methods. (how do you know if it's a token or a rule?)
21:47 Xliff [Coke]: That's what I thought.
21:48 Xliff [Coke]: with respect to RT. I've learned that it's better to crunch things down to a use case before submitting.
21:48 phatbot Xliff, well, no wonder those projects are stalled :)
21:48 Xliff Yes.
21:48 phatbot Are all of them as scary as XML one?
21:48 [Coke] Xliff: sure, it's better, but not ticket is worse, no?
21:48 Xliff Well that and I think that there is coder error in those. I'm not sure that rakudo is at fault... yet
21:48 [Coke] *no
21:48 Xliff phatbot: Most, yes. Hence my trepidation.
21:49 phatbot :o
21:49 SmokeMachine how are you highlitining your code on wordpress' advent calendar?
21:49 Xliff Yeah. :P
21:49 Xliff SmokeMachine: "```perl6" <code> "```"
21:49 phatbot SmokeMachine I have a fancy acript
21:49 Xliff Oh! I thought he was talking about markdown. LOL
21:49 SmokeMachine that accepts markdown?! Good to know!
21:50 Xliff SmokeMachine: Actually, I don't know about the advent calendar. Sorry for the confusion.
21:50 phatbot SmokeMachine that takes a url to a gist with markdown
21:50 SmokeMachine Xliff: ok, thanks!
21:50 SmokeMachine phatbot: hum...
21:50 phatbot you need it?
21:51 Xliff Here is the other one that is still in RT: https://rt.perl.org/Ticket/Display.html?id=129109
21:51 SmokeMachine phatbot: yes, please!
21:51 SmokeMachine :)
21:53 SmokeMachine I was trying to use the vim's :source $VIMRUNTIME/syntax/html.vim... but I don't know why its not working...
21:55 moritz Xliff: fwiw I've just noticed that there's an add_multi_method as well
21:55 moritz instead of just add_method
21:55 SmokeMachine I got it!!! its 2html.vim!!!
21:55 Xliff moritz: I was about to ask, how to add a method into a grammar so it acts like a rule.
21:56 moritz Xliff: a regex/token/rule is just a method, so that's not really the question
21:56 Xliff "token", "regex" and "rule" are just methods with syntactical sugar, right?
21:56 Xliff jinx
21:56 moritz Xliff: the real question is: how do you add a multi to an existing token?
21:56 Xliff Oooo
21:56 moritz and does that need to be different for grammars
21:56 Xliff Uncharted territory, here?
21:56 moritz for me at least
21:57 Xliff :)
21:57 moritz codegen was never my forte
21:57 Xliff Are token:rule<sym> rules multis?
21:57 Xliff I would guess so.
21:57 * moritz would guess so too
21:58 Xliff Just never looked at them that way because it never occured to me to do so.
21:58 Xliff Well, I can try to see if it gives different results.
21:59 moritz Xliff: success!
22:00 Xliff moritz: ?
22:00 moritz Xliff: http://perlpunks.de/paste/show/584f1dec.5578.5c
22:00 moritz Xliff: one problem was that you did $.parser.HOW.^add_method
22:00 moritz it's just $.parser.^add_method or add_multi_method
22:00 Xliff Ah.
22:01 Xliff moritz++!
22:01 moritz so you added the method to the metaclass, not to the class :-)
22:01 Xliff LOL
22:01 moritz the set_name call isn't necessary
22:01 moritz (and you don't have provisions in the grammar for skipping <mag>, so your first example could never match)
22:02 Xliff \o/
22:02 Xliff Thanks so much!
22:02 moritz you're welcome
22:03 * moritz blames jnthn++ for making meta programming look so easy in his talks, when in fact it's often hard, and most of all hard to debug
22:04 Xliff No kidding.
22:04 Xliff Now here's another problem. If I make <mag> optional, it will chew into the unit.
22:04 Xliff Since "f" is a valid <mag>,  "ft/s" -> <mag> = "f" and the rest fails since there is no "t"
22:04 phatbot SmokeMachine: it's this https://gist.github.com/zoffixznet/356a944e9155846cb3d80cecb233a308
22:05 Xliff How can I force <unit> to match before <mag>
22:05 Xliff Is this look ahead sort of territory?
22:05 phatbot SmokeMachine: we actually have http://modules.perl6.org/dist/Pastebin::Gist in ecosystem, so it'd be trivial to make it roundtrip a Markdown file to html
22:05 samcv my REPL is broken now :(
22:05 samcv fails the REPL tests in spectest
22:05 moritz Xliff: try enabling backtracking in expr?
22:05 flaviusb joined #perl6
22:05 SmokeMachine phatbot: thanks!
22:05 phatbot samcv: try running them alone, that maybe the timeout failing
22:05 samcv well it doesn't work at all
22:05 phatbot Like just make t/spec/whatever/file.t
22:06 phatbot oh :(
22:06 samcv with Readline package
22:06 phatbot yikes
22:06 Xliff moritz: token expr -> regex expr. Did the trick.
22:06 Xliff Nice!
22:06 gfldex joined #perl6
22:10 * [Coke] wonders if #130330 is a DIHWIDT.
22:11 timotimo joined #perl6
22:11 AlexDaniel [Coke]: if you make it consistent, yes
22:11 AlexDaniel better tell me what the hell is this:
22:11 AlexDaniel m: my @a = <a b c d e>; say @a[-1..*]:exists
22:11 camelia rakudo-moar fa9887: OUTPUT«()␤»
22:12 AlexDaniel m: my @a = <a b c d e>; say @a[-1..*+0]:exists
22:12 camelia rakudo-moar fa9887: OUTPUT«(False True True True True True False)␤»
22:12 [Coke] ah, I literally did not read the example that said "to understand the issue". :)
22:12 jnthn m: say (-1..*).WHAT
22:12 camelia rakudo-moar fa9887: OUTPUT«(Range)␤»
22:12 jnthn m: say (-1..*).is-lazy
22:12 camelia rakudo-moar fa9887: OUTPUT«True␤»
22:13 jnthn m: say (-1..*+0).WHAT
22:13 camelia rakudo-moar fa9887: OUTPUT«(WhateverCode)␤»
22:13 jnthn m: say (-1..*+0)(5).WHAT
22:13 camelia rakudo-moar fa9887: OUTPUT«(Range)␤»
22:13 phatbot Well, I saw some more weird ones.
22:13 jnthn m: say (-1..*+0)(5).is-lazy
22:13 camelia rakudo-moar fa9887: OUTPUT«False␤»
22:13 AlexDaniel jnthn: okay… okay! Now what about this
22:13 jnthn There you go.
22:13 AlexDaniel m: my @a = <a b c d e>; say @a[0..*]:exists
22:13 camelia rakudo-moar fa9887: OUTPUT«(True True True True True)␤»
22:13 AlexDaniel m: my @a = <a b c d e>; say @a[0..*+0]:exists
22:13 camelia rakudo-moar fa9887: OUTPUT«(True True True True True False)␤»
22:13 jnthn m: say (0..*).WHAT
22:13 camelia rakudo-moar fa9887: OUTPUT«(Range)␤»
22:13 jnthn m: say (0..*).is-lazy
22:13 camelia rakudo-moar fa9887: OUTPUT«True␤»
22:14 jnthn m: say (0..*+0).WHAT
22:14 camelia rakudo-moar fa9887: OUTPUT«(WhateverCode)␤»
22:14 phatbot Aha
22:14 jnthn m: say (0..*+0)(5).WHAT
22:14 camelia rakudo-moar fa9887: OUTPUT«(Range)␤»
22:14 jnthn m: say (0..*+0)(5).is-lazy
22:14 camelia rakudo-moar fa9887: OUTPUT«False␤»
22:14 jnthn That's why.
22:14 phatbot jnthn++
22:14 jnthn The array subscripter decides whether to auto-viv for not based on .is-lazy
22:14 jnthn 0..* is just a range, not a whatevercode
22:15 AlexDaniel but why is the result different if we use -1 or 0 as the start?
22:15 phatbot Because one is an Inf and the other is the number of els
22:16 AlexDaniel hmmm?
22:16 AlexDaniel : my @a = <a b c d e>; say @a[-1..*+0]:exists
22:16 AlexDaniel m: my @a = <a b c d e>; say @a[-1..*+0]:exists
22:16 camelia rakudo-moar fa9887: OUTPUT«(False True True True True True False)␤»
22:16 AlexDaniel m: my @a = <a b c d e>; say @a[0..*+0]:exists
22:16 camelia rakudo-moar fa9887: OUTPUT«(True True True True True False)␤»
22:16 AlexDaniel oh, it isn't?
22:16 AlexDaniel right
22:16 AlexDaniel m: my @a = <a b c d e>; say @a[-1..*]:exists
22:16 camelia rakudo-moar fa9887: OUTPUT«()␤»
22:16 AlexDaniel m: my @a = <a b c d e>; say @a[0..*]:exists
22:16 camelia rakudo-moar fa9887: OUTPUT«(True True True True True)␤»
22:17 phatbot That looks like it bypasses the thing that cries about negative range?
22:17 phatbot negative index I mean
22:17 phatbot m: my @a = <a b c d e>; say @a[-42..*]
22:17 camelia rakudo-moar fa9887: OUTPUT«()␤»
22:18 phatbot m: my @a = <a b c d e>; say @a[-42..5]
22:18 camelia rakudo-moar fa9887: OUTPUT«Index out of range. Is: -42, should be in 0..Inf␤  in block <unit> at <tmp> line 1␤␤Actually thrown at:␤  in block <unit> at <tmp> line 1␤␤»
22:18 AlexDaniel commit: pre-glr my @a = <a b c d e>; say @a[-1..*+0]:exists
22:18 committable6 AlexDaniel, ¦«pre-glr»: False True True True True True False
22:18 AlexDaniel commit: pre-glr my @a = <a b c d e>; say @a[-1..*]:exists
22:18 committable6 AlexDaniel, ¦«pre-glr»: False True True True True True
22:18 AlexDaniel ah, hm…
22:18 jnthn phatbot: Yeah, seems it somehow is...which is a bit naughty
22:18 jnthn The "use lazy to decide whether to auto-viv or not" distinction came during the GLR
22:19 phatbot m: my @a = <a b c d e>; say @a[lazy -42..5]
22:19 camelia rakudo-moar fa9887: OUTPUT«()␤»
22:19 jnthn So things like
22:19 AlexDaniel commit: 2015.06 my @a = <a b c d e>; say @a[-1..*+0]:exists
22:19 committable6 AlexDaniel, ¦«2015.06»: False True True True True True False
22:20 jnthn m: my @a; @a[3..5] = 1 xx *; say @a
22:20 camelia rakudo-moar fa9887: OUTPUT«[(Any) (Any) (Any) 1 1 1]␤»
22:20 jnthn Will auto-viv
22:20 jnthn But at the same time
22:20 AlexDaniel I remember kind of restriction for negative numbers disappeared after glr, now what was it…
22:20 jnthn YOu can say @a[2..*]
22:20 jnthn And it'll truncate
22:20 phatbot AlexDaniel: $x x $y ?
22:20 AlexDaniel no, associated with subscripts
22:21 jnthn It's usually a DWIM and you've got eager/lazy as an escape hatch
22:21 phatbot m: my @a; @a[lazy 3..5] = 1 xx *; say @a
22:21 camelia rakudo-moar fa9887: OUTPUT«[]␤»
22:21 jnthn iirc it stops at the first position where .EXISTS-POS returns False
22:22 espadrine joined #perl6
22:22 AlexDaniel let's see
22:23 AlexDaniel committable6: pre-glr all my @a = <a b c d e>; say @a[-1..*]:exists
22:23 committable6 AlexDaniel, ¦«pre-glr»: False True True True True True
22:23 AlexDaniel committable6: pre-glr my @a = <a b c d e>; say @a[-1..*]:exists
22:23 committable6 AlexDaniel, ¦«pre-glr»: False True True True True True
22:23 AlexDaniel committable6: HEAD my @a = <a b c d e>; say @a[-1..*]:exists
22:23 committable6 AlexDaniel, ¦«HEAD»: ()
22:23 AlexDaniel ah, not this one…
22:23 AlexDaniel ok, this one:
22:23 AlexDaniel committable6: pre-glr my @a = <a b c>; say @a[*-5..*]
22:23 committable6 AlexDaniel, ¦«pre-glr»: Index out of range. Is: -2, should be in 0..Inf␤  in block <unit> at /tmp/WsIRiCLX7N:1␤␤Actually thrown at:␤  in block <unit> at /tmp/WsIRiCLX7N:1␤ «exit code = 1»
22:24 AlexDaniel committable6: HEAD my @a = <a b c>; say @a[*-5..*]
22:24 committable6 AlexDaniel, ¦«HEAD»: ()
22:24 lizmat and another Perl 6 Weekly hits the Net: https://p6weekly.wordpress.com/2016/12/12/2016-50-highlighting-profilesql/
22:34 pmurias phatbot: what's your hackernews article?
22:35 timotimo probably the "fell through the QAST" advent post
22:36 lizmat https://news.ycombinator.com/item?id=13125282
22:39 mawkish_ joined #perl6
22:40 phatbot timotimo: no the set one
22:41 phatbot With the first guy ranting about the oh-so-difficult-to-learn set ops
22:41 * phatbot closed the page after that
22:42 phatbot Kinda don't care any more :)
22:42 RabidGravy I've just posted tomorrows Advent article, ignore it for an hour and a quarter
22:43 phatbot RabidGravy sweet
22:45 mawkish_ joined #perl6
22:48 timotimo but set operations are really not immediately obvious
22:49 phatbot :/
22:51 AlexDaniel phatbot: by the way
22:51 AlexDaniel .put for @wanted.combinations.grep: { $materials ≽ [⊎] @^stuff-we-want }
22:51 AlexDaniel ↑ perhaps this is a little bit better
22:52 timotimo RabidGravy: ignore? why not check for typos? ;)
22:53 RabidGravy Of course there are typos
22:54 RabidGravy also completely missing words, sometimes my brain goes faster than my hands do
22:54 phatbot AlexDaniel: thanks. Didn't occur to me we could use @ sigils. Wonder if that was also aflicted with the bug...
22:54 phatbot star: dd (bag() but "x").combinations.grep: { [⊎] @^stuff-we-want }
22:54 AlexDaniel in fact @_ would probably look more natural to my eye
22:54 camelia star-m 2016.10: OUTPUT«().Seq␤»
22:55 phatbot star: dd (bag() but "x").combinations.grep: { [⊎] $^stuff-we-want }
22:55 camelia star-m 2016.10: OUTPUT«().Seq␤»
22:55 phatbot star: dd (bag(42) but "x", bag(72) but "x").combinations.grep: { [⊎] $^stuff-we-want }
22:55 camelia star-m 2016.10: OUTPUT«Cannot unbox a type object (Any) to a str.␤  in block <unit> at <tmp> line 1␤␤»
22:55 phatbot star: dd (bag(42) but "x", bag(72) but "x").combinations.grep: { [⊎] @^stuff-we-want }
22:55 camelia star-m 2016.10: OUTPUT«(((42=>1).Bag+{<anon|56864896>},), ((72=>1).Bag+{<anon|56865168>},), ((42=>1).Bag+{<anon|56864896>}, (72=>1).Bag+{<anon|56865168>})).Seq␤»
22:55 phatbot nope
22:57 phatbot m: ((1, 2), (3, 4)).grep: { dd @_ }
22:57 camelia rakudo-moar f8cbca: OUTPUT«[1, 2]␤[3, 4]␤»
22:57 phatbot trippy... how does it know to do that?
22:57 phatbot m: { dd @_ }.arity.say
22:57 camelia rakudo-moar f8cbca: OUTPUT«0␤»
22:59 AlexDaniel t
23:00 phatbot m: (1, (1, 2), (3, 4), (5, 6, 7)).grep: { dd @_ }
23:00 camelia rakudo-moar f8cbca: OUTPUT«[1]␤[1, 2]␤[3, 4]␤[5, 6, 7]␤»
23:00 phatbot crazy
23:00 lizmat phatbot: not sure what you're referring to?
23:00 lizmat the fact that @_ is set?
23:00 phatbot The fact that it's filled with what I want, I guess... At first glance, I would've expected that to just swallow all the args in 1 go
23:01 phatbot m: dd (1, (1, 2), (3, 4), (5, 6, 7))
23:01 camelia rakudo-moar f8cbca: OUTPUT«(1, (1, 2), (3, 4), (5, 6, 7))␤»
23:01 RabidGravy right, finally managed to get that scheduled for tomorrow (well in an hour)
23:01 phatbot So the output would be something like this instead of the current one
23:02 lizmat m: ((1,2)).grep: { dd @_ }
23:02 camelia rakudo-moar f8cbca: OUTPUT«[1]␤[2]␤»
23:02 phatbot m: (1, (1, 2), (3, 4), (5, 6, 7)).grep: -> *@x { dd @x }
23:02 camelia rakudo-moar f8cbca: OUTPUT«[1]␤[1, 2]␤[3, 4]␤[5, 6, 7]␤»
23:02 lizmat phatbot: it's the 1 arg rule at work
23:03 phatbot m: -> *@x { dd @x }.arity.say
23:03 camelia rakudo-moar f8cbca: OUTPUT«0␤»
23:03 phatbot lizmat: magic. Got it :)
23:05 phatbot m: multi foo ($) {"one"}; multi foo ($,$) {"two"}; multi foo ($,$,$) {"three"}; (1, (1, 2), (3, 4), (5, 6, 7)).map(&foo).say
23:05 camelia rakudo-moar f8cbca: OUTPUT«(one one one one)␤»
23:05 phatbot ok, now I get it :}
23:09 phatbot Xliff: well, both of your tickets are way too hard for me. You should submit the other ones.
23:10 wamba joined #perl6
23:10 phatbot m: constant foo = 42; dd <foo>
23:10 camelia rakudo-moar f8cbca: OUTPUT«"foo"␤»
23:10 phatbot TIL we have this syntax
23:10 phatbot oh wait
23:10 phatbot We don't :)
23:10 phatbot m: constant foo = 42; <foo>
23:11 camelia rakudo-moar f8cbca: OUTPUT«WARNINGS for <tmp>:␤Useless use of constant value foo in sink context (line 1)␤»
23:11 phatbot That warning fonfused me :)
23:11 lizmat m: <bar>
23:11 camelia rakudo-moar f8cbca: OUTPUT«WARNINGS for <tmp>:␤Useless use of constant value bar in sink context (line 1)␤»
23:11 phatbot Oh, ok, now I get the warning
23:11 * phatbot clearly needs a rest :(
23:11 lizmat perhaps we need to awesomify that error with a .perl ?
23:12 AlexDaniel m: say <foo>.perl
23:12 camelia rakudo-moar f8cbca: OUTPUT«"foo"␤»
23:12 phatbot perhaps
23:12 phatbot m: <\r\r\r>
23:12 camelia rakudo-moar f8cbca: OUTPUT«WARNINGS for <tmp>:␤Useless use of constant value \r\r\r in sink context (line 1)␤»
23:12 phatbot m: qww<\r\r\r>
23:12 camelia rakudo-moar f8cbca: OUTPUT«WARNINGS for <tmp>:␤Useless use of constant string "\\r\\r\\r" in sink context (line 1)␤»
23:13 phatbot one says "value" and the other "string" :/
23:13 AlexDaniel m: 1/3
23:13 camelia rakudo-moar f8cbca: OUTPUT«WARNINGS for <tmp>:␤Useless use of "/" in expression "1/3" in sink context (line 1)␤»
23:13 phatbot m: qww<42>
23:13 camelia rakudo-moar f8cbca: OUTPUT«WARNINGS for <tmp>:␤Useless use of constant string "42" in sink context (line 1)␤»
23:13 phatbot m: qww<42>.^name.say
23:13 camelia rakudo-moar f8cbca: OUTPUT«Str␤»
23:13 phatbot Ah
23:14 pyrimidine joined #perl6
23:14 AlexDaniel m: 1 /   5 + 8
23:14 camelia rakudo-moar f8cbca: OUTPUT«WARNINGS for <tmp>:␤Useless use of "+" in expression "/   5 + 8" in sink context (line 1)␤»
23:14 AlexDaniel that's an interesting error message
23:15 phatbot m: <foo bar 42 foo bar 42 foo bar 42 foo bar 42>
23:15 camelia rakudo-moar f8cbca: OUTPUT«WARNINGS for <tmp>:␤Useless use of constant value foo bar 42 foo bar 42 foo bar 42 foo bar 42 in sink context (lines 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1)␤»
23:15 phatbot heh
23:15 AlexDaniel :|
23:16 phatbot m: <… wait, never mind. All is good! I was just kidding about the constant value. Would you like some tea?>
23:16 camelia rakudo-moar f8cbca: OUTPUT«WARNINGS for <tmp>:␤Useless use of constant value … wait, never mind. All is good! I was just kidding about the constant value. Would you like some tea? in sink context (lines 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1…»
23:16 timotimo haha :)
23:16 AlexDaniel m: <use of constant value in sink context>
23:16 camelia rakudo-moar f8cbca: OUTPUT«WARNINGS for <tmp>:␤Useless use of constant value use of constant value in sink context in sink context (lines 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1)␤»
23:17 mawkish_ joined #perl6
23:17 AlexDaniel .oO( would you like some tea in sink context ?)
23:20 phatbot So how come /<sym>/ bug wasn't reported? Was it ruled DIHWIDT?
23:21 phatbot The fix is trivial but the impact from it :o
23:21 timotimo what exactly does the bug do?
23:21 loveperl joined #perl6
23:21 phatbot m: /<sym>/
23:21 camelia rakudo-moar f8cbca: OUTPUT«===SORRY!===␤Substring length (-5) cannot be negative␤»
23:22 loveperl How to make comment blocks?
23:23 timotimo #`( ... ) will do it
23:23 timotimo or any kind of matching parenthesis
23:23 phatbot Or press the "Comment" key in your text editor :)
23:23 loveperl in vim
23:23 loveperl ?
23:24 phatbot I've no idea what it is in vim, but it gotta have one
23:24 phatbot Ctrl+D?
23:24 phatbot That's what I have, but I'm pretty sure I always remap it to that combination
23:24 phatbot (in Atom)
23:24 timotimo in vim you typically have a cool plugin to do commenting for you, like NERDCommenter
23:28 rburkholder joined #perl6
23:33 maxp_ joined #perl6
23:33 Xliff phatbot: Understood.
23:34 Xliff Thanks for looking at them.
23:34 Xliff phatbot: Atom uses Ctrl+/ by default, I think
23:37 MasterDuke Xliff: i also tried replicating your XML one, but couldn't. it seemed like whatever module you were using (LibXML?), you had made some changes to it and i didn'
23:37 MasterDuke 't have them when i just downloaded it from the ecosystem
23:38 pyrimidine joined #perl6
23:40 maxp_ good evening...
23:40 maxp_ is there a way to debug regular expressions?
23:40 kyclark left #perl6
23:41 timotimo yup, install Debugger::UI::CommandLine and use perl6-debug-m on your thing
23:41 timotimo it'll single-step through your matching process for you
23:41 maxp_ ok thanks
23:41 timotimo if that doessn't work or it's not the right thing for you, try Grammar::Debugger from the ecosystem, which also comes with Grammar::Trace
23:41 maxp_ but Grammar::Debugger is for simple regex too?
23:42 timotimo yes
23:42 * timotimo goes AFK
23:42 maxp_ ok thanks a lot
23:43 mawkish_ joined #perl6
23:44 bjz joined #perl6
23:46 Xliff MasterDuke: You should use the git repository. I think I included it in the bug. If not, I will update.
23:46 Xliff And you shouldn't need the XML:: parts at all to get the error to occur.
23:47 Xliff I will have to take a long look at that bug and see if I can golf the problem down. There is a lot of code to go through, though.
23:47 Xliff And I am wondering if that is part of the problem.
23:47 Xliff It would explain why my efforts to golf it have failed.
23:47 MasterDuke i tried to follow the directions in the bug report, but something didn't work
23:47 Xliff Which bug was this again?
23:48 Xliff rt #130095
23:48 synopsebot6 Link:  https://rt.perl.org/rt3//Public/Bug/Display.html?id=130095
23:49 MasterDuke '../p6-XML-LibXML-work/lib'
23:49 mawkish_ joined #perl6
23:49 Xliff OK. Let me see if I can come up with better instructions.
23:51 MasterDuke hmm, i guess if i had commented out all the XML::LibXML stuff it wouldn't have mattered that maybe our versions of XML::LibXML are/were different. but i think the code wouldn't run for some other reason
23:52 MasterDuke i.e., it wouldn't compile, so i didn't get the MAST frame error
23:54 Xliff OK. You need XML::LibXML from here: https://github.com/Xliff/p6-XML-LibXML.git
23:54 Xliff In 01-basic.t in the p6-xslt dir, comment out "use XML::LibXML::CStructs :types;"
23:54 Xliff That should get the error.
23:55 Xliff Make sure your -I points to the lib dir of both XML::LibXML and XML::XSLT you have cloned.
23:55 Xliff I wish I could make this simpler. *sigh*
23:58 MasterDuke Class CStruct has no attributes, which is illegal with the CStruct representation.
23:59 MasterDuke at /home/dan/Source/perl6/xliff/p6-xslt/../p6-XML-LibXML/lib/XML/LibXML/CStructs.pm (XML::LibXML::CStructs):9

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

Perl 6 | Reference Documentation | Rakudo